classPgSqlCteShadowComposer
final class PgSqlCteShadowComposer
Cte shadow composer for PostgreSQL queries.
Methods§
public function compose(string $sql, array<string, string> $tableCtes): stringParameters
$sql | string | |
$tableCtes | array<string, string> |
Returns
stringTest cases 9
PgSqlCteShadowComposerTest::testAddsShadowsAfterRecursiveModifiercallsPgSqlCteShadowComposerTest::testComposesAReferencedShadowWithoutAnExistingWithClausecallsPgSqlCteShadowComposerTest::testComposesShadowOverSchemaQualifiedSelectSourcecallsPgSqlCteShadowComposerTest::testDoesNotTreatLiteralsCommentsOrIdentifierPrefixesAsReferencescallsPgSqlCteShadowComposerTest::testHandlesAWithTokenWithoutFollowingHeaderTokenscallsPgSqlCteShadowComposerTest::testIncludesTransitivelyReferencedShadowCtescallsPgSqlCteShadowComposerTest::testInjectsReferencedBaseTableBeforeUserCtescallsPgSqlCteShadowComposerTest::testPreservesUserCteThatOwnsThePhysicalTableNamecallsPgSqlCteShadowComposerTest::testSkipsEntriesIndependentlyAndMatchesDeclaredNamesCaseInsensitivelycalls
Called from 1
Calls 9
- method-call ShadowDependencies::required() line 21
- new ShadowDependencies line 21
- function-call
array_keysline 23 - method-call PgSqlSelectRelationParser::unqualify() line 29
- new PgSqlSelectRelationParser line 29
- static-call SqlTokenStream::tokenize() line 30
- static-call PgSqlLexerProfile::create() line 30
- function-call
implodeline 33 - function-call
substr_replaceline 42
public function declaredCteNames(string $sql): list<string>Parameters
$sql | string |
Returns
list<string>Test cases 4
PgSqlCteShadowComposerTest::testDeclaredCteNamesReadsQuotedAndColumnListedCteNamescallsPgSqlCteShadowComposerTest::testHandlesNonHeadersIncompleteHeadersAndEmptyInputcallsPgSqlCteShadowComposerTest::testParsesRecursiveMaterializationAndNestedCteBodiescallsPgSqlCteShadowComposerTest::testUnquotesPostgreSqlCteIdentifiersAndRejectsForeignQuotescalls
Called from 1
Calls 2
- method-call HeaderParser::parseHeader() line 55
- new HeaderParser line 55
public function carryPrefix(string $originalSql, string $rewrittenStatement): stringCarries a statement's existing WITH clause into the rewritten SQL.
Parameters
$originalSql | string | |
$rewrittenStatement | string |
Returns
stringTest cases 6
PgSqlCteShadowComposerTest::testCarriesAnEmptyRewriteWithoutDereferencingMissingTokenscallsPgSqlCteShadowComposerTest::testCarryPrefixCarriesTheCompleteCteHeaderOntoARewrittenDmlProjectioncallsPgSqlCteShadowComposerTest::testMergesProjectionCtesIntoTheOriginalHeadercallsPgSqlCteShadowComposerTest::testMergesRecursiveHeadersAndPreservesLeadingCommentscallsPgSqlCteShadowComposerTest::testOrdersShadowCtesBeforeUserCtesThatReadThemcallsPgSqlCteShadowComposerTest::testRecognizesRecursiveRewrittenHeaderDependenciescalls
Called from 5
- method-call ZtdQuery\Platform\Postgres\Rewrite\Transformer\DeleteTransformer::transform() packages/ztd-query-postgres/src/Rewrite/Transformer/DeleteTransformer.php:52
- method-call ZtdQuery\Platform\Postgres\Rewrite\Transformer\Insert\SelectProjection::render() packages/ztd-query-postgres/src/Rewrite/Transformer/Insert/SelectProjection.php:52
- method-call ZtdQuery\Platform\Postgres\Rewrite\Transformer\InsertTransformer::transform() packages/ztd-query-postgres/src/Rewrite/Transformer/InsertTransformer.php:83
- method-call ZtdQuery\Platform\Postgres\Rewrite\Transformer\MergeTransformer::transform() packages/ztd-query-postgres/src/Rewrite/Transformer/MergeTransformer.php:77
- method-call ZtdQuery\Platform\Postgres\Rewrite\Transformer\UpdateTransformer::transform() packages/ztd-query-postgres/src/Rewrite/Transformer/UpdateTransformer.php:57
Calls 11
- method-call HeaderParser::parseHeader() line 63
- new HeaderParser line 63
- function-call
rtrimline 68 - function-call
substrline 68 - static-call SqlTokenStream::tokenize() line 70
- static-call PgSqlLexerProfile::create() line 70
- function-call
trimline 85 - method-call IdentifierReferences::referencesAnyIdentifier() line 91
- new IdentifierReferences line 91
- method-call PrefixMerge::prependRewritten() line 95
- new PrefixMerge line 95
public function statementSql(string $sql): stringReturns the statement body after its WITH declarations.
Parameters
$sql | string |
Returns
stringTest cases 3
Calls 2
- method-call HeaderParser::statementSql() line 106
- new HeaderParser line 106
Test cases 38§
Test cases that cover or call this symbol, from the coverage report and from the analyzed test sources.
Dedicated tests 20
PgSqlCteShadowComposerTest::testAddsShadowsAfterRecursiveModifiercallsPgSqlCteShadowComposerTest::testCarriesAnEmptyRewriteWithoutDereferencingMissingTokenscallsPgSqlCteShadowComposerTest::testCarryPrefixCarriesTheCompleteCteHeaderOntoARewrittenDmlProjectioncallsPgSqlCteShadowComposerTest::testComposesAReferencedShadowWithoutAnExistingWithClausecallsPgSqlCteShadowComposerTest::testComposesShadowOverSchemaQualifiedSelectSourcecallsPgSqlCteShadowComposerTest::testDeclaredCteNamesReadsQuotedAndColumnListedCteNamescallsPgSqlCteShadowComposerTest::testDoesNotTreatLiteralsCommentsOrIdentifierPrefixesAsReferencescallsPgSqlCteShadowComposerTest::testHandlesAWithTokenWithoutFollowingHeaderTokenscallsPgSqlCteShadowComposerTest::testHandlesNonHeadersIncompleteHeadersAndEmptyInputcallsPgSqlCteShadowComposerTest::testIncludesTransitivelyReferencedShadowCtescallsPgSqlCteShadowComposerTest::testInjectsReferencedBaseTableBeforeUserCtescallsPgSqlCteShadowComposerTest::testMergesProjectionCtesIntoTheOriginalHeadercallsPgSqlCteShadowComposerTest::testMergesRecursiveHeadersAndPreservesLeadingCommentscallsPgSqlCteShadowComposerTest::testOrdersShadowCtesBeforeUserCtesThatReadThemcallsPgSqlCteShadowComposerTest::testParsesRecursiveMaterializationAndNestedCteBodiescallsPgSqlCteShadowComposerTest::testPreservesUserCteThatOwnsThePhysicalTableNamecallsPgSqlCteShadowComposerTest::testRecognizesRecursiveRewrittenHeaderDependenciescallsPgSqlCteShadowComposerTest::testSkipsEntriesIndependentlyAndMatchesDeclaredNamesCaseInsensitivelycallsPgSqlCteShadowComposerTest::testStatementSqlExtractsTheStatementFollowingTheCteHeadercallsPgSqlCteShadowComposerTest::testUnquotesPostgreSqlCteIdentifiersAndRejectsForeignQuotescalls
Other tests reaching this symbol 18
PgSqlSessionFactoryTestcallsPgSqlRewriterTestcallsStatementRewriterTest::testRewriteMutationStagesDdlUntilItIsAppliedcallsStatementRewriterTest::testRewriteStatementShadowsRegisteredTablescallsStatementRewriterTest::testValidateReadTablesRejectsUndeclaredRelationscallsDeleteTransformerTestcallsSelectProjectionTest::testRenderProjectsGeneratedIdentityAndSourceColumnscallsInsertSelectRendererTestcallsInsertTransformerTestcallsMatchConditionsTestcallsRowActionsTestcallsMergeTransformerTestcallsPgSqlTransformerTestcallsSelectTransformerTestcallsUpdateTransformerTestcallsRowMutationResolverTestcallsPgSqlMutationResolverTestcallsPgSqlMergeParserTestcalls
Relations§
Instantiated in 6
- new ZtdQuery\Platform\Postgres\Rewrite\PgSqlRewriter::__construct() packages/ztd-query-postgres/src/Rewrite/PgSqlRewriter.php:92
- new ZtdQuery\Platform\Postgres\Rewrite\Transformer\DeleteTransformer::__construct() packages/ztd-query-postgres/src/Rewrite/Transformer/DeleteTransformer.php:34
- new ZtdQuery\Platform\Postgres\Rewrite\Transformer\InsertTransformer::__construct() packages/ztd-query-postgres/src/Rewrite/Transformer/InsertTransformer.php:45
- new ZtdQuery\Platform\Postgres\Rewrite\Transformer\MergeTransformer::__construct() packages/ztd-query-postgres/src/Rewrite/Transformer/MergeTransformer.php:35
- new ZtdQuery\Platform\Postgres\Rewrite\Transformer\SelectTransformer::__construct() packages/ztd-query-postgres/src/Rewrite/Transformer/SelectTransformer.php:48
- new ZtdQuery\Platform\Postgres\Rewrite\Transformer\UpdateTransformer::__construct() packages/ztd-query-postgres/src/Rewrite/Transformer/UpdateTransformer.php:34
Method calls 7
- method-call ZtdQuery\Platform\Postgres\Rewrite\StatementRewriter::validateReadTables() packages/ztd-query-postgres/src/Rewrite/StatementRewriter.php:103
- method-call ZtdQuery\Platform\Postgres\Rewrite\Transformer\DeleteTransformer::transform() packages/ztd-query-postgres/src/Rewrite/Transformer/DeleteTransformer.php:52
- method-call ZtdQuery\Platform\Postgres\Rewrite\Transformer\Insert\SelectProjection::render() packages/ztd-query-postgres/src/Rewrite/Transformer/Insert/SelectProjection.php:52
- method-call ZtdQuery\Platform\Postgres\Rewrite\Transformer\InsertTransformer::transform() packages/ztd-query-postgres/src/Rewrite/Transformer/InsertTransformer.php:83
- method-call ZtdQuery\Platform\Postgres\Rewrite\Transformer\MergeTransformer::transform() packages/ztd-query-postgres/src/Rewrite/Transformer/MergeTransformer.php:77
- method-call ZtdQuery\Platform\Postgres\Rewrite\Transformer\SelectTransformer::transform() packages/ztd-query-postgres/src/Rewrite/Transformer/SelectTransformer.php:103
- method-call ZtdQuery\Platform\Postgres\Rewrite\Transformer\UpdateTransformer::transform() packages/ztd-query-postgres/src/Rewrite/Transformer/UpdateTransformer.php:57
Type declarations 9
- type ZtdQuery\Platform\Postgres\Rewrite\PgSqlRewriter packages/ztd-query-postgres/src/Rewrite/PgSqlRewriter.php:69
- type ZtdQuery\Platform\Postgres\Rewrite\StatementRewriter packages/ztd-query-postgres/src/Rewrite/StatementRewriter.php:31
- type ZtdQuery\Platform\Postgres\Rewrite\StatementRewriter packages/ztd-query-postgres/src/Rewrite/StatementRewriter.php:45
- type ZtdQuery\Platform\Postgres\Rewrite\Transformer\DeleteTransformer packages/ztd-query-postgres/src/Rewrite/Transformer/DeleteTransformer.php:23
- type ZtdQuery\Platform\Postgres\Rewrite\Transformer\Insert\SelectProjection packages/ztd-query-postgres/src/Rewrite/Transformer/Insert/SelectProjection.php:23
- type ZtdQuery\Platform\Postgres\Rewrite\Transformer\InsertTransformer packages/ztd-query-postgres/src/Rewrite/Transformer/InsertTransformer.php:28
- type ZtdQuery\Platform\Postgres\Rewrite\Transformer\MergeTransformer packages/ztd-query-postgres/src/Rewrite/Transformer/MergeTransformer.php:22
- type ZtdQuery\Platform\Postgres\Rewrite\Transformer\SelectTransformer packages/ztd-query-postgres/src/Rewrite/Transformer/SelectTransformer.php:33
- type ZtdQuery\Platform\Postgres\Rewrite\Transformer\UpdateTransformer packages/ztd-query-postgres/src/Rewrite/Transformer/UpdateTransformer.php:23