set hive.explain.user=false;
SET hive.vectorized.execution.enabled=true;
SET hive.vectorized.execution.reduce.enabled=true;
set hive.fetch.task.conversion=none;
set hive.cli.print.header=true;
set hive.mapred.mode=nonstrict;
set hive.merge.mapfiles = false;
set hive.merge.mapredfiles = false;

-- SORT_QUERY_RESULTS

-- Set merging to false above to make the explain more readable

CREATE TABLE T1_text_n11(a STRING, b STRING, c STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY ' ' STORED AS TEXTFILE; 

LOAD DATA LOCAL INPATH '../../data/files/grouping_sets.txt' INTO TABLE T1_text_n11;

CREATE TABLE T1_n161 STORED AS ORC AS SELECT * FROM T1_text_n11;

-- This tests that cubes and rollups work fine inside sub-queries.
EXPLAIN VECTORIZATION DETAIL
SELECT * FROM
(SELECT a, b, count(*) from T1_n161 where a < 3 group by a, b with cube) subq1
join
(SELECT a, b, count(*) from T1_n161 where a < 3 group by a, b with cube) subq2
on subq1.a = subq2.a;

EXPLAIN VECTORIZATION DETAIL
SELECT * FROM
(SELECT a, b, count(*) from T1_n161 where a < 3 group by cube(a, b) ) subq1
join
(SELECT a, b, count(*) from T1_n161 where a < 3 group by cube(a, b) ) subq2
on subq1.a = subq2.a;

SELECT * FROM
(SELECT a, b, count(*) from T1_n161 where a < 3 group by a, b with cube) subq1
join
(SELECT a, b, count(*) from T1_n161 where a < 3 group by a, b with cube) subq2
on subq1.a = subq2.a;

set hive.new.job.grouping.set.cardinality=2;

-- Since 4 grouping sets would be generated for each sub-query, an additional MR job should be created
-- for each of them
EXPLAIN VECTORIZATION DETAIL
SELECT * FROM
(SELECT a, b, count(*) from T1_n161 where a < 3 group by a, b with cube) subq1
join
(SELECT a, b, count(*) from T1_n161 where a < 3 group by a, b with cube) subq2
on subq1.a = subq2.a;

SELECT * FROM
(SELECT a, b, count(*) from T1_n161 where a < 3 group by a, b with cube) subq1
join
(SELECT a, b, count(*) from T1_n161 where a < 3 group by a, b with cube) subq2
on subq1.a = subq2.a;

