Skip to main content

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​

ParameterTypeDescription
dbDortDBAsFriendInternal database interface.

Returns​

UnnestSubqueries

Properties​

calcBuilders​

protected calcBuilders: Record<string, PlanVisitor<CalculationParams>>

Defined in: packages/core/src/optimizer/rules/unnest-subqueries.ts:52

Per-language calculation-builder visitor instances.


db​

protected db: DortDBAsFriend

Defined in: packages/core/src/optimizer/rules/unnest-subqueries.ts:58

Internal database interface.


eqCheckers​

protected eqCheckers: Record<string, EqualityChecker>

Defined in: packages/core/src/optimizer/rules/unnest-subqueries.ts:54

Per-language equality-checker visitor instances.


operator​

operator: (typeof Selection | typeof Projection | typeof GroupBy | typeof OrderBy | typeof Distinct)[]

Defined in: packages/core/src/optimizer/rules/unnest-subqueries.ts:41

The operator this rule starts matching at.

Implementation of​

PatternRule.operator


tdepsVmap​

protected tdepsVmap: Record<string, TransitiveDependencies>

Defined in: packages/core/src/optimizer/rules/unnest-subqueries.ts:50

Per-language transitive-dependency visitor instances.

Methods​

isGuaranteedValue()​

protected isGuaranteedValue(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​

ParameterType
nodePlanOperator

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​

ParameterTypeDescription
nodeTupleOperatorWithSourceThe plan operator to match.

Returns​

PatternRuleMatchResult<UnnestSubqueriesBindings>

Implementation of​

PatternRule.match


removeSubq()​

protected removeSubq(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​

ParameterType
calcCalculation
argInumber
newAttrASTIdentifier

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​

ParameterTypeDescription
nodeTupleOperatorWithSourceThe plan operator to transform.
bindingsUnnestSubqueriesBindingsThe bindings to use for the transformation.

Returns​

PlanOperator

Implementation of​

PatternRule.transform