Enum mz_compute::render::reduce::AccumInner
source · enum AccumInner {
Bool {
trues: Diff,
falses: Diff,
},
SimpleNumber {
accum: i128,
non_nulls: Diff,
},
Float {
accum: i128,
pos_infs: Diff,
neg_infs: Diff,
nans: Diff,
non_nulls: Diff,
},
Numeric {
accum: OrderedDecimal<NumericAgg>,
pos_infs: Diff,
neg_infs: Diff,
nans: Diff,
non_nulls: Diff,
},
}
Expand description
Accumulates values for the various types of accumulable aggregations.
We assume that there are not more than 2^32 elements for the aggregation. Thus we can perform a summation over i32 in an i64 accumulator and not worry about exceeding its bounds.
The float accumulator performs accumulation in fixed point arithmetic. The fixed point representation has less precision than a double. It is entirely possible that the values of the accumulator overflow, thus we have to use wrapping arithmetic to preserve group guarantees.
Variants§
Bool
Fields
Accumulates boolean values.
SimpleNumber
Fields
Accumulates simple numeric values.
Float
Fields
Accumulates float values.
Numeric
Fields
§
accum: OrderedDecimal<NumericAgg>
Accumulates non-special values
Accumulates arbitrary precision decimals.
Trait Implementations§
source§impl Clone for AccumInner
impl Clone for AccumInner
source§fn clone(&self) -> AccumInner
fn clone(&self) -> AccumInner
Returns a copy of the value. Read more
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moresource§impl Debug for AccumInner
impl Debug for AccumInner
source§impl<'de> Deserialize<'de> for AccumInner
impl<'de> Deserialize<'de> for AccumInner
source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
source§impl Multiply<i64> for AccumInner
impl Multiply<i64> for AccumInner
§type Output = AccumInner
type Output = AccumInner
Output type per the
Mul
trait.source§fn multiply(self, factor: &Diff) -> AccumInner
fn multiply(self, factor: &Diff) -> AccumInner
Core method per the
Mul
trait.source§impl Ord for AccumInner
impl Ord for AccumInner
source§fn cmp(&self, other: &AccumInner) -> Ordering
fn cmp(&self, other: &AccumInner) -> Ordering
1.21.0 · source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
Compares and returns the maximum of two values. Read more
source§impl PartialEq<AccumInner> for AccumInner
impl PartialEq<AccumInner> for AccumInner
source§fn eq(&self, other: &AccumInner) -> bool
fn eq(&self, other: &AccumInner) -> bool
This method tests for
self
and other
values to be equal, and is used
by ==
.source§impl PartialOrd<AccumInner> for AccumInner
impl PartialOrd<AccumInner> for AccumInner
source§fn partial_cmp(&self, other: &AccumInner) -> Option<Ordering>
fn partial_cmp(&self, other: &AccumInner) -> Option<Ordering>
1.0.0 · source§fn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
This method tests less than or equal to (for
self
and other
) and is used by the <=
operator. Read moresource§impl Semigroup for AccumInner
impl Semigroup for AccumInner
source§fn plus_equals(&mut self, other: &AccumInner)
fn plus_equals(&mut self, other: &AccumInner)
The method of
std::ops::AddAssign
, for types that do not implement AddAssign
.source§impl Serialize for AccumInner
impl Serialize for AccumInner
impl Eq for AccumInner
impl StructuralEq for AccumInner
impl StructuralPartialEq for AccumInner
Auto Trait Implementations§
impl RefUnwindSafe for AccumInner
impl Send for AccumInner
impl Sync for AccumInner
impl Unpin for AccumInner
impl UnwindSafe for AccumInner
Blanket Implementations§
source§impl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
impl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key
and return true
if they are equal.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> 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
.