pub struct ChildFilterDescription {
pub(crate) parent_filters: Vec<PushedDownPredicate>,
pub(crate) self_filters: Vec<Arc<dyn PhysicalExpr>>,
}Expand description
Describes filter pushdown for a single child node.
This structure contains two types of filters:
- Parent filters: Filters received from the parent node, marked as supported or unsupported
- Self filters: Filters generated by the current node to be pushed down to this child
Fields§
§parent_filters: Vec<PushedDownPredicate>§self_filters: Vec<Arc<dyn PhysicalExpr>>Implementations§
Source§impl ChildFilterDescription
impl ChildFilterDescription
Sourcepub fn from_child(
parent_filters: &[Arc<dyn PhysicalExpr>],
child: &Arc<dyn ExecutionPlan>,
) -> Result<ChildFilterDescription, DataFusionError>
pub fn from_child( parent_filters: &[Arc<dyn PhysicalExpr>], child: &Arc<dyn ExecutionPlan>, ) -> Result<ChildFilterDescription, DataFusionError>
Build a child filter description by analyzing which parent filters can be pushed to a specific child.
This method performs column analysis to determine which filters can be pushed down:
- If all columns referenced by a filter exist in the child’s schema, it can be pushed down
- Otherwise, it cannot be pushed down to that child
See FilterDescription::from_children for more details
Sourcepub fn with_self_filter(
self,
filter: Arc<dyn PhysicalExpr>,
) -> ChildFilterDescription
pub fn with_self_filter( self, filter: Arc<dyn PhysicalExpr>, ) -> ChildFilterDescription
Add a self filter (from the current node) to be pushed down to this child.
Sourcepub fn with_self_filters(
self,
filters: Vec<Arc<dyn PhysicalExpr>>,
) -> ChildFilterDescription
pub fn with_self_filters( self, filters: Vec<Arc<dyn PhysicalExpr>>, ) -> ChildFilterDescription
Add multiple self filters.
Trait Implementations§
Source§impl Clone for ChildFilterDescription
impl Clone for ChildFilterDescription
Source§fn clone(&self) -> ChildFilterDescription
fn clone(&self) -> ChildFilterDescription
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 ChildFilterDescription
impl !RefUnwindSafe for ChildFilterDescription
impl Send for ChildFilterDescription
impl Sync for ChildFilterDescription
impl Unpin for ChildFilterDescription
impl !UnwindSafe for ChildFilterDescription
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,
§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