pub struct RangeScanOperator { /* private fields */ }Expand description
Pull-based operator that emits node ids whose property value falls within a range. See the module docs for details.
Implementations§
Source§impl RangeScanOperator
impl RangeScanOperator
Sourcepub fn new(
store: Arc<dyn GraphStoreSearch>,
property: impl Into<String>,
min: Option<Value>,
max: Option<Value>,
min_inclusive: bool,
max_inclusive: bool,
chunk_capacity: usize,
) -> Self
pub fn new( store: Arc<dyn GraphStoreSearch>, property: impl Into<String>, min: Option<Value>, max: Option<Value>, min_inclusive: bool, max_inclusive: bool, chunk_capacity: usize, ) -> Self
Creates a range scan over store for the given property and bounds.
chunk_capacity is the number of rows per emitted DataChunk;
the standard default in this codebase is 2048.
Sourcepub fn with_limit(self, limit: usize) -> Self
pub fn with_limit(self, limit: usize) -> Self
Sets a row-count cap that bounds the materialization step.
When set, the underlying iterator is consumed via take(limit),
so blocks past the cap are never decoded. Wired by the planner
in Phase 4e when a downstream LIMIT k is known statically.
Sourcepub fn limit(&self) -> Option<usize>
pub fn limit(&self) -> Option<usize>
Returns the row-count cap set by with_limit,
or None if no cap is in effect. Used by planner tests to verify
LIMIT pushdown wired the cap.
Sourcepub fn with_label_filter(self, label: impl Into<String>) -> Self
pub fn with_label_filter(self, label: impl Into<String>) -> Self
Restricts the result to nodes carrying label.
Applied during materialization by intersecting the iterator’s
output with store.nodes_by_label(label). Mirrors the eager
find_nodes_in_range + nodes_by_label retain pattern that the
planner used pre-Phase-4d.
Sourcepub fn with_transaction_context(
self,
epoch: EpochId,
transaction_id: TransactionId,
) -> Self
pub fn with_transaction_context( self, epoch: EpochId, transaction_id: TransactionId, ) -> Self
Filters results by MVCC visibility at the given epoch and tx.
Applied during materialization via store.get_node_versioned.
Required for any planner-emitted scan: the existing plan_range_filter
always applies this filter, and the operator preserves that.
Trait Implementations§
Source§impl Operator for RangeScanOperator
impl Operator for RangeScanOperator
Source§fn next(&mut self) -> OperatorResult
fn next(&mut self) -> OperatorResult
None when exhausted. Read moreAuto Trait Implementations§
impl Freeze for RangeScanOperator
impl !RefUnwindSafe for RangeScanOperator
impl Send for RangeScanOperator
impl Sync for RangeScanOperator
impl Unpin for RangeScanOperator
impl UnsafeUnpin for RangeScanOperator
impl !UnwindSafe for RangeScanOperator
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> 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