pub struct LogicalOptionalExtend {
pub children: Vec<LogicalOperator>,
pub rel_table_name: String,
pub rel_table_id: u64,
pub rel_var: String,
pub src_node_var: String,
pub dst_node_var: String,
pub direction: EdgeDirection,
pub cardinality: u64,
}Expand description
OPTIONAL MATCH over an already-bound pair of node variables.
Used when both endpoint node variables of the optional pattern are bound by
the required side (e.g. OPTIONAL MATCH (a)-[existing:Connected]-(b) where
a and b are already in scope). Unlike LogicalOptionalMatch, the right
side is not a scan: the pattern is probed per input row against the
relationship table adjacency (forward and/or reverse), emitting the edge
property columns, or NULL-padding them when no edge exists (P53.25).
Fields§
§children: Vec<LogicalOperator>§rel_table_name: StringName of the relationship table to probe.
rel_table_id: u64ID of the relationship table.
rel_var: StringVariable name of the relationship (e.g., “existing”); prefix for the emitted edge property columns.
src_node_var: StringVariable name of the bound source node (e.g., “a”).
dst_node_var: StringVariable name of the bound destination node (e.g., “b”). An empty
string selects fan-out mode (P53.40): the destination is anonymous
(OPTIONAL MATCH (m)-[r:R]-(:T)), so every edge incident on the source
becomes one output row.
direction: EdgeDirectionDirection of the probe (forward, backward, or both).
cardinality: u64Estimated cardinality.
Trait Implementations§
Source§impl Clone for LogicalOptionalExtend
impl Clone for LogicalOptionalExtend
Source§fn clone(&self) -> LogicalOptionalExtend
fn clone(&self) -> LogicalOptionalExtend
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 LogicalOptionalExtend
impl RefUnwindSafe for LogicalOptionalExtend
impl Send for LogicalOptionalExtend
impl Sync for LogicalOptionalExtend
impl Unpin for LogicalOptionalExtend
impl UnsafeUnpin for LogicalOptionalExtend
impl UnwindSafe for LogicalOptionalExtend
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