pub struct PredicateRewriter {
unhandled_hook: Arc<dyn UnhandledPredicateHook>,
}Expand description
Rewrite a predicate expression in terms of statistics (min/max/null_counts)
for use as a PruningPredicate.
Fields§
§unhandled_hook: Arc<dyn UnhandledPredicateHook>Implementations§
Source§impl PredicateRewriter
impl PredicateRewriter
Sourcepub fn new() -> PredicateRewriter
pub fn new() -> PredicateRewriter
Create a new PredicateRewriter
Sourcepub fn with_unhandled_hook(
self,
unhandled_hook: Arc<dyn UnhandledPredicateHook>,
) -> PredicateRewriter
pub fn with_unhandled_hook( self, unhandled_hook: Arc<dyn UnhandledPredicateHook>, ) -> PredicateRewriter
Set the unhandled hook to be used when a predicate can not be rewritten
Sourcepub fn rewrite_predicate_to_statistics_predicate(
&self,
expr: &Arc<dyn PhysicalExpr>,
schema: &Schema,
) -> Arc<dyn PhysicalExpr>
pub fn rewrite_predicate_to_statistics_predicate( &self, expr: &Arc<dyn PhysicalExpr>, schema: &Schema, ) -> Arc<dyn PhysicalExpr>
Translate logical filter expression into pruning predicate expression that will evaluate to FALSE if it can be determined no rows between the min/max values could pass the predicates.
Any predicates that can not be translated will be passed to unhandled_hook.
Returns the pruning predicate as an PhysicalExpr
Notice: Does not handle phys_expr::InListExpr greater than 20, which will fall back to calling unhandled_hook
Trait Implementations§
Source§impl Default for PredicateRewriter
impl Default for PredicateRewriter
Source§fn default() -> PredicateRewriter
fn default() -> PredicateRewriter
Returns the “default value” for a type. Read more
Auto Trait Implementations§
impl Freeze for PredicateRewriter
impl !RefUnwindSafe for PredicateRewriter
impl !Send for PredicateRewriter
impl !Sync for PredicateRewriter
impl Unpin for PredicateRewriter
impl !UnwindSafe for PredicateRewriter
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