mz_expr::canonicalize

Function canonicalize_predicates

Source
pub fn canonicalize_predicates(
    predicates: &mut Vec<MirScalarExpr>,
    column_types: &[ColumnType],
)
Expand description

Canonicalize predicates of a filter.

This function reduces and canonicalizes the structure of each individual predicate. Then, it transforms predicates of the form “A and B” into two: “A” and “B”. Afterwards, it reduces predicates based on information from other predicates in the set. Finally, it sorts and deduplicates the predicates.

Additionally, it also removes IS NOT NULL predicates if there is another null rejecting predicate for the same sub-expression.