#   Copyright 2011-2015 Quickstep Technologies LLC.
#   Copyright 2015 Pivotal Software, Inc.
#   Copyright 2016, Quickstep Research Group, Computer Sciences Department,
#     University of Wisconsin—Madison.
#
#   Licensed 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.

# Query identifiers are case-insensitive.
[default initial_logical_plan]
select a.int_col, A.INT_cOL, b.FLOAT_COL, c.flOAT_Col from Test as A, tEsT as B, teSt as c
--
TopLevelPlan
+-plan=Project
| +-input=MultiwayCartesianJoin
| | +-TableReference[relation_name=Test,relation_alias=A]
| | | +-AttributeReference[id=0,name=int_col,relation=A,type=Int NULL]
| | | +-AttributeReference[id=1,name=long_col,relation=A,type=Long]
| | | +-AttributeReference[id=2,name=float_col,relation=A,type=Float]
| | | +-AttributeReference[id=3,name=double_col,relation=A,type=Double NULL]
| | | +-AttributeReference[id=4,name=char_col,relation=A,type=Char(20)]
| | | +-AttributeReference[id=5,name=vchar_col,relation=A,type=VarChar(20) NULL]
| | +-TableReference[relation_name=Test,relation_alias=B]
| | | +-AttributeReference[id=6,name=int_col,relation=B,type=Int NULL]
| | | +-AttributeReference[id=7,name=long_col,relation=B,type=Long]
| | | +-AttributeReference[id=8,name=float_col,relation=B,type=Float]
| | | +-AttributeReference[id=9,name=double_col,relation=B,type=Double NULL]
| | | +-AttributeReference[id=10,name=char_col,relation=B,type=Char(20)]
| | | +-AttributeReference[id=11,name=vchar_col,relation=B,type=VarChar(20) NULL]
| | +-TableReference[relation_name=Test,relation_alias=c]
| |   +-AttributeReference[id=12,name=int_col,relation=c,type=Int NULL]
| |   +-AttributeReference[id=13,name=long_col,relation=c,type=Long]
| |   +-AttributeReference[id=14,name=float_col,relation=c,type=Float]
| |   +-AttributeReference[id=15,name=double_col,relation=c,type=Double NULL]
| |   +-AttributeReference[id=16,name=char_col,relation=c,type=Char(20)]
| |   +-AttributeReference[id=17,name=vchar_col,relation=c,type=VarChar(20) NULL]
| +-project_list=
|   +-AttributeReference[id=0,name=int_col,relation=A,type=Int NULL]
|   +-AttributeReference[id=0,name=int_col,relation=A,type=Int NULL]
|   +-AttributeReference[id=8,name=float_col,relation=B,type=Float]
|   +-AttributeReference[id=14,name=float_col,relation=c,type=Float]
+-output_attributes=
  +-AttributeReference[id=0,name=int_col,relation=A,type=Int NULL]
  +-AttributeReference[id=0,name=int_col,relation=A,type=Int NULL]
  +-AttributeReference[id=8,name=float_col,relation=B,type=Float]
  +-AttributeReference[id=14,name=float_col,relation=c,type=Float]
==

select * from Test as A, Test as a
--
ERROR: Relation alias a appears more than once (1 : 34)
select * from Test as A, Test as a
                                 ^
==

select * from undefined_table
--
ERROR: Unrecognized relation undefined_table (1 : 15)
select * from undefined_table
              ^
==

select int_col from Test as a, Test
--
ERROR: Ambiguous attribute int_col (1 : 8)
select int_col from Test as a, Test
       ^
==

select 1+int_col from Test as a, Test
--
ERROR: Ambiguous attribute int_col (1 : 10)
select 1+int_col from Test as a, Test
         ^
==

select 1 from test as a, Test where 1+int_col > a.float_col
--
ERROR: Ambiguous attribute int_col (1 : 39)
select 1 from test as a, Test where 1+int_col > a.float_col
                                      ^
==

select 1 from Test as a, test
--
TopLevelPlan
+-plan=Project
| +-input=MultiwayCartesianJoin
| | +-TableReference[relation_name=Test,relation_alias=a]
| | | +-AttributeReference[id=0,name=int_col,relation=a,type=Int NULL]
| | | +-AttributeReference[id=1,name=long_col,relation=a,type=Long]
| | | +-AttributeReference[id=2,name=float_col,relation=a,type=Float]
| | | +-AttributeReference[id=3,name=double_col,relation=a,type=Double NULL]
| | | +-AttributeReference[id=4,name=char_col,relation=a,type=Char(20)]
| | | +-AttributeReference[id=5,name=vchar_col,relation=a,type=VarChar(20) NULL]
| | +-TableReference[relation_name=Test,relation_alias=test]
| |   +-AttributeReference[id=6,name=int_col,relation=test,type=Int NULL]
| |   +-AttributeReference[id=7,name=long_col,relation=test,type=Long]
| |   +-AttributeReference[id=8,name=float_col,relation=test,type=Float]
| |   +-AttributeReference[id=9,name=double_col,relation=test,type=Double NULL]
| |   +-AttributeReference[id=10,name=char_col,relation=test,type=Char(20)]
| |   +-AttributeReference[id=11,name=vchar_col,relation=test,
| |     type=VarChar(20) NULL]
| +-project_list=
|   +-Alias[id=12,name=,alias=1,relation=,type=Int]
|     +-Literal[value=1,type=Int]
+-output_attributes=
  +-AttributeReference[id=12,name=,alias=1,relation=,type=Int]
==

# Subqueries.
select * from (select * from test) as a
--
TopLevelPlan
+-plan=Project
| +-input=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=
| |   +-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=
|   +-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]
+-output_attributes=
  +-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]
==

select * from (select * from test) a, test a
--
ERROR: Relation alias a appears more than once (1 : 44)
select * from (select * from test) a, test a
                                           ^
==

select int_col, a.int_col, float_col, a.float_col from (select * from test) as a
--
TopLevelPlan
+-plan=Project
| +-input=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=
| |   +-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=
|   +-AttributeReference[id=0,name=int_col,relation=test,type=Int NULL]
|   +-AttributeReference[id=0,name=int_col,relation=test,type=Int NULL]
|   +-AttributeReference[id=2,name=float_col,relation=test,type=Float]
|   +-AttributeReference[id=2,name=float_col,relation=test,type=Float]
+-output_attributes=
  +-AttributeReference[id=0,name=int_col,relation=test,type=Int NULL]
  +-AttributeReference[id=0,name=int_col,relation=test,type=Int NULL]
  +-AttributeReference[id=2,name=float_col,relation=test,type=Float]
  +-AttributeReference[id=2,name=float_col,relation=test,type=Float]
==

select int_col from (select float_col from test) as a
--
ERROR: Unrecognized attribute int_col (1 : 8)
select int_col from (select float_col...
       ^
==

select int_col from (select int_col from test) as a
--
TopLevelPlan
+-plan=Project
| +-input=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=
| |   +-AttributeReference[id=0,name=int_col,relation=test,type=Int NULL]
| +-project_list=
|   +-AttributeReference[id=0,name=int_col,relation=test,type=Int NULL]
+-output_attributes=
  +-AttributeReference[id=0,name=int_col,relation=test,type=Int NULL]
==

select int_col from (select float_col int_col from (select float_col from test) as a) as a
--
TopLevelPlan
+-plan=Project
| +-input=Project
| | +-input=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=
| | |   +-AttributeReference[id=2,name=float_col,relation=test,type=Float]
| | +-project_list=
| |   +-Alias[id=2,name=int_col,relation=a,type=Float]
| |     +-AttributeReference[id=2,name=float_col,relation=test,type=Float]
| +-project_list=
|   +-AttributeReference[id=2,name=int_col,relation=a,type=Float]
+-output_attributes=
  +-AttributeReference[id=2,name=int_col,relation=a,type=Float]
==

select int_col from (select * from (select float_col from test) as a) as a
--
ERROR: Unrecognized attribute int_col (1 : 8)
select int_col from (select * from (selec...
       ^
==

select a, b from (select int_col as a, float_col as b from (select int_col, float_col from test) as a) as a
--
TopLevelPlan
+-plan=Project
| +-input=Project
| | +-input=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=
| | |   +-AttributeReference[id=0,name=int_col,relation=test,type=Int NULL]
| | |   +-AttributeReference[id=2,name=float_col,relation=test,type=Float]
| | +-project_list=
| |   +-Alias[id=0,name=a,relation=a,type=Int NULL]
| |   | +-AttributeReference[id=0,name=int_col,relation=test,type=Int NULL]
| |   +-Alias[id=2,name=b,relation=a,type=Float]
| |     +-AttributeReference[id=2,name=float_col,relation=test,type=Float]
| +-project_list=
|   +-AttributeReference[id=0,name=a,relation=a,type=Int NULL]
|   +-AttributeReference[id=2,name=b,relation=a,type=Float]
+-output_attributes=
  +-AttributeReference[id=0,name=a,relation=a,type=Int NULL]
  +-AttributeReference[id=2,name=b,relation=a,type=Float]
==

select a, b from (select a as b, b as a from (select int_col a, float_col b from test) as a ) as a
--
TopLevelPlan
+-plan=Project
| +-input=Project
| | +-input=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=0,name=a,relation=a,type=Int NULL]
| | |   | +-AttributeReference[id=0,name=int_col,relation=test,type=Int NULL]
| | |   +-Alias[id=2,name=b,relation=a,type=Float]
| | |     +-AttributeReference[id=2,name=float_col,relation=test,type=Float]
| | +-project_list=
| |   +-Alias[id=0,name=b,relation=a,type=Int NULL]
| |   | +-AttributeReference[id=0,name=a,relation=a,type=Int NULL]
| |   +-Alias[id=2,name=a,relation=a,type=Float]
| |     +-AttributeReference[id=2,name=b,relation=a,type=Float]
| +-project_list=
|   +-AttributeReference[id=2,name=a,relation=a,type=Float]
|   +-AttributeReference[id=0,name=b,relation=a,type=Int NULL]
+-output_attributes=
  +-AttributeReference[id=2,name=a,relation=a,type=Float]
  +-AttributeReference[id=0,name=b,relation=a,type=Int NULL]
==

# Use different type of scalar and predicate expressions.
select -1, 1+2, -float_col, int_col+int_col-int_col*float_col/double_col, char_col, vchar_col
from test
where 1!=1 and int_col+1=float_col and int_col-1>double_col and double_col<float_col-5 or double_col != 1
      and not(int_col>2*int_col)
--
TopLevelPlan
+-plan=Project
| +-input=Filter
| | +-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]
| | +-filter_predicate=Or
| |   +-And
| |   | +-NotEqual
| |   | | +-Literal[value=1,type=Int]
| |   | | +-Literal[value=1,type=Int]
| |   | +-Equal
| |   | | +-Add
| |   | | | +-AttributeReference[id=0,name=int_col,relation=test,type=Int NULL]
| |   | | | +-Literal[value=1,type=Int]
| |   | | +-AttributeReference[id=2,name=float_col,relation=test,type=Float]
| |   | +-Greater
| |   | | +-Subtract
| |   | | | +-AttributeReference[id=0,name=int_col,relation=test,type=Int NULL]
| |   | | | +-Literal[value=1,type=Int]
| |   | | +-AttributeReference[id=3,name=double_col,relation=test,
| |   | |   type=Double NULL]
| |   | +-Less
| |   |   +-AttributeReference[id=3,name=double_col,relation=test,
| |   |   | type=Double NULL]
| |   |   +-Subtract
| |   |     +-AttributeReference[id=2,name=float_col,relation=test,type=Float]
| |   |     +-Literal[value=5,type=Int]
| |   +-And
| |     +-NotEqual
| |     | +-AttributeReference[id=3,name=double_col,relation=test,
| |     | | type=Double NULL]
| |     | +-Literal[value=1,type=Int]
| |     +-NOT
| |       +-Greater
| |         +-AttributeReference[id=0,name=int_col,relation=test,type=Int NULL]
| |         +-Multiply
| |           +-Literal[value=2,type=Int]
| |           +-AttributeReference[id=0,name=int_col,relation=test,type=Int NULL]
| +-project_list=
|   +-Alias[id=6,name=,alias=-1,relation=,type=Int]
|   | +-Literal[value=-1,type=Int]
|   +-Alias[id=7,name=,alias=(1+2),relation=,type=Int]
|   | +-Add
|   |   +-Literal[value=1,type=Int]
|   |   +-Literal[value=2,type=Int]
|   +-Alias[id=8,name=,alias=-float_col,relation=,type=Float]
|   | +-Negate
|   |   +-Operand=AttributeReference[id=2,name=float_col,relation=test,
|   |     type=Float]
|   +-Alias[id=9,name=,
|   | alias=((int_col+int_col)-((int_col*float_col)/double_col)),relation=,
|   | type=Double NULL]
|   | +-Subtract
|   |   +-Add
|   |   | +-AttributeReference[id=0,name=int_col,relation=test,type=Int NULL]
|   |   | +-AttributeReference[id=0,name=int_col,relation=test,type=Int NULL]
|   |   +-Divide
|   |     +-Multiply
|   |     | +-AttributeReference[id=0,name=int_col,relation=test,type=Int NULL]
|   |     | +-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]
+-output_attributes=
  +-AttributeReference[id=6,name=,alias=-1,relation=,type=Int]
  +-AttributeReference[id=7,name=,alias=(1+2),relation=,type=Int]
  +-AttributeReference[id=8,name=,alias=-float_col,relation=,type=Float]
  +-AttributeReference[id=9,name=,
  | alias=((int_col+int_col)-((int_col*float_col)/double_col)),relation=,
  | 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]
