Module datafusion_expr::logical_plan::tree_node
source · Expand description
TreeNode
based visiting and rewriting for LogicalPlan
s
Visiting (read only) APIs
LogicalPlan::visit
: recursively visit the node and all of its inputsLogicalPlan::visit_with_subqueries
: recursively visit the node and all of its inputs, including subqueriesLogicalPlan::apply_children
: recursively visit all inputs of this nodeLogicalPlan::apply_expressions
: (non recursively) visit all expressions of this nodeLogicalPlan::apply_subqueries
: (non recursively) visit all subqueries of this nodeLogicalPlan::apply_with_subqueries
: recursively visit all inputs and embedded subqueries.
Rewriting (update) APIs:
LogicalPlan::exists
: search for an expression in a planLogicalPlan::rewrite
: recursively rewrite the node and all of its inputsLogicalPlan::map_children
: recursively rewrite all inputs of this nodeLogicalPlan::map_expressions
: (non recursively) visit all expressions of this nodeLogicalPlan::map_subqueries
: (non recursively) rewrite all subqueries of this nodeLogicalPlan::rewrite_with_subqueries
: recursively rewrite the node and all of its inputs, including subqueries
(Re)creation APIs (these require substantial cloning and thus are slow):
LogicalPlan::with_new_exprs
: Create a new plan with different expressionsLogicalPlan::expressions
: Return a copy of the plan’s expressions
Functions§
- Converts a
Arc<LogicalPlan>
without copying, if possible. Copies the plan if there is a shared reference