pub trait LayoutReader:
'static
+ Send
+ Sync {
// Required methods
fn name(&self) -> &Arc<str>;
fn dtype(&self) -> &DType;
fn row_count(&self) -> Precision<u64>;
fn register_splits(
&self,
field_mask: &[FieldMask],
row_offset: u64,
splits: &mut BTreeSet<u64>,
) -> VortexResult<()>;
fn pruning_evaluation(
&self,
row_range: &Range<u64>,
expr: &ExprRef,
) -> VortexResult<Box<dyn PruningEvaluation>>;
fn filter_evaluation(
&self,
row_range: &Range<u64>,
expr: &ExprRef,
) -> VortexResult<Box<dyn MaskEvaluation>>;
fn projection_evaluation(
&self,
row_range: &Range<u64>,
expr: &ExprRef,
) -> VortexResult<Box<dyn ArrayEvaluation>>;
}Expand description
A LayoutReader is used to read a crate::Layout in a way that can cache state across multiple
evaluation operations.
Required Methods§
Sourcefn row_count(&self) -> Precision<u64>
fn row_count(&self) -> Precision<u64>
Returns the number of rows in the layout reader. An inexact count may be larger or smaller than the actual row count.
Sourcefn register_splits(
&self,
field_mask: &[FieldMask],
row_offset: u64,
splits: &mut BTreeSet<u64>,
) -> VortexResult<()>
fn register_splits( &self, field_mask: &[FieldMask], row_offset: u64, splits: &mut BTreeSet<u64>, ) -> VortexResult<()>
Register the splits of this layout reader.
Sourcefn pruning_evaluation(
&self,
row_range: &Range<u64>,
expr: &ExprRef,
) -> VortexResult<Box<dyn PruningEvaluation>>
fn pruning_evaluation( &self, row_range: &Range<u64>, expr: &ExprRef, ) -> VortexResult<Box<dyn PruningEvaluation>>
Performs an approximate evaluation of the expression against the layout reader.
Sourcefn filter_evaluation(
&self,
row_range: &Range<u64>,
expr: &ExprRef,
) -> VortexResult<Box<dyn MaskEvaluation>>
fn filter_evaluation( &self, row_range: &Range<u64>, expr: &ExprRef, ) -> VortexResult<Box<dyn MaskEvaluation>>
Performs an exact evaluation of the expression against the layout reader.
Sourcefn projection_evaluation(
&self,
row_range: &Range<u64>,
expr: &ExprRef,
) -> VortexResult<Box<dyn ArrayEvaluation>>
fn projection_evaluation( &self, row_range: &Range<u64>, expr: &ExprRef, ) -> VortexResult<Box<dyn ArrayEvaluation>>
Evaluates the expression against the layout.