==

# Invalid comparison.
select 1 from test where int_col>char_col
--
ERROR: Comparison operation Greater cannot be applied between Int NULL and Char(20) (1 : 33)
select 1 from test where int_col>char_col
                                ^
==

select 1 from test where int_col != vchar_col
--
ERROR: Comparison operation NotEqual cannot be applied between Int NULL and VarChar(20) NULL (1 : 34)
select 1 from test where int_col != vchar_col
                                 ^
==

# Invalid binary operation.
select 1+char_col from test
--
ERROR: Can not apply binary operation "Add" to arguments of types Int and Char(20) (1 : 9)
select 1+char_col from test
        ^
==

select 1/char_col from test
--
ERROR: Can not apply binary operation "Divide" to arguments of types Int and Char(20) (1 : 9)
select 1/char_col from test
        ^
==

# Invalid unary operation.
select -char_col from test
--
ERROR: Can not apply unary operation "Negate" to argument of type Char(20) (1 : 8)
select -char_col from test
       ^
==

select 1 from test where int_col between 1+int_col and 3 and float_col not between 100 and 200.5
--
TopLevelPlan
+-plan=Project
| +-input=Filter
| | +-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]
| | +-filter_predicate=And
| |   +-LessOrEqual
| |   | +-Add
| |   | | +-Literal[value=1,type=Int]
| |   | | +-AttributeReference[id=0,name=int_col,relation=test,type=Int NULL]
| |   | +-AttributeReference[id=0,name=int_col,relation=test,type=Int NULL]
| |   +-LessOrEqual
| |   | +-AttributeReference[id=0,name=int_col,relation=test,type=Int NULL]
| |   | +-Literal[value=3,type=Int]
| |   +-NOT
| |     +-And
| |       +-LessOrEqual
| |       | +-Literal[value=100,type=Int]
| |       | +-AttributeReference[id=2,name=float_col,relation=test,type=Float]
| |       +-LessOrEqual
| |         +-AttributeReference[id=2,name=float_col,relation=test,type=Float]
| |         +-Literal[value=200.5,type=Double]
| +-project_list=
|   +-Alias[id=6,name=,alias=1,relation=,type=Int]
|     +-Literal[value=1,type=Int]
+-output_attributes=
  +-AttributeReference[id=6,name=,alias=1,relation=,type=Int]
==

select 1 from test where int_col between 1 and 'cde'
--
ERROR: Comparison operation LessOrEqual cannot be applied between Int NULL and VarChar(3) (1 : 48)
...1 from test where int_col between 1 and 'cde'
                                           ^
==

select 1 from test where char_col between 'cde' and 1.2
--
ERROR: Comparison operation LessOrEqual cannot be applied between Char(20) and Double (1 : 53)
...from test where char_col between 'cde' and 1.2
                                              ^
==

select 1 from test where char_col between 'abc' and 'cde'
--
TopLevelPlan
+-plan=Project
| +-input=Filter
| | +-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]
| | +-filter_predicate=And
| |   +-LessOrEqual
| |   | +-Literal[value=abc,type=VarChar(3)]
| |   | +-AttributeReference[id=4,name=char_col,relation=test,type=Char(20)]
| |   +-LessOrEqual
| |     +-AttributeReference[id=4,name=char_col,relation=test,type=Char(20)]
| |     +-Literal[value=cde,type=VarChar(3)]
| +-project_list=
|   +-Alias[id=6,name=,alias=1,relation=,type=Int]
|     +-Literal[value=1,type=Int]
+-output_attributes=
  +-AttributeReference[id=6,name=,alias=1,relation=,type=Int]
==

# NULL tests
# NULL can be appropriately casted to make the binary or comparison expressions valid.
select null, null+1
from test
where null=null and null!=long_col and null != 'string_literal' and null = char_col
--
TopLevelPlan
+-plan=Project
| +-input=Filter
| | +-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]
| | +-filter_predicate=And
| |   +-Literal[value=false]
| |   +-Literal[value=false]
| |   +-Literal[value=false]
| |   +-Literal[value=false]
| +-project_list=
|   +-Alias[id=6,name=,alias=NULL,relation=,type=NullType NULL]
|   | +-Literal[value=NULL,type=NullType NULL]
|   +-Alias[id=7,name=,alias=(NULL+1),relation=,type=NullType NULL]
|     +-Literal[value=NULL,type=NullType NULL]
+-output_attributes=
  +-AttributeReference[id=6,name=,alias=NULL,relation=,type=NullType NULL]
  +-AttributeReference[id=7,name=,alias=(NULL+1),relation=,type=NullType NULL]
==

select -null from test
--
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=-NULL,relation=,type=NullType NULL]
|     +-Literal[value=NULL,type=NullType NULL]
+-output_attributes=
  +-AttributeReference[id=6,name=,alias=-NULL,relation=,type=NullType NULL]
==

select 1 from test where -null='string_literal'
--
TopLevelPlan
+-plan=Project
| +-input=Filter
| | +-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]
| | +-filter_predicate=Literal[value=false]
| +-project_list=
|   +-Alias[id=6,name=,alias=1,relation=,type=Int]
|     +-Literal[value=1,type=Int]
+-output_attributes=
  +-AttributeReference[id=6,name=,alias=1,relation=,type=Int]
==

# More tests for aggregation are in Aggregate.test.
select 1 from test group by int_col+1
--
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=
| | | +-Alias[id=7,name=,alias=$groupby0,relation=$groupby,type=Int NULL]
| | |   +-Add
| | |     +-AttributeReference[id=0,name=int_col,relation=test,type=Int NULL]
| | |     +-Literal[value=1,type=Int]
| | +-aggregate_expressions=
| |   +-[]
| +-project_list=
|   +-Alias[id=6,name=,alias=1,relation=,type=Int]
|     +-Literal[value=1,type=Int]
+-output_attributes=
  +-AttributeReference[id=6,name=,alias=1,relation=,type=Int]
==

select 1 from test having int_col+1 < 1
--
ERROR: Expression contains an attribute int_col, which is neither a GROUP BY expression nor in an aggregate expression (1 : 37)
select 1 from test having int_col+1 < 1
                                    ^
==

select 1 from test order by int_col+1, float_col+int_col desc, char_col asc
--
TopLevelPlan
+-plan=Project
| +-input=Sort[is_ascending=[true,false,true],nulls_first=[false,true,false]]
| | +-input=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=7,name=,alias=$orderby0,relation=$orderby,type=Int NULL]
| | |   | +-Add
| | |   |   +-AttributeReference[id=0,name=int_col,relation=test,type=Int NULL]
| | |   |   +-Literal[value=1,type=Int]
| | |   +-Alias[id=8,name=,alias=$orderby1,relation=$orderby,type=Float NULL]
| | |   | +-Add
| | |   |   +-AttributeReference[id=2,name=float_col,relation=test,type=Float]
| | |   |   +-AttributeReference[id=0,name=int_col,relation=test,type=Int NULL]
| | |   +-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]
| | +-sort_expressions=
| |   +-AttributeReference[id=7,name=,alias=$orderby0,relation=$orderby,
| |   | type=Int NULL]
| |   +-AttributeReference[id=8,name=,alias=$orderby1,relation=$orderby,
| |   | type=Float NULL]
| |   +-AttributeReference[id=4,name=char_col,relation=test,type=Char(20)]
| +-project_list=
|   +-Alias[id=6,name=,alias=1,relation=,type=Int]
|     +-Literal[value=1,type=Int]
+-output_attributes=
  +-AttributeReference[id=6,name=,alias=1,relation=,type=Int]
==

#
# Alias reference tests.
#

# Alias references in group by order by and having
select int_col a, long_col b from test
group by a, b
having a>b
order by a, b desc
--
TopLevelPlan
+-plan=Project
| +-input=Sort[is_ascending=[true,false],nulls_first=[false,true]]
| | +-input=Filter
| | | +-input=Aggregate
| | | | +-input=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=0,name=a,relation=,type=Int NULL]
| | | | |   | +-AttributeReference[id=0,name=int_col,relation=test,type=Int NULL]
| | | | |   +-Alias[id=1,name=b,relation=,type=Long]
| | | | |   | +-AttributeReference[id=1,name=long_col,relation=test,type=Long]
| | | | |   +-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=
| | | | | +-AttributeReference[id=0,name=a,relation=,type=Int NULL]
| | | | | +-AttributeReference[id=1,name=b,relation=,type=Long]
| | | | +-aggregate_expressions=
| | | |   +-[]
| | | +-filter_predicate=Greater
| | |   +-AttributeReference[id=0,name=a,relation=,type=Int NULL]
| | |   +-AttributeReference[id=1,name=b,relation=,type=Long]
| | +-sort_expressions=
| |   +-AttributeReference[id=0,name=a,relation=,type=Int NULL]
| |   +-AttributeReference[id=1,name=b,relation=,type=Long]
| +-project_list=
|   +-AttributeReference[id=0,name=a,relation=,type=Int NULL]
|   +-AttributeReference[id=1,name=b,relation=,type=Long]
+-output_attributes=
  +-AttributeReference[id=0,name=a,relation=,type=Int NULL]
  +-AttributeReference[id=1,name=b,relation=,type=Long]
==

