Enum mz_compute_client::plan::reduce::ReductionType
source · pub enum ReductionType {
Accumulable,
Hierarchical,
Basic,
}
Expand description
This enum represents the three potential types of aggregations.
Variants§
Accumulable
Accumulable functions can be subtracted from (are invertible), and associative. We can compute these results by moving some data to the diff field under arbitrary changes to inputs. Examples include sum or count.
Hierarchical
Hierarchical functions are associative, which means we can split up the work of computing them across subsets. Note that hierarchical reductions should also reduce the data in some way, as otherwise rendering them hierarchically is not worth it. Examples include min or max.
Basic
Basic, for lack of a better word, are functions that are neither accumulable nor hierarchical. Examples include jsonb_agg.
Trait Implementations§
source§impl Clone for ReductionType
impl Clone for ReductionType
source§fn clone(&self) -> ReductionType
fn clone(&self) -> ReductionType
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 Columnation for ReductionType
impl Columnation for ReductionType
§type InnerRegion = CloneRegion<ReductionType>
type InnerRegion = CloneRegion<ReductionType>
The type of region capable of absorbing allocations owned by
the
Self
type. Note: not allocations of Self
, but of the
things that it owns.source§impl Debug for ReductionType
impl Debug for ReductionType
source§impl<'de> Deserialize<'de> for ReductionType
impl<'de> Deserialize<'de> for ReductionType
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 Hash for ReductionType
impl Hash for ReductionType
source§impl Ord for ReductionType
impl Ord for ReductionType
source§fn cmp(&self, other: &ReductionType) -> Ordering
fn cmp(&self, other: &ReductionType) -> 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<ReductionType> for ReductionType
impl PartialEq<ReductionType> for ReductionType
source§fn eq(&self, other: &ReductionType) -> bool
fn eq(&self, other: &ReductionType) -> bool
This method tests for
self
and other
values to be equal, and is used
by ==
.source§impl PartialOrd<ReductionType> for ReductionType
impl PartialOrd<ReductionType> for ReductionType
source§fn partial_cmp(&self, other: &ReductionType) -> Option<Ordering>
fn partial_cmp(&self, other: &ReductionType) -> 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 RustType<ProtoReductionType> for ReductionType
impl RustType<ProtoReductionType> for ReductionType
source§fn into_proto(&self) -> ProtoReductionType
fn into_proto(&self) -> ProtoReductionType
Convert a
Self
into a Proto
value.source§fn from_proto(proto: ProtoReductionType) -> Result<Self, TryFromProtoError>
fn from_proto(proto: ProtoReductionType) -> Result<Self, TryFromProtoError>
source§impl Serialize for ReductionType
impl Serialize for ReductionType
source§impl TryFrom<&ReducePlan> for ReductionType
impl TryFrom<&ReducePlan> for ReductionType
impl Copy for ReductionType
impl Eq for ReductionType
impl StructuralEq for ReductionType
impl StructuralPartialEq for ReductionType
Auto Trait Implementations§
impl RefUnwindSafe for ReductionType
impl Send for ReductionType
impl Sync for ReductionType
impl Unpin for ReductionType
impl UnwindSafe for ReductionType
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<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<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
.