pub enum Step {
Scan {
table: String,
alias: Option<String>,
projections: Vec<Projection>,
predicate: Option<Expr>,
dependencies: Vec<StepId>,
},
Filter {
predicate: Expr,
projections: Vec<Projection>,
dependencies: Vec<StepId>,
},
Project {
projections: Vec<Projection>,
dependencies: Vec<StepId>,
},
Aggregate {
group_by: Vec<Expr>,
aggregations: Vec<Projection>,
projections: Vec<Projection>,
dependencies: Vec<StepId>,
},
Sort {
order_by: Vec<OrderByItem>,
projections: Vec<Projection>,
dependencies: Vec<StepId>,
},
Join {
join_type: JoinType,
condition: Option<Expr>,
using_columns: Vec<String>,
projections: Vec<Projection>,
dependencies: Vec<StepId>,
},
Limit {
limit: Option<Expr>,
offset: Option<Expr>,
projections: Vec<Projection>,
dependencies: Vec<StepId>,
},
SetOperation {
op: SetOperationType,
all: bool,
projections: Vec<Projection>,
dependencies: Vec<StepId>,
},
Distinct {
projections: Vec<Projection>,
dependencies: Vec<StepId>,
},
}Expand description
A single step in the logical execution plan.
Variants§
Scan
Full table scan with optional filter pushdown.
Fields
§
projections: Vec<Projection>Projected columns.
Filter
Filter (WHERE / HAVING) applied to its input.
Fields
§
projections: Vec<Projection>Projected columns.
Project
Projection (SELECT list evaluation).
Fields
§
projections: Vec<Projection>Output projections.
Aggregate
Aggregation (GROUP BY + aggregate functions).
Fields
§
aggregations: Vec<Projection>Aggregate expressions (COUNT, SUM, etc.).
§
projections: Vec<Projection>Projected output columns.
Sort
Sort (ORDER BY).
Fields
§
order_by: Vec<OrderByItem>Order-by items.
§
projections: Vec<Projection>Projected columns (pass-through).
Join
Join two inputs.
Fields
§
projections: Vec<Projection>Projected columns.
Limit
LIMIT / OFFSET.
Fields
§
projections: Vec<Projection>Projected columns (pass-through).
SetOperation
UNION / INTERSECT / EXCEPT.
Fields
§
op: SetOperationTypeThe kind of set operation.
§
projections: Vec<Projection>Projected columns from the combined result.
Distinct
DISTINCT elimination.
Implementations§
Source§impl Step
impl Step
Sourcepub fn dependencies(&self) -> &[StepId]
pub fn dependencies(&self) -> &[StepId]
Returns the list of step IDs this step depends on.
Sourcepub fn projections(&self) -> &[Projection]
pub fn projections(&self) -> &[Projection]
Returns the projected columns of this step.
Trait Implementations§
impl StructuralPartialEq for Step
Auto Trait Implementations§
impl Freeze for Step
impl RefUnwindSafe for Step
impl Send for Step
impl Sync for Step
impl Unpin for Step
impl UnsafeUnpin for Step
impl UnwindSafe for Step
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