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 all predicates
ANDed.
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 and deduplicate two sets Column slices
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 a LogicalPlan::Explain
.
converts “A AND B AND C” => [A, B, C]
Change the relation on a slice of Columns
Recursively scans a slice of expressions for any Or
operators