classUpdateTransformer
final class UpdateTransformer
implements SqlTransformer
Transforms UPDATE statements into SELECT projections with CTE shadowing.
Methods§
public function __construct(MySqlParser $parser, SelectTransformer $selectTransformer)Configure the dependencies used by this operation.
Parameters
$parser | MySqlParser | |
$selectTransformer | SelectTransformer |
Calls 1
public function transform(string $sql, array $tables): string{@inheritDoc}
Parameters
$sql | string | |
$tables | array |
Returns
stringThrows
Test cases 14
UpdateTransformerTest::testBuildProjectionColumnsNotEmptycallsUpdateTransformerTest::testTransformExactOutputForUpdateWithJoinUsingcallsUpdateTransformerTest::testTransformExactOutputWithEmptyRowscallsUpdateTransformerTest::testTransformExactOutputWithShadowDatacallsUpdateTransformerTest::testTransformMultiUpdateProjectsValuesAndOriginalIdentityPerTargetcallsUpdateTransformerTest::testTransformPreservesCaseWhereExpressioncallsUpdateTransformerTest::testTransformPreservesIntervalUnitInAssignmentcallsUpdateTransformerTest::testTransformPreservesIntroducedHexLiteralcallsUpdateTransformerTest::testTransformPreservesIntroducedLiteralsForEveryUpdateTargetcallsUpdateTransformerTest::testTransformSimpleUpdateReturnsSelectcallsUpdateTransformerTest::testTransformThrowsForNonUpdateStatementcallsUpdateTransformerTest::testTransformUpdateWithPartitionThrowscallsUpdateTransformerTest::testTransformUpdateWithShadowDataAddsCtecallsUpdateTransformerTest::testTransformWithLowercasePartitionThrowscalls
Called from 2
- method-call ZtdQuery\Platform\MySql\Rewrite\Transformer\MySqlTransformer::transform() packages/ztd-query-mysql/src/Rewrite/Transformer/MySqlTransformer.php:75
- method-call ZtdQuery\Platform\MySql\Rewrite\Transformer\MySqlTransformer::transform() packages/ztd-query-mysql/src/Rewrite/Transformer/MySqlTransformer.php:93
Calls 16
- method-call MySqlParser::parse() line 45
- new UnsupportedSqlException line 47
- function-call
preg_matchline 50 - method-call TargetProjection::targetTable() line 56
- new TargetProjection line 56
- method-call UpdateAssignmentExtractor::values() line 61
- new UpdateAssignmentExtractor line 61
- method-call DmlWhereClauseExtractor::extract() line 62
- new DmlWhereClauseExtractor line 62
- method-call UpdateSourceExtractor::extract() line 63
- new UpdateSourceExtractor line 63
- method-call UpdateTransformer::buildProjection() line 64
- function-call
array_keysline 73 - method-call TargetProjection::targetsFromContexts() line 75
- method-call SelectTransformer::transform() line 87
- method-call MySqlCteShadowComposer::carryPrefix() line 88
public function buildProjection(
UpdateStatement $stmt,
array<int, string> $columns,
array<int, string> $primaryKeys = [],
list<MultiTableMutationTarget> $targets = [],
list<string> $assignmentValues = [],
?string $whereExpression = null,
?string $sourceExpression = null,
): array{sql: string, table: string, tables: array<string, array{alias: string}>}Build a result-select SQL from an UPDATE statement.
Parameters
$stmt | UpdateStatement | |
$columns | array<int, string> | |
$primaryKeys | array<int, string> | |
$targets | list<MultiTableMutationTarget> | |
$assignmentValues | list<string> | |
$whereExpression | ?string | |
$sourceExpression | ?string |
Returns
array{sql: string, table: string, tables: array<string, array{alias: string}>}Throws
RuntimeExceptionTest cases 47
UpdateTransformerTest::testBuildMultiTableUpdatecallsUpdateTransformerTest::testBuildMultiTableUpdateAdditionalTableAliascallsUpdateTransformerTest::testBuildProjectionCoveredColBlocksColumnFromRemaindercallsUpdateTransformerTest::testBuildProjectionCoveredColIsNotDuplicatedWhenTruecallsUpdateTransformerTest::testBuildProjectionCoveredColIsTrueNotFalsecallsUpdateTransformerTest::testBuildProjectionExactSqlForMultiTableUpdatecallsUpdateTransformerTest::testBuildProjectionExactSqlForSimpleUpdatecallsUpdateTransformerTest::testBuildProjectionExactSqlForUpdateWithAliascallsUpdateTransformerTest::testBuildProjectionExactSqlForUpdateWithJoincallsUpdateTransformerTest::testBuildProjectionExactSqlForUpdateWithJoinUsingcallsUpdateTransformerTest::testBuildProjectionExactSqlForUpdateWithLeftJoinOncallsUpdateTransformerTest::testBuildProjectionExactSqlForUpdateWithOrderByAndLimitcallsUpdateTransformerTest::testBuildProjectionJoinAliasPresentInOutputcallsUpdateTransformerTest::testBuildProjectionJoinOnClausecallsUpdateTransformerTest::testBuildProjectionJoinOnConditionFormattedcallsUpdateTransformerTest::testBuildProjectionJoinTypeIsIncludedcallsUpdateTransformerTest::testBuildProjectionJoinUsingClauseExactFormatcallsUpdateTransformerTest::testBuildProjectionJoinUsingExactColumnInOutputcallsUpdateTransformerTest::testBuildProjectionLimitContainsActualValuecallsUpdateTransformerTest::testBuildProjectionMultiTableAdditionalTableSameNameNoAliascallsUpdateTransformerTest::testBuildProjectionMultiTableNoAliasSameNameNotDuplicatedcallsUpdateTransformerTest::testBuildProjectionMultiTableReturnsAllTablescallsUpdateTransformerTest::testBuildProjectionMultiTableWithAliasDifferentFromTableNamecallsUpdateTransformerTest::testBuildProjectionOrderByExactFormatcallsUpdateTransformerTest::testBuildProjectionPreservesDerivedJoinSourcecallsUpdateTransformerTest::testBuildProjectionSingleTableNoAdditionalTablescallsUpdateTransformerTest::testBuildProjectionWithNoColumnsUsesWildcardcallsUpdateTransformerTest::testBuildProjectionWithNoOrderByReturnsNoOrderClausecallsUpdateTransformerTest::testBuildProjectionWithNoWhereReturnsNoWhereClausecallsUpdateTransformerTest::testBuildUpdateSelectAliasClausecallsUpdateTransformerTest::testBuildUpdateSelectCoveredColNotDuplicatedcallsUpdateTransformerTest::testBuildUpdateSelectExactFormatcallsUpdateTransformerTest::testBuildUpdateSelectOrderByFormatContainsKeywordcallsUpdateTransformerTest::testBuildUpdateSelectUsesAliasAndColumnscallsUpdateTransformerTest::testBuildUpdateSelectWithBacktickedUnqualifiedColumncallsUpdateTransformerTest::testBuildUpdateSelectWithEmptyColumnsUsesWildcardcallsUpdateTransformerTest::testBuildUpdateSelectWithJoincallsUpdateTransformerTest::testBuildUpdateSelectWithJoinAndLimitKeepsJoinInResultSelectcallsUpdateTransformerTest::testBuildUpdateSelectWithLeftJoincallsUpdateTransformerTest::testBuildUpdateSelectWithMultipleJoinscallsUpdateTransformerTest::testBuildUpdateSelectWithOnlyLimitSelectsRowsBeforeProjectingcallsUpdateTransformerTest::testBuildUpdateSelectWithOnlyOrderBySelectsRowsBeforeProjectingcallsUpdateTransformerTest::testBuildUpdateSelectWithOrderByAndLimitcallsUpdateTransformerTest::testBuildUpdateSelectWithoutColumnsIncludesSetValuesOnlycallsUpdateTransformerTest::testBuildUpdateSelectWithQualifiedColumnNamecallsUpdateTransformerTest::testBuildUpdateSelectWithUnqualifiedColumnNamecallsUpdateTransformerTest::testBuildUpdateWithJoinUsingClausecalls
Called from 3
- method-call ZtdQuery\Platform\MySql\Rewrite\Transformer\UpdateTransformer::transform() packages/ztd-query-mysql/src/Rewrite/Transformer/UpdateTransformer.php:64
- method-call ZtdQuery\Platform\MySql\Rewrite\Transformer\UpdateTransformer::transform() packages/ztd-query-mysql/src/Rewrite/Transformer/UpdateTransformer.php:76
- method-call ZtdQuery\Platform\MySql\Shadow\Mutation\Row\RowMutationResolver::resolveUpdate() packages/ztd-query-mysql/src/Shadow/Mutation/Row/RowMutationResolver.php:75
Calls 2
- method-call ResultSelect::buildProjection() line 115
- new ResultSelect line 115
Private surface 3§
Implementation details, listed for orientation only.
private MySqlParser $parserprivate SelectTransformer $selectTransformerprivate MySqlCteShadowComposer $cteComposerTest cases 302§
Test cases that cover or call this symbol, from the coverage report and from the analyzed test sources.
Dedicated tests 61
UpdateTransformerTest::testBuildMultiTableUpdatecallsUpdateTransformerTest::testBuildMultiTableUpdateAdditionalTableAliascallsUpdateTransformerTest::testBuildProjectionColumnsNotEmptycallsUpdateTransformerTest::testBuildProjectionCoveredColBlocksColumnFromRemaindercallsUpdateTransformerTest::testBuildProjectionCoveredColIsNotDuplicatedWhenTruecallsUpdateTransformerTest::testBuildProjectionCoveredColIsTrueNotFalsecallsUpdateTransformerTest::testBuildProjectionExactSqlForMultiTableUpdatecallsUpdateTransformerTest::testBuildProjectionExactSqlForSimpleUpdatecallsUpdateTransformerTest::testBuildProjectionExactSqlForUpdateWithAliascallsUpdateTransformerTest::testBuildProjectionExactSqlForUpdateWithJoincallsUpdateTransformerTest::testBuildProjectionExactSqlForUpdateWithJoinUsingcallsUpdateTransformerTest::testBuildProjectionExactSqlForUpdateWithLeftJoinOncallsUpdateTransformerTest::testBuildProjectionExactSqlForUpdateWithOrderByAndLimitcallsUpdateTransformerTest::testBuildProjectionJoinAliasPresentInOutputcallsUpdateTransformerTest::testBuildProjectionJoinOnClausecallsUpdateTransformerTest::testBuildProjectionJoinOnConditionFormattedcallsUpdateTransformerTest::testBuildProjectionJoinTypeIsIncludedcallsUpdateTransformerTest::testBuildProjectionJoinUsingClauseExactFormatcallsUpdateTransformerTest::testBuildProjectionJoinUsingExactColumnInOutputcallsUpdateTransformerTest::testBuildProjectionLimitContainsActualValuecallsUpdateTransformerTest::testBuildProjectionMultiTableAdditionalTableSameNameNoAliascallsUpdateTransformerTest::testBuildProjectionMultiTableNoAliasSameNameNotDuplicatedcallsUpdateTransformerTest::testBuildProjectionMultiTableReturnsAllTablescallsUpdateTransformerTest::testBuildProjectionMultiTableWithAliasDifferentFromTableNamecallsUpdateTransformerTest::testBuildProjectionOrderByExactFormatcallsUpdateTransformerTest::testBuildProjectionPreservesDerivedJoinSourcecallsUpdateTransformerTest::testBuildProjectionSingleTableNoAdditionalTablescallsUpdateTransformerTest::testBuildProjectionWithNoColumnsUsesWildcardcallsUpdateTransformerTest::testBuildProjectionWithNoOrderByReturnsNoOrderClausecallsUpdateTransformerTest::testBuildProjectionWithNoWhereReturnsNoWhereClausecallsUpdateTransformerTest::testBuildUpdateSelectAliasClausecallsUpdateTransformerTest::testBuildUpdateSelectCoveredColNotDuplicatedcallsUpdateTransformerTest::testBuildUpdateSelectExactFormatcallsUpdateTransformerTest::testBuildUpdateSelectOrderByFormatContainsKeywordcallsUpdateTransformerTest::testBuildUpdateSelectUsesAliasAndColumnscallsUpdateTransformerTest::testBuildUpdateSelectWithBacktickedUnqualifiedColumncallsUpdateTransformerTest::testBuildUpdateSelectWithEmptyColumnsUsesWildcardcallsUpdateTransformerTest::testBuildUpdateSelectWithJoincallsUpdateTransformerTest::testBuildUpdateSelectWithJoinAndLimitKeepsJoinInResultSelectcallsUpdateTransformerTest::testBuildUpdateSelectWithLeftJoincallsUpdateTransformerTest::testBuildUpdateSelectWithMultipleJoinscallsUpdateTransformerTest::testBuildUpdateSelectWithOnlyLimitSelectsRowsBeforeProjectingcallsUpdateTransformerTest::testBuildUpdateSelectWithOnlyOrderBySelectsRowsBeforeProjectingcallsUpdateTransformerTest::testBuildUpdateSelectWithOrderByAndLimitcallsUpdateTransformerTest::testBuildUpdateSelectWithoutColumnsIncludesSetValuesOnlycallsUpdateTransformerTest::testBuildUpdateSelectWithQualifiedColumnNamecallsUpdateTransformerTest::testBuildUpdateSelectWithUnqualifiedColumnNamecallsUpdateTransformerTest::testBuildUpdateWithJoinUsingClausecallsUpdateTransformerTest::testTransformExactOutputForUpdateWithJoinUsingcallsUpdateTransformerTest::testTransformExactOutputWithEmptyRowscallsUpdateTransformerTest::testTransformExactOutputWithShadowDatacallsUpdateTransformerTest::testTransformMultiUpdateProjectsValuesAndOriginalIdentityPerTargetcallsUpdateTransformerTest::testTransformPreservesCaseWhereExpressioncallsUpdateTransformerTest::testTransformPreservesIntervalUnitInAssignmentcallsUpdateTransformerTest::testTransformPreservesIntroducedHexLiteralcallsUpdateTransformerTest::testTransformPreservesIntroducedLiteralsForEveryUpdateTargetcallsUpdateTransformerTest::testTransformSimpleUpdateReturnsSelectcallsUpdateTransformerTest::testTransformThrowsForNonUpdateStatementcallsUpdateTransformerTest::testTransformUpdateWithPartitionThrowscallsUpdateTransformerTest::testTransformUpdateWithShadowDataAddsCtecallsUpdateTransformerTest::testTransformWithLowercasePartitionThrowscalls
Other tests reaching this symbol 241
RewriterBench::setUpcallsRewriteTarget::__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::testRewriteStatementcallsMySqlTransformerTest::testCommitRewriteStatecallsMySqlTransformerTest::testTransformDeleteDelegatesToDeleteTransformercallsMySqlTransformerTest::testTransformInsertDelegatesToInsertTransformercallsMySqlTransformerTest::testTransformReplaceDelegatesToReplaceTransformercallsMySqlTransformerTest::testTransformSelectPassthroughcallsMySqlTransformerTest::testTransformSelectWithShadowDatacallsRowMutationResolverTest::testMultiTableTargetscallsRowMutationResolverTest::testResolveDeletecallsRowMutationResolverTest::testResolveInsertcallsRowMutationResolverTest::testResolveReplacecallsRowMutationResolverTest::testResolveUpdatecallsMySqlMutationResolverTest::testCreateTableIfNotExistsWhenExistscallsMySqlMutationResolverTest::testCreateTableLikeThrowsForUnknownSourcecallsMySqlMutationResolverTest::testCreateTableWithoutIfNotExistsThrowsWhenExistscallsMySqlMutationResolverTest::testDeleteEnsuresTableInShadowStorecallsMySqlMutationResolverTest::testDeleteUsesColumnsFromShadowStorecallsMySqlMutationResolverTest::testDropTableIfExistsWhenNotExistscallsMySqlMutationResolverTest::testDropTableWithoutIfExistsThrowsWhenNotExistscallsMySqlMutationResolverTest::testInsertIgnoreReturnsInsertMutationcallsMySqlMutationResolverTest::testInsertOnDuplicateKeyUpdateReturnsUpsertcallsMySqlMutationResolverTest::testInsertOnDuplicateKeyUpdateWithQualifiedColumncallsMySqlMutationResolverTest::testMultiDeleteEnsuresTablesInStorecallsMySqlMutationResolverTest::testMultiTableUpdateEnsuresTablesInStorecallsMySqlMutationResolverTest::testResolveAlterTableReturnsAlterTableMutationcallsMySqlMutationResolverTest::testResolveAlterTableThrowsForUnknownTablecallsMySqlMutationResolverTest::testResolveCreateTableAsSelectExtractsAliasedAndExprColumnscallsMySqlMutationResolverTest::testResolveCreateTableAsSelectExtractsColumnNamescallsMySqlMutationResolverTest::testResolveCreateTableAsSelectExtractsColumnsFromAliasedExprscallsMySqlMutationResolverTest::testResolveCreateTableAsSelectExtractsPlainColumnNamescallsMySqlMutationResolverTest::testResolveCreateTableAsSelectHandlesExpressionWithoutAliascallsMySqlMutationResolverTest::testResolveCreateTableAsSelectReturnsCreateTableAsSelectMutationcallsMySqlMutationResolverTest::testResolveCreateTableAsSelectWithColumnNamescallsMySqlMutationResolverTest::testResolveCreateTableIfNotExistsDoesNotThrowForExistingTablecallsMySqlMutationResolverTest::testResolveCreateTableIfNotExistsSkipsWhenExistscallsMySqlMutationResolverTest::testResolveCreateTableLikecallsMySqlMutationResolverTest::testResolveCreateTableLikeReturnsCreateTableLikeMutationcallsMySqlMutationResolverTest::testResolveCreateTableReturnsCreateTableMutationcallsMySqlMutationResolverTest::testResolveDeleteEnsuresTargetTableInStorecallsMySqlMutationResolverTest::testResolveDeleteMultiTableReturnsMultiDeleteMutationcallsMySqlMutationResolverTest::testResolveDeleteReturnsDeleteMutationcallsMySqlMutationResolverTest::testResolveDeleteThrowsWhenNoSchemaContextExistscallsMySqlMutationResolverTest::testResolveDeleteUsesColumnsFromRegistryWhenStoreEmptycallsMySqlMutationResolverTest::testResolveDeleteUsesColumnsFromShadowStoreFirstcallsMySqlMutationResolverTest::testResolveDeleteWithShadowDataButNoDefinitioncallsMySqlMutationResolverTest::testResolveDeleteWithSingleTargetReturnsPrimaryKeyscallsMySqlMutationResolverTest::testResolveDropTableIfExistsDoesNotThrowcallsMySqlMutationResolverTest::testResolveDropTableReturnsDropTableMutationcallsMySqlMutationResolverTest::testResolveDropTableWithIfExistsDoesNotThrowForMissingTablecallsMySqlMutationResolverTest::testResolveDropTableWithoutIfExistsThrowsForMissingTablecallsMySqlMutationResolverTest::testResolveInsertIgnoreIncludesPrimaryKeyscallsMySqlMutationResolverTest::testResolveInsertIgnoreProducesInsertMutationcallsMySqlMutationResolverTest::testResolveInsertIgnoreReturnsInsertMutationWithIgnorecallsMySqlMutationResolverTest::testResolveInsertIgnoreReturnsPrimaryKeysFromDefinitioncallsMySqlMutationResolverTest::testResolveInsertIgnoreWithoutDefinitionReturnEmptyPkscallsMySqlMutationResolverTest::testResolveInsertOnDuplicateKeyExtractsQualifiedColumnNamecallsMySqlMutationResolverTest::testResolveInsertOnDuplicateKeyExtractsUpdateColumnscallsMySqlMutationResolverTest::testResolveInsertOnDuplicateKeyReturnsUpsertMutationcallsMySqlMutationResolverTest::testResolveInsertOnDuplicateKeyWithBacktickedColumncallsMySqlMutationResolverTest::testResolveInsertOnDuplicateKeyWithDottedColumncallsMySqlMutationResolverTest::testResolveInsertOnDuplicateKeyWithoutRegisteredSchemacallsMySqlMutationResolverTest::testResolveInsertReturnsInsertMutationcallsMySqlMutationResolverTest::testResolveInsertWithOnDuplicateKeyReturnsUpsertMutationcallsMySqlMutationResolverTest::testResolveInsertWithQualifiedOnDuplicateKeycallsMySqlMutationResolverTest::testResolveMultiDeleteEnsuresAllTablesInStorecallsMySqlMutationResolverTest::testResolveMultiDeleteReturnsPrimaryKeysFromDefinitioncallsMySqlMutationResolverTest::testResolveMultiDeleteThrowsForUnknownTablecallsMySqlMutationResolverTest::testResolveMultiUpdateReturnsPrimaryKeysFromDefinitioncallsMySqlMutationResolverTest::testResolveMultiUpdateThrowsForUnknownTablecallsMySqlMutationResolverTest::testResolveReplaceReturnsPrimaryKeysFromRegistrycallsMySqlMutationResolverTest::testResolveReplaceReturnsReplaceMutationcallsMySqlMutationResolverTest::testResolveReplaceWithoutRegisteredSchemacallsMySqlMutationResolverTest::testResolveReturnsNullForUnhandledStatementcallsMySqlMutationResolverTest::testResolveRowAliasUpsertAppliesIncomingColumnscallsMySqlMutationResolverTest::testResolveSelectReturnsNullcallsMySqlMutationResolverTest::testResolveTruncateReturnsTruncateMutationcallsMySqlMutationResolverTest::testResolveUpdateMultiTableReturnsMultiUpdateMutationcallsMySqlMutationResolverTest::testResolveUpdateMultiTableReturnsPrimaryKeysFromDefinitioncallsMySqlMutationResolverTest::testResolveUpdateReturnsUpdateMutationcallsMySqlMutationResolverTest::testResolveUpdateThrowsWhenNoSchemaAvailablecallsMySqlMutationResolverTest::testResolveUpdateUsesColumnsFromRegistryWhenStoreEmptycallsMySqlMutationResolverTest::testResolveUpdateUsesColumnsFromShadowStoreFirstcallsMySqlMutationResolverTest::testResolveUpdateWithShadowDataButNoDefinitioncallsMySqlMutationResolverTest::testResolveUpsertReturnsPrimaryKeysFromDefinitioncallsMySqlMutationResolverTest::testUpdateDoesNotTreatRowsFromUnknownInsertAsSchemacallsMySqlMutationResolverTest::testUpdateEnsuresTableInShadowStorecallsMySqlMutationResolverTest::testUpdateUsesColumnsFromStoreWhenAvailablecalls
Relations§
Instantiated in 1
Method calls 3
- method-call ZtdQuery\Platform\MySql\Rewrite\Transformer\MySqlTransformer::transform() packages/ztd-query-mysql/src/Rewrite/Transformer/MySqlTransformer.php:75
- method-call ZtdQuery\Platform\MySql\Rewrite\Transformer\MySqlTransformer::transform() packages/ztd-query-mysql/src/Rewrite/Transformer/MySqlTransformer.php:93
- method-call ZtdQuery\Platform\MySql\Shadow\Mutation\Row\RowMutationResolver::resolveUpdate() packages/ztd-query-mysql/src/Shadow/Mutation/Row/RowMutationResolver.php:75
Type declarations 5
- type ZtdQuery\Platform\MySql\Rewrite\Transformer\MySqlTransformer packages/ztd-query-mysql/src/Rewrite/Transformer/MySqlTransformer.php:29
- type ZtdQuery\Platform\MySql\Rewrite\Transformer\MySqlTransformer packages/ztd-query-mysql/src/Rewrite/Transformer/MySqlTransformer.php:41
- type ZtdQuery\Platform\MySql\Shadow\Mutation\Row\RowMutationResolver packages/ztd-query-mysql/src/Shadow/Mutation/Row/RowMutationResolver.php:41
- type ZtdQuery\Platform\MySql\Shadow\MySqlMutationResolver packages/ztd-query-mysql/src/Shadow/MySqlMutationResolver.php:37
- type ZtdQuery\Platform\MySql\Shadow\MySqlMutationResolver packages/ztd-query-mysql/src/Shadow/MySqlMutationResolver.php:47