#[non_exhaustive]pub enum PropertySource {
Column(usize),
Constant(Value),
PropertyAccess {
column: usize,
property: String,
},
Expression {
expr: Box<FilterExpression>,
variable_columns: HashMap<String, usize>,
},
}Expand description
Source for a property value.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Column(usize)
Get value from an input column.
Constant(Value)
Use a constant value.
PropertyAccess
Access a named property from a map/node/edge in an input column.
Fields
Expression
A runtime expression that may reference a variable not present in the
caller’s input chunk. Used by MERGE ... ON CREATE/MATCH SET so that
expressions like coalesce(c.description, 'fallback') can reference
the MERGE variable, which only exists after the merge resolves.
Generic operators do not know how to evaluate this variant: the default
resolve implementation returns Value::Null. Operators that produce
an augmented row (e.g., MERGE) must intercept this variant before
calling resolve.
Implementations§
Source§impl PropertySource
impl PropertySource
Sourcepub fn resolve(
&self,
chunk: &DataChunk,
row: usize,
store: &dyn GraphStore,
) -> Value
pub fn resolve( &self, chunk: &DataChunk, row: usize, store: &dyn GraphStore, ) -> Value
Resolves a property value from a data chunk row.
Returns Value::Null for PropertySource::Expression: those sources
require an operator-specific augmented row and must be intercepted by
the producing operator (currently the MERGE node and edge operators).
Trait Implementations§
Source§impl Clone for PropertySource
impl Clone for PropertySource
Source§fn clone(&self) -> PropertySource
fn clone(&self) -> PropertySource
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreAuto Trait Implementations§
impl Freeze for PropertySource
impl RefUnwindSafe for PropertySource
impl Send for PropertySource
impl Sync for PropertySource
impl Unpin for PropertySource
impl UnsafeUnpin for PropertySource
impl UnwindSafe for PropertySource
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
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