classJoinModifiers
final class JoinModifiers
The word flags and validity conditions in SQLite 3.47.2 select.c/sqlite3JoinType.
Methods§
public function mask(string $word): intReads the semantic flag of a word recognized by sqlite3JoinType.
Parameters
$word | string |
Returns
intThrows
LexicalException When registration data contains an unimplemented join wordTest cases 15
JoinModifiersTest::testCanCompleteConsidersAllReachablePrefixStatescovers and callsJoinModifiersTest::testMaskRecognizesCaseInsensitiveSourceWordsAndFullJoinFlagscovers and callsJoinModifiersTest::testMaskReportsAnUnknownSourceRegistrationcovers and callsJoinModifiersTest::testValidChecksNaturalOuterAndDirectionalCombinationscallsJoinModifiersTest::testValidChecksNaturalOuterAndDirectionalCombinations#0coversJoinModifiersTest::testValidChecksNaturalOuterAndDirectionalCombinations#1coversJoinModifiersTest::testValidChecksNaturalOuterAndDirectionalCombinations#2coversJoinModifiersTest::testValidChecksNaturalOuterAndDirectionalCombinations#3coversJoinModifiersTest::testValidChecksNaturalOuterAndDirectionalCombinations#4coversJoinModifiersTest::testValidChecksNaturalOuterAndDirectionalCombinations#5coversJoinModifiersTest::testValidChecksNaturalOuterAndDirectionalCombinations#6coversJoinModifiersTest::testValidChecksNaturalOuterAndDirectionalCombinations#7coversJoinModifiersTest::testValidChecksNaturalOuterAndDirectionalCombinations#8coversJoinModifiersTest::testValidChecksNaturalOuterAndDirectionalCombinations#9coversJoinModifiersTest::testValidRejectsInnerOuterConflictsAndNaturalJoinConditionscovers and calls
Called from 3
- method-call SqlFaker\Sqlite\Generation\Lexeme\JoinLexemeGenerator::generate() packages/sql-faker/src/Sqlite/Generation/Lexeme/JoinLexemeGenerator.php:45
- method-call SqlFaker\Sqlite\Generation\Lexeme\JoinLexemeGenerator::generate() packages/sql-faker/src/Sqlite/Generation/Lexeme/JoinLexemeGenerator.php:56
- method-call SqlFaker\Sqlite\Generation\Lexeme\JoinModifiers::canComplete() packages/sql-faker/src/Sqlite/Generation/Lexeme/JoinModifiers.php:56
Calls 3
- class-const JoinModifiers::WORDS() line 31
- function-call
strtoupperline 31 - new LexicalException line 31
public function valid(int $mask, bool $hasCondition): boolRejects incompatible inner/outer flags, bare OUTER and NATURAL joins carrying ON or USING.
Parameters
$mask | int | |
$hasCondition | bool |
Returns
boolTest cases 13
JoinModifiersTest::testCanCompleteConsidersAllReachablePrefixStatescoversJoinModifiersTest::testValidChecksNaturalOuterAndDirectionalCombinationscallsJoinModifiersTest::testValidChecksNaturalOuterAndDirectionalCombinations#0coversJoinModifiersTest::testValidChecksNaturalOuterAndDirectionalCombinations#1coversJoinModifiersTest::testValidChecksNaturalOuterAndDirectionalCombinations#2coversJoinModifiersTest::testValidChecksNaturalOuterAndDirectionalCombinations#3coversJoinModifiersTest::testValidChecksNaturalOuterAndDirectionalCombinations#4coversJoinModifiersTest::testValidChecksNaturalOuterAndDirectionalCombinations#5coversJoinModifiersTest::testValidChecksNaturalOuterAndDirectionalCombinations#6coversJoinModifiersTest::testValidChecksNaturalOuterAndDirectionalCombinations#7coversJoinModifiersTest::testValidChecksNaturalOuterAndDirectionalCombinations#8coversJoinModifiersTest::testValidChecksNaturalOuterAndDirectionalCombinations#9coversJoinModifiersTest::testValidRejectsInnerOuterConflictsAndNaturalJoinConditionscovers and calls
public function canComplete(
int $mask,
int $remaining,
bool $hasCondition,
list<string> $words,
): boolChecks every reachable flag state of the still-unselected prefix, independently of spelling choices.
Parameters
$mask | int | |
$remaining | int | |
$hasCondition | bool | |
$words | list<string> | Spellings available for the fixed release |
Returns
boolThrows
LexicalException When registration data contains an unimplemented join wordTest cases 1
JoinModifiersTest::testCanCompleteConsidersAllReachablePrefixStatescovers and calls
Called from 1
Calls 3
- function-call
array_keysline 54 - method-call JoinModifiers::mask() line 56
- method-call JoinModifiers::valid() line 62
Private surface 1§
Implementation details, listed for orientation only.
private const WORDS = ['NATURAL' => 1, 'LEFT' => 2 | 4, 'OUTER' => 4, 'RIGHT' => 8 | 4, 'FULL' => 2 |…Test cases 23§
Test cases that cover or call this symbol, from the coverage report and from the analyzed test sources.
Dedicated tests 15
JoinModifiersTest::testCanCompleteConsidersAllReachablePrefixStatescovers and callsJoinModifiersTest::testMaskRecognizesCaseInsensitiveSourceWordsAndFullJoinFlagscovers and callsJoinModifiersTest::testMaskReportsAnUnknownSourceRegistrationcovers and callsJoinModifiersTest::testValidChecksNaturalOuterAndDirectionalCombinationscallsJoinModifiersTest::testValidChecksNaturalOuterAndDirectionalCombinations#0coversJoinModifiersTest::testValidChecksNaturalOuterAndDirectionalCombinations#1coversJoinModifiersTest::testValidChecksNaturalOuterAndDirectionalCombinations#2coversJoinModifiersTest::testValidChecksNaturalOuterAndDirectionalCombinations#3coversJoinModifiersTest::testValidChecksNaturalOuterAndDirectionalCombinations#4coversJoinModifiersTest::testValidChecksNaturalOuterAndDirectionalCombinations#5coversJoinModifiersTest::testValidChecksNaturalOuterAndDirectionalCombinations#6coversJoinModifiersTest::testValidChecksNaturalOuterAndDirectionalCombinations#7coversJoinModifiersTest::testValidChecksNaturalOuterAndDirectionalCombinations#8coversJoinModifiersTest::testValidChecksNaturalOuterAndDirectionalCombinations#9coversJoinModifiersTest::testValidRejectsInnerOuterConflictsAndNaturalJoinConditionscovers and calls
Other tests reaching this symbol 8
MySqlProviderTestcallsPostgreSqlProviderTestcallsSqlGeneratorFactoryTestcallsGenerationContextTestcallsDefinitionFactoryTestcallsJoinLexemeGeneratorTestcallsLexicalGrammarTestcallsSqliteProviderTestcalls
Relations§
Instantiated in 1
Method calls 3
- method-call SqlFaker\Sqlite\Generation\Lexeme\JoinLexemeGenerator::generate() packages/sql-faker/src/Sqlite/Generation/Lexeme/JoinLexemeGenerator.php:45
- method-call SqlFaker\Sqlite\Generation\Lexeme\JoinLexemeGenerator::generate() packages/sql-faker/src/Sqlite/Generation/Lexeme/JoinLexemeGenerator.php:56
- method-call SqlFaker\Sqlite\Generation\Lexeme\JoinLexemeGenerator::generate() packages/sql-faker/src/Sqlite/Generation/Lexeme/JoinLexemeGenerator.php:57