Skip to main content

Class: EqualityChecker

Defined in: packages/core/src/visitors/equality-checker.ts:23

Checks for equality between two plan operator trees.

Extended by​

Implements​

Constructors​

Constructor​

new EqualityChecker(vmap): EqualityChecker

Defined in: packages/core/src/visitors/equality-checker.ts:24

Parameters​

ParameterTypeDescription
vmapRecord<string, PlanVisitor<boolean, EcDescentArgs>>Per-language visitor map used for recursive descent.

Returns​

EqualityChecker

Properties​

vmap​

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

Defined in: packages/core/src/visitors/equality-checker.ts:26

Per-language visitor map used for recursive descent.

Methods​

areEqual()​

areEqual(op1, op2, options?): boolean

Defined in: packages/core/src/visitors/equality-checker.ts:109

if options.renameMap is provided, it will be used to rename the items in the op2 before comparing.

Parameters​

ParameterType
op1OpOrId
op2OpOrId
options?{ ignoreLang?: boolean; renameMap?: RenameMap; }
options.ignoreLang?boolean
options.renameMap?RenameMap

Returns​

boolean


maybeRename()​

protected maybeRename(id, renameMap?): ASTIdentifier

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

Returns id renamed according to renameMap, or id unchanged when the map is absent or does not contain an entry for id.

Parameters​

ParameterType
idASTIdentifier
renameMap?RenameMap

Returns​

ASTIdentifier


processArray()​

protected processArray(arrA, arrB, args): boolean

Defined in: packages/core/src/visitors/equality-checker.ts:93

Returns true only when arrA and arrB have the same length and every element pair compares equal via processItem.

Parameters​

ParameterType
arrAOpOrId[]
arrBOpOrId[]
argsEcDescentArgs

Returns​

boolean


processItem()​

protected processItem(operator, __namedParameters): boolean

Defined in: packages/core/src/visitors/equality-checker.ts:43

Compares operator against other, optionally applying renameMap to identifiers from other. Handles the special case where one side is a bare identifier and the other is an identity FnCall(ret1, [id]).

Parameters​

ParameterType
operatorOpOrId
__namedParameters{ ignoreLang: boolean; other: OpOrId; renameMap?: RenameMap; }
__namedParameters.ignoreLangboolean
__namedParameters.otherOpOrId
__namedParameters.renameMap?RenameMap

Returns​

boolean


visitAggregate()​

visitAggregate(a, args): boolean

Defined in: packages/core/src/visitors/equality-checker.ts:339

Parameters​

ParameterType
aAggregateCall
argsEcDescentArgs

Returns​

boolean

Implementation of​

PlanVisitor.visitAggregate


visitBidirectionalRecursion()​

visitBidirectionalRecursion(a, args): boolean

Defined in: packages/core/src/visitors/equality-checker.ts:383

Parameters​

ParameterType
aBidirectionalRecursion
argsEcDescentArgs

Returns​

boolean

Implementation of​

PlanVisitor.visitBidirectionalRecursion


visitCalculation()​

visitCalculation(a, args): boolean

Defined in: packages/core/src/visitors/equality-checker.ts:182

Parameters​

ParameterType
aCalculation
argsEcDescentArgs

Returns​

boolean

Implementation of​

PlanVisitor.visitCalculation


visitCartesianProduct()​

visitCartesianProduct(a, args): boolean

Defined in: packages/core/src/visitors/equality-checker.ts:207

Parameters​

ParameterType
aCartesianProduct
argsEcDescentArgs

Returns​

boolean

Implementation of​

PlanVisitor.visitCartesianProduct


visitConditional()​

visitConditional(a, args): boolean

Defined in: packages/core/src/visitors/equality-checker.ts:192

Parameters​

ParameterType
aConditional
argsEcDescentArgs

Returns​

boolean

Implementation of​

PlanVisitor.visitConditional


visitDifference()​

visitDifference(a, args): boolean

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

Parameters​

ParameterType
aDifference
argsEcDescentArgs

Returns​

boolean

Implementation of​

PlanVisitor.visitDifference


visitDistinct()​

visitDistinct(a, args): boolean

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

Parameters​

ParameterType
aDistinct
argsEcDescentArgs

Returns​

boolean

Implementation of​

PlanVisitor.visitDistinct


visitFnCall()​

visitFnCall(a, args): boolean

Defined in: packages/core/src/visitors/equality-checker.ts:164

Parameters​

ParameterType
aFnCall
argsEcDescentArgs

Returns​

boolean

Implementation of​

PlanVisitor.visitFnCall


visitGroupBy()​

visitGroupBy(a, args): boolean

Defined in: packages/core/src/visitors/equality-checker.ts:275

Parameters​

ParameterType
aGroupBy
argsEcDescentArgs

Returns​

boolean

Implementation of​

PlanVisitor.visitGroupBy


visitIndexedRecursion()​

visitIndexedRecursion(a, args): boolean

Defined in: packages/core/src/visitors/equality-checker.ts:370

Parameters​

ParameterType
aIndexedRecursion
argsEcDescentArgs

Returns​

boolean

Implementation of​

PlanVisitor.visitIndexedRecursion


visitIndexScan()​

visitIndexScan(a, args): boolean

Defined in: packages/core/src/visitors/equality-checker.ts:363

Parameters​

ParameterType
aIndexScan
argsEcDescentArgs

Returns​

boolean

Implementation of​

PlanVisitor.visitIndexScan


visitIntersection()​

visitIntersection(a, args): boolean

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

