pub enum PhysicalOperator {
TableScan {
table: String,
},
IndexScan {
table: String,
index: String,
key: Vec<u8>,
},
IndexRangeScan {
table: String,
index: String,
start: Option<Vec<u8>>,
end: Option<Vec<u8>>,
},
Filter {
input: Box<PhysicalOperator>,
condition: Expression,
},
Sort {
input: Box<PhysicalOperator>,
columns: Vec<OrderByColumn>,
},
Limit {
input: Box<PhysicalOperator>,
count: usize,
offset: usize,
},
Project {
input: Box<PhysicalOperator>,
columns: Vec<SelectColumn>,
},
HashJoin {
left: Box<PhysicalOperator>,
right: Box<PhysicalOperator>,
join_type: JoinType,
condition: Expression,
},
GroupBy {
input: Box<PhysicalOperator>,
group_columns: Vec<String>,
aggregates: Vec<SelectColumn>,
having: Option<Expression>,
},
Aggregate {
input: Box<PhysicalOperator>,
aggregates: Vec<SelectColumn>,
},
}Expand description
Physical operators for query execution
Variants§
TableScan
Full table scan
IndexScan
Index scan with exact match
IndexRangeScan
Index range scan
Filter
Filter rows based on predicate
Sort
Sort rows
Limit
Limit number of results
Project
Project columns (SELECT specific columns)
HashJoin
Hash join (inner, left, right, full)
GroupBy
GROUP BY with optional aggregation
Aggregate
Aggregation (COUNT, SUM, AVG, MIN, MAX) without grouping
Trait Implementations§
Source§impl Clone for PhysicalOperator
impl Clone for PhysicalOperator
Source§fn clone(&self) -> PhysicalOperator
fn clone(&self) -> PhysicalOperator
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 moreSource§impl Debug for PhysicalOperator
impl Debug for PhysicalOperator
Auto Trait Implementations§
impl Freeze for PhysicalOperator
impl RefUnwindSafe for PhysicalOperator
impl Send for PhysicalOperator
impl Sync for PhysicalOperator
impl Unpin for PhysicalOperator
impl UnwindSafe for PhysicalOperator
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