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