pub enum JoinOrderTree {
Scan(JoinRelation),
Inner {
algorithm: JoinAlgorithm,
condition: JoinCondition,
left: Box<JoinOrderTree>,
right: Box<JoinOrderTree>,
},
Cross {
left: Box<JoinOrderTree>,
right: Box<JoinOrderTree>,
},
}Expand description
Output of the join order optimizer. The engine walks this tree to drive the actual row-tuple join algorithms.
Variants§
Scan(JoinRelation)
Base relation – a single scan source.
Inner
Inner equijoin with the chosen algorithm.
Fields
§
algorithm: JoinAlgorithm§
condition: JoinCondition§
left: Box<JoinOrderTree>§
right: Box<JoinOrderTree>Cross
Cross join – no predicate connecting the two sides.
Trait Implementations§
Source§impl Clone for JoinOrderTree
impl Clone for JoinOrderTree
Source§fn clone(&self) -> JoinOrderTree
fn clone(&self) -> JoinOrderTree
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl Freeze for JoinOrderTree
impl RefUnwindSafe for JoinOrderTree
impl Send for JoinOrderTree
impl Sync for JoinOrderTree
impl Unpin for JoinOrderTree
impl UnsafeUnpin for JoinOrderTree
impl UnwindSafe for JoinOrderTree
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> ErasedDestructor for Twhere
T: 'static,
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