Skip to main content

Class: AttributeRenameChecker

Defined in: packages/core/src/visitors/attribute-rename-checker.ts:28

Verifies whether renaming attributes in the plan is safe.

Extended by​

Implements​

Constructors​

Constructor​

new AttributeRenameChecker(vmap, db): AttributeRenameChecker

Defined in: packages/core/src/visitors/attribute-rename-checker.ts:35

Parameters​

ParameterTypeDescription
vmapRecord<string, PlanVisitor<boolean, ArcDescentArgs>>Per-language visitor map used for recursive descent.
dbDortDBAsFriendDatabase instance providing access to the language manager.

Returns​

AttributeRenameChecker

Properties​

db​

protected db: DortDBAsFriend

Defined in: packages/core/src/visitors/attribute-rename-checker.ts:39

Database instance providing access to the language manager.


tdepsVmap​

protected tdepsVmap: Record<string, TransitiveDependencies>

Defined in: packages/core/src/visitors/attribute-rename-checker.ts:33

Per-language TransitiveDependencies visitor map, used to detect rename conflicts.


vmap​

protected vmap: Record<string, PlanVisitor<boolean, ArcDescentArgs>>

Defined in: packages/core/src/visitors/attribute-rename-checker.ts:37

Per-language visitor map used for recursive descent.

Methods​

canRename()​

canRename(plan, renamesInv): boolean

Defined in: packages/core/src/visitors/attribute-rename-checker.ts:48

Returns true if applying args (an inverse rename map) to plan is safe, i.e. no attribute referenced in the subtree would be ambiguously renamed.

Parameters​

ParameterType
planPlanOperator
renamesInvRenameMap

Returns​

boolean


checkAttrs()​

protected checkAttrs(attrs, verticalCtx, args): boolean

Defined in: packages/core/src/visitors/attribute-rename-checker.ts:98

Verifies that none of the projection attrs has its output identifier in args (unless it is a trivial identity alias), and that all computed attr expressions pass the horizontal rename check.

Parameters​

ParameterType
attrsAliased<Calculation | ASTIdentifier>[]
verticalCtxIdSet
argsArcDescentArgs

Returns​

boolean


checkHorizontal()​

protected checkHorizontal(horizontal, verticalCtx, args): boolean

Defined in: packages/core/src/visitors/attribute-rename-checker.ts:59

Checks whether horizontal (an expression computed from the current row) can be safely renamed: its transitive dependencies outside verticalCtx must not overlap with any renamed attribute, and the expression itself must pass the rename check.

Parameters​

ParameterType
horizontalPlanOperator
verticalCtxIdSet
argsArcDescentArgs

Returns​

boolean


checkHorizontalArray()​

protected checkHorizontalArray(horizontal, verticalCtx, args): boolean

Defined in: packages/core/src/visitors/attribute-rename-checker.ts:78

Calls checkHorizontal for every non-identifier element of horizontal, returning false as soon as any element fails the rename check.

Parameters​

ParameterType
horizontalOpOrId[]
verticalCtxIdSet
argsArcDescentArgs

Returns​

boolean


checkVerticalArray()​

protected checkVerticalArray(vertical, args): boolean

Defined in: packages/core/src/visitors/attribute-rename-checker.ts:116

Calls the rename check for every non-identifier element of vertical (expression arguments), returning false as soon as any element fails.

Parameters​

ParameterType
verticalOpOrId[]
argsArcDescentArgs

Returns​

boolean


visitAggregate()​

visitAggregate(operator, args): boolean

Defined in: packages/core/src/visitors/attribute-rename-checker.ts:289

Parameters​

ParameterType
operatorAggregateCall
argsArcDescentArgs

Returns​

boolean

Implementation of​

PlanVisitor.visitAggregate


visitBidirectionalRecursion()​

visitBidirectionalRecursion(operator, args): boolean

Defined in: packages/core/src/visitors/attribute-rename-checker.ts:328

Parameters​

ParameterType
operatorBidirectionalRecursion
argsArcDescentArgs

Returns​

boolean

Implementation of​

PlanVisitor.visitBidirectionalRecursion


visitCalculation()​

visitCalculation(operator, args): boolean

Defined in: packages/core/src/visitors/attribute-rename-checker.ts:172

Parameters​

