Module datafusion_optimizer::utils
source · Expand description
Collection of utility functions that are leveraged by the query optimizer rules
Functions
- returns a new LogicalPlan that wraps
plan
in a LogicalPlan::Filter with its predicate be allpredicates
ANDed. - Combines an array of filter expressions into a single filter expression consisting of the input filter expressions joined with logical AND.
- Combines an array of filter expressions into a single filter expression consisting of the input filter expressions joined with logical OR.
- Extracts correlating columns from expressions
- Looks for correlating expressions: equality expressions with one field from the subquery, and one not in the subquery (closed upon from outer scope)
- merge inputs schema into a single schema.
- Returns the first (and only) element in a slice, or an error
- Convenience rule for writing optimizers: recursively invoke optimize on plan’s children and then return a node of the same type. Useful for optimizer rules which want to leave the type of plan unchanged but still apply to the children. This also handles the case when the
plan
is aLogicalPlan::Explain
. - Rewrites
expr
usingrewriter
, ensuring that the output has the same name asexpr
prior to rewrite, adding an alias if necessary. - Recursively un-alias an expressions
- Recursively scans a slice of expressions for any
Or
operators