classMySqlCteShadowComposer
final class MySqlCteShadowComposer
Implements the My Sql Cte Shadow Composer contract for MySQL.
Methods§
public function __construct()Configure the dependencies used by this operation.
Calls 1
- static-call MySqlLexerProfile::create() line 24
public function compose(string $sql, array<string, string> $tableCtes): stringParameters
$sql | string | |
$tableCtes | array<string, string> |
Returns
stringTest cases 9
MySqlCteShadowComposerTest::testAddsShadowsAfterRecursiveModifiercallsMySqlCteShadowComposerTest::testComposesAReferencedShadowWithoutAnExistingWithClausecallsMySqlCteShadowComposerTest::testComposesShadowOverSchemaQualifiedSelectSourcecallsMySqlCteShadowComposerTest::testDoesNotTreatLiteralsCommentsOrIdentifierPrefixesAsReferencescallsMySqlCteShadowComposerTest::testHandlesAWithTokenWithoutFollowingHeaderTokenscallsMySqlCteShadowComposerTest::testIncludesTransitivelyReferencedShadowCtescallsMySqlCteShadowComposerTest::testInjectsReferencedBaseTableBeforeUserCtescallsMySqlCteShadowComposerTest::testPreservesUserCteThatOwnsThePhysicalTableNamecallsMySqlCteShadowComposerTest::testSkipsEntriesIndependentlyAndMatchesDeclaredNamesCaseInsensitivelycalls
Called from 1
Calls 12
- function-call
array_fill_keysline 32 - method-call MySqlCteShadowComposer::declaredCteNames() line 32
- function-call
array_reverseline 35 - function-call
strtolowerline 36 - method-call IdentifierReferences::referencesIdentifier() line 42
- new IdentifierReferences line 42
- function-call
array_keysline 54 - method-call MySqlSelectRelationParser::unqualify() line 60
- new MySqlSelectRelationParser line 60
- static-call SqlTokenStream::tokenize() line 61
- function-call
implodeline 64 - function-call
substr_replaceline 73
public function declaredCteNames(string $sql): list<string>Parameters
$sql | string |
Returns
list<string>Test cases 4
MySqlCteShadowComposerTest::testDeclaredCteNamesReadsQuotedAndColumnListedCteNamescallsMySqlCteShadowComposerTest::testHandlesNonHeadersIncompleteHeadersAndEmptyInputcallsMySqlCteShadowComposerTest::testParsesRecursiveMaterializationAndNestedCteBodiescallsMySqlCteShadowComposerTest::testUnquotesEmptyAndEscapedCteIdentifierscalls
Called from 2
- method-call ZtdQuery\Platform\MySql\Rewrite\Context\TableContext::findUnknownTable() packages/ztd-query-mysql/src/Rewrite/Context/TableContext.php:101
- method-call ZtdQuery\Platform\MySql\Rewrite\Cte\MySqlCteShadowComposer::compose() packages/ztd-query-mysql/src/Rewrite/Cte/MySqlCteShadowComposer.php:32
Calls 2
- method-call HeaderParser::parseHeader() line 86
- new HeaderParser line 86
public function carryPrefix(string $originalSql, string $rewrittenStatement): stringCarry Prefix for the supplied MySQL input.
Parameters
$originalSql | string | |
$rewrittenStatement | string |
Returns
stringTest cases 6
MySqlCteShadowComposerTest::testCarriesAnEmptyRewriteWithoutDereferencingMissingTokenscallsMySqlCteShadowComposerTest::testCarryPrefixCarriesTheCompleteCteHeaderOntoARewrittenDmlProjectioncallsMySqlCteShadowComposerTest::testMergesProjectionCtesIntoTheOriginalHeadercallsMySqlCteShadowComposerTest::testMergesRecursiveHeadersAndPreservesLeadingCommentscallsMySqlCteShadowComposerTest::testOrdersShadowCtesBeforeUserCtesThatReadThemcallsMySqlCteShadowComposerTest::testRecognizesRecursiveRewrittenHeaderDependenciescalls
Called from 6
- method-call ZtdQuery\Platform\MySql\Rewrite\Transformer\DeleteTransformer::transform() packages/ztd-query-mysql/src/Rewrite/Transformer/DeleteTransformer.php:68
- method-call ZtdQuery\Platform\MySql\Rewrite\Transformer\InsertTransformer::transform() packages/ztd-query-mysql/src/Rewrite/Transformer/InsertTransformer.php:80
- method-call ZtdQuery\Platform\MySql\Rewrite\Transformer\MySqlTransformer::transform() packages/ztd-query-mysql/src/Rewrite/Transformer/MySqlTransformer.php:72
- 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:78
- method-call ZtdQuery\Platform\MySql\Rewrite\Transformer\UpdateTransformer::transform() packages/ztd-query-mysql/src/Rewrite/Transformer/UpdateTransformer.php:88
Calls 8
- method-call HeaderParser::parseHeader() line 94
- new HeaderParser line 94
- function-call
rtrimline 99 - function-call
substrline 99 - static-call SqlTokenStream::tokenize() line 101
- method-call HeaderParser::contents() line 111
- method-call IdentifierReferences::referencesAnyIdentifier() line 113
- new IdentifierReferences line 113
public function statementSql(string $sql): stringStatement Sql for the supplied MySQL input.
Parameters
$sql | string |
Returns
stringTest cases 4
MySqlCteShadowComposerTest::testExtractsMySqlDmlAfterHashCommentsInTheCteHeadercallsMySqlCteShadowComposerTest::testHandlesNonHeadersIncompleteHeadersAndEmptyInputcallsMySqlCteShadowComposerTest::testParsesRecursiveMaterializationAndNestedCteBodiescallsMySqlCteShadowComposerTest::testStatementSqlExtractsTheStatementFollowingTheCteHeadercalls
Called from 2
- method-call ZtdQuery\Platform\MySql\Rewrite\StatementRewriter::mutationStatement() packages/ztd-query-mysql/src/Rewrite/StatementRewriter.php:99
- method-call ZtdQuery\Platform\MySql\Rewrite\Transformer\MySqlTransformer::transform() packages/ztd-query-mysql/src/Rewrite/Transformer/MySqlTransformer.php:68
Calls 3
- method-call HeaderParser::parseHeader() line 136
- new HeaderParser line 136
- function-call
substrline 138
Private surface 1§
Implementation details, listed for orientation only.
private SqlLexerProfile $lexerProfileTest cases 38§
Test cases that cover or call this symbol, from the coverage report and from the analyzed test sources.
Dedicated tests 21
MySqlCteShadowComposerTest::testAddsShadowsAfterRecursiveModifiercallsMySqlCteShadowComposerTest::testCarriesAnEmptyRewriteWithoutDereferencingMissingTokenscallsMySqlCteShadowComposerTest::testCarryPrefixCarriesTheCompleteCteHeaderOntoARewrittenDmlProjectioncallsMySqlCteShadowComposerTest::testComposesAReferencedShadowWithoutAnExistingWithClausecallsMySqlCteShadowComposerTest::testComposesShadowOverSchemaQualifiedSelectSourcecallsMySqlCteShadowComposerTest::testDeclaredCteNamesReadsQuotedAndColumnListedCteNamescallsMySqlCteShadowComposerTest::testDoesNotTreatLiteralsCommentsOrIdentifierPrefixesAsReferencescallsMySqlCteShadowComposerTest::testExtractsMySqlDmlAfterHashCommentsInTheCteHeadercallsMySqlCteShadowComposerTest::testHandlesAWithTokenWithoutFollowingHeaderTokenscallsMySqlCteShadowComposerTest::testHandlesNonHeadersIncompleteHeadersAndEmptyInputcallsMySqlCteShadowComposerTest::testIncludesTransitivelyReferencedShadowCtescallsMySqlCteShadowComposerTest::testInjectsReferencedBaseTableBeforeUserCtescallsMySqlCteShadowComposerTest::testMergesProjectionCtesIntoTheOriginalHeadercallsMySqlCteShadowComposerTest::testMergesRecursiveHeadersAndPreservesLeadingCommentscallsMySqlCteShadowComposerTest::testOrdersShadowCtesBeforeUserCtesThatReadThemcallsMySqlCteShadowComposerTest::testParsesRecursiveMaterializationAndNestedCteBodiescallsMySqlCteShadowComposerTest::testPreservesUserCteThatOwnsThePhysicalTableNamecallsMySqlCteShadowComposerTest::testRecognizesRecursiveRewrittenHeaderDependenciescallsMySqlCteShadowComposerTest::testSkipsEntriesIndependentlyAndMatchesDeclaredNamesCaseInsensitivelycallsMySqlCteShadowComposerTest::testStatementSqlExtractsTheStatementFollowingTheCteHeadercallsMySqlCteShadowComposerTest::testUnquotesEmptyAndEscapedCteIdentifierscalls
Other tests reaching this symbol 17
MySqlSessionFactoryTestcallsTableContextTest::testBuildTableContextcallsTableContextTest::testFindUnknownTablecallsTableContextTest::testHasSchemaContextcallsTableContextTest::testRequireKnownTablescallsTableContextTest::testTableExistscallsMySqlRewriterTestcallsStatementRewriterTest::testMutationStatementcallsStatementRewriterTest::testRewriteStatementcallsDeleteTransformerTestcallsInsertTransformerTestcallsMySqlTransformerTestcallsReplaceTransformerTestcallsSelectTransformerTestcallsUpdateTransformerTestcallsRowMutationResolverTestcallsMySqlMutationResolverTestcalls
Relations§
Instantiated in 6
- new ZtdQuery\Platform\MySql\Rewrite\MySqlRewriter::__construct() packages/ztd-query-mysql/src/Rewrite/MySqlRewriter.php:70
- new ZtdQuery\Platform\MySql\Rewrite\Transformer\DeleteTransformer::__construct() packages/ztd-query-mysql/src/Rewrite/Transformer/DeleteTransformer.php:33
- new ZtdQuery\Platform\MySql\Rewrite\Transformer\InsertTransformer::__construct() packages/ztd-query-mysql/src/Rewrite/Transformer/InsertTransformer.php:48
- new ZtdQuery\Platform\MySql\Rewrite\Transformer\MySqlTransformer::__construct() packages/ztd-query-mysql/src/Rewrite/Transformer/MySqlTransformer.php:51
- new ZtdQuery\Platform\MySql\Rewrite\Transformer\SelectTransformer::__construct() packages/ztd-query-mysql/src/Rewrite/Transformer/SelectTransformer.php:48
- new ZtdQuery\Platform\MySql\Rewrite\Transformer\UpdateTransformer::__construct() packages/ztd-query-mysql/src/Rewrite/Transformer/UpdateTransformer.php:36
Method calls 10
- method-call ZtdQuery\Platform\MySql\Rewrite\Context\TableContext::findUnknownTable() packages/ztd-query-mysql/src/Rewrite/Context/TableContext.php:101
- method-call ZtdQuery\Platform\MySql\Rewrite\StatementRewriter::mutationStatement() packages/ztd-query-mysql/src/Rewrite/StatementRewriter.php:99
- method-call ZtdQuery\Platform\MySql\Rewrite\Transformer\DeleteTransformer::transform() packages/ztd-query-mysql/src/Rewrite/Transformer/DeleteTransformer.php:68
- method-call ZtdQuery\Platform\MySql\Rewrite\Transformer\InsertTransformer::transform() packages/ztd-query-mysql/src/Rewrite/Transformer/InsertTransformer.php:80
- method-call ZtdQuery\Platform\MySql\Rewrite\Transformer\MySqlTransformer::transform() packages/ztd-query-mysql/src/Rewrite/Transformer/MySqlTransformer.php:68
- method-call ZtdQuery\Platform\MySql\Rewrite\Transformer\MySqlTransformer::transform() packages/ztd-query-mysql/src/Rewrite/Transformer/MySqlTransformer.php:72
- 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:78
- method-call ZtdQuery\Platform\MySql\Rewrite\Transformer\SelectTransformer::transform() packages/ztd-query-mysql/src/Rewrite/Transformer/SelectTransformer.php:102
- method-call ZtdQuery\Platform\MySql\Rewrite\Transformer\UpdateTransformer::transform() packages/ztd-query-mysql/src/Rewrite/Transformer/UpdateTransformer.php:88
Type declarations 8
- type ZtdQuery\Platform\MySql\Rewrite\Context\TableContext packages/ztd-query-mysql/src/Rewrite/Context/TableContext.php:33
- type ZtdQuery\Platform\MySql\Rewrite\MySqlRewriter packages/ztd-query-mysql/src/Rewrite/MySqlRewriter.php:49
- type ZtdQuery\Platform\MySql\Rewrite\StatementRewriter packages/ztd-query-mysql/src/Rewrite/StatementRewriter.php:35
- type ZtdQuery\Platform\MySql\Rewrite\Transformer\DeleteTransformer packages/ztd-query-mysql/src/Rewrite/Transformer/DeleteTransformer.php:22
- type ZtdQuery\Platform\MySql\Rewrite\Transformer\InsertTransformer packages/ztd-query-mysql/src/Rewrite/Transformer/InsertTransformer.php:31
- type ZtdQuery\Platform\MySql\Rewrite\Transformer\MySqlTransformer packages/ztd-query-mysql/src/Rewrite/Transformer/MySqlTransformer.php:32
- type ZtdQuery\Platform\MySql\Rewrite\Transformer\SelectTransformer packages/ztd-query-mysql/src/Rewrite/Transformer/SelectTransformer.php:31
- type ZtdQuery\Platform\MySql\Rewrite\Transformer\UpdateTransformer packages/ztd-query-mysql/src/Rewrite/Transformer/UpdateTransformer.php:25