pub struct BuiltInWindowExpr { /* private fields */ }
Expand description

A window expr that takes the form of a built in window function

Implementations§

source§

impl BuiltInWindowExpr

source

pub fn new(
    expr: Arc<dyn BuiltInWindowFunctionExpr>,
    partition_by: &[Arc<dyn PhysicalExpr>],
    order_by: &[PhysicalSortExpr],
    window_frame: Arc<WindowFrame>
) -> Self

create a new built-in window function expression

source

pub fn get_built_in_func_expr(&self) -> &Arc<dyn BuiltInWindowFunctionExpr>

Get BuiltInWindowFunction expr of BuiltInWindowExpr

Trait Implementations§

source§

impl Debug for BuiltInWindowExpr

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl WindowExpr for BuiltInWindowExpr

source§

fn as_any(&self) -> &dyn Any

Return a reference to Any that can be used for downcasting

source§

fn evaluate_stateful(
    &self,
    partition_batches: &PartitionBatches,
    window_agg_state: &mut PartitionWindowAggStates
) -> Result<()>

Evaluate the window function against the batch. This function facilitates stateful, bounded-memory implementations.

source§

fn name(&self) -> &str

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

fn field(&self) -> Result<Field>

the field of the final result of this window function.
source§

fn expressions(&self) -> Vec<Arc<dyn PhysicalExpr>>

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.
source§

fn partition_by(&self) -> &[Arc<dyn PhysicalExpr>]

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

fn order_by(&self) -> &[PhysicalSortExpr]

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

fn evaluate(&self, batch: &RecordBatch) -> Result<ArrayRef>

evaluate the window function values against the batch
source§

fn get_window_frame(&self) -> &Arc<WindowFrame>

Get the window frame of this WindowExpr.
source§

fn get_reverse_expr(&self) -> Option<Arc<dyn WindowExpr>>

Get the reverse expression of this WindowExpr.
source§

fn uses_bounded_memory(&self) -> bool

Return a flag indicating whether this WindowExpr can run with bounded memory.
source§

fn evaluate_args(&self, batch: &RecordBatch) -> Result<Vec<ArrayRef>>

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

fn evaluate_partition_points(
    &self,
    num_rows: usize,
    partition_columns: &[SortColumn]
) -> Result<Vec<Range<usize>>>

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.
source§

fn order_by_columns(&self, batch: &RecordBatch) -> Result<Vec<SortColumn>>

get order by columns, empty if absent
source§

fn sort_columns(&self, batch: &RecordBatch) -> Result<Vec<SortColumn>>

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

fn get_values_orderbys(
    &self,
    record_batch: &RecordBatch
) -> Result<(Vec<ArrayRef>, Vec<ArrayRef>)>

Get values columns(argument of Window Function) and order by columns (columns of the ORDER BY expression)used in evaluators

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere
    T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere
    T: ?Sized,

const: unstable · source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere
    T: ?Sized,

const: unstable · source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

const: unstable · source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for Twhere
    U: From<T>,

const: unstable · source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> Same<T> for T

§

type Output = T

Should always be Self
source§

impl<T, U> TryFrom<U> for Twhere
    U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
const: unstable · source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere
    U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
const: unstable · source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for Twhere
    V: MultiLane<T>,

§

fn vzip(self) -> V