Struct mz_transform::union_cancel::UnionBranchCancellation
source · [−]pub struct UnionBranchCancellation;
Expand description
Detects an input being unioned with its negation and cancels them out
Implementations
sourceimpl UnionBranchCancellation
impl UnionBranchCancellation
sourcepub fn action(
&self,
relation: &mut MirRelationExpr
) -> Result<(), TransformError>
pub fn action(
&self,
relation: &mut MirRelationExpr
) -> Result<(), TransformError>
Detects an input being unioned with its negation and cancels them out
sourcefn branch_sign(branch: &MirRelationExpr) -> bool
fn branch_sign(branch: &MirRelationExpr) -> bool
Returns the sign of a given union branch. The sign is true
if the branch contains
an odd number of Negate operators within a chain of Map, Filter and Project
operators, and false
otherwise.
This sign is pre-computed for all union branches in order to avoid performing expensive comparisons of branches with the same sign since they can’t possibly cancel each other.
sourcefn compare_branches(
relation: &MirRelationExpr,
other: &MirRelationExpr
) -> BranchCmp
fn compare_branches(
relation: &MirRelationExpr,
other: &MirRelationExpr
) -> BranchCmp
Compares two branches to check whether they produce the same results but with negated row count values, ie. one of them contains an extra Negate operator. Negate operators may appear interleaved with Map, Filter and Project operators, but these operators must appear in the same order in both branches.
Trait Implementations
sourceimpl Debug for UnionBranchCancellation
impl Debug for UnionBranchCancellation
sourceimpl Transform for UnionBranchCancellation
impl Transform for UnionBranchCancellation
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 UnionBranchCancellation
impl Send for UnionBranchCancellation
impl Sync for UnionBranchCancellation
impl Unpin for UnionBranchCancellation
impl UnwindSafe for UnionBranchCancellation
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