pub struct LogicalRecursiveExtend {Show 13 fields
pub source_var: String,
pub source_table_id: u64,
pub edge_var: Option<String>,
pub target_var: String,
pub rel_table_ids: Vec<u64>,
pub rel_labels: Vec<String>,
pub lower_bound: u64,
pub upper_bound: u64,
pub direction: ExtendDirection,
pub semantic: PathSemantic,
pub weight_property: Option<String>,
pub cost_output_name: Option<String>,
pub cardinality: u64,
}Expand description
Variable-length path (recursive extend) operator.
Corresponds to MATCH (a)-[e*1..3]->(b) — traverses the graph
up to upper_bound hops from source nodes and produces results
for each path whose length is between lower_bound and upper_bound.
Supports both unweighted BFS and weighted shortest path (Dijkstra)
when weight_property is specified.
This is a leaf operator that executes BFS/Dijkstra traversal during query execution.
Fields§
§source_var: StringSource node variable name.
source_table_id: u64Source node table ID.
edge_var: Option<String>Edge variable name (optional).
target_var: StringDestination node variable name.
rel_table_ids: Vec<u64>Relationship table ID(s) to traverse.
rel_labels: Vec<String>Relationship label(s).
lower_bound: u64Minimum path length.
upper_bound: u64Maximum path length.
direction: ExtendDirectionTraversal direction.
semantic: PathSemanticPath semantic (WALK / TRAIL / ACYCLIC).
weight_property: Option<String>Optional edge weight property name for weighted shortest path.
When Some(prop_name), traversal uses Dijkstra’s algorithm instead of BFS,
and results are sorted by cumulative path cost.
cost_output_name: Option<String>Optional name for the cost output column (e.g., “cost” or “totalWeight”).
Only used when weight_property is set.
cardinality: u64Estimated cardinality.
Trait Implementations§
Source§impl Clone for LogicalRecursiveExtend
impl Clone for LogicalRecursiveExtend
Source§fn clone(&self) -> LogicalRecursiveExtend
fn clone(&self) -> LogicalRecursiveExtend
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreAuto Trait Implementations§
impl Freeze for LogicalRecursiveExtend
impl RefUnwindSafe for LogicalRecursiveExtend
impl Send for LogicalRecursiveExtend
impl Sync for LogicalRecursiveExtend
impl Unpin for LogicalRecursiveExtend
impl UnsafeUnpin for LogicalRecursiveExtend
impl UnwindSafe for LogicalRecursiveExtend
Blanket Implementations§
impl<T> Allocation for T
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more