pub struct LimitPushPastWindows;Expand description
This rule inspects ExecutionPlan’s attempting to find fetch limits that were not pushed
down by LimitPushdown because BoundedWindowAggExecs were “in the way”. If the window is
bounded by WindowFrameUnits::Rows then we calculate the adjustment needed to grow the limit
and continue pushdown.
Implementations§
Source§impl LimitPushPastWindows
impl LimitPushPastWindows
pub fn new() -> LimitPushPastWindows
Trait Implementations§
Source§impl Clone for LimitPushPastWindows
impl Clone for LimitPushPastWindows
Source§fn clone(&self) -> LimitPushPastWindows
fn clone(&self) -> LimitPushPastWindows
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 LimitPushPastWindows
impl Debug for LimitPushPastWindows
Source§impl Default for LimitPushPastWindows
impl Default for LimitPushPastWindows
Source§fn default() -> LimitPushPastWindows
fn default() -> LimitPushPastWindows
Returns the “default value” for a type. Read more
Source§impl PhysicalOptimizerRule for LimitPushPastWindows
impl PhysicalOptimizerRule for LimitPushPastWindows
Source§fn optimize(
&self,
original: Arc<dyn ExecutionPlan>,
config: &ConfigOptions,
) -> Result<Arc<dyn ExecutionPlan>, DataFusionError>
fn optimize( &self, original: Arc<dyn ExecutionPlan>, config: &ConfigOptions, ) -> Result<Arc<dyn ExecutionPlan>, DataFusionError>
Rewrite
plan to an optimized formSource§fn schema_check(&self) -> bool
fn schema_check(&self) -> bool
A flag to indicate whether the physical planner should validate that the rule will not
change the schema of the plan after the rewriting.
Some of the optimization rules might change the nullable properties of the schema
and should disable the schema check.
Auto Trait Implementations§
impl Freeze for LimitPushPastWindows
impl RefUnwindSafe for LimitPushPastWindows
impl Send for LimitPushPastWindows
impl Sync for LimitPushPastWindows
impl Unpin for LimitPushPastWindows
impl UnwindSafe for LimitPushPastWindows
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