pub struct CombinePartialFinalAggregate {}
Expand description
CombinePartialFinalAggregate optimizer rule combines the adjacent Partial and Final AggregateExecs into a Single AggregateExec if their grouping exprs and aggregate exprs equal.
This rule should be applied after the EnforceDistribution and EnforceSorting rules
Implementations§
Trait Implementations§
Source§impl Debug for CombinePartialFinalAggregate
impl Debug for CombinePartialFinalAggregate
Source§impl Default for CombinePartialFinalAggregate
impl Default for CombinePartialFinalAggregate
Source§fn default() -> CombinePartialFinalAggregate
fn default() -> CombinePartialFinalAggregate
Returns the “default value” for a type. Read more
Source§impl PhysicalOptimizerRule for CombinePartialFinalAggregate
impl PhysicalOptimizerRule for CombinePartialFinalAggregate
Source§fn optimize(
&self,
plan: Arc<dyn ExecutionPlan>,
_config: &ConfigOptions,
) -> Result<Arc<dyn ExecutionPlan>>
fn optimize( &self, plan: Arc<dyn ExecutionPlan>, _config: &ConfigOptions, ) -> Result<Arc<dyn ExecutionPlan>>
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 valid 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 CombinePartialFinalAggregate
impl RefUnwindSafe for CombinePartialFinalAggregate
impl Send for CombinePartialFinalAggregate
impl Sync for CombinePartialFinalAggregate
impl Unpin for CombinePartialFinalAggregate
impl UnwindSafe for CombinePartialFinalAggregate
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> 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