Class: CalculationBuilder
Defined in: packages/core/src/visitors/calculation-builder.ts:169
Builds a plan.Calculation from the given operator.
Extended by
Implements
Constructors
Constructor
new CalculationBuilder(
vmap,db):CalculationBuilder
Defined in: packages/core/src/visitors/calculation-builder.ts:170
Parameters
| Parameter | Type | Description |
|---|---|---|
vmap | Record<string, PlanVisitor<CalculationParams>> | Per-language visitor map used for recursive descent. |
db | DortDBAsFriend | Database instance providing access to the language manager. |
Returns
CalculationBuilder
Properties
db
protecteddb:DortDBAsFriend
Defined in: packages/core/src/visitors/calculation-builder.ts:174
Database instance providing access to the language manager.
vmap
protectedvmap:Record<string,PlanVisitor<CalculationParams>>
Defined in: packages/core/src/visitors/calculation-builder.ts:172
Per-language visitor map used for recursive descent.
Methods
processFnArg()
protectedprocessFnArg(arg):ASTIdentifier|CalculationParams
Defined in: packages/core/src/visitors/calculation-builder.ts:280
Converts a single plan.FnCall argument (which may be a wrapped operator or a
bare identifier) to CalculationParams, relaxing the assertMaxOne constraint
to ret1 when the argument's acceptSequence flag is set.
Parameters
| Parameter | Type |
|---|---|
arg | ASTIdentifier | PlanOpAsArg |
Returns
ASTIdentifier | CalculationParams
processItem()
protectedprocessItem(item):ASTIdentifier|CalculationParams
Defined in: packages/core/src/visitors/calculation-builder.ts:228
Converts an OpOrId to either a raw ASTIdentifier or a
CalculationParams by dispatching through vmap, unwrapping identity
FnCall(ret1, [x]) wrappers along the way.
Parameters
| Parameter | Type |
|---|---|
item | OpOrId |
Returns
ASTIdentifier | CalculationParams
processLiteralConditional()
protectedprocessLiteralConditional(cond,whenthens,defaultCase?):CalculationParams
Defined in: packages/core/src/visitors/calculation-builder.ts:436
Attempts to fold a CASE expression at compile time when cond is a literal.
Returns the pre-computed CalculationParams if the matching branch is also a
literal, or null when runtime evaluation is still required.
Parameters
| Parameter | Type |
|---|---|
cond | CalculationParams |
whenthens | [ASTIdentifier | CalculationParams, ASTIdentifier | CalculationParams][] |
defaultCase? | ASTIdentifier | CalculationParams |
Returns
processQuantifiedFn()
protectedprocessQuantifiedFn(operator,children): (...args) =>boolean
Defined in: packages/core/src/visitors/calculation-builder.ts:241
Builds a runtime implementation for a plan.FnCall that contains ANY / ALL plan.Quantifier arguments, performing the cartesian-product evaluation over quantified argument sequences.
Parameters
| Parameter | Type |
|---|---|
operator | FnCall |
children | (ASTIdentifier | CalculationParams)[] |
Returns
(...args) => boolean
processWhenThen()
protectedprocessWhenThen(item): [ASTIdentifier|CalculationParams,ASTIdentifier|CalculationParams]
Defined in: packages/core/src/visitors/calculation-builder.ts:358
Converts a CASE [when, then] pair to CalculationParams or raw identifiers.
Parameters
| Parameter | Type |
|---|---|
item | [OpOrId, OpOrId] |
Returns
[ASTIdentifier | CalculationParams, ASTIdentifier | CalculationParams]
toItem()
protectedtoItem(op):MapToItem
Defined in: packages/core/src/visitors/calculation-builder.ts:185
Wraps op in a plan.MapToItem node, reparenting op under the new node and
updating op's previous parent to point at the wrapper.
Parameters
| Parameter | Type |
|---|---|
op | PlanTupleOperator |
Returns
visitAggregate()
visitAggregate(
operator):CalculationParams
Defined in: packages/core/src/visitors/calculation-builder.ts:593
Parameters
| Parameter | Type |
|---|---|
operator | AggregateCall |
Returns
Implementation of
visitBidirectionalRecursion()
visitBidirectionalRecursion(
operator):CalculationParams
Defined in: packages/core/src/visitors/calculation-builder.ts:644
Parameters
| Parameter | Type |
|---|---|
operator | BidirectionalRecursion |
Returns
Implementation of
PlanVisitor.visitBidirectionalRecursion
visitCalculation()
visitCalculation(
operator):CalculationParams
Defined in: packages/core/src/visitors/calculation-builder.ts:349
Parameters
| Parameter | Type |
|---|---|
operator | Calculation |
Returns
Implementation of
visitCartesianProduct()
visitCartesianProduct(
operator):CalculationParams
Defined in: packages/core/src/visitors/calculation-builder.ts:479
Parameters
| Parameter | Type |
|---|---|
operator | CartesianProduct |
Returns
Implementation of
PlanVisitor.visitCartesianProduct
visitConditional()
visitConditional(
operator):CalculationParams
Defined in: packages/core/src/visitors/calculation-builder.ts:364
Parameters
| Parameter | Type |
|---|---|
operator | Conditional |
Returns
Implementation of
visitDifference()
visitDifference(
operator):CalculationParams
Defined in: packages/core/src/visitors/calculation-builder.ts:568
Parameters
| Parameter | Type |
|---|---|
operator | Difference |
Returns
Implementation of
visitDistinct()
visitDistinct(
operator):CalculationParams
Defined in: packages/core/src/visitors/calculation-builder.ts:579
Parameters
| Parameter | Type |
|---|---|
operator | Distinct |
Returns
Implementation of
visitFnCall()
visitFnCall(
operator):CalculationParams
Defined in: packages/core/src/visitors/calculation-builder.ts:293
Parameters
| Parameter | Type |
|---|---|
operator | FnCall |
Returns
Implementation of
visitGroupBy()
visitGroupBy(
operator):CalculationParams
Defined in: packages/core/src/visitors/calculation-builder.ts:528
Parameters
| Parameter | Type |
|---|---|
operator | GroupBy |
Returns
Implementation of
visitIndexedRecursion()
visitIndexedRecursion(
operator):CalculationParams
Defined in: packages/core/src/visitors/calculation-builder.ts:637
Parameters
| Parameter | Type |
|---|---|
operator | IndexedRecursion |
Returns
Implementation of
PlanVisitor.visitIndexedRecursion
visitIndexScan()
visitIndexScan(
operator):CalculationParams
Defined in: packages/core/src/visitors/calculation-builder.ts:630
Parameters
| Parameter | Type |
|---|---|
operator | IndexScan |
Returns
Implementation of
visitIntersection()
visitIntersection(
operator):CalculationParams
Defined in: packages/core/src/visitors/calculation-builder.ts:557
Parameters
| Parameter | Type |
|---|---|
operator | Intersection |
Returns
Implementation of
visitItemFnSource()
visitItemFnSource(
operator):CalculationParams
Defined in: packages/core/src/visitors/calculation-builder.ts:601
Parameters
| Parameter | Type |
|---|---|
operator | ItemFnSource |
Returns
Implementation of
visitItemSource()
visitItemSource(
operator):CalculationParams
Defined in: packages/core/src/visitors/calculation-builder.ts:215
Parameters
| Parameter | Type |
|---|---|
operator | ItemSource |
Returns
Implementation of
visitJoin()
visitJoin(
operator):CalculationParams
Defined in: packages/core/src/visitors/calculation-builder.ts:486
Parameters
| Parameter | Type |
|---|---|
operator | Join |
Returns
Implementation of
visitLimit()
visitLimit(
operator):CalculationParams
Defined in: packages/core/src/visitors/calculation-builder.ts:535
Parameters
| Parameter | Type |
|---|---|
operator | Limit |
Returns
Implementation of
visitLiteral()
visitLiteral(
operator):CalculationParams
Defined in: packages/core/src/visitors/calculation-builder.ts:341
Parameters
| Parameter | Type |
|---|---|
operator | Literal<unknown> |
Returns
Implementation of
visitMapFromItem()
visitMapFromItem(
operator):CalculationParams
Defined in: packages/core/src/visitors/calculation-builder.ts:507
Parameters
| Parameter | Type |
|---|---|
operator | MapFromItem |
Returns
Implementation of
visitMapToItem()
visitMapToItem(
operator):CalculationParams
Defined in: packages/core/src/visitors/calculation-builder.ts:500
Parameters
| Parameter | Type |
|---|---|
operator | MapToItem |
Returns
Implementation of
visitNullSource()
visitNullSource(
operator):CalculationParams
Defined in: packages/core/src/visitors/calculation-builder.ts:586
Parameters
| Parameter | Type |
|---|---|
operator | NullSource |
Returns
Implementation of
visitOrderBy()
visitOrderBy(
operator):CalculationParams
Defined in: packages/core/src/visitors/calculation-builder.ts:521
Parameters
| Parameter | Type |
|---|---|
operator | OrderBy |
Returns
Implementation of
visitProjection()
visitProjection(
operator):CalculationParams
Defined in: packages/core/src/visitors/calculation-builder.ts:194
Parameters
| Parameter | Type |
|---|---|
operator | Projection |
Returns
Implementation of
visitProjectionConcat()
visitProjectionConcat(
operator):CalculationParams
Defined in: packages/core/src/visitors/calculation-builder.ts:493
Parameters
| Parameter | Type |
|---|---|
operator | ProjectionConcat |
Returns
Implementation of
PlanVisitor.visitProjectionConcat
visitProjectionIndex()
visitProjectionIndex(
operator):CalculationParams
Defined in: packages/core/src/visitors/calculation-builder.ts:514
Parameters
| Parameter | Type |
|---|---|
operator | ProjectionIndex |
Returns
Implementation of
PlanVisitor.visitProjectionIndex
visitQuantifier()
visitQuantifier(
operator):CalculationParams
Defined in: packages/core/src/visitors/calculation-builder.ts:615
Parameters
| Parameter | Type |
|---|---|
operator | Quantifier |
Returns
Implementation of
visitRecursion()
visitRecursion(
operator):CalculationParams
Defined in: packages/core/src/visitors/calculation-builder.ts:623
Parameters
| Parameter | Type |
|---|---|
operator | Recursion |
Returns
Implementation of
visitSelection()
visitSelection(
operator):CalculationParams
Defined in: packages/core/src/visitors/calculation-builder.ts:201
Parameters
| Parameter | Type |
|---|---|
operator | Selection |
Returns
Implementation of
visitTupleFnSource()
visitTupleFnSource(
operator):CalculationParams
Defined in: packages/core/src/visitors/calculation-builder.ts:608
Parameters
| Parameter | Type |
|---|---|
operator | TupleFnSource |
Returns
Implementation of
PlanVisitor.visitTupleFnSource
visitTupleSource()
visitTupleSource(
operator):CalculationParams
Defined in: packages/core/src/visitors/calculation-builder.ts:208
Parameters
| Parameter | Type |
|---|---|
operator | TupleSource |
Returns
Implementation of
visitUnion()
visitUnion(
operator):CalculationParams
Defined in: packages/core/src/visitors/calculation-builder.ts:546
Parameters
| Parameter | Type |
|---|---|
operator | Union |