# Needs to precompute the select-list expression before group by.
select int_col+1 a from test
group by a, a+a, a*2
order by a, a+a, a*2
--
TopLevelPlan
+-plan=Project
| +-input=Sort[is_ascending=[true,true,true],nulls_first=[false,false,false]]
| | +-input=Project
| | | +-input=Aggregate
| | | | +-input=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=a,relation=,type=Int NULL]
| | | | |   | +-Add
| | | | |   |   +-AttributeReference[id=0,name=int_col,relation=test,
| | | | |   |   | type=Int NULL]
| | | | |   |   +-Literal[value=1,type=Int]
| | | | |   +-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=
| | | | | +-AttributeReference[id=6,name=a,relation=,type=Int NULL]
| | | | | +-Alias[id=7,name=,alias=$groupby1,relation=$groupby,type=Int NULL]
| | | | | | +-Add
| | | | | |   +-AttributeReference[id=6,name=a,relation=,type=Int NULL]
| | | | | |   +-AttributeReference[id=6,name=a,relation=,type=Int NULL]
| | | | | +-Alias[id=8,name=,alias=$groupby2,relation=$groupby,type=Int NULL]
| | | | |   +-Multiply
| | | | |     +-AttributeReference[id=6,name=a,relation=,type=Int NULL]
| | | | |     +-Literal[value=2,type=Int]
| | | | +-aggregate_expressions=
| | | |   +-[]
| | | +-project_list=
| | |   +-Alias[id=9,name=,alias=$orderby0,relation=$orderby,type=Int NULL]
| | |   | +-Add
| | |   |   +-AttributeReference[id=6,name=a,relation=,type=Int NULL]
| | |   |   +-AttributeReference[id=6,name=a,relation=,type=Int NULL]
| | |   +-Alias[id=10,name=,alias=$orderby1,relation=$orderby,type=Int NULL]
| | |   | +-Multiply
| | |   |   +-AttributeReference[id=6,name=a,relation=,type=Int NULL]
| | |   |   +-Literal[value=2,type=Int]
| | |   +-AttributeReference[id=6,name=a,relation=,type=Int NULL]
| | |   +-AttributeReference[id=7,name=,alias=$groupby1,relation=$groupby,
| | |   | type=Int NULL]
| | |   +-AttributeReference[id=8,name=,alias=$groupby2,relation=$groupby,
| | |     type=Int NULL]
| | +-sort_expressions=
| |   +-AttributeReference[id=6,name=a,relation=,type=Int NULL]
| |   +-AttributeReference[id=9,name=,alias=$orderby0,relation=$orderby,
| |   | type=Int NULL]
| |   +-AttributeReference[id=10,name=,alias=$orderby1,relation=$orderby,
| |     type=Int NULL]
| +-project_list=
|   +-AttributeReference[id=6,name=a,relation=,type=Int NULL]
+-output_attributes=
  +-AttributeReference[id=6,name=a,relation=,type=Int NULL]
==

select int_col+1 as a, int_col+double_col b, char_col c from test
group by a, b, c, int_col, a+1, a+b, a+int_col
order by a, b, c, a+1, a+b, b+int_col
--
TopLevelPlan
+-plan=Project
| +-input=Sort[is_ascending=[true,true,true,true,true,true],
| | nulls_first=[false,false,false,false,false,false]]
| | +-input=Project
| | | +-input=Aggregate
| | | | +-input=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=a,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=b,relation=,type=Double NULL]
| | | | |   | +-Add
| | | | |   |   +-AttributeReference[id=0,name=int_col,relation=test,
| | | | |   |   | type=Int NULL]
| | | | |   |   +-AttributeReference[id=3,name=double_col,relation=test,
| | | | |   |     type=Double NULL]
| | | | |   +-Alias[id=4,name=c,relation=,type=Char(20)]
| | | | |   | +-AttributeReference[id=4,name=char_col,relation=test,
| | | | |   |   type=Char(20)]
| | | | |   +-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=
| | | | | +-AttributeReference[id=6,name=a,relation=,type=Int NULL]
| | | | | +-AttributeReference[id=7,name=b,relation=,type=Double NULL]
| | | | | +-AttributeReference[id=4,name=c,relation=,type=Char(20)]
| | | | | +-AttributeReference[id=0,name=int_col,relation=test,type=Int NULL]
| | | | | +-Alias[id=8,name=,alias=$groupby4,relation=$groupby,type=Int NULL]
| | | | | | +-Add
| | | | | |   +-AttributeReference[id=6,name=a,relation=,type=Int NULL]
| | | | | |   +-Literal[value=1,type=Int]
| | | | | +-Alias[id=9,name=,alias=$groupby5,relation=$groupby,type=Double NULL]
| | | | | | +-Add
| | | | | |   +-AttributeReference[id=6,name=a,relation=,type=Int NULL]
| | | | | |   +-AttributeReference[id=7,name=b,relation=,type=Double NULL]
| | | | | +-Alias[id=10,name=,alias=$groupby6,relation=$groupby,type=Int NULL]
| | | | |   +-Add
| | | | |     +-AttributeReference[id=6,name=a,relation=,type=Int NULL]
| | | | |     +-AttributeReference[id=0,name=int_col,relation=test,type=Int NULL]
| | | | +-aggregate_expressions=
| | | |   +-[]
| | | +-project_list=
| | |   +-Alias[id=11,name=,alias=$orderby0,relation=$orderby,type=Int NULL]
| | |   | +-Add
| | |   |   +-AttributeReference[id=6,name=a,relation=,type=Int NULL]
| | |   |   +-Literal[value=1,type=Int]
| | |   +-Alias[id=12,name=,alias=$orderby1,relation=$orderby,type=Double NULL]
| | |   | +-Add
| | |   |   +-AttributeReference[id=6,name=a,relation=,type=Int NULL]
| | |   |   +-AttributeReference[id=7,name=b,relation=,type=Double NULL]
| | |   +-Alias[id=13,name=,alias=$orderby2,relation=$orderby,type=Double NULL]
| | |   | +-Add
| | |   |   +-AttributeReference[id=7,name=b,relation=,type=Double NULL]
| | |   |   +-AttributeReference[id=0,name=int_col,relation=test,type=Int NULL]
| | |   +-AttributeReference[id=6,name=a,relation=,type=Int NULL]
| | |   +-AttributeReference[id=7,name=b,relation=,type=Double NULL]
| | |   +-AttributeReference[id=4,name=c,relation=,type=Char(20)]
| | |   +-AttributeReference[id=0,name=int_col,relation=test,type=Int NULL]
| | |   +-AttributeReference[id=8,name=,alias=$groupby4,relation=$groupby,
| | |   | type=Int NULL]
| | |   +-AttributeReference[id=9,name=,alias=$groupby5,relation=$groupby,
| | |   | type=Double NULL]
| | |   +-AttributeReference[id=10,name=,alias=$groupby6,relation=$groupby,
| | |     type=Int NULL]
| | +-sort_expressions=
| |   +-AttributeReference[id=6,name=a,relation=,type=Int NULL]
| |   +-AttributeReference[id=7,name=b,relation=,type=Double NULL]
| |   +-AttributeReference[id=4,name=c,relation=,type=Char(20)]
| |   +-AttributeReference[id=11,name=,alias=$orderby0,relation=$orderby,
| |   | type=Int NULL]
| |   +-AttributeReference[id=12,name=,alias=$orderby1,relation=$orderby,
| |   | type=Double NULL]
| |   +-AttributeReference[id=13,name=,alias=$orderby2,relation=$orderby,
| |     type=Double NULL]
| +-project_list=
|   +-AttributeReference[id=6,name=a,relation=,type=Int NULL]
|   +-AttributeReference[id=7,name=b,relation=,type=Double NULL]
|   +-AttributeReference[id=4,name=c,relation=,type=Char(20)]
+-output_attributes=
  +-AttributeReference[id=6,name=a,relation=,type=Int NULL]
  +-AttributeReference[id=7,name=b,relation=,type=Double NULL]
  +-AttributeReference[id=4,name=c,relation=,type=Char(20)]
==

# WHERE and SELECT-list expressions cannot reference a SELECT-list expression by an alias.
select int_col a, a+1 from test
--
ERROR: Unrecognized attribute a (1 : 19)
select int_col a, a+1 from test
                  ^
==

select int_col a from test
where a>1
--
ERROR: Unrecognized attribute a (2 : 7)
where a>1
      ^
==

# Aliases in aggregations.
select int_col+1 as a from test group by a having count(a+1)>1 order by sum(a)+max(a/2)
--
TopLevelPlan
+-plan=Project
| +-input=Sort[is_ascending=[true],nulls_first=[false]]
| | +-input=Project
| | | +-input=Filter
| | | | +-input=Aggregate
| | | | | +-input=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=a,relation=,type=Int NULL]
| | | | | |   | +-Add
| | | | | |   |   +-AttributeReference[id=0,name=int_col,relation=test,
| | | | | |   |   | type=Int NULL]
| | | | | |   |   +-Literal[value=1,type=Int]
| | | | | |   +-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=
| | | | | | +-AttributeReference[id=6,name=a,relation=,type=Int NULL]
| | | | | +-aggregate_expressions=
| | | | |   +-Alias[id=7,name=,alias=$aggregate0,relation=$aggregate,type=Long]
| | | | |   | +-AggregateFunction[function=COUNT]
| | | | |   |   +-Add
| | | | |   |     +-AttributeReference[id=6,name=a,relation=,type=Int NULL]
| | | | |   |     +-Literal[value=1,type=Int]
| | | | |   +-Alias[id=8,name=,alias=$aggregate1,relation=$aggregate,
| | | | |   | type=Long NULL]
| | | | |   | +-AggregateFunction[function=SUM]
| | | | |   |   +-AttributeReference[id=6,name=a,relation=,type=Int NULL]
| | | | |   +-Alias[id=9,name=,alias=$aggregate2,relation=$aggregate,
| | | | |     type=Int NULL]
| | | | |     +-AggregateFunction[function=MAX]
| | | | |       +-Divide
| | | | |         +-AttributeReference[id=6,name=a,relation=,type=Int NULL]
| | | | |         +-Literal[value=2,type=Int]
| | | | +-filter_predicate=Greater
| | | |   +-AttributeReference[id=7,name=,alias=$aggregate0,relation=$aggregate,
| | | |   | type=Long]
| | | |   +-Literal[value=1,type=Int]
| | | +-project_list=
| | |   +-Alias[id=10,name=,alias=$orderby0,relation=$orderby,type=Long NULL]
| | |   | +-Add
| | |   |   +-AttributeReference[id=8,name=,alias=$aggregate1,
| | |   |   | relation=$aggregate,type=Long NULL]
| | |   |   +-AttributeReference[id=9,name=,alias=$aggregate2,
| | |   |     relation=$aggregate,type=Int NULL]
| | |   +-AttributeReference[id=6,name=a,relation=,type=Int NULL]
| | |   +-AttributeReference[id=7,name=,alias=$aggregate0,relation=$aggregate,
| | |   | type=Long]
| | |   +-AttributeReference[id=8,name=,alias=$aggregate1,relation=$aggregate,
| | |   | type=Long NULL]
| | |   +-AttributeReference[id=9,name=,alias=$aggregate2,relation=$aggregate,
| | |     type=Int NULL]
| | +-sort_expressions=
| |   +-AttributeReference[id=10,name=,alias=$orderby0,relation=$orderby,
| |     type=Long NULL]
| +-project_list=
|   +-AttributeReference[id=6,name=a,relation=,type=Int NULL]
+-output_attributes=
  +-AttributeReference[id=6,name=a,relation=,type=Int NULL]
==

select int_col a, count(a) from test
--
ERROR: Unrecognized attribute a (1 : 25)
select int_col a, count(a) from test
                        ^
==

