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