Struct datafusion_expr::AggregateUDF
source · pub struct AggregateUDF {
pub name: String,
pub signature: Signature,
pub return_type: ReturnTypeFunction,
pub accumulator: AccumulatorFactoryFunction,
pub state_type: StateTypeFunction,
}
Expand description
Logical representation of a user-defined aggregate function (UDAF).
An aggregate function combines the values from multiple input rows
into a single output “aggregate” (summary) row. It is different
from a scalar function because it is stateful across batches. User
defined aggregate functions can be used as normal SQL aggregate
functions (GROUP BY
clause) as well as window functions (OVER
clause).
AggregateUDF
provides DataFusion the information needed to plan
and call aggregate functions, including name, type information,
and a factory function to create Accumulator
, which peform the
actual aggregation.
For more information, please see the examples.
Fields§
§name: String
name
signature: Signature
Signature (input arguments)
return_type: ReturnTypeFunction
Return type
accumulator: AccumulatorFactoryFunction
actual implementation
state_type: StateTypeFunction
the accumulator’s state’s description as a function of the return type
Implementations§
source§impl AggregateUDF
impl AggregateUDF
sourcepub fn new(
name: &str,
signature: &Signature,
return_type: &ReturnTypeFunction,
accumulator: &AccumulatorFactoryFunction,
state_type: &StateTypeFunction
) -> Self
pub fn new( name: &str, signature: &Signature, return_type: &ReturnTypeFunction, accumulator: &AccumulatorFactoryFunction, state_type: &StateTypeFunction ) -> Self
Create a new AggregateUDF
Trait Implementations§
source§impl Clone for AggregateUDF
impl Clone for AggregateUDF
source§fn clone(&self) -> AggregateUDF
fn clone(&self) -> AggregateUDF
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Debug for AggregateUDF
impl Debug for AggregateUDF
source§impl Hash for AggregateUDF
impl Hash for AggregateUDF
source§impl PartialEq<AggregateUDF> for AggregateUDF
impl PartialEq<AggregateUDF> for AggregateUDF
impl Eq for AggregateUDF
Auto Trait Implementations§
impl !RefUnwindSafe for AggregateUDF
impl Send for AggregateUDF
impl Sync for AggregateUDF
impl Unpin for AggregateUDF
impl !UnwindSafe for AggregateUDF
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<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
impl<Q, K> Equivalent<K> for Qwhere Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
impl<Q, K> Equivalent<K> for Qwhere Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key
and return true
if they are equal.