pub trait WindowExpr: Send + Sync + Debug {
    fn as_any(&self) -> &dyn Any;
    fn field(&self) -> Result<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 evaluate(&self, batch: &RecordBatch) -> Result<ArrayRef>; fn partition_by(&self) -> &[Arc<dyn PhysicalExpr>]; fn order_by(&self) -> &[PhysicalSortExpr]; fn name(&self) -> &str { ... } fn evaluate_args(&self, batch: &RecordBatch) -> Result<Vec<ArrayRef>> { ... } fn evaluate_partition_points(
        &self,
        num_rows: usize,
        partition_columns: &[SortColumn]
    ) -> Result<Vec<Range<usize>>> { ... } fn partition_columns(&self, batch: &RecordBatch) -> Result<Vec<SortColumn>> { ... } fn sort_columns(&self, batch: &RecordBatch) -> Result<Vec<SortColumn>> { ... } }
Expand description

A window expression that:

  • knows its resulting field

Required Methods

Returns the window expression as Any so that it can be downcast to a specific implementation.

the field of the final result of this window function.

expressions that are passed to the WindowAccumulator. Functions which take a single input argument, such as sum, return a single datafusion_expr::expr::Expr, others (e.g. cov) return many.

evaluate the window function values against the batch

expressions that’s from the window function’s partition by clause, empty if absent

expressions that’s from the window function’s order by clause, empty if absent

Provided Methods

Human readable name such as "MIN(c2)" or "RANK()". The default implementation returns placeholder text.

evaluate the window function arguments against the batch and return array ref, normally the resulting vec is a single element one.

evaluate the partition points given the sort columns; if the sort columns are empty then the result will be a single element vec of the whole column rows.

get partition columns that can be used for partitioning, empty if absent

get sort columns that can be used for peer evaluation, empty if absent

Implementors