# Group by constant by alias.
select 1+1 a from test
group by a
--
ERROR: Constant expression not allowed in GROUP BY (2 : 10)
group by a
         ^
==

# Order by constant by alias.
select 1+1 a from test
order by a
--
ERROR: Constant expression not allowed in ORDER BY (2 : 10)
order by a
         ^
==

# SELECT-list constants in expressions are inserted "inline", rather than by an attribute reference to a SELECT column.
select 1+1 a from test
group by int_col, int_col+a
order by int_col+1, count(a)
--
TopLevelPlan
+-plan=Project
| +-input=Sort[is_ascending=[true,true],nulls_first=[false,false]]
| | +-input=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=
| | | | | +-AttributeReference[id=0,name=int_col,relation=test,type=Int NULL]
| | | | | +-Alias[id=7,name=,alias=$groupby1,relation=$groupby,type=Int NULL]
| | | | |   +-Add
| | | | |     +-AttributeReference[id=0,name=int_col,relation=test,type=Int NULL]
| | | | |     +-Add
| | | | |       +-Literal[value=1,type=Int]
| | | | |       +-Literal[value=1,type=Int]
| | | | +-aggregate_expressions=
| | | |   +-Alias[id=8,name=,alias=$aggregate0,relation=$aggregate,type=Long]
| | | |     +-AggregateFunction[function=COUNT]
| | | |       +-Add
| | | |         +-Literal[value=1,type=Int]
| | | |         +-Literal[value=1,type=Int]
| | | +-project_list=
| | |   +-Alias[id=9,name=,alias=$orderby0,relation=$orderby,type=Int NULL]
| | |   | +-Add
| | |   |   +-AttributeReference[id=0,name=int_col,relation=test,type=Int NULL]
| | |   |   +-Literal[value=1,type=Int]
| | |   +-AttributeReference[id=0,name=int_col,relation=test,type=Int NULL]
| | |   +-AttributeReference[id=7,name=,alias=$groupby1,relation=$groupby,
| | |   | type=Int NULL]
| | |   +-AttributeReference[id=8,name=,alias=$aggregate0,relation=$aggregate,
| | |     type=Long]
| | +-sort_expressions=
| |   +-AttributeReference[id=9,name=,alias=$orderby0,relation=$orderby,
| |   | type=Int NULL]
| |   +-AttributeReference[id=8,name=,alias=$aggregate0,relation=$aggregate,
| |     type=Long]
| +-project_list=
|   +-Alias[id=6,name=a,relation=,type=Int]
|     +-Add
|       +-Literal[value=1,type=Int]
|       +-Literal[value=1,type=Int]
+-output_attributes=
  +-AttributeReference[id=6,name=a,relation=,type=Int]
==

select null a from test
group by int_col, int_col+a
order by int_col+1, count(a)
--
ERROR: Constant expression not allowed in GROUP BY (2 : 26)
group by int_col, int_col+a
                         ^
==

# The NULL in the SELECT is int type, but the NULL in HAVING is varchar type.
select null a from test
having a>'asdfd'
--
TopLevelPlan
+-plan=Project
| +-input=Filter
| | +-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=
| | |   +-[]
| | +-filter_predicate=Literal[value=false]
| +-project_list=
|   +-Alias[id=6,name=a,relation=,type=NullType NULL]
|     +-Literal[value=NULL,type=NullType NULL]
+-output_attributes=
  +-AttributeReference[id=6,name=a,relation=,type=NullType NULL]
==

# The is actually wierd case. The sort expression uses the attribute alias and name that are created in the project
# after sort. However, this won't affect the correctness.
select count(*) a from test
group by a
--
ERROR: SELECT-list column a contains an aggregate function, which is not allowed in GROUP BY clause (2 : 10)
group by a
         ^
==

select count(*) a from test
group by int_col
order by sum(a+int_col)
--
ERROR: Aggregation of Aggregates are not allowed (3 : 14)
order by sum(a+int_col)
             ^
==

select count(*) a from test order by a
--
TopLevelPlan
+-plan=Project
| +-input=Sort[is_ascending=[true],nulls_first=[false]]
| | +-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]
| | |     +-AggregateFunction[function=COUNT]
| | |       +-[]
| | +-sort_expressions=
| |   +-AttributeReference[id=6,name=a,relation=,type=Long]
| +-project_list=
|   +-Alias[id=6,name=a,relation=,type=Long]
|     +-AttributeReference[id=6,name=,alias=$aggregate0,relation=$aggregate,
|       type=Long]
+-output_attributes=
  +-AttributeReference[id=6,name=a,relation=,type=Long]
==

select count(*)+1 a from test order by a
--
TopLevelPlan
+-plan=Project
| +-input=Sort[is_ascending=[true],nulls_first=[false]]
| | +-input=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]
| | | |     +-AggregateFunction[function=COUNT]
| | | |       +-[]
| | | +-project_list=
| | |   +-Alias[id=7,name=a,relation=,type=Long]
| | |   | +-Add
| | |   |   +-AttributeReference[id=6,name=,alias=$aggregate0,
| | |   |   | relation=$aggregate,type=Long]
| | |   |   +-Literal[value=1,type=Int]
| | |   +-AttributeReference[id=6,name=,alias=$aggregate0,relation=$aggregate,
| | |     type=Long]
| | +-sort_expressions=
| |   +-AttributeReference[id=7,name=a,relation=,type=Long]
| +-project_list=
|   +-AttributeReference[id=7,name=a,relation=,type=Long]
+-output_attributes=
  +-AttributeReference[id=7,name=a,relation=,type=Long]
==

select count(*)+1 a from test order by a+1
--
TopLevelPlan
+-plan=Project
| +-input=Sort[is_ascending=[true],nulls_first=[false]]
| | +-input=Project
| | | +-input=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]
| | | | |     +-AggregateFunction[function=COUNT]
| | | | |       +-[]
| | | | +-project_list=
| | | |   +-Alias[id=7,name=a,relation=,type=Long]
| | | |   | +-Add
| | | |   |   +-AttributeReference[id=6,name=,alias=$aggregate0,
| | | |   |   | relation=$aggregate,type=Long]
| | | |   |   +-Literal[value=1,type=Int]
| | | |   +-AttributeReference[id=6,name=,alias=$aggregate0,relation=$aggregate,
| | | |     type=Long]
| | | +-project_list=
| | |   +-Alias[id=8,name=,alias=$orderby0,relation=$orderby,type=Long]
| | |   | +-Add
| | |   |   +-AttributeReference[id=7,name=a,relation=,type=Long]
| | |   |   +-Literal[value=1,type=Int]
| | |   +-AttributeReference[id=7,name=a,relation=,type=Long]
| | |   +-AttributeReference[id=6,name=,alias=$aggregate0,relation=$aggregate,
| | |     type=Long]
| | +-sort_expressions=
| |   +-AttributeReference[id=8,name=,alias=$orderby0,relation=$orderby,
| |     type=Long]
| +-project_list=
|   +-AttributeReference[id=7,name=a,relation=,type=Long]
+-output_attributes=
  +-AttributeReference[id=7,name=a,relation=,type=Long]
==

# Alias reference to an aggregation.
select count(*)+1 a from test
group by int_col
having a > int_col
order by a+int_col
--
TopLevelPlan
+-plan=Project
| +-input=Sort[is_ascending=[true],nulls_first=[false]]
| | +-input=Project
| | | +-input=Filter
| | | | +-input=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=
| | | | | | | +-AttributeReference[id=0,name=int_col,relation=test,type=Int NULL]
| | | | | | +-aggregate_expressions=
| | | | | |   +-Alias[id=6,name=,alias=$aggregate0,relation=$aggregate,type=Long]
| | | | | |     +-AggregateFunction[function=COUNT]
| | | | | |       +-[]
| | | | | +-project_list=
| | | | |   +-Alias[id=7,name=a,relation=,type=Long]
| | | | |   | +-Add
| | | | |   |   +-AttributeReference[id=6,name=,alias=$aggregate0,
| | | | |   |   | relation=$aggregate,type=Long]
| | | | |   |   +-Literal[value=1,type=Int]
| | | | |   +-AttributeReference[id=0,name=int_col,relation=test,type=Int NULL]
| | | | |   +-AttributeReference[id=6,name=,alias=$aggregate0,
| | | | |     relation=$aggregate,type=Long]
| | | | +-filter_predicate=Greater
| | | |   +-AttributeReference[id=7,name=a,relation=,type=Long]
| | | |   +-AttributeReference[id=0,name=int_col,relation=test,type=Int NULL]
| | | +-project_list=
| | |   +-Alias[id=8,name=,alias=$orderby0,relation=$orderby,type=Long NULL]
| | |   | +-Add
| | |   |   +-AttributeReference[id=7,name=a,relation=,type=Long]
| | |   |   +-AttributeReference[id=0,name=int_col,relation=test,type=Int NULL]
| | |   +-AttributeReference[id=7,name=a,relation=,type=Long]
| | |   +-AttributeReference[id=0,name=int_col,relation=test,type=Int NULL]
| | |   +-AttributeReference[id=6,name=,alias=$aggregate0,relation=$aggregate,
| | |     type=Long]
| | +-sort_expressions=
| |   +-AttributeReference[id=8,name=,alias=$orderby0,relation=$orderby,
| |     type=Long NULL]
| +-project_list=
|   +-AttributeReference[id=7,name=a,relation=,type=Long]
+-output_attributes=
  +-AttributeReference[id=7,name=a,relation=,type=Long]
==

# If the alias is identical to an attribute name in the FROM list, use the expression in the SELECT list.
select int_col+1 int_col, int_col*2 from test
group by int_col, test.int_col
order by int_col, count(int_col)
--
TopLevelPlan
+-plan=Project
| +-input=Sort[is_ascending=[true,true],nulls_first=[false,false]]
| | +-input=Aggregate
| | | +-input=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=int_col,relation=,type=Int NULL]
| | | |   | +-Add
| | | |   |   +-AttributeReference[id=0,name=int_col,relation=test,type=Int NULL]
| | | |   |   +-Literal[value=1,type=Int]
| | | |   +-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=
| | | | +-AttributeReference[id=6,name=int_col,relation=,type=Int NULL]
| | | | +-AttributeReference[id=0,name=int_col,relation=test,type=Int NULL]
| | | +-aggregate_expressions=
| | |   +-Alias[id=8,name=,alias=$aggregate0,relation=$aggregate,type=Long]
| | |     +-AggregateFunction[function=COUNT]
| | |       +-AttributeReference[id=6,name=int_col,relation=,type=Int NULL]
| | +-sort_expressions=
| |   +-AttributeReference[id=6,name=int_col,relation=,type=Int NULL]
| |   +-AttributeReference[id=8,name=,alias=$aggregate0,relation=$aggregate,
| |     type=Long]
| +-project_list=
|   +-AttributeReference[id=6,name=int_col,relation=,type=Int NULL]
|   +-Alias[id=7,name=,alias=(int_col*2),relation=,type=Int NULL]
|     +-Multiply
|       +-AttributeReference[id=0,name=int_col,relation=test,type=Int NULL]
|       +-Literal[value=2,type=Int]
+-output_attributes=
  +-AttributeReference[id=6,name=int_col,relation=,type=Int NULL]
  +-AttributeReference[id=7,name=,alias=(int_col*2),relation=,type=Int NULL]
==

select int_col int_col, int_col from test
group by int_col
--
ERROR: Alias int_col is ambiguous in the SELECT list (2 : 10)
group by int_col
         ^
==

