pub struct ChildPushdownResult {
pub parent_filters: Vec<ChildFilterPushdownResult>,
pub self_filters: Vec<Vec<PushedDownPredicate>>,
}Expand description
The result of pushing down filters into a child node.
This is the result provided to nodes in ExecutionPlan::handle_child_pushdown_result.
Nodes process this result and convert it into a FilterPushdownPropagation
that is returned to their parent.
Fields§
§parent_filters: Vec<ChildFilterPushdownResult>The parent filters that were pushed down as received by the current node when ExecutionPlan::gather_filters_for_pushdown was called.
Note that this may not be the same as the filters that were passed to the children as the current node may have modified them
(e.g. by reassigning column indices) when it returned them from ExecutionPlan::gather_filters_for_pushdown in a FilterDescription.
Attached to each filter is a PushedDown per child that indicates whether the filter was supported or unsupported by each child.
To get combined results see ChildFilterPushdownResult::any and ChildFilterPushdownResult::all.
self_filters: Vec<Vec<PushedDownPredicate>>The result of pushing down each filter this node provided into each of it’s children.
The outer vector corresponds to each child, and the inner vector corresponds to each filter.
Since this node may have generated a different filter for each child the inner vector may have different lengths or the expressions may not match at all.
It is up to each node to interpret this result based on the filters it provided for each child in ExecutionPlan::gather_filters_for_pushdown.
Trait Implementations§
Source§impl Clone for ChildPushdownResult
impl Clone for ChildPushdownResult
Source§fn clone(&self) -> ChildPushdownResult
fn clone(&self) -> ChildPushdownResult
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreAuto Trait Implementations§
impl Freeze for ChildPushdownResult
impl !RefUnwindSafe for ChildPushdownResult
impl Send for ChildPushdownResult
impl Sync for ChildPushdownResult
impl Unpin for ChildPushdownResult
impl !UnwindSafe for ChildPushdownResult
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
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>
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>
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