pub struct FederationOptimizerRule {}Expand description
An optimizer rule to identifying sub-plans to federate
The optimizer logic walks over the plan, look for the largest subtrees that only have
TableScans from the same FederationProvider. There ‘largest sub-trees’ are passed to their
respective FederationProvider::optimizer.
Implementations§
Source§impl FederationOptimizerRule
impl FederationOptimizerRule
Sourcepub fn new() -> Self
pub fn new() -> Self
Creates a new FederationOptimizerRule
Trait Implementations§
Source§impl Debug for FederationOptimizerRule
impl Debug for FederationOptimizerRule
Source§impl Default for FederationOptimizerRule
impl Default for FederationOptimizerRule
Source§fn default() -> FederationOptimizerRule
fn default() -> FederationOptimizerRule
Returns the “default value” for a type. Read more
Source§impl OptimizerRule for FederationOptimizerRule
impl OptimizerRule for FederationOptimizerRule
Source§fn rewrite(
&self,
plan: LogicalPlan,
config: &dyn OptimizerConfig,
) -> Result<Transformed<LogicalPlan>>
fn rewrite( &self, plan: LogicalPlan, config: &dyn OptimizerConfig, ) -> Result<Transformed<LogicalPlan>>
Try to rewrite plan to an optimized form, returning Transformed::yes
if the plan was rewritten and Transformed::no if it was not.
Note: this function is only called if Self::supports_rewrite returns
true. Otherwise the Optimizer calls [Self::try_optimize]
Source§fn supports_rewrite(&self) -> bool
👎Deprecated since 47.0.0: This method is no longer used
fn supports_rewrite(&self) -> bool
Does this rule support rewriting owned plans (rather than by reference)?
Source§fn apply_order(&self) -> Option<ApplyOrder>
fn apply_order(&self) -> Option<ApplyOrder>
How should the rule be applied by the optimizer? See comments on
ApplyOrder for details. Read moreAuto Trait Implementations§
impl Freeze for FederationOptimizerRule
impl RefUnwindSafe for FederationOptimizerRule
impl Send for FederationOptimizerRule
impl Sync for FederationOptimizerRule
impl Unpin for FederationOptimizerRule
impl UnwindSafe for FederationOptimizerRule
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