mirror of
https://github.com/apache/impala.git
synced 2025-12-30 12:02:10 -05:00
Change-Id: I6d1d0d0edd3b60e854130c4d8b9fcbe765c1aba0 Reviewed-on: http://gerrit.cloudera.org:8080/1173 Reviewed-by: Dan Hecht <dhecht@cloudera.com> Tested-by: Internal Jenkins
163 lines
3.7 KiB
Plaintext
163 lines
3.7 KiB
Plaintext
====
|
|
---- QUERY
|
|
# Basic test with a single with-clause view.
|
|
with t as (select int_col x, bigint_col y from functional.alltypestiny)
|
|
select count(x), count(y) from t
|
|
---- RESULTS
|
|
8,8
|
|
---- TYPES
|
|
BIGINT, BIGINT
|
|
====
|
|
---- QUERY
|
|
# Basic test with a single with-clause view that references a virtual view.
|
|
with t as (select abc x, xyz y from functional.complex_view)
|
|
select x, y from t order by y limit 10
|
|
---- RESULTS
|
|
2,'0'
|
|
2,'1'
|
|
---- TYPES
|
|
BIGINT, STRING
|
|
====
|
|
---- QUERY
|
|
# Basic tests with a single with-clause view with column labels.
|
|
with t(c1, c2) as (select int_col, bigint_col y from functional.alltypestiny)
|
|
select * from t limit 1
|
|
---- RESULTS
|
|
0,0
|
|
---- TYPES
|
|
INT, BIGINT
|
|
---- LABELS
|
|
C1, C2
|
|
====
|
|
---- QUERY
|
|
with t(c1) as (select int_col, bigint_col from functional.alltypestiny)
|
|
select * from t limit 1
|
|
---- RESULTS
|
|
0,0
|
|
---- TYPES
|
|
INT, BIGINT
|
|
---- LABELS
|
|
C1, BIGINT_COL
|
|
====
|
|
---- QUERY
|
|
with t(c1, c2) as (select int_col from functional.alltypestiny)
|
|
select * from t limit 1
|
|
---- CATCH
|
|
AnalysisException: WITH-clause view 't' returns 1 columns, but 2 labels were specified.
|
|
====
|
|
---- QUERY
|
|
# Multiple views in with-clause. Only one view is used.
|
|
with t1 as (select int_col x, bigint_col y from functional.alltypestiny),
|
|
t2 as (select 1 x, 10 y), t3 as (values(2 x, 20 y), (3, 30))
|
|
select x, y from t2
|
|
---- RESULTS
|
|
1,10
|
|
---- TYPES
|
|
TINYINT, TINYINT
|
|
====
|
|
---- QUERY
|
|
# Multiple views in with-clause. All views are used in a union.
|
|
with t1 as (select int_col x, bigint_col y from functional.alltypestiny),
|
|
t2 as (select 1 x, 10 y), t3 as (values(2 x, 20 y), (3, 30))
|
|
select * from t1 union all select * from t2 union all (select * from t3) order by x limit 20
|
|
---- RESULTS
|
|
0,0
|
|
0,0
|
|
0,0
|
|
0,0
|
|
1,10
|
|
1,10
|
|
1,10
|
|
1,10
|
|
1,10
|
|
2,20
|
|
3,30
|
|
---- TYPES
|
|
INT, BIGINT
|
|
====
|
|
---- QUERY
|
|
with t1(c1, c2) as (select int_col x, bigint_col y from functional.alltypestiny),
|
|
t2(c3, c4) as (select 1 x, 10 y)
|
|
select * from t1 limit 1 union all select * from t2 limit 1
|
|
---- RESULTS
|
|
0,0
|
|
1,10
|
|
---- TYPES
|
|
INT, BIGINT
|
|
---- LABELS
|
|
C1, C2
|
|
====
|
|
---- QUERY
|
|
# Multiple views in with-clause. All views are used in a join.
|
|
with t1 as (select int_col x, bigint_col y from functional.alltypes limit 2),
|
|
t2 as (select int_col x, bigint_col y from functional.alltypestiny limit 2),
|
|
t3 as (select int_col x, bigint_col y from functional.alltypessmall limit 2)
|
|
select * from t1, t2, t3 where t1.x = t2.x and t2.x = t3.x
|
|
---- RESULTS
|
|
0,0,0,0,0,0
|
|
1,10,1,10,1,10
|
|
---- TYPES
|
|
INT, BIGINT, INT, BIGINT, INT, BIGINT
|
|
====
|
|
---- QUERY
|
|
# Self-join of with-clause table to make sure the join op is properly set
|
|
# in the cloned inline-view instances.
|
|
with t as (select int_col x, bigint_col y from functional.alltypestiny order by id limit 2)
|
|
select * from t t1 left outer join t t2 on t1.y = t2.x full outer join t t3 on t2.y = t3.x
|
|
order by t1.x limit 10
|
|
---- RESULTS
|
|
0,0,0,0,0,0
|
|
1,10,NULL,NULL,NULL,NULL
|
|
NULL,NULL,NULL,NULL,1,10
|
|
---- TYPES
|
|
INT, BIGINT, INT, BIGINT, INT, BIGINT
|
|
====
|
|
---- QUERY
|
|
# Multiple with clauses. One for the UnionStmt and one for each union operand.
|
|
with t1 as (values('a', 'b'))
|
|
(with t2 as (values('c', 'd')) select * from t2) union all
|
|
(with t3 as (values('e', 'f')) select * from t3)
|
|
---- RESULTS
|
|
'e','f'
|
|
'c','d'
|
|
---- TYPES
|
|
STRING, STRING
|
|
====
|
|
---- QUERY
|
|
# With clause containing an order by element that should be cloned properly.
|
|
with t1 as (select tinyint_col, count(*) from alltypesagg group by 1
|
|
order by 1 desc nulls last limit 10) select * from t1;
|
|
---- RESULTS
|
|
9,1000
|
|
8,1000
|
|
7,1000
|
|
6,1000
|
|
5,1000
|
|
4,1000
|
|
3,1000
|
|
2,1000
|
|
1,1000
|
|
NULL,2000
|
|
---- TYPES
|
|
TINYINT, BIGINT
|
|
====
|
|
---- QUERY
|
|
# IMPALA-1357: Analysis of WithClause pollutes global state
|
|
select 1 from (
|
|
with w as (
|
|
select 1 from alltypestiny
|
|
where exists (select 1 from alltypestiny))
|
|
select 1 from w) tt
|
|
---- RESULTS
|
|
1
|
|
1
|
|
1
|
|
1
|
|
1
|
|
1
|
|
1
|
|
1
|
|
---- TYPES
|
|
TINYINT
|
|
====
|