pub enum Item {
All(Option<String>),
Column(Name, Option<String>),
Count(Option<String>),
Aggregate(Agg, Name, Option<String>),
Literal(Datum, Option<String>),
Expr(Expr, Option<String>),
}Variants§
All(Option<String>)
*, or t.*.
Column(Name, Option<String>)
Count(Option<String>)
Aggregate(Agg, Name, Option<String>)
min(c), max(c) or sum(c) — the three aggregates whose answer depends on what the rows
say. crate::plan::Op::GroupBy is what maintains each, and count is not one of them
because a count needs nothing of the row at all.
Literal(Datum, Option<String>)
Expr(Expr, Option<String>)
Anything else a select list can hold — a case, a call, a comparison, a cast.
Separate from Item::Column and Item::Literal rather than subsuming them, because
those two are what crate::query compiles into the plan for a group by and a
distinct: an expression there would be an expression inside an operator, and this
evaluates them over the rows an operator produced.
Implementations§
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Item
impl RefUnwindSafe for Item
impl Send for Item
impl Sync for Item
impl Unpin for Item
impl UnwindSafe for Item
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