pub enum JoinPlanNode {
Scan {
relation: String,
estimated_cost: u64,
},
HashJoin {
left: Box<JoinPlanNode>,
right: Box<JoinPlanNode>,
conditions: Vec<JoinCondition>,
estimated_cost: u64,
estimated_rows: u64,
},
NestedLoopJoin {
left: Box<JoinPlanNode>,
right: Box<JoinPlanNode>,
conditions: Vec<JoinCondition>,
estimated_cost: u64,
estimated_rows: u64,
},
}Expand description
A node in a join plan tree.
Variants§
Scan
Leaf: scan a single relation.
HashJoin
Hash join (good for larger inner relations).
NestedLoopJoin
Nested-loop join (fallback / small inner).
Implementations§
Source§impl JoinPlanNode
impl JoinPlanNode
Sourcepub fn estimated_output_rows(&self) -> u64
pub fn estimated_output_rows(&self) -> u64
Estimated number of output rows.
Sourcepub fn relations_involved(&self) -> Vec<String>
pub fn relations_involved(&self) -> Vec<String>
Collect all relation names involved in this sub-plan.
Trait Implementations§
Source§impl Clone for JoinPlanNode
impl Clone for JoinPlanNode
Source§fn clone(&self) -> JoinPlanNode
fn clone(&self) -> JoinPlanNode
Returns a duplicate of the value. Read more
1.0.0 · 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 JoinPlanNode
impl RefUnwindSafe for JoinPlanNode
impl Send for JoinPlanNode
impl Sync for JoinPlanNode
impl Unpin for JoinPlanNode
impl UnsafeUnpin for JoinPlanNode
impl UnwindSafe for JoinPlanNode
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,
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