select int_col int_col, int_col+1 from test
group by int_col
--
TopLevelPlan
+-plan=Project
| +-input=Aggregate
| | +-input=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=0,name=int_col,relation=,type=Int NULL]
| | |   | +-AttributeReference[id=0,name=int_col,relation=test,type=Int NULL]
| | |   +-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=
| | | +-AttributeReference[id=0,name=int_col,relation=,type=Int NULL]
| | +-aggregate_expressions=
| |   +-[]
| +-project_list=
|   +-AttributeReference[id=0,name=int_col,relation=,type=Int NULL]
|   +-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]
+-output_attributes=
  +-AttributeReference[id=0,name=int_col,relation=,type=Int NULL]
  +-AttributeReference[id=6,name=,alias=(int_col+1),relation=,type=Int NULL]
==

select int_col+1 int_col, int_col/2 from test
group by int_col
--
ERROR: Expression contains an attribute int_col, which is neither a GROUP BY expression nor in an aggregate expression (1 : 27)
select int_col+1 int_col, int_col/2 from test
                          ^
==

select * from test
group by int_col
--
ERROR: Expression contains an attribute long_col, which is neither a GROUP BY expression nor in an aggregate expression (1 : 8)
select * from test
       ^
==

select int_col+long_col/float_col a from test group by a
--
TopLevelPlan
+-plan=Project
| +-input=Aggregate
| | +-input=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=a,relation=,type=Double NULL]
| | |   | +-Add
| | |   |   +-AttributeReference[id=0,name=int_col,relation=test,type=Int NULL]
| | |   |   +-Divide
| | |   |     +-AttributeReference[id=1,name=long_col,relation=test,type=Long]
| | |   |     +-AttributeReference[id=2,name=float_col,relation=test,type=Float]
| | |   +-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=
| | | +-AttributeReference[id=6,name=a,relation=,type=Double NULL]
| | +-aggregate_expressions=
| |   +-[]
| +-project_list=
|   +-AttributeReference[id=6,name=a,relation=,type=Double NULL]
+-output_attributes=
  +-AttributeReference[id=6,name=a,relation=,type=Double NULL]
==

# Ambiguous alias.
select int_col+1 int_col, long_col int_col from test
order by int_col
--
ERROR: Alias int_col is ambiguous in the SELECT list (2 : 10)
order by int_col
         ^
==

select int_col+1 int_col, long_col int_col from test
order by 1+int_col
--
ERROR: Alias int_col is ambiguous in the SELECT list (2 : 12)
order by 1+int_col
           ^
==

# Alias is not sensitive
select int_col AliAS from test order by aliAs
--
TopLevelPlan
+-plan=Project
| +-input=Sort[is_ascending=[true],nulls_first=[false]]
| | +-input=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=0,name=AliAS,relation=,type=Int NULL]
| | |   | +-AttributeReference[id=0,name=int_col,relation=test,type=Int NULL]
| | |   +-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]
| | +-sort_expressions=
| |   +-AttributeReference[id=0,name=AliAS,relation=,type=Int NULL]
| +-project_list=
|   +-AttributeReference[id=0,name=AliAS,relation=,type=Int NULL]
+-output_attributes=
  +-AttributeReference[id=0,name=AliAS,relation=,type=Int NULL]
==

# Ordinal reference.
select * from test order by 1, 4, 2, 3, 6, 5, 1
--
TopLevelPlan
+-plan=Project
| +-input=Sort[is_ascending=[true,true,true,true,true,true,true],
| | nulls_first=[false,false,false,false,false,false,false]]
| | +-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]
| | +-sort_expressions=
| |   +-AttributeReference[id=0,name=int_col,relation=test,type=Int NULL]
| |   +-AttributeReference[id=3,name=double_col,relation=test,type=Double NULL]
| |   +-AttributeReference[id=1,name=long_col,relation=test,type=Long]
| |   +-AttributeReference[id=2,name=float_col,relation=test,type=Float]
| |   +-AttributeReference[id=5,name=vchar_col,relation=test,
| |   | type=VarChar(20) NULL]
| |   +-AttributeReference[id=4,name=char_col,relation=test,type=Char(20)]
| |   +-AttributeReference[id=0,name=int_col,relation=test,type=Int NULL]
| +-project_list=
|   +-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]
+-output_attributes=
  +-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]
==

select * from test order by 7
--
ERROR: SELECT-list position 7 is out of range [1, 6] (1 : 29)
select * from test order by 7
                            ^
==

select * from test order by 0
--
ERROR: SELECT-list position 0 is out of range [1, 6] (1 : 29)
select * from test order by 0
                            ^
==

select * from test order by -1
--
ERROR: SELECT-list position -1 is out of range [1, 6] (1 : 29)
select * from test order by -1
                            ^
==

select * from test order by 2147483647
--
ERROR: SELECT-list position 2147483647 is out of range [1, 6] (1 : 29)
select * from test order by 2147483647
                            ^
==

select * from test order by 3147483647
--
ERROR: Constant expression not allowed in ORDER BY (1 : 29)
select * from test order by 3147483647
                            ^
==

select * from test order by 1.2
--
ERROR: Constant expression not allowed in ORDER BY (1 : 29)
select * from test order by 1.2
                            ^
==

select 1+1-2 from test order by 1
--
ERROR: Constant expression not allowed in ORDER BY (1 : 33)
select 1+1-2 from test order by 1
                                ^
==

select 1+1 from test order by 1+1
--
ERROR: Constant expression not allowed in ORDER BY (1 : 31)
select 1+1 from test order by 1+1
                              ^
==

select count(*)+1 from test order by 1
--
TopLevelPlan
+-plan=Project
| +-input=Sort[is_ascending=[true],nulls_first=[false]]
| | +-input=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]
| | | |     +-AggregateFunction[function=COUNT]
| | | |       +-[]
| | | +-project_list=
| | |   +-Alias[id=7,name=,alias=(count(*)+1),relation=,type=Long]
| | |   | +-Add
| | |   |   +-AttributeReference[id=6,name=,alias=$aggregate0,
| | |   |   | relation=$aggregate,type=Long]
| | |   |   +-Literal[value=1,type=Int]
| | |   +-AttributeReference[id=6,name=,alias=$aggregate0,relation=$aggregate,
| | |     type=Long]
| | +-sort_expressions=
| |   +-AttributeReference[id=7,name=,alias=(count(*)+1),relation=,type=Long]
| +-project_list=
|   +-AttributeReference[id=7,name=,alias=(count(*)+1),relation=,type=Long]
+-output_attributes=
  +-AttributeReference[id=7,name=,alias=(count(*)+1),relation=,type=Long]
==

select count(*)+1 from test group by 1
--
ERROR: SELECT-list position 0 contains an aggregate function, which is not allowed in GROUP BY clause (1 : 38)
select count(*)+1 from test group by 1
                                     ^
==

select int_col+1 a from test group by 1 order by a+1
--
TopLevelPlan
+-plan=Project
| +-input=Sort[is_ascending=[true],nulls_first=[false]]
| | +-input=Project
| | | +-input=Aggregate
| | | | +-input=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=a,relation=,type=Int NULL]
| | | | |   | +-Add
| | | | |   |   +-AttributeReference[id=0,name=int_col,relation=test,
| | | | |   |   | type=Int NULL]
| | | | |   |   +-Literal[value=1,type=Int]
| | | | |   +-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=
| | | | | +-AttributeReference[id=6,name=a,relation=,type=Int NULL]
| | | | +-aggregate_expressions=
| | | |   +-[]
| | | +-project_list=
| | |   +-Alias[id=7,name=,alias=$orderby0,relation=$orderby,type=Int NULL]
| | |   | +-Add
| | |   |   +-AttributeReference[id=6,name=a,relation=,type=Int NULL]
| | |   |   +-Literal[value=1,type=Int]
| | |   +-AttributeReference[id=6,name=a,relation=,type=Int NULL]
| | +-sort_expressions=
| |   +-AttributeReference[id=7,name=,alias=$orderby0,relation=$orderby,
| |     type=Int NULL]
| +-project_list=
|   +-AttributeReference[id=6,name=a,relation=,type=Int NULL]
+-output_attributes=
  +-AttributeReference[id=6,name=a,relation=,type=Int NULL]
==

select 1 from test limit 1
--
ERROR: LIMIT is not supported without ORDER BY (1 : 20)
select 1 from test limit 1
                   ^
==

# WITH queries.
with subquery as (select int_col subquery_col from test)
select subquery_col from subquery
--
TopLevelPlan
+-plan=Project
| +-input=SharedSubplanReference[subplan_id=0]
| | +-output_attributes=
| |   +-AttributeReference[id=0,name=subquery_col,relation=subquery,
| |     type=Int NULL]
| +-project_list=
|   +-AttributeReference[id=0,name=subquery_col,relation=subquery,type=Int NULL]
+-shared_subplans=
| +-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=0,name=subquery_col,relation=subquery,type=Int NULL]
|       +-AttributeReference[id=0,name=int_col,relation=test,type=Int NULL]
+-output_attributes=
  +-AttributeReference[id=0,name=subquery_col,relation=subquery,type=Int NULL]
==

# Multiple WITH queries.
with subquery1 as (select int_col from test),
     subquery2 as (select int_col+5 int_col from subquery1),
     subquery3 as (select subquery2.int_col+6 int_col from subquery2, subquery1)
select * from subquery3, subquery2
--
TopLevelPlan
+-plan=Project
| +-input=MultiwayCartesianJoin
| | +-SharedSubplanReference[subplan_id=2]
| | | +-output_attributes=
| | |   +-AttributeReference[id=7,name=int_col,relation=subquery3,type=Int NULL]
| | +-SharedSubplanReference[subplan_id=1]
| |   +-output_attributes=
| |     +-AttributeReference[id=6,name=int_col,relation=subquery2,type=Int NULL]
| +-project_list=
|   +-AttributeReference[id=7,name=int_col,relation=subquery3,type=Int NULL]
|   +-AttributeReference[id=6,name=int_col,relation=subquery2,type=Int NULL]
+-shared_subplans=
| +-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=
| |   +-AttributeReference[id=0,name=int_col,relation=test,type=Int NULL]
| +-Project
| | +-input=SharedSubplanReference[subplan_id=0]
| | | +-output_attributes=
| | |   +-AttributeReference[id=0,name=int_col,relation=test,type=Int NULL]
| | +-project_list=
| |   +-Alias[id=6,name=int_col,relation=subquery2,type=Int NULL]
| |     +-Add
| |       +-AttributeReference[id=0,name=int_col,relation=test,type=Int NULL]
| |       +-Literal[value=5,type=Int]
| +-Project
|   +-input=MultiwayCartesianJoin
|   | +-SharedSubplanReference[subplan_id=1]
|   | | +-output_attributes=
|   | |   +-AttributeReference[id=6,name=int_col,relation=subquery2,
|   | |     type=Int NULL]
|   | +-SharedSubplanReference[subplan_id=0]
|   |   +-output_attributes=
|   |     +-AttributeReference[id=0,name=int_col,relation=test,type=Int NULL]
|   +-project_list=
|     +-Alias[id=7,name=int_col,relation=subquery3,type=Int NULL]
|       +-Add
|         +-AttributeReference[id=6,name=int_col,relation=subquery2,
|         | type=Int NULL]
|         +-Literal[value=6,type=Int]
+-output_attributes=
  +-AttributeReference[id=7,name=int_col,relation=subquery3,type=Int NULL]
  +-AttributeReference[id=6,name=int_col,relation=subquery2,type=Int NULL]
==

