Struct tidb_query_executors::stream_aggr_executor::BatchStreamAggregationImpl [−][src]
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 prepare_entities(&mut self, entities: &mut Entities<Src>)
[src]
fn process_batch_input(
&mut self,
entities: &mut Entities<Src>,
input_physical_columns: LazyBatchColumnVec,
input_logical_rows: &[usize]
) -> Result<()>
[src]
&mut self,
entities: &mut Entities<Src>,
input_physical_columns: LazyBatchColumnVec,
input_logical_rows: &[usize]
) -> Result<()>
fn groups_len(&self) -> usize
[src]
Note that the partial group is in count.
fn iterate_available_groups(
&mut self,
entities: &mut Entities<Src>,
src_is_drained: bool,
iteratee: impl FnMut(&mut Entities<Src>, &[Box<dyn AggrFunctionState>]) -> Result<()>
) -> Result<Vec<LazyBatchColumn>>
[src]
&mut self,
entities: &mut Entities<Src>,
src_is_drained: bool,
iteratee: impl FnMut(&mut Entities<Src>, &[Box<dyn AggrFunctionState>]) -> Result<()>
) -> Result<Vec<LazyBatchColumn>>
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]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T
[src]
impl<V, W> ConvertFrom<W> for V where
W: ConvertTo<V>,
[src]
W: ConvertTo<V>,
pub fn convert_from(ctx: &mut EvalContext, from: W) -> Result<V, Error>
[src]
impl<T> From<T> for T
[src]
impl<T> Instrument for T
[src]
pub fn instrument(self, span: Span) -> Instrumented<Self>
[src]
pub fn in_current_span(self) -> Instrumented<Self>
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> Pointable for T
[src]
pub const ALIGN: usize
[src]
type Init = T
The type for initializers.
pub unsafe fn init(init: <T as Pointable>::Init) -> usize
[src]
pub unsafe fn deref<'a>(ptr: usize) -> &'a T
[src]
pub unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T
[src]
pub unsafe fn drop(ptr: usize)
[src]
impl<T> Same<T> for T
[src]
type Output = T
Should always be Self
impl<T> Sealed<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
[src]
V: MultiLane<T>,