OrderSensitiveArrayAggAccumulator

Struct OrderSensitiveArrayAggAccumulator 

Source
pub(crate) struct OrderSensitiveArrayAggAccumulator {
    values: Vec<ScalarValue>,
    ordering_values: Vec<Vec<ScalarValue>>,
    datatypes: Vec<DataType>,
    ordering_req: LexOrdering,
    is_input_pre_ordered: bool,
    reverse: bool,
    ignore_nulls: bool,
}
Expand description

Accumulator for a ARRAY_AGG(... ORDER BY ..., ...) aggregation. In a multi partition setting, partial aggregations are computed for every partition, and then their results are merged.

Fields§

§values: Vec<ScalarValue>

Stores entries in the ARRAY_AGG result.

§ordering_values: Vec<Vec<ScalarValue>>

Stores values of ordering requirement expressions corresponding to each entry in values. This information is used when merging results from different partitions. For detailed information how merging is done, see merge_ordered_arrays.

§datatypes: Vec<DataType>

Stores datatypes of expressions inside values and ordering requirement expressions.

§ordering_req: LexOrdering

Stores the ordering requirement of the Accumulator.

§is_input_pre_ordered: bool

Whether the input is known to be pre-ordered

§reverse: bool

Whether the aggregation is running in reverse.

§ignore_nulls: bool

Whether the aggregation should ignore null values.

Implementations§

Source§

impl OrderSensitiveArrayAggAccumulator

Source

pub fn try_new( datatype: &DataType, ordering_dtypes: &[DataType], ordering_req: LexOrdering, is_input_pre_ordered: bool, reverse: bool, ignore_nulls: bool, ) -> Result<Self>

Create a new order-sensitive ARRAY_AGG accumulator based on the given item data type.

Source

fn sort(&mut self)

Source

fn evaluate_orderings(&self) -> Result<ScalarValue>

Trait Implementations§

Source§

impl Accumulator for OrderSensitiveArrayAggAccumulator

Source§

fn update_batch(&mut self, values: &[ArrayRef]) -> Result<()>

Updates the accumulator’s state from its input. Read more
Source§

fn merge_batch(&mut self, states: &[ArrayRef]) -> Result<()>

Updates the accumulator’s state from an Array containing one or more intermediate values. Read more
Source§

fn state(&mut self) -> Result<Vec<ScalarValue>>

Returns the intermediate state of the accumulator, consuming the intermediate state. Read more
Source§

fn evaluate(&mut self) -> Result<ScalarValue>

Returns the final aggregate value, consuming the internal state. Read more
Source§

fn size(&self) -> usize

Returns the allocated size required for this accumulator, in bytes, including Self. Read more
§

fn retract_batch( &mut self, _values: &[Arc<dyn Array>], ) -> Result<(), DataFusionError>

Retracts (removed) an update (caused by the given inputs) to accumulator’s state. Read more
§

fn supports_retract_batch(&self) -> bool

Does the accumulator support incrementally updating its value by removing values. Read more
Source§

impl Debug for OrderSensitiveArrayAggAccumulator

Source§

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

Formats the value using the given formatter. Read more

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.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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
§

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

§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns [Action::Follow] only if self and other return Action::Follow. Read more
§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns [Action::Follow] if either self or other returns Action::Follow. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
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.
§

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

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

impl<T> ErasedDestructor for T
where T: 'static,