with subquery(int_col_alias, long_col_alias) as (select int_col, long_col from test)
select int_col_alias from subquery
--
TopLevelPlan
+-plan=Project
| +-input=SharedSubplanReference[subplan_id=0]
| | +-output_attributes=
| |   +-AttributeReference[id=6,name=int_col_alias,relation=,type=Int NULL]
| |   +-AttributeReference[id=7,name=long_col_alias,relation=,type=Long]
| +-project_list=
|   +-AttributeReference[id=6,name=int_col_alias,relation=,type=Int NULL]
+-shared_subplans=
| +-Project
|   +-input=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=
|   |   +-AttributeReference[id=0,name=int_col,relation=test,type=Int NULL]
|   |   +-AttributeReference[id=1,name=long_col,relation=test,type=Long]
|   +-project_list=
|     +-Alias[id=6,name=int_col_alias,relation=,type=Int NULL]
|     | +-AttributeReference[id=0,name=int_col,relation=test,type=Int NULL]
|     +-Alias[id=7,name=long_col_alias,relation=,type=Long]
|       +-AttributeReference[id=1,name=long_col,relation=test,type=Long]
+-output_attributes=
  +-AttributeReference[id=6,name=int_col_alias,relation=,type=Int NULL]
==

with subquery as (select int_col, long_col from test)
select int_col_alias from subquery aliased_subquery(int_col_alias, long_col_alias)
--
TopLevelPlan
+-plan=Project
| +-input=Project
| | +-input=SharedSubplanReference[subplan_id=0]
| | | +-output_attributes=
| | |   +-AttributeReference[id=0,name=int_col,relation=test,type=Int NULL]
| | |   +-AttributeReference[id=1,name=long_col,relation=test,type=Long]
| | +-project_list=
| |   +-Alias[id=6,name=int_col_alias,relation=,type=Int NULL]
| |   | +-AttributeReference[id=0,name=int_col,relation=test,type=Int NULL]
| |   +-Alias[id=7,name=long_col_alias,relation=,type=Long]
| |     +-AttributeReference[id=1,name=long_col,relation=test,type=Long]
| +-project_list=
|   +-AttributeReference[id=6,name=int_col_alias,relation=,type=Int NULL]
+-shared_subplans=
| +-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=
|     +-AttributeReference[id=0,name=int_col,relation=test,type=Int NULL]
|     +-AttributeReference[id=1,name=long_col,relation=test,type=Long]
+-output_attributes=
  +-AttributeReference[id=6,name=int_col_alias,relation=,type=Int NULL]
==

with subquery as (select int_col int_col_alias, long_col from test)
select int_col_alias from subquery
--
TopLevelPlan
+-plan=Project
| +-input=SharedSubplanReference[subplan_id=0]
| | +-output_attributes=
| |   +-AttributeReference[id=0,name=int_col_alias,relation=subquery,
| |   | type=Int NULL]
| |   +-AttributeReference[id=1,name=long_col,relation=test,type=Long]
| +-project_list=
|   +-AttributeReference[id=0,name=int_col_alias,relation=subquery,type=Int NULL]
+-shared_subplans=
| +-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=0,name=int_col_alias,relation=subquery,type=Int NULL]
|     | +-AttributeReference[id=0,name=int_col,relation=test,type=Int NULL]
|     +-AttributeReference[id=1,name=long_col,relation=test,type=Long]
+-output_attributes=
  +-AttributeReference[id=0,name=int_col_alias,relation=subquery,type=Int NULL]
==

# A WITH query cannot reference a subsequent WITH query.
with subquery1 as (select int_col from subquery2),
     subquery2 as (select int_col+5 from test)
select 1 from subquery2, subquery1
--
ERROR: Unrecognized relation subquery2 (1 : 40)
with subquery1 as (select int_col from subquery2),
                                       ^
==

# Self-reference.
with subquery as (select int_col from test, subquery)
select 1 from subquery
--
ERROR: Unrecognized relation subquery (1 : 45)
... subquery as (select int_col from test, subquery)
                                           ^
==

# Report an error if a WITH query is not used.
with subquery1 as (select int_col from test)
select 1 from test
--
ERROR: WITH query subquery1 is defined but not used (1 : 6)
with subquery1 as (select int_col fro...
     ^
==

with test as (select 1 from test)
select 1 from test
--
TopLevelPlan
+-plan=Project
| +-input=SharedSubplanReference[subplan_id=0]
| | +-output_attributes=
| |   +-AttributeReference[id=6,name=,alias=1,relation=test,type=Int]
| +-project_list=
|   +-Alias[id=7,name=,alias=1,relation=,type=Int]
|     +-Literal[value=1,type=Int]
+-shared_subplans=
| +-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=1,relation=test,type=Int]
|       +-Literal[value=1,type=Int]
+-output_attributes=
  +-AttributeReference[id=7,name=,alias=1,relation=,type=Int]
==

# Identifies with special characters.
# The resolve gives the internal aliases to unnamed columns. The
# following four queries are used to test that the identifiers with
# identical names as internal aliases are resolved to correct attributes.
select "$aggregate1" from (select 1 "$aggregate1", count(*), sum(int_col) from test) as a
--
TopLevelPlan
+-plan=Project
| +-input=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=7,name=,alias=$aggregate0,relation=$aggregate,type=Long]
| | |   | +-AggregateFunction[function=COUNT]
| | |   |   +-[]
| | |   +-Alias[id=8,name=,alias=$aggregate1,relation=$aggregate,type=Long NULL]
| | |     +-AggregateFunction[function=SUM]
| | |       +-AttributeReference[id=0,name=int_col,relation=test,type=Int NULL]
| | +-project_list=
| |   +-Alias[id=6,name=$aggregate1,relation=a,type=Int]
| |   | +-Literal[value=1,type=Int]
| |   +-Alias[id=7,name=,alias=count(*),relation=a,type=Long]
| |   | +-AttributeReference[id=7,name=,alias=$aggregate0,relation=$aggregate,
| |   |   type=Long]
| |   +-Alias[id=8,name=,alias=sum(int_col),relation=a,type=Long NULL]
| |     +-AttributeReference[id=8,name=,alias=$aggregate1,relation=$aggregate,
| |       type=Long NULL]
| +-project_list=
|   +-Alias[id=6,name=$aggregate1,relation=,type=Int]
|     +-AttributeReference[id=6,name=$aggregate1,relation=a,type=Int]
+-output_attributes=
  +-AttributeReference[id=6,name=$aggregate1,relation=,type=Int]
==

select "$aggregate1" from (select 1, count(*), sum(int_col) "$aggregate1" from test) as a
--
TopLevelPlan
+-plan=Project
| +-input=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=7,name=,alias=$aggregate0,relation=$aggregate,type=Long]
| | |   | +-AggregateFunction[function=COUNT]
| | |   |   +-[]
| | |   +-Alias[id=8,name=,alias=$aggregate1,relation=$aggregate,type=Long NULL]
| | |     +-AggregateFunction[function=SUM]
| | |       +-AttributeReference[id=0,name=int_col,relation=test,type=Int NULL]
| | +-project_list=
| |   +-Alias[id=6,name=,alias=1,relation=a,type=Int]
| |   | +-Literal[value=1,type=Int]
| |   +-Alias[id=7,name=,alias=count(*),relation=a,type=Long]
| |   | +-AttributeReference[id=7,name=,alias=$aggregate0,relation=$aggregate,
| |   |   type=Long]
| |   +-Alias[id=8,name=$aggregate1,relation=a,type=Long NULL]
| |     +-AttributeReference[id=8,name=,alias=$aggregate1,relation=$aggregate,
| |       type=Long NULL]
| +-project_list=
|   +-Alias[id=8,name=$aggregate1,relation=,type=Long NULL]
|     +-AttributeReference[id=8,name=$aggregate1,relation=a,type=Long NULL]
+-output_attributes=
  +-AttributeReference[id=8,name=$aggregate1,relation=,type=Long NULL]
==

select "$aggregate1" from (select 1 "$aggregate1", count(*), sum(int_col) "$aggregate1" from test) as a
--
ERROR: Ambiguous attribute $aggregate1 (1 : 8)
select "$aggregate1" from (select 1 "...
       ^
==

select "$aggregate1" from (select count(*), sum(int_col) from test) as a
--
ERROR: Unrecognized attribute $aggregate1 (1 : 8)
select "$aggregate1" from (select coun...
       ^
==

select 1 "$multi_line

name
" from test
--
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=$multi_line

name
,relation=,type=Int]
|     +-Literal[value=1,type=Int]
+-output_attributes=
  +-AttributeReference[id=6,name=$multi_line

name
,relation=,type=Int]
==

select "$multi_line

name
" from (select float_col "$multi_line

name
" from test) test
--
TopLevelPlan
+-plan=Project
| +-input=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=2,name=$multi_line

name
,relation=test,type=Float]
| |     +-AttributeReference[id=2,name=float_col,relation=test,type=Float]
| +-project_list=
|   +-Alias[id=2,name=$multi_line

name
,relation=,type=Float]
|     +-AttributeReference[id=2,name=$multi_line

name
,relation=test,type=Float]
+-output_attributes=
  +-AttributeReference[id=2,name=$multi_line

name
,relation=,type=Float]
==

select date '1998-12-12' + interval '5 day',
       date '1998-12-12' - interval '5 month',
       interval '5 year' + date '1998-12-12',
       date '1998-12-12' - date '1998-12-11',
       interval '10 day' + interval '11 day',
       interval '30 month' + interval '1 year',
       interval '30 month' - interval '1 year'
from test
--
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=(Datetime('1998-12-12')+DatetimeInterval('5 day')),
|   | relation=,type=Datetime]
|   | +-Add
|   |   +-Literal[value=1998-12-12T00:00:00,type=Datetime]
|   |   +-Literal[value=5 days 00:00:00,type=DatetimeInterval]
|   +-Alias[id=7,name=,
|   | alias=(Datetime('1998-12-12')-YearMonthInterval('5 month')),relation=,
|   | type=Datetime]
|   | +-Subtract
|   |   +-Literal[value=1998-12-12T00:00:00,type=Datetime]
|   |   +-Literal[value=5 mons,type=YearMonthInterval]
|   +-Alias[id=8,name=,
|   | alias=(YearMonthInterval('5 year')+Datetime('1998-12-12')),relation=,
|   | type=Datetime]
|   | +-Add
|   |   +-Literal[value=5 years,type=YearMonthInterval]
|   |   +-Literal[value=1998-12-12T00:00:00,type=Datetime]
|   +-Alias[id=9,name=,alias=(Datetime('1998-12-12')-Datetime('1998-12-11')),
|   | relation=,type=DatetimeInterval]
|   | +-Subtract
|   |   +-Literal[value=1998-12-12T00:00:00,type=Datetime]
|   |   +-Literal[value=1998-12-11T00:00:00,type=Datetime]
|   +-Alias[id=10,name=,
|   | alias=(DatetimeInterval('10 day')+DatetimeInterval('11 day')),relation=,
|   | type=DatetimeInterval]
|   | +-Add
|   |   +-Literal[value=10 days 00:00:00,type=DatetimeInterval]
|   |   +-Literal[value=11 days 00:00:00,type=DatetimeInterval]
|   +-Alias[id=11,name=,
|   | alias=(YearMonthInterval('30 month')+YearMonthInterval('1 year')),
|   | relation=,type=YearMonthInterval]
|   | +-Add
|   |   +-Literal[value=2 years 6 mons,type=YearMonthInterval]
|   |   +-Literal[value=1 year,type=YearMonthInterval]
|   +-Alias[id=12,name=,
|     alias=(YearMonthInterval('30 month')-YearMonthInterval('1 year')),
|     relation=,type=YearMonthInterval]
|     +-Subtract
|       +-Literal[value=2 years 6 mons,type=YearMonthInterval]
|       +-Literal[value=1 year,type=YearMonthInterval]
+-output_attributes=
  +-AttributeReference[id=6,name=,
  | alias=(Datetime('1998-12-12')+DatetimeInterval('5 day')),relation=,
  | type=Datetime]
  +-AttributeReference[id=7,name=,
  | alias=(Datetime('1998-12-12')-YearMonthInterval('5 month')),relation=,
  | type=Datetime]
  +-AttributeReference[id=8,name=,
  | alias=(YearMonthInterval('5 year')+Datetime('1998-12-12')),relation=,
  | type=Datetime]
  +-AttributeReference[id=9,name=,
  | alias=(Datetime('1998-12-12')-Datetime('1998-12-11')),relation=,
  | type=DatetimeInterval]
  +-AttributeReference[id=10,name=,
  | alias=(DatetimeInterval('10 day')+DatetimeInterval('11 day')),relation=,
  | type=DatetimeInterval]
  +-AttributeReference[id=11,name=,
  | alias=(YearMonthInterval('30 month')+YearMonthInterval('1 year')),relation=,
  | type=YearMonthInterval]
  +-AttributeReference[id=12,name=,
    alias=(YearMonthInterval('30 month')-YearMonthInterval('1 year')),relation=,
    type=YearMonthInterval]
