pub struct ResolvedNodeSpec {
pub var: u32,
pub label_ids: Vec<u32>,
pub label_names: Vec<String>,
pub properties: Vec<(String, IrLiteral)>,
pub computed_properties: Vec<(String, Expr)>,
pub is_reference: bool,
}Expand description
A node to create, fully resolved (no expression-arena coupling).
Built by the relational lowering layer from a graphforge_ir::CreateNodeSpec:
label IDs are paired with their resolved names and property maps are
evaluated to literal key/value pairs, so the execution layer needs no
access to the IR arena or ontology.
Fields§
§var: u32Pattern variable id (VarId.0).
label_ids: Vec<u32>Complete resolved label type-id set, in pattern order.
label_names: Vec<String>Complete resolved label-name set, in pattern order.
properties: Vec<(String, IrLiteral)>Literal property key/value pairs (constant or constant-folded values).
computed_properties: Vec<(String, Expr)>Row-dependent property values that could not be folded to a literal
(e.g. {n: x} from a driving UNWIND/MATCH): each is a DataFusion
Expr over the input columns, evaluated per minted row by the execution
layer (#814). Surfaced through the node’s expressions() so the
optimizer rewrites the columns they reference.
is_reference: booltrue when this var was bound by a preceding MATCH/WITH — the
executor references the matched node (its identity comes from the
input row) rather than minting a new one (#703).
Trait Implementations§
Source§impl Clone for ResolvedNodeSpec
impl Clone for ResolvedNodeSpec
Source§impl Debug for ResolvedNodeSpec
impl Debug for ResolvedNodeSpec
Source§impl PartialEq for ResolvedNodeSpec
impl PartialEq for ResolvedNodeSpec
impl StructuralPartialEq for ResolvedNodeSpec
Auto Trait Implementations§
impl !RefUnwindSafe for ResolvedNodeSpec
impl !UnwindSafe for ResolvedNodeSpec
impl Freeze for ResolvedNodeSpec
impl Send for ResolvedNodeSpec
impl Sync for ResolvedNodeSpec
impl Unpin for ResolvedNodeSpec
impl UnsafeUnpin for ResolvedNodeSpec
Blanket Implementations§
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