Struct mz_expr::NaiveOneByOneAggr
source · pub struct NaiveOneByOneAggr {
agg: AggregateFunc,
input: Vec<Row>,
reverse: bool,
}
Expand description
Naive implementation of OneByOneAggr, suitable for stuff like const folding, but too slow for
rendering. This relies only on infrastructure available in mz-expr
. It simply saves all the
given input, and calls the given AggregateFunc’s eval
method when asked about the current
aggregate. (For Accumulable and Hierarchical aggregations, the rendering has more efficient
implementations, but for Basic aggregations even the rendering uses this naive implementation.)
Fields§
§agg: AggregateFunc
§input: Vec<Row>
§reverse: bool
Trait Implementations§
source§impl Debug for NaiveOneByOneAggr
impl Debug for NaiveOneByOneAggr
source§impl OneByOneAggr for NaiveOneByOneAggr
impl OneByOneAggr for NaiveOneByOneAggr
source§fn new(agg: &AggregateFunc, reverse: bool) -> Self
fn new(agg: &AggregateFunc, reverse: bool) -> Self
The
reverse
parameter makes the aggregations process input elements in reverse order.
This has an effect only for non-commutative aggregations, e.g. list_agg
. These are
currently only some of the Basic aggregations. (Basic aggregations are handled by
NaiveOneByOneAggr
).source§fn get_current_aggregate<'a>(&self, temp_storage: &'a RowArena) -> Datum<'a>
fn get_current_aggregate<'a>(&self, temp_storage: &'a RowArena) -> Datum<'a>
Returns the value of the aggregate computed on the given values so far.
Auto Trait Implementations§
impl Freeze for NaiveOneByOneAggr
impl RefUnwindSafe for NaiveOneByOneAggr
impl Send for NaiveOneByOneAggr
impl Sync for NaiveOneByOneAggr
impl Unpin for NaiveOneByOneAggr
impl UnwindSafe for NaiveOneByOneAggr
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
source§impl<T> FutureExt for T
impl<T> FutureExt for T
source§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
source§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
source§impl<T> Instrument for T
impl<T> Instrument for T
source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
source§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T
in a tonic::Request
source§impl<T, U> OverrideFrom<Option<&T>> for Uwhere
U: OverrideFrom<T>,
impl<T, U> OverrideFrom<Option<&T>> for Uwhere
U: OverrideFrom<T>,
source§impl<T> Pointable for T
impl<T> Pointable for T
source§impl<P, R> ProtoType<R> for Pwhere
R: RustType<P>,
impl<P, R> ProtoType<R> for Pwhere
R: RustType<P>,
source§fn into_rust(self) -> Result<R, TryFromProtoError>
fn into_rust(self) -> Result<R, TryFromProtoError>
See
RustType::from_proto
.source§fn from_rust(rust: &R) -> P
fn from_rust(rust: &R) -> P
See
RustType::into_proto
.source§impl<'a, S, T> Semigroup<&'a S> for Twhere
T: Semigroup<S>,
impl<'a, S, T> Semigroup<&'a S> for Twhere
T: Semigroup<S>,
source§fn plus_equals(&mut self, rhs: &&'a S)
fn plus_equals(&mut self, rhs: &&'a S)
The method of
std::ops::AddAssign
, for types that do not implement AddAssign
.