Module datafusion_physical_expr::equivalence

source ·

Structs§

  • A structure representing a expression known to be constant in a physical execution plan.
  • An EquivalenceClass is a set of Arc<dyn PhysicalExpr>s that are known to have the same value for all tuples in a relation. These are generated by equality predicates (e.g. a = b), typically equi-join conditions and equality conditions in filters.
  • An EquivalenceGroup is a collection of EquivalenceClasses where each class represents a distinct equivalence class in a relation.
  • A EquivalenceProperties object stores useful information related to a schema. Currently, it keeps track of:
  • An OrderingEquivalenceClass object keeps track of different alternative orderings than can describe a schema. For example, consider the following table:
  • Stores the mapping between source expressions and target expressions for a projection.

Functions§

  • Adds the offset value to Column indices inside expr. This function is generally used during the update of the right table schema in join operations.
  • Calculates the union (in the sense of UnionExec) EquivalenceProperties of the given EquivalenceProperties in eqps according to the given output schema (which need not be the same with those of lhs and rhs as details such as nullability may be different).
  • This function constructs a duplicate-free LexOrderingReq by filtering out duplicate entries that have same physical expression inside. For example, vec![a Some(ASC), a Some(DESC)] collapses to vec![a Some(ASC)].
  • Calculate ordering equivalence properties for the given join operation.