pub enum PhysicalPlan {
TableScan {
table: String,
columns: Vec<String>,
predicate: Option<Box<Predicate>>,
estimated_rows: u64,
estimated_cost: f64,
},
IndexSeek {
table: String,
index: String,
columns: Vec<String>,
key_range: KeyRange,
predicate: Option<Box<Predicate>>,
estimated_rows: u64,
estimated_cost: f64,
},
Filter {
input: Box<PhysicalPlan>,
predicate: Predicate,
estimated_rows: u64,
estimated_cost: f64,
},
Project {
input: Box<PhysicalPlan>,
columns: Vec<String>,
estimated_cost: f64,
},
Sort {
input: Box<PhysicalPlan>,
order_by: Vec<(String, SortDirection)>,
estimated_cost: f64,
},
Limit {
input: Box<PhysicalPlan>,
limit: u64,
offset: u64,
estimated_cost: f64,
},
NestedLoopJoin {
outer: Box<PhysicalPlan>,
inner: Box<PhysicalPlan>,
condition: Predicate,
join_type: JoinType,
estimated_rows: u64,
estimated_cost: f64,
},
HashJoin {
build: Box<PhysicalPlan>,
probe: Box<PhysicalPlan>,
build_keys: Vec<String>,
probe_keys: Vec<String>,
join_type: JoinType,
estimated_rows: u64,
estimated_cost: f64,
},
MergeJoin {
left: Box<PhysicalPlan>,
right: Box<PhysicalPlan>,
left_keys: Vec<String>,
right_keys: Vec<String>,
join_type: JoinType,
estimated_rows: u64,
estimated_cost: f64,
},
Aggregate {
input: Box<PhysicalPlan>,
group_by: Vec<String>,
aggregates: Vec<AggregateExpr>,
estimated_rows: u64,
estimated_cost: f64,
},
}Expand description
Physical query plan node
Variants§
TableScan
Table scan (full or partial)
Fields
IndexSeek
Index seek
Fields
Filter
Filter operator
Project
Project operator (column subset)
Sort
Sort operator
Limit
Limit operator
NestedLoopJoin
Nested loop join
HashJoin
Hash join
MergeJoin
Merge join
Aggregate
Aggregate operator
Trait Implementations§
Source§impl Clone for PhysicalPlan
impl Clone for PhysicalPlan
Source§fn clone(&self) -> PhysicalPlan
fn clone(&self) -> PhysicalPlan
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 PhysicalPlan
impl RefUnwindSafe for PhysicalPlan
impl Send for PhysicalPlan
impl Sync for PhysicalPlan
impl Unpin for PhysicalPlan
impl UnwindSafe for PhysicalPlan
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> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
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