Trait datafusion::physical_plan::AggregateExpr
source · [−]pub trait AggregateExpr: Send + Sync + Debug {
fn as_any(&self) -> &dyn Any;
fn field(&self) -> Result<Field>;
fn create_accumulator(&self) -> Result<Box<dyn Accumulator>>;
fn state_fields(&self) -> Result<Vec<Field>>;
fn expressions(&self) -> Vec<Arc<dyn PhysicalExpr>>ⓘNotable traits for Vec<u8, A>impl<A> Write for Vec<u8, A> where
A: Allocator,
;
fn name(&self) -> &str { ... }
}
Expand description
An aggregate expression that:
- knows its resulting field
- knows how to create its accumulator
- knows its accumulator’s state’s field
- knows the expressions from whose its accumulator will receive values
Required methods
Returns the aggregate expression as Any
so that it can be
downcast to a specific implementation.
fn create_accumulator(&self) -> Result<Box<dyn Accumulator>>
fn create_accumulator(&self) -> Result<Box<dyn Accumulator>>
the accumulator used to accumulate values from the expressions.
the accumulator expects the same number of arguments as expressions
and must
return states with the same description as state_fields
fn state_fields(&self) -> Result<Vec<Field>>
fn state_fields(&self) -> Result<Vec<Field>>
the fields that encapsulate the Accumulator’s state the number of fields here equals the number of states that the accumulator contains