pub(crate) struct DatafusionArrowPredicate {
physical_expr: Arc<dyn PhysicalExpr>,
projection_mask: ProjectionMask,
rows_pruned: Count,
rows_matched: Count,
time: Time,
schema_mapper: Arc<dyn SchemaMapper>,
}Expand description
A “compiled” predicate passed to ParquetRecordBatchStream to perform
row-level filtering during parquet decoding.
See the module level documentation for more information.
Implements the ArrowPredicate trait used by the parquet decoder
An expression can be evaluated as a DatafusionArrowPredicate if it:
- Does not reference any projected columns
- Does not reference columns with non-primitive types (e.g. structs / lists)
Fields§
§physical_expr: Arc<dyn PhysicalExpr>the filter expression
projection_mask: ProjectionMaskPath to the columns in the parquet schema required to evaluate the expression
rows_pruned: Counthow many rows were filtered out by this predicate
rows_matched: Counthow many rows passed this predicate
time: Timehow long was spent evaluating this predicate
schema_mapper: Arc<dyn SchemaMapper>used to perform type coercion while filtering rows
Implementations§
Trait Implementations§
Source§impl ArrowPredicate for DatafusionArrowPredicate
impl ArrowPredicate for DatafusionArrowPredicate
Source§fn projection(&self) -> &ProjectionMask
fn projection(&self) -> &ProjectionMask
Returns the [
ProjectionMask] that describes the columns required
to evaluate this predicate. Read moreAuto Trait Implementations§
impl Freeze for DatafusionArrowPredicate
impl !RefUnwindSafe for DatafusionArrowPredicate
impl Send for DatafusionArrowPredicate
impl Sync for DatafusionArrowPredicate
impl Unpin for DatafusionArrowPredicate
impl !UnwindSafe for DatafusionArrowPredicate
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
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
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