classForeignKeyEntryParser
final class ForeignKeyEntryParser
Restricted visibility: declared "@visibility ZtdQuery\Platform\Sqlite". Code outside that scope must not name this declaration.
Extracts local and referenced columns and referential actions.
Methods§
public function parseEntry(
SqlTokenStream $stream,
string $defaultName,
?string $inlineColumn,
): array{name: string, foreignKey: ForeignKeyDefinition}|nullParameters
$stream | SqlTokenStream | |
$defaultName | string | |
$inlineColumn | ?string |
Returns
array{name: string, foreignKey: ForeignKeyDefinition}|nullTest cases 2
Called from 1
Calls 7
- method-call SqlTokenStream::significantTokens() line 27
- static-call ForeignKeyTokens::keywordIndex() line 28
- method-call ForeignKeyEntryParser::foreignKeyColumns() line 35
- method-call ForeignKeyEntryParser::referencedRelation() line 40
- method-call SqlTokenStream::identifierAt() line 47
- new ForeignKeyDefinition line 55
- method-call ForeignKeyEntryParser::action() line 59
public function foreignKeyColumns(
SqlTokenStream $stream,
list<SqlToken> $tokens,
int $references,
): list<string>Parameters
$stream | SqlTokenStream | |
$tokens | list<SqlToken> | |
$references | int |
Returns
list<string>Called from 1
Calls 3
- static-call ForeignKeyTokens::keywordIndex() line 74
- function-call
array_sliceline 74 - method-call ForeignKeyEntryParser::identifierList() line 85
public function referencedRelation(
SqlTokenStream $stream,
list<SqlToken> $tokens,
int $start,
): array{table: string, columns: list<string>}|nullParameters
$stream | SqlTokenStream | |
$tokens | list<SqlToken> | |
$start | int |
Returns
array{table: string, columns: list<string>}|nullCalled from 1
Calls 4
- method-call SqlTokenStream::identifierAt() line 97
- static-call ForeignKeyTokens::isSymbol() line 104
- static-call ForeignKeyTokens::symbolIndex() line 113
- method-call ForeignKeyEntryParser::identifierList() line 114
public function identifierList(
SqlTokenStream $stream,
list<SqlToken> $tokens,
int $opening,
): list<string>Parameters
$stream | SqlTokenStream | |
$tokens | list<SqlToken> | |
$opening | int |
Returns
list<string>Test cases 1
Called from 2
- method-call ZtdQuery\Platform\Sqlite\Schema\Key\ForeignKeyEntryParser::foreignKeyColumns() packages/ztd-query-sqlite/src/Schema/Key/ForeignKeyEntryParser.php:85
- method-call ZtdQuery\Platform\Sqlite\Schema\Key\ForeignKeyEntryParser::referencedRelation() packages/ztd-query-sqlite/src/Schema/Key/ForeignKeyEntryParser.php:114
Calls 4
- function-call
array_sliceline 126 - function-call
array_shiftline 127 - static-call ForeignKeyTokens::isSymbol() line 133
- method-call SqlTokenStream::identifierAt() line 143
public function action(list<SqlToken> $tokens, string $event): ReferentialActionParameters
$tokens | list<SqlToken> | |
$event | string |
Returns
Called from 2
- method-call ZtdQuery\Platform\Sqlite\Schema\Key\ForeignKeyEntryParser::parseEntry() packages/ztd-query-sqlite/src/Schema/Key/ForeignKeyEntryParser.php:59
- method-call ZtdQuery\Platform\Sqlite\Schema\Key\ForeignKeyEntryParser::parseEntry() packages/ztd-query-sqlite/src/Schema/Key/ForeignKeyEntryParser.php:60
Calls 5
- class-const ReferentialAction::NoAction() line 168
- class-const ReferentialAction::Cascade() line 171
- class-const ReferentialAction::Restrict() line 174
- class-const ReferentialAction::SetNull() line 185
- class-const ReferentialAction::SetDefault() line 188
Test cases 15§
Test cases that cover or call this symbol, from the coverage report and from the analyzed test sources.
Dedicated tests 6
ForeignKeyEntryParserTest::testActionDistinguishesSupportedReferentialActionscallsForeignKeyEntryParserTest::testForeignKeyColumnsExtractsLocalCompositeKeycallsForeignKeyEntryParserTest::testIdentifierListRequiresAClosingGroupcallsForeignKeyEntryParserTest::testParseEntryAcceptsInlineReferencesAndRejectsMissingRelationscallsForeignKeyEntryParserTest::testParseEntryReadsNamedConstraintAndActionscallsForeignKeyEntryParserTest::testReferencedRelationUnqualifiesTableAndReadsColumnscalls