Function datafusion_expr::utils::from_plan
source · pub fn from_plan(
plan: &LogicalPlan,
expr: &[Expr],
inputs: &[LogicalPlan],
) -> Result<LogicalPlan>
👎Deprecated since 31.0.0: use LogicalPlan::with_new_exprs instead
Expand description
Returns a new logical plan based on the original one with inputs and expressions replaced.
The exprs correspond to the same order of expressions returned by
LogicalPlan::expressions
. This function is used in optimizers in
the following way:
let new_inputs = optimize_children(..., plan, props);
// get the plans expressions to optimize
let exprs = plan.expressions();
// potentially rewrite plan expressions
let rewritten_exprs = rewrite_exprs(exprs);
// create new plan using rewritten_exprs in same position
let new_plan = from_plan(&plan, rewritten_exprs, new_inputs);
Notice: sometimes from_plan will use schema of original plan, it don’t change schema!
Such as Projection/Aggregate/Window