| ==== |
| ---- 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 |
| ==== |