Struct mz_transform::redundant_join::RedundantJoin
source · [−]pub struct RedundantJoin { /* private fields */ }
Expand description
Remove redundant collections of distinct elements from joins.
Implementations
sourceimpl RedundantJoin
impl RedundantJoin
sourcepub fn action(
&self,
relation: &mut MirRelationExpr,
lets: &mut HashMap<Id, Vec<ProvInfo>>
) -> Result<Vec<ProvInfo>, TransformError>
pub fn action(
&self,
relation: &mut MirRelationExpr,
lets: &mut HashMap<Id, Vec<ProvInfo>>
) -> Result<Vec<ProvInfo>, TransformError>
Remove redundant collections of distinct elements from joins.
This method tracks “provenance” information for each collections, those being column-wise relationships to identified collections (either imported collections, or let-bound collections). These relationships state that when projected on to these columns, the records of the one collection are contained in the records of the identified collection.
This provenance information is then used for the MirRelationExpr::Join
variant to remove “redundant” joins, those that can be determined to
neither restrict nor augment one of the input relations. Consult the
find_redundancy
method and its documentation for more detail.
Trait Implementations
sourceimpl CheckedRecursion for RedundantJoin
impl CheckedRecursion for RedundantJoin
sourcefn recursion_guard(&self) -> &RecursionGuard
fn recursion_guard(&self) -> &RecursionGuard
Extracts a reference to the recursion guard embedded within the type.
sourcefn 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 more
sourcefn 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
. Read more
sourceimpl Debug for RedundantJoin
impl Debug for RedundantJoin
sourceimpl Default for RedundantJoin
impl Default for RedundantJoin
sourcefn default() -> RedundantJoin
fn default() -> RedundantJoin
Returns the “default value” for a type. Read more
sourceimpl Transform for RedundantJoin
impl Transform for RedundantJoin
sourcefn transform(
&self,
relation: &mut MirRelationExpr,
_: TransformArgs<'_>
) -> Result<(), TransformError>
fn transform(
&self,
relation: &mut MirRelationExpr,
_: TransformArgs<'_>
) -> Result<(), TransformError>
Transform a relation into a functionally equivalent relation.
Auto Trait Implementations
impl !RefUnwindSafe for RedundantJoin
impl Send for RedundantJoin
impl !Sync for RedundantJoin
impl Unpin for RedundantJoin
impl UnwindSafe for RedundantJoin
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> FutureExt for T
impl<T> FutureExt for T
sourcefn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
sourcefn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
sourceimpl<T> Instrument for T
impl<T> Instrument for T
sourcefn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
sourcefn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
sourceimpl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
sourcefn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message T
in a tonic::Request
sourceimpl<T> Pointable for T
impl<T> Pointable for T
sourceimpl<P, R> ProtoType<R> for P where
R: RustType<P>,
impl<P, R> ProtoType<R> for P where
R: RustType<P>,
sourcefn into_rust(self) -> Result<R, TryFromProtoError>
fn into_rust(self) -> Result<R, TryFromProtoError>
See RustType::from_proto
.
sourcefn from_rust(rust: &R) -> P
fn from_rust(rust: &R) -> P
See RustType::into_proto
.
sourceimpl<T> WithSubscriber for T
impl<T> WithSubscriber for T
sourcefn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
Attaches the provided Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
sourcefn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more