Struct transform::union_cancel::UnionBranchCancellation [−][src]
pub struct UnionBranchCancellation;
Expand description
Detects an input being unioned with its negation and cancels them out
Implementations
Detects an input being unioned with its negation and cancels them out
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.
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
fn 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
Mutably borrows from an owned value. Read more
Attaches the provided Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more