Class: AttributeRenamer
Defined in: packages/core/src/visitors/attribute-renamer.ts:20
Renames attributes in the plan.
Extended by
Implements
PlanVisitor<void,Translations>
Constructors
Constructor
new AttributeRenamer(
vmap,db):AttributeRenamer
Defined in: packages/core/src/visitors/attribute-renamer.ts:26
Parameters
| Parameter | Type | Description |
|---|---|---|
vmap | Record<string, PlanVisitor<void, Translations>> | Per-language visitor map used for recursive descent. |
db | DortDBAsFriend | Database instance providing access to the language manager. |
Returns
AttributeRenamer
Properties
db
protecteddb:DortDBAsFriend
Defined in: packages/core/src/visitors/attribute-renamer.ts:30
Database instance providing access to the language manager.
tdepsVmap
protectedtdepsVmap:Record<string,TransitiveDependencies>
Defined in: packages/core/src/visitors/attribute-renamer.ts:22
Per-language TransitiveDependencies visitor map, used to invalidate the cache after renaming.
varMappers
protectedvarMappers:Record<string,VariableMapper>
Defined in: packages/core/src/visitors/attribute-renamer.ts:24
Per-language VariableMapper map, used for variable mapping.
vmap
protectedvmap:Record<string,PlanVisitor<void,Translations>>
Defined in: packages/core/src/visitors/attribute-renamer.ts:28
Per-language visitor map used for recursive descent.
Methods
prepareTranslations()
protectedprepareTranslations(ctx,renames):Translations
Defined in: packages/core/src/visitors/attribute-renamer.ts:76
Prepares variable map for renaming by reversing the translation map from the variable-mapper context.
Parameters
| Parameter | Type |
|---|---|
ctx | VariableMapperCtx |
renames | RenameMap |
Returns
prepareVarMapCtx()
protectedprepareVarMapCtx(renames):VariableMapperCtx
Defined in: packages/core/src/visitors/attribute-renamer.ts:54
First, the whole plan is mapped to numeric indexes. This method prepares the context for that mapping.
Parameters
| Parameter | Type |
|---|---|
renames | RenameMap |
Returns
processArray()
protectedprocessArray(array,translations,containingOp,updateFn?):void
Defined in: packages/core/src/visitors/attribute-renamer.ts:116
Iterates array in place, replacing each ASTIdentifier element with
its renamed version.
Parameters
| Parameter | Type | Description |
|---|---|---|
array | OpOrId[] | - |
translations | Translations | - |
containingOp | PlanOperator | - |
updateFn? | (newId, i) => void | Optional callback used instead of direct array assignment when the renamed identifier lives in a wrapper object (e.g. a projection pair). |
Returns
void
processItem()
protectedprocessItem<Key,Obj>(obj,key,translations,containingOp):void
Defined in: packages/core/src/visitors/attribute-renamer.ts:142
Renames a single property obj[key] in place when it is an
ASTIdentifier; otherwise recurses into the operator.
Type Parameters
| Type Parameter |
|---|
Key extends string |
Obj extends Record<Key, OpOrId> |
Parameters
| Parameter | Type |
|---|---|
obj | Obj |
key | Key |
translations | Translations |
containingOp | PlanOperator |
Returns
void
rename()
rename(
plan,renames):void
Defined in: packages/core/src/visitors/attribute-renamer.ts:40
Applies translations to plan in place and invalidates the transitive-dependency cache
for the entire subtree rooted at plan.
Parameters
| Parameter | Type |
|---|---|
plan | PlanOperator |
renames | RenameMap |
Returns
void
renameIdentifier()
protectedrenameIdentifier(id,varmap):ASTIdentifier
Defined in: packages/core/src/visitors/attribute-renamer.ts:99
Rename a single identifier, keeping references to aggregates
Parameters
| Parameter | Type |
|---|---|
id | ASTIdentifier |
varmap | VariableMap |
Returns
visitAggregate()
visitAggregate(
operator,translations):void
Defined in: packages/core/src/visitors/attribute-renamer.ts:337
Parameters
| Parameter | Type |
|---|---|
operator | AggregateCall |
translations | Translations |
Returns
void
Implementation of
visitBidirectionalRecursion()
visitBidirectionalRecursion(
operator,translations):void
Defined in: packages/core/src/visitors/attribute-renamer.ts:378
Parameters
| Parameter | Type |
|---|---|
operator | BidirectionalRecursion |
translations | Translations |
Returns
void
Implementation of
PlanVisitor.visitBidirectionalRecursion
visitCalculation()
visitCalculation(
operator,translations):void
Defined in: packages/core/src/visitors/attribute-renamer.ts:207
Parameters
| Parameter | Type |
|---|---|
operator | Calculation |
translations | Translations |
Returns
void
Implementation of
visitCartesianProduct()
visitCartesianProduct(
operator,translations):void
Defined in: packages/core/src/visitors/attribute-renamer.ts:247
Parameters
| Parameter | Type |
|---|---|
operator | CartesianProduct |
translations | Translations |
Returns
void
Implementation of
PlanVisitor.visitCartesianProduct
visitConditional()
visitConditional(
operator,translations):void
Defined in: packages/core/src/visitors/attribute-renamer.ts:216
Parameters
| Parameter | Type |
|---|---|
operator | Conditional |
translations | Translations |
Returns
void
Implementation of
visitDifference()
visitDifference(
operator,translations):void
Defined in: packages/core/src/visitors/attribute-renamer.ts:324
Parameters
| Parameter | Type |
|---|---|
operator | Difference |
translations | Translations |
Returns
void
Implementation of
visitDistinct()
visitDistinct(
operator,translations):void
Defined in: packages/core/src/visitors/attribute-renamer.ts:327
Parameters
| Parameter | Type |
|---|---|
operator | Distinct |
translations | Translations |
Returns
void
Implementation of
visitFnCall()
visitFnCall(
operator,translations):void
Defined in: packages/core/src/visitors/attribute-renamer.ts:192
Parameters
| Parameter | Type |
|---|---|
operator | FnCall |
translations | Translations |
Returns
void
Implementation of
visitGroupBy()
visitGroupBy(
operator,translations):void
Defined in: packages/core/src/visitors/attribute-renamer.ts:292
Parameters
| Parameter | Type |
|---|---|
operator | GroupBy |
translations | Translations |
Returns
void
Implementation of
visitIndexedRecursion()
visitIndexedRecursion(
operator,translations):void
Defined in: packages/core/src/visitors/attribute-renamer.ts:370
Parameters
| Parameter | Type |
|---|---|
operator | IndexedRecursion |
translations | Translations |
Returns
void
Implementation of
PlanVisitor.visitIndexedRecursion
visitIndexScan()
visitIndexScan(
operator,translations):void
Defined in: packages/core/src/visitors/attribute-renamer.ts:362
Parameters
| Parameter | Type |
|---|---|
operator | IndexScan |
translations | Translations |
Returns
void
Implementation of
visitIntersection()
visitIntersection(
operator,translations):void
Defined in: packages/core/src/visitors/attribute-renamer.ts:318
Parameters
| Parameter | Type |
|---|---|
operator | Intersection |
translations | Translations |
Returns
void
Implementation of
visitItemFnSource()
visitItemFnSource(
operator,translations):void
Defined in: packages/core/src/visitors/attribute-renamer.ts:347
Parameters
| Parameter | Type |
|---|---|
operator | ItemFnSource |
translations | Translations |
Returns
void
Implementation of
visitItemSource()
visitItemSource(
operator,translations):void
Defined in: packages/core/src/visitors/attribute-renamer.ts:188
Parameters
| Parameter | Type |
|---|---|
operator | ItemSource |
translations | Translations |
Returns
void
Implementation of
visitJoin()
visitJoin(
operator,translations):void
Defined in: packages/core/src/visitors/attribute-renamer.ts:254
Parameters
| Parameter | Type |
|---|---|
operator | Join |
translations | Translations |
Returns
void
Implementation of
visitLimit()
visitLimit(
operator,translations):void
Defined in: packages/core/src/visitors/attribute-renamer.ts:308
Parameters
| Parameter | Type |
|---|---|
operator | Limit |
translations | Translations |
Returns
void
Implementation of
visitLiteral()
visitLiteral(
operator,translations):void
Defined in: packages/core/src/visitors/attribute-renamer.ts:204
Parameters
| Parameter | Type |
|---|---|
operator | Literal |
translations | Translations |
Returns
void
Implementation of
visitMapFromItem()
visitMapFromItem(
operator,translations):void
Defined in: packages/core/src/visitors/attribute-renamer.ts:269
Parameters
| Parameter | Type |
|---|---|
operator | MapFromItem |
translations | Translations |
Returns
void
Implementation of
visitMapToItem()
visitMapToItem(
operator,translations):void
Defined in: packages/core/src/visitors/attribute-renamer.ts:265
Parameters
| Parameter | Type |
|---|---|
operator | MapToItem |
translations | Translations |
Returns
void
Implementation of
visitNullSource()
visitNullSource(
operator,translations):void
Defined in: packages/core/src/visitors/attribute-renamer.ts:333
Parameters
| Parameter | Type |
|---|---|
operator | NullSource |
translations | Translations |
Returns
void
Implementation of
visitOrderBy()
visitOrderBy(
operator,translations):void
Defined in: packages/core/src/visitors/attribute-renamer.ts:283
Parameters
| Parameter | Type |
|---|---|
operator | OrderBy |
translations | Translations |
Returns
void
Implementation of
visitProjection()
visitProjection(
operator,translations):void
Defined in: packages/core/src/visitors/attribute-renamer.ts:163
Parameters
| Parameter | Type |
|---|---|
operator | Projection |
translations | Translations |
Returns
void
Implementation of
visitProjectionConcat()
visitProjectionConcat(
operator,translations):void
Defined in: packages/core/src/visitors/attribute-renamer.ts:258
Parameters
| Parameter | Type |
|---|---|
operator | ProjectionConcat |
translations | Translations |
Returns
void
Implementation of
PlanVisitor.visitProjectionConcat
visitProjectionIndex()
visitProjectionIndex(
operator,translations):void
Defined in: packages/core/src/visitors/attribute-renamer.ts:276
Parameters
| Parameter | Type |
|---|---|
operator | ProjectionIndex |
translations | Translations |
Returns
void
Implementation of
PlanVisitor.visitProjectionIndex
visitQuantifier()
visitQuantifier(
operator,translations):void
Defined in: packages/core/src/visitors/attribute-renamer.ts:359
Parameters
| Parameter | Type |
|---|---|
operator | Quantifier |
translations | Translations |
Returns
void
Implementation of
visitRecursion()
visitRecursion(
operator,translations):void
Defined in: packages/core/src/visitors/attribute-renamer.ts:158
Parameters
| Parameter | Type |
|---|---|
operator | Recursion |
translations | Translations |
Returns
void
Implementation of
visitSelection()
visitSelection(
operator,translations):void
Defined in: packages/core/src/visitors/attribute-renamer.ts:180
Parameters
| Parameter | Type |
|---|---|
operator | Selection |
translations | Translations |
Returns
void
Implementation of
visitSetOp()
visitSetOp(
operator,translations):void
Defined in: packages/core/src/visitors/attribute-renamer.ts:311
Parameters
| Parameter | Type |
|---|---|
operator | SetOperator |
translations | Translations |
Returns
void
visitTupleFnSource()
visitTupleFnSource(
operator,translations):void
Defined in: packages/core/src/visitors/attribute-renamer.ts:353
Parameters
| Parameter | Type |
|---|---|
operator | TupleFnSource |
translations | Translations |
Returns
void
Implementation of
PlanVisitor.visitTupleFnSource
visitTupleSource()
visitTupleSource(
operator,translations):void
Defined in: packages/core/src/visitors/attribute-renamer.ts:184
Parameters
| Parameter | Type |
|---|---|
operator | TupleSource |
translations | Translations |
Returns
void
Implementation of
visitUnion()
visitUnion(
operator,translations):void
Defined in: packages/core/src/visitors/attribute-renamer.ts:315
Parameters
| Parameter | Type |
|---|---|
operator | Union |
translations | Translations |
Returns
void