Struct tidb_query_executors::stream_aggr_executor::BatchStreamAggregationImpl[][src]

pub struct BatchStreamAggregationImpl {
    group_by_exps: Vec<RpnExpression>,
    group_by_exps_types: Vec<EvalType>,
    group_by_field_type: Vec<FieldType>,
    keys: Vec<ScalarValue>,
    states: Vec<Box<dyn AggrFunctionState>>,
    group_by_results_unsafe: Vec<RpnStackNode<'static>>,
    aggr_expr_results_unsafe: Vec<RpnStackNode<'static>>,
}

Fields

group_by_exps: Vec<RpnExpression>group_by_exps_types: Vec<EvalType>

used in the iterate_each_group_for_aggregation method

group_by_field_type: Vec<FieldType>keys: Vec<ScalarValue>

Stores all group keys for the current result partial. The last group_by_exps.len() elements are the keys of the last group.

states: Vec<Box<dyn AggrFunctionState>>

Stores all group states for the current result partial. The last each_aggr_fn.len() elements are the states of the last group.

group_by_results_unsafe: Vec<RpnStackNode<'static>>

Stores evaluation results of group by expressions. It is just used to reduce allocations. The lifetime is not really ’static. The elements are only valid in the same batch where they are added.

aggr_expr_results_unsafe: Vec<RpnStackNode<'static>>

Stores evaluation results of aggregate expressions. It is just used to reduce allocations. The lifetime is not really ’static. The elements are only valid in the same batch where they are added.

Trait Implementations

impl<Src: BatchExecutor> AggregationExecutorImpl<Src> for BatchStreamAggregationImpl[src]

fn groups_len(&self) -> usize[src]

Note that the partial group is in count.

fn is_partial_results_ready(&self) -> bool[src]

We cannot ensure the last group is complete, so we can output partial results only if group count >= 2.

Auto Trait Implementations

impl !RefUnwindSafe for BatchStreamAggregationImpl

impl Send for BatchStreamAggregationImpl

impl !Sync for BatchStreamAggregationImpl

impl Unpin for BatchStreamAggregationImpl

impl !UnwindSafe for BatchStreamAggregationImpl

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<V, W> ConvertFrom<W> for V where
    W: ConvertTo<V>, 
[src]

impl<T> From<T> for T[src]

impl<T> Instrument for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> Pointable for T[src]

type Init = T

The type for initializers.

impl<T> Same<T> for T[src]

type Output = T

Should always be Self

impl<T> Sealed<T> for T where
    T: ?Sized
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.

impl<V, T> VZip<V> for T where
    V: MultiLane<T>, 
[src]