classScope
final class Scope
Restricted visibility: declared "@visibility SqlSemantics". Code outside that scope must not name this declaration.
A relation namespace and NULL-extension facts at one evaluation stage.
Properties§
public Identifiers $identifierspublic list<TableUse> $relations = []public array<string, list<string>> $extensions = []Methods§
public function __construct(
public Identifiers $identifiers,
public list<TableUse> $relations = [],
public array<string, list<string>> $extensions = [],
)Parameters
$identifiers | Identifiers | |
$relations | list<TableUse> | |
$extensions | array<string, list<string>> |
public function column(list<string> $parts, Node|Token $source): ExpressionReturns
Throws
Called from 4
- method-call SqlSemantics\Core\Binding\ExpressionBinder::bind() packages/sql-semantics/src/Core/Binding/ExpressionBinder.php:28
- method-call SqlSemantics\Core\Binding\ExpressionBinder::bind() packages/sql-semantics/src/Core/Binding/ExpressionBinder.php:38
- method-call SqlSemantics\Core\Binding\ExpressionBinder::token() packages/sql-semantics/src/Core/Binding/ExpressionBinder.php:61
- method-call SqlSemantics\Core\Binding\ProjectionBinder::star() packages/sql-semantics/src/Core/Binding/ProjectionBinder.php:84
Calls 10
- function-call
countline 41 - function-call
array_sliceline 42 - method-call Scope::matches() line 45
- method-call Identifiers::equal() line 49
- new ColumnBinding line 50
- new SemanticException line 55
- function-call
implodeline 55 - new Expression line 60
- class-const ExpressionKind::Column() line 60
- class-const Nullability::MaybeNull() line 60
public function matches(TableUse $relation, list<string> $qualifiers): boolParameters
$relation | TableUse | |
$qualifiers | list<string> |
Returns
boolCalled from 2
Calls 2
- function-call
countline 71 - method-call Identifiers::relationEqual() line 72
public function combine(self $right, Node $source): selfParameters
$right | self | |
$source | Node |
Returns
selfThrows
Calls 3
- method-call Identifiers::relationEqual() line 87
- new SemanticException line 88
- new
selfline 93
public function extend(string $joinId): selfAdds a join to the NULL provenance of every visible relation.
Parameters
$joinId | string |
Returns
selfTest cases 1
Calls 1
- new
selfline 106
Test cases 60§
Test cases that cover or call this symbol, from the coverage report and from the analyzed test sources.
Dedicated tests 1
Other tests reaching this symbol 59
SchemaAnalyzerTestcallsColumnPropertiesTestcallsColumnReaderTestcallsConstraintReaderTestcallsIdentifiersTestcallsSchemaChangesTestcallsSchemaReaderTestcallsStatementListTestcallsTokenGroupsTestcallsTreeTestcallsTypeReaderTestcallsBinderTestcallsBoundRelationTestcallsExpressionBinderTest::testTokenRejectsUnmodeledTerminalscallsExpressionRulesTestcallsFromBinderTestcallsIdentitySequenceTestcallsLiteralBinderTestcallsNullFactsTestcallsProjectionBinderTestcallsSelectBinderTestcallsSelectModifiersBinderTestcallsSyntaxGuardTestcallsTableResolverTestcallsTypeResolutionTestcallsDialectTestcallsBoundSelectTestcallsColumnBindingTestcallsExpressionKindTestcallsExpressionTestcallsJoinKindTestcallsJoinTestcallsOrderingTestcallsOutputColumnTestcallsTableUseTestcallsPlatformTestcallsNameRulesTestcallsQueryRulesTest::testOrderingNodesHonorsAnInjectedPolicycallsSchemaRulesTestcallsSyntaxRulesTestcallsTypeRulesTestcallsColumnDefinitionTestcallsColumnGenerationTestcallsConstraintKindTestcallsGenerationKindTestcallsInvariantTestcallsTableConstraintTestcallsTableDefinitionTestcallsSchemaBuilderTestcallsSchemaTestcallsSemanticExceptionTestcallsNullabilityTestcallsTypeDescriptorTestcallsSchemaTestcallsNameRulesTestcallsPlatformTestcallsQueryRulesTestcallsSchemaRulesTestcallsTypeRulesTestcalls
Relations§
Instantiated in 3
- new SqlSemantics\Core\Binding\FromBinder::table() packages/sql-semantics/src/Core/Binding/FromBinder.php:71
- new SqlSemantics\Core\Binding\SelectBinder::bind() packages/sql-semantics/src/Core/Binding/SelectBinder.php:47
- new SqlSemantics\Core\Binding\SelectBinder::bind() packages/sql-semantics/src/Core/Binding/SelectBinder.php:60
Method calls 5
- method-call SqlSemantics\Core\Binding\ExpressionBinder::bind() packages/sql-semantics/src/Core/Binding/ExpressionBinder.php:28
- method-call SqlSemantics\Core\Binding\ExpressionBinder::bind() packages/sql-semantics/src/Core/Binding/ExpressionBinder.php:38
- method-call SqlSemantics\Core\Binding\ExpressionBinder::token() packages/sql-semantics/src/Core/Binding/ExpressionBinder.php:61
- method-call SqlSemantics\Core\Binding\ProjectionBinder::star() packages/sql-semantics/src/Core/Binding/ProjectionBinder.php:80
- method-call SqlSemantics\Core\Binding\ProjectionBinder::star() packages/sql-semantics/src/Core/Binding/ProjectionBinder.php:84
Type declarations 11
- type SqlSemantics\Core\Binding\BoundRelation packages/sql-semantics/src/Core/Binding/BoundRelation.php:20
- type SqlSemantics\Core\Binding\ExpressionBinder packages/sql-semantics/src/Core/Binding/ExpressionBinder.php:22
- type SqlSemantics\Core\Binding\ExpressionBinder packages/sql-semantics/src/Core/Binding/ExpressionBinder.php:54
- type SqlSemantics\Core\Binding\ExpressionBinder packages/sql-semantics/src/Core/Binding/ExpressionBinder.php:90
- type SqlSemantics\Core\Binding\ExpressionBinder packages/sql-semantics/src/Core/Binding/ExpressionBinder.php:111
- type SqlSemantics\Core\Binding\ProjectionBinder packages/sql-semantics/src/Core/Binding/ProjectionBinder.php:22
- type SqlSemantics\Core\Binding\ProjectionBinder packages/sql-semantics/src/Core/Binding/ProjectionBinder.php:43
- type SqlSemantics\Core\Binding\ProjectionBinder packages/sql-semantics/src/Core/Binding/ProjectionBinder.php:76
- type SqlSemantics\Core\Binding\SelectModifiersBinder packages/sql-semantics/src/Core/Binding/SelectModifiersBinder.php:25
- type SqlSemantics\Core\Binding\SelectModifiersBinder packages/sql-semantics/src/Core/Binding/SelectModifiersBinder.php:48
- type SqlSemantics\Core\Binding\SelectModifiersBinder packages/sql-semantics/src/Core/Binding/SelectModifiersBinder.php:76