blob: 147cfebd1584523a4443fc168438e0f378595a88 [file] [log] [blame]
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
[default optimized_logical_plan physical_plan]
SELECT int_col+1, 1+int_col
FROM test;
--
[Optimized Logical Plan]
TopLevelPlan
+-plan=Project
| +-input=TableReference[relation_name=Test,relation_alias=test]
| | +-AttributeReference[id=0,name=int_col,relation=test,type=Int NULL]
| | +-AttributeReference[id=1,name=long_col,relation=test,type=Long]
| | +-AttributeReference[id=2,name=float_col,relation=test,type=Float]
| | +-AttributeReference[id=3,name=double_col,relation=test,type=Double NULL]
| | +-AttributeReference[id=4,name=char_col,relation=test,type=Char(20)]
| | +-AttributeReference[id=5,name=vchar_col,relation=test,type=VarChar(20) NULL]
| +-project_list=
| +-Alias[id=6,name=,alias=(int_col+1),relation=,type=Int NULL]
| | +-Add
| | +-AttributeReference[id=0,name=int_col,relation=test,type=Int NULL]
| | +-Literal[value=1,type=Int]
| +-Alias[id=7,name=,alias=(1+int_col),relation=,type=Int NULL]
| +-Add
| +-Literal[value=1,type=Int]
| +-AttributeReference[id=0,name=int_col,relation=test,type=Int NULL]
+-output_attributes=
+-AttributeReference[id=6,name=,alias=(int_col+1),relation=,type=Int NULL]
+-AttributeReference[id=7,name=,alias=(1+int_col),relation=,type=Int NULL]
[Physical Plan]
TopLevelPlan
+-plan=Selection[has_repartition=false]
| +-input=TableReference[relation=Test,alias=test]
| | +-AttributeReference[id=0,name=int_col,relation=test,type=Int NULL]
| | +-AttributeReference[id=1,name=long_col,relation=test,type=Long]
| | +-AttributeReference[id=2,name=float_col,relation=test,type=Float]
| | +-AttributeReference[id=3,name=double_col,relation=test,type=Double NULL]
| | +-AttributeReference[id=4,name=char_col,relation=test,type=Char(20)]
| | +-AttributeReference[id=5,name=vchar_col,relation=test,type=VarChar(20) NULL]
| +-project_expressions=
| +-Alias[id=6,name=,alias=(int_col+1),relation=,type=Int NULL]
| | +-CommonSubexpression[common_subexpression_id=8]
| | +-Operand=Add
| | +-AttributeReference[id=0,name=int_col,relation=test,type=Int NULL]
| | +-Literal[value=1,type=Int]
| +-Alias[id=7,name=,alias=(1+int_col),relation=,type=Int NULL]
| +-CommonSubexpression[common_subexpression_id=8]
| +-Operand=Add
| +-AttributeReference[id=0,name=int_col,relation=test,type=Int NULL]
| +-Literal[value=1,type=Int]
+-output_attributes=
+-AttributeReference[id=6,name=,alias=(int_col+1),relation=,type=Int NULL]
+-AttributeReference[id=7,name=,alias=(1+int_col),relation=,type=Int NULL]
==
# Aggregate
SELECT SUM(int_col+float_col), MIN((float_col+int_col)*2)
FROM test;
--
[Optimized Logical Plan]
TopLevelPlan
+-plan=Project
| +-input=Aggregate
| | +-input=TableReference[relation_name=Test,relation_alias=test]
| | | +-AttributeReference[id=0,name=int_col,relation=test,type=Int NULL]
| | | +-AttributeReference[id=1,name=long_col,relation=test,type=Long]
| | | +-AttributeReference[id=2,name=float_col,relation=test,type=Float]
| | | +-AttributeReference[id=3,name=double_col,relation=test,type=Double NULL]
| | | +-AttributeReference[id=4,name=char_col,relation=test,type=Char(20)]
| | | +-AttributeReference[id=5,name=vchar_col,relation=test,
| | | type=VarChar(20) NULL]
| | +-grouping_expressions=
| | | +-[]
| | +-aggregate_expressions=
| | +-Alias[id=6,name=,alias=$aggregate0,relation=$aggregate,type=Double NULL]
| | | +-AggregateFunction[function=SUM]
| | | +-Add
| | | +-AttributeReference[id=0,name=int_col,relation=test,type=Int NULL]
| | | +-AttributeReference[id=2,name=float_col,relation=test,type=Float]
| | +-Alias[id=7,name=,alias=$aggregate1,relation=$aggregate,type=Float NULL]
| | +-AggregateFunction[function=MIN]
| | +-Multiply
| | +-Add
| | | +-AttributeReference[id=2,name=float_col,relation=test,type=Float]
| | | +-AttributeReference[id=0,name=int_col,relation=test,type=Int NULL]
| | +-Literal[value=2,type=Int]
| +-project_list=
| +-Alias[id=6,name=,alias=SUM((int_col+float_col)),relation=,type=Double NULL]
| | +-AttributeReference[id=6,name=,alias=$aggregate0,relation=$aggregate,
| | type=Double NULL]
| +-Alias[id=7,name=,alias=MIN(((float_col+int_col)*2)),relation=,
| type=Float NULL]
| +-AttributeReference[id=7,name=,alias=$aggregate1,relation=$aggregate,
| type=Float NULL]
+-output_attributes=
+-AttributeReference[id=6,name=,alias=SUM((int_col+float_col)),relation=,
| type=Double NULL]
+-AttributeReference[id=7,name=,alias=MIN(((float_col+int_col)*2)),relation=,
type=Float NULL]
[Physical Plan]
TopLevelPlan
+-plan=Selection[has_repartition=false]
| +-input=Aggregate[has_repartition=false]
| | +-input=TableReference[relation=Test,alias=test]
| | | +-AttributeReference[id=0,name=int_col,relation=test,type=Int NULL]
| | | +-AttributeReference[id=1,name=long_col,relation=test,type=Long]
| | | +-AttributeReference[id=2,name=float_col,relation=test,type=Float]
| | | +-AttributeReference[id=3,name=double_col,relation=test,type=Double NULL]
| | | +-AttributeReference[id=4,name=char_col,relation=test,type=Char(20)]
| | | +-AttributeReference[id=5,name=vchar_col,relation=test,
| | | type=VarChar(20) NULL]
| | +-grouping_expressions=
| | | +-[]
| | +-aggregate_expressions=
| | +-Alias[id=6,name=,alias=$aggregate0,relation=$aggregate,type=Double NULL]
| | | +-AggregateFunction[function=SUM]
| | | +-CommonSubexpression[common_subexpression_id=8]
| | | +-Operand=Add
| | | +-AttributeReference[id=0,name=int_col,relation=test,type=Int NULL]
| | | +-AttributeReference[id=2,name=float_col,relation=test,type=Float]
| | +-Alias[id=7,name=,alias=$aggregate1,relation=$aggregate,type=Float NULL]
| | +-AggregateFunction[function=MIN]
| | +-Multiply
| | +-CommonSubexpression[common_subexpression_id=8]
| | | +-Operand=Add
| | | +-AttributeReference[id=0,name=int_col,relation=test,
| | | | type=Int NULL]
| | | +-AttributeReference[id=2,name=float_col,relation=test,
| | | type=Float]
| | +-Literal[value=2,type=Int]
| +-project_expressions=
| +-Alias[id=6,name=,alias=SUM((int_col+float_col)),relation=,type=Double NULL]
| | +-AttributeReference[id=6,name=,alias=$aggregate0,relation=$aggregate,
| | type=Double NULL]
| +-Alias[id=7,name=,alias=MIN(((float_col+int_col)*2)),relation=,
| type=Float NULL]
| +-AttributeReference[id=7,name=,alias=$aggregate1,relation=$aggregate,
| type=Float NULL]
+-output_attributes=
+-AttributeReference[id=6,name=,alias=SUM((int_col+float_col)),relation=,
| type=Double NULL]
+-AttributeReference[id=7,name=,alias=MIN(((float_col+int_col)*2)),relation=,
type=Float NULL]
==
# HashJoin
SELECT int_col + j, (int_col + j) * float_col
FROM test, (SELECT i, i * i AS j FROM generate_series(1, 10) AS g(i)) t
WHERE int_col = i AND (int_col + i) < float_col;
--
[Optimized Logical Plan]
TopLevelPlan
+-plan=Project
| +-input=Filter
| | +-input=HashJoin
| | | +-left=TableReference[relation_name=Test,relation_alias=test]
| | | | +-AttributeReference[id=0,name=int_col,relation=test,type=Int NULL]
| | | | +-AttributeReference[id=1,name=long_col,relation=test,type=Long]
| | | | +-AttributeReference[id=2,name=float_col,relation=test,type=Float]
| | | | +-AttributeReference[id=3,name=double_col,relation=test,type=Double NULL]
| | | | +-AttributeReference[id=4,name=char_col,relation=test,type=Char(20)]
| | | | +-AttributeReference[id=5,name=vchar_col,relation=test,
| | | | type=VarChar(20) NULL]
| | | +-right=Project
| | | | +-input=TableGenerator[function_name=generate_series,table_alias=g]
| | | | | +-AttributeReference[id=6,name=generate_series,alias=g,
| | | | | relation=generate_series,type=Int]
| | | | +-project_list=
| | | | +-Alias[id=7,name=i,relation=,type=Int]
| | | | | +-AttributeReference[id=6,name=generate_series,alias=g,
| | | | | relation=generate_series,type=Int]
| | | | +-Alias[id=8,name=j,relation=t,type=Int]
| | | | +-Multiply
| | | | +-AttributeReference[id=6,name=generate_series,alias=g,
| | | | | relation=generate_series,type=Int]
| | | | +-AttributeReference[id=6,name=generate_series,alias=g,
| | | | relation=generate_series,type=Int]
| | | +-left_join_attributes=
| | | | +-AttributeReference[id=0,name=int_col,relation=test,type=Int NULL]
| | | +-right_join_attributes=
| | | +-AttributeReference[id=7,name=i,relation=,type=Int]
| | +-filter_predicate=Less
| | +-Add
| | | +-AttributeReference[id=0,name=int_col,relation=test,type=Int NULL]
| | | +-AttributeReference[id=7,name=i,relation=,type=Int]
| | +-AttributeReference[id=2,name=float_col,relation=test,type=Float]
| +-project_list=
| +-Alias[id=9,name=,alias=(int_col+j),relation=,type=Int NULL]
| | +-Add
| | +-AttributeReference[id=0,name=int_col,relation=test,type=Int NULL]
| | +-AttributeReference[id=8,name=j,relation=t,type=Int]
| +-Alias[id=10,name=,alias=((int_col+j)*float_col),relation=,type=Float NULL]
| +-Multiply
| +-Add
| | +-AttributeReference[id=0,name=int_col,relation=test,type=Int NULL]
| | +-AttributeReference[id=8,name=j,relation=t,type=Int]
| +-AttributeReference[id=2,name=float_col,relation=test,type=Float]
+-output_attributes=
+-AttributeReference[id=9,name=,alias=(int_col+j),relation=,type=Int NULL]
+-AttributeReference[id=10,name=,alias=((int_col+j)*float_col),relation=,
type=Float NULL]
[Physical Plan]
TopLevelPlan
+-plan=HashJoin[has_repartition=false]
| +-left=TableGenerator[function_name=generate_series,table_alias=g]
| | +-AttributeReference[id=6,name=generate_series,alias=g,
| | relation=generate_series,type=Int]
| +-right=TableReference[relation=Test,alias=test]
| | +-AttributeReference[id=0,name=int_col,relation=test,type=Int NULL]
| | +-AttributeReference[id=1,name=long_col,relation=test,type=Long]
| | +-AttributeReference[id=2,name=float_col,relation=test,type=Float]
| | +-AttributeReference[id=3,name=double_col,relation=test,type=Double NULL]
| | +-AttributeReference[id=4,name=char_col,relation=test,type=Char(20)]
| | +-AttributeReference[id=5,name=vchar_col,relation=test,type=VarChar(20) NULL]
| +-residual_predicate=Less
| | +-Add
| | | +-AttributeReference[id=0,name=int_col,relation=test,type=Int NULL]
| | | +-AttributeReference[id=6,name=generate_series,alias=g,
| | | relation=generate_series,type=Int]
| | +-AttributeReference[id=2,name=float_col,relation=test,type=Float]
| +-project_expressions=
| | +-Alias[id=9,name=,alias=(int_col+j),relation=,type=Int NULL]
| | | +-CommonSubexpression[common_subexpression_id=11]
| | | +-Operand=Add
| | | +-AttributeReference[id=0,name=int_col,relation=test,type=Int NULL]
| | | +-Multiply
| | | +-AttributeReference[id=6,name=generate_series,alias=g,
| | | | relation=generate_series,type=Int]
| | | +-AttributeReference[id=6,name=generate_series,alias=g,
| | | relation=generate_series,type=Int]
| | +-Alias[id=10,name=,alias=((int_col+j)*float_col),relation=,type=Float NULL]
| | +-Multiply
| | +-CommonSubexpression[common_subexpression_id=11]
| | | +-Operand=Add
| | | +-AttributeReference[id=0,name=int_col,relation=test,type=Int NULL]
| | | +-Multiply
| | | +-AttributeReference[id=6,name=generate_series,alias=g,
| | | | relation=generate_series,type=Int]
| | | +-AttributeReference[id=6,name=generate_series,alias=g,
| | | relation=generate_series,type=Int]
| | +-AttributeReference[id=2,name=float_col,relation=test,type=Float]
| +-left_join_attributes=
| | +-AttributeReference[id=6,name=generate_series,alias=g,
| | relation=generate_series,type=Int]
| +-right_join_attributes=
| +-AttributeReference[id=0,name=int_col,relation=test,type=Int NULL]
+-output_attributes=
+-AttributeReference[id=9,name=,alias=(int_col+j),relation=,type=Int NULL]
+-AttributeReference[id=10,name=,alias=((int_col+j)*float_col),relation=,
type=Float NULL]
==
# NestedLoopsJoin
SELECT int_col + j, (int_col + j) * float_col
FROM test, (SELECT i, i * i AS j FROM generate_series(1, 10) AS g(i)) t
WHERE (int_col + i) < float_col;
--
[Optimized Logical Plan]
TopLevelPlan
+-plan=Project
| +-input=NestedLoopsJoin
| | +-left=TableReference[relation_name=Test,relation_alias=test]
| | | +-AttributeReference[id=0,name=int_col,relation=test,type=Int NULL]
| | | +-AttributeReference[id=1,name=long_col,relation=test,type=Long]
| | | +-AttributeReference[id=2,name=float_col,relation=test,type=Float]
| | | +-AttributeReference[id=3,name=double_col,relation=test,type=Double NULL]
| | | +-AttributeReference[id=4,name=char_col,relation=test,type=Char(20)]
| | | +-AttributeReference[id=5,name=vchar_col,relation=test,
| | | type=VarChar(20) NULL]
| | +-right=Project
| | | +-input=TableGenerator[function_name=generate_series,table_alias=g]
| | | | +-AttributeReference[id=6,name=generate_series,alias=g,
| | | | relation=generate_series,type=Int]
| | | +-project_list=
| | | +-Alias[id=7,name=i,relation=,type=Int]
| | | | +-AttributeReference[id=6,name=generate_series,alias=g,
| | | | relation=generate_series,type=Int]
| | | +-Alias[id=8,name=j,relation=t,type=Int]
| | | +-Multiply
| | | +-AttributeReference[id=6,name=generate_series,alias=g,
| | | | relation=generate_series,type=Int]
| | | +-AttributeReference[id=6,name=generate_series,alias=g,
| | | relation=generate_series,type=Int]
| | +-join_predicate=Less
| | +-Add
| | | +-AttributeReference[id=0,name=int_col,relation=test,type=Int NULL]
| | | +-AttributeReference[id=7,name=i,relation=,type=Int]
| | +-AttributeReference[id=2,name=float_col,relation=test,type=Float]
| +-project_list=
| +-Alias[id=9,name=,alias=(int_col+j),relation=,type=Int NULL]
| | +-Add
| | +-AttributeReference[id=0,name=int_col,relation=test,type=Int NULL]
| | +-AttributeReference[id=8,name=j,relation=t,type=Int]
| +-Alias[id=10,name=,alias=((int_col+j)*float_col),relation=,type=Float NULL]
| +-Multiply
| +-Add
| | +-AttributeReference[id=0,name=int_col,relation=test,type=Int NULL]
| | +-AttributeReference[id=8,name=j,relation=t,type=Int]
| +-AttributeReference[id=2,name=float_col,relation=test,type=Float]
+-output_attributes=
+-AttributeReference[id=9,name=,alias=(int_col+j),relation=,type=Int NULL]
+-AttributeReference[id=10,name=,alias=((int_col+j)*float_col),relation=,
type=Float NULL]
[Physical Plan]
TopLevelPlan
+-plan=NestedLoopsJoin[has_repartition=false]
| +-left=TableReference[relation=Test,alias=test]
| | +-AttributeReference[id=0,name=int_col,relation=test,type=Int NULL]
| | +-AttributeReference[id=1,name=long_col,relation=test,type=Long]
| | +-AttributeReference[id=2,name=float_col,relation=test,type=Float]
| | +-AttributeReference[id=3,name=double_col,relation=test,type=Double NULL]
| | +-AttributeReference[id=4,name=char_col,relation=test,type=Char(20)]
| | +-AttributeReference[id=5,name=vchar_col,relation=test,type=VarChar(20) NULL]
| +-right=TableGenerator[function_name=generate_series,table_alias=g]
| | +-AttributeReference[id=6,name=generate_series,alias=g,
| | relation=generate_series,type=Int]
| +-join_predicate=Less
| | +-Add
| | | +-AttributeReference[id=0,name=int_col,relation=test,type=Int NULL]
| | | +-AttributeReference[id=6,name=generate_series,alias=g,
| | | relation=generate_series,type=Int]
| | +-AttributeReference[id=2,name=float_col,relation=test,type=Float]
| +-project_expressions=
| +-Alias[id=9,name=,alias=(int_col+j),relation=,type=Int NULL]
| | +-CommonSubexpression[common_subexpression_id=11]
| | +-Operand=Add
| | +-AttributeReference[id=0,name=int_col,relation=test,type=Int NULL]
| | +-Multiply
| | +-AttributeReference[id=6,name=generate_series,alias=g,
| | | relation=generate_series,type=Int]
| | +-AttributeReference[id=6,name=generate_series,alias=g,
| | relation=generate_series,type=Int]
| +-Alias[id=10,name=,alias=((int_col+j)*float_col),relation=,type=Float NULL]
| +-Multiply
| +-CommonSubexpression[common_subexpression_id=11]
| | +-Operand=Add
| | +-AttributeReference[id=0,name=int_col,relation=test,type=Int NULL]
| | +-Multiply
| | +-AttributeReference[id=6,name=generate_series,alias=g,
| | | relation=generate_series,type=Int]
| | +-AttributeReference[id=6,name=generate_series,alias=g,
| | relation=generate_series,type=Int]
| +-AttributeReference[id=2,name=float_col,relation=test,type=Float]
+-output_attributes=
+-AttributeReference[id=9,name=,alias=(int_col+j),relation=,type=Int NULL]
+-AttributeReference[id=10,name=,alias=((int_col+j)*float_col),relation=,
type=Float NULL]
==
# Case expression
SELECT long_col+1,
CASE WHEN int_col = 1 THEN (long_col+1)*(long_col+1)
WHEN int_col = 2 THEN (long_col+1)*(long_col+1)
ELSE long_col+1 END AS result
FROM test;
--
[Optimized Logical Plan]
TopLevelPlan
+-plan=Project
| +-input=TableReference[relation_name=Test,relation_alias=test]
| | +-AttributeReference[id=0,name=int_col,relation=test,type=Int NULL]
| | +-AttributeReference[id=1,name=long_col,relation=test,type=Long]
| | +-AttributeReference[id=2,name=float_col,relation=test,type=Float]
| | +-AttributeReference[id=3,name=double_col,relation=test,type=Double NULL]
| | +-AttributeReference[id=4,name=char_col,relation=test,type=Char(20)]
| | +-AttributeReference[id=5,name=vchar_col,relation=test,type=VarChar(20) NULL]
| +-project_list=
| +-Alias[id=6,name=,alias=(long_col+1),relation=,type=Long]
| | +-Add
| | +-AttributeReference[id=1,name=long_col,relation=test,type=Long]
| | +-Literal[value=1,type=Int]
| +-Alias[id=7,name=result,relation=,type=Long]
| +-SearchedCase
| +-else_result_expression=Add
| | +-AttributeReference[id=1,name=long_col,relation=test,type=Long]
| | +-Literal[value=1,type=Long]
| +-condition_perdicates=
| | +-Equal
| | | +-AttributeReference[id=0,name=int_col,relation=test,type=Int NULL]
| | | +-Literal[value=1,type=Int]
| | +-Equal
| | +-AttributeReference[id=0,name=int_col,relation=test,type=Int NULL]
| | +-Literal[value=2,type=Int]
| +-conditional_result_expressions=
| +-Multiply
| | +-Add
| | | +-AttributeReference[id=1,name=long_col,relation=test,type=Long]
| | | +-Literal[value=1,type=Int]
| | +-Add
| | +-AttributeReference[id=1,name=long_col,relation=test,type=Long]
| | +-Literal[value=1,type=Int]
| +-Multiply
| +-Add
| | +-AttributeReference[id=1,name=long_col,relation=test,type=Long]
| | +-Literal[value=1,type=Int]
| +-Add
| +-AttributeReference[id=1,name=long_col,relation=test,type=Long]
| +-Literal[value=1,type=Int]
+-output_attributes=
+-AttributeReference[id=6,name=,alias=(long_col+1),relation=,type=Long]
+-AttributeReference[id=7,name=result,relation=,type=Long]
[Physical Plan]
TopLevelPlan
+-plan=Selection[has_repartition=false]
| +-input=TableReference[relation=Test,alias=test]
| | +-AttributeReference[id=0,name=int_col,relation=test,type=Int NULL]
| | +-AttributeReference[id=1,name=long_col,relation=test,type=Long]
| | +-AttributeReference[id=2,name=float_col,relation=test,type=Float]
| | +-AttributeReference[id=3,name=double_col,relation=test,type=Double NULL]
| | +-AttributeReference[id=4,name=char_col,relation=test,type=Char(20)]
| | +-AttributeReference[id=5,name=vchar_col,relation=test,type=VarChar(20) NULL]
| +-project_expressions=
| +-Alias[id=6,name=,alias=(long_col+1),relation=,type=Long]
| | +-Add
| | +-AttributeReference[id=1,name=long_col,relation=test,type=Long]
| | +-Literal[value=1,type=Int]
| +-Alias[id=7,name=result,relation=,type=Long]
| +-SearchedCase
| +-else_result_expression=Add
| | +-AttributeReference[id=1,name=long_col,relation=test,type=Long]
| | +-Literal[value=1,type=Long]
| +-condition_perdicates=
| | +-Equal
| | | +-AttributeReference[id=0,name=int_col,relation=test,type=Int NULL]
| | | +-Literal[value=1,type=Int]
| | +-Equal
| | +-AttributeReference[id=0,name=int_col,relation=test,type=Int NULL]
| | +-Literal[value=2,type=Int]
| +-conditional_result_expressions=
| +-Multiply
| | +-CommonSubexpression[common_subexpression_id=8]
| | | +-Operand=Add
| | | +-AttributeReference[id=1,name=long_col,relation=test,type=Long]
| | | +-Literal[value=1,type=Int]
| | +-CommonSubexpression[common_subexpression_id=8]
| | +-Operand=Add
| | +-AttributeReference[id=1,name=long_col,relation=test,type=Long]
| | +-Literal[value=1,type=Int]
| +-Multiply
| +-CommonSubexpression[common_subexpression_id=9]
| | +-Operand=Add
| | +-AttributeReference[id=1,name=long_col,relation=test,type=Long]
| | +-Literal[value=1,type=Int]
| +-CommonSubexpression[common_subexpression_id=9]
| +-Operand=Add
| +-AttributeReference[id=1,name=long_col,relation=test,type=Long]
| +-Literal[value=1,type=Int]
+-output_attributes=
+-AttributeReference[id=6,name=,alias=(long_col+1),relation=,type=Long]
+-AttributeReference[id=7,name=result,relation=,type=Long]
==
SELECT (int_col+1)*(int_col+2)*(int_col+3), (int_col+1)*(int_col+2), int_col+1
FROM test;
--
[Optimized Logical Plan]
TopLevelPlan
+-plan=Project
| +-input=TableReference[relation_name=Test,relation_alias=test]
| | +-AttributeReference[id=0,name=int_col,relation=test,type=Int NULL]
| | +-AttributeReference[id=1,name=long_col,relation=test,type=Long]
| | +-AttributeReference[id=2,name=float_col,relation=test,type=Float]
| | +-AttributeReference[id=3,name=double_col,relation=test,type=Double NULL]
| | +-AttributeReference[id=4,name=char_col,relation=test,type=Char(20)]
| | +-AttributeReference[id=5,name=vchar_col,relation=test,type=VarChar(20) NULL]
| +-project_list=
| +-Alias[id=6,name=,alias=(((int_col+1)*(int_col+2))*(int_col+3)),relation=,
| | type=Int NULL]
| | +-Multiply
| | +-Multiply
| | | +-Add
| | | | +-AttributeReference[id=0,name=int_col,relation=test,type=Int NULL]
| | | | +-Literal[value=1,type=Int]
| | | +-Add
| | | +-AttributeReference[id=0,name=int_col,relation=test,type=Int NULL]
| | | +-Literal[value=2,type=Int]
| | +-Add
| | +-AttributeReference[id=0,name=int_col,relation=test,type=Int NULL]
| | +-Literal[value=3,type=Int]
| +-Alias[id=7,name=,alias=((int_col+1)*(int_col+2)),relation=,type=Int NULL]
| | +-Multiply
| | +-Add
| | | +-AttributeReference[id=0,name=int_col,relation=test,type=Int NULL]
| | | +-Literal[value=1,type=Int]
| | +-Add
| | +-AttributeReference[id=0,name=int_col,relation=test,type=Int NULL]
| | +-Literal[value=2,type=Int]
| +-Alias[id=8,name=,alias=(int_col+1),relation=,type=Int NULL]
| +-Add
| +-AttributeReference[id=0,name=int_col,relation=test,type=Int NULL]
| +-Literal[value=1,type=Int]
+-output_attributes=
+-AttributeReference[id=6,name=,alias=(((int_col+1)*(int_col+2))*(int_col+3)),
| relation=,type=Int NULL]
+-AttributeReference[id=7,name=,alias=((int_col+1)*(int_col+2)),relation=,
| type=Int NULL]
+-AttributeReference[id=8,name=,alias=(int_col+1),relation=,type=Int NULL]
[Physical Plan]
TopLevelPlan
+-plan=Selection[has_repartition=false]
| +-input=TableReference[relation=Test,alias=test]
| | +-AttributeReference[id=0,name=int_col,relation=test,type=Int NULL]
| | +-AttributeReference[id=1,name=long_col,relation=test,type=Long]
| | +-AttributeReference[id=2,name=float_col,relation=test,type=Float]
| | +-AttributeReference[id=3,name=double_col,relation=test,type=Double NULL]
| | +-AttributeReference[id=4,name=char_col,relation=test,type=Char(20)]
| | +-AttributeReference[id=5,name=vchar_col,relation=test,type=VarChar(20) NULL]
| +-project_expressions=
| +-Alias[id=6,name=,alias=(((int_col+1)*(int_col+2))*(int_col+3)),relation=,
| | type=Int NULL]
| | +-Multiply
| | +-CommonSubexpression[common_subexpression_id=10]
| | | +-Operand=Multiply
| | | +-CommonSubexpression[common_subexpression_id=9]
| | | | +-Operand=Add
| | | | +-AttributeReference[id=0,name=int_col,relation=test,
| | | | | type=Int NULL]
| | | | +-Literal[value=1,type=Int]
| | | +-Add
| | | +-AttributeReference[id=0,name=int_col,relation=test,type=Int NULL]
| | | +-Literal[value=2,type=Int]
| | +-Add
| | +-AttributeReference[id=0,name=int_col,relation=test,type=Int NULL]
| | +-Literal[value=3,type=Int]
| +-Alias[id=7,name=,alias=((int_col+1)*(int_col+2)),relation=,type=Int NULL]
| | +-CommonSubexpression[common_subexpression_id=10]
| | +-Operand=Multiply
| | +-CommonSubexpression[common_subexpression_id=9]
| | | +-Operand=Add
| | | +-AttributeReference[id=0,name=int_col,relation=test,type=Int NULL]
| | | +-Literal[value=1,type=Int]
| | +-Add
| | +-AttributeReference[id=0,name=int_col,relation=test,type=Int NULL]
| | +-Literal[value=2,type=Int]
| +-Alias[id=8,name=,alias=(int_col+1),relation=,type=Int NULL]
| +-CommonSubexpression[common_subexpression_id=9]
| +-Operand=Add
| +-AttributeReference[id=0,name=int_col,relation=test,type=Int NULL]
| +-Literal[value=1,type=Int]
+-output_attributes=
+-AttributeReference[id=6,name=,alias=(((int_col+1)*(int_col+2))*(int_col+3)),
| relation=,type=Int NULL]
+-AttributeReference[id=7,name=,alias=((int_col+1)*(int_col+2)),relation=,
| type=Int NULL]
+-AttributeReference[id=8,name=,alias=(int_col+1),relation=,type=Int NULL]
==
# Reuse aggregate expressions
SELECT SUM(long_col+1), AVG(1+long_col), MIN(float_col), MIN(float_col)*2, COUNT(*)
FROM test;
--
[Optimized Logical Plan]
TopLevelPlan
+-plan=Project
| +-input=Aggregate
| | +-input=TableReference[relation_name=Test,relation_alias=test]
| | | +-AttributeReference[id=0,name=int_col,relation=test,type=Int NULL]
| | | +-AttributeReference[id=1,name=long_col,relation=test,type=Long]
| | | +-AttributeReference[id=2,name=float_col,relation=test,type=Float]
| | | +-AttributeReference[id=3,name=double_col,relation=test,type=Double NULL]
| | | +-AttributeReference[id=4,name=char_col,relation=test,type=Char(20)]
| | | +-AttributeReference[id=5,name=vchar_col,relation=test,
| | | type=VarChar(20) NULL]
| | +-grouping_expressions=
| | | +-[]
| | +-aggregate_expressions=
| | +-Alias[id=6,name=,alias=$aggregate0,relation=$aggregate,type=Long NULL]
| | | +-AggregateFunction[function=SUM]
| | | +-Add
| | | +-AttributeReference[id=1,name=long_col,relation=test,type=Long]
| | | +-Literal[value=1,type=Int]
| | +-Alias[id=7,name=,alias=$aggregate1,relation=$aggregate,type=Double NULL]
| | | +-AggregateFunction[function=AVG]
| | | +-Add
| | | +-Literal[value=1,type=Int]
| | | +-AttributeReference[id=1,name=long_col,relation=test,type=Long]
| | +-Alias[id=8,name=,alias=$aggregate2,relation=$aggregate,type=Float NULL]
| | | +-AggregateFunction[function=MIN]
| | | +-AttributeReference[id=2,name=float_col,relation=test,type=Float]
| | +-Alias[id=9,name=,alias=$aggregate3,relation=$aggregate,type=Float NULL]
| | | +-AggregateFunction[function=MIN]
| | | +-AttributeReference[id=2,name=float_col,relation=test,type=Float]
| | +-Alias[id=11,name=,alias=$aggregate4,relation=$aggregate,type=Long]
| | +-AggregateFunction[function=COUNT]
| | +-[]
| +-project_list=
| +-Alias[id=6,name=,alias=SUM((long_col+1)),relation=,type=Long NULL]
| | +-AttributeReference[id=6,name=,alias=$aggregate0,relation=$aggregate,
| | type=Long NULL]
| +-Alias[id=7,name=,alias=AVG((1+long_col)),relation=,type=Double NULL]
| | +-AttributeReference[id=7,name=,alias=$aggregate1,relation=$aggregate,
| | type=Double NULL]
| +-Alias[id=8,name=,alias=MIN(float_col),relation=,type=Float NULL]
| | +-AttributeReference[id=8,name=,alias=$aggregate2,relation=$aggregate,
| | type=Float NULL]
| +-Alias[id=10,name=,alias=(MIN(float_col)*2),relation=,type=Float NULL]
| | +-Multiply
| | +-AttributeReference[id=9,name=,alias=$aggregate3,relation=$aggregate,
| | | type=Float NULL]
| | +-Literal[value=2,type=Int]
| +-Alias[id=11,name=,alias=COUNT(*),relation=,type=Long]
| +-AttributeReference[id=11,name=,alias=$aggregate4,relation=$aggregate,
| type=Long]
+-output_attributes=
+-AttributeReference[id=6,name=,alias=SUM((long_col+1)),relation=,
| type=Long NULL]
+-AttributeReference[id=7,name=,alias=AVG((1+long_col)),relation=,
| type=Double NULL]
+-AttributeReference[id=8,name=,alias=MIN(float_col),relation=,type=Float NULL]
+-AttributeReference[id=10,name=,alias=(MIN(float_col)*2),relation=,
| type=Float NULL]
+-AttributeReference[id=11,name=,alias=COUNT(*),relation=,type=Long]
[Physical Plan]
TopLevelPlan
+-plan=Selection[has_repartition=false]
| +-input=Aggregate[has_repartition=false]
| | +-input=TableReference[relation=Test,alias=test]
| | | +-AttributeReference[id=0,name=int_col,relation=test,type=Int NULL]
| | | +-AttributeReference[id=1,name=long_col,relation=test,type=Long]
| | | +-AttributeReference[id=2,name=float_col,relation=test,type=Float]
| | | +-AttributeReference[id=3,name=double_col,relation=test,type=Double NULL]
| | | +-AttributeReference[id=4,name=char_col,relation=test,type=Char(20)]
| | | +-AttributeReference[id=5,name=vchar_col,relation=test,
| | | type=VarChar(20) NULL]
| | +-grouping_expressions=
| | | +-[]
| | +-aggregate_expressions=
| | +-Alias[id=6,name=,alias=$aggregate0,relation=$aggregate,type=Long NULL]
| | | +-AggregateFunction[function=SUM]
| | | +-Add
| | | +-AttributeReference[id=1,name=long_col,relation=test,type=Long]
| | | +-Literal[value=1,type=Int]
| | +-Alias[id=8,name=,alias=$aggregate2,relation=$aggregate,type=Float NULL]
| | | +-AggregateFunction[function=MIN]
| | | +-AttributeReference[id=2,name=float_col,relation=test,type=Float]
| | +-Alias[id=11,name=,alias=$aggregate4,relation=$aggregate,type=Long]
| | +-AggregateFunction[function=COUNT]
| | +-[]
| +-project_expressions=
| +-Alias[id=6,name=,alias=SUM((long_col+1)),relation=,type=Long NULL]
| | +-AttributeReference[id=6,name=,alias=$aggregate0,relation=$aggregate,
| | type=Long NULL]
| +-Alias[id=7,name=,alias=AVG((1+long_col)),relation=,type=Long NULL]
| | +-Divide
| | +-AttributeReference[id=6,name=,alias=$aggregate0,relation=$aggregate,
| | | type=Long NULL]
| | +-AttributeReference[id=11,name=,alias=$aggregate4,relation=$aggregate,
| | type=Long]
| +-Alias[id=8,name=,alias=MIN(float_col),relation=,type=Float NULL]
| | +-AttributeReference[id=8,name=,alias=$aggregate2,relation=$aggregate,
| | type=Float NULL]
| +-Alias[id=10,name=,alias=(MIN(float_col)*2),relation=,type=Float NULL]
| | +-Multiply
| | +-AttributeReference[id=8,name=,alias=$aggregate2,relation=$aggregate,
| | | type=Float NULL]
| | +-Literal[value=2,type=Int]
| +-Alias[id=11,name=,alias=COUNT(*),relation=,type=Long]
| +-AttributeReference[id=11,name=,alias=$aggregate4,relation=$aggregate,
| type=Long]
+-output_attributes=
+-AttributeReference[id=6,name=,alias=SUM((long_col+1)),relation=,
| type=Long NULL]
+-AttributeReference[id=7,name=,alias=AVG((1+long_col)),relation=,
| type=Long NULL]
+-AttributeReference[id=8,name=,alias=MIN(float_col),relation=,type=Float NULL]
+-AttributeReference[id=10,name=,alias=(MIN(float_col)*2),relation=,
| type=Float NULL]
+-AttributeReference[id=11,name=,alias=COUNT(*),relation=,type=Long]
==
SELECT SUM(long_col+1)+2, (SUM(long_col+1)+2)*3
FROM test;
--
[Optimized Logical Plan]
TopLevelPlan
+-plan=Project
| +-input=Aggregate
| | +-input=TableReference[relation_name=Test,relation_alias=test]
| | | +-AttributeReference[id=0,name=int_col,relation=test,type=Int NULL]
| | | +-AttributeReference[id=1,name=long_col,relation=test,type=Long]
| | | +-AttributeReference[id=2,name=float_col,relation=test,type=Float]
| | | +-AttributeReference[id=3,name=double_col,relation=test,type=Double NULL]
| | | +-AttributeReference[id=4,name=char_col,relation=test,type=Char(20)]
| | | +-AttributeReference[id=5,name=vchar_col,relation=test,
| | | type=VarChar(20) NULL]
| | +-grouping_expressions=
| | | +-[]
| | +-aggregate_expressions=
| | +-Alias[id=6,name=,alias=$aggregate0,relation=$aggregate,type=Long NULL]
| | | +-AggregateFunction[function=SUM]
| | | +-Add
| | | +-AttributeReference[id=1,name=long_col,relation=test,type=Long]
| | | +-Literal[value=1,type=Int]
| | +-Alias[id=8,name=,alias=$aggregate1,relation=$aggregate,type=Long NULL]
| | +-AggregateFunction[function=SUM]
| | +-Add
| | +-AttributeReference[id=1,name=long_col,relation=test,type=Long]
| | +-Literal[value=1,type=Int]
| +-project_list=
| +-Alias[id=7,name=,alias=(SUM((long_col+1))+2),relation=,type=Long NULL]
| | +-Add
| | +-AttributeReference[id=6,name=,alias=$aggregate0,relation=$aggregate,
| | | type=Long NULL]
| | +-Literal[value=2,type=Int]
| +-Alias[id=9,name=,alias=((SUM((long_col+1))+2)*3),relation=,type=Long NULL]
| +-Multiply
| +-Add
| | +-AttributeReference[id=8,name=,alias=$aggregate1,relation=$aggregate,
| | | type=Long NULL]
| | +-Literal[value=2,type=Int]
| +-Literal[value=3,type=Int]
+-output_attributes=
+-AttributeReference[id=7,name=,alias=(SUM((long_col+1))+2),relation=,
| type=Long NULL]
+-AttributeReference[id=9,name=,alias=((SUM((long_col+1))+2)*3),relation=,
type=Long NULL]
[Physical Plan]
TopLevelPlan
+-plan=Selection[has_repartition=false]
| +-input=Aggregate[has_repartition=false]
| | +-input=TableReference[relation=Test,alias=test]
| | | +-AttributeReference[id=0,name=int_col,relation=test,type=Int NULL]
| | | +-AttributeReference[id=1,name=long_col,relation=test,type=Long]
| | | +-AttributeReference[id=2,name=float_col,relation=test,type=Float]
| | | +-AttributeReference[id=3,name=double_col,relation=test,type=Double NULL]
| | | +-AttributeReference[id=4,name=char_col,relation=test,type=Char(20)]
| | | +-AttributeReference[id=5,name=vchar_col,relation=test,
| | | type=VarChar(20) NULL]
| | +-grouping_expressions=
| | | +-[]
| | +-aggregate_expressions=
| | +-Alias[id=6,name=,alias=$aggregate0,relation=$aggregate,type=Long NULL]
| | +-AggregateFunction[function=SUM]
| | +-Add
| | +-AttributeReference[id=1,name=long_col,relation=test,type=Long]
| | +-Literal[value=1,type=Int]
| +-project_expressions=
| +-Alias[id=7,name=,alias=(SUM((long_col+1))+2),relation=,type=Long NULL]
| | +-CommonSubexpression[common_subexpression_id=10]
| | +-Operand=Add
| | +-AttributeReference[id=6,name=,alias=$aggregate0,relation=$aggregate,
| | | type=Long NULL]
| | +-Literal[value=2,type=Int]
| +-Alias[id=9,name=,alias=((SUM((long_col+1))+2)*3),relation=,type=Long NULL]
| +-Multiply
| +-CommonSubexpression[common_subexpression_id=10]
| | +-Operand=Add
| | +-AttributeReference[id=6,name=,alias=$aggregate0,
| | | relation=$aggregate,type=Long NULL]
| | +-Literal[value=2,type=Int]
| +-Literal[value=3,type=Int]
+-output_attributes=
+-AttributeReference[id=7,name=,alias=(SUM((long_col+1))+2),relation=,
| type=Long NULL]
+-AttributeReference[id=9,name=,alias=((SUM((long_col+1))+2)*3),relation=,
type=Long NULL]