==

select interval '10 day' * 5,
       5 * interval '10 month',
       interval '10 year' / 5
from test
--
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=(DatetimeInterval('10 day')*5),relation=,
|   | type=DatetimeInterval]
|   | +-Multiply
|   |   +-Literal[value=10 days 00:00:00,type=DatetimeInterval]
|   |   +-Literal[value=5,type=Int]
|   +-Alias[id=7,name=,alias=(5*YearMonthInterval('10 month')),relation=,
|   | type=YearMonthInterval]
|   | +-Multiply
|   |   +-Literal[value=5,type=Int]
|   |   +-Literal[value=10 mons,type=YearMonthInterval]
|   +-Alias[id=8,name=,alias=(YearMonthInterval('10 year')/5),relation=,
|     type=YearMonthInterval]
|     +-Divide
|       +-Literal[value=10 years,type=YearMonthInterval]
|       +-Literal[value=5,type=Int]
+-output_attributes=
  +-AttributeReference[id=6,name=,alias=(DatetimeInterval('10 day')*5),
  | relation=,type=DatetimeInterval]
  +-AttributeReference[id=7,name=,alias=(5*YearMonthInterval('10 month')),
  | relation=,type=YearMonthInterval]
  +-AttributeReference[id=8,name=,alias=(YearMonthInterval('10 year')/5),
    relation=,type=YearMonthInterval]
==

SELECT EXTRACT(YEAR FROM DATE '2016-01-02 10:20:30') * 10000 +
       EXTRACT(MONTH FROM DATE '2016-01-02 10:20:30') * 100 +
       EXTRACT(DAY FROM DATE '2016-01-02 10:20:30') AS date_digits
FROM generate_series(1, 1);
--
TopLevelPlan
+-plan=Project
| +-input=TableGenerator[function_name=generate_series]
| | +-AttributeReference[id=0,name=generate_series,relation=generate_series,
| |   type=Int]
| +-project_list=
|   +-Alias[id=1,name=date_digits,relation=,type=Long]
|     +-Add
|       +-Add
|       | +-Multiply
|       | | +-DateExtract(YEAR)
|       | | | +-Operand=Literal[value=2016-01-02T10:20:30,type=Datetime]
|       | | +-Literal[value=10000,type=Int]
|       | +-Multiply
|       |   +-DateExtract(MONTH)
|       |   | +-Operand=Literal[value=2016-01-02T10:20:30,type=Datetime]
|       |   +-Literal[value=100,type=Int]
|       +-DateExtract(DAY)
|         +-Operand=Literal[value=2016-01-02T10:20:30,type=Datetime]
+-output_attributes=
  +-AttributeReference[id=1,name=date_digits,relation=,type=Long]
==

SELECT COUNT(DISTINCT int_col), SUM(float_col)
FROM test
GROUP BY long_col
HAVING AVG(DISTINCT int_col + double_col) > AVG(DISTINCT float_col);
--
TopLevelPlan
+-plan=Project
| +-input=Filter
| | +-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=
| | | | +-AttributeReference[id=1,name=long_col,relation=test,type=Long]
| | | +-aggregate_expressions=
| | |   +-Alias[id=6,name=,alias=$aggregate0,relation=$aggregate,type=Long]
| | |   | +-AggregateFunction[function=COUNT,is_distinct=true]
| | |   |   +-AttributeReference[id=0,name=int_col,relation=test,type=Int NULL]
| | |   +-Alias[id=7,name=,alias=$aggregate1,relation=$aggregate,
| | |   | type=Double NULL]
| | |   | +-AggregateFunction[function=SUM]
| | |   |   +-AttributeReference[id=2,name=float_col,relation=test,type=Float]
| | |   +-Alias[id=8,name=,alias=$aggregate2,relation=$aggregate,
| | |   | type=Double NULL]
| | |   | +-AggregateFunction[function=AVG,is_distinct=true]
| | |   |   +-Add
| | |   |     +-AttributeReference[id=0,name=int_col,relation=test,type=Int NULL]
| | |   |     +-AttributeReference[id=3,name=double_col,relation=test,
| | |   |       type=Double NULL]
| | |   +-Alias[id=9,name=,alias=$aggregate3,relation=$aggregate,
| | |     type=Double NULL]
| | |     +-AggregateFunction[function=AVG,is_distinct=true]
| | |       +-AttributeReference[id=2,name=float_col,relation=test,type=Float]
| | +-filter_predicate=Greater
| |   +-AttributeReference[id=8,name=,alias=$aggregate2,relation=$aggregate,
| |   | type=Double NULL]
| |   +-AttributeReference[id=9,name=,alias=$aggregate3,relation=$aggregate,
| |     type=Double NULL]
| +-project_list=
|   +-Alias[id=6,name=,alias=COUNT(DISTINCT int_col),relation=,type=Long]
|   | +-AttributeReference[id=6,name=,alias=$aggregate0,relation=$aggregate,
|   |   type=Long]
|   +-Alias[id=7,name=,alias=SUM(float_col),relation=,type=Double NULL]
|     +-AttributeReference[id=7,name=,alias=$aggregate1,relation=$aggregate,
|       type=Double NULL]
+-output_attributes=
  +-AttributeReference[id=6,name=,alias=COUNT(DISTINCT int_col),relation=,
  | type=Long]
  +-AttributeReference[id=7,name=,alias=SUM(float_col),relation=,
    type=Double NULL]
==

SELECT i
FROM generate_series(0, 100, 3) AS gs1(i)
WHERE
  EXISTS (
    SELECT *
    FROM generate_series(0, 100, 5) AS gs2(i)
    WHERE gs1.i = gs2.i
  )
  AND NOT EXISTS (
    SELECT *
    FROM generate_series(0, 100, 10) AS gs3(i)
    WHERE gs1.i = gs3.i
  )
  AND (i < 40 OR i > 60);
--
TopLevelPlan
+-plan=Project
| +-input=Filter
| | +-input=Project
| | | +-input=TableGenerator[function_name=generate_series,table_alias=gs1]
| | | | +-AttributeReference[id=0,name=generate_series,alias=gs1,
| | | |   relation=generate_series,type=Int]
| | | +-project_list=
| | |   +-Alias[id=1,name=i,relation=,type=Int]
| | |     +-AttributeReference[id=0,name=generate_series,alias=gs1,
| | |       relation=generate_series,type=Int]
| | +-filter_predicate=And
| |   +-Exists
| |   | +-exists_subquery=SubqueryExpression
| |   |   +-subquery=Project
| |   |     +-input=Filter
| |   |     | +-input=Project
| |   |     | | +-input=TableGenerator[function_name=generate_series,
| |   |     | | | table_alias=gs2]
| |   |     | | | +-AttributeReference[id=2,name=generate_series,alias=gs2,
| |   |     | | |   relation=generate_series,type=Int]
| |   |     | | +-project_list=
| |   |     | |   +-Alias[id=3,name=i,relation=,type=Int]
| |   |     | |     +-AttributeReference[id=2,name=generate_series,alias=gs2,
| |   |     | |       relation=generate_series,type=Int]
| |   |     | +-filter_predicate=Equal
| |   |     |   +-AttributeReference[id=1,name=i,relation=,type=Int,
| |   |     |   | is_outer_reference=true]
| |   |     |   +-AttributeReference[id=3,name=i,relation=,type=Int]
| |   |     +-project_list=
| |   |       +-AttributeReference[id=3,name=i,relation=,type=Int]
| |   +-NOT
| |   | +-Exists
| |   |   +-exists_subquery=SubqueryExpression
| |   |     +-subquery=Project
| |   |       +-input=Filter
| |   |       | +-input=Project
| |   |       | | +-input=TableGenerator[function_name=generate_series,
| |   |       | | | table_alias=gs3]
| |   |       | | | +-AttributeReference[id=4,name=generate_series,alias=gs3,
| |   |       | | |   relation=generate_series,type=Int]
| |   |       | | +-project_list=
| |   |       | |   +-Alias[id=5,name=i,relation=,type=Int]
| |   |       | |     +-AttributeReference[id=4,name=generate_series,alias=gs3,
| |   |       | |       relation=generate_series,type=Int]
| |   |       | +-filter_predicate=Equal
| |   |       |   +-AttributeReference[id=1,name=i,relation=,type=Int,
| |   |       |   | is_outer_reference=true]
| |   |       |   +-AttributeReference[id=5,name=i,relation=,type=Int]
| |   |       +-project_list=
| |   |         +-AttributeReference[id=5,name=i,relation=,type=Int]
| |   +-Or
| |     +-Less
| |     | +-AttributeReference[id=1,name=i,relation=,type=Int]
| |     | +-Literal[value=40,type=Int]
| |     +-Greater
| |       +-AttributeReference[id=1,name=i,relation=,type=Int]
| |       +-Literal[value=60,type=Int]
| +-project_list=
|   +-AttributeReference[id=1,name=i,relation=,type=Int]
+-output_attributes=
  +-AttributeReference[id=1,name=i,relation=,type=Int]
==

select interval '4 day' + interval '5 year'
from test
--
ERROR: Can not apply binary operation "Add" to arguments of types DatetimeInterval and YearMonthInterval (1 : 25)
select interval '4 day' + interval '5 year'
                        ^
==

select date '1998-12-12' + date '1998-12-12'
from test
--
ERROR: Can not apply binary operation "Add" to arguments of types Datetime and Datetime (1 : 26)
select date '1998-12-12' + date '1998-12-12'
                         ^
==

select date '1998-12-12' * date '1998-12-12'
from test
--
ERROR: Can not apply binary operation "Multiply" to arguments of types Datetime and Datetime (1 : 26)
select date '1998-12-12' * date '1998-12-12'
                         ^
==

select interval '5 day' - date '1998-12-12'
from test
--
ERROR: Can not apply binary operation "Subtract" to arguments of types DatetimeInterval and Datetime (1 : 25)
select interval '5 day' - date '1998-12-12'
                        ^
==

select (interval '10 day' + interval '3 day') + 5
from test
--
ERROR: Can not apply binary operation "Add" to arguments of types DatetimeInterval and Int (1 : 47)
... (interval '10 day' + interval '3 day') + 5
                                           ^
