Class: UnnestSubqueries
Defined in: packages/core/src/optimizer/rules/unnest-subqueries.ts:37
Replaces eligible nested operators with plan.ProjectionConcat.
Implements
Constructors
Constructor
new UnnestSubqueries(
db):UnnestSubqueries
Defined in: packages/core/src/optimizer/rules/unnest-subqueries.ts:56
Parameters
| Parameter | Type | Description |
|---|---|---|
db | DortDBAsFriend | Internal database interface. |
Returns
UnnestSubqueries
Properties
calcBuilders
protectedcalcBuilders:Record<string,PlanVisitor<CalculationParams>>
Defined in: packages/core/src/optimizer/rules/unnest-subqueries.ts:52
Per-language calculation-builder visitor instances.
db
protecteddb:DortDBAsFriend
Defined in: packages/core/src/optimizer/rules/unnest-subqueries.ts:58
Internal database interface.
eqCheckers
protectedeqCheckers:Record<string,EqualityChecker>
Defined in: packages/core/src/optimizer/rules/unnest-subqueries.ts:54
Per-language equality-checker visitor instances.
operator
operator: (typeof
Selection| typeofProjection| typeofGroupBy| typeofOrderBy| typeofDistinct)[]
Defined in: packages/core/src/optimizer/rules/unnest-subqueries.ts:41
The operator this rule starts matching at.
Implementation of
tdepsVmap
protectedtdepsVmap:Record<string,TransitiveDependencies>
Defined in: packages/core/src/optimizer/rules/unnest-subqueries.ts:50
Per-language transitive-dependency visitor instances.
Methods
isGuaranteedValue()
protectedisGuaranteedValue(node):boolean
Defined in: packages/core/src/optimizer/rules/unnest-subqueries.ts:157
Returns true when node is guaranteed to produce at least one result, allowing the outer join to be skipped.
Parameters
| Parameter | Type |
|---|---|
node | PlanOperator |
Returns
boolean
match()
match(
node):PatternRuleMatchResult<UnnestSubqueriesBindings>
Defined in: packages/core/src/optimizer/rules/unnest-subqueries.ts:65
Matches the given plan operator against this rule.
Parameters
| Parameter | Type | Description |
|---|---|---|
node | TupleOperatorWithSource | The plan operator to match. |
Returns
PatternRuleMatchResult<UnnestSubqueriesBindings>
Implementation of
removeSubq()
protectedremoveSubq(calc,argI,newAttr):void
Defined in: packages/core/src/optimizer/rules/unnest-subqueries.ts:124
Replaces the sub-operator at argument position argI in calc with a reference to the synthetic newAttr.
Parameters
| Parameter | Type |
|---|---|
calc | Calculation |
argI | number |
newAttr | ASTIdentifier |
Returns
void
transform()
transform(
node,bindings):PlanOperator
Defined in: packages/core/src/optimizer/rules/unnest-subqueries.ts:86
Transforms the given plan operator using the provided bindings.
Parameters
| Parameter | Type | Description |
|---|---|---|
node | TupleOperatorWithSource | The plan operator to transform. |
bindings | UnnestSubqueriesBindings | The bindings to use for the transformation. |