blob: 3723375b49abbfe0ac73036f32f716365f1613f1 [file] [log] [blame]
====
---- QUERY
-- this is a test for a comment line above a blank line
-- we do not care about the results, just the comment
select * from functional.alltypestiny;
---- RUNTIME_PROFILE
row_regex: .*PlannerType: CalcitePlanner.*
====
---- QUERY
create table calcite_alltypes as select * from functional.alltypes order by id limit 5;
---- RUNTIME_PROFILE
row_regex: .*PlannerType: OriginalPlanner.*
====
---- QUERY
select * from calcite_alltypes;
---- RESULTS
0,true,0,0,0,0,0,0,'01/01/09','0',2009-01-01 00:00:00,2009,1
1,false,1,1,1,10,1.100000023841858,10.1,'01/01/09','1',2009-01-01 00:01:00,2009,1
2,true,2,2,2,20,2.200000047683716,20.2,'01/01/09','2',2009-01-01 00:02:00.100000000,2009,1
3,false,3,3,3,30,3.299999952316284,30.3,'01/01/09','3',2009-01-01 00:03:00.300000000,2009,1
4,true,4,4,4,40,4.400000095367432,40.4,'01/01/09','4',2009-01-01 00:04:00.600000000,2009,1
---- TYPES
int,boolean,tinyint,smallint,int,bigint,float,double,string,string,timestamp,int,int
---- RUNTIME_PROFILE
row_regex: .*PlannerType: CalcitePlanner.*
====
---- QUERY
select string_col, tinyint_col from calcite_alltypes;
---- RUNTIME_PROFILE
row_regex: .*PlannerType: CalcitePlanner.*
---- RESULTS
'0',0
'1',1
'2',2
'3',3
'4',4
---- TYPES
string,tinyint
====
---- QUERY
select d1,d2,d3,d4,d5,d6 from functional.decimal_tbl;
---- RESULTS
1234,2222,1.2345678900,0.12345678900000000000000000000000000000,12345.78900,1
12345,333,123.4567890000,0.12345678900000000000000000000000000000,11.22000,1
12345,333,1234.5678900000,0.12345678900000000000000000000000000000,0.10000,1
132842,333,12345.6789000000,0.12345678900000000000000000000000000000,0.77889,1
2345,111,12.3456789000,0.12345678900000000000000000000000000000,3.14100,1
---- TYPES
decimal,decimal,decimal,decimal,decimal,decimal
---- RUNTIME_PROFILE
row_regex: .*PlannerType: CalcitePlanner.*
====
---- QUERY
select * from functional.chars_tiny;
---- RESULTS
'1aaaa','1bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb','1cccc'
'2aaaa','2bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb','2cccccc'
'3aaa ','3bbbbb ','3ccc'
'4aa ','4bbbb ','4cc'
'5a ','5bbb ','5c'
'6a ','6b ','6c'
'6a ','6b ','6c'
'NULL','NULL','NULL'
'a ','b ','c'
---- TYPES
# varchar shows up as string, just as it does in the chars.test file
char,char,string
---- HS2_TYPES
char,char,varchar
---- RUNTIME_PROFILE
row_regex: .*PlannerType: CalcitePlanner.*
====
---- QUERY
select * from functional.date_tbl;
---- RESULTS
0,0001-01-01,0001-01-01
1,0001-12-31,0001-01-01
10,2017-11-28,1399-06-27
11,NULL,1399-06-27
12,2018-12-31,1399-06-27
2,0002-01-01,0001-01-01
20,0001-06-21,2017-11-27
21,0001-06-22,2017-11-27
22,0001-06-23,2017-11-27
23,0001-06-24,2017-11-27
24,0001-06-25,2017-11-27
25,0001-06-26,2017-11-27
26,0001-06-27,2017-11-27
27,0001-06-28,2017-11-27
28,0001-06-29,2017-11-27
29,2017-11-28,2017-11-27
3,1399-12-31,0001-01-01
30,9999-12-01,9999-12-31
31,9999-12-31,9999-12-31
4,2017-11-28,0001-01-01
5,9999-12-31,0001-01-01
6,NULL,0001-01-01
---- TYPES
int,date,date
---- RUNTIME_PROFILE
row_regex: .*PlannerType: CalcitePlanner.*
====
---- QUERY
# creating a new table. We cannot use any functions at this point to
# manipulate the binary data (as the binary test currently does), so
# this just grabs the rows that can be checked.
create table ascii_binary as select * from functional.binary_tbl where id <= 4;
select * from ascii_binary;
---- RESULTS
1,'ascii','binary1'
2,'ascii','binary2'
3,'null','NULL'
4,'empty',''
---- TYPES
int,string,binary
---- RUNTIME_PROFILE
row_regex: .*PlannerType: CalcitePlanner.*
====
---- QUERY
# Tiny test for Calcite. At the point of this commit, very few functions work. This
# is a test that includes one of the functions that does.
# The ultimate goal is to include all tests in the testing framework, so there is
# no need to be extensive about testing in this file.
select bigint_col, abs(cast(-3 as bigint)), abs(-3000000000) from functional.alltypestiny;
---- RESULTS
0,3,3000000000
10,3,3000000000
0,3,3000000000
10,3,3000000000
0,3,3000000000
10,3,3000000000
0,3,3000000000
10,3,3000000000
---- TYPES
bigint,bigint,bigint
---- RUNTIME_PROFILE
row_regex: .*PlannerType: CalcitePlanner.*
====
---- QUERY
# Tiny test for Calcite. At the point of this commit, very few functions work. This
# is a test that includes one of the functions that does.
# The ultimate goal is to include all tests in the testing framework, so there is
# no need to be extensive about testing in this file.
select cast(cast('2005-12-13 08:00:00' as string) AS TIMESTAMP) from functional.alltypestiny;
---- RESULTS
2005-12-13 08:00:00
2005-12-13 08:00:00
2005-12-13 08:00:00
2005-12-13 08:00:00
2005-12-13 08:00:00
2005-12-13 08:00:00
2005-12-13 08:00:00
2005-12-13 08:00:00
---- TYPES
timestamp
---- RUNTIME_PROFILE
row_regex: .*PlannerType: CalcitePlanner.*
====
---- QUERY
select * from calcite_alltypes where bigint_col = 20;
---- RESULTS
2,true,2,2,2,20,2.200000047683716,20.2,'01/01/09','2',2009-01-01 00:02:00.100000000,2009,1
---- TYPES
int,boolean,tinyint,smallint,int,bigint,float,double,string,string,timestamp,int,int
---- RUNTIME_PROFILE
row_regex: .*PlannerType: CalcitePlanner.*
====
---- QUERY
select tinyint_col from calcite_alltypes where bigint_col = 20;
---- RESULTS
2
---- TYPES
tinyint
---- RUNTIME_PROFILE
row_regex: .*PlannerType: CalcitePlanner.*
====
---- QUERY
# Values test
select abs(cast(-8 as bigint));
---- RESULTS
8
---- TYPES
bigint
---- RUNTIME_PROFILE
row_regex: .*PlannerType: CalcitePlanner.*
====
---- QUERY
select 'hello'
---- RESULTS
'hello'
---- TYPES
string
---- RUNTIME_PROFILE
row_regex: .*PlannerType: CalcitePlanner.*
====
---- QUERY
# Union test
select 3 union select 4;
---- RESULTS
3
4
---- TYPES
tinyint
---- RUNTIME_PROFILE
row_regex: .*PlannerType: CalcitePlanner.*
====
---- QUERY
select * from (values (1)) union (values (2), (3));
---- RESULTS
1
2
3
---- TYPES
tinyint
====
---- QUERY
# sort test
select id, abs(bigint_col) from functional.alltypestiny where id > 3 order by abs(bigint_col), id;
---- RESULTS
4,0
6,0
5,10
7,10
---- TYPES
int, bigint
---- RUNTIME_PROFILE
row_regex: .*PlannerType: CalcitePlanner.*
====
---- QUERY
# sort test
select id, abs(bigint_col) from functional.alltypestiny where id >= 3 order by abs(bigint_col), id;
---- RESULTS
4,0
6,0
3,10
5,10
7,10
---- TYPES
int, bigint
---- RUNTIME_PROFILE
row_regex: .*PlannerType: CalcitePlanner.*
====
---- QUERY
# sort test
select id, abs(bigint_col) from functional.alltypestiny where id < 3 order by abs(bigint_col), id;
---- RESULTS
0,0
2,0
1,10
---- TYPES
int, bigint
---- RUNTIME_PROFILE
row_regex: .*PlannerType: CalcitePlanner.*
====
---- QUERY
# sort test
select id, abs(bigint_col) from functional.alltypestiny where id <= 3 order by abs(bigint_col), id;
---- RESULTS
0,0
2,0
1,10
3,10
---- TYPES
int, bigint
---- RUNTIME_PROFILE
row_regex: .*PlannerType: CalcitePlanner.*
====
---- QUERY
# sort test
select id, abs(bigint_col) from functional.alltypestiny where id != 3 order by abs(bigint_col), id;
---- RESULTS
0,0
2,0
4,0
6,0
1,10
5,10
7,10
---- TYPES
int, bigint
---- RUNTIME_PROFILE
row_regex: .*PlannerType: CalcitePlanner.*
====
---- QUERY
# sort test
select id, abs(bigint_col) from functional.alltypestiny where id != 3 order by abs(bigint_col) desc, id;
---- RESULTS
1,10
5,10
7,10
0,0
2,0
4,0
6,0
---- TYPES
int, bigint
---- RUNTIME_PROFILE
row_regex: .*PlannerType: CalcitePlanner.*
====
---- QUERY
# sort test
select group_str, some_nulls from functional.nullrows where group_str = 'a' order by some_nulls nulls first;
---- RESULTS
'a','NULL'
'a','NULL'
'a','NULL'
'a','NULL'
'a','a'
---- TYPES
string, string
---- RUNTIME_PROFILE
row_regex: .*PlannerType: CalcitePlanner.*
====
---- QUERY
# sort test
select group_str, some_nulls from functional.nullrows where group_str = 'a' order by some_nulls nulls last;
---- RESULTS
'a','a'
'a','NULL'
'a','NULL'
'a','NULL'
'a','NULL'
---- TYPES
string, string
---- RUNTIME_PROFILE
row_regex: .*PlannerType: CalcitePlanner.*
====
---- QUERY
# limit test
select bigint_col from functional.alltypestiny where bigint_col = 0 limit 2;
---- RESULTS
0
0
---- TYPES
bigint
====
---- QUERY
# limit test
select id, abs(bigint_col) from functional.alltypestiny where id > 2 order by abs(bigint_col), id limit 3;
---- RESULTS
4,0
6,0
3,10
---- TYPES
int, bigint
---- RUNTIME_PROFILE
row_regex: .*PlannerType: CalcitePlanner.*
====
---- QUERY
# aggregation test
select sum(bigint_col) from functional.alltypestiny;
---- RESULTS
40
---- TYPES
bigint
---- RUNTIME_PROFILE
row_regex: .*PlannerType: CalcitePlanner.*
====
---- QUERY
# aggregation test
select id, sum(bigint_col) from functional.alltypestiny group by id order by id;
---- RESULTS
0,0
1,10
2,0
3,10
4,0
5,10
6,0
7,10
---- TYPES
int, bigint
---- RUNTIME_PROFILE
row_regex: .*PlannerType: CalcitePlanner.*
====
---- QUERY
# aggregation test
select id, sum(bigint_col) from functional.alltypestiny group by id
having sum(bigint_col) > cast(5 as bigint) order by id;
---- RESULTS
1,10
3,10
5,10
7,10
---- TYPES
int, bigint
---- RUNTIME_PROFILE
row_regex: .*PlannerType: CalcitePlanner.*
====
---- QUERY
# aggregation test
select id, bigint_col, sum(bigint_col)
from functional.alltypestiny
group by grouping sets((id, bigint_col), (id), (bigint_col))
order by id, bigint_col;
---- RESULTS
0,0,0
0,NULL,0
1,10,10
1,NULL,10
2,0,0
2,NULL,0
3,10,10
3,NULL,10
4,0,0
4,NULL,0
5,10,10
5,NULL,10
6,0,0
6,NULL,0
7,10,10
7,NULL,10
NULL,0,0
NULL,10,40
---- TYPES
int, bigint, bigint
---- RUNTIME_PROFILE
row_regex: .*PlannerType: CalcitePlanner.*
====
---- QUERY
# having test
select id, sum(bigint_col) from functional.alltypestiny group by id having sum(bigint_col) > cast(5 as bigint) order by id;
---- RESULTS
1,10
3,10
5,10
7,10
---- TYPES
int, bigint
---- RUNTIME_PROFILE
row_regex: .*PlannerType: CalcitePlanner.*
====
---- QUERY
# join test
select a.id, a.bigint_col, b.bigint_col
from functional.alltypestiny a
join functional.alltypessmall b
on (a.id = b.id) order by a.id;
---- RESULTS
0,0,0
1,10,10
2,0,20
3,10,30
4,0,40
5,10,50
6,0,60
7,10,70
---- TYPES
int, bigint, bigint
---- RUNTIME_PROFILE
row_regex: .*PlannerType: CalcitePlanner.*
====
---- QUERY
# join inequality test
select a.id, b.id, a.bigint_col, b.bigint_col
from functional.alltypestiny a
join functional.alltypessmall b
on (b.id < a.id)
where b.id = 0
order by a.id;
---- RESULTS
1,0,10,0
2,0,0,0
3,0,10,0
4,0,0,0
5,0,10,0
6,0,0,0
7,0,10,0
---- TYPES
int, int, bigint, bigint
---- RUNTIME_PROFILE
row_regex: .*PlannerType: CalcitePlanner.*
====
---- QUERY
# cross join test
select a.id, b.id, a.bigint_col, b.bigint_col
from functional.alltypestiny a, functional.alltypessmall b
where b.id < 2
order by a.id, b.id;
---- RESULTS
0,0,0,0
0,1,0,10
1,0,10,0
1,1,10,10
2,0,0,0
2,1,0,10
3,0,10,0
3,1,10,10
4,0,0,0
4,1,0,10
5,0,10,0
5,1,10,10
6,0,0,0
6,1,0,10
7,0,10,0
7,1,10,10
---- TYPES
int, int, bigint, bigint
---- RUNTIME_PROFILE
row_regex: .*PlannerType: CalcitePlanner.*
====
---- QUERY
# left outer join test
select a.id, a.bigint_col, b.bigint_col
from functional.alltypessmall a
left outer join functional.alltypestiny b
on (a.id = b.id)
where a.id < 20
order by a.id
---- RESULTS
0,0,0
1,10,10
2,20,0
3,30,10
4,40,0
5,50,10
6,60,0
7,70,10
8,80,NULL
9,90,NULL
10,0,NULL
11,10,NULL
12,20,NULL
13,30,NULL
14,40,NULL
15,50,NULL
16,60,NULL
17,70,NULL
18,80,NULL
19,90,NULL
---- TYPES
int, bigint, bigint
---- RUNTIME_PROFILE
row_regex: .*PlannerType: CalcitePlanner.*
====
---- QUERY
select bigint_col + bigint_col, int_col + int_col, smallint_col + smallint_col,
tinyint_col + tinyint_col, smallint_col + tinyint_col
from functional.alltypestiny;
---- RESULTS
0,0,0,0,0
0,0,0,0,0
0,0,0,0,0
0,0,0,0,0
20,2,2,2,2
20,2,2,2,2
20,2,2,2,2
20,2,2,2,2
---- TYPES
bigint, bigint, int, smallint, int
---- RUNTIME_PROFILE
row_regex: .*PlannerType: CalcitePlanner.*
====
---- QUERY
select float_col + int_col, float_col + 3.0, 3.0 + 3.0
from functional.alltypestiny;
---- RESULTS
0.0,3.00000000,6.0
2.10000002384,4.10000002,6.0
0.0,3.00000000,6.0
2.10000002384,4.10000002,6.0
0.0,3.00000000,6.0
2.10000002384,4.10000002,6.0
0.0,3.00000000,6.0
2.10000002384,4.10000002,6.0
---- TYPES
double, decimal, decimal
---- RUNTIME_PROFILE
row_regex: .*PlannerType: CalcitePlanner.*
====
---- QUERY
select bigint_col - bigint_col, int_col - int_col, smallint_col - smallint_col,
tinyint_col - tinyint_col, smallint_col - tinyint_col
from functional.alltypestiny;
---- RESULTS
0,0,0,0,0
0,0,0,0,0
0,0,0,0,0
0,0,0,0,0
0,0,0,0,0
0,0,0,0,0
0,0,0,0,0
0,0,0,0,0
---- TYPES
bigint, bigint, int, smallint, int
====
---- QUERY
select float_col - int_col, float_col - 3.0, 3.0 - 1.8
from functional.alltypestiny;
---- RESULTS
0.0,-3.00000000,1.2
0.1000000238418579,-1.89999998,1.2
0.0,-3.00000000,1.2
0.1000000238418579,-1.89999998,1.2
0.0,-3.00000000,1.2
0.1000000238418579,-1.89999998,1.2
0.0,-3.00000000,1.2
0.1000000238418579,-1.89999998,1.2
---- TYPES
double, decimal, decimal
====
---- QUERY
select bigint_col * bigint_col, int_col * int_col, smallint_col * smallint_col,
tinyint_col * tinyint_col, smallint_col * tinyint_col
from functional.alltypestiny;
---- RESULTS
0,0,0,0,0
100,1,1,1,1
0,0,0,0,0
100,1,1,1,1
0,0,0,0,0
100,1,1,1,1
0,0,0,0,0
100,1,1,1,1
---- TYPES
bigint, bigint, int, smallint, int
====
---- QUERY
select float_col * int_col, float_col * 3.0, 3.0 * 2.0
from functional.alltypestiny;
---- RESULTS
0,0,6.00
1.100000023841858,3.300000071525574,6.00
0,0,6.00
1.100000023841858,3.300000071525574,6.00
0,0,6.00
1.100000023841858,3.300000071525574,6.00
0,0,6.00
1.100000023841858,3.300000071525574,6.00
---- TYPES
double, double, decimal
====
---- QUERY
select bigint_col / bigint_col, int_col / int_col, smallint_col / smallint_col,
tinyint_col / tinyint_col
from functional.alltypestiny;
---- RESULTS
1,1,1,1
NaN,NaN,NaN,NaN
1,1,1,1
NaN,NaN,NaN,NaN
1,1,1,1
NaN,NaN,NaN,NaN
1,1,1,1
NaN,NaN,NaN,NaN
---- TYPES
double, double, double, double
====
---- QUERY
select float_col / int_col, float_col / 3.0, 3.0 / 2.0
from functional.alltypestiny;
---- RESULTS
1.100000023841858,0.36666667,1.500000
NaN,0.00000000,1.500000
1.100000023841858,0.36666667,1.500000
NaN,0.00000000,1.500000
1.100000023841858,0.36666667,1.500000
NaN,0.00000000,1.500000
1.100000023841858,0.36666667,1.500000
NaN,0.00000000,1.500000
---- TYPES
double, decimal, decimal
====
---- QUERY
select bigint_col % bigint_col, int_col % int_col, smallint_col % smallint_col,
tinyint_col % tinyint_col, smallint_col % tinyint_col
from functional.alltypestiny;
---- RESULTS
0,0,0,0,0
NULL,NULL,NULL,NULL,NULL
0,0,0,0,0
NULL,NULL,NULL,NULL,NULL
0,0,0,0,0
NULL,NULL,NULL,NULL,NULL
0,0,0,0,0
NULL,NULL,NULL,NULL,NULL
---- TYPES
bigint, int, smallint, tinyint, smallint
====
---- QUERY
select float_col % 3.0, 3.0 % 2.0
from functional.alltypestiny;
---- RESULTS
0.000000000,1.0
1.100000024,1.0
0.000000000,1.0
1.100000024,1.0
0.000000000,1.0
1.100000024,1.0
0.000000000,1.0
1.100000024,1.0
---- TYPES
decimal, decimal
====
---- QUERY
# Union test
select 3 union select 458;
---- RESULTS
3
458
---- TYPES
smallint
====
---- QUERY
# Union test
select 3 union select 458;
---- RESULTS
3
458
---- TYPES
smallint
---- RUNTIME_PROFILE
row_regex: .*PlannerType: CalcitePlanner.*
====
---- QUERY
# case test
select tinyint_col, case tinyint_col when 1 then 5 else 458 end from functional.alltypestiny;
---- RESULTS
0,458
0,458
0,458
0,458
1,5
1,5
1,5
1,5
---- TYPES
tinyint,smallint
---- RUNTIME_PROFILE
row_regex: .*PlannerType: CalcitePlanner.*
====
---- QUERY
# case test
select tinyint_col, case tinyint_col when 1 then 5 when 2 then 7 else 458 end from functional.alltypestiny;
---- RESULTS
0,458
0,458
0,458
0,458
1,5
1,5
1,5
1,5
---- TYPES
tinyint,smallint
---- RUNTIME_PROFILE
row_regex: .*PlannerType: CalcitePlanner.*
====
---- QUERY
# case test
select tinyint_col, case tinyint_col when 0 then 458 else 5 end from functional.alltypestiny;
---- RESULTS
0,458
0,458
0,458
0,458
1,5
1,5
1,5
1,5
---- TYPES
tinyint,smallint
---- RUNTIME_PROFILE
row_regex: .*PlannerType: CalcitePlanner.*
====
---- QUERY
# case test
select tinyint_col, case tinyint_col when 0 then 458 end from functional.alltypestiny;
---- RESULTS
0,458
0,458
0,458
0,458
1,NULL
1,NULL
1,NULL
1,NULL
---- TYPES
tinyint,smallint
---- RUNTIME_PROFILE
row_regex: .*PlannerType: CalcitePlanner.*
====
---- QUERY
# case test other format (the calcite rexnode should be the same)
select tinyint_col, case when tinyint_col=00 then 458 else 5 end from functional.alltypestiny;
---- RESULTS
0,458
0,458
0,458
0,458
1,5
1,5
1,5
1,5
---- TYPES
tinyint,smallint
---- RUNTIME_PROFILE
row_regex: .*PlannerType: CalcitePlanner.*
====
---- QUERY
# or test
select (tinyint_col = 459) or (tinyint_col = 458) or (tinyint_col = 1) from functional.alltypestiny;
---- RESULTS
false
false
false
false
true
true
true
true
---- TYPES
boolean
---- RUNTIME_PROFILE
row_regex: .*PlannerType: CalcitePlanner.*
====
---- QUERY
# and test
select (tinyint_col != 459) and (tinyint_col != 458) and (tinyint_col = 1) from functional.alltypestiny;
---- RESULTS
false
false
false
false
true
true
true
true
---- TYPES
boolean
---- RUNTIME_PROFILE
row_regex: .*PlannerType: CalcitePlanner.*
====
---- QUERY
# sum cast tinyint agg test
select sum(tinyint_col) from functional.alltypestiny;
---- RESULTS
4
---- TYPES
bigint
---- RUNTIME_PROFILE
row_regex: .*PlannerType: CalcitePlanner.*
====
---- QUERY
# duplicate test from analytics-fn.test, delete when it is activated.
select date_part,
count(date_col) over (partition by date_part),
min(date_col) over (partition by date_part),
max(date_col) over (partition by date_part)
from functional.date_tbl
order by date_part;
---- RESULTS: VERIFY_IS_EQUAL_SORTED
0001-01-01,6,0001-01-01,9999-12-31
0001-01-01,6,0001-01-01,9999-12-31
0001-01-01,6,0001-01-01,9999-12-31
0001-01-01,6,0001-01-01,9999-12-31
0001-01-01,6,0001-01-01,9999-12-31
0001-01-01,6,0001-01-01,9999-12-31
0001-01-01,6,0001-01-01,9999-12-31
1399-06-27,2,2017-11-28,2018-12-31
1399-06-27,2,2017-11-28,2018-12-31
1399-06-27,2,2017-11-28,2018-12-31
2017-11-27,10,0001-06-21,2017-11-28
2017-11-27,10,0001-06-21,2017-11-28
2017-11-27,10,0001-06-21,2017-11-28
2017-11-27,10,0001-06-21,2017-11-28
2017-11-27,10,0001-06-21,2017-11-28
2017-11-27,10,0001-06-21,2017-11-28
2017-11-27,10,0001-06-21,2017-11-28
2017-11-27,10,0001-06-21,2017-11-28
2017-11-27,10,0001-06-21,2017-11-28
2017-11-27,10,0001-06-21,2017-11-28
9999-12-31,2,9999-12-01,9999-12-31
9999-12-31,2,9999-12-01,9999-12-31
---- TYPES
DATE, BIGINT, DATE, DATE
---- RUNTIME_PROFILE
row_regex: .*PlannerType: CalcitePlanner.*
====
---- QUERY
# Test ROWS windows with start boundaries
select id,
count(id) over (order by id rows between 3 preceding and 3 preceding) c1,
count(id) over (order by id rows between 3 preceding and 2 preceding) c2,
count(id) over (order by id rows between 3 preceding and 1 preceding) c3,
count(id) over (order by id rows between 3 preceding and current row) c4,
count(id) over (order by id rows between 3 preceding and 1 following) c5,
count(id) over (order by id rows between 3 preceding and 2 following) c6,
count(id) over (order by id rows between 3 preceding and 3 following) c7,
count(id) over (order by id rows between 2 preceding and 3 following) c8,
count(id) over (order by id rows between 1 preceding and 3 following) c9,
count(id) over (order by id rows between current row and 3 following) c10,
count(id) over (order by id rows between 1 following and 3 following) c11,
count(id) over (order by id rows between 2 following and 3 following) c12,
count(id) over (order by id rows between 3 following and 3 following) c13
from functional.alltypes where id < 8
---- RESULTS: VERIFY_IS_EQUAL_SORTED
0,0,0,0,1,2,3,4,4,4,4,3,2,1
1,0,0,1,2,3,4,5,5,5,4,3,2,1
2,0,1,2,3,4,5,6,6,5,4,3,2,1
3,1,2,3,4,5,6,7,6,5,4,3,2,1
4,1,2,3,4,5,6,7,6,5,4,3,2,1
5,1,2,3,4,5,6,6,5,4,3,2,1,0
6,1,2,3,4,5,5,5,4,3,2,1,0,0
7,1,2,3,4,4,4,4,3,2,1,0,0,0
---- TYPES
INT, BIGINT, BIGINT, BIGINT, BIGINT, BIGINT, BIGINT, BIGINT, BIGINT, BIGINT, BIGINT, BIGINT, BIGINT, BIGINT
====
---- QUERY
# make sure this parses
select '1' as 'hello';
---- RESULTS
'1'
---- TYPES
string
====
---- QUERY
# make sure this parses
select "1" as "hello";
---- RESULTS
'1'
---- TYPES
string
---- RUNTIME_PROFILE
row_regex: .*PlannerType: CalcitePlanner.*
====
---- QUERY
explain select * from functional.alltypestiny;
---- RESULTS: VERIFY_IS_SUBSET
row_regex:.*01:EXCHANGE.*
row_regex:.*00:SCAN.*
---- RUNTIME_PROFILE
row_regex: .*PlannerType: CalcitePlanner.*
====
---- QUERY
set explain_level=3;
explain select * from functional.alltypestiny;
---- RESULTS: VERIFY_IS_SUBSET
row_regex:.*01:EXCHANGE.*
row_regex:.*00:SCAN.*
row_regex:.*partitions=4/4.*
---- RUNTIME_PROFILE
row_regex: .*PlannerType: CalcitePlanner.*
====
---- QUERY
select count(*) from functional.alltypes_view;
---- RESULTS
7300
---- TYPES
BIGINT
====
---- QUERY
select * from functional.alltypes_view order by id limit 10;
---- RESULTS
0,true,0,0,0,0,0,0,'01/01/09','0',2009-01-01 00:00:00,2009,1
1,false,1,1,1,10,1.100000023841858,10.1,'01/01/09','1',2009-01-01 00:01:00,2009,1
2,true,2,2,2,20,2.200000047683716,20.2,'01/01/09','2',2009-01-01 00:02:00.100000000,2009,1
3,false,3,3,3,30,3.299999952316284,30.3,'01/01/09','3',2009-01-01 00:03:00.300000000,2009,1
4,true,4,4,4,40,4.400000095367432,40.4,'01/01/09','4',2009-01-01 00:04:00.600000000,2009,1
5,false,5,5,5,50,5.5,50.5,'01/01/09','5',2009-01-01 00:05:00.100000000,2009,1
6,true,6,6,6,60,6.599999904632568,60.59999999999999,'01/01/09','6',2009-01-01 00:06:00.150000000,2009,1
7,false,7,7,7,70,7.699999809265137,70.7,'01/01/09','7',2009-01-01 00:07:00.210000000,2009,1
8,true,8,8,8,80,8.800000190734863,80.8,'01/01/09','8',2009-01-01 00:08:00.280000000,2009,1
9,false,9,9,9,90,9.899999618530273,90.89999999999999,'01/01/09','9',2009-01-01 00:09:00.360000000,2009,1
---- TYPES
INT, BOOLEAN, TINYINT, SMALLINT, INT, BIGINT, FLOAT, DOUBLE, STRING, STRING, TIMESTAMP, INT, INT
====
---- QUERY
select id from functional.alltypes_view order by id limit 1;
---- RESULTS
0
---- TYPES
INT
====
---- QUERY
select alltypes_view.id from functional.alltypes_view order by id limit 1;
---- RESULTS
0
---- TYPES
INT
====
---- QUERY
select functional.alltypes_view.id from functional.alltypes_view order by id limit 1;
---- RESULTS
0
---- TYPES
INT
====
---- QUERY
select count(*) from functional.alltypes_view, functional.alltypestiny
where functional.alltypes_view.id = functional.alltypestiny.id;
---- RESULTS
8
---- TYPES
BIGINT
====
---- QUERY
select * from functional.alltypes_view, functional.alltypestiny
where functional.alltypes_view.id = functional.alltypestiny.id
order by functional.alltypes_view.id;
---- RESULTS
0,true,0,0,0,0,0,0,'01/01/09','0',2009-01-01 00:00:00,2009,1,0,true,0,0,0,0,0,0,'01/01/09','0',2009-01-01 00:00:00,2009,1
1,false,1,1,1,10,1.100000023841858,10.1,'01/01/09','1',2009-01-01 00:01:00,2009,1,1,false,1,1,1,10,1.100000023841858,10.1,'01/01/09','1',2009-01-01 00:01:00,2009,1
2,true,2,2,2,20,2.200000047683716,20.2,'01/01/09','2',2009-01-01 00:02:00.100000000,2009,1,2,true,0,0,0,0,0,0,'02/01/09','0',2009-02-01 00:00:00,2009,2
3,false,3,3,3,30,3.299999952316284,30.3,'01/01/09','3',2009-01-01 00:03:00.300000000,2009,1,3,false,1,1,1,10,1.100000023841858,10.1,'02/01/09','1',2009-02-01 00:01:00,2009,2
4,true,4,4,4,40,4.400000095367432,40.4,'01/01/09','4',2009-01-01 00:04:00.600000000,2009,1,4,true,0,0,0,0,0,0,'03/01/09','0',2009-03-01 00:00:00,2009,3
5,false,5,5,5,50,5.5,50.5,'01/01/09','5',2009-01-01 00:05:00.100000000,2009,1,5,false,1,1,1,10,1.100000023841858,10.1,'03/01/09','1',2009-03-01 00:01:00,2009,3
6,true,6,6,6,60,6.599999904632568,60.59999999999999,'01/01/09','6',2009-01-01 00:06:00.150000000,2009,1,6,true,0,0,0,0,0,0,'04/01/09','0',2009-04-01 00:00:00,2009,4
7,false,7,7,7,70,7.699999809265137,70.7,'01/01/09','7',2009-01-01 00:07:00.210000000,2009,1,7,false,1,1,1,10,1.100000023841858,10.1,'04/01/09','1',2009-04-01 00:01:00,2009,4
---- TYPES
INT, BOOLEAN, TINYINT, SMALLINT, INT, BIGINT, FLOAT, DOUBLE, STRING, STRING, TIMESTAMP, INT, INT, INT, BOOLEAN, TINYINT, SMALLINT, INT, BIGINT, FLOAT, DOUBLE, STRING, STRING, TIMESTAMP, INT, INT
====
---- QUERY
select id from functional.alltypes_view, functional.alltypestiny
where functional.alltypes_view.id = functional.alltypestiny.id
order by functional.alltypes_view.id;
---- CATCH
SqlValidatorException: Column 'ID' is ambiguous
====
---- QUERY
select alltypestiny.id from functional.alltypes_view, functional.alltypestiny
where functional.alltypes_view.id = functional.alltypestiny.id
order by functional.alltypes_view.id;
---- RESULTS
0
1
2
3
4
5
6
7
---- TYPES
INT
====
---- QUERY
select functional.alltypestiny.id from functional.alltypes_view, functional.alltypestiny
where functional.alltypes_view.id = functional.alltypestiny.id
order by id;
---- RESULTS
0
1
2
3
4
5
6
7
---- TYPES
INT
====
---- QUERY
# This test case makes sure that the definition of a regular view could be correctly
# parsed during view expansion even if database, table, and column names are enclosed in
# backticks.
select * from functional.alltypes_hive_view where id = 0;
---- RESULTS
0,true,0,0,0,0,0,0,'01/01/09','0',2009-01-01 00:00:00,2009,1
---- TYPES
INT, BOOLEAN, TINYINT, SMALLINT, INT, BIGINT, FLOAT, DOUBLE, STRING, STRING, TIMESTAMP, INT, INT
====
---- QUERY
# should fail at analysis time, not runtime
# IMPALA-14199: We can improve on this error message
select ds_hll_sketch(smallint_col) from functional_parquet.alltypessmall;
---- CATCH
Cannot infer return type for DS_HLL_SKETCH; operand types: [SMALLINT]
=====
---- QUERY
# This test case ensures that the TypeCoercion code is in place, which gets kicked
# in with the "in" clause
select count(*) from functional.alltypesagg
where 10.1 not in (tinyint_col, smallint_col, int_col, bigint_col, float_col, double_col)
---- RESULTS
8990
---- TYPES
bigint
====
---- QUERY
# Test for varchar ndv with both 1 and 2 parameters
select ndv(varchar_col), ndv(varchar_col, 1) from functional.chars_medium;
---- RESULTS
963,1030
---- TYPES
bigint, bigint
====
---- QUERY
# Test for varchar ndv with out of range ndv for second parameter
select ndv(varchar_col, 11) from functional.chars_medium;
---- CATCH
Error in NDV function, second parameter needs to be between 1 and 10.
====
---- QUERY
# Test for varchar ndv with out of range ndv for second parameter
select ndv(varchar_col, 0) from functional.chars_medium;
---- CATCH
Error in NDV function, second parameter needs to be between 1 and 10.
====
---- QUERY
# Labels test
select 2, 1 + 1;
---- LABELS
2,1 + 1
---- RESULTS
2,2
---- TYPES
tinyint,smallint
---- RUNTIME_PROFILE
row_regex: .*PlannerType: CalcitePlanner.*
====
---- QUERY
# Labels test
select length('hello')
---- LABELS
length('hello')
---- RESULTS
5
---- TYPES
int
---- RUNTIME_PROFILE
row_regex: .*PlannerType: CalcitePlanner.*
====
---- QUERY
# IMPALA-14561: Should not be using MySqlDialect to capture labels
select timestamp_col + interval 3 milliseconds from functional.alltypestiny;
---- LABELS
expr$0
---- RUNTIME_PROFILE
row_regex: .*PlannerType: CalcitePlanner.*
====
---- QUERY
select cast('nan' as double), cast('inf' as float);
---- RESULTS
NaN,Inf
---- TYPES
DOUBLE, FLOAT
====
---- QUERY
select count(*) from functional.alltypestiny;
---- RUNTIME_PROFILE
row_regex: .*SPOOL_QUERY_RESULTS=0.*
====
---- QUERY
select * from (values(0));
---- RUNTIME_PROFILE
row_regex: .*SPOOL_QUERY_RESULTS=0.*
====
---- QUERY
# IMPALA-14421: Repeat of test in chars.test since Calcite
# was returning the wrong types
WITH numbered AS (
SELECT *, row_number() over (order by cs) as rn
FROM functional.chars_tiny)
SELECT *
FROM (
SELECT CASE WHEN rn % 2 = 0 THEN cs END cs,
CASE WHEN rn % 2 = 1 THEN cl END cl,
CASE WHEN rn % 3 = 0 THEN vc END vc
FROM numbered
UNION ALL
SELECT CASE WHEN rn % 2 = 1 THEN cs END cs,
CASE WHEN rn % 2 = 0 THEN cl END cl,
CASE WHEN rn % 3 = 1 THEN vc END vc
FROM numbered) v
---- TYPES
char, char, string
---- HS2_TYPES
char, char, varchar
---- RESULTS
'NULL','1bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb','NULL'
'2aaaa','NULL','NULL'
'NULL','3bbbbb ','3ccc'
'4aa ','NULL','NULL'
'NULL','5bbb ','NULL'
'6a ','NULL','6c'
'NULL','6b ','NULL'
'a ','NULL','NULL'
'NULL','NULL','NULL'
'1aaaa','NULL','1cccc'
'NULL','2bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb','NULL'
'3aaa ','NULL','NULL'
'NULL','4bbbb ','4cc'
'5a ','NULL','NULL'
'NULL','6b ','NULL'
'6a ','NULL','6c'
'NULL','b ','NULL'
'NULL','NULL','NULL'
====