Parameters​

ParameterType
aIntersection
argsEcDescentArgs

Returns​

boolean

Implementation of​

PlanVisitor.visitIntersection


visitItemFnSource()​

visitItemFnSource(a, args): boolean

Defined in: packages/core/src/visitors/equality-checker.ts:348

Parameters​

ParameterType
aItemFnSource
argsEcDescentArgs

Returns​

boolean

Implementation of​

PlanVisitor.visitItemFnSource


visitItemSource()​

visitItemSource(a, args): boolean

Defined in: packages/core/src/visitors/equality-checker.ts:153

Parameters​

ParameterType
aItemSource
argsEcDescentArgs

Returns​

boolean

Implementation of​

PlanVisitor.visitItemSource


visitJoin()​

visitJoin(a, args): boolean

Defined in: packages/core/src/visitors/equality-checker.ts:217

Parameters​

ParameterType
aJoin
argsEcDescentArgs

Returns​

boolean

Implementation of​

PlanVisitor.visitJoin


visitLimit()​

visitLimit(a, args): boolean

Defined in: packages/core/src/visitors/equality-checker.ts:290

Parameters​

ParameterType
aLimit
argsEcDescentArgs

Returns​

boolean

Implementation of​

PlanVisitor.visitLimit


visitLiteral()​

visitLiteral(a, args): boolean

Defined in: packages/core/src/visitors/equality-checker.ts:178

Parameters​

ParameterType
aLiteral
argsEcDescentArgs

Returns​

boolean

Implementation of​

PlanVisitor.visitLiteral


visitMapFromItem()​

visitMapFromItem(a, args): boolean

Defined in: packages/core/src/visitors/equality-checker.ts:246

Parameters​

ParameterType
aMapFromItem
argsEcDescentArgs

Returns​

boolean

Implementation of​

PlanVisitor.visitMapFromItem


visitMapToItem()​

visitMapToItem(a, args): boolean

Defined in: packages/core/src/visitors/equality-checker.ts:239

Parameters​

ParameterType
aMapToItem
argsEcDescentArgs

Returns​

boolean

Implementation of​

PlanVisitor.visitMapToItem


visitNullSource()​

visitNullSource(a, args): boolean

Defined in: packages/core/src/visitors/equality-checker.ts:336

Parameters​

ParameterType
aNullSource
argsEcDescentArgs

Returns​

boolean

Implementation of​

PlanVisitor.visitNullSource


visitOrderBy()​

visitOrderBy(a, args): boolean

Defined in: packages/core/src/visitors/equality-checker.ts:260

Parameters​

ParameterType
aOrderBy
argsEcDescentArgs

Returns​

boolean

Implementation of​

PlanVisitor.visitOrderBy


visitProjection()​

visitProjection(a, args): boolean

Defined in: packages/core/src/visitors/equality-checker.ts:129

Parameters​

ParameterType
aProjection
argsEcDescentArgs

Returns​

boolean

Implementation of​

PlanVisitor.visitProjection


visitProjectionConcat()​

visitProjectionConcat(a, args): boolean

Defined in: packages/core/src/visitors/equality-checker.ts:226

Parameters​

ParameterType
aProjectionConcat
argsEcDescentArgs

Returns​

boolean

Implementation of​

PlanVisitor.visitProjectionConcat


visitProjectionIndex()​

visitProjectionIndex(a, args): boolean

Defined in: packages/core/src/visitors/equality-checker.ts:253

Parameters​

ParameterType
aProjectionIndex
argsEcDescentArgs

Returns​

boolean

Implementation of​

PlanVisitor.visitProjectionIndex


visitQuantifier()​

visitQuantifier(a, args): boolean

Defined in: packages/core/src/visitors/equality-checker.ts:356

Parameters​

ParameterType
aQuantifier
argsEcDescentArgs

Returns​

boolean

Implementation of​

PlanVisitor.visitQuantifier


visitRecursion()​

visitRecursion(a, args): boolean

Defined in: packages/core/src/visitors/equality-checker.ts:119

Parameters​

ParameterType
aRecursion
argsEcDescentArgs

Returns​

boolean

Implementation of​

PlanVisitor.visitRecursion


visitSelection()​

visitSelection(a, args): boolean

Defined in: packages/core/src/visitors/equality-checker.ts:143

Parameters​

ParameterType
aSelection
argsEcDescentArgs

Returns​

boolean

Implementation of​

PlanVisitor.visitSelection


visitSetOp()​

protected visitSetOp(a, args): boolean

Defined in: packages/core/src/visitors/equality-checker.ts:298

Parameters​

ParameterType
aSetOperator
argsEcDescentArgs

Returns​

boolean


visitTupleFnSource()​

visitTupleFnSource(a, args): boolean

Defined in: packages/core/src/visitors/equality-checker.ts:352

Parameters​

ParameterType
aTupleFnSource
argsEcDescentArgs

Returns​

boolean

Implementation of​

PlanVisitor.visitTupleFnSource


visitTupleSource()​

visitTupleSource(a, args): boolean

Defined in: packages/core/src/visitors/equality-checker.ts:150

Parameters​

ParameterType
aTupleSource
argsEcDescentArgs

Returns​

boolean

Implementation of​

PlanVisitor.visitTupleSource


visitUnion()​

visitUnion(a, args): boolean

Defined in: packages/core/src/visitors/equality-checker.ts:305

Parameters​

ParameterType
aUnion
argsEcDescentArgs

Returns​

boolean

Implementation of​

PlanVisitor.visitUnion