classRelationSourceParser
final class RelationSourceParser
Restricted visibility: declared "@visibility ZtdQuery\Platform\Sqlite". Code outside that scope must not name this declaration.
Parses table sources, qualified identifiers and relation-clause boundaries.
Methods§
public function referencesFromClause(string $clause): list<array{name: string, start: int, unqualifiedStart: int, end: int}>Parameters
$clause | string |
Returns
list<array{name: string, start: int, unqualifiedStart: int, end: int}>Called from 2
- method-call ZtdQuery\Platform\Sqlite\Sql\Relation\RelationSourceParser::nestedReferences() packages/ztd-query-sqlite/src/Sql/Relation/RelationSourceParser.php:209
- method-call ZtdQuery\Platform\Sqlite\Sql\Relation\SqliteSelectRelationParser::references() packages/ztd-query-sqlite/src/Sql/Relation/SqliteSelectRelationParser.php:88
Calls 6
- method-call RelationSourceParser::tokens() line 24
- class-const SqlTokenKind::Symbol() line 36
- method-call RelationSourceParser::closingToken() line 44
- function-call
array_pushline 48 - method-call RelationSourceParser::nestedReferences() line 48
- method-call RelationSourceParser::referenceAt() line 53
public function referenceAt(
string $sql,
list<SqlToken> $tokens,
int $index,
): array{name: string, start: int, unqualifiedStart: int, end: int}|nullParameters
$sql | string | |
$tokens | list<SqlToken> | |
$index | int |
Returns
array{name: string, start: int, unqualifiedStart: int, end: int}|nullTest cases 1
Called from 1
Calls 2
- method-call RelationSourceParser::identifierComponentAt() line 88
- class-const SqlTokenKind::Symbol() line 94
public function identifierComponentAt(
list<SqlToken> $tokens,
int $index,
): array{string, int, int, int, int}|nullParameters
$tokens | list<SqlToken> | |
$index | int |
Returns
array{string, int, int, int, int}|nullTest cases 2
Called from 2
- method-call ZtdQuery\Platform\Sqlite\Sql\Relation\RelationSourceParser::referenceAt() packages/ztd-query-sqlite/src/Sql/Relation/RelationSourceParser.php:88
- method-call ZtdQuery\Platform\Sqlite\Sql\Relation\RelationSourceParser::referenceAt() packages/ztd-query-sqlite/src/Sql/Relation/RelationSourceParser.php:97
Calls 3
- class-const SqlTokenKind::Word() line 127
- class-const SqlTokenKind::QuotedIdentifier() line 130
- static-call SqliteLexerProfile::create() line 133
Returns
intTest cases 1
Called from 2
- method-call ZtdQuery\Platform\Sqlite\Sql\Relation\SqliteSelectRelationParser::fromClauses() packages/ztd-query-sqlite/src/Sql/Relation/SqliteSelectRelationParser.php:37
- method-call ZtdQuery\Platform\Sqlite\Sql\Relation\SqliteSelectRelationParser::references() packages/ztd-query-sqlite/src/Sql/Relation/SqliteSelectRelationParser.php:86
Calls 2
- method-call RelationSourceParser::matchesKeywordSequence() line 164
- function-call
strlenline 170
public function matchesKeywordSequence(
list<SqlToken> $tokens,
int $index,
non-empty-list<string> $keywords,
): boolpublic function tokens(string $sql): list<SqlToken>Parameters
$sql | string |
Returns
list<SqlToken>Test cases 1
Called from 4
- method-call ZtdQuery\Platform\Sqlite\Sql\Relation\RelationSourceParser::referencesFromClause() packages/ztd-query-sqlite/src/Sql/Relation/RelationSourceParser.php:24
- method-call ZtdQuery\Platform\Sqlite\Sql\Relation\RelationSourceParser::nestedReferences() packages/ztd-query-sqlite/src/Sql/Relation/RelationSourceParser.php:204
- method-call ZtdQuery\Platform\Sqlite\Sql\Relation\SqliteSelectRelationParser::fromClauses() packages/ztd-query-sqlite/src/Sql/Relation/SqliteSelectRelationParser.php:17
- method-call ZtdQuery\Platform\Sqlite\Sql\Relation\SqliteSelectRelationParser::references() packages/ztd-query-sqlite/src/Sql/Relation/SqliteSelectRelationParser.php:69
Calls 2
- static-call SqlTokenStream::tokenize() line 194
- static-call SqliteLexerProfile::create() line 194
public function nestedReferences(
string $clause,
int $start,
int $end,
): list<array{name: string, start: int, unqualifiedStart: int, end: int}>Finds parenthesized join sources and translates their offsets to the enclosing clause.
Parameters
$clause | string | |
$start | int | |
$end | int |
Returns
list<array{name: string, start: int, unqualifiedStart: int, end: int}>Test cases 1
Called from 1
Calls 3
- function-call
substrline 203 - method-call RelationSourceParser::tokens() line 204
- method-call RelationSourceParser::referencesFromClause() line 209
Test cases 40§
Test cases that cover or call this symbol, from the coverage report and from the analyzed test sources.
Dedicated tests 8
RelationSourceParserTest::testClosingTokenReturnsMatchingTopLevelEndcallsRelationSourceParserTest::testFindFromEndStopsAtClauseBoundarycallsRelationSourceParserTest::testIdentifierComponentAtAcceptsWordsAndQuotedNamescallsRelationSourceParserTest::testMatchesKeywordSequenceChecksEveryPartcallsRelationSourceParserTest::testNestedReferencesTranslatesOffsetscallsRelationSourceParserTest::testReferenceAtRetainsQualifiedOffsetscallsRelationSourceParserTest::testReferencesFromClauseFindsJoinsButNotSubqueryBodiescallsRelationSourceParserTest::testTokensOmitsCommentsAndWhitespacecalls
Other tests reaching this symbol 32
ReferencedTableLookupTestcallsTableContextBuilderTestcallsSqliteCteShadowComposerTestcallsMatchExpressionRewriterTestcallsSqliteFullTextSearchRewriterTestcallsSqliteIndexHintStripperTestcallsSqliteQueryGuardTestcallsSqliteRewriterTestcallsStatementRewriterTestcallsDeleteTransformerTestcallsInsertProjectionBuilderTestcallsInsertTransformerTestcallsSelectTransformerTestcallsSqliteTransformerTestcallsUpdateTransformerTestcallsSqliteViewShadowRendererTestcallsColumnDefinitionParserTestcallsTableDefinitionBuilderTestcallsVirtualTableParserTestcallsSqliteSchemaParserTestcallsSqliteSchemaReflectorTestcallsSqliteViewDefinitionParserTestcallsAddColumnResolverTestcallsInsertMutationResolverTestcallsRowMutationResolverTestcallsTableMutationResolverTestcallsSqliteMutationResolverTestcallsSqliteSelectRelationParserTest::testIdentifierComponentRejectsMismatchedTokenKindcallsSqliteParserTestcallsStatementStructureTestcallsTargetTableParserTestcallsSqliteSessionFactoryTestcalls
Relations§
Instantiated in 5
- new ZtdQuery\Platform\Sqlite\Sql\Relation\SqliteSelectRelationParser::fromClauses() packages/ztd-query-sqlite/src/Sql/Relation/SqliteSelectRelationParser.php:17
- new ZtdQuery\Platform\Sqlite\Sql\Relation\SqliteSelectRelationParser::fromClauses() packages/ztd-query-sqlite/src/Sql/Relation/SqliteSelectRelationParser.php:37
- new ZtdQuery\Platform\Sqlite\Sql\Relation\SqliteSelectRelationParser::references() packages/ztd-query-sqlite/src/Sql/Relation/SqliteSelectRelationParser.php:69
- new ZtdQuery\Platform\Sqlite\Sql\Relation\SqliteSelectRelationParser::references() packages/ztd-query-sqlite/src/Sql/Relation/SqliteSelectRelationParser.php:86
- new ZtdQuery\Platform\Sqlite\Sql\Relation\SqliteSelectRelationParser::references() packages/ztd-query-sqlite/src/Sql/Relation/SqliteSelectRelationParser.php:88
Method calls 5
- method-call ZtdQuery\Platform\Sqlite\Sql\Relation\SqliteSelectRelationParser::fromClauses() packages/ztd-query-sqlite/src/Sql/Relation/SqliteSelectRelationParser.php:17
- method-call ZtdQuery\Platform\Sqlite\Sql\Relation\SqliteSelectRelationParser::fromClauses() packages/ztd-query-sqlite/src/Sql/Relation/SqliteSelectRelationParser.php:37
- method-call ZtdQuery\Platform\Sqlite\Sql\Relation\SqliteSelectRelationParser::references() packages/ztd-query-sqlite/src/Sql/Relation/SqliteSelectRelationParser.php:69
- method-call ZtdQuery\Platform\Sqlite\Sql\Relation\SqliteSelectRelationParser::references() packages/ztd-query-sqlite/src/Sql/Relation/SqliteSelectRelationParser.php:86
- method-call ZtdQuery\Platform\Sqlite\Sql\Relation\SqliteSelectRelationParser::references() packages/ztd-query-sqlite/src/Sql/Relation/SqliteSelectRelationParser.php:88