Skip to main content

LoweredAggregateBuilder

Struct LoweredAggregateBuilder 

Source
pub struct LoweredAggregateBuilder<'a> { /* private fields */ }
Expand description

Builder for converting a logical aggregate Expr into physical aggregate planning pieces.

This builder handles the logical-to-physical work needed for aggregate planning: unwrapping aggregate aliases, choosing the output name, preserving user-facing display text, lowering aggregate arguments, lowering the optional filter, and lowering aggregate ORDER BY expressions.

Implementations§

Source§

impl<'a> LoweredAggregateBuilder<'a>

Source

pub fn new( expr: &'a Expr, logical_input_schema: &'a DFSchema, physical_input_schema: &'a Schema, execution_props: &'a ExecutionProps, ) -> Self

Create a builder for lowering expr.

logical_input_schema is used to resolve logical expressions such as columns, while physical_input_schema is the input schema used by the physical aggregate expression.

Source

pub fn with_name(self, name: impl Into<String>) -> Self

Override the output column name for the aggregate.

If this is not set, the builder uses the alias from expr when present, or derives the physical name from the aggregate expression.

Source

pub fn with_human_display(self, human_display: impl Into<String>) -> Self

Override the human-readable display text for the aggregate.

This is useful when a caller has already computed the exact display text it wants to preserve. When this override is used, aliases with metadata are still unwrapped for planning, but alias metadata is not copied to the aggregate output field.

Source

pub fn build(self) -> Result<LoweredAggregate>

Lower the logical aggregate expression into physical aggregate pieces.

Auto Trait Implementations§

Blanket Implementations§

Source§

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

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

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

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

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

Source§

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

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

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

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> IntoEither for T

Source§

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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

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
Source§

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

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

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

Performs the conversion.
Source§

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

Source§

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

The type returned in the event of a conversion error.
Source§

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

Performs the conversion.