pub struct NullGraphStore;Expand description
A no-op GraphStore that returns empty results for all queries.
Used by the RDF planner to satisfy the expression evaluator’s store requirement. SPARQL expression functions (STR, LANG, DATATYPE, etc.) operate on already-materialized values in DataChunk columns and never call store methods.
Trait Implementations§
Source§impl GraphStore for NullGraphStore
impl GraphStore for NullGraphStore
Source§fn get_node(&self, _: NodeId) -> Option<Node>
fn get_node(&self, _: NodeId) -> Option<Node>
Returns a node by ID (latest visible version at current epoch).
Source§fn get_edge(&self, _: EdgeId) -> Option<Edge>
fn get_edge(&self, _: EdgeId) -> Option<Edge>
Returns an edge by ID (latest visible version at current epoch).
Source§fn get_node_versioned(
&self,
_: NodeId,
_: EpochId,
_: TransactionId,
) -> Option<Node>
fn get_node_versioned( &self, _: NodeId, _: EpochId, _: TransactionId, ) -> Option<Node>
Returns a node visible to a specific transaction.
Source§fn get_edge_versioned(
&self,
_: EdgeId,
_: EpochId,
_: TransactionId,
) -> Option<Edge>
fn get_edge_versioned( &self, _: EdgeId, _: EpochId, _: TransactionId, ) -> Option<Edge>
Returns an edge visible to a specific transaction.
Source§fn get_node_at_epoch(&self, _: NodeId, _: EpochId) -> Option<Node>
fn get_node_at_epoch(&self, _: NodeId, _: EpochId) -> Option<Node>
Returns a node using pure epoch-based visibility (no transaction context). Read more
Source§fn get_edge_at_epoch(&self, _: EdgeId, _: EpochId) -> Option<Edge>
fn get_edge_at_epoch(&self, _: EdgeId, _: EpochId) -> Option<Edge>
Returns an edge using pure epoch-based visibility (no transaction context).
Source§fn get_node_property(&self, _: NodeId, _: &PropertyKey) -> Option<Value>
fn get_node_property(&self, _: NodeId, _: &PropertyKey) -> Option<Value>
Gets a single property from a node without loading all properties.
Source§fn get_edge_property(&self, _: EdgeId, _: &PropertyKey) -> Option<Value>
fn get_edge_property(&self, _: EdgeId, _: &PropertyKey) -> Option<Value>
Gets a single property from an edge without loading all properties.
Source§fn get_node_property_batch(
&self,
ids: &[NodeId],
_: &PropertyKey,
) -> Vec<Option<Value>>
fn get_node_property_batch( &self, ids: &[NodeId], _: &PropertyKey, ) -> Vec<Option<Value>>
Gets a property for multiple nodes in a single batch operation.
Source§fn get_nodes_properties_batch(
&self,
ids: &[NodeId],
) -> Vec<FxHashMap<PropertyKey, Value>> ⓘ
fn get_nodes_properties_batch( &self, ids: &[NodeId], ) -> Vec<FxHashMap<PropertyKey, Value>> ⓘ
Gets all properties for multiple nodes in a single batch operation.
Source§fn get_nodes_properties_selective_batch(
&self,
ids: &[NodeId],
_: &[PropertyKey],
) -> Vec<FxHashMap<PropertyKey, Value>> ⓘ
fn get_nodes_properties_selective_batch( &self, ids: &[NodeId], _: &[PropertyKey], ) -> Vec<FxHashMap<PropertyKey, Value>> ⓘ
Gets selected properties for multiple nodes (projection pushdown).
Source§fn get_edges_properties_selective_batch(
&self,
ids: &[EdgeId],
_: &[PropertyKey],
) -> Vec<FxHashMap<PropertyKey, Value>> ⓘ
fn get_edges_properties_selective_batch( &self, ids: &[EdgeId], _: &[PropertyKey], ) -> Vec<FxHashMap<PropertyKey, Value>> ⓘ
Gets selected properties for multiple edges (projection pushdown).
Source§fn neighbors(&self, _: NodeId, _: Direction) -> Vec<NodeId>
fn neighbors(&self, _: NodeId, _: Direction) -> Vec<NodeId>
Returns neighbor node IDs in the specified direction. Read more
Source§fn edges_from(&self, _: NodeId, _: Direction) -> Vec<(NodeId, EdgeId)>
fn edges_from(&self, _: NodeId, _: Direction) -> Vec<(NodeId, EdgeId)>
Returns (target_node, edge_id) pairs for edges from a node.
Source§fn out_degree(&self, _: NodeId) -> usize
fn out_degree(&self, _: NodeId) -> usize
Returns the out-degree of a node (number of outgoing edges).
Source§fn in_degree(&self, _: NodeId) -> usize
fn in_degree(&self, _: NodeId) -> usize
Returns the in-degree of a node (number of incoming edges).
Source§fn has_backward_adjacency(&self) -> bool
fn has_backward_adjacency(&self) -> bool
Whether backward adjacency is available for incoming edge queries.
Source§fn node_count(&self) -> usize
fn node_count(&self) -> usize
Returns the total number of non-deleted nodes.
Source§fn edge_count(&self) -> usize
fn edge_count(&self) -> usize
Returns the total number of non-deleted edges.
Source§fn find_nodes_by_property(&self, _: &str, _: &Value) -> Vec<NodeId>
fn find_nodes_by_property(&self, _: &str, _: &Value) -> Vec<NodeId>
Finds all nodes with a specific property value. Uses indexes when available.
Source§fn find_nodes_by_properties(&self, _: &[(&str, Value)]) -> Vec<NodeId>
fn find_nodes_by_properties(&self, _: &[(&str, Value)]) -> Vec<NodeId>
Finds nodes matching multiple property equality conditions.
Source§fn find_nodes_in_range(
&self,
_: &str,
_: Option<&Value>,
_: Option<&Value>,
_: bool,
_: bool,
) -> Vec<NodeId>
fn find_nodes_in_range( &self, _: &str, _: Option<&Value>, _: Option<&Value>, _: bool, _: bool, ) -> Vec<NodeId>
Finds nodes whose property value falls within a range.
Source§fn node_property_might_match(
&self,
_: &PropertyKey,
_: CompareOp,
_: &Value,
) -> bool
fn node_property_might_match( &self, _: &PropertyKey, _: CompareOp, _: &Value, ) -> bool
Returns
true if a node property predicate might match any nodes.
Uses zone maps for early filtering.Source§fn edge_property_might_match(
&self,
_: &PropertyKey,
_: CompareOp,
_: &Value,
) -> bool
fn edge_property_might_match( &self, _: &PropertyKey, _: CompareOp, _: &Value, ) -> bool
Returns
true if an edge property predicate might match any edges.Source§fn statistics(&self) -> Arc<Statistics>
fn statistics(&self) -> Arc<Statistics>
Returns the current statistics snapshot (cheap Arc clone).
Source§fn estimate_label_cardinality(&self, _: &str) -> f64
fn estimate_label_cardinality(&self, _: &str) -> f64
Estimates cardinality for a label scan.
Source§fn estimate_avg_degree(&self, _: &str, _: bool) -> f64
fn estimate_avg_degree(&self, _: &str, _: bool) -> f64
Estimates average degree for an edge type.
Source§fn current_epoch(&self) -> EpochId
fn current_epoch(&self) -> EpochId
Returns the current MVCC epoch.
Source§fn all_node_ids(&self) -> Vec<NodeId>
fn all_node_ids(&self) -> Vec<NodeId>
Returns all node IDs including uncommitted/PENDING versions. Read more
Source§fn edge_type_versioned(
&self,
id: EdgeId,
epoch: EpochId,
transaction_id: TransactionId,
) -> Option<ArcStr>
fn edge_type_versioned( &self, id: EdgeId, epoch: EpochId, transaction_id: TransactionId, ) -> Option<ArcStr>
Returns the type string of an edge visible to a specific transaction. Read more
Source§fn has_property_index(&self, _property: &str) -> bool
fn has_property_index(&self, _property: &str) -> bool
Returns
true if a property index exists for the given property. Read moreSource§fn all_labels(&self) -> Vec<String>
fn all_labels(&self) -> Vec<String>
Returns all label names in the database.
Source§fn all_edge_types(&self) -> Vec<String>
fn all_edge_types(&self) -> Vec<String>
Returns all edge type names in the database.
Source§fn all_property_keys(&self) -> Vec<String>
fn all_property_keys(&self) -> Vec<String>
Returns all property key names used in the database.
Source§fn is_node_visible_at_epoch(&self, id: NodeId, epoch: EpochId) -> bool
fn is_node_visible_at_epoch(&self, id: NodeId, epoch: EpochId) -> bool
Checks if a node is visible at the given epoch without building the full Node. Read more
Source§fn is_node_visible_versioned(
&self,
id: NodeId,
epoch: EpochId,
transaction_id: TransactionId,
) -> bool
fn is_node_visible_versioned( &self, id: NodeId, epoch: EpochId, transaction_id: TransactionId, ) -> bool
Checks if a node is visible to a specific transaction without building
the full Node.
Source§fn is_edge_visible_at_epoch(&self, id: EdgeId, epoch: EpochId) -> bool
fn is_edge_visible_at_epoch(&self, id: EdgeId, epoch: EpochId) -> bool
Checks if an edge is visible at the given epoch without building the full Edge. Read more
Source§fn is_edge_visible_versioned(
&self,
id: EdgeId,
epoch: EpochId,
transaction_id: TransactionId,
) -> bool
fn is_edge_visible_versioned( &self, id: EdgeId, epoch: EpochId, transaction_id: TransactionId, ) -> bool
Checks if an edge is visible to a specific transaction without building
the full Edge.
Source§fn filter_visible_node_ids(&self, ids: &[NodeId], epoch: EpochId) -> Vec<NodeId>
fn filter_visible_node_ids(&self, ids: &[NodeId], epoch: EpochId) -> Vec<NodeId>
Filters node IDs to only those visible at the given epoch (batch). Read more
Source§fn filter_visible_node_ids_versioned(
&self,
ids: &[NodeId],
epoch: EpochId,
transaction_id: TransactionId,
) -> Vec<NodeId>
fn filter_visible_node_ids_versioned( &self, ids: &[NodeId], epoch: EpochId, transaction_id: TransactionId, ) -> Vec<NodeId>
Filters node IDs to only those visible to a transaction (batch).
Auto Trait Implementations§
impl Freeze for NullGraphStore
impl RefUnwindSafe for NullGraphStore
impl Send for NullGraphStore
impl Sync for NullGraphStore
impl Unpin for NullGraphStore
impl UnsafeUnpin for NullGraphStore
impl UnwindSafe for NullGraphStore
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
Mutably borrows from an owned value. Read more
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>
Converts
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>
Converts
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