==== ---- QUERY # TODO: string literals should start as CHAR(N) and analysis # should promote as necessary insert into test_char_tmp select cast("hello" as char(5)) ==== ---- QUERY select * from test_char_tmp ---- TYPES char ---- RESULTS 'hello' ==== ---- QUERY # Regression test for IMPALA-1248 insert into test_char_tmp values (cast("hel" as char(5))) ==== ---- QUERY insert into test_char_tmp select cast(cast("hello000" as VARCHAR(8)) as char(5)) ==== ---- QUERY select * from test_char_tmp where c = cast('hel' as char(5)) ---- TYPES char ---- RESULTS 'hel ' ==== ---- QUERY insert into test_char_tmp values (NULL) ==== ---- QUERY select * from test_char_tmp as A CROSS JOIN test_char_tmp as B where B.c = cast('hel' as CHAR(5)) ORDER BY A.c ---- TYPES char, char ---- RESULTS 'hel ','hel ' 'hello','hel ' 'hello','hel ' 'NULL','hel ' ==== ---- QUERY select * from test_char_tmp as A, test_char_tmp as B where A.c = B.c AND A.c != 'hello' ---- TYPES char, char ---- RESULTS 'hel ','hel ' ==== ---- QUERY select lower(c) from test_char_tmp ORDER BY c ---- TYPES string ---- RESULTS 'hel ' 'hello' 'hello' 'NULL' ==== ---- QUERY insert into test_varchar_tmp values (cast("hello" as varchar(5))) ==== ---- QUERY select * from test_varchar_tmp ---- TYPES string ---- RESULTS 'hello' ==== ---- QUERY insert into test_varchar_tmp values (cast("xyzzzzz12" as varchar(7))) ---- CATCH would need to be cast to VARCHAR(5) ==== ---- QUERY select cast("xyzzzzz12" as varchar(-1)) ---- CATCH Syntax error ==== ---- QUERY select (cast("xyzzzzz12" as char(-1))) ---- CATCH Syntax error ==== ---- QUERY insert into test_varchar_tmp values (cast("hel" as varchar(4))) ==== ---- QUERY select * from test_varchar_tmp ---- TYPES string ---- RESULTS 'hello' 'hel' ==== ---- QUERY insert into allchars values (cast("123456" as char(5)), cast("123456" as char(140)), cast("123456" as varchar(5))) ==== ---- QUERY select cshort, clong, vc from allchars ---- TYPES char,char,string ---- RESULTS '12345','123456 ','12345' ==== ---- QUERY insert into allchars_par values (cast("123456" as char(5)), cast("123456" as char(140)), cast("123456" as varchar(5))) ==== ---- QUERY select cshort, clong, vc from allchars_par ---- TYPES char,char,string ---- RESULTS '12345','123456 ','12345' ==== ---- QUERY select count(*), count(cs), count(cl), count(vc) from chars_tiny ---- TYPES bigint,bigint,bigint,bigint ---- RESULTS 9,8,8,8 ==== ---- QUERY select * from chars_tiny where cs = cast('6a' as CHAR(2)) ---- TYPES char,char,string ---- RESULTS '6a ','6b ','6c' '6a ','6b ','6c' ==== ---- QUERY select count(*) from chars_tiny where vc != cast('5c' as varchar(3)) ---- TYPES bigint ---- RESULTS 7 ==== ---- QUERY select count(*) from chars_tiny where cs != cast('a' as char(3)) ---- TYPES bigint ---- RESULTS 7 ==== ---- QUERY select count(DISTINCT cs) from chars_tiny where vc = cast('5c' as varchar(10)) ---- TYPES bigint ---- RESULTS 1 ==== ---- QUERY select count(DISTINCT cs) from chars_tiny where cs = cast('5a' as char(10)) ---- TYPES bigint ---- RESULTS 1 ==== ---- QUERY select cs, count(cl) from functional.chars_tiny group by cs having count(vc) > 1 ---- TYPES char, bigint ---- RESULTS '6a ',2 ==== ---- QUERY select A.cs from functional.chars_tiny as A, functional.chars_tiny as B where cast(A.cs as char(1)) = cast(B.cl as char(1)) order by A.cs ---- TYPES char ---- RESULTS '1aaaa' '2aaaa' '3aaa ' '4aa ' '5a ' '6a ' '6a ' '6a ' '6a ' ==== ---- QUERY drop table if exists char_parts ==== ---- QUERY create table if not exists char_parts (vc varchar(32)) partitioned by (csp char(5), clp char(140), vcp varchar(32)) ==== ---- QUERY insert into char_parts (csp, clp, vcp, vc) select cs, cl, vc, vc from chars_tiny ==== ---- QUERY select csp, clp, vcp from char_parts where csp != cast('dne' as char(5)) order by csp ---- TYPES char, char, string ---- RESULTS '1aaaa','1bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb','1cccc' '2aaaa','2bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb','2cccccc' '3aaa ','3bbbbb ','3ccc' '4aa ','4bbbb ','4cc' '5a ','5bbb ','5c' '6a ','6b ','6c' '6a ','6b ','6c' 'a ','b ','c' ==== ---- QUERY insert into char_parts partition (csp=cast('foo' as char(5)), clp=cast('01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789xxxxxxx' as char(140)), vcp=cast('myvar' as varchar(32))) select cast('val' as varchar(32)); ==== ---- QUERY select csp, clp, vcp from char_parts where csp = cast('foo' as char(5)) ---- TYPES char, char, string ---- RESULTS 'foo ','01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789','myvar' ==== ---- QUERY drop table if exists char_parts ==== ---- QUERY # Regression test for IMPALA-1316 select A.vc from functional.chars_tiny as A join functional.chars_tiny using (vc) order by A.vc ---- TYPES string ---- RESULTS '1cccc' '2cccccc' '3ccc' '4cc' '5c' '6c' '6c' '6c' '6c' 'c' ==== ---- QUERY # Regression test for IMPALA-1322 select count(*) from functional.chars_tiny as A, functional.chars_tiny as B where cast(A.cs as CHAR(1)) = cast(B.vc as CHAR(1)); ---- TYPES bigint ---- RESULTS 9 ==== ---- QUERY select min(cs), max(vc), ndv(cl), ndv(vc), appx_median(cs), appx_median(vc) from functional.chars_tiny ---- TYPES string, string, bigint, bigint, string, string ---- RESULTS '1aaaa','c',7,7,'5a ','5c' ==== ---- QUERY # Regression test for IMPALA-1322 drop table if exists functional.t_1822; ==== ---- QUERY # Regression test for IMPALA-1322 create table functional.t_1822 (c10 char(10), c100 char(100), v100 varchar(100), v200 varchar(200), s string); ==== ---- QUERY # Regression test for IMPALA-1322 insert into functional.t_1822 values (cast('a' as char(1)), cast('a' as char(1)), cast('a' as varchar(1)), cast('a' as varchar(1)), 'a'); ==== ---- QUERY # Regression test for IMPALA-1316 select count(*) from functional.t_1822 as t join functional.t_1822 as tt on cast(tt.s as char(129)) = t.c10 and cast(tt.s as char(129)) = t.c100 and tt.c10 = t.c100; ---- TYPES bigint ---- RESULTS 1 ==== ---- QUERY # Regression test for IMPALA-1322 drop table if exists functional.t_1822; ==== ---- QUERY # Regression test for IMPALA-1316 select t1.vc, COUNT(1) FROM chars_tiny t1 GROUP BY 1 ORDER BY t1.vc ---- TYPES string, bigint ---- RESULTS '1cccc',1 '2cccccc',1 '3ccc',1 '4cc',1 '5c',1 '6c',2 'c',1 'NULL',1 ==== ---- QUERY # Regression test for IMPALA-1316 select t1.cl, COUNT(1) FROM chars_tiny t1 GROUP BY 1 ORDER BY t1.cl ---- TYPES char, bigint ---- RESULTS '1bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb',1 '2bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb',1 '3bbbbb ',1 '4bbbb ',1 '5bbb ',1 '6b ',2 'b ',1 'NULL',1 ==== ---- QUERY # Regression test for IMPALA-1339 select c20 from test_char_nulls group by c20; ---- TYPES char ---- RESULTS 'NULL' ==== ---- QUERY # Regression test for IMPALA-1339 select c40 from test_char_nulls group by c40; ---- TYPES char ---- RESULTS 'NULL' ==== ---- QUERY # Regression test for IMPALA-1339 select c60 from test_char_nulls group by c60; ---- TYPES char ---- RESULTS 'NULL' ==== ---- QUERY # Regression test for IMPALA-1339 select c80 from test_char_nulls group by c80; ---- TYPES char ---- RESULTS 'NULL' ==== ---- QUERY # Regression test for IMPALA-1339 select c81 from test_char_nulls group by c81; ---- TYPES char ---- RESULTS 'NULL' ==== ---- QUERY # Regression test for IMPALA-1339 select c82 from test_char_nulls group by c82; ---- TYPES char ---- RESULTS 'NULL' ==== ---- QUERY # Regression test for IMPALA-1339 select c100 from test_char_nulls group by c100; ---- TYPES char ---- RESULTS 'NULL' ==== ---- QUERY # Regression test for IMPALA-1339 select c120 from test_char_nulls group by c120; ---- TYPES char ---- RESULTS 'NULL' ==== ---- QUERY # Regression test for IMPALA-1339 select c140 from test_char_nulls group by c140; ---- TYPES char ---- RESULTS 'NULL' ==== ---- QUERY # Regression test for IMPALA-1344 select cs, LAST_VALUE(cs) OVER (ORDER BY cs rows between unbounded preceding and current row) FROM functional.chars_tiny; ---- TYPES char, string ---- RESULTS '1aaaa','1aaaa' '2aaaa','2aaaa' '3aaa ','3aaa ' '4aa ','4aa ' '5a ','5a ' '6a ','6a ' '6a ','6a ' 'a ','a ' 'NULL','NULL' ====