classMySqlSelectRelationParser
final class MySqlSelectRelationParser
Implements the My Sql Select Relation Parser contract for MySQL.
Methods§
public function fromClauses(string $sql): list<string>Parameters
$sql | string |
Returns
list<string>Test cases 4
MySqlSelectRelationParserTest::testFromClausesUseMySqlBoundariescallsMySqlSelectRelationParserTest::testNestedSelectFromClausesStopAtTheirOwnScopeBoundarycallsMySqlSelectRelationParserTest::testSetOperatorsAndRepeatedFromCloseTheCurrentSelectScopecallsMySqlSelectRelationParserTest::testStopsFromClauseAtEveryMySqlBoundarycalls
Calls 6
- static-call SqlTokenStream::tokenize() line 20
- static-call MySqlLexerProfile::create() line 20
- method-call ReferenceReader::findFromEnd() line 40
- new ReferenceReader line 40
- function-call
trimline 41 - function-call
substrline 41
public function tableNames(string $sql): list<string>Parameters
$sql | string |
Returns
list<string>Test cases 6
MySqlSelectRelationParserTest::testDoesNotTreatQuotedFunctionNameAsRelationcallsMySqlSelectRelationParserTest::testFindsParenthesizedJoinedRelationsButNotDerivedProducerscallsMySqlSelectRelationParserTest::testKeepsOneCaseInsensitiveRelationNamecallsMySqlSelectRelationParserTest::testRejectsNonMySqlSourceFormscallsMySqlSelectRelationParserTest::testSetOperatorsAndRepeatedFromCloseTheCurrentSelectScopecallsMySqlSelectRelationParserTest::testTableNamesFindsPhysicalRelationsAcrossMySqlSelectScopescalls
Called from 2
- method-call ZtdQuery\Platform\MySql\Rewrite\Context\TableContext::findUnknownTable() packages/ztd-query-mysql/src/Rewrite/Context/TableContext.php:100
- method-call ZtdQuery\Platform\MySql\Schema\View\MySqlViewDefinitionParser::fromQuery() packages/ztd-query-mysql/src/Schema/View/MySqlViewDefinitionParser.php:24
Calls 3
- method-call MySqlSelectRelationParser::references() line 57
- function-call
strtolowerline 58 - function-call
array_valuesline 64
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
MySqlSelectRelationParserTest::testFindsParenthesizedJoinedRelationsButNotDerivedProducerscallsMySqlSelectRelationParserTest::testParenthesizedRelationOffsetsDoNotIncludeFollowingAliascallsMySqlSelectRelationParserTest::testReferencesExposeExactQualifiedIdentifierOffsetscallsMySqlSelectRelationParserTest::testUnqualifyReferencesPreserveOffsetsAndUnqualifyOnlyTargetscalls
Called from 3
- method-call ZtdQuery\Platform\MySql\Rewrite\Partition\MySqlPartitionSelectionRewriter::rewrite() packages/ztd-query-mysql/src/Rewrite/Partition/MySqlPartitionSelectionRewriter.php:39
- method-call ZtdQuery\Platform\MySql\Sql\Relation\MySqlSelectRelationParser::tableNames() packages/ztd-query-mysql/src/Sql/Relation/MySqlSelectRelationParser.php:57
- method-call ZtdQuery\Platform\MySql\Sql\Relation\MySqlSelectRelationParser::unqualify() packages/ztd-query-mysql/src/Sql/Relation/MySqlSelectRelationParser.php:113
Calls 6
- static-call SqlTokenStream::tokenize() line 72
- static-call MySqlLexerProfile::create() line 72
- method-call ReferenceReader::findFromEnd() line 89
- new ReferenceReader line 89
- function-call
substrline 90 - method-call ReferenceReader::referencesFromClause() line 91
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\MySql\Rewrite\Cte\MySqlCteShadowComposer::compose() packages/ztd-query-mysql/src/Rewrite/Cte/MySqlCteShadowComposer.php:60
- method-call ZtdQuery\Platform\MySql\Rewrite\View\MySqlViewShadowRenderer::render() packages/ztd-query-mysql/src/Rewrite/View/MySqlViewShadowRenderer.php:26
Test cases 31§
Test cases that cover or call this symbol, from the coverage report and from the analyzed test sources.
Dedicated tests 13
MySqlSelectRelationParserTest::testDoesNotTreatQuotedFunctionNameAsRelationcallsMySqlSelectRelationParserTest::testFindsParenthesizedJoinedRelationsButNotDerivedProducerscallsMySqlSelectRelationParserTest::testFromClausesUseMySqlBoundariescallsMySqlSelectRelationParserTest::testKeepsOneCaseInsensitiveRelationNamecallsMySqlSelectRelationParserTest::testNestedSelectFromClausesStopAtTheirOwnScopeBoundarycallsMySqlSelectRelationParserTest::testParenthesizedRelationOffsetsDoNotIncludeFollowingAliascallsMySqlSelectRelationParserTest::testReferencesExposeExactQualifiedIdentifierOffsetscallsMySqlSelectRelationParserTest::testRejectsNonMySqlSourceFormscallsMySqlSelectRelationParserTest::testSetOperatorsAndRepeatedFromCloseTheCurrentSelectScopecallsMySqlSelectRelationParserTest::testStopsFromClauseAtEveryMySqlBoundarycallsMySqlSelectRelationParserTest::testTableNamesFindsPhysicalRelationsAcrossMySqlSelectScopescallsMySqlSelectRelationParserTest::testUnqualifiesMultipleTargetsCaseInsensitivelyFromRightToLeftcallsMySqlSelectRelationParserTest::testUnqualifyReferencesPreserveOffsetsAndUnqualifyOnlyTargetscalls
Other tests reaching this symbol 18
RewritePlanConsistencyChecker::checkPlancallsMySqlSessionFactoryTestcallsTableContextTestcallsMySqlCteShadowComposerTestcallsMySqlRewriterTestcallsMySqlPartitionSelectionRewriterTestcallsStatementRewriterTestcallsDeleteTransformerTestcallsInsertTransformerTestcallsMySqlTransformerTestcallsReplaceTransformerTestcallsSelectTransformerTestcallsUpdateTransformerTestcallsMySqlViewShadowRendererTestcallsMySqlSchemaReflectorTestcallsMySqlViewDefinitionParserTestcallsRowMutationResolverTestcallsMySqlMutationResolverTestcalls
Relations§
Instantiated in 5
- new ZtdQuery\Platform\MySql\Rewrite\Context\TableContext::findUnknownTable() packages/ztd-query-mysql/src/Rewrite/Context/TableContext.php:100
- new ZtdQuery\Platform\MySql\Rewrite\Cte\MySqlCteShadowComposer::compose() packages/ztd-query-mysql/src/Rewrite/Cte/MySqlCteShadowComposer.php:60
- new ZtdQuery\Platform\MySql\Rewrite\Partition\MySqlPartitionSelectionRewriter::rewrite() packages/ztd-query-mysql/src/Rewrite/Partition/MySqlPartitionSelectionRewriter.php:39
- new ZtdQuery\Platform\MySql\Rewrite\View\MySqlViewShadowRenderer::render() packages/ztd-query-mysql/src/Rewrite/View/MySqlViewShadowRenderer.php:24
- new ZtdQuery\Platform\MySql\Schema\View\MySqlViewDefinitionParser::fromQuery() packages/ztd-query-mysql/src/Schema/View/MySqlViewDefinitionParser.php:24
Method calls 5
- method-call ZtdQuery\Platform\MySql\Rewrite\Context\TableContext::findUnknownTable() packages/ztd-query-mysql/src/Rewrite/Context/TableContext.php:100
- method-call ZtdQuery\Platform\MySql\Rewrite\Cte\MySqlCteShadowComposer::compose() packages/ztd-query-mysql/src/Rewrite/Cte/MySqlCteShadowComposer.php:60
- method-call ZtdQuery\Platform\MySql\Rewrite\Partition\MySqlPartitionSelectionRewriter::rewrite() packages/ztd-query-mysql/src/Rewrite/Partition/MySqlPartitionSelectionRewriter.php:39
- method-call ZtdQuery\Platform\MySql\Rewrite\View\MySqlViewShadowRenderer::render() packages/ztd-query-mysql/src/Rewrite/View/MySqlViewShadowRenderer.php:26
- method-call ZtdQuery\Platform\MySql\Schema\View\MySqlViewDefinitionParser::fromQuery() packages/ztd-query-mysql/src/Schema/View/MySqlViewDefinitionParser.php:24