pub struct EnsureRequirements {}Expand description
Optimizer rule that enforces both distribution and sorting requirements.
This rule combines the functionality of EnforceDistribution and
EnforceSorting into a coordinated sequence where distribution is
always settled before sorting for each operator, preventing the
non-idempotent interactions between the two separate rules.
See module level documentation for more details.
Implementations§
Trait Implementations§
Source§impl Debug for EnsureRequirements
impl Debug for EnsureRequirements
Source§impl Default for EnsureRequirements
impl Default for EnsureRequirements
Source§fn default() -> EnsureRequirements
fn default() -> EnsureRequirements
Returns the “default value” for a type. Read more
Source§impl PhysicalOptimizerRule for EnsureRequirements
impl PhysicalOptimizerRule for EnsureRequirements
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 form. Read moreSource§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.
Source§fn optimize_with_context(
&self,
plan: Arc<dyn ExecutionPlan>,
context: &dyn PhysicalOptimizerContext,
) -> Result<Arc<dyn ExecutionPlan>, DataFusionError>
fn optimize_with_context( &self, plan: Arc<dyn ExecutionPlan>, context: &dyn PhysicalOptimizerContext, ) -> Result<Arc<dyn ExecutionPlan>, DataFusionError>
Rewrite
plan with access to extended context (statistics registry, etc.). Read moreAuto Trait Implementations§
impl Freeze for EnsureRequirements
impl RefUnwindSafe for EnsureRequirements
impl Send for EnsureRequirements
impl Sync for EnsureRequirements
impl Unpin for EnsureRequirements
impl UnsafeUnpin for EnsureRequirements
impl UnwindSafe for EnsureRequirements
Blanket Implementations§
impl<T> Allocation for T
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