classHeaderParser
final class HeaderParser
Restricted visibility: declared "@visibility root". Code outside that scope must not name this declaration.
Header parser operations for PostgreSQL cte.
Methods§
public function statementSql(string $sql): stringReturns the statement body after its WITH declarations.
Parameters
$sql | string |
Returns
stringCalled from 2
- method-call ZtdQuery\Platform\Postgres\Rewrite\Cte\PgSqlCteShadowComposer::statementSql() packages/ztd-query-postgres/src/Rewrite/Cte/PgSqlCteShadowComposer.php:106
- method-call ZtdQuery\Platform\Postgres\Sql\Merge\PgSqlMergeParser::parse() packages/ztd-query-postgres/src/Sql/Merge/PgSqlMergeParser.php:33
Calls 2
- method-call HeaderParser::parseHeader() line 24
- function-call
substrline 26
public function parseHeader(string $sql): array{names: list<string>, statementOffset: int|null}Parameters
$sql | string |
Returns
array{names: list<string>, statementOffset: int|null}Test cases 1
Called from 5
- method-call ZtdQuery\Platform\Postgres\Rewrite\Cte\PgSqlCteShadowComposer::declaredCteNames() packages/ztd-query-postgres/src/Rewrite/Cte/PgSqlCteShadowComposer.php:55
- method-call ZtdQuery\Platform\Postgres\Rewrite\Cte\PgSqlCteShadowComposer::carryPrefix() packages/ztd-query-postgres/src/Rewrite/Cte/PgSqlCteShadowComposer.php:63
- method-call ZtdQuery\Platform\Postgres\Rewrite\Cte\PgSqlCteShadowComposer::carryPrefix() packages/ztd-query-postgres/src/Rewrite/Cte/PgSqlCteShadowComposer.php:73
- method-call ZtdQuery\Platform\Postgres\Rewrite\Cte\ShadowDependencies::required() packages/ztd-query-postgres/src/Rewrite/Cte/ShadowDependencies.php:24
- method-call ZtdQuery\Platform\Postgres\Sql\Cte\HeaderParser::statementSql() packages/ztd-query-postgres/src/Sql/Cte/HeaderParser.php:24
Calls 5
- method-call HeaderParser::topLevelTokens() line 34
- method-call HeaderParser::identifierName() line 46
- method-call HeaderParser::bodyStartIndex() line 52
- method-call HeaderParser::isSymbol() line 54
- function-call
strtolowerline 59
public function findAsIndex(list<SqlToken> $tokens, int $start): ?intParameters
$tokens | list<SqlToken> | |
$start | int |
Returns
?intTest cases 1
Called from 1
Calls 1
- class-const SqlTokenKind::Word() line 87
public function isSymbol(?SqlToken $token, string $symbol): boolIs symbol.
Parameters
$token | ?SqlToken | |
$symbol | string |
Returns
boolTest cases 1
Called from 3
- method-call ZtdQuery\Platform\Postgres\Sql\Cte\HeaderParser::parseHeader() packages/ztd-query-postgres/src/Sql/Cte/HeaderParser.php:54
- method-call ZtdQuery\Platform\Postgres\Sql\Cte\HeaderParser::parseHeader() packages/ztd-query-postgres/src/Sql/Cte/HeaderParser.php:55
- method-call ZtdQuery\Platform\Postgres\Sql\Cte\HeaderParser::parseHeader() packages/ztd-query-postgres/src/Sql/Cte/HeaderParser.php:63
Calls 1
- class-const SqlTokenKind::Symbol() line 101
public function identifierName(SqlToken $token): ?stringIdentifier name.
Parameters
$token | SqlToken |
Returns
?stringTest cases 1
Called from 2
Calls 5
- class-const SqlTokenKind::Word() line 110
- class-const SqlTokenKind::QuotedIdentifier() line 113
- function-call
strlenline 113 - function-call
substrline 118 - function-call
str_replaceline 120
public function topLevelTokens(string $sql): list<SqlToken>Retains top-level tokens while treating each CTE body as an opaque span.
Parameters
$sql | string |
Returns
list<SqlToken>Test cases 1
Called from 1
Calls 2
- static-call SqlTokenStream::tokenize() line 129
- static-call PgSqlLexerProfile::create() line 129
public function bodyStartIndex(list<SqlToken> $tokens, int $index): intSkips AS and the optional materialization modifiers.
Parameters
$tokens | list<SqlToken> | |
$index | int |
Returns
intTest cases 1
Called from 1
Calls 2
- method-call HeaderParser::findAsIndex() line 143
- function-call
countline 144
Test cases 26§
Test cases that cover or call this symbol, from the coverage report and from the analyzed test sources.
Dedicated tests 7
HeaderParserTest::testBodyStartIndexSkipsMaterializationModifierscallsHeaderParserTest::testFindAsIndexcallsHeaderParserTest::testIdentifierNamecallsHeaderParserTest::testIsSymbolcallsHeaderParserTest::testParseHeadercallsHeaderParserTest::testStatementSqlExtractsTheBodyAfterCompleteCteDeclarationscallsHeaderParserTest::testTopLevelTokensTreatsCteBodiesAsOpaqueSpanscalls
Other tests reaching this symbol 19
PgSqlSessionFactoryTestcallsPgSqlCteShadowComposerTestcallsShadowDependenciesTestcallsPgSqlRewriterTestcallsStatementRewriterTestcallsDeleteTransformerTestcallsSelectProjectionTestcallsInsertSelectRendererTestcallsInsertTransformerTestcallsMatchConditionsTestcallsRowActionsTestcallsMergeTransformerTestcallsPgSqlTransformerTestcallsSelectTransformerTestcallsUpdateTransformerTestcallsRowMutationResolverTestcallsPgSqlMutationResolverTestcallsIdentifierReferencesTestcallsPgSqlMergeParserTestcalls
Relations§
Instantiated in 7
- new ZtdQuery\Platform\Postgres\Rewrite\Cte\PgSqlCteShadowComposer::declaredCteNames() packages/ztd-query-postgres/src/Rewrite/Cte/PgSqlCteShadowComposer.php:55
- new ZtdQuery\Platform\Postgres\Rewrite\Cte\PgSqlCteShadowComposer::carryPrefix() packages/ztd-query-postgres/src/Rewrite/Cte/PgSqlCteShadowComposer.php:63
- new ZtdQuery\Platform\Postgres\Rewrite\Cte\PgSqlCteShadowComposer::carryPrefix() packages/ztd-query-postgres/src/Rewrite/Cte/PgSqlCteShadowComposer.php:73
- new ZtdQuery\Platform\Postgres\Rewrite\Cte\PgSqlCteShadowComposer::statementSql() packages/ztd-query-postgres/src/Rewrite/Cte/PgSqlCteShadowComposer.php:106
- new ZtdQuery\Platform\Postgres\Rewrite\Cte\ShadowDependencies::required() packages/ztd-query-postgres/src/Rewrite/Cte/ShadowDependencies.php:24
- new ZtdQuery\Platform\Postgres\Sql\Cte\IdentifierReferences::referencesIdentifier() packages/ztd-query-postgres/src/Sql/Cte/IdentifierReferences.php:23
- new ZtdQuery\Platform\Postgres\Sql\Merge\PgSqlMergeParser::__construct() packages/ztd-query-postgres/src/Sql/Merge/PgSqlMergeParser.php:24
Method calls 7
- method-call ZtdQuery\Platform\Postgres\Rewrite\Cte\PgSqlCteShadowComposer::declaredCteNames() packages/ztd-query-postgres/src/Rewrite/Cte/PgSqlCteShadowComposer.php:55
- method-call ZtdQuery\Platform\Postgres\Rewrite\Cte\PgSqlCteShadowComposer::carryPrefix() packages/ztd-query-postgres/src/Rewrite/Cte/PgSqlCteShadowComposer.php:63
- method-call ZtdQuery\Platform\Postgres\Rewrite\Cte\PgSqlCteShadowComposer::carryPrefix() packages/ztd-query-postgres/src/Rewrite/Cte/PgSqlCteShadowComposer.php:73
- method-call ZtdQuery\Platform\Postgres\Rewrite\Cte\PgSqlCteShadowComposer::statementSql() packages/ztd-query-postgres/src/Rewrite/Cte/PgSqlCteShadowComposer.php:106
- method-call ZtdQuery\Platform\Postgres\Rewrite\Cte\ShadowDependencies::required() packages/ztd-query-postgres/src/Rewrite/Cte/ShadowDependencies.php:24
- method-call ZtdQuery\Platform\Postgres\Sql\Cte\IdentifierReferences::referencesIdentifier() packages/ztd-query-postgres/src/Sql/Cte/IdentifierReferences.php:23
- method-call ZtdQuery\Platform\Postgres\Sql\Merge\PgSqlMergeParser::parse() packages/ztd-query-postgres/src/Sql/Merge/PgSqlMergeParser.php:33