Class: EqualityChecker
Defined in: packages/core/src/visitors/equality-checker.ts:23
Checks for equality between two plan operator trees.
Extended by
Implements
PlanVisitor<boolean,EcDescentArgs>
Constructors
Constructor
new EqualityChecker(
vmap):EqualityChecker
Defined in: packages/core/src/visitors/equality-checker.ts:24
Parameters
| Parameter | Type | Description |
|---|---|---|
vmap | Record<string, PlanVisitor<boolean, EcDescentArgs>> | Per-language visitor map used for recursive descent. |
Returns
EqualityChecker
Properties
vmap
protectedvmap: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
| Parameter | Type |
|---|---|
op1 | OpOrId |
op2 | OpOrId |
options? | { ignoreLang?: boolean; renameMap?: RenameMap; } |
options.ignoreLang? | boolean |
options.renameMap? | RenameMap |
Returns
boolean
maybeRename()
protectedmaybeRename(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
| Parameter | Type |
|---|---|
id | ASTIdentifier |
renameMap? | RenameMap |
Returns
processArray()
protectedprocessArray(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
| Parameter | Type |
|---|---|
arrA | OpOrId[] |
arrB | OpOrId[] |
args | EcDescentArgs |
Returns
boolean
processItem()
protectedprocessItem(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
| Parameter | Type |
|---|---|
operator | OpOrId |
__namedParameters | { ignoreLang: boolean; other: OpOrId; renameMap?: RenameMap; } |
__namedParameters.ignoreLang | boolean |
__namedParameters.other | OpOrId |
__namedParameters.renameMap? | RenameMap |
Returns
boolean
visitAggregate()
visitAggregate(
a,args):boolean
Defined in: packages/core/src/visitors/equality-checker.ts:339
Parameters
| Parameter | Type |
|---|---|
a | AggregateCall |
args | EcDescentArgs |
Returns
boolean
Implementation of
visitBidirectionalRecursion()
visitBidirectionalRecursion(
a,args):boolean
Defined in: packages/core/src/visitors/equality-checker.ts:383
Parameters
| Parameter | Type |
|---|---|
a | BidirectionalRecursion |
args | EcDescentArgs |
Returns
boolean
Implementation of
PlanVisitor.visitBidirectionalRecursion
visitCalculation()
visitCalculation(
a,args):boolean
Defined in: packages/core/src/visitors/equality-checker.ts:182
Parameters
| Parameter | Type |
|---|---|
a | Calculation |
args | EcDescentArgs |
Returns
boolean
Implementation of
visitCartesianProduct()
visitCartesianProduct(
a,args):boolean
Defined in: packages/core/src/visitors/equality-checker.ts:207
Parameters
| Parameter | Type |
|---|---|
a | CartesianProduct |
args | EcDescentArgs |
Returns
boolean
Implementation of
PlanVisitor.visitCartesianProduct
visitConditional()
visitConditional(
a,args):boolean
Defined in: packages/core/src/visitors/equality-checker.ts:192
Parameters
| Parameter | Type |
|---|---|
a | Conditional |
args | EcDescentArgs |
Returns
boolean
Implementation of
visitDifference()
visitDifference(
a,args):boolean
Defined in: packages/core/src/visitors/equality-checker.ts:311
Parameters
| Parameter | Type |
|---|---|
a | Difference |
args | EcDescentArgs |
Returns
boolean
Implementation of
visitDistinct()
visitDistinct(
a,args):boolean
Defined in: packages/core/src/visitors/equality-checker.ts:314
Parameters
| Parameter | Type |
|---|---|
a | Distinct |
args | EcDescentArgs |
Returns
boolean
Implementation of
visitFnCall()
visitFnCall(
a,args):boolean
Defined in: packages/core/src/visitors/equality-checker.ts:164
Parameters
| Parameter | Type |
|---|---|
a | FnCall |
args | EcDescentArgs |
Returns
boolean
Implementation of
visitGroupBy()
visitGroupBy(
a,args):boolean
Defined in: packages/core/src/visitors/equality-checker.ts:275
Parameters
| Parameter | Type |
|---|---|
a | GroupBy |
args | EcDescentArgs |
Returns
boolean
Implementation of
visitIndexedRecursion()
visitIndexedRecursion(
a,args):boolean
Defined in: packages/core/src/visitors/equality-checker.ts:370
Parameters
| Parameter | Type |
|---|---|
a | IndexedRecursion |
args | EcDescentArgs |
Returns
boolean
Implementation of
PlanVisitor.visitIndexedRecursion
visitIndexScan()
visitIndexScan(
a,args):boolean
Defined in: packages/core/src/visitors/equality-checker.ts:363
Parameters
| Parameter | Type |
|---|---|
a | IndexScan |
args | EcDescentArgs |
Returns
boolean
Implementation of
visitIntersection()
visitIntersection(
a,args):boolean
Defined in: packages/core/src/visitors/equality-checker.ts:308
Parameters
| Parameter | Type |
|---|---|
a | Intersection |
args | EcDescentArgs |
Returns
boolean
Implementation of
visitItemFnSource()
visitItemFnSource(
a,args):boolean
Defined in: packages/core/src/visitors/equality-checker.ts:348
Parameters
| Parameter | Type |
|---|---|
a | ItemFnSource |
args | EcDescentArgs |
Returns
boolean
Implementation of
visitItemSource()
visitItemSource(
a,args):boolean
Defined in: packages/core/src/visitors/equality-checker.ts:153
Parameters
| Parameter | Type |
|---|---|
a | ItemSource |
args | EcDescentArgs |
Returns
boolean
Implementation of
visitJoin()
visitJoin(
a,args):boolean
Defined in: packages/core/src/visitors/equality-checker.ts:217
Parameters
| Parameter | Type |
|---|---|
a | Join |
args | EcDescentArgs |
Returns
boolean
Implementation of
visitLimit()
visitLimit(
a,args):boolean
Defined in: packages/core/src/visitors/equality-checker.ts:290
Parameters
| Parameter | Type |
|---|---|
a | Limit |
args | EcDescentArgs |
Returns
boolean
Implementation of
visitLiteral()
visitLiteral(
a,args):boolean
Defined in: packages/core/src/visitors/equality-checker.ts:178
Parameters
| Parameter | Type |
|---|---|
a | Literal |
args | EcDescentArgs |
Returns
boolean
Implementation of
visitMapFromItem()
visitMapFromItem(
a,args):boolean
Defined in: packages/core/src/visitors/equality-checker.ts:246
Parameters
| Parameter | Type |
|---|---|
a | MapFromItem |
args | EcDescentArgs |
Returns
boolean
Implementation of
visitMapToItem()
visitMapToItem(
a,args):boolean
Defined in: packages/core/src/visitors/equality-checker.ts:239
Parameters
| Parameter | Type |
|---|---|
a | MapToItem |
args | EcDescentArgs |
Returns
boolean
Implementation of
visitNullSource()
visitNullSource(
a,args):boolean
Defined in: packages/core/src/visitors/equality-checker.ts:336
Parameters
| Parameter | Type |
|---|---|
a | NullSource |
args | EcDescentArgs |
Returns
boolean
Implementation of
visitOrderBy()
visitOrderBy(
a,args):boolean
Defined in: packages/core/src/visitors/equality-checker.ts:260
Parameters
| Parameter | Type |
|---|---|
a | OrderBy |
args | EcDescentArgs |
Returns
boolean
Implementation of
visitProjection()
visitProjection(
a,args):boolean
Defined in: packages/core/src/visitors/equality-checker.ts:129
Parameters
| Parameter | Type |
|---|---|
a | Projection |
args | EcDescentArgs |
Returns
boolean
Implementation of
visitProjectionConcat()
visitProjectionConcat(
a,args):boolean
Defined in: packages/core/src/visitors/equality-checker.ts:226
Parameters
| Parameter | Type |
|---|---|
a | ProjectionConcat |
args | EcDescentArgs |
Returns
boolean
Implementation of
PlanVisitor.visitProjectionConcat
visitProjectionIndex()
visitProjectionIndex(
a,args):boolean
Defined in: packages/core/src/visitors/equality-checker.ts:253
Parameters
| Parameter | Type |
|---|---|
a | ProjectionIndex |
args | EcDescentArgs |
Returns
boolean
Implementation of
PlanVisitor.visitProjectionIndex
visitQuantifier()
visitQuantifier(
a,args):boolean
Defined in: packages/core/src/visitors/equality-checker.ts:356
Parameters
| Parameter | Type |
|---|---|
a | Quantifier |
args | EcDescentArgs |
Returns
boolean
Implementation of
visitRecursion()
visitRecursion(
a,args):boolean
Defined in: packages/core/src/visitors/equality-checker.ts:119
Parameters
| Parameter | Type |
|---|---|
a | Recursion |
args | EcDescentArgs |
Returns
boolean
Implementation of
visitSelection()
visitSelection(
a,args):boolean
Defined in: packages/core/src/visitors/equality-checker.ts:143
Parameters
| Parameter | Type |
|---|---|
a | Selection |
args | EcDescentArgs |
Returns
boolean
Implementation of
visitSetOp()
protectedvisitSetOp(a,args):boolean
Defined in: packages/core/src/visitors/equality-checker.ts:298
Parameters
| Parameter | Type |
|---|---|
a | SetOperator |
args | EcDescentArgs |
Returns
boolean
visitTupleFnSource()
visitTupleFnSource(
a,args):boolean
Defined in: packages/core/src/visitors/equality-checker.ts:352
Parameters
| Parameter | Type |
|---|---|
a | TupleFnSource |
args | EcDescentArgs |
Returns
boolean
Implementation of
PlanVisitor.visitTupleFnSource
visitTupleSource()
visitTupleSource(
a,args):boolean
Defined in: packages/core/src/visitors/equality-checker.ts:150
Parameters
| Parameter | Type |
|---|---|
a | TupleSource |
args | EcDescentArgs |
Returns
boolean
Implementation of
visitUnion()
visitUnion(
a,args):boolean
Defined in: packages/core/src/visitors/equality-checker.ts:305
Parameters
| Parameter | Type |
|---|---|
a | Union |
args | EcDescentArgs |
Returns
boolean