pub struct SelectPlan {
pub tables: Vec<TableRef>,
pub projections: Vec<SelectProjection>,
pub filter: Option<Expr<'static, String>>,
pub aggregates: Vec<AggregateExpr>,
pub order_by: Vec<OrderByPlan>,
}Expand description
Logical query plan for SELECT operations.
Fields§
§tables: Vec<TableRef>Tables to query. Empty vec means no FROM clause (e.g., SELECT 42). Single element for simple queries, multiple for joins/cross products.
projections: Vec<SelectProjection>§filter: Option<Expr<'static, String>>§aggregates: Vec<AggregateExpr>§order_by: Vec<OrderByPlan>Implementations§
Source§impl SelectPlan
impl SelectPlan
Sourcepub fn new(table: impl Into<String>) -> SelectPlan
pub fn new(table: impl Into<String>) -> SelectPlan
Create a SelectPlan for a single table.
Sourcepub fn with_tables(tables: Vec<TableRef>) -> SelectPlan
pub fn with_tables(tables: Vec<TableRef>) -> SelectPlan
Create a SelectPlan with multiple tables for cross product/joins.
pub fn with_projections(self, projections: Vec<SelectProjection>) -> SelectPlan
pub fn with_filter(self, filter: Option<Expr<'static, String>>) -> SelectPlan
pub fn with_aggregates(self, aggregates: Vec<AggregateExpr>) -> SelectPlan
pub fn with_order_by(self, order_by: Vec<OrderByPlan>) -> SelectPlan
Trait Implementations§
Source§impl Clone for SelectPlan
impl Clone for SelectPlan
Source§fn clone(&self) -> SelectPlan
fn clone(&self) -> SelectPlan
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 SelectPlan
impl RefUnwindSafe for SelectPlan
impl Send for SelectPlan
impl Sync for SelectPlan
impl Unpin for SelectPlan
impl UnwindSafe for SelectPlan
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