pub struct JoinOrderOptimizer { /* private fields */ }Expand description
The join order optimizer.
Implementations§
Source§impl JoinOrderOptimizer
impl JoinOrderOptimizer
Sourcepub fn new(config: JoinOptimizerConfig) -> Self
pub fn new(config: JoinOptimizerConfig) -> Self
Create with explicit configuration.
Sourcepub fn with_default() -> Self
pub fn with_default() -> Self
Create with default configuration.
Sourcepub fn optimize(
&self,
relations: &[Relation],
conditions: &[JoinCondition],
) -> Result<JoinPlan, JoinOrderError>
pub fn optimize( &self, relations: &[Relation], conditions: &[JoinCondition], ) -> Result<JoinPlan, JoinOrderError>
Find optimal join order for a set of relations with join conditions.
For <= max_relations: dynamic programming (System R style).
For > max_relations: greedy (smallest estimated output first).
Trait Implementations§
Auto Trait Implementations§
impl Freeze for JoinOrderOptimizer
impl RefUnwindSafe for JoinOrderOptimizer
impl Send for JoinOrderOptimizer
impl Sync for JoinOrderOptimizer
impl Unpin for JoinOrderOptimizer
impl UnsafeUnpin for JoinOrderOptimizer
impl UnwindSafe for JoinOrderOptimizer
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