classReplaceTransformer
final class ReplaceTransformer
implements SqlTransformer
Transforms REPLACE statements into SELECT queries that return the replaced rows. Applies CTE shadowing via the SelectTransformer delegate.
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 29
ReplaceTransformerTest::testCommitRewriteStatecallsReplaceTransformerTest::testTransformRejectsEmptyReplaceValuescallsReplaceTransformerTest::testTransformReplaceCastsParametersToTargetColumnTypescallsReplaceTransformerTest::testTransformReplaceColumnsResolvedFromTableContextcallsReplaceTransformerTest::testTransformReplaceIgnoresLeadingHashCommentcallsReplaceTransformerTest::testTransformReplaceMultipleRowscallsReplaceTransformerTest::testTransformReplaceMultiRowExactSqlAssertioncallsReplaceTransformerTest::testTransformReplaceMultiRowsExactUnionFormatcallsReplaceTransformerTest::testTransformReplaceNoColumnsNoContextThrowscallsReplaceTransformerTest::testTransformReplaceNullDestThrowscallsReplaceTransformerTest::testTransformReplaceProjectsCorrectColumnValuescallsReplaceTransformerTest::testTransformReplaceResolvesColumnsFromContextcallsReplaceTransformerTest::testTransformReplaceSelectSubquerycallsReplaceTransformerTest::testTransformReplaceSelectSubqueryPassesThroughcallsReplaceTransformerTest::testTransformReplaceSetExactFormatcallsReplaceTransformerTest::testTransformReplaceSetExactSqlAssertioncallsReplaceTransformerTest::testTransformReplaceSetExactSqlContainsSelectPrefixcallsReplaceTransformerTest::testTransformReplaceSetSelectContainsColumnValuescallsReplaceTransformerTest::testTransformReplaceThrowsWhenNoColumnsResolvablecallsReplaceTransformerTest::testTransformReplaceTrimsWhitespaceInValuescallsReplaceTransformerTest::testTransformReplaceValuesCountMismatchReturnsInvalidcallsReplaceTransformerTest::testTransformReplaceValuesCountMismatchReturnsInvalidReplacecallsReplaceTransformerTest::testTransformReplaceValuesExactSelectFormatcallsReplaceTransformerTest::testTransformReplaceValuesExactSqlAssertioncallsReplaceTransformerTest::testTransformReplaceValuesTrimsWhitespacecallsReplaceTransformerTest::testTransformReplaceWithSetSyntaxcallsReplaceTransformerTest::testTransformReplaceWithValuescallsReplaceTransformerTest::testTransformThrowsForEmptySqlcallsReplaceTransformerTest::testTransformThrowsForNonReplaceStatementcalls
Called from 1
Calls 6
- method-call ReplaceStatementConverter::asInsert() line 37
- new ReplaceStatementConverter line 37
- method-call MySqlParser::parse() line 38
- function-call
get_object_varsline 42 - new UnsupportedSqlException line 43
- method-call InsertTransformer::transform() line 49
public function commitRewriteState(): voidCommit Rewrite State for the supplied MySQL input.
Test cases 1
Called from 1
Calls 1
- method-call InsertTransformer::commitRewriteState() line 60
Private surface 2§
Implementation details, listed for orientation only.
private MySqlParser $parserprivate InsertTransformer $insertTransformerTest cases 190§
Test cases that cover or call this symbol, from the coverage report and from the analyzed test sources.
Dedicated tests 29
ReplaceTransformerTest::testCommitRewriteStatecallsReplaceTransformerTest::testTransformRejectsEmptyReplaceValuescallsReplaceTransformerTest::testTransformReplaceCastsParametersToTargetColumnTypescallsReplaceTransformerTest::testTransformReplaceColumnsResolvedFromTableContextcallsReplaceTransformerTest::testTransformReplaceIgnoresLeadingHashCommentcallsReplaceTransformerTest::testTransformReplaceMultipleRowscallsReplaceTransformerTest::testTransformReplaceMultiRowExactSqlAssertioncallsReplaceTransformerTest::testTransformReplaceMultiRowsExactUnionFormatcallsReplaceTransformerTest::testTransformReplaceNoColumnsNoContextThrowscallsReplaceTransformerTest::testTransformReplaceNullDestThrowscallsReplaceTransformerTest::testTransformReplaceProjectsCorrectColumnValuescallsReplaceTransformerTest::testTransformReplaceResolvesColumnsFromContextcallsReplaceTransformerTest::testTransformReplaceSelectSubquerycallsReplaceTransformerTest::testTransformReplaceSelectSubqueryPassesThroughcallsReplaceTransformerTest::testTransformReplaceSetExactFormatcallsReplaceTransformerTest::testTransformReplaceSetExactSqlAssertioncallsReplaceTransformerTest::testTransformReplaceSetExactSqlContainsSelectPrefixcallsReplaceTransformerTest::testTransformReplaceSetSelectContainsColumnValuescallsReplaceTransformerTest::testTransformReplaceThrowsWhenNoColumnsResolvablecallsReplaceTransformerTest::testTransformReplaceTrimsWhitespaceInValuescallsReplaceTransformerTest::testTransformReplaceValuesCountMismatchReturnsInvalidcallsReplaceTransformerTest::testTransformReplaceValuesCountMismatchReturnsInvalidReplacecallsReplaceTransformerTest::testTransformReplaceValuesExactSelectFormatcallsReplaceTransformerTest::testTransformReplaceValuesExactSqlAssertioncallsReplaceTransformerTest::testTransformReplaceValuesTrimsWhitespacecallsReplaceTransformerTest::testTransformReplaceWithSetSyntaxcallsReplaceTransformerTest::testTransformReplaceWithValuescallsReplaceTransformerTest::testTransformThrowsForEmptySqlcallsReplaceTransformerTest::testTransformThrowsForNonReplaceStatementcalls
Other tests reaching this symbol 161
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::testTransformSelectWithShadowDatacalls
Relations§
Instantiated in 1
Method calls 2
- method-call ZtdQuery\Platform\MySql\Rewrite\Transformer\MySqlTransformer::transform() packages/ztd-query-mysql/src/Rewrite/Transformer/MySqlTransformer.php:101
- method-call ZtdQuery\Platform\MySql\Rewrite\Transformer\MySqlTransformer::commitRewriteState() packages/ztd-query-mysql/src/Rewrite/Transformer/MySqlTransformer.php:113