classHeaderParser
final class HeaderParser
Restricted visibility: declared "@visibility ZtdQuery\Platform\MySql". Code outside that scope must not name this declaration.
Header Parser.
Methods§
public function __construct(private SqlLexerProfile $lexerProfile)Configure the dependencies used by this operation.
Parameters
$lexerProfile | SqlLexerProfile |
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 4
- method-call ZtdQuery\Platform\MySql\Rewrite\Cte\MySqlCteShadowComposer::declaredCteNames() packages/ztd-query-mysql/src/Rewrite/Cte/MySqlCteShadowComposer.php:86
- method-call ZtdQuery\Platform\MySql\Rewrite\Cte\MySqlCteShadowComposer::carryPrefix() packages/ztd-query-mysql/src/Rewrite/Cte/MySqlCteShadowComposer.php:94
- method-call ZtdQuery\Platform\MySql\Rewrite\Cte\MySqlCteShadowComposer::carryPrefix() packages/ztd-query-mysql/src/Rewrite/Cte/MySqlCteShadowComposer.php:104
- method-call ZtdQuery\Platform\MySql\Rewrite\Cte\MySqlCteShadowComposer::statementSql() packages/ztd-query-mysql/src/Rewrite/Cte/MySqlCteShadowComposer.php:136
Calls 6
- method-call HeaderParser::topLevelTokens() line 30
- method-call HeaderParser::identifierName() line 42
- method-call HeaderParser::findAsIndex() line 48
- function-call
countline 49 - method-call HeaderParser::isSymbol() line 60
- function-call
strtolowerline 63
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 86
public function identifierName(SqlToken $token): ?stringIdentifier Name for the supplied MySQL input.
Parameters
$token | SqlToken |
Returns
?stringTest cases 1
Called from 2
Calls 5
- class-const SqlTokenKind::Word() line 99
- class-const SqlTokenKind::QuotedIdentifier() line 102
- function-call
strlenline 102 - function-call
substrline 107 - function-call
str_replaceline 109
public function isSymbol(?SqlToken $token, string $symbol): boolTest a potentially absent delimiter token.
Parameters
$token | ?SqlToken | |
$symbol | string |
Returns
boolTest cases 1
Called from 2
Calls 1
- class-const SqlTokenKind::Symbol() line 116
public function topLevelTokens(string $sql): list<SqlToken>Parameters
$sql | string |
Returns
list<SqlToken>Test cases 1
Called from 1
Calls 1
- static-call SqlTokenStream::tokenize() line 124
public function contents(
string $sql,
int $statementOffset,
): array{leading: string, recursive: bool, body: string}Split a validated WITH header into its original prefix and CTE definitions.
Parameters
$sql | string | |
$statementOffset | int |
Returns
array{leading: string, recursive: bool, body: string}Test cases 1
Called from 2
- method-call ZtdQuery\Platform\MySql\Rewrite\Cte\MySqlCteShadowComposer::carryPrefix() packages/ztd-query-mysql/src/Rewrite/Cte/MySqlCteShadowComposer.php:111
- method-call ZtdQuery\Platform\MySql\Rewrite\Cte\MySqlCteShadowComposer::carryPrefix() packages/ztd-query-mysql/src/Rewrite/Cte/MySqlCteShadowComposer.php:117
Calls 3
- static-call SqlTokenStream::tokenize() line 139
- function-call
substrline 145 - function-call
trimline 147
Private surface 1§
Implementation details, listed for orientation only.
private SqlLexerProfile $lexerProfileTest cases 20§
Test cases that cover or call this symbol, from the coverage report and from the analyzed test sources.
Dedicated tests 6
HeaderParserTest::testContentsPreservesRecursiveHeaderscallsHeaderParserTest::testFindAsIndexSkipsColumnListsAndStopsAtWordscallsHeaderParserTest::testIdentifierNameUnquotesNamesAndRejectsSymbolscallsHeaderParserTest::testIsSymbolRequiresTheRequestedDelimitercallsHeaderParserTest::testParseHeaderExtractsNamesAndStatementOffsetcallsHeaderParserTest::testTopLevelTokensExcludeNestedBodiescalls
Other tests reaching this symbol 14
MySqlSessionFactoryTestcallsTableContextTestcallsMySqlCteShadowComposerTestcallsMySqlRewriterTestcallsStatementRewriterTestcallsDeleteTransformerTestcallsInsertTransformerTestcallsMySqlTransformerTestcallsReplaceTransformerTestcallsSelectTransformerTestcallsUpdateTransformerTestcallsRowMutationResolverTestcallsMySqlMutationResolverTestcallsIdentifierReferencesTestcalls
Relations§
Instantiated in 6
- new ZtdQuery\Platform\MySql\Rewrite\Cte\MySqlCteShadowComposer::declaredCteNames() packages/ztd-query-mysql/src/Rewrite/Cte/MySqlCteShadowComposer.php:86
- new ZtdQuery\Platform\MySql\Rewrite\Cte\MySqlCteShadowComposer::carryPrefix() packages/ztd-query-mysql/src/Rewrite/Cte/MySqlCteShadowComposer.php:94
- new ZtdQuery\Platform\MySql\Rewrite\Cte\MySqlCteShadowComposer::carryPrefix() packages/ztd-query-mysql/src/Rewrite/Cte/MySqlCteShadowComposer.php:104
- new ZtdQuery\Platform\MySql\Rewrite\Cte\MySqlCteShadowComposer::carryPrefix() packages/ztd-query-mysql/src/Rewrite/Cte/MySqlCteShadowComposer.php:110
- new ZtdQuery\Platform\MySql\Rewrite\Cte\MySqlCteShadowComposer::statementSql() packages/ztd-query-mysql/src/Rewrite/Cte/MySqlCteShadowComposer.php:136
- new ZtdQuery\Platform\MySql\Sql\Cte\IdentifierReferences::referencesIdentifier() packages/ztd-query-mysql/src/Sql/Cte/IdentifierReferences.php:29
Method calls 7
- method-call ZtdQuery\Platform\MySql\Rewrite\Cte\MySqlCteShadowComposer::declaredCteNames() packages/ztd-query-mysql/src/Rewrite/Cte/MySqlCteShadowComposer.php:86
- method-call ZtdQuery\Platform\MySql\Rewrite\Cte\MySqlCteShadowComposer::carryPrefix() packages/ztd-query-mysql/src/Rewrite/Cte/MySqlCteShadowComposer.php:94
- method-call ZtdQuery\Platform\MySql\Rewrite\Cte\MySqlCteShadowComposer::carryPrefix() packages/ztd-query-mysql/src/Rewrite/Cte/MySqlCteShadowComposer.php:104
- method-call ZtdQuery\Platform\MySql\Rewrite\Cte\MySqlCteShadowComposer::carryPrefix() packages/ztd-query-mysql/src/Rewrite/Cte/MySqlCteShadowComposer.php:111
- method-call ZtdQuery\Platform\MySql\Rewrite\Cte\MySqlCteShadowComposer::carryPrefix() packages/ztd-query-mysql/src/Rewrite/Cte/MySqlCteShadowComposer.php:117
- method-call ZtdQuery\Platform\MySql\Rewrite\Cte\MySqlCteShadowComposer::statementSql() packages/ztd-query-mysql/src/Rewrite/Cte/MySqlCteShadowComposer.php:136
- method-call ZtdQuery\Platform\MySql\Sql\Cte\IdentifierReferences::referencesIdentifier() packages/ztd-query-mysql/src/Sql/Cte/IdentifierReferences.php:29