classSelectionReader
final class SelectionReader
Restricted visibility: declared "@visibility ZtdQuery\Platform\MySql". Code outside that scope must not name this declaration.
Selection Reader.
Methods§
public function tokenIndexAtOrAfter(list<SqlToken> $tokens, int $offset): intpublic function partitionNames(
string $sql,
SqlToken $open,
SqlToken $close,
): non-empty-list<string>Returns
non-empty-list<string>Throws
Test cases 1
Called from 1
Calls 6
- function-call
substrline 59 - method-call SqlToken::endOffset() line 59
- static-call SqlTokenStream::tokenize() line 61
- static-call MySqlLexerProfile::create() line 61
- new UnsupportedSqlException line 65
- function-call
countline 67
public function hasAlias(list<SqlToken> $tokens, int $index): boolParameters
$tokens | list<SqlToken> | |
$index | int |
Returns
boolTest cases 1
Called from 1
Calls 4
- function-call
in_arrayline 88 - class-const SqlTokenKind::Word() line 88
- class-const SqlTokenKind::QuotedIdentifier() line 88
- function-call
strtoupperline 93
public function partitionSelection(
string $sql,
list<SqlToken> $tokens,
int $partitionIndex,
): array{names: non-empty-list<string>, closeIndex: int}Parameters
$sql | string | |
$tokens | list<SqlToken> | |
$partitionIndex | int |
Returns
array{names: non-empty-list<string>, closeIndex: int}Throws
Test cases 1
Called from 1
Calls 4
- class-const SqlTokenKind::Symbol() line 106
- new UnsupportedSqlException line 107
- method-call SelectionReader::closingParenthesisIndex() line 109
- method-call SelectionReader::partitionNames() line 114
public function requireNoIndexHint(string $sql, list<SqlToken> $tokens, int $closeIndex): voidReject index hints after partition validation, retaining rejection precedence.
Parameters
$sql | string | |
$tokens | list<SqlToken> | |
$closeIndex | int |
Throws
Test cases 1
Called from 1
Calls 3
- function-call
in_arrayline 128 - function-call
strtoupperline 128 - new UnsupportedSqlException line 130
Test cases 19§
Test cases that cover or call this symbol, from the coverage report and from the analyzed test sources.
Dedicated tests 6
Other tests reaching this symbol 13
MySqlSessionFactoryTestcallsMySqlRewriterTestcallsMySqlPartitionSelectionRewriterTestcallsSourceProjectionTestcallsStatementRewriterTestcallsDeleteTransformerTestcallsInsertTransformerTestcallsMySqlTransformerTestcallsReplaceTransformerTestcallsSelectTransformerTestcallsUpdateTransformerTestcallsRowMutationResolverTestcallsMySqlMutationResolverTestcalls
Relations§
Instantiated in 4
- new ZtdQuery\Platform\MySql\Rewrite\Partition\MySqlPartitionSelectionRewriter::rewrite() packages/ztd-query-mysql/src/Rewrite/Partition/MySqlPartitionSelectionRewriter.php:40
- new ZtdQuery\Platform\MySql\Rewrite\Partition\MySqlPartitionSelectionRewriter::rewrite() packages/ztd-query-mysql/src/Rewrite/Partition/MySqlPartitionSelectionRewriter.php:46
- new ZtdQuery\Platform\MySql\Rewrite\Partition\MySqlPartitionSelectionRewriter::rewrite() packages/ztd-query-mysql/src/Rewrite/Partition/MySqlPartitionSelectionRewriter.php:62
- new ZtdQuery\Platform\MySql\Rewrite\Partition\SourceProjection::edit() packages/ztd-query-mysql/src/Rewrite/Partition/SourceProjection.php:29
Method calls 4
- method-call ZtdQuery\Platform\MySql\Rewrite\Partition\MySqlPartitionSelectionRewriter::rewrite() packages/ztd-query-mysql/src/Rewrite/Partition/MySqlPartitionSelectionRewriter.php:40
- method-call ZtdQuery\Platform\MySql\Rewrite\Partition\MySqlPartitionSelectionRewriter::rewrite() packages/ztd-query-mysql/src/Rewrite/Partition/MySqlPartitionSelectionRewriter.php:46
- method-call ZtdQuery\Platform\MySql\Rewrite\Partition\MySqlPartitionSelectionRewriter::rewrite() packages/ztd-query-mysql/src/Rewrite/Partition/MySqlPartitionSelectionRewriter.php:62
- method-call ZtdQuery\Platform\MySql\Rewrite\Partition\SourceProjection::edit() packages/ztd-query-mysql/src/Rewrite/Partition/SourceProjection.php:29