pub struct EnforceSorting {}
Expand description
This rule inspects SortExec
’s in the given physical plan and removes the
ones it can prove unnecessary.
Implementations§
Trait Implementations§
Source§impl Debug for EnforceSorting
impl Debug for EnforceSorting
Source§impl Default for EnforceSorting
impl Default for EnforceSorting
Source§fn default() -> EnforceSorting
fn default() -> EnforceSorting
Returns the “default value” for a type. Read more
Source§impl PhysicalOptimizerRule for EnforceSorting
The boolean flag repartition_sorts
defined in the config indicates
whether we elect to transform CoalescePartitionsExec
+ SortExec
cascades
into SortExec
+ SortPreservingMergeExec
cascades, which enables us to
perform sorting in parallel.
impl PhysicalOptimizerRule for EnforceSorting
The boolean flag repartition_sorts
defined in the config indicates
whether we elect to transform CoalescePartitionsExec
+ SortExec
cascades
into SortExec
+ SortPreservingMergeExec
cascades, which enables us to
perform sorting in parallel.
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 EnforceSorting
impl RefUnwindSafe for EnforceSorting
impl Send for EnforceSorting
impl Sync for EnforceSorting
impl Unpin for EnforceSorting
impl UnwindSafe for EnforceSorting
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