diff --git a/datafusion/expr/src/utils.rs b/datafusion/expr/src/utils.rs index 069ce6df71bc6..d33919c013c88 100644 --- a/datafusion/expr/src/utils.rs +++ b/datafusion/expr/src/utils.rs @@ -730,10 +730,13 @@ pub fn from_plan( inputs: &[LogicalPlan], ) -> Result { match plan { - LogicalPlan::Projection(_) => Ok(LogicalPlan::Projection(Projection::try_new( - expr.to_vec(), - Arc::new(inputs[0].clone()), - )?)), + LogicalPlan::Projection(Projection { schema, .. }) => { + Ok(LogicalPlan::Projection(Projection::try_new_with_schema( + expr.to_vec(), + Arc::new(inputs[0].clone()), + schema.clone(), + )?)) + } LogicalPlan::Dml(DmlStatement { table_name, table_schema,