classSqliteSelectRelationParser
final class SqliteSelectRelationParser
Locates table references and rewrites schema-qualified shadow relations.
Methods§
public function fromClauses(string $sql): list<string>Parameters
$sql | string |
Returns
list<string>Test cases 4
SqliteSelectRelationParserTest::testFromClausesUseSqliteBoundariescallsSqliteSelectRelationParserTest::testNestedSelectFromClausesStopAtTheirOwnScopeBoundarycallsSqliteSelectRelationParserTest::testSetOperatorsAndRepeatedFromCloseTheCurrentSelectScopecallsSqliteSelectRelationParserTest::testStopsFromClauseAtEverySqliteBoundarycalls
Calls 5
- method-call RelationSourceParser::tokens() line 17
- new RelationSourceParser line 17
- method-call RelationSourceParser::findFromEnd() line 37
- function-call
trimline 38 - function-call
substrline 38
public function tableNames(string $sql): list<string>Parameters
$sql | string |
Returns
list<string>Test cases 8
SqliteSelectRelationParserTest::testDoesNotTreatQuotedFunctionNameAsRelationcallsSqliteSelectRelationParserTest::testFindsParenthesizedJoinedRelationsButNotDerivedProducerscallsSqliteSelectRelationParserTest::testKeepsOneCaseInsensitiveRelationNamecallsSqliteSelectRelationParserTest::testReferencesDoNotReadPastTheFromClauseBoundarycallsSqliteSelectRelationParserTest::testRejectsLiteralAndProducerSourceFormscallsSqliteSelectRelationParserTest::testSetOperatorsAndRepeatedFromCloseTheCurrentSelectScopecallsSqliteSelectRelationParserTest::testTableNamesFindsSqliteQuotedAndNestedRelationscallsSqliteSelectRelationParserTest::testUnescapesDoubledSqliteIdentifierQuotescalls
Called from 2
- method-call ZtdQuery\Platform\Sqlite\Schema\View\SqliteViewDefinitionParser::fromQuery() packages/ztd-query-sqlite/src/Schema/View/SqliteViewDefinitionParser.php:22
- method-call ZtdQuery\Platform\Sqlite\Sql\Statement\StatementStructure::extractSelectTables() packages/ztd-query-sqlite/src/Sql/Statement/StatementStructure.php:33
Calls 3
- method-call SqliteSelectRelationParser::references() line 54
- function-call
strtolowerline 55 - function-call
array_valuesline 61
public function references(string $sql): list<array{name: string, start: int, unqualifiedStart: int, end: int}>Parameters
$sql | string |
Returns
list<array{name: string, start: int, unqualifiedStart: int, end: int}>Test cases 4
SqliteSelectRelationParserTest::testFindsParenthesizedJoinedRelationsButNotDerivedProducerscallsSqliteSelectRelationParserTest::testParenthesizedRelationOffsetsDoNotIncludeFollowingAliascallsSqliteSelectRelationParserTest::testReferencesExposeExactQualifiedIdentifierOffsetscallsSqliteSelectRelationParserTest::testUnqualifyReferencesPreserveOffsetsAndUnqualifyOnlyTargetscalls
Called from 3
- method-call ZtdQuery\Platform\Sqlite\Rewrite\Index\SqliteIndexHintStripper::strip() packages/ztd-query-sqlite/src/Rewrite/Index/SqliteIndexHintStripper.php:31
- method-call ZtdQuery\Platform\Sqlite\Sql\Relation\SqliteSelectRelationParser::tableNames() packages/ztd-query-sqlite/src/Sql/Relation/SqliteSelectRelationParser.php:54
- method-call ZtdQuery\Platform\Sqlite\Sql\Relation\SqliteSelectRelationParser::unqualify() packages/ztd-query-sqlite/src/Sql/Relation/SqliteSelectRelationParser.php:110
Calls 5
- method-call RelationSourceParser::tokens() line 69
- new RelationSourceParser line 69
- method-call RelationSourceParser::findFromEnd() line 86
- function-call
substrline 87 - method-call RelationSourceParser::referencesFromClause() line 88
public function unqualify(string $sql, list<string> $relationNames): stringParameters
$sql | string | |
$relationNames | list<string> |
Returns
stringTest cases 3
Called from 2
- method-call ZtdQuery\Platform\Sqlite\Rewrite\Cte\SqliteCteShadowComposer::compose() packages/ztd-query-sqlite/src/Rewrite/Cte/SqliteCteShadowComposer.php:26
- method-call ZtdQuery\Platform\Sqlite\Rewrite\View\SqliteViewShadowRenderer::render() packages/ztd-query-sqlite/src/Rewrite/View/SqliteViewShadowRenderer.php:25
Test cases 47§
Test cases that cover or call this symbol, from the coverage report and from the analyzed test sources.
Dedicated tests 15
SqliteSelectRelationParserTest::testDoesNotTreatQuotedFunctionNameAsRelationcallsSqliteSelectRelationParserTest::testFindsParenthesizedJoinedRelationsButNotDerivedProducerscallsSqliteSelectRelationParserTest::testFromClausesUseSqliteBoundariescallsSqliteSelectRelationParserTest::testKeepsOneCaseInsensitiveRelationNamecallsSqliteSelectRelationParserTest::testNestedSelectFromClausesStopAtTheirOwnScopeBoundarycallsSqliteSelectRelationParserTest::testParenthesizedRelationOffsetsDoNotIncludeFollowingAliascallsSqliteSelectRelationParserTest::testReferencesDoNotReadPastTheFromClauseBoundarycallsSqliteSelectRelationParserTest::testReferencesExposeExactQualifiedIdentifierOffsetscallsSqliteSelectRelationParserTest::testRejectsLiteralAndProducerSourceFormscallsSqliteSelectRelationParserTest::testSetOperatorsAndRepeatedFromCloseTheCurrentSelectScopecallsSqliteSelectRelationParserTest::testStopsFromClauseAtEverySqliteBoundarycallsSqliteSelectRelationParserTest::testTableNamesFindsSqliteQuotedAndNestedRelationscallsSqliteSelectRelationParserTest::testUnescapesDoubledSqliteIdentifierQuotescallsSqliteSelectRelationParserTest::testUnqualifiesMultipleTargetsCaseInsensitivelyFromRightToLeftcallsSqliteSelectRelationParserTest::testUnqualifyReferencesPreserveOffsetsAndUnqualifyOnlyTargetscalls
Other tests reaching this symbol 32
RewriteCheck::verifycallsReferencedTableLookupTestcallsTableContextBuilderTestcallsSqliteCteShadowComposerTestcallsMatchExpressionRewriterTestcallsSqliteFullTextSearchRewriterTestcallsSqliteIndexHintStripperTestcallsSqliteQueryGuardTestcallsSqliteRewriterTestcallsStatementRewriterTestcallsDeleteTransformerTestcallsInsertProjectionBuilderTestcallsInsertTransformerTestcallsSelectTransformerTestcallsSqliteTransformerTestcallsUpdateTransformerTestcallsSqliteViewShadowRendererTestcallsColumnDefinitionParserTestcallsTableDefinitionBuilderTestcallsVirtualTableParserTestcallsSqliteSchemaParserTestcallsSqliteSchemaReflectorTestcallsSqliteViewDefinitionParserTestcallsAddColumnResolverTestcallsInsertMutationResolverTestcallsRowMutationResolverTestcallsTableMutationResolverTestcallsSqliteMutationResolverTestcallsSqliteParserTestcallsStatementStructureTestcallsTargetTableParserTestcallsSqliteSessionFactoryTestcalls
Relations§
Instantiated in 5
- new ZtdQuery\Platform\Sqlite\Rewrite\Cte\SqliteCteShadowComposer::compose() packages/ztd-query-sqlite/src/Rewrite/Cte/SqliteCteShadowComposer.php:26
- new ZtdQuery\Platform\Sqlite\Rewrite\Index\SqliteIndexHintStripper::strip() packages/ztd-query-sqlite/src/Rewrite/Index/SqliteIndexHintStripper.php:31
- new ZtdQuery\Platform\Sqlite\Rewrite\View\SqliteViewShadowRenderer::render() packages/ztd-query-sqlite/src/Rewrite/View/SqliteViewShadowRenderer.php:23
- new ZtdQuery\Platform\Sqlite\Schema\View\SqliteViewDefinitionParser::fromQuery() packages/ztd-query-sqlite/src/Schema/View/SqliteViewDefinitionParser.php:22
- new ZtdQuery\Platform\Sqlite\Sql\Statement\StatementStructure::extractSelectTables() packages/ztd-query-sqlite/src/Sql/Statement/StatementStructure.php:33
Method calls 5
- method-call ZtdQuery\Platform\Sqlite\Rewrite\Cte\SqliteCteShadowComposer::compose() packages/ztd-query-sqlite/src/Rewrite/Cte/SqliteCteShadowComposer.php:26
- method-call ZtdQuery\Platform\Sqlite\Rewrite\Index\SqliteIndexHintStripper::strip() packages/ztd-query-sqlite/src/Rewrite/Index/SqliteIndexHintStripper.php:31
- method-call ZtdQuery\Platform\Sqlite\Rewrite\View\SqliteViewShadowRenderer::render() packages/ztd-query-sqlite/src/Rewrite/View/SqliteViewShadowRenderer.php:25
- method-call ZtdQuery\Platform\Sqlite\Schema\View\SqliteViewDefinitionParser::fromQuery() packages/ztd-query-sqlite/src/Schema/View/SqliteViewDefinitionParser.php:22
- method-call ZtdQuery\Platform\Sqlite\Sql\Statement\StatementStructure::extractSelectTables() packages/ztd-query-sqlite/src/Sql/Statement/StatementStructure.php:33