pub struct LogicalAggregate {
pub aggregates_table: TableRef,
pub aggregates: Vec<Expression>,
pub group_table: Option<TableRef>,
pub group_exprs: Vec<Expression>,
pub grouping_sets: Option<Vec<BTreeSet<usize>>>,
pub grouping_functions_table: Option<TableRef>,
pub grouping_functions: Vec<GroupingFunction>,
}Fields§
§aggregates_table: TableRefTable ref that represents output of aggregate expressions.
aggregates: Vec<Expression>Aggregate expressions.
group_table: Option<TableRef>Table ref representing output of the group by expressions.
Will be None if this aggregate does not have an associated GROUP BY.
group_exprs: Vec<Expression>Expressions to group on.
grouping_sets: Option<Vec<BTreeSet<usize>>>Grouping set referencing group exprs.
grouping_functions_table: Option<TableRef>Table reference for getting the GROUPING value for a group.
This is Some if there’s an explicit GROUPING function call in the query. Internally, the hash aggregate produces a group id based on null bitmaps, and that id is stored with the group. This let’s us disambiguate NULL values from NULLs in the column vs NULLs produced by the null bitmap.
Follows postgres semantics. See: https://www.postgresql.org/docs/current/functions-aggregate.html#FUNCTIONS-GROUPING-TABLE
grouping_functions: Vec<GroupingFunction>Grouping function calls.
Empty if grouping_set_table is None.
Trait Implementations§
Source§impl Clone for LogicalAggregate
impl Clone for LogicalAggregate
Source§impl Debug for LogicalAggregate
impl Debug for LogicalAggregate
impl Eq for LogicalAggregate
Source§impl Explainable for LogicalAggregate
impl Explainable for LogicalAggregate
Source§fn explain_entry(&self, conf: ExplainConfig<'_>) -> ExplainEntry
fn explain_entry(&self, conf: ExplainConfig<'_>) -> ExplainEntry
Source§impl PartialEq for LogicalAggregate
impl PartialEq for LogicalAggregate
impl StructuralPartialEq for LogicalAggregate
Auto Trait Implementations§
impl !RefUnwindSafe for LogicalAggregate
impl !UnwindSafe for LogicalAggregate
impl Freeze for LogicalAggregate
impl Send for LogicalAggregate
impl Sync for LogicalAggregate
impl Unpin for LogicalAggregate
impl UnsafeUnpin for LogicalAggregate
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
self to key and returns true if they are equal.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.