ParameterType
operatorCalculation
argsArcDescentArgs

Returns​

boolean

Implementation of​

PlanVisitor.visitCalculation


visitCartesianProduct()​

visitCartesianProduct(operator, args): boolean

Defined in: packages/core/src/visitors/attribute-rename-checker.ts:184

Parameters​

ParameterType
operatorCartesianProduct
argsArcDescentArgs

Returns​

boolean

Implementation of​

PlanVisitor.visitCartesianProduct


visitConditional()​

visitConditional(operator, args): boolean

Defined in: packages/core/src/visitors/attribute-rename-checker.ts:175

Parameters​

ParameterType
operatorConditional
argsArcDescentArgs

Returns​

boolean

Implementation of​

PlanVisitor.visitConditional


visitDifference()​

visitDifference(operator, args): boolean

Defined in: packages/core/src/visitors/attribute-rename-checker.ts:270

Parameters​

ParameterType
operatorDifference
argsArcDescentArgs

Returns​

boolean

Implementation of​

PlanVisitor.visitDifference


visitDistinct()​

visitDistinct(operator, args): boolean

Defined in: packages/core/src/visitors/attribute-rename-checker.ts:273

Parameters​

ParameterType
operatorDistinct
argsArcDescentArgs

Returns​

boolean

Implementation of​

PlanVisitor.visitDistinct


visitFnCall()​

visitFnCall(operator, args): boolean

Defined in: packages/core/src/visitors/attribute-rename-checker.ts:163

Parameters​

ParameterType
operatorFnCall
argsArcDescentArgs

Returns​

boolean

Implementation of​

PlanVisitor.visitFnCall


visitGroupBy()​

visitGroupBy(operator, args): boolean

Defined in: packages/core/src/visitors/attribute-rename-checker.ts:238

Parameters​

ParameterType
operatorGroupBy
argsArcDescentArgs

Returns​

boolean

Implementation of​

PlanVisitor.visitGroupBy


visitIndexedRecursion()​

visitIndexedRecursion(operator, args): boolean

Defined in: packages/core/src/visitors/attribute-rename-checker.ts:314

Parameters​

ParameterType
operatorIndexedRecursion
argsArcDescentArgs

Returns​

boolean

Implementation of​

PlanVisitor.visitIndexedRecursion


visitIndexScan()​

visitIndexScan(operator, args): boolean

Defined in: packages/core/src/visitors/attribute-rename-checker.ts:311

Parameters​

ParameterType
operatorIndexScan
argsArcDescentArgs

Returns​

boolean

Implementation of​

PlanVisitor.visitIndexScan


visitIntersection()​

visitIntersection(operator, args): boolean

Defined in: packages/core/src/visitors/attribute-rename-checker.ts:264

Parameters​

ParameterType
operatorIntersection
argsArcDescentArgs

Returns​

boolean

Implementation of​

PlanVisitor.visitIntersection


visitItemFnSource()​

visitItemFnSource(operator, args): boolean

Defined in: packages/core/src/visitors/attribute-rename-checker.ts:296

Parameters​

ParameterType
operatorItemFnSource
argsArcDescentArgs

Returns​

boolean

Implementation of​

PlanVisitor.visitItemFnSource


visitItemSource()​

visitItemSource(operator, args): boolean

Defined in: packages/core/src/visitors/attribute-rename-checker.ts:160

Parameters​

ParameterType
operatorItemSource
argsArcDescentArgs

Returns​

boolean

Implementation of​

PlanVisitor.visitItemSource


visitJoin()​

visitJoin(operator, args): boolean

Defined in: packages/core/src/visitors/attribute-rename-checker.ts:193

Parameters​

ParameterType
operatorJoin
argsArcDescentArgs

Returns​

boolean

Implementation of​

PlanVisitor.visitJoin


visitLimit()​

visitLimit(operator, args): boolean

Defined in: packages/core/src/visitors/attribute-rename-checker.ts:249

Parameters​

ParameterType
operatorLimit
argsArcDescentArgs

Returns​

boolean

Implementation of​

PlanVisitor.visitLimit


visitLiteral()​

visitLiteral(operator, args): boolean

Defined in: packages/core/src/visitors/attribute-rename-checker.ts:169

Parameters​

ParameterType
operatorLiteral
argsArcDescentArgs

Returns​

boolean

