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