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