Skip to main content

Class: BidirectionalRecursion

Defined in: packages/core/src/plan/operators/tuple/recursion.ts:164

Bidirectional graph traversal that expands from source forward via mappingFwd and from target backward via mappingRev, meeting in the middle.

The output schema merges the schemas of source and target.

Extends​

Constructors​

Constructor​

new BidirectionalRecursion(lang, min, max, mappingFwd, mappingRev, target, source): BidirectionalRecursion

Defined in: packages/core/src/plan/operators/tuple/recursion.ts:165

Parameters​

ParameterTypeDescription
langLowercase<string>-
minnumberMinimum path length (inclusive).
maxnumberMaximum path length (inclusive).
mappingFwdPlanTupleOperatorForward edge-traversal operator (from source toward target).
mappingRevPlanTupleOperatorReverse edge-traversal operator (from target toward source).
targetPlanTupleOperatorTuple operator providing the target rows.
sourcePlanTupleOperatorTuple operator providing the source (start) rows.

Returns​

BidirectionalRecursion

Overrides​

PlanTupleOperator.constructor

Properties​

lang​

lang: Lowercase<string>

Defined in: packages/core/src/plan/visitor.ts:42

PlanOperator.lang

Inherited from​

PlanTupleOperator.lang


mappingFwd​

mappingFwd: PlanTupleOperator

Defined in: packages/core/src/plan/operators/tuple/recursion.ts:172

Forward edge-traversal operator (from source toward target).


mappingRev​

mappingRev: PlanTupleOperator

Defined in: packages/core/src/plan/operators/tuple/recursion.ts:174

Reverse edge-traversal operator (from target toward source).


max​

max: number

Defined in: packages/core/src/plan/operators/tuple/recursion.ts:170

Maximum path length (inclusive).


min​

min: number

Defined in: packages/core/src/plan/operators/tuple/recursion.ts:168

Minimum path length (inclusive).


parent?​

optional parent?: PlanOperator

Defined in: packages/core/src/plan/visitor.ts:44

PlanOperator.parent

Inherited from​

PlanTupleOperator.parent


schema​

schema: ASTIdentifier[]

Defined in: packages/core/src/plan/visitor.ts:38

Ordered list of attribute identifiers produced by this operator.

Inherited from​

PlanTupleOperator.schema


schemaSet​

schemaSet: IdSet

Defined in: packages/core/src/plan/visitor.ts:40

Trie-backed set of the same paths as schema; used for O(k) membership tests.

Inherited from​

PlanTupleOperator.schemaSet


source​

source: PlanTupleOperator

Defined in: packages/core/src/plan/operators/tuple/recursion.ts:178

Tuple operator providing the source (start) rows.


target​

target: PlanTupleOperator

Defined in: packages/core/src/plan/operators/tuple/recursion.ts:176

Tuple operator providing the target rows.

Methods​

accept()​

accept<Ret, Arg>(visitors, arg?): Ret

Defined in: packages/core/src/plan/operators/tuple/recursion.ts:193

PlanOperator.accept

Type Parameters​

Type Parameter
Ret
Arg

Parameters​

ParameterType
visitorsRecord<string, PlanVisitor<Ret, Arg>>
arg?Arg

Returns​

Ret

Overrides​

PlanTupleOperator.accept


addToSchema()​

addToSchema(item): void

Defined in: packages/core/src/plan/visitor.ts:57

will preserve object references

Parameters​

ParameterType
itemIdSet | ASTIdentifier | ASTIdentifier[]

Returns​

void

Inherited from​

PlanTupleOperator.addToSchema


clearSchema()​

clearSchema(): void

Defined in: packages/core/src/plan/visitor.ts:102

will preserve object references

Returns​

void

Inherited from​

PlanTupleOperator.clearSchema


clone()​

clone(): BidirectionalRecursion

Defined in: packages/core/src/plan/operators/tuple/recursion.ts:218

PlanOperator.clone

Returns​

BidirectionalRecursion

Overrides​

PlanTupleOperator.clone


getChildren()​

getChildren(): PlanOperator[]

Defined in: packages/core/src/plan/operators/tuple/recursion.ts:214

PlanOperator.getChildren

Returns​

PlanOperator[]

Overrides​

PlanTupleOperator.getChildren


getDependencies()​

getDependencies(): IdSet

Defined in: packages/core/src/plan/visitor.ts:113

PlanOperator.getDependencies

Returns​

IdSet

Inherited from​

PlanTupleOperator.getDependencies


removeFromSchema()​

removeFromSchema(item): boolean

Defined in: packages/core/src/plan/visitor.ts:80

will preserve object references

Parameters​

ParameterType
itemIdSet | ASTIdentifier | ASTIdentifier[]

Returns​

boolean

Inherited from​

PlanTupleOperator.removeFromSchema


replaceChild()​

replaceChild(current, replacement): void

Defined in: packages/core/src/plan/operators/tuple/recursion.ts:201

PlanOperator.replaceChild

Parameters​

ParameterType
currentPlanOperator
replacementPlanOperator

Returns​

void

Overrides​

PlanTupleOperator.replaceChild