classStatementStructure
final class StatementStructure
Restricted visibility: declared "@visibility ZtdQuery\Platform\Sqlite". Code outside that scope must not name this declaration.
Extracts statement boundaries and referenced relations.
Methods§
public function splitStatements(string $sql): list<string>Split a SQL string into individual statements.
Parameters
$sql | string |
Returns
list<string>Test cases 36
StatementStructureTest::testSplitStatementsBlockCommentcallsStatementStructureTest::testSplitStatementsClosingParenAtZeroDepthcallsStatementStructureTest::testSplitStatementsDoubleQuoteEscapecallsStatementStructureTest::testSplitStatementsEmptycallsStatementStructureTest::testSplitStatementsEmptyInputcallsStatementStructureTest::testSplitStatementsEmptyStatementscallsStatementStructureTest::testSplitStatementsHandlesBlockCommentcallsStatementStructureTest::testSplitStatementsHandlesEscapedDoubleQuotecallsStatementStructureTest::testSplitStatementsHandlesEscapedSingleQuotecallsStatementStructureTest::testSplitStatementsHandlesLineCommentcallsStatementStructureTest::testSplitStatementsHandlesLineCommentAtEndcallsStatementStructureTest::testSplitStatementsHandlesNestedParenscallsStatementStructureTest::testSplitStatementsHandlesUnclosedBlockCommentcallsStatementStructureTest::testSplitStatementsIgnoresSemicolonInDoubleQuotecallsStatementStructureTest::testSplitStatementsIgnoresSemicolonInParenthesescallsStatementStructureTest::testSplitStatementsIgnoresSemicolonInStringcallsStatementStructureTest::testSplitStatementsLineCommentcallsStatementStructureTest::testSplitStatementsOnlySemicolonscallsStatementStructureTest::testSplitStatementsParenthesesNestedDepthcallsStatementStructureTest::testSplitStatementsParenthesizedSubquerycallsStatementStructureTest::testSplitStatementsPreservesDoubleQuoteContentcallsStatementStructureTest::testSplitStatementsPreservesSingleQuoteContentcallsStatementStructureTest::testSplitStatementsSemicolonInsideParenscallsStatementStructureTest::testSplitStatementsSingleNoSemicoloncallsStatementStructureTest::testSplitStatementsSingleQuoteEscapecallsStatementStructureTest::testSplitStatementsSplitMultipleStatementscallsStatementStructureTest::testSplitStatementsSplitSingleStatementcallsStatementStructureTest::testSplitStatementsTrailingSemicoloncallsStatementStructureTest::testSplitStatementsUnclosedBlockCommentcallsStatementStructureTest::testSplitStatementsUnclosedLineCommentcallsStatementStructureTest::testSplitStatementsWithBlockCommentcallsStatementStructureTest::testSplitStatementsWithEscapedDoubleQuotescallsStatementStructureTest::testSplitStatementsWithEscapedSingleQuotescallsStatementStructureTest::testSplitStatementsWithLineCommentcallsStatementStructureTest::testSplitStatementsWithLineCommentNoNewlinecallsStatementStructureTest::testSplitStatementsWithUnclosedBlockCommentcalls
Called from 1
Calls 2
- static-call SqlTokenStream::tokenize() line 23
- static-call SqliteLexerProfile::create() line 23
public function extractSelectTables(string $sql): array<int, string>Extract table names referenced in a SELECT statement.
Parameters
$sql | string |
Returns
array<int, string>Test cases 57
StatementStructureTest::testExtractSelectTablescallsStatementStructureTest::testExtractSelectTablesCaseInsensitivecallsStatementStructureTest::testExtractSelectTablesCrossJoincallsStatementStructureTest::testExtractSelectTablesCrossJoinV2callsStatementStructureTest::testExtractSelectTablesDeduplicatesAndReindexesInFirstSeenOrdercallsStatementStructureTest::testExtractSelectTablesEmptyExprcallsStatementStructureTest::testExtractSelectTablesEmptyFromcallsStatementStructureTest::testExtractSelectTablesExtractSelectTableAfterBlockCommentcallsStatementStructureTest::testExtractSelectTablesExtractSelectTableIgnoresFromInsideStringLiteralcallsStatementStructureTest::testExtractSelectTablesExtractSelectTableIgnoresJoinInsideStringLiteralcallsStatementStructureTest::testExtractSelectTablesExtractSelectTableIgnoresKeywordsInsideLineCommentcallsStatementStructureTest::testExtractSelectTablesExtractTableFromExprAliascallsStatementStructureTest::testExtractSelectTablesExtractTableFromExprEmptycallsStatementStructureTest::testExtractSelectTablesExtractTableFromExprEmptyEntrycallsStatementStructureTest::testExtractSelectTablesExtractTableFromExprSpaceAliascallsStatementStructureTest::testExtractSelectTablesFromMultipleTablescallsStatementStructureTest::testExtractSelectTablesInnerJoincallsStatementStructureTest::testExtractSelectTablesJoinEmptyTablecallsStatementStructureTest::testExtractSelectTablesLeftJoincallsStatementStructureTest::testExtractSelectTablesLeftJoinLowercasecallsStatementStructureTest::testExtractSelectTablesLowercasecallsStatementStructureTest::testExtractSelectTablesMultilinecallsStatementStructureTest::testExtractSelectTablesMultiplecallsStatementStructureTest::testExtractSelectTablesMultipleV2callsStatementStructureTest::testExtractSelectTablesNaturalJoincallsStatementStructureTest::testExtractSelectTablesNaturalJoinV2callsStatementStructureTest::testExtractSelectTablesNoFromcallsStatementStructureTest::testExtractSelectTablesQuotedcallsStatementStructureTest::testExtractSelectTablesQuotedTablecallsStatementStructureTest::testExtractSelectTablesReturnsEmptyForSubqueryOnlycallsStatementStructureTest::testExtractSelectTablesRightJoincallsStatementStructureTest::testExtractSelectTablesSelectTablesComeFromSelectScopesOnlycallsStatementStructureTest::testExtractSelectTablesWithAliascallsStatementStructureTest::testExtractSelectTablesWithAliasV2callsStatementStructureTest::testExtractSelectTablesWithAsAliascallsStatementStructureTest::testExtractSelectTablesWithGroupBycallsStatementStructureTest::testExtractSelectTablesWithGroupByLowercasecallsStatementStructureTest::testExtractSelectTablesWithGroupByV2callsStatementStructureTest::testExtractSelectTablesWithHavingcallsStatementStructureTest::testExtractSelectTablesWithHavingV2callsStatementStructureTest::testExtractSelectTablesWithImplicitAliascallsStatementStructureTest::testExtractSelectTablesWithInnerJoincallsStatementStructureTest::testExtractSelectTablesWithJoincallsStatementStructureTest::testExtractSelectTablesWithJoinLowercasecallsStatementStructureTest::testExtractSelectTablesWithJoinSkipsJoinedcallsStatementStructureTest::testExtractSelectTablesWithJoinV2callsStatementStructureTest::testExtractSelectTablesWithLeftJoincallsStatementStructureTest::testExtractSelectTablesWithLimitcallsStatementStructureTest::testExtractSelectTablesWithLimitLowercasecallsStatementStructureTest::testExtractSelectTablesWithLimitV2callsStatementStructureTest::testExtractSelectTablesWithOrderBycallsStatementStructureTest::testExtractSelectTablesWithOrderByLowercasecallsStatementStructureTest::testExtractSelectTablesWithOrderByV2callsStatementStructureTest::testExtractSelectTablesWithQuotedJoinTablecallsStatementStructureTest::testExtractSelectTablesWithUnioncallsStatementStructureTest::testExtractSelectTablesWithUnionV2callsStatementStructureTest::testExtractSelectTablesWithWherecalls
Called from 1
Calls 2
public function statementTail(string $sql, non-empty-list<string> $keywords): stringParameters
$sql | string | |
$keywords | non-empty-list<string> |
Returns
stringTest cases 1
Called from 3
- method-call ZtdQuery\Platform\Sqlite\Sql\Statement\TargetTableParser::extractInsertTable() packages/ztd-query-sqlite/src/Sql/Statement/TargetTableParser.php:40
- method-call ZtdQuery\Platform\Sqlite\Sql\Statement\TargetTableParser::extractUpdateTable() packages/ztd-query-sqlite/src/Sql/Statement/TargetTableParser.php:57
- method-call ZtdQuery\Platform\Sqlite\Sql\Statement\TargetTableParser::extractDeleteTable() packages/ztd-query-sqlite/src/Sql/Statement/TargetTableParser.php:70
Calls 5
- static-call SqlTokenStream::tokenize() line 41
- static-call SqliteLexerProfile::create() line 41
- method-call LiteralMasker::stripComments() line 47
- new LiteralMasker line 47
- function-call
substrline 47
Test cases 118§
Test cases that cover or call this symbol, from the coverage report and from the analyzed test sources.
Dedicated tests 94
StatementStructureTest::testExtractSelectTablescallsStatementStructureTest::testExtractSelectTablesCaseInsensitivecallsStatementStructureTest::testExtractSelectTablesCrossJoincallsStatementStructureTest::testExtractSelectTablesCrossJoinV2callsStatementStructureTest::testExtractSelectTablesDeduplicatesAndReindexesInFirstSeenOrdercallsStatementStructureTest::testExtractSelectTablesEmptyExprcallsStatementStructureTest::testExtractSelectTablesEmptyFromcallsStatementStructureTest::testExtractSelectTablesExtractSelectTableAfterBlockCommentcallsStatementStructureTest::testExtractSelectTablesExtractSelectTableIgnoresFromInsideStringLiteralcallsStatementStructureTest::testExtractSelectTablesExtractSelectTableIgnoresJoinInsideStringLiteralcallsStatementStructureTest::testExtractSelectTablesExtractSelectTableIgnoresKeywordsInsideLineCommentcallsStatementStructureTest::testExtractSelectTablesExtractTableFromExprAliascallsStatementStructureTest::testExtractSelectTablesExtractTableFromExprEmptycallsStatementStructureTest::testExtractSelectTablesExtractTableFromExprEmptyEntrycallsStatementStructureTest::testExtractSelectTablesExtractTableFromExprSpaceAliascallsStatementStructureTest::testExtractSelectTablesFromMultipleTablescallsStatementStructureTest::testExtractSelectTablesInnerJoincallsStatementStructureTest::testExtractSelectTablesJoinEmptyTablecallsStatementStructureTest::testExtractSelectTablesLeftJoincallsStatementStructureTest::testExtractSelectTablesLeftJoinLowercasecallsStatementStructureTest::testExtractSelectTablesLowercasecallsStatementStructureTest::testExtractSelectTablesMultilinecallsStatementStructureTest::testExtractSelectTablesMultiplecallsStatementStructureTest::testExtractSelectTablesMultipleV2callsStatementStructureTest::testExtractSelectTablesNaturalJoincallsStatementStructureTest::testExtractSelectTablesNaturalJoinV2callsStatementStructureTest::testExtractSelectTablesNoFromcallsStatementStructureTest::testExtractSelectTablesQuotedcallsStatementStructureTest::testExtractSelectTablesQuotedTablecallsStatementStructureTest::testExtractSelectTablesReturnsEmptyForSubqueryOnlycallsStatementStructureTest::testExtractSelectTablesRightJoincallsStatementStructureTest::testExtractSelectTablesSelectTablesComeFromSelectScopesOnlycallsStatementStructureTest::testExtractSelectTablesWithAliascallsStatementStructureTest::testExtractSelectTablesWithAliasV2callsStatementStructureTest::testExtractSelectTablesWithAsAliascallsStatementStructureTest::testExtractSelectTablesWithGroupBycallsStatementStructureTest::testExtractSelectTablesWithGroupByLowercasecallsStatementStructureTest::testExtractSelectTablesWithGroupByV2callsStatementStructureTest::testExtractSelectTablesWithHavingcallsStatementStructureTest::testExtractSelectTablesWithHavingV2callsStatementStructureTest::testExtractSelectTablesWithImplicitAliascallsStatementStructureTest::testExtractSelectTablesWithInnerJoincallsStatementStructureTest::testExtractSelectTablesWithJoincallsStatementStructureTest::testExtractSelectTablesWithJoinLowercasecallsStatementStructureTest::testExtractSelectTablesWithJoinSkipsJoinedcallsStatementStructureTest::testExtractSelectTablesWithJoinV2callsStatementStructureTest::testExtractSelectTablesWithLeftJoincallsStatementStructureTest::testExtractSelectTablesWithLimitcallsStatementStructureTest::testExtractSelectTablesWithLimitLowercasecallsStatementStructureTest::testExtractSelectTablesWithLimitV2callsStatementStructureTest::testExtractSelectTablesWithOrderBycallsStatementStructureTest::testExtractSelectTablesWithOrderByLowercasecallsStatementStructureTest::testExtractSelectTablesWithOrderByV2callsStatementStructureTest::testExtractSelectTablesWithQuotedJoinTablecallsStatementStructureTest::testExtractSelectTablesWithUnioncallsStatementStructureTest::testExtractSelectTablesWithUnionV2callsStatementStructureTest::testExtractSelectTablesWithWherecallsStatementStructureTest::testSplitStatementsBlockCommentcallsStatementStructureTest::testSplitStatementsClosingParenAtZeroDepthcallsStatementStructureTest::testSplitStatementsDoubleQuoteEscapecallsStatementStructureTest::testSplitStatementsEmptycallsStatementStructureTest::testSplitStatementsEmptyInputcallsStatementStructureTest::testSplitStatementsEmptyStatementscallsStatementStructureTest::testSplitStatementsHandlesBlockCommentcallsStatementStructureTest::testSplitStatementsHandlesEscapedDoubleQuotecallsStatementStructureTest::testSplitStatementsHandlesEscapedSingleQuotecallsStatementStructureTest::testSplitStatementsHandlesLineCommentcallsStatementStructureTest::testSplitStatementsHandlesLineCommentAtEndcallsStatementStructureTest::testSplitStatementsHandlesNestedParenscallsStatementStructureTest::testSplitStatementsHandlesUnclosedBlockCommentcallsStatementStructureTest::testSplitStatementsIgnoresSemicolonInDoubleQuotecallsStatementStructureTest::testSplitStatementsIgnoresSemicolonInParenthesescallsStatementStructureTest::testSplitStatementsIgnoresSemicolonInStringcallsStatementStructureTest::testSplitStatementsLineCommentcallsStatementStructureTest::testSplitStatementsOnlySemicolonscallsStatementStructureTest::testSplitStatementsParenthesesNestedDepthcallsStatementStructureTest::testSplitStatementsParenthesizedSubquerycallsStatementStructureTest::testSplitStatementsPreservesDoubleQuoteContentcallsStatementStructureTest::testSplitStatementsPreservesSingleQuoteContentcallsStatementStructureTest::testSplitStatementsSemicolonInsideParenscallsStatementStructureTest::testSplitStatementsSingleNoSemicoloncallsStatementStructureTest::testSplitStatementsSingleQuoteEscapecallsStatementStructureTest::testSplitStatementsSplitMultipleStatementscallsStatementStructureTest::testSplitStatementsSplitSingleStatementcallsStatementStructureTest::testSplitStatementsTrailingSemicoloncallsStatementStructureTest::testSplitStatementsUnclosedBlockCommentcallsStatementStructureTest::testSplitStatementsUnclosedLineCommentcallsStatementStructureTest::testSplitStatementsWithBlockCommentcallsStatementStructureTest::testSplitStatementsWithEscapedDoubleQuotescallsStatementStructureTest::testSplitStatementsWithEscapedSingleQuotescallsStatementStructureTest::testSplitStatementsWithLineCommentcallsStatementStructureTest::testSplitStatementsWithLineCommentNoNewlinecallsStatementStructureTest::testSplitStatementsWithUnclosedBlockCommentcallsStatementStructureTest::testStatementTailFindsMainStatementAfterWithcalls
Other tests reaching this symbol 24
ReferencedTableLookupTestcallsMatchExpressionRewriterTestcallsSqliteFullTextSearchRewriterTestcallsSqliteQueryGuardTestcallsSqliteRewriterTestcallsStatementRewriterTestcallsDeleteTransformerTestcallsInsertProjectionBuilderTestcallsInsertTransformerTestcallsSelectTransformerTestcallsSqliteTransformerTestcallsUpdateTransformerTestcallsColumnDefinitionParserTestcallsTableDefinitionBuilderTestcallsVirtualTableParserTestcallsSqliteSchemaParserTestcallsAddColumnResolverTestcallsInsertMutationResolverTestcallsRowMutationResolverTestcallsTableMutationResolverTestcallsSqliteMutationResolverTestcallsSqliteParserTestcallsTargetTableParserTestcallsSqliteSessionFactoryTestcalls
Relations§
Instantiated in 5
- new ZtdQuery\Platform\Sqlite\Sql\SqliteParser::splitStatements() packages/ztd-query-sqlite/src/Sql/SqliteParser.php:48
- new ZtdQuery\Platform\Sqlite\Sql\SqliteParser::extractSelectTables() packages/ztd-query-sqlite/src/Sql/SqliteParser.php:72
- new ZtdQuery\Platform\Sqlite\Sql\Statement\TargetTableParser::extractInsertTable() packages/ztd-query-sqlite/src/Sql/Statement/TargetTableParser.php:40
- new ZtdQuery\Platform\Sqlite\Sql\Statement\TargetTableParser::extractUpdateTable() packages/ztd-query-sqlite/src/Sql/Statement/TargetTableParser.php:57
- new ZtdQuery\Platform\Sqlite\Sql\Statement\TargetTableParser::extractDeleteTable() packages/ztd-query-sqlite/src/Sql/Statement/TargetTableParser.php:70
Method calls 5
- method-call ZtdQuery\Platform\Sqlite\Sql\SqliteParser::splitStatements() packages/ztd-query-sqlite/src/Sql/SqliteParser.php:48
- method-call ZtdQuery\Platform\Sqlite\Sql\SqliteParser::extractSelectTables() packages/ztd-query-sqlite/src/Sql/SqliteParser.php:72
- method-call ZtdQuery\Platform\Sqlite\Sql\Statement\TargetTableParser::extractInsertTable() packages/ztd-query-sqlite/src/Sql/Statement/TargetTableParser.php:40
- method-call ZtdQuery\Platform\Sqlite\Sql\Statement\TargetTableParser::extractUpdateTable() packages/ztd-query-sqlite/src/Sql/Statement/TargetTableParser.php:57
- method-call ZtdQuery\Platform\Sqlite\Sql\Statement\TargetTableParser::extractDeleteTable() packages/ztd-query-sqlite/src/Sql/Statement/TargetTableParser.php:70