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