Module mz_expr::relation::canonicalize

source ยท
Expand description

Utility functions to transform parts of a single MirRelationExpr into canonical form.

Functionsยง

  • Canonicalize only the equivalence classes of a join.
  • Canonicalize equivalence classes of a join and expressions contained in them.
  • Canonicalize predicates of a filter.
  • compare_predicates ๐Ÿ”’
    Comparison method for sorting predicates by their complexity, measured by the total number of non-literal expression nodes within the expression.
  • flat_map_modify ๐Ÿ”’
    Applies a flat_map on a Vec, and overwrites the vec with the result.
  • For each equivalence class, it finds the simplest expression, which will be the canonical one. Returns a Map that maps from each expression in each equivalence class to the canonical expression in the same equivalence class.
  • is_not_null ๐Ÿ”’
    Returns the inner operand if the given predicate is an IS NOT NULL expression.
  • Whether the given predicate evaluates to NULL when the given operand expression is NULL.
  • rank_complexity ๐Ÿ”’
    Gives a relative complexity ranking for an expression. Higher numbers mean greater complexity.
  • Replace any matching subexpressions in predicate, and if predicate has changed, reduce it. Return whether predicate has changed.