pub struct HashAggregate<'a> { /* private fields */ }Implementations§
Source§impl HashAggregate<'static>
impl HashAggregate<'static>
pub fn new( child: Box<dyn PhysicalOperator>, group_keys: Vec<(String, ScalarExpr)>, aggregates: Vec<AggregateSpec>, params: Vec<SQLParam>, ) -> Self
pub fn new_with_work_mem( child: Box<dyn PhysicalOperator>, group_keys: Vec<(String, ScalarExpr)>, aggregates: Vec<AggregateSpec>, params: Vec<SQLParam>, work_mem_bytes: usize, ) -> Self
Source§impl<'a> HashAggregate<'a>
impl<'a> HashAggregate<'a>
Sourcepub fn with_executor(
child: Box<dyn PhysicalOperator + 'a>,
output_schema: Vec<String>,
executor: Box<dyn AggregateExecutor + 'a>,
) -> Self
pub fn with_executor( child: Box<dyn PhysicalOperator + 'a>, output_schema: Vec<String>, executor: Box<dyn AggregateExecutor + 'a>, ) -> Self
Construct a physical aggregate backed by the engine’s full aggregate
registry. Input is delivered incrementally through
AggregateExecutor::consume.
pub fn with_typed_executor( child: Box<dyn PhysicalOperator + 'a>, output_schema: Vec<String>, output_types: Vec<Option<ColumnType>>, executor: Box<dyn AggregateExecutor + 'a>, ) -> Self
Sourcepub fn output_has_spilled(&self) -> bool
pub fn output_has_spilled(&self) -> bool
Whether final aggregate rows exceeded their output budget and were written to disk during the current/most recent invocation.
Trait Implementations§
Source§impl PhysicalOperator for HashAggregate<'_>
impl PhysicalOperator for HashAggregate<'_>
Source§fn row_schema(&self) -> &RowSchema
fn row_schema(&self) -> &RowSchema
Complete logical-to-physical row layout emitted by this operator. Every
Batch returned by Self::next must carry this exact schema; operators must reject a child that violates that invariant.fn open(&mut self) -> ExecResult<()>
fn next(&mut self) -> ExecResult<Option<Batch>>
fn close(&mut self) -> ExecResult<()>
Source§fn estimated_cardinality(&self) -> Option<u64>
fn estimated_cardinality(&self) -> Option<u64>
Planner/runtime cardinality estimate for choosing physical strategies.
None means the operator cannot provide a useful estimate. The value
is advisory rather than a correctness bound.Source§fn output_ordering(&self) -> &[PhysicalOrder]
fn output_ordering(&self) -> &[PhysicalOrder]
Leading output ordering known to be preserved by this operator.
Source§fn consume_into_aggregate(
&mut self,
_executor: &mut dyn AggregateExecutor,
) -> ExecResult<bool>
fn consume_into_aggregate( &mut self, _executor: &mut dyn AggregateExecutor, ) -> ExecResult<bool>
Let a leaf consume its native projected rows directly into an
aggregate executor. Returning
false promises that no input was
consumed, so the caller can fall back to ordinary Batch pulls.Auto Trait Implementations§
impl<'a> !RefUnwindSafe for HashAggregate<'a>
impl<'a> !Sync for HashAggregate<'a>
impl<'a> !UnwindSafe for HashAggregate<'a>
impl<'a> Freeze for HashAggregate<'a>
impl<'a> Send for HashAggregate<'a>
impl<'a> Unpin for HashAggregate<'a>
impl<'a> UnsafeUnpin for HashAggregate<'a>
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
impl<T> ErasedDestructor for Twhere
T: 'static,
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