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

Formats the value using the given formatter. Read more

Transform a relation into a functionally equivalent relation.

A string describing the transform. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Performs the conversion.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

Performs the conversion.

Should always be Self

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.

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