pub struct ScanPredicate {
pub predicate: Arc<dyn PhysicalExpr>,
pub live_columns: Arc<PlIndexSet<PlSmallStr>>,
pub skip_batch_predicate: Option<Arc<dyn PhysicalExpr>>,
pub column_predicates: PhysicalColumnPredicates,
pub hive_predicate: Option<Arc<dyn PhysicalExpr>>,
pub hive_predicate_is_full_predicate: bool,
}
Expand description
All the expressions and metadata used to filter out rows using predicates.
Fields§
§predicate: Arc<dyn PhysicalExpr>
§live_columns: Arc<PlIndexSet<PlSmallStr>>
Column names that are used in the predicate.
skip_batch_predicate: Option<Arc<dyn PhysicalExpr>>
A predicate expression used to skip record batches based on its statistics.
This expression will be given a batch size along with a min
, max
and null count
for
each live column (set to null
when it is not known) and the expression evaluates to
true
if the whole batch can for sure be skipped. This may be conservative and evaluate to
false
even when the batch could theoretically be skipped.
column_predicates: PhysicalColumnPredicates
Partial predicates for each column for filter when loading columnar formats.
hive_predicate: Option<Arc<dyn PhysicalExpr>>
Predicate only referring to hive columns.
hive_predicate_is_full_predicate: bool
Implementations§
Source§impl ScanPredicate
impl ScanPredicate
pub fn with_constant_columns( &self, constant_columns: impl IntoIterator<Item = (PlSmallStr, Scalar)>, ) -> Self
pub fn to_io( &self, skip_batch_predicate: Option<&Arc<dyn SkipBatchPredicate>>, schema: SchemaRef, ) -> ScanIOPredicate
Trait Implementations§
Source§impl Clone for ScanPredicate
impl Clone for ScanPredicate
Source§fn clone(&self) -> ScanPredicate
fn clone(&self) -> ScanPredicate
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moreAuto Trait Implementations§
impl Freeze for ScanPredicate
impl !RefUnwindSafe for ScanPredicate
impl Send for ScanPredicate
impl Sync for ScanPredicate
impl Unpin for ScanPredicate
impl !UnwindSafe for ScanPredicate
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> 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> ⓘ
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