Module datafusion::optimizer::utils[][src]

Collection of utility functions that are leveraged by the query optimizer rules

Functions

expr_sub_expressions

Returns all direct children Expressions of expr. E.g. if the expression is “(a + 1) + 1”, it returns [“a + 1”, “1”] (as Expr objects)

expr_to_column_names

Recursively walk an expression tree, collecting the unique set of column names referenced in the expression

exprlist_to_column_names

Recursively walk a list of expression trees, collecting the unique set of column names referenced in the expression

from_plan

Returns a new logical plan based on the original one with inputs and expressions replaced

optimize_children

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.

optimize_explain

Create a LogicalPlan::Explain node by running optimizer on the input plan and capturing the resulting plan string

rewrite_expression

returns a new expression where the expressions in expr are replaced by the ones in expressions. This is used in conjunction with expr_expressions to re-write expressions.