Module equivalences

Source
Expand description

An analysis that reports all known-equivalent expressions for each relation.

Expressions are equivalent at a relation if they are certain to evaluate to the same Datum for all records in the relation.

Equivalences are recorded in an EquivalenceClasses, which lists all known equivalences classes, each a list of equivalent expressions.

Structs§

EQLattice 🔒
EquivalenceClasses
A compact representation of classes of expressions that must be equivalent.
EquivalenceClassesWithholdingErrors
A wrapper struct for equivalence classes that witholds errors from the underlying equivalence classes, reintroducing them when extracting equivalences.
Equivalences
Pulls up and pushes down predicate information represented as equivalences
HumanizedEquivalenceClasses
Wrapper struct for human-readable printing of expressions inside EquivalenceClasses. (Similar to HumanizedExpr. Unfortunately, we can’t just use HumanizedExpr here, because we’d need to impl Display for HumanizedExpr<'a, EquivalenceClasses, M>, but neither Display nor HumanizedExpr is defined in this crate.)

Enums§

EqClassesImpl
An enum that can represent either a standard EquivalenceClasses or a EquivalenceClassesWithholdingErrors.

Traits§

ExpressionReducer
A type capable of simplifying MirScalarExprs.

Functions§

aggregate_is_input 🔒
True iff the aggregate function returns an input datum.