pub struct FilterDescription { /* private fields */ }Expand description
Describes how filters should be pushed down to children.
This structure contains filter descriptions for each child node, specifying:
- Which parent filters can be pushed down to each child
- Which self-generated filters should be pushed down to each child
The filter routing is determined by column analysis - filters can only be pushed to children whose schemas contain all the referenced columns.
Implementations§
Source§impl FilterDescription
impl FilterDescription
Sourcepub fn with_child(self, child: ChildFilterDescription) -> Self
pub fn with_child(self, child: ChildFilterDescription) -> Self
Add a child filter description
Sourcepub fn from_children(
parent_filters: Vec<Arc<dyn PhysicalExpr>>,
children: &[&Arc<dyn ExecutionPlan>],
) -> Result<Self>
pub fn from_children( parent_filters: Vec<Arc<dyn PhysicalExpr>>, children: &[&Arc<dyn ExecutionPlan>], ) -> Result<Self>
Build a filter description by analyzing which parent filters can be pushed to each child. This method automatically determines filter routing based on column analysis:
- If all columns referenced by a filter exist in a child’s schema, it can be pushed down
- Otherwise, it cannot be pushed down to that child
Sourcepub fn all_unsupported(
parent_filters: &[Arc<dyn PhysicalExpr>],
children: &[&Arc<dyn ExecutionPlan>],
) -> Self
pub fn all_unsupported( parent_filters: &[Arc<dyn PhysicalExpr>], children: &[&Arc<dyn ExecutionPlan>], ) -> Self
Mark all parent filters as unsupported for all children.
pub fn parent_filters(&self) -> Vec<Vec<PushedDownPredicate>>
pub fn self_filters(&self) -> Vec<Vec<Arc<dyn PhysicalExpr>>>
Trait Implementations§
Source§impl Clone for FilterDescription
impl Clone for FilterDescription
Source§fn clone(&self) -> FilterDescription
fn clone(&self) -> FilterDescription
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 moreSource§impl Debug for FilterDescription
impl Debug for FilterDescription
Auto Trait Implementations§
impl Freeze for FilterDescription
impl !RefUnwindSafe for FilterDescription
impl Send for FilterDescription
impl Sync for FilterDescription
impl Unpin for FilterDescription
impl !UnwindSafe for FilterDescription
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