pub struct AggPlan {
pub group_cols: Vec<String>,
pub aggs: Vec<AggSpec>,
}Expand description
Validated GROUP BY plan: canonical group columns + resolved aggregations.
Fields§
§group_cols: Vec<String>§aggs: Vec<AggSpec>Implementations§
Source§impl AggPlan
impl AggPlan
Sourcepub fn output_names(&self) -> Vec<String>
pub fn output_names(&self) -> Vec<String>
All output names exposed by this plan, in SELECT order: group
columns first, then aggregation aliases. Used by order_by
validation when grouping is active.
Sourcepub fn having_lhs(&self, name: &str) -> Result<String, AppError>
pub fn having_lhs(&self, name: &str) -> Result<String, AppError>
Resolve a HAVING reference name to the SQL expression it filters
on. A group-by column maps to its quoted identifier; an aggregation
alias maps to the underlying aggregate expression (COUNT(*),
SUM("amount"), …). Emitting the expression rather than the alias
keeps both backends happy — DataFusion does not allow aliases in
HAVING, while DuckDB does.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for AggPlan
impl RefUnwindSafe for AggPlan
impl Send for AggPlan
impl Sync for AggPlan
impl Unpin for AggPlan
impl UnsafeUnpin for AggPlan
impl UnwindSafe for AggPlan
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