From a5721c841522947782bb7d791f8088af1ec7c397 Mon Sep 17 00:00:00 2001 From: jackwener Date: Tue, 15 Nov 2022 11:43:23 +0800 Subject: [PATCH] Remove alias in Union --- datafusion/expr/src/logical_plan/builder.rs | 1 - datafusion/expr/src/logical_plan/plan.rs | 2 -- datafusion/expr/src/utils.rs | 11 ++++------- datafusion/optimizer/src/filter_push_down.rs | 6 +----- datafusion/optimizer/src/limit_push_down.rs | 7 +------ datafusion/optimizer/src/projection_push_down.rs | 7 +------ 6 files changed, 7 insertions(+), 27 deletions(-) diff --git a/datafusion/expr/src/logical_plan/builder.rs b/datafusion/expr/src/logical_plan/builder.rs index 0782302d736e..166b6c1d2d15 100644 --- a/datafusion/expr/src/logical_plan/builder.rs +++ b/datafusion/expr/src/logical_plan/builder.rs @@ -958,7 +958,6 @@ pub fn union_with_alias( Ok(LogicalPlan::Union(Union { inputs, schema: union_schema, - alias, })) } diff --git a/datafusion/expr/src/logical_plan/plan.rs b/datafusion/expr/src/logical_plan/plan.rs index 6ad643fd1ae3..1a50573fa3d1 100644 --- a/datafusion/expr/src/logical_plan/plan.rs +++ b/datafusion/expr/src/logical_plan/plan.rs @@ -1285,8 +1285,6 @@ pub struct Union { pub inputs: Vec>, /// Union schema. Should be the same for all inputs. pub schema: DFSchemaRef, - /// Union output relation alias - pub alias: Option, } /// Creates an in memory table. diff --git a/datafusion/expr/src/utils.rs b/datafusion/expr/src/utils.rs index 2be9a6465df6..a026fdbf0226 100644 --- a/datafusion/expr/src/utils.rs +++ b/datafusion/expr/src/utils.rs @@ -546,13 +546,10 @@ pub fn from_plan( LogicalPlan::Extension(e) => Ok(LogicalPlan::Extension(Extension { node: e.node.from_template(expr, inputs), })), - LogicalPlan::Union(Union { schema, alias, .. }) => { - Ok(LogicalPlan::Union(Union { - inputs: inputs.iter().cloned().map(Arc::new).collect(), - schema: schema.clone(), - alias: alias.clone(), - })) - } + LogicalPlan::Union(Union { schema, .. }) => Ok(LogicalPlan::Union(Union { + inputs: inputs.iter().cloned().map(Arc::new).collect(), + schema: schema.clone(), + })), LogicalPlan::Distinct(Distinct { .. }) => Ok(LogicalPlan::Distinct(Distinct { input: Arc::new(inputs[0].clone()), })), diff --git a/datafusion/optimizer/src/filter_push_down.rs b/datafusion/optimizer/src/filter_push_down.rs index 71de72732f6a..eed833cf2aaf 100644 --- a/datafusion/optimizer/src/filter_push_down.rs +++ b/datafusion/optimizer/src/filter_push_down.rs @@ -607,11 +607,7 @@ fn optimize(plan: &LogicalPlan, mut state: State) -> Result { // sort is filter-commutable push_down(&state, plan) } - LogicalPlan::Union(Union { - inputs: _, - schema, - alias: _, - }) => { + LogicalPlan::Union(Union { inputs: _, schema }) => { // union changing all qualifiers while building logical plan so we need // to rewrite filters to push unqualified columns to inputs let projection = schema diff --git a/datafusion/optimizer/src/limit_push_down.rs b/datafusion/optimizer/src/limit_push_down.rs index cf58fe35b55b..2f121b881432 100644 --- a/datafusion/optimizer/src/limit_push_down.rs +++ b/datafusion/optimizer/src/limit_push_down.rs @@ -172,11 +172,7 @@ fn limit_push_down( )?)) } ( - LogicalPlan::Union(Union { - inputs, - alias, - schema, - }), + LogicalPlan::Union(Union { inputs, schema }), Ancestor::FromLimit { skip: ancestor_skip, fetch: Some(ancestor_fetch), @@ -205,7 +201,6 @@ fn limit_push_down( .collect::>()?; Ok(LogicalPlan::Union(Union { inputs: new_inputs, - alias: alias.clone(), schema: schema.clone(), })) } diff --git a/datafusion/optimizer/src/projection_push_down.rs b/datafusion/optimizer/src/projection_push_down.rs index fcb2296d49de..5244bbcdbd79 100644 --- a/datafusion/optimizer/src/projection_push_down.rs +++ b/datafusion/optimizer/src/projection_push_down.rs @@ -392,11 +392,7 @@ fn optimize_plan( schema: a.schema.clone(), })) } - LogicalPlan::Union(Union { - inputs, - schema, - alias, - }) => { + LogicalPlan::Union(Union { inputs, schema }) => { // UNION inputs will reference the same column with different identifiers, so we need // to populate new_required_columns by unqualified column name based on required fields // from the resulting UNION output @@ -438,7 +434,6 @@ fn optimize_plan( Ok(LogicalPlan::Union(Union { inputs: new_inputs.iter().cloned().map(Arc::new).collect(), schema: Arc::new(new_schema), - alias: alias.clone(), })) } LogicalPlan::SubqueryAlias(SubqueryAlias { input, alias, .. }) => {