pub struct AggregateHashTable { /* private fields */ }Expand description
A parallel hash table for aggregation with GROUP BY keys.
Uses rayon thread-local aggregation: each thread builds its own
local hash table, then all local tables are merged.
Implementations§
Source§impl AggregateHashTable
impl AggregateHashTable
pub fn new( funcs: Vec<AggregateFunction>, group_by_cols: Vec<u32>, agg_expressions: Vec<Vec<Expression>>, ) -> Self
Sourcepub fn aggregate(&self, chunks: &[DataChunk]) -> OperatorResult
pub fn aggregate(&self, chunks: &[DataChunk]) -> OperatorResult
Aggregate all input chunks, optionally in parallel.
pub fn build_output( &self, groups: &HashMap<u64, Vec<(Value, Vec<AggValueState>)>>, ) -> OperatorResult
Auto Trait Implementations§
impl Freeze for AggregateHashTable
impl RefUnwindSafe for AggregateHashTable
impl Send for AggregateHashTable
impl Sync for AggregateHashTable
impl Unpin for AggregateHashTable
impl UnsafeUnpin for AggregateHashTable
impl UnwindSafe for AggregateHashTable
Blanket Implementations§
impl<T> Allocation for T
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
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