==

select 5 / (date '1999-10-12' + yearmonth interval '10 year')
from test
--
ERROR: Can not apply binary operation "Divide" to arguments of types Int and Datetime (1 : 10)
select 5 / (date '1999-10-12' + yearmont...
         ^
==

# CASE expressions.
SELECT CASE int_col%2
           WHEN 1 THEN 'odd'
           ELSE 'even'
       END
FROM test;
--
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=CASE (int_col%2) WHEN 1 THEN 'odd' ELSE 'even' END,
|     relation=,type=VarChar(4)]
|     +-SimpleCase
|       +-case_operand=Modulo
|       | +-AttributeReference[id=0,name=int_col,relation=test,type=Int NULL]
|       | +-Literal[value=2,type=Int]
|       +-else_result_expression=Literal[value=even,type=VarChar(4)]
|       +-condition_operands=
|       | +-Literal[value=1,type=Int]
|       +-result_expressions=
|         +-Literal[value=odd,type=VarChar(3)]
+-output_attributes=
  +-AttributeReference[id=6,name=,
    alias=CASE (int_col%2) WHEN 1 THEN 'odd' ELSE 'even' END,relation=,
    type=VarChar(4)]
==

SELECT char_col, vchar_col
FROM test
WHERE CASE WHEN int_col > long_col THEN float_col
           ELSE double_col
      END > 0;
--
TopLevelPlan
+-plan=Project
| +-input=Filter
| | +-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]
| | +-filter_predicate=Greater
| |   +-SearchedCase
| |   | +-else_result_expression=AttributeReference[id=3,name=double_col,
| |   | | relation=test,type=Double NULL]
| |   | +-condition_perdicates=
| |   | | +-Greater
| |   | |   +-AttributeReference[id=0,name=int_col,relation=test,type=Int NULL]
| |   | |   +-AttributeReference[id=1,name=long_col,relation=test,type=Long]
| |   | +-conditional_result_expressions=
| |   |   +-Cast[target_type=Double NULL]
| |   |     +-operand=AttributeReference[id=2,name=float_col,relation=test,
| |   |       type=Float]
| |   +-Literal[value=0,type=Int]
| +-project_list=
|   +-AttributeReference[id=4,name=char_col,relation=test,type=Char(20)]
|   +-AttributeReference[id=5,name=vchar_col,relation=test,type=VarChar(20) NULL]
+-output_attributes=
  +-AttributeReference[id=4,name=char_col,relation=test,type=Char(20)]
  +-AttributeReference[id=5,name=vchar_col,relation=test,type=VarChar(20) NULL]
==

SELECT
  SUM(CASE double_col
        WHEN long_col +
             CASE WHEN int_col < float_col THEN 0
                  ELSE 1
             END +
             CASE WHEN char_col <> vchar_col THEN 0
                  ELSE 1
             END
             THEN 1
        WHEN float_col THEN 2
      END + int_col) AS result
FROM test;
--
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
| |         +-SimpleCase
| |         | +-case_operand=AttributeReference[id=3,name=double_col,
| |         | | relation=test,type=Double NULL]
| |         | +-condition_operands=
| |         | | +-Add
| |         | | | +-Add
| |         | | | | +-AttributeReference[id=1,name=long_col,relation=test,
| |         | | | | | type=Long]
| |         | | | | +-SearchedCase
| |         | | | |   +-else_result_expression=Literal[value=1,type=Double]
| |         | | | |   +-condition_perdicates=
| |         | | | |   | +-Less
| |         | | | |   |   +-AttributeReference[id=0,name=int_col,relation=test,
| |         | | | |   |   | type=Int NULL]
| |         | | | |   |   +-AttributeReference[id=2,name=float_col,
| |         | | | |   |     relation=test,type=Float]
| |         | | | |   +-conditional_result_expressions=
| |         | | | |     +-Literal[value=0,type=Double]
| |         | | | +-SearchedCase
| |         | | |   +-else_result_expression=Literal[value=1,type=Double]
| |         | | |   +-condition_perdicates=
| |         | | |   | +-NotEqual
| |         | | |   |   +-AttributeReference[id=4,name=char_col,relation=test,
| |         | | |   |   | type=Char(20)]
| |         | | |   |   +-AttributeReference[id=5,name=vchar_col,relation=test,
| |         | | |   |     type=VarChar(20) NULL]
| |         | | |   +-conditional_result_expressions=
| |         | | |     +-Literal[value=0,type=Double]
| |         | | +-AttributeReference[id=2,name=float_col,relation=test,
| |         | |   type=Float]
| |         | +-result_expressions=
| |         |   +-Literal[value=1,type=Int]
| |         |   +-Literal[value=2,type=Int]
| |         +-AttributeReference[id=0,name=int_col,relation=test,type=Int NULL]
| +-project_list=
|   +-Alias[id=6,name=result,relation=,type=Long NULL]
|     +-AttributeReference[id=6,name=,alias=$aggregate0,relation=$aggregate,
|       type=Long NULL]
+-output_attributes=
  +-AttributeReference[id=6,name=result,relation=,type=Long NULL]
==

# IN predicate
SELECT char_col
FROM test
WHERE int_col IN (1, 2, 3);
--
TopLevelPlan
+-plan=Project
| +-input=Filter
| | +-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]
| | +-filter_predicate=InValueList
| |   +-test_expression=AttributeReference[id=0,name=int_col,relation=test,
| |   | type=Int NULL]
| |   +-match_expressions=
| |     +-Literal[value=1,type=Int]
| |     +-Literal[value=2,type=Int]
| |     +-Literal[value=3,type=Int]
| +-project_list=
|   +-AttributeReference[id=4,name=char_col,relation=test,type=Char(20)]
+-output_attributes=
  +-AttributeReference[id=4,name=char_col,relation=test,type=Char(20)]
==

SELECT char_col
FROM test
WHERE int_col*2 NOT IN (
        long_col+1,
        CASE WHEN float_col > 0 THEN 1
             ELSE double_col END);
--
TopLevelPlan
+-plan=Project
| +-input=Filter
| | +-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]
| | +-filter_predicate=NOT
| |   +-InValueList
| |     +-test_expression=Multiply
| |     | +-AttributeReference[id=0,name=int_col,relation=test,type=Int NULL]
| |     | +-Literal[value=2,type=Int]
| |     +-match_expressions=
| |       +-Add
| |       | +-AttributeReference[id=1,name=long_col,relation=test,type=Long]
| |       | +-Literal[value=1,type=Int]
| |       +-SearchedCase
| |         +-else_result_expression=AttributeReference[id=3,name=double_col,
| |         | relation=test,type=Double NULL]
| |         +-condition_perdicates=
| |         | +-Greater
| |         |   +-AttributeReference[id=2,name=float_col,relation=test,
| |         |   | type=Float]
| |         |   +-Literal[value=0,type=Int]
| |         +-conditional_result_expressions=
| |           +-Cast[target_type=Double NULL]
| |             +-operand=Literal[value=1,type=Int]
| +-project_list=
|   +-AttributeReference[id=4,name=char_col,relation=test,type=Char(20)]
+-output_attributes=
  +-AttributeReference[id=4,name=char_col,relation=test,type=Char(20)]
==

SELECT char_col
FROM test
WHERE int_col IN (
  SELECT SUM(long_col) - 10
  FROM test
  GROUP BY vchar_col
);
--
TopLevelPlan
+-plan=Project
| +-input=Filter
| | +-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]
| | +-filter_predicate=InTableQuery
| |   +-test_expression=AttributeReference[id=0,name=int_col,relation=test,
| |   | type=Int NULL]
| |   +-table_query=SubqueryExpression
| |     +-subquery=Project
| |       +-input=Aggregate
| |       | +-input=TableReference[relation_name=Test,relation_alias=test]
| |       | | +-AttributeReference[id=6,name=int_col,relation=test,type=Int NULL]
| |       | | +-AttributeReference[id=7,name=long_col,relation=test,type=Long]
| |       | | +-AttributeReference[id=8,name=float_col,relation=test,type=Float]
| |       | | +-AttributeReference[id=9,name=double_col,relation=test,
| |       | | | type=Double NULL]
| |       | | +-AttributeReference[id=10,name=char_col,relation=test,
| |       | | | type=Char(20)]
| |       | | +-AttributeReference[id=11,name=vchar_col,relation=test,
| |       | |   type=VarChar(20) NULL]
| |       | +-grouping_expressions=
| |       | | +-AttributeReference[id=11,name=vchar_col,relation=test,
| |       | |   type=VarChar(20) NULL]
| |       | +-aggregate_expressions=
| |       |   +-Alias[id=12,name=,alias=$aggregate0,relation=$aggregate,
| |       |     type=Long NULL]
| |       |     +-AggregateFunction[function=SUM]
| |       |       +-AttributeReference[id=7,name=long_col,relation=test,
| |       |         type=Long]
| |       +-project_list=
| |         +-Alias[id=13,name=,alias=(SUM(long_col)-10),relation=,
| |           type=Long NULL]
| |           +-Subtract
| |             +-AttributeReference[id=12,name=,alias=$aggregate0,
| |             | relation=$aggregate,type=Long NULL]
| |             +-Literal[value=10,type=Int]
| +-project_list=
|   +-AttributeReference[id=4,name=char_col,relation=test,type=Char(20)]
+-output_attributes=
  +-AttributeReference[id=4,name=char_col,relation=test,type=Char(20)]
==

SELECT char_col
FROM test
WHERE int_col NOT IN (
  SELECT long_col
  FROM test
  WHERE long_col IN (1, 2)
);
--
TopLevelPlan
+-plan=Project
| +-input=Filter
| | +-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]
| | +-filter_predicate=NOT
| |   +-InTableQuery
| |     +-test_expression=AttributeReference[id=0,name=int_col,relation=test,
| |     | type=Int NULL]
| |     +-table_query=SubqueryExpression
| |       +-subquery=Project
| |         +-input=Filter
| |         | +-input=TableReference[relation_name=Test,relation_alias=test]
| |         | | +-AttributeReference[id=6,name=int_col,relation=test,
| |         | | | type=Int NULL]
| |         | | +-AttributeReference[id=7,name=long_col,relation=test,type=Long]
| |         | | +-AttributeReference[id=8,name=float_col,relation=test,
| |         | | | type=Float]
| |         | | +-AttributeReference[id=9,name=double_col,relation=test,
| |         | | | type=Double NULL]
| |         | | +-AttributeReference[id=10,name=char_col,relation=test,
| |         | | | type=Char(20)]
| |         | | +-AttributeReference[id=11,name=vchar_col,relation=test,
| |         | |   type=VarChar(20) NULL]
| |         | +-filter_predicate=InValueList
| |         |   +-test_expression=AttributeReference[id=7,name=long_col,
| |         |   | relation=test,type=Long]
| |         |   +-match_expressions=
| |         |     +-Literal[value=1,type=Long]
| |         |     +-Literal[value=2,type=Long]
| |         +-project_list=
| |           +-AttributeReference[id=7,name=long_col,relation=test,type=Long]
| +-project_list=
|   +-AttributeReference[id=4,name=char_col,relation=test,type=Char(20)]
+-output_attributes=
  +-AttributeReference[id=4,name=char_col,relation=test,type=Char(20)]
==

SELECT *
FROM generate_series(1, 10) AS gs1(i)
WHERE i IN (
  SELECT j, j+1
  FROM generate_series(1, 5) AS gs2(j)
);
--
ERROR: Subquery must return exactly one column (3 : 12)
WHERE i IN (
           ^
