classMySqlQueryGuard
final class MySqlQueryGuard
Classifies SQL and enforces ZTD write-protection rules.
Methods§
public function __construct(MySqlParser $parser)Configure the dependencies used by this operation.
Parameters
$parser | MySqlParser |
public function classify(string $sql): ?QueryKindClassify a SQL string into READ/WRITE_SIMULATED/DDL_SIMULATED or null if unsupported.
Parameters
$sql | string |
Returns
Test cases 75
ClassifyRewriteAgreementChecker::checkcallsClassifyTarget::__invokecallsMySqlQueryGuardTest::testAssertAllowedAcceptsParsedStatementcallsMySqlQueryGuardTest::testAssertAllowedDoesNotThrowForDdlcallsMySqlQueryGuardTest::testAssertAllowedDoesNotThrowForSelectcallsMySqlQueryGuardTest::testAssertAllowedDoesNotThrowForWritecallsMySqlQueryGuardTest::testAssertAllowedWithParsedStatementcallsMySqlQueryGuardTest::testClassifiesCreateIndexAsNullcallsMySqlQueryGuardTest::testClassifiesDdlStatementscallsMySqlQueryGuardTest::testClassifiesDropIndexAsNullcallsMySqlQueryGuardTest::testClassifiesEmptySqlAsNullcallsMySqlQueryGuardTest::testClassifiesInsertWithCompoundSelectAsOneWritecallsMySqlQueryGuardTest::testClassifiesLoadDataAsWriteSimulatedcallsMySqlQueryGuardTest::testClassifiesReadOnlyDiagnosticsAsReadcallsMySqlQueryGuardTest::testClassifiesReadStatementscallsMySqlQueryGuardTest::testClassifiesReplaceAsWriteSimulatedcallsMySqlQueryGuardTest::testClassifiesSelectIntoAsNullcallsMySqlQueryGuardTest::testClassifiesSingleSelectExpressionsSplitByThirdPartyParsercallsMySqlQueryGuardTest::testClassifiesTruncateAsWriteSimulatedcallsMySqlQueryGuardTest::testClassifiesWriteStatementscallsMySqlQueryGuardTest::testClassifyAlterNonTableDoesNotFallThroughToWithcallsMySqlQueryGuardTest::testClassifyAlterWithoutTableReturnsNullcallsMySqlQueryGuardTest::testClassifyCreateNonTableDoesNotFallThroughToAltercallsMySqlQueryGuardTest::testClassifyCreateViewReturnsNullcallsMySqlQueryGuardTest::testClassifyDropNonTableDoesNotFallThroughToAltercallsMySqlQueryGuardTest::testClassifyDropViewReturnsNullcallsMySqlQueryGuardTest::testClassifyMultipleStatementsReturnsNullcallsMySqlQueryGuardTest::testClassifyReplaceIsWriteSimulatedcallsMySqlQueryGuardTest::testClassifyReturnsNullForGarbageInputcallsMySqlQueryGuardTest::testClassifyStatementDropNonTableReturnsNullcallsMySqlQueryGuardTest::testClassifyStatementSelectIntoReturnsNullcallsMySqlQueryGuardTest::testClassifyStatementWithAlterNonTableReturnsNullcallsMySqlQueryGuardTest::testClassifyStatementWithCreateNonTableReturnsNullcallsMySqlQueryGuardTest::testClassifyTruncateIsWriteSimulatedcallsMySqlQueryGuardTest::testClassifyWithBacktickQuotedIdentifierFallbackcallsMySqlQueryGuardTest::testClassifyWithDeleteFallbackcallsMySqlQueryGuardTest::testClassifyWithDoubleQuotedStringFallbackcallsMySqlQueryGuardTest::testClassifyWithEscapedBackslashInStringFallbackcallsMySqlQueryGuardTest::testClassifyWithFallbackAlterFallsToDdlSimulatedcallsMySqlQueryGuardTest::testClassifyWithFallbackAlterInWithReturnsNullcallsMySqlQueryGuardTest::testClassifyWithFallbackBacktickNotEscapedByBackslashcallsMySqlQueryGuardTest::testClassifyWithFallbackBacktickQuotedIdentifiercallsMySqlQueryGuardTest::testClassifyWithFallbackCaseSensitiveKeywordHandlingcallsMySqlQueryGuardTest::testClassifyWithFallbackCreateFallsToDdlSimulatedcallsMySqlQueryGuardTest::testClassifyWithFallbackCreateInWithReturnsNullcallsMySqlQueryGuardTest::testClassifyWithFallbackDeleteInWithcallsMySqlQueryGuardTest::testClassifyWithFallbackDoubleQuotedStringcallsMySqlQueryGuardTest::testClassifyWithFallbackDropFallsToDdlSimulatedcallsMySqlQueryGuardTest::testClassifyWithFallbackDropInWithReturnsNullcallsMySqlQueryGuardTest::testClassifyWithFallbackEscapedQuoteInStringcallsMySqlQueryGuardTest::testClassifyWithFallbackInsertInWithcallsMySqlQueryGuardTest::testClassifyWithFallbackLowercaseKeywordscallsMySqlQueryGuardTest::testClassifyWithFallbackNestedSubquerySkipsKeywordsInParenscallsMySqlQueryGuardTest::testClassifyWithFallbackNonAlphaAfterKeywordcallsMySqlQueryGuardTest::testClassifyWithFallbackQuotedStringContainingKeywordcallsMySqlQueryGuardTest::testClassifyWithFallbackReplaceFallsToWriteSimulatedcallsMySqlQueryGuardTest::testClassifyWithFallbackReplaceInWithReturnsNullcallsMySqlQueryGuardTest::testClassifyWithFallbackSelectAfterCteFallsToReadcallsMySqlQueryGuardTest::testClassifyWithFallbackSingleQuoteWithBackslashEscapecallsMySqlQueryGuardTest::testClassifyWithFallbackTruncateFallsToWriteSimulatedcallsMySqlQueryGuardTest::testClassifyWithFallbackTruncateInWithReturnsNullcallsMySqlQueryGuardTest::testClassifyWithFallbackUnrecognizedKeywordFallsThroughcallsMySqlQueryGuardTest::testClassifyWithInsertFallbackcallsMySqlQueryGuardTest::testClassifyWithNestedParensFallbackcallsMySqlQueryGuardTest::testClassifyWithNullCteParserReturnsReadcallsMySqlQueryGuardTest::testClassifyWithQuotedStringsFallbackcallsMySqlQueryGuardTest::testClassifyWithSelectFallbackcallsMySqlQueryGuardTest::testClassifyWithStatementNoCteParsercallsMySqlQueryGuardTest::testCreateTableClassifiesAsDdlSimulatedcallsMySqlQueryGuardTest::testDeleteClassifiesAsWriteSimulatedcallsMySqlQueryGuardTest::testDropTableClassifiesAsDdlSimulatedcallsMySqlQueryGuardTest::testInsertClassifiesAsWriteSimulatedcallsMySqlQueryGuardTest::testReturnsNullForUnsupportedStatementscallsMySqlQueryGuardTest::testSelectClassifiesAsReadcallsMySqlQueryGuardTest::testUpdateClassifiesAsWriteSimulatedcalls
Called from 2
Calls 6
- static-call MySqlReadOnlyDiagnosticStatement::isSafe() line 44
- class-const QueryKind::READ() line 45
- method-call MySqlParser::parseSingleLogicalStatement() line 47
- method-call CteStatementKind::classifyWithFallback() line 52
- new CteStatementKind line 52
- method-call MySqlQueryGuard::classifyStatement() line 58
public function assertAllowed(Statement|string $input): voidThrow when the SQL or statement is not allowed by the guard.
Parameters
$input | Statement|string | Parsed statement or raw SQL. |
Throws
RuntimeExceptionTest cases 8
MySqlQueryGuardTest::testAssertAllowedAcceptsParsedStatementcallsMySqlQueryGuardTest::testAssertAllowedDoesNotThrowForDdlcallsMySqlQueryGuardTest::testAssertAllowedDoesNotThrowForSelectcallsMySqlQueryGuardTest::testAssertAllowedDoesNotThrowForWritecallsMySqlQueryGuardTest::testAssertAllowedThrowsForSelectIntocallsMySqlQueryGuardTest::testAssertAllowedThrowsForUnsupportedSqlcallsMySqlQueryGuardTest::testAssertAllowedThrowsOnForbiddencallsMySqlQueryGuardTest::testAssertAllowedWithParsedStatementcalls
Calls 4
- function-call
is_stringline 69 - method-call MySqlQueryGuard::classify() line 69
- method-call MySqlQueryGuard::classifyStatement() line 69
- new
RuntimeExceptionline 71
public function classifyStatement(Statement $statement): ?QueryKindClassify a parsed statement into its QueryKind, or null if unsupported.
Parameters
$statement | Statement |
Returns
Test cases 4
MySqlQueryGuardTest::testClassifyStatementReturnsNullForAlterNonTableDirectlycallsMySqlQueryGuardTest::testClassifyStatementReturnsNullForCreateNonTableDirectlycallsMySqlQueryGuardTest::testClassifyStatementReturnsNullForDropNonTableDirectlycallsMySqlQueryGuardTest::testClassifyStatementReturnsReadForParsedSelectDirectlycalls
Called from 4
- method-call ZtdQuery\Platform\MySql\Rewrite\MySqlQueryGuard::classify() packages/ztd-query-mysql/src/Rewrite/MySqlQueryGuard.php:58
- method-call ZtdQuery\Platform\MySql\Rewrite\MySqlQueryGuard::assertAllowed() packages/ztd-query-mysql/src/Rewrite/MySqlQueryGuard.php:69
- method-call ZtdQuery\Platform\MySql\Rewrite\MySqlQueryGuard::classifyStatement() packages/ztd-query-mysql/src/Rewrite/MySqlQueryGuard.php:103
- method-call ZtdQuery\Platform\MySql\Rewrite\StatementRewriter::rewriteStatement() packages/ztd-query-mysql/src/Rewrite/StatementRewriter.php:47
Calls 4
- class-const QueryKind::READ() line 84
- class-const QueryKind::WRITE_SIMULATED() line 88
- class-const QueryKind::DDL_SIMULATED() line 93
- method-call MySqlQueryGuard::classifyStatement() line 103
Private surface 1§
Implementation details, listed for orientation only.
private MySqlParser $parserTest cases 237§
Test cases that cover or call this symbol, from the coverage report and from the analyzed test sources.
Dedicated tests 80
MySqlQueryGuardTest::testAssertAllowedAcceptsParsedStatementcallsMySqlQueryGuardTest::testAssertAllowedDoesNotThrowForDdlcallsMySqlQueryGuardTest::testAssertAllowedDoesNotThrowForSelectcallsMySqlQueryGuardTest::testAssertAllowedDoesNotThrowForWritecallsMySqlQueryGuardTest::testAssertAllowedThrowsForSelectIntocallsMySqlQueryGuardTest::testAssertAllowedThrowsForUnsupportedSqlcallsMySqlQueryGuardTest::testAssertAllowedThrowsOnForbiddencallsMySqlQueryGuardTest::testAssertAllowedWithParsedStatementcallsMySqlQueryGuardTest::testClassifiesCreateIndexAsNullcallsMySqlQueryGuardTest::testClassifiesDdlStatementscallsMySqlQueryGuardTest::testClassifiesDropIndexAsNullcallsMySqlQueryGuardTest::testClassifiesEmptySqlAsNullcallsMySqlQueryGuardTest::testClassifiesInsertWithCompoundSelectAsOneWritecallsMySqlQueryGuardTest::testClassifiesLoadDataAsWriteSimulatedcallsMySqlQueryGuardTest::testClassifiesReadOnlyDiagnosticsAsReadcallsMySqlQueryGuardTest::testClassifiesReadStatementscallsMySqlQueryGuardTest::testClassifiesReplaceAsWriteSimulatedcallsMySqlQueryGuardTest::testClassifiesSelectIntoAsNullcallsMySqlQueryGuardTest::testClassifiesSingleSelectExpressionsSplitByThirdPartyParsercallsMySqlQueryGuardTest::testClassifiesTruncateAsWriteSimulatedcallsMySqlQueryGuardTest::testClassifiesWriteStatementscallsMySqlQueryGuardTest::testClassifyAlterNonTableDoesNotFallThroughToWithcallsMySqlQueryGuardTest::testClassifyAlterWithoutTableReturnsNullcallsMySqlQueryGuardTest::testClassifyCreateNonTableDoesNotFallThroughToAltercallsMySqlQueryGuardTest::testClassifyCreateViewReturnsNullcallsMySqlQueryGuardTest::testClassifyDropNonTableDoesNotFallThroughToAltercallsMySqlQueryGuardTest::testClassifyDropViewReturnsNullcallsMySqlQueryGuardTest::testClassifyMultipleStatementsReturnsNullcallsMySqlQueryGuardTest::testClassifyReplaceIsWriteSimulatedcallsMySqlQueryGuardTest::testClassifyReturnsNullForGarbageInputcallsMySqlQueryGuardTest::testClassifyStatementDropNonTableReturnsNullcallsMySqlQueryGuardTest::testClassifyStatementReturnsNullForAlterNonTableDirectlycallsMySqlQueryGuardTest::testClassifyStatementReturnsNullForCreateNonTableDirectlycallsMySqlQueryGuardTest::testClassifyStatementReturnsNullForDropNonTableDirectlycallsMySqlQueryGuardTest::testClassifyStatementReturnsReadForParsedSelectDirectlycallsMySqlQueryGuardTest::testClassifyStatementSelectIntoReturnsNullcallsMySqlQueryGuardTest::testClassifyStatementWithAlterNonTableReturnsNullcallsMySqlQueryGuardTest::testClassifyStatementWithCreateNonTableReturnsNullcallsMySqlQueryGuardTest::testClassifyTruncateIsWriteSimulatedcallsMySqlQueryGuardTest::testClassifyWithBacktickQuotedIdentifierFallbackcallsMySqlQueryGuardTest::testClassifyWithDeleteFallbackcallsMySqlQueryGuardTest::testClassifyWithDoubleQuotedStringFallbackcallsMySqlQueryGuardTest::testClassifyWithEscapedBackslashInStringFallbackcallsMySqlQueryGuardTest::testClassifyWithFallbackAlterFallsToDdlSimulatedcallsMySqlQueryGuardTest::testClassifyWithFallbackAlterInWithReturnsNullcallsMySqlQueryGuardTest::testClassifyWithFallbackBacktickNotEscapedByBackslashcallsMySqlQueryGuardTest::testClassifyWithFallbackBacktickQuotedIdentifiercallsMySqlQueryGuardTest::testClassifyWithFallbackCaseSensitiveKeywordHandlingcallsMySqlQueryGuardTest::testClassifyWithFallbackCreateFallsToDdlSimulatedcallsMySqlQueryGuardTest::testClassifyWithFallbackCreateInWithReturnsNullcallsMySqlQueryGuardTest::testClassifyWithFallbackDeleteInWithcallsMySqlQueryGuardTest::testClassifyWithFallbackDoubleQuotedStringcallsMySqlQueryGuardTest::testClassifyWithFallbackDropFallsToDdlSimulatedcallsMySqlQueryGuardTest::testClassifyWithFallbackDropInWithReturnsNullcallsMySqlQueryGuardTest::testClassifyWithFallbackEscapedQuoteInStringcallsMySqlQueryGuardTest::testClassifyWithFallbackInsertInWithcallsMySqlQueryGuardTest::testClassifyWithFallbackLowercaseKeywordscallsMySqlQueryGuardTest::testClassifyWithFallbackNestedSubquerySkipsKeywordsInParenscallsMySqlQueryGuardTest::testClassifyWithFallbackNonAlphaAfterKeywordcallsMySqlQueryGuardTest::testClassifyWithFallbackQuotedStringContainingKeywordcallsMySqlQueryGuardTest::testClassifyWithFallbackReplaceFallsToWriteSimulatedcallsMySqlQueryGuardTest::testClassifyWithFallbackReplaceInWithReturnsNullcallsMySqlQueryGuardTest::testClassifyWithFallbackSelectAfterCteFallsToReadcallsMySqlQueryGuardTest::testClassifyWithFallbackSingleQuoteWithBackslashEscapecallsMySqlQueryGuardTest::testClassifyWithFallbackTruncateFallsToWriteSimulatedcallsMySqlQueryGuardTest::testClassifyWithFallbackTruncateInWithReturnsNullcallsMySqlQueryGuardTest::testClassifyWithFallbackUnrecognizedKeywordFallsThroughcallsMySqlQueryGuardTest::testClassifyWithInsertFallbackcallsMySqlQueryGuardTest::testClassifyWithNestedParensFallbackcallsMySqlQueryGuardTest::testClassifyWithNullCteParserReturnsReadcallsMySqlQueryGuardTest::testClassifyWithQuotedStringsFallbackcallsMySqlQueryGuardTest::testClassifyWithSelectFallbackcallsMySqlQueryGuardTest::testClassifyWithStatementNoCteParsercallsMySqlQueryGuardTest::testCreateTableClassifiesAsDdlSimulatedcallsMySqlQueryGuardTest::testDeleteClassifiesAsWriteSimulatedcallsMySqlQueryGuardTest::testDropTableClassifiesAsDdlSimulatedcallsMySqlQueryGuardTest::testInsertClassifiesAsWriteSimulatedcallsMySqlQueryGuardTest::testReturnsNullForUnsupportedStatementscallsMySqlQueryGuardTest::testSelectClassifiesAsReadcallsMySqlQueryGuardTest::testUpdateClassifiesAsWriteSimulatedcalls
Other tests reaching this symbol 157
RewriterBench::setUpcallsClassifyRewriteAgreementChecker::checkcallsClassifyTarget::__invokecallsRewriteTarget::__invokecallsRobustnessTarget::__invokecallsMySqlSessionFactoryTestcallsMySqlRewriterTest::testAlterNonExistentTableThrowsUnknownSchemaExceptioncallsMySqlRewriterTest::testAlterTableAddColumnModifiesSchemacallsMySqlRewriterTest::testAlterTableChangeColumnRenamesColumncallsMySqlRewriterTest::testAlterTableDropColumnModifiesSchemacallsMySqlRewriterTest::testAlterTableModifyColumnModifiesSchemacallsMySqlRewriterTest::testAlterTableRenameRenamesTablecallsMySqlRewriterTest::testBuildTableContextColumnsFromStoreRowKeyscallsMySqlRewriterTest::testBuildTableContextIncludesRegistryDefinitionsNotInStorecallsMySqlRewriterTest::testBuildTableContextMergesShadowDataAndRegistryDefinitionscallsMySqlRewriterTest::testCommitRewriteStatecallsMySqlRewriterTest::testCompositeReadAllowsTablesWithoutSchemaContextcallsMySqlRewriterTest::testCompositeReadRejectsSelectIntocallsMySqlRewriterTest::testCompositeReadRejectsUnknownTableWithSchemaContextcallsMySqlRewriterTest::testCreateTableAsSelectCreatesTableWithDatacallsMySqlRewriterTest::testCreateTableIfNotExistsSkipsExistingTablecallsMySqlRewriterTest::testCreateTableLikeCopiesSchemacallsMySqlRewriterTest::testCreateTableLikeWithUnknownSourceThrowsUnknownSchemaExceptioncallsMySqlRewriterTest::testCreateTableMutationRegistersSchemacallsMySqlRewriterTest::testCreateTableReturnsDdlSimulatedcallsMySqlRewriterTest::testCreateTemporaryTableRegistersSchemacallsMySqlRewriterTest::testCteReferencesAreMatchedCaseInsensitivelyDuringSchemaValidationcallsMySqlRewriterTest::testDatabaseQualifiedSelectUsesShadowCtecallsMySqlRewriterTest::testDeleteReturnsWriteSimulatedWithMutationcallsMySqlRewriterTest::testDerivedTableKeepsNestedPhysicalRelationInShadowScopecallsMySqlRewriterTest::testDescribePassesThroughUnchangedcallsMySqlRewriterTest::testDropNonExistentTableThrowsUnknownSchemaExceptioncallsMySqlRewriterTest::testDropTableIfExistsSkipsNonExistentTablecallsMySqlRewriterTest::testDropTableMutationUnregistersSchemacallsMySqlRewriterTest::testDropTableReturnsDdlSimulatedcallsMySqlRewriterTest::testEmptyInputThrowsExceptioncallsMySqlRewriterTest::testEmptyResultSelectcallsMySqlRewriterTest::testExplainPassesThroughUnchangedcallsMySqlRewriterTest::testGeneratedExpressionIsPresentBeforeTheFirstShadowWritecallsMySqlRewriterTest::testHashCommentDoesNotCreateAPhantomSelectSourcecallsMySqlRewriterTest::testInsertReturnsWriteSimulatedWithMutationcallsMySqlRewriterTest::testInsertRewriteOutputContainsSelectcallsMySqlRewriterTest::testPartitionSelectionUsesDefinitionWithoutMaterializedRowscallsMySqlRewriterTest::testPartitionSelectionUsesRegisteredPartitionMetadatacallsMySqlRewriterTest::testReadPlanHasNoMutationcallsMySqlRewriterTest::testRegisteredViewIsKnownAndMaterializedcallsMySqlRewriterTest::testReplaceMutationInsertsNewRowcallsMySqlRewriterTest::testReplaceMutationReplacesExistingRowcallsMySqlRewriterTest::testReplaceWithEmptyValuesThrowsExceptioncallsMySqlRewriterTest::testReplaceWithMismatchedColumnCountThrowsExceptioncallsMySqlRewriterTest::testRewriteAlterTableAddColumnCreatesMutationcallsMySqlRewriterTest::testRewriteAlterTableAddConstraintThrowscallsMySqlRewriterTest::testRewriteAlterTableAddFulltextIndexThrowscallsMySqlRewriterTest::testRewriteAlterTableAddIndexThrowscallsMySqlRewriterTest::testRewriteAlterTableAddIndexThrowsUnsupportedcallsMySqlRewriterTest::testRewriteAlterTableAddKeyThrowscallsMySqlRewriterTest::testRewriteAlterTableAddPartitionThrowscallsMySqlRewriterTest::testRewriteAlterTableAddSpatialIndexThrowscallsMySqlRewriterTest::testRewriteAlterTableAnalyzePartitionThrowscallsMySqlRewriterTest::testRewriteAlterTableCheckPartitionThrowscallsMySqlRewriterTest::testRewriteAlterTableCoalescePartitionThrowscallsMySqlRewriterTest::testRewriteAlterTableConvertToCharsetThrowscallsMySqlRewriterTest::testRewriteAlterTableConvertToThrowscallsMySqlRewriterTest::testRewriteAlterTableDropConstraintThrowscallsMySqlRewriterTest::testRewriteAlterTableDropIndexThrowscallsMySqlRewriterTest::testRewriteAlterTableDropIndexThrowsUnsupportedcallsMySqlRewriterTest::testRewriteAlterTableDropKeyThrowscallsMySqlRewriterTest::testRewriteAlterTableDropPartitionThrowscallsMySqlRewriterTest::testRewriteAlterTableEngineThrowscallsMySqlRewriterTest::testRewriteAlterTableOptimizePartitionThrowscallsMySqlRewriterTest::testRewriteAlterTableOrderByThrowscallsMySqlRewriterTest::testRewriteAlterTableOrderByThrowsUnsupportedcallsMySqlRewriterTest::testRewriteAlterTableRebuildPartitionThrowscallsMySqlRewriterTest::testRewriteAlterTableRenameIndexThrowscallsMySqlRewriterTest::testRewriteAlterTableRenameIndexThrowsUnsupportedcallsMySqlRewriterTest::testRewriteAlterTableRenameKeyThrowscallsMySqlRewriterTest::testRewriteAlterTableRepairPartitionThrowscallsMySqlRewriterTest::testRewriteAlterTableSetDefaultThrowscallsMySqlRewriterTest::testRewriteAlterTableWithDropDefaultThrowscallsMySqlRewriterTest::testRewriteAlterTableWithOrderByThrowscallsMySqlRewriterTest::testRewriteAlterTableWithUnsupportedSetDefaultThrowscallsMySqlRewriterTest::testRewriteBuildTableContextMergesExtraColumnKeysFromRowscallsMySqlRewriterTest::testRewriteBuildTableContextWithDefinitionButNoRowscallsMySqlRewriterTest::testRewriteBuildTableContextWithRowsButNoDefinitioncallsMySqlRewriterTest::testRewriteCreateTableAsSelectCreatesMutationcallsMySqlRewriterTest::testRewriteCreateTableAsSelectTransformsCtecallsMySqlRewriterTest::testRewriteCreateTableAsSelectTransformsSelectPartcallsMySqlRewriterTest::testRewriteCreateTableCreatesMutationcallsMySqlRewriterTest::testRewriteCreateTableLikeCreatesMutationcallsMySqlRewriterTest::testRewriteCreateTableThatAlreadyExistsThrowscallsMySqlRewriterTest::testRewriteCreateTemporaryTableCreatesMutationcallsMySqlRewriterTest::testRewriteDeleteCreatesMutationcallsMySqlRewriterTest::testRewriteDeleteEnsuresDmlTableInShadowStorecallsMySqlRewriterTest::testRewriteDeleteEnsuresDmlTablesArePresentInStorecallsMySqlRewriterTest::testRewriteDropTableCreatesMutationcallsMySqlRewriterTest::testRewriteEmptySqlThrowscallsMySqlRewriterTest::testRewriteEmptyStatementThrowscallsMySqlRewriterTest::testRewriteForbiddenStatementThrowsExceptioncallsMySqlRewriterTest::testRewriteInsertCreatesMutationcallsMySqlRewriterTest::testRewriteInsertIgnoreCreatesInsertMutationWithIgnorecallsMySqlRewriterTest::testRewriteInsertUsesDefaultsFromRegistryWithoutShadowRowscallsMySqlRewriterTest::testRewriteInsertUsesIdentityStrategyFromRegistryWithoutShadowRowscallsMySqlRewriterTest::testRewriteInsertWithOnDuplicateKeyUpdateCreatesUpsertMutationcallsMySqlRewriterTest::testRewriteIsDeterministiccallsMySqlRewriterTest::testRewriteMultipleEmptySqlThrowscallsMySqlRewriterTest::testRewriteMultipleProcessesEachStatementcallsMySqlRewriterTest::testRewriteMultipleStatementscallsMySqlRewriterTest::testRewriteMultipleStatementsThrowsExceptioncallsMySqlRewriterTest::testRewriteMultipleUsesLexicalStatementBoundariescallsMySqlRewriterTest::testRewriteMultipleWithForbiddenStatementThrowsExceptioncallsMySqlRewriterTest::testRewriteOutputIsNonEmptycallsMySqlRewriterTest::testRewriteReadAddsCtecallsMySqlRewriterTest::testRewriteReadWithRegistryButNoShadowStoreDataAddsCtesForKnownTablescallsMySqlRewriterTest::testRewriteReplaceCreatesMutationcallsMySqlRewriterTest::testRewriteReplaceWithColumnsDefinedcallsMySqlRewriterTest::testRewriteReplaceWithColumnsExplicitDoesNotThrowcallsMySqlRewriterTest::testRewriteReplaceWithColumnsSpecifiedDoesNotThrowcallsMySqlRewriterTest::testRewriteReplaceWithColumnsSucceedscallsMySqlRewriterTest::testRewriteReplaceWithNoColumnsAndNoStoreOrRegistryThrowscallsMySqlRewriterTest::testRewriteReplaceWithoutColumnsButWithDefinitionSucceedscallsMySqlRewriterTest::testRewriteReplaceWithoutColumnsButWithShadowDataSucceedscallsMySqlRewriterTest::testRewriteReplaceWithoutColumnsOrContextThrowscallsMySqlRewriterTest::testRewriteReplaceWithoutColumnsThrowsWhenNoContextcallsMySqlRewriterTest::testRewriteReplaceWithStoreContextDoesNotThrowcallsMySqlRewriterTest::testRewriteReplaceWithStoreDataDoesNotThrowcallsMySqlRewriterTest::testRewriteSelectNoSchemaContextDoesNotCheckUnknownTablescallsMySqlRewriterTest::testRewriteSelectNoSchemaContextDoesNotThrowcallsMySqlRewriterTest::testRewriteSelectWithJoinAndUnknownTableThrowsUnknownSchemaExceptioncallsMySqlRewriterTest::testRewriteSelectWithJoinDetectsUnknownJoinTablecallsMySqlRewriterTest::testRewriteSelectWithJoinedUnknownTableThrowscallsMySqlRewriterTest::testRewriteSelectWithNoSchemaContextDoesNotThrowcallsMySqlRewriterTest::testRewriteSelectWithUnknownJoinTableThrowsWhenSchemaContextExistscallsMySqlRewriterTest::testRewriteSelectWithUnknownTableThrowscallsMySqlRewriterTest::testRewriteSelectWithUnknownTableThrowsUnknownSchemaExceptioncallsMySqlRewriterTest::testRewriteSelectWithUnknownTableThrowsWhenSchemaContextExistscallsMySqlRewriterTest::testRewriteSingleStatementStillWorkscallsMySqlRewriterTest::testRewritesSingleSetExpressionsWithoutTreatingThemAsMultipleStatementscallsMySqlRewriterTest::testRewriteTruncateCreatesMutationcallsMySqlRewriterTest::testRewriteTruncateReturnsFalseSelectcallsMySqlRewriterTest::testRewriteUpdateCreatesMutationcallsMySqlRewriterTest::testRewriteUpdateEnsuresDmlTableInShadowStorecallsMySqlRewriterTest::testRewriteUpsertUsesCandidateKeysForStoredTableContextcallsMySqlRewriterTest::testRewriteWithStatementDeleteIgnoresHashCommentsAroundItsCteHeadercallsMySqlRewriterTest::testRewriteWithStatementInsertResolvesItsInnerMutationcallsMySqlRewriterTest::testRewriteWithStatementSelectUsesClassifycallsMySqlRewriterTest::testSelectReturnsReadKindcallsMySqlRewriterTest::testShowCreateTablePassesThroughUnchangedcallsMySqlRewriterTest::testSplitStatementscallsMySqlRewriterTest::testTransactionStatementcallsMySqlRewriterTest::testTruncateMutationClearsTablecallsMySqlRewriterTest::testUnknownTableAfterDeclaredCteIsRejectedcallsMySqlRewriterTest::testUnsupportedSqlThrowsExceptioncallsMySqlRewriterTest::testUpdateDoesNotPromoteMaterializedUnknownTablecallsMySqlRewriterTest::testUpdateReturnsWriteSimulatedWithMutationcallsMySqlRewriterTest::testWritePlanHasNonNullMutationcallsStatementRewriterTest::testMutationStatementcallsStatementRewriterTest::testRewriteStatementcalls
Relations§
Instantiated in 1
Method calls 2
Type declarations 3
- type ZtdQuery\Platform\MySql\Rewrite\MySqlRewriter packages/ztd-query-mysql/src/Rewrite/MySqlRewriter.php:43
- type ZtdQuery\Platform\MySql\Rewrite\MySqlRewriter packages/ztd-query-mysql/src/Rewrite/MySqlRewriter.php:56
- type ZtdQuery\Platform\MySql\Rewrite\StatementRewriter packages/ztd-query-mysql/src/Rewrite/StatementRewriter.php:35