Class: TransitiveDependencies
Defined in: packages/core/src/visitors/transitive-deps.ts:18
Calculate the transitive dependencies for a plan operator tree. The dependencies are identifiers that are used within the tree, but are defined in external scopes.
Extended by
Implements
Constructors
Constructor
new TransitiveDependencies(
vmap):TransitiveDependencies
Defined in: packages/core/src/visitors/transitive-deps.ts:19
Parameters
| Parameter | Type | Description |
|---|---|---|
vmap | Record<string, PlanVisitor<IdSet>> | Per-language visitor map used for recursive descent. |
Returns
TransitiveDependencies
Properties
vmap
protectedvmap:Record<string,PlanVisitor<IdSet>>
Defined in: packages/core/src/visitors/transitive-deps.ts:21
Per-language visitor map used for recursive descent.
Methods
clearCache()
clearCache():
void
Defined in: packages/core/src/visitors/transitive-deps.ts:319
Replaces the computation cache with a new empty WeakMap, invalidating all entries.
Returns
void
getCache()
protectedgetCache():WeakMap<PlanOperator,IdSet>
Defined in: packages/core/src/visitors/transitive-deps.ts:42
Returns the module-level WeakMap used as the computation cache.
Returns
WeakMap<PlanOperator, IdSet>
invalidateCacheDownstream()
invalidateCacheDownstream(
operator):void
Defined in: packages/core/src/visitors/transitive-deps.ts:326
Removes operator and all of its ancestors from the cache, walking up via
PlanOperator.parent until the root is reached.
Parameters
| Parameter | Type |
|---|---|
operator | PlanOperator |
Returns
void
invalidateCacheElement()
invalidateCacheElement(
operator):void
Defined in: packages/core/src/visitors/transitive-deps.ts:343
Removes only operator's own cache entry without touching its ancestors or children.
Parameters
| Parameter | Type |
|---|---|
operator | PlanOperator |
Returns
void
invalidateCacheUpstream()
invalidateCacheUpstream(
operator):void
Defined in: packages/core/src/visitors/transitive-deps.ts:336
Removes operator and the entire subtree rooted at it from the cache, recursing
into all children.
Parameters
| Parameter | Type |
|---|---|
operator | PlanOperator |
Returns
void
onlyExternal()
protectedonlyExternal(deps,op):Trie<string|number|symbol,any>
Defined in: packages/core/src/visitors/transitive-deps.ts:30
Returns a clone of deps with all identifiers produced by op's own schema removed,
leaving only those that must be satisfied from an outer scope.
Parameters
| Parameter | Type |
|---|---|
deps | IdSet |
op | PlanTupleOperator |
Returns
Trie<string | number | symbol, any>
processNode()
protectedprocessNode(node):IdSet
Defined in: packages/core/src/visitors/transitive-deps.ts:38
Dispatches node through the per-language vmap and returns its transitive dependencies.
Parameters
| Parameter | Type |
|---|---|
node | PlanOperator |
Returns
visitAggregate()
visitAggregate(
operator):IdSet
Defined in: packages/core/src/visitors/transitive-deps.ts:244
Parameters
| Parameter | Type |
|---|---|
operator | AggregateCall |
Returns
Implementation of
visitBidirectionalRecursion()
visitBidirectionalRecursion(
operator):IdSet
Defined in: packages/core/src/visitors/transitive-deps.ts:300
Parameters
| Parameter | Type |
|---|---|
operator | BidirectionalRecursion |
Returns
Implementation of
PlanVisitor.visitBidirectionalRecursion
visitCalculation()
visitCalculation(
operator):IdSet
Defined in: packages/core/src/visitors/transitive-deps.ts:102
Parameters
| Parameter | Type |
|---|---|
operator | Calculation |
Returns
Implementation of
visitCartesianProduct()
visitCartesianProduct(
operator):IdSet
Defined in: packages/core/src/visitors/transitive-deps.ts:122
Parameters
| Parameter | Type |
|---|---|
operator | CartesianProduct |
Returns
Implementation of
PlanVisitor.visitCartesianProduct
visitConditional()
visitConditional(
operator):IdSet
Defined in: packages/core/src/visitors/transitive-deps.ts:113
Parameters
| Parameter | Type |
|---|---|
operator | Conditional |
Returns
Implementation of
visitDifference()
visitDifference(
operator):IdSet
Defined in: packages/core/src/visitors/transitive-deps.ts:222
Parameters
| Parameter | Type |
|---|---|
operator | Difference |
Returns
Implementation of
visitDistinct()
visitDistinct(
operator):IdSet
Defined in: packages/core/src/visitors/transitive-deps.ts:225
Parameters
| Parameter | Type |
|---|---|
operator | Distinct |
Returns
Implementation of
visitFnCall()
visitFnCall(
operator):IdSet
Defined in: packages/core/src/visitors/transitive-deps.ts:88
Parameters
| Parameter | Type |
|---|---|
operator | FnCall |
Returns
Implementation of
visitGroupBy()
visitGroupBy(
operator):IdSet
Defined in: packages/core/src/visitors/transitive-deps.ts:189
Parameters
| Parameter | Type |
|---|---|
operator | GroupBy |
Returns
Implementation of
visitIndexedRecursion()
visitIndexedRecursion(
operator):IdSet
Defined in: packages/core/src/visitors/transitive-deps.ts:287
Parameters
| Parameter | Type |
|---|---|
operator | IndexedRecursion |
Returns
Implementation of
PlanVisitor.visitIndexedRecursion
visitIndexScan()
visitIndexScan(
operator):IdSet
Defined in: packages/core/src/visitors/transitive-deps.ts:278
Parameters
| Parameter | Type |
|---|---|
operator | IndexScan |
Returns
Implementation of
visitIntersection()
visitIntersection(
operator):IdSet
Defined in: packages/core/src/visitors/transitive-deps.ts:219
Parameters
| Parameter | Type |
|---|---|
operator | Intersection |
Returns
Implementation of
visitItemFnSource()
visitItemFnSource(
operator):IdSet
Defined in: packages/core/src/visitors/transitive-deps.ts:254
Parameters
| Parameter | Type |
|---|---|
operator | ItemFnSource |
Returns
Implementation of
visitItemSource()
visitItemSource(
operator):IdSet
Defined in: packages/core/src/visitors/transitive-deps.ts:85
Parameters
| Parameter | Type |
|---|---|
operator | ItemSource |
Returns
Implementation of
visitJoin()
visitJoin(
operator):IdSet
Defined in: packages/core/src/visitors/transitive-deps.ts:131
Parameters
| Parameter | Type |
|---|---|
operator | Join |
Returns
Implementation of
visitLimit()
visitLimit(
operator):IdSet
Defined in: packages/core/src/visitors/transitive-deps.ts:203
Parameters
| Parameter | Type |
|---|---|
operator | Limit |
Returns
Implementation of
visitLiteral()
visitLiteral(
operator):IdSet
Defined in: packages/core/src/visitors/transitive-deps.ts:99
Parameters
| Parameter | Type |
|---|---|
operator | Literal |
Returns
Implementation of
visitMapFromItem()
visitMapFromItem(
operator):IdSet
Defined in: packages/core/src/visitors/transitive-deps.ts:161
Parameters
| Parameter | Type |
|---|---|
operator | MapFromItem |
Returns
Implementation of
visitMapToItem()
visitMapToItem(
operator):IdSet
Defined in: packages/core/src/visitors/transitive-deps.ts:155
Parameters
| Parameter | Type |
|---|---|
operator | MapToItem |
Returns
Implementation of
visitNullSource()
visitNullSource(
operator):IdSet
Defined in: packages/core/src/visitors/transitive-deps.ts:241
Parameters
| Parameter | Type |
|---|---|
operator | NullSource |
Returns
Implementation of
visitOrderBy()
visitOrderBy(
operator):IdSet
Defined in: packages/core/src/visitors/transitive-deps.ts:173
Parameters
| Parameter | Type |
|---|---|
operator | OrderBy |
Returns
Implementation of
visitProjection()
visitProjection(
operator):IdSet
Defined in: packages/core/src/visitors/transitive-deps.ts:59
Parameters
| Parameter | Type |
|---|---|
operator | Projection |
Returns
Implementation of
visitProjectionConcat()
visitProjectionConcat(
operator):IdSet
Defined in: packages/core/src/visitors/transitive-deps.ts:145
Parameters
| Parameter | Type |
|---|---|
operator | ProjectionConcat |
Returns
Implementation of
PlanVisitor.visitProjectionConcat
visitProjectionIndex()
visitProjectionIndex(
operator):IdSet
Defined in: packages/core/src/visitors/transitive-deps.ts:167
Parameters
| Parameter | Type |
|---|---|
operator | ProjectionIndex |
Returns
Implementation of
PlanVisitor.visitProjectionIndex
visitQuantifier()
visitQuantifier(
operator):IdSet
Defined in: packages/core/src/visitors/transitive-deps.ts:272
Parameters
| Parameter | Type |
|---|---|
operator | Quantifier |
Returns
Implementation of
visitRecursion()
visitRecursion(
operator):IdSet
Defined in: packages/core/src/visitors/transitive-deps.ts:46
Parameters
| Parameter | Type |
|---|---|
operator | Recursion |
Returns
Implementation of
visitSelection()
visitSelection(
operator):IdSet
Defined in: packages/core/src/visitors/transitive-deps.ts:72
Parameters
| Parameter | Type |
|---|---|
operator | Selection |
Returns
Implementation of
visitSetOp()
protectedvisitSetOp(operator):IdSet
Defined in: packages/core/src/visitors/transitive-deps.ts:207
Parameters
| Parameter | Type |
|---|---|
operator | SetOperator |
Returns
visitTupleFnSource()
visitTupleFnSource(
operator):IdSet
Defined in: packages/core/src/visitors/transitive-deps.ts:263
Parameters
| Parameter | Type |
|---|---|
operator | TupleFnSource |
Returns
Implementation of
PlanVisitor.visitTupleFnSource
visitTupleSource()
visitTupleSource(
operator):IdSet
Defined in: packages/core/src/visitors/transitive-deps.ts:82
Parameters
| Parameter | Type |
|---|---|
operator | TupleSource |
Returns
Implementation of
visitUnion()
visitUnion(
operator):IdSet
Defined in: packages/core/src/visitors/transitive-deps.ts:216
Parameters
| Parameter | Type |
|---|---|
operator | Union |