Implementation of​

PlanVisitor.visitLiteral


visitMapFromItem()​

visitMapFromItem(operator, args): boolean

Defined in: packages/core/src/visitors/attribute-rename-checker.ts:214

Parameters​

ParameterType
operatorMapFromItem
argsArcDescentArgs

Returns​

boolean

Implementation of​

PlanVisitor.visitMapFromItem


visitMapToItem()​

visitMapToItem(operator, args): boolean

Defined in: packages/core/src/visitors/attribute-rename-checker.ts:211

Parameters​

ParameterType
operatorMapToItem
argsArcDescentArgs

Returns​

boolean

Implementation of​

PlanVisitor.visitMapToItem


visitNullSource()​

visitNullSource(operator, args): boolean

Defined in: packages/core/src/visitors/attribute-rename-checker.ts:286

Parameters​

ParameterType
operatorNullSource
argsArcDescentArgs

Returns​

boolean

Implementation of​

PlanVisitor.visitNullSource


visitOrderBy()​

visitOrderBy(operator, args): boolean

Defined in: packages/core/src/visitors/attribute-rename-checker.ts:229

Parameters​

ParameterType
operatorOrderBy
argsArcDescentArgs

Returns​

boolean

Implementation of​

PlanVisitor.visitOrderBy


visitProjection()​

visitProjection(operator, args): boolean

Defined in: packages/core/src/visitors/attribute-rename-checker.ts:142

Parameters​

ParameterType
operatorProjection
argsArcDescentArgs

Returns​

boolean

Implementation of​

PlanVisitor.visitProjection


visitProjectionConcat()​

visitProjectionConcat(operator, args): boolean

Defined in: packages/core/src/visitors/attribute-rename-checker.ts:202

Parameters​

ParameterType
operatorProjectionConcat
argsArcDescentArgs

Returns​

boolean

Implementation of​

PlanVisitor.visitProjectionConcat


visitProjectionIndex()​

visitProjectionIndex(operator, args): boolean

Defined in: packages/core/src/visitors/attribute-rename-checker.ts:220

Parameters​

ParameterType
operatorProjectionIndex
argsArcDescentArgs

Returns​

boolean

Implementation of​

PlanVisitor.visitProjectionIndex


visitQuantifier()​

visitQuantifier(operator, args): boolean

Defined in: packages/core/src/visitors/attribute-rename-checker.ts:308

Parameters​

ParameterType
operatorQuantifier
argsArcDescentArgs

Returns​

boolean

Implementation of​

PlanVisitor.visitQuantifier


visitRecursion()​

visitRecursion(operator, args): boolean

Defined in: packages/core/src/visitors/attribute-rename-checker.ts:127

Parameters​

ParameterType
operatorRecursion
argsArcDescentArgs

Returns​

boolean

Implementation of​

PlanVisitor.visitRecursion


visitSelection()​

visitSelection(operator, args): boolean

Defined in: packages/core/src/visitors/attribute-rename-checker.ts:148

Parameters​

ParameterType
operatorSelection
argsArcDescentArgs

Returns​

boolean

Implementation of​

PlanVisitor.visitSelection


visitSetOp()​

protected visitSetOp(operator, args): boolean

Defined in: packages/core/src/visitors/attribute-rename-checker.ts:252

Parameters​

ParameterType
operatorSetOperator
argsArcDescentArgs

Returns​

boolean


visitTupleFnSource()​

visitTupleFnSource(operator, args): boolean

Defined in: packages/core/src/visitors/attribute-rename-checker.ts:302

Parameters​

ParameterType
operatorTupleFnSource
argsArcDescentArgs

Returns​

boolean

Implementation of​

PlanVisitor.visitTupleFnSource


visitTupleSource()​

visitTupleSource(operator, args): boolean

Defined in: packages/core/src/visitors/attribute-rename-checker.ts:157

Parameters​

ParameterType
operatorTupleSource
argsArcDescentArgs

Returns​

boolean

Implementation of​

PlanVisitor.visitTupleSource


visitUnion()​

visitUnion(operator, args): boolean

Defined in: packages/core/src/visitors/attribute-rename-checker.ts:261

Parameters​

ParameterType
operatorUnion
argsArcDescentArgs

Returns​

boolean

Implementation of​

PlanVisitor.visitUnion