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