Enum mz_expr::TraceSummary
source · pub enum TraceSummary {
Constant,
Dynamic,
Unknown,
}
Expand description
A summary type for the Trace interpreter.
The ordering of this type is meaningful: the “smaller” the summary, the more information we have
about the possible values of the expression. This means we can eg. use max
in the
interpreter below to find the summary for a function-call expression based on the summaries
of its arguments.
Variants§
Constant
The expression is constant: we can evaluate it without any runtime information.
This corresponds to a ResultSpec
of a single value.
Dynamic
The expression depends on runtime information, but in “predictable” way… ie. if we know
the range of possible values for all columns and unmaterializable functions, we can
predict the possible values of the output.
This corresponds to a ResultSpec
of a perhaps range of values.
Unknown
The expression depends on runtime information in an unpredictable way.
This corresponds to a ResultSpec::value_all()
or something similarly vague.
Implementations§
source§impl TraceSummary
impl TraceSummary
sourcepub fn pushdownable(self) -> bool
pub fn pushdownable(self) -> bool
We say that an expression is “pushdownable” if it’s either constant or dynamic.
Trait Implementations§
source§impl Clone for TraceSummary
impl Clone for TraceSummary
source§fn clone(&self) -> TraceSummary
fn clone(&self) -> TraceSummary
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Debug for TraceSummary
impl Debug for TraceSummary
source§impl Ord for TraceSummary
impl Ord for TraceSummary
source§fn cmp(&self, other: &TraceSummary) -> Ordering
fn cmp(&self, other: &TraceSummary) -> Ordering
1.21.0 · source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
source§impl PartialEq for TraceSummary
impl PartialEq for TraceSummary
source§fn eq(&self, other: &TraceSummary) -> bool
fn eq(&self, other: &TraceSummary) -> bool
self
and other
values to be equal, and is used
by ==
.source§impl PartialOrd for TraceSummary
impl PartialOrd for TraceSummary
source§fn partial_cmp(&self, other: &TraceSummary) -> Option<Ordering>
fn partial_cmp(&self, other: &TraceSummary) -> Option<Ordering>
1.0.0 · source§fn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
self
and other
) and is used by the <=
operator. Read moreimpl Copy for TraceSummary
impl Eq for TraceSummary
impl StructuralPartialEq for TraceSummary
Auto Trait Implementations§
impl Freeze for TraceSummary
impl RefUnwindSafe for TraceSummary
impl Send for TraceSummary
impl Sync for TraceSummary
impl Unpin for TraceSummary
impl UnwindSafe for TraceSummary
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
source§impl<Q, K> Comparable<K> for Q
impl<Q, K> Comparable<K> for Q
source§impl<R, O, T> CopyOnto<ConsecutiveOffsetPairs<R, O>> for T
impl<R, O, T> CopyOnto<ConsecutiveOffsetPairs<R, O>> for T
source§fn copy_onto(
self,
target: &mut ConsecutiveOffsetPairs<R, O>
) -> <ConsecutiveOffsetPairs<R, O> as Region>::Index
fn copy_onto( self, target: &mut ConsecutiveOffsetPairs<R, O> ) -> <ConsecutiveOffsetPairs<R, O> as Region>::Index
source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key
and return true
if they are equal.source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
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>
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<T> PreferredContainer for T
impl<T> PreferredContainer for T
source§impl<T> ProgressEventTimestamp for T
impl<T> ProgressEventTimestamp 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>
RustType::from_proto
.source§fn from_rust(rust: &R) -> P
fn from_rust(rust: &R) -> P
RustType::into_proto
.