Struct mz_transform::monotonic::MonotonicFlag
source · pub struct MonotonicFlag {
recursion_guard: RecursionGuard,
}
Expand description
A struct that holds a recursive function that determines if a relation is monotonic, and applies any optimizations along the way.
Fields§
§recursion_guard: RecursionGuard
Implementations§
source§impl MonotonicFlag
impl MonotonicFlag
sourcepub fn apply(
&self,
expr: &mut MirRelationExpr,
mon_ids: &BTreeSet<GlobalId>,
locals: &mut BTreeSet<LocalId>
) -> Result<bool, RecursionLimitError>
pub fn apply( &self, expr: &mut MirRelationExpr, mon_ids: &BTreeSet<GlobalId>, locals: &mut BTreeSet<LocalId> ) -> Result<bool, RecursionLimitError>
Determines if a relation is monotonic, and applies any optimizations along the way. mon_ids should be the ids of monotonic sources and indexes involved in expr.
Trait Implementations§
source§impl CheckedRecursion for MonotonicFlag
impl CheckedRecursion for MonotonicFlag
source§fn recursion_guard(&self) -> &RecursionGuard
fn recursion_guard(&self) -> &RecursionGuard
Extracts a reference to the recursion guard embedded within the type.
source§fn checked_recur<F, T, E>(&self, f: F) -> Result<T, E>where
F: FnOnce(&Self) -> Result<T, E>,
E: From<RecursionLimitError>,
fn checked_recur<F, T, E>(&self, f: F) -> Result<T, E>where F: FnOnce(&Self) -> Result<T, E>, E: From<RecursionLimitError>,
Checks whether it is safe to recur and calls
f
if so. Read moresource§fn checked_recur_mut<F, T, E>(&mut self, f: F) -> Result<T, E>where
F: FnOnce(&mut Self) -> Result<T, E>,
E: From<RecursionLimitError>,
fn checked_recur_mut<F, T, E>(&mut self, f: F) -> Result<T, E>where F: FnOnce(&mut Self) -> Result<T, E>, E: From<RecursionLimitError>,
Like
CheckedRecursion::checked_recur
, but operates on a mutable
reference to Self
.source§impl Debug for MonotonicFlag
impl Debug for MonotonicFlag
source§impl Default for MonotonicFlag
impl Default for MonotonicFlag
source§fn default() -> MonotonicFlag
fn default() -> MonotonicFlag
Returns the “default value” for a type. Read more
Auto Trait Implementations§
impl !RefUnwindSafe for MonotonicFlag
impl Send for MonotonicFlag
impl !Sync for MonotonicFlag
impl Unpin for MonotonicFlag
impl UnwindSafe for MonotonicFlag
Blanket Implementations§
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
.