You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by jc...@apache.org on 2016/11/11 01:40:46 UTC
[3/5] hive git commit: HIVE-15119: Support standard syntax for ROLLUP
& CUBE (Vineet Garg, reviewed by Jesus Camacho Rodriguez)
http://git-wip-us.apache.org/repos/asf/hive/blob/444af207/ql/src/test/results/clientpositive/groupby_cube1.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/groupby_cube1.q.out b/ql/src/test/results/clientpositive/groupby_cube1.q.out
index b9cfeb2..0258bb8 100644
--- a/ql/src/test/results/clientpositive/groupby_cube1.q.out
+++ b/ql/src/test/results/clientpositive/groupby_cube1.q.out
@@ -77,6 +77,65 @@ STAGE PLANS:
Processor Tree:
ListSink
+PREHOOK: query: EXPLAIN
+SELECT key, val, count(1) FROM T1 GROUP BY CUBE(key, val)
+PREHOOK: type: QUERY
+POSTHOOK: query: EXPLAIN
+SELECT key, val, count(1) FROM T1 GROUP BY CUBE(key, val)
+POSTHOOK: type: QUERY
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-0 depends on stages: Stage-1
+
+STAGE PLANS:
+ Stage: Stage-1
+ Map Reduce
+ Map Operator Tree:
+ TableScan
+ alias: t1
+ Statistics: Num rows: 1 Data size: 30 Basic stats: COMPLETE Column stats: NONE
+ Select Operator
+ expressions: key (type: string), val (type: string)
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 1 Data size: 30 Basic stats: COMPLETE Column stats: NONE
+ Group By Operator
+ aggregations: count(1)
+ keys: _col0 (type: string), _col1 (type: string), '0' (type: string)
+ mode: hash
+ outputColumnNames: _col0, _col1, _col2, _col3
+ Statistics: Num rows: 4 Data size: 120 Basic stats: COMPLETE Column stats: NONE
+ Reduce Output Operator
+ key expressions: _col0 (type: string), _col1 (type: string), _col2 (type: string)
+ sort order: +++
+ Map-reduce partition columns: _col0 (type: string), _col1 (type: string), _col2 (type: string)
+ Statistics: Num rows: 4 Data size: 120 Basic stats: COMPLETE Column stats: NONE
+ value expressions: _col3 (type: bigint)
+ Reduce Operator Tree:
+ Group By Operator
+ aggregations: count(VALUE._col0)
+ keys: KEY._col0 (type: string), KEY._col1 (type: string), KEY._col2 (type: string)
+ mode: mergepartial
+ outputColumnNames: _col0, _col1, _col3
+ Statistics: Num rows: 2 Data size: 60 Basic stats: COMPLETE Column stats: NONE
+ pruneGroupingSetId: true
+ Select Operator
+ expressions: _col0 (type: string), _col1 (type: string), _col3 (type: bigint)
+ outputColumnNames: _col0, _col1, _col2
+ Statistics: Num rows: 2 Data size: 60 Basic stats: COMPLETE Column stats: NONE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 2 Data size: 60 Basic stats: COMPLETE Column stats: NONE
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
PREHOOK: query: SELECT key, val, count(1) FROM T1 GROUP BY key, val with cube
PREHOOK: type: QUERY
PREHOOK: Input: default@t1
http://git-wip-us.apache.org/repos/asf/hive/blob/444af207/ql/src/test/results/clientpositive/groupby_cube_multi_gby.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/groupby_cube_multi_gby.q.out b/ql/src/test/results/clientpositive/groupby_cube_multi_gby.q.out
index 992fd2d..6eaef7e 100644
--- a/ql/src/test/results/clientpositive/groupby_cube_multi_gby.q.out
+++ b/ql/src/test/results/clientpositive/groupby_cube_multi_gby.q.out
@@ -17,7 +17,7 @@ POSTHOOK: Output: default@t2
PREHOOK: query: explain from src
insert into table t1 select
key, GROUPING__ID
-group by key, value with cube
+group by cube(key, value)
insert into table t2 select
key, value
group by key, value grouping sets ((key), (key, value))
@@ -25,7 +25,7 @@ PREHOOK: type: QUERY
POSTHOOK: query: explain from src
insert into table t1 select
key, GROUPING__ID
-group by key, value with cube
+group by cube(key, value)
insert into table t2 select
key, value
group by key, value grouping sets ((key), (key, value))
http://git-wip-us.apache.org/repos/asf/hive/blob/444af207/ql/src/test/results/clientpositive/groupby_grouping_id1.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/groupby_grouping_id1.q.out b/ql/src/test/results/clientpositive/groupby_grouping_id1.q.out
index 136edeb..9ef7615 100644
--- a/ql/src/test/results/clientpositive/groupby_grouping_id1.q.out
+++ b/ql/src/test/results/clientpositive/groupby_grouping_id1.q.out
@@ -40,6 +40,32 @@ NULL 28 2
8 NULL 1
8 18 3
8 28 3
+PREHOOK: query: SELECT key, val, GROUPING__ID from T1 group by cube(key, val)
+PREHOOK: type: QUERY
+PREHOOK: Input: default@t1
+#### A masked pattern was here ####
+POSTHOOK: query: SELECT key, val, GROUPING__ID from T1 group by cube(key, val)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@t1
+#### A masked pattern was here ####
+NULL NULL 0
+NULL 11 2
+NULL 12 2
+NULL 13 2
+NULL 17 2
+NULL 18 2
+NULL 28 2
+1 NULL 1
+1 11 3
+2 NULL 1
+2 12 3
+3 NULL 1
+3 13 3
+7 NULL 1
+7 17 3
+8 NULL 1
+8 18 3
+8 28 3
PREHOOK: query: SELECT GROUPING__ID, key, val from T1 group by key, val with rollup
PREHOOK: type: QUERY
PREHOOK: Input: default@t1
@@ -60,6 +86,26 @@ POSTHOOK: Input: default@t1
1 8 NULL
3 8 18
3 8 28
+PREHOOK: query: SELECT GROUPING__ID, key, val from T1 group by rollup (key, val)
+PREHOOK: type: QUERY
+PREHOOK: Input: default@t1
+#### A masked pattern was here ####
+POSTHOOK: query: SELECT GROUPING__ID, key, val from T1 group by rollup (key, val)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@t1
+#### A masked pattern was here ####
+0 NULL NULL
+1 1 NULL
+3 1 11
+1 2 NULL
+3 2 12
+1 3 NULL
+3 3 13
+1 7 NULL
+3 7 17
+1 8 NULL
+3 8 18
+3 8 28
PREHOOK: query: SELECT key, val, GROUPING__ID, CASE WHEN GROUPING__ID == 0 THEN "0" WHEN GROUPING__ID == 1 THEN "1" WHEN GROUPING__ID == 2 THEN "2" WHEN GROUPING__ID == 3 THEN "3" ELSE "nothing" END from T1 group by key, val with cube
PREHOOK: type: QUERY
PREHOOK: Input: default@t1
@@ -86,3 +132,29 @@ NULL 28 2 2
8 NULL 1 1
8 18 3 3
8 28 3 3
+PREHOOK: query: SELECT key, val, GROUPING__ID, CASE WHEN GROUPING__ID == 0 THEN "0" WHEN GROUPING__ID == 1 THEN "1" WHEN GROUPING__ID == 2 THEN "2" WHEN GROUPING__ID == 3 THEN "3" ELSE "nothing" END from T1 group by cube(key, val)
+PREHOOK: type: QUERY
+PREHOOK: Input: default@t1
+#### A masked pattern was here ####
+POSTHOOK: query: SELECT key, val, GROUPING__ID, CASE WHEN GROUPING__ID == 0 THEN "0" WHEN GROUPING__ID == 1 THEN "1" WHEN GROUPING__ID == 2 THEN "2" WHEN GROUPING__ID == 3 THEN "3" ELSE "nothing" END from T1 group by cube(key, val)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@t1
+#### A masked pattern was here ####
+NULL NULL 0 0
+NULL 11 2 2
+NULL 12 2 2
+NULL 13 2 2
+NULL 17 2 2
+NULL 18 2 2
+NULL 28 2 2
+1 NULL 1 1
+1 11 3 3
+2 NULL 1 1
+2 12 3 3
+3 NULL 1 1
+3 13 3 3
+7 NULL 1 1
+7 17 3 3
+8 NULL 1 1
+8 18 3 3
+8 28 3 3
http://git-wip-us.apache.org/repos/asf/hive/blob/444af207/ql/src/test/results/clientpositive/groupby_grouping_sets1.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/groupby_grouping_sets1.q.out b/ql/src/test/results/clientpositive/groupby_grouping_sets1.q.out
index 5b70906..aebba0d 100644
--- a/ql/src/test/results/clientpositive/groupby_grouping_sets1.q.out
+++ b/ql/src/test/results/clientpositive/groupby_grouping_sets1.q.out
@@ -51,6 +51,29 @@ NULL 3 1
5 2 1
8 NULL 1
8 1 1
+PREHOOK: query: SELECT a, b, count(*) from T1 group by cube(a, b)
+PREHOOK: type: QUERY
+PREHOOK: Input: default@t1
+#### A masked pattern was here ####
+POSTHOOK: query: SELECT a, b, count(*) from T1 group by cube(a, b)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@t1
+#### A masked pattern was here ####
+NULL NULL 6
+NULL 1 2
+NULL 2 3
+NULL 3 1
+1 NULL 1
+1 1 1
+2 NULL 2
+2 2 1
+2 3 1
+3 NULL 1
+3 2 1
+5 NULL 1
+5 2 1
+8 NULL 1
+8 1 1
PREHOOK: query: SELECT a, b, count(*) FROM T1 GROUP BY a, b GROUPING SETS (a, (a, b), b, ())
PREHOOK: type: QUERY
PREHOOK: Input: default@t1
http://git-wip-us.apache.org/repos/asf/hive/blob/444af207/ql/src/test/results/clientpositive/groupby_grouping_sets2.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/groupby_grouping_sets2.q.out b/ql/src/test/results/clientpositive/groupby_grouping_sets2.q.out
index f00bb5b..09d52c0 100644
--- a/ql/src/test/results/clientpositive/groupby_grouping_sets2.q.out
+++ b/ql/src/test/results/clientpositive/groupby_grouping_sets2.q.out
@@ -100,6 +100,90 @@ STAGE PLANS:
Processor Tree:
ListSink
+PREHOOK: query: EXPLAIN
+SELECT a, b, count(*) from T1 group by cube(a, b)
+PREHOOK: type: QUERY
+POSTHOOK: query: EXPLAIN
+SELECT a, b, count(*) from T1 group by cube(a, b)
+POSTHOOK: type: QUERY
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-2 depends on stages: Stage-1
+ Stage-0 depends on stages: Stage-2
+
+STAGE PLANS:
+ Stage: Stage-1
+ Map Reduce
+ Map Operator Tree:
+ TableScan
+ alias: t1
+ Statistics: Num rows: 1 Data size: 36 Basic stats: COMPLETE Column stats: NONE
+ Select Operator
+ expressions: a (type: string), b (type: string)
+ outputColumnNames: a, b
+ Statistics: Num rows: 1 Data size: 36 Basic stats: COMPLETE Column stats: NONE
+ Group By Operator
+ aggregations: count()
+ keys: a (type: string), b (type: string)
+ mode: hash
+ outputColumnNames: _col0, _col1, _col2
+ Statistics: Num rows: 1 Data size: 36 Basic stats: COMPLETE Column stats: NONE
+ Reduce Output Operator
+ key expressions: _col0 (type: string), _col1 (type: string)
+ sort order: ++
+ Map-reduce partition columns: _col0 (type: string), _col1 (type: string)
+ Statistics: Num rows: 1 Data size: 36 Basic stats: COMPLETE Column stats: NONE
+ value expressions: _col2 (type: bigint)
+ Reduce Operator Tree:
+ Group By Operator
+ aggregations: count(VALUE._col0)
+ keys: KEY._col0 (type: string), KEY._col1 (type: string), '0' (type: string)
+ mode: partials
+ outputColumnNames: _col0, _col1, _col2, _col3
+ Statistics: Num rows: 4 Data size: 144 Basic stats: COMPLETE Column stats: NONE
+ File Output Operator
+ compressed: false
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe
+
+ Stage: Stage-2
+ Map Reduce
+ Map Operator Tree:
+ TableScan
+ Reduce Output Operator
+ key expressions: _col0 (type: string), _col1 (type: string), _col2 (type: string)
+ sort order: +++
+ Map-reduce partition columns: _col0 (type: string), _col1 (type: string), _col2 (type: string)
+ Statistics: Num rows: 4 Data size: 144 Basic stats: COMPLETE Column stats: NONE
+ value expressions: _col3 (type: bigint)
+ Reduce Operator Tree:
+ Group By Operator
+ aggregations: count(VALUE._col0)
+ keys: KEY._col0 (type: string), KEY._col1 (type: string), KEY._col2 (type: string)
+ mode: final
+ outputColumnNames: _col0, _col1, _col3
+ Statistics: Num rows: 2 Data size: 72 Basic stats: COMPLETE Column stats: NONE
+ pruneGroupingSetId: true
+ Select Operator
+ expressions: _col0 (type: string), _col1 (type: string), _col3 (type: bigint)
+ outputColumnNames: _col0, _col1, _col2
+ Statistics: Num rows: 2 Data size: 72 Basic stats: COMPLETE Column stats: NONE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 2 Data size: 72 Basic stats: COMPLETE Column stats: NONE
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
PREHOOK: query: SELECT a, b, count(*) from T1 group by a, b with cube
PREHOOK: type: QUERY
PREHOOK: Input: default@t1
http://git-wip-us.apache.org/repos/asf/hive/blob/444af207/ql/src/test/results/clientpositive/groupby_grouping_sets3.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/groupby_grouping_sets3.q.out b/ql/src/test/results/clientpositive/groupby_grouping_sets3.q.out
index 5c69907..04ece02 100644
--- a/ql/src/test/results/clientpositive/groupby_grouping_sets3.q.out
+++ b/ql/src/test/results/clientpositive/groupby_grouping_sets3.q.out
@@ -95,6 +95,65 @@ STAGE PLANS:
Processor Tree:
ListSink
+PREHOOK: query: EXPLAIN
+SELECT a, b, avg(c), count(*) from T1 group by cube(a, b)
+PREHOOK: type: QUERY
+POSTHOOK: query: EXPLAIN
+SELECT a, b, avg(c), count(*) from T1 group by cube(a, b)
+POSTHOOK: type: QUERY
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-0 depends on stages: Stage-1
+
+STAGE PLANS:
+ Stage: Stage-1
+ Map Reduce
+ Map Operator Tree:
+ TableScan
+ alias: t1
+ Statistics: Num rows: 1 Data size: 72 Basic stats: COMPLETE Column stats: NONE
+ Select Operator
+ expressions: a (type: string), b (type: string), c (type: string)
+ outputColumnNames: a, b, c
+ Statistics: Num rows: 1 Data size: 72 Basic stats: COMPLETE Column stats: NONE
+ Group By Operator
+ aggregations: avg(c), count()
+ keys: a (type: string), b (type: string), '0' (type: string)
+ mode: hash
+ outputColumnNames: _col0, _col1, _col2, _col3, _col4
+ Statistics: Num rows: 4 Data size: 288 Basic stats: COMPLETE Column stats: NONE
+ Reduce Output Operator
+ key expressions: _col0 (type: string), _col1 (type: string), _col2 (type: string)
+ sort order: +++
+ Map-reduce partition columns: _col0 (type: string), _col1 (type: string), _col2 (type: string)
+ Statistics: Num rows: 4 Data size: 288 Basic stats: COMPLETE Column stats: NONE
+ value expressions: _col3 (type: struct<count:bigint,sum:double,input:string>), _col4 (type: bigint)
+ Reduce Operator Tree:
+ Group By Operator
+ aggregations: avg(VALUE._col0), count(VALUE._col1)
+ keys: KEY._col0 (type: string), KEY._col1 (type: string), KEY._col2 (type: string)
+ mode: mergepartial
+ outputColumnNames: _col0, _col1, _col3, _col4
+ Statistics: Num rows: 2 Data size: 144 Basic stats: COMPLETE Column stats: NONE
+ pruneGroupingSetId: true
+ Select Operator
+ expressions: _col0 (type: string), _col1 (type: string), _col3 (type: double), _col4 (type: bigint)
+ outputColumnNames: _col0, _col1, _col2, _col3
+ Statistics: Num rows: 2 Data size: 144 Basic stats: COMPLETE Column stats: NONE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 2 Data size: 144 Basic stats: COMPLETE Column stats: NONE
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
PREHOOK: query: SELECT a, b, avg(c), count(*) from T1 group by a, b with cube
PREHOOK: type: QUERY
PREHOOK: Input: default@t1
http://git-wip-us.apache.org/repos/asf/hive/blob/444af207/ql/src/test/results/clientpositive/groupby_grouping_sets4.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/groupby_grouping_sets4.q.out b/ql/src/test/results/clientpositive/groupby_grouping_sets4.q.out
index b7e9329..095113a 100644
--- a/ql/src/test/results/clientpositive/groupby_grouping_sets4.q.out
+++ b/ql/src/test/results/clientpositive/groupby_grouping_sets4.q.out
@@ -171,6 +171,153 @@ STAGE PLANS:
Processor Tree:
ListSink
+PREHOOK: query: EXPLAIN
+SELECT * FROM
+(SELECT a, b, count(*) from T1 where a < 3 group by cube(a, b) ) subq1
+join
+(SELECT a, b, count(*) from T1 where a < 3 group by cube(a, b) ) subq2
+on subq1.a = subq2.a
+PREHOOK: type: QUERY
+POSTHOOK: query: EXPLAIN
+SELECT * FROM
+(SELECT a, b, count(*) from T1 where a < 3 group by cube(a, b) ) subq1
+join
+(SELECT a, b, count(*) from T1 where a < 3 group by cube(a, b) ) subq2
+on subq1.a = subq2.a
+POSTHOOK: type: QUERY
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-2 depends on stages: Stage-1, Stage-3
+ Stage-3 is a root stage
+ Stage-0 depends on stages: Stage-2
+
+STAGE PLANS:
+ Stage: Stage-1
+ Map Reduce
+ Map Operator Tree:
+ TableScan
+ alias: t1
+ Statistics: Num rows: 1 Data size: 36 Basic stats: COMPLETE Column stats: NONE
+ Filter Operator
+ predicate: (UDFToDouble(a) < 3.0) (type: boolean)
+ Statistics: Num rows: 1 Data size: 36 Basic stats: COMPLETE Column stats: NONE
+ Group By Operator
+ aggregations: count()
+ keys: a (type: string), b (type: string), '0' (type: string)
+ mode: hash
+ outputColumnNames: _col0, _col1, _col2, _col3
+ Statistics: Num rows: 4 Data size: 144 Basic stats: COMPLETE Column stats: NONE
+ Reduce Output Operator
+ key expressions: _col0 (type: string), _col1 (type: string), _col2 (type: string)
+ sort order: +++
+ Map-reduce partition columns: _col0 (type: string), _col1 (type: string), _col2 (type: string)
+ Statistics: Num rows: 4 Data size: 144 Basic stats: COMPLETE Column stats: NONE
+ value expressions: _col3 (type: bigint)
+ Reduce Operator Tree:
+ Group By Operator
+ aggregations: count(VALUE._col0)
+ keys: KEY._col0 (type: string), KEY._col1 (type: string), KEY._col2 (type: string)
+ mode: mergepartial
+ outputColumnNames: _col0, _col1, _col3
+ Statistics: Num rows: 2 Data size: 72 Basic stats: COMPLETE Column stats: NONE
+ pruneGroupingSetId: true
+ Filter Operator
+ predicate: _col0 is not null (type: boolean)
+ Statistics: Num rows: 2 Data size: 72 Basic stats: COMPLETE Column stats: NONE
+ Select Operator
+ expressions: _col0 (type: string), _col1 (type: string), _col3 (type: bigint)
+ outputColumnNames: _col0, _col1, _col2
+ Statistics: Num rows: 2 Data size: 72 Basic stats: COMPLETE Column stats: NONE
+ File Output Operator
+ compressed: false
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe
+
+ Stage: Stage-2
+ Map Reduce
+ Map Operator Tree:
+ TableScan
+ Reduce Output Operator
+ key expressions: _col0 (type: string)
+ sort order: +
+ Map-reduce partition columns: _col0 (type: string)
+ Statistics: Num rows: 2 Data size: 72 Basic stats: COMPLETE Column stats: NONE
+ value expressions: _col1 (type: string), _col2 (type: bigint)
+ TableScan
+ Reduce Output Operator
+ key expressions: _col0 (type: string)
+ sort order: +
+ Map-reduce partition columns: _col0 (type: string)
+ Statistics: Num rows: 2 Data size: 72 Basic stats: COMPLETE Column stats: NONE
+ value expressions: _col1 (type: string), _col2 (type: bigint)
+ Reduce Operator Tree:
+ Join Operator
+ condition map:
+ Inner Join 0 to 1
+ keys:
+ 0 _col0 (type: string)
+ 1 _col0 (type: string)
+ outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5
+ Statistics: Num rows: 2 Data size: 79 Basic stats: COMPLETE Column stats: NONE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 2 Data size: 79 Basic stats: COMPLETE Column stats: NONE
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+
+ Stage: Stage-3
+ Map Reduce
+ Map Operator Tree:
+ TableScan
+ alias: t1
+ Statistics: Num rows: 1 Data size: 36 Basic stats: COMPLETE Column stats: NONE
+ Filter Operator
+ predicate: (UDFToDouble(a) < 3.0) (type: boolean)
+ Statistics: Num rows: 1 Data size: 36 Basic stats: COMPLETE Column stats: NONE
+ Group By Operator
+ aggregations: count()
+ keys: a (type: string), b (type: string), '0' (type: string)
+ mode: hash
+ outputColumnNames: _col0, _col1, _col2, _col3
+ Statistics: Num rows: 4 Data size: 144 Basic stats: COMPLETE Column stats: NONE
+ Reduce Output Operator
+ key expressions: _col0 (type: string), _col1 (type: string), _col2 (type: string)
+ sort order: +++
+ Map-reduce partition columns: _col0 (type: string), _col1 (type: string), _col2 (type: string)
+ Statistics: Num rows: 4 Data size: 144 Basic stats: COMPLETE Column stats: NONE
+ value expressions: _col3 (type: bigint)
+ Reduce Operator Tree:
+ Group By Operator
+ aggregations: count(VALUE._col0)
+ keys: KEY._col0 (type: string), KEY._col1 (type: string), KEY._col2 (type: string)
+ mode: mergepartial
+ outputColumnNames: _col0, _col1, _col3
+ Statistics: Num rows: 2 Data size: 72 Basic stats: COMPLETE Column stats: NONE
+ pruneGroupingSetId: true
+ Filter Operator
+ predicate: _col0 is not null (type: boolean)
+ Statistics: Num rows: 2 Data size: 72 Basic stats: COMPLETE Column stats: NONE
+ Select Operator
+ expressions: _col0 (type: string), _col1 (type: string), _col3 (type: bigint)
+ outputColumnNames: _col0, _col1, _col2
+ Statistics: Num rows: 2 Data size: 72 Basic stats: COMPLETE Column stats: NONE
+ File Output Operator
+ compressed: false
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
PREHOOK: query: SELECT * FROM
(SELECT a, b, count(*) from T1 where a < 3 group by a, b with cube) subq1
join
http://git-wip-us.apache.org/repos/asf/hive/blob/444af207/ql/src/test/results/clientpositive/groupby_grouping_sets5.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/groupby_grouping_sets5.q.out b/ql/src/test/results/clientpositive/groupby_grouping_sets5.q.out
index f175778..e91bd41 100644
--- a/ql/src/test/results/clientpositive/groupby_grouping_sets5.q.out
+++ b/ql/src/test/results/clientpositive/groupby_grouping_sets5.q.out
@@ -109,6 +109,95 @@ STAGE PLANS:
Processor Tree:
ListSink
+PREHOOK: query: EXPLAIN
+SELECT a, b, count(*) FROM
+(SELECT a, b, count(1) from T1 group by a, b) subq1 group by cube(a, b)
+PREHOOK: type: QUERY
+POSTHOOK: query: EXPLAIN
+SELECT a, b, count(*) FROM
+(SELECT a, b, count(1) from T1 group by a, b) subq1 group by cube(a, b)
+POSTHOOK: type: QUERY
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-2 depends on stages: Stage-1
+ Stage-0 depends on stages: Stage-2
+
+STAGE PLANS:
+ Stage: Stage-1
+ Map Reduce
+ Map Operator Tree:
+ TableScan
+ alias: t1
+ Statistics: Num rows: 1 Data size: 36 Basic stats: COMPLETE Column stats: NONE
+ Select Operator
+ expressions: a (type: string), b (type: string)
+ outputColumnNames: a, b
+ Statistics: Num rows: 1 Data size: 36 Basic stats: COMPLETE Column stats: NONE
+ Group By Operator
+ keys: a (type: string), b (type: string)
+ mode: hash
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 1 Data size: 36 Basic stats: COMPLETE Column stats: NONE
+ Reduce Output Operator
+ key expressions: _col0 (type: string), _col1 (type: string)
+ sort order: ++
+ Map-reduce partition columns: _col0 (type: string), _col1 (type: string)
+ Statistics: Num rows: 1 Data size: 36 Basic stats: COMPLETE Column stats: NONE
+ Reduce Operator Tree:
+ Group By Operator
+ keys: KEY._col0 (type: string), KEY._col1 (type: string)
+ mode: mergepartial
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 1 Data size: 36 Basic stats: COMPLETE Column stats: NONE
+ Group By Operator
+ aggregations: count()
+ keys: _col0 (type: string), _col1 (type: string), '0' (type: string)
+ mode: hash
+ outputColumnNames: _col0, _col1, _col2, _col3
+ Statistics: Num rows: 4 Data size: 144 Basic stats: COMPLETE Column stats: NONE
+ File Output Operator
+ compressed: false
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe
+
+ Stage: Stage-2
+ Map Reduce
+ Map Operator Tree:
+ TableScan
+ Reduce Output Operator
+ key expressions: _col0 (type: string), _col1 (type: string), _col2 (type: string)
+ sort order: +++
+ Map-reduce partition columns: _col0 (type: string), _col1 (type: string), _col2 (type: string)
+ Statistics: Num rows: 4 Data size: 144 Basic stats: COMPLETE Column stats: NONE
+ value expressions: _col3 (type: bigint)
+ Reduce Operator Tree:
+ Group By Operator
+ aggregations: count(VALUE._col0)
+ keys: KEY._col0 (type: string), KEY._col1 (type: string), KEY._col2 (type: string)
+ mode: mergepartial
+ outputColumnNames: _col0, _col1, _col3
+ Statistics: Num rows: 2 Data size: 72 Basic stats: COMPLETE Column stats: NONE
+ pruneGroupingSetId: true
+ Select Operator
+ expressions: _col0 (type: string), _col1 (type: string), _col3 (type: bigint)
+ outputColumnNames: _col0, _col1, _col2
+ Statistics: Num rows: 2 Data size: 72 Basic stats: COMPLETE Column stats: NONE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 2 Data size: 72 Basic stats: COMPLETE Column stats: NONE
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
PREHOOK: query: SELECT a, b, count(*) FROM
(SELECT a, b, count(1) from T1 group by a, b) subq1 group by a, b with cube
PREHOOK: type: QUERY
http://git-wip-us.apache.org/repos/asf/hive/blob/444af207/ql/src/test/results/clientpositive/groupby_rollup1.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/groupby_rollup1.q.out b/ql/src/test/results/clientpositive/groupby_rollup1.q.out
index 54e1a0d..19dccc8 100644
--- a/ql/src/test/results/clientpositive/groupby_rollup1.q.out
+++ b/ql/src/test/results/clientpositive/groupby_rollup1.q.out
@@ -389,12 +389,12 @@ POSTHOOK: Output: default@T3
PREHOOK: query: EXPLAIN
FROM T1
INSERT OVERWRITE TABLE T2 SELECT key, val, count(1) group by key, val with rollup
-INSERT OVERWRITE TABLE T3 SELECT key, val, sum(1) group by key, val with rollup
+INSERT OVERWRITE TABLE T3 SELECT key, val, sum(1) group by rollup(key, val)
PREHOOK: type: QUERY
POSTHOOK: query: EXPLAIN
FROM T1
INSERT OVERWRITE TABLE T2 SELECT key, val, count(1) group by key, val with rollup
-INSERT OVERWRITE TABLE T3 SELECT key, val, sum(1) group by key, val with rollup
+INSERT OVERWRITE TABLE T3 SELECT key, val, sum(1) group by rollup(key, val)
POSTHOOK: type: QUERY
STAGE DEPENDENCIES:
Stage-2 is a root stage
http://git-wip-us.apache.org/repos/asf/hive/blob/444af207/ql/src/test/results/clientpositive/infer_bucket_sort_grouping_operators.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/infer_bucket_sort_grouping_operators.q.out b/ql/src/test/results/clientpositive/infer_bucket_sort_grouping_operators.q.out
index ebfce60..573469b 100644
--- a/ql/src/test/results/clientpositive/infer_bucket_sort_grouping_operators.q.out
+++ b/ql/src/test/results/clientpositive/infer_bucket_sort_grouping_operators.q.out
@@ -94,6 +94,633 @@ STAGE PLANS:
Stage: Stage-2
Stats-Aggr Operator
+PREHOOK: query: SELECT key, value, count(1) FROM src GROUP BY ROLLUP (key, value)
+PREHOOK: type: QUERY
+PREHOOK: Input: default@src
+#### A masked pattern was here ####
+POSTHOOK: query: SELECT key, value, count(1) FROM src GROUP BY ROLLUP (key, value)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@src
+#### A masked pattern was here ####
+NULL NULL 500
+0 NULL 3
+0 val_0 3
+10 NULL 1
+10 val_10 1
+100 NULL 2
+100 val_100 2
+103 NULL 2
+103 val_103 2
+104 NULL 2
+104 val_104 2
+105 NULL 1
+105 val_105 1
+11 NULL 1
+11 val_11 1
+111 NULL 1
+111 val_111 1
+113 NULL 2
+113 val_113 2
+114 NULL 1
+114 val_114 1
+116 NULL 1
+116 val_116 1
+118 NULL 2
+118 val_118 2
+119 NULL 3
+119 val_119 3
+12 NULL 2
+12 val_12 2
+120 NULL 2
+120 val_120 2
+125 NULL 2
+125 val_125 2
+126 NULL 1
+126 val_126 1
+128 NULL 3
+128 val_128 3
+129 NULL 2
+129 val_129 2
+131 NULL 1
+131 val_131 1
+133 NULL 1
+133 val_133 1
+134 NULL 2
+134 val_134 2
+136 NULL 1
+136 val_136 1
+137 NULL 2
+137 val_137 2
+138 NULL 4
+138 val_138 4
+143 NULL 1
+143 val_143 1
+145 NULL 1
+145 val_145 1
+146 NULL 2
+146 val_146 2
+149 NULL 2
+149 val_149 2
+15 NULL 2
+15 val_15 2
+150 NULL 1
+150 val_150 1
+152 NULL 2
+152 val_152 2
+153 NULL 1
+153 val_153 1
+155 NULL 1
+155 val_155 1
+156 NULL 1
+156 val_156 1
+157 NULL 1
+157 val_157 1
+158 NULL 1
+158 val_158 1
+160 NULL 1
+160 val_160 1
+162 NULL 1
+162 val_162 1
+163 NULL 1
+163 val_163 1
+164 NULL 2
+164 val_164 2
+165 NULL 2
+165 val_165 2
+166 NULL 1
+166 val_166 1
+167 NULL 3
+167 val_167 3
+168 NULL 1
+168 val_168 1
+169 NULL 4
+169 val_169 4
+17 NULL 1
+17 val_17 1
+170 NULL 1
+170 val_170 1
+172 NULL 2
+172 val_172 2
+174 NULL 2
+174 val_174 2
+175 NULL 2
+175 val_175 2
+176 NULL 2
+176 val_176 2
+177 NULL 1
+177 val_177 1
+178 NULL 1
+178 val_178 1
+179 NULL 2
+179 val_179 2
+18 NULL 2
+18 val_18 2
+180 NULL 1
+180 val_180 1
+181 NULL 1
+181 val_181 1
+183 NULL 1
+183 val_183 1
+186 NULL 1
+186 val_186 1
+187 NULL 3
+187 val_187 3
+189 NULL 1
+189 val_189 1
+19 NULL 1
+19 val_19 1
+190 NULL 1
+190 val_190 1
+191 NULL 2
+191 val_191 2
+192 NULL 1
+192 val_192 1
+193 NULL 3
+193 val_193 3
+194 NULL 1
+194 val_194 1
+195 NULL 2
+195 val_195 2
+196 NULL 1
+196 val_196 1
+197 NULL 2
+197 val_197 2
+199 NULL 3
+199 val_199 3
+2 NULL 1
+2 val_2 1
+20 NULL 1
+20 val_20 1
+200 NULL 2
+200 val_200 2
+201 NULL 1
+201 val_201 1
+202 NULL 1
+202 val_202 1
+203 NULL 2
+203 val_203 2
+205 NULL 2
+205 val_205 2
+207 NULL 2
+207 val_207 2
+208 NULL 3
+208 val_208 3
+209 NULL 2
+209 val_209 2
+213 NULL 2
+213 val_213 2
+214 NULL 1
+214 val_214 1
+216 NULL 2
+216 val_216 2
+217 NULL 2
+217 val_217 2
+218 NULL 1
+218 val_218 1
+219 NULL 2
+219 val_219 2
+221 NULL 2
+221 val_221 2
+222 NULL 1
+222 val_222 1
+223 NULL 2
+223 val_223 2
+224 NULL 2
+224 val_224 2
+226 NULL 1
+226 val_226 1
+228 NULL 1
+228 val_228 1
+229 NULL 2
+229 val_229 2
+230 NULL 5
+230 val_230 5
+233 NULL 2
+233 val_233 2
+235 NULL 1
+235 val_235 1
+237 NULL 2
+237 val_237 2
+238 NULL 2
+238 val_238 2
+239 NULL 2
+239 val_239 2
+24 NULL 2
+24 val_24 2
+241 NULL 1
+241 val_241 1
+242 NULL 2
+242 val_242 2
+244 NULL 1
+244 val_244 1
+247 NULL 1
+247 val_247 1
+248 NULL 1
+248 val_248 1
+249 NULL 1
+249 val_249 1
+252 NULL 1
+252 val_252 1
+255 NULL 2
+255 val_255 2
+256 NULL 2
+256 val_256 2
+257 NULL 1
+257 val_257 1
+258 NULL 1
+258 val_258 1
+26 NULL 2
+26 val_26 2
+260 NULL 1
+260 val_260 1
+262 NULL 1
+262 val_262 1
+263 NULL 1
+263 val_263 1
+265 NULL 2
+265 val_265 2
+266 NULL 1
+266 val_266 1
+27 NULL 1
+27 val_27 1
+272 NULL 2
+272 val_272 2
+273 NULL 3
+273 val_273 3
+274 NULL 1
+274 val_274 1
+275 NULL 1
+275 val_275 1
+277 NULL 4
+277 val_277 4
+278 NULL 2
+278 val_278 2
+28 NULL 1
+28 val_28 1
+280 NULL 2
+280 val_280 2
+281 NULL 2
+281 val_281 2
+282 NULL 2
+282 val_282 2
+283 NULL 1
+283 val_283 1
+284 NULL 1
+284 val_284 1
+285 NULL 1
+285 val_285 1
+286 NULL 1
+286 val_286 1
+287 NULL 1
+287 val_287 1
+288 NULL 2
+288 val_288 2
+289 NULL 1
+289 val_289 1
+291 NULL 1
+291 val_291 1
+292 NULL 1
+292 val_292 1
+296 NULL 1
+296 val_296 1
+298 NULL 3
+298 val_298 3
+30 NULL 1
+30 val_30 1
+302 NULL 1
+302 val_302 1
+305 NULL 1
+305 val_305 1
+306 NULL 1
+306 val_306 1
+307 NULL 2
+307 val_307 2
+308 NULL 1
+308 val_308 1
+309 NULL 2
+309 val_309 2
+310 NULL 1
+310 val_310 1
+311 NULL 3
+311 val_311 3
+315 NULL 1
+315 val_315 1
+316 NULL 3
+316 val_316 3
+317 NULL 2
+317 val_317 2
+318 NULL 3
+318 val_318 3
+321 NULL 2
+321 val_321 2
+322 NULL 2
+322 val_322 2
+323 NULL 1
+323 val_323 1
+325 NULL 2
+325 val_325 2
+327 NULL 3
+327 val_327 3
+33 NULL 1
+33 val_33 1
+331 NULL 2
+331 val_331 2
+332 NULL 1
+332 val_332 1
+333 NULL 2
+333 val_333 2
+335 NULL 1
+335 val_335 1
+336 NULL 1
+336 val_336 1
+338 NULL 1
+338 val_338 1
+339 NULL 1
+339 val_339 1
+34 NULL 1
+34 val_34 1
+341 NULL 1
+341 val_341 1
+342 NULL 2
+342 val_342 2
+344 NULL 2
+344 val_344 2
+345 NULL 1
+345 val_345 1
+348 NULL 5
+348 val_348 5
+35 NULL 3
+35 val_35 3
+351 NULL 1
+351 val_351 1
+353 NULL 2
+353 val_353 2
+356 NULL 1
+356 val_356 1
+360 NULL 1
+360 val_360 1
+362 NULL 1
+362 val_362 1
+364 NULL 1
+364 val_364 1
+365 NULL 1
+365 val_365 1
+366 NULL 1
+366 val_366 1
+367 NULL 2
+367 val_367 2
+368 NULL 1
+368 val_368 1
+369 NULL 3
+369 val_369 3
+37 NULL 2
+37 val_37 2
+373 NULL 1
+373 val_373 1
+374 NULL 1
+374 val_374 1
+375 NULL 1
+375 val_375 1
+377 NULL 1
+377 val_377 1
+378 NULL 1
+378 val_378 1
+379 NULL 1
+379 val_379 1
+382 NULL 2
+382 val_382 2
+384 NULL 3
+384 val_384 3
+386 NULL 1
+386 val_386 1
+389 NULL 1
+389 val_389 1
+392 NULL 1
+392 val_392 1
+393 NULL 1
+393 val_393 1
+394 NULL 1
+394 val_394 1
+395 NULL 2
+395 val_395 2
+396 NULL 3
+396 val_396 3
+397 NULL 2
+397 val_397 2
+399 NULL 2
+399 val_399 2
+4 NULL 1
+4 val_4 1
+400 NULL 1
+400 val_400 1
+401 NULL 5
+401 val_401 5
+402 NULL 1
+402 val_402 1
+403 NULL 3
+403 val_403 3
+404 NULL 2
+404 val_404 2
+406 NULL 4
+406 val_406 4
+407 NULL 1
+407 val_407 1
+409 NULL 3
+409 val_409 3
+41 NULL 1
+41 val_41 1
+411 NULL 1
+411 val_411 1
+413 NULL 2
+413 val_413 2
+414 NULL 2
+414 val_414 2
+417 NULL 3
+417 val_417 3
+418 NULL 1
+418 val_418 1
+419 NULL 1
+419 val_419 1
+42 NULL 2
+42 val_42 2
+421 NULL 1
+421 val_421 1
+424 NULL 2
+424 val_424 2
+427 NULL 1
+427 val_427 1
+429 NULL 2
+429 val_429 2
+43 NULL 1
+43 val_43 1
+430 NULL 3
+430 val_430 3
+431 NULL 3
+431 val_431 3
+432 NULL 1
+432 val_432 1
+435 NULL 1
+435 val_435 1
+436 NULL 1
+436 val_436 1
+437 NULL 1
+437 val_437 1
+438 NULL 3
+438 val_438 3
+439 NULL 2
+439 val_439 2
+44 NULL 1
+44 val_44 1
+443 NULL 1
+443 val_443 1
+444 NULL 1
+444 val_444 1
+446 NULL 1
+446 val_446 1
+448 NULL 1
+448 val_448 1
+449 NULL 1
+449 val_449 1
+452 NULL 1
+452 val_452 1
+453 NULL 1
+453 val_453 1
+454 NULL 3
+454 val_454 3
+455 NULL 1
+455 val_455 1
+457 NULL 1
+457 val_457 1
+458 NULL 2
+458 val_458 2
+459 NULL 2
+459 val_459 2
+460 NULL 1
+460 val_460 1
+462 NULL 2
+462 val_462 2
+463 NULL 2
+463 val_463 2
+466 NULL 3
+466 val_466 3
+467 NULL 1
+467 val_467 1
+468 NULL 4
+468 val_468 4
+469 NULL 5
+469 val_469 5
+47 NULL 1
+47 val_47 1
+470 NULL 1
+470 val_470 1
+472 NULL 1
+472 val_472 1
+475 NULL 1
+475 val_475 1
+477 NULL 1
+477 val_477 1
+478 NULL 2
+478 val_478 2
+479 NULL 1
+479 val_479 1
+480 NULL 3
+480 val_480 3
+481 NULL 1
+481 val_481 1
+482 NULL 1
+482 val_482 1
+483 NULL 1
+483 val_483 1
+484 NULL 1
+484 val_484 1
+485 NULL 1
+485 val_485 1
+487 NULL 1
+487 val_487 1
+489 NULL 4
+489 val_489 4
+490 NULL 1
+490 val_490 1
+491 NULL 1
+491 val_491 1
+492 NULL 2
+492 val_492 2
+493 NULL 1
+493 val_493 1
+494 NULL 1
+494 val_494 1
+495 NULL 1
+495 val_495 1
+496 NULL 1
+496 val_496 1
+497 NULL 1
+497 val_497 1
+498 NULL 3
+498 val_498 3
+5 NULL 3
+5 val_5 3
+51 NULL 2
+51 val_51 2
+53 NULL 1
+53 val_53 1
+54 NULL 1
+54 val_54 1
+57 NULL 1
+57 val_57 1
+58 NULL 2
+58 val_58 2
+64 NULL 1
+64 val_64 1
+65 NULL 1
+65 val_65 1
+66 NULL 1
+66 val_66 1
+67 NULL 2
+67 val_67 2
+69 NULL 1
+69 val_69 1
+70 NULL 3
+70 val_70 3
+72 NULL 2
+72 val_72 2
+74 NULL 1
+74 val_74 1
+76 NULL 2
+76 val_76 2
+77 NULL 1
+77 val_77 1
+78 NULL 1
+78 val_78 1
+8 NULL 1
+8 val_8 1
+80 NULL 1
+80 val_80 1
+82 NULL 1
+82 val_82 1
+83 NULL 2
+83 val_83 2
+84 NULL 2
+84 val_84 2
+85 NULL 1
+85 val_85 1
+86 NULL 1
+86 val_86 1
+87 NULL 1
+87 val_87 1
+9 NULL 1
+9 val_9 1
+90 NULL 3
+90 val_90 3
+92 NULL 1
+92 val_92 1
+95 NULL 2
+95 val_95 2
+96 NULL 1
+96 val_96 1
+97 NULL 2
+97 val_97 2
+98 NULL 2
+98 val_98 2
PREHOOK: query: INSERT OVERWRITE TABLE test_table_out PARTITION (part = '1')
SELECT key, value, count(1) FROM src GROUP BY key, value WITH ROLLUP
PREHOOK: type: QUERY
@@ -165,6 +792,633 @@ POSTHOOK: Lineage: test_table_out_2 PARTITION(part=1).agg EXPRESSION [(src)src.n
POSTHOOK: Lineage: test_table_out_2 PARTITION(part=1).grouping_key SIMPLE []
POSTHOOK: Lineage: test_table_out_2 PARTITION(part=1).key SIMPLE [(src)src.FieldSchema(name:key, type:string, comment:default), ]
POSTHOOK: Lineage: test_table_out_2 PARTITION(part=1).value SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ]
+PREHOOK: query: SELECT key, value, GROUPING__ID, count(1) FROM src GROUP BY ROLLUP (key, value)
+PREHOOK: type: QUERY
+PREHOOK: Input: default@src
+#### A masked pattern was here ####
+POSTHOOK: query: SELECT key, value, GROUPING__ID, count(1) FROM src GROUP BY ROLLUP (key, value)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@src
+#### A masked pattern was here ####
+NULL NULL 0 500
+0 NULL 1 3
+0 val_0 3 3
+10 NULL 1 1
+10 val_10 3 1
+100 NULL 1 2
+100 val_100 3 2
+103 NULL 1 2
+103 val_103 3 2
+104 NULL 1 2
+104 val_104 3 2
+105 NULL 1 1
+105 val_105 3 1
+11 NULL 1 1
+11 val_11 3 1
+111 NULL 1 1
+111 val_111 3 1
+113 NULL 1 2
+113 val_113 3 2
+114 NULL 1 1
+114 val_114 3 1
+116 NULL 1 1
+116 val_116 3 1
+118 NULL 1 2
+118 val_118 3 2
+119 NULL 1 3
+119 val_119 3 3
+12 NULL 1 2
+12 val_12 3 2
+120 NULL 1 2
+120 val_120 3 2
+125 NULL 1 2
+125 val_125 3 2
+126 NULL 1 1
+126 val_126 3 1
+128 NULL 1 3
+128 val_128 3 3
+129 NULL 1 2
+129 val_129 3 2
+131 NULL 1 1
+131 val_131 3 1
+133 NULL 1 1
+133 val_133 3 1
+134 NULL 1 2
+134 val_134 3 2
+136 NULL 1 1
+136 val_136 3 1
+137 NULL 1 2
+137 val_137 3 2
+138 NULL 1 4
+138 val_138 3 4
+143 NULL 1 1
+143 val_143 3 1
+145 NULL 1 1
+145 val_145 3 1
+146 NULL 1 2
+146 val_146 3 2
+149 NULL 1 2
+149 val_149 3 2
+15 NULL 1 2
+15 val_15 3 2
+150 NULL 1 1
+150 val_150 3 1
+152 NULL 1 2
+152 val_152 3 2
+153 NULL 1 1
+153 val_153 3 1
+155 NULL 1 1
+155 val_155 3 1
+156 NULL 1 1
+156 val_156 3 1
+157 NULL 1 1
+157 val_157 3 1
+158 NULL 1 1
+158 val_158 3 1
+160 NULL 1 1
+160 val_160 3 1
+162 NULL 1 1
+162 val_162 3 1
+163 NULL 1 1
+163 val_163 3 1
+164 NULL 1 2
+164 val_164 3 2
+165 NULL 1 2
+165 val_165 3 2
+166 NULL 1 1
+166 val_166 3 1
+167 NULL 1 3
+167 val_167 3 3
+168 NULL 1 1
+168 val_168 3 1
+169 NULL 1 4
+169 val_169 3 4
+17 NULL 1 1
+17 val_17 3 1
+170 NULL 1 1
+170 val_170 3 1
+172 NULL 1 2
+172 val_172 3 2
+174 NULL 1 2
+174 val_174 3 2
+175 NULL 1 2
+175 val_175 3 2
+176 NULL 1 2
+176 val_176 3 2
+177 NULL 1 1
+177 val_177 3 1
+178 NULL 1 1
+178 val_178 3 1
+179 NULL 1 2
+179 val_179 3 2
+18 NULL 1 2
+18 val_18 3 2
+180 NULL 1 1
+180 val_180 3 1
+181 NULL 1 1
+181 val_181 3 1
+183 NULL 1 1
+183 val_183 3 1
+186 NULL 1 1
+186 val_186 3 1
+187 NULL 1 3
+187 val_187 3 3
+189 NULL 1 1
+189 val_189 3 1
+19 NULL 1 1
+19 val_19 3 1
+190 NULL 1 1
+190 val_190 3 1
+191 NULL 1 2
+191 val_191 3 2
+192 NULL 1 1
+192 val_192 3 1
+193 NULL 1 3
+193 val_193 3 3
+194 NULL 1 1
+194 val_194 3 1
+195 NULL 1 2
+195 val_195 3 2
+196 NULL 1 1
+196 val_196 3 1
+197 NULL 1 2
+197 val_197 3 2
+199 NULL 1 3
+199 val_199 3 3
+2 NULL 1 1
+2 val_2 3 1
+20 NULL 1 1
+20 val_20 3 1
+200 NULL 1 2
+200 val_200 3 2
+201 NULL 1 1
+201 val_201 3 1
+202 NULL 1 1
+202 val_202 3 1
+203 NULL 1 2
+203 val_203 3 2
+205 NULL 1 2
+205 val_205 3 2
+207 NULL 1 2
+207 val_207 3 2
+208 NULL 1 3
+208 val_208 3 3
+209 NULL 1 2
+209 val_209 3 2
+213 NULL 1 2
+213 val_213 3 2
+214 NULL 1 1
+214 val_214 3 1
+216 NULL 1 2
+216 val_216 3 2
+217 NULL 1 2
+217 val_217 3 2
+218 NULL 1 1
+218 val_218 3 1
+219 NULL 1 2
+219 val_219 3 2
+221 NULL 1 2
+221 val_221 3 2
+222 NULL 1 1
+222 val_222 3 1
+223 NULL 1 2
+223 val_223 3 2
+224 NULL 1 2
+224 val_224 3 2
+226 NULL 1 1
+226 val_226 3 1
+228 NULL 1 1
+228 val_228 3 1
+229 NULL 1 2
+229 val_229 3 2
+230 NULL 1 5
+230 val_230 3 5
+233 NULL 1 2
+233 val_233 3 2
+235 NULL 1 1
+235 val_235 3 1
+237 NULL 1 2
+237 val_237 3 2
+238 NULL 1 2
+238 val_238 3 2
+239 NULL 1 2
+239 val_239 3 2
+24 NULL 1 2
+24 val_24 3 2
+241 NULL 1 1
+241 val_241 3 1
+242 NULL 1 2
+242 val_242 3 2
+244 NULL 1 1
+244 val_244 3 1
+247 NULL 1 1
+247 val_247 3 1
+248 NULL 1 1
+248 val_248 3 1
+249 NULL 1 1
+249 val_249 3 1
+252 NULL 1 1
+252 val_252 3 1
+255 NULL 1 2
+255 val_255 3 2
+256 NULL 1 2
+256 val_256 3 2
+257 NULL 1 1
+257 val_257 3 1
+258 NULL 1 1
+258 val_258 3 1
+26 NULL 1 2
+26 val_26 3 2
+260 NULL 1 1
+260 val_260 3 1
+262 NULL 1 1
+262 val_262 3 1
+263 NULL 1 1
+263 val_263 3 1
+265 NULL 1 2
+265 val_265 3 2
+266 NULL 1 1
+266 val_266 3 1
+27 NULL 1 1
+27 val_27 3 1
+272 NULL 1 2
+272 val_272 3 2
+273 NULL 1 3
+273 val_273 3 3
+274 NULL 1 1
+274 val_274 3 1
+275 NULL 1 1
+275 val_275 3 1
+277 NULL 1 4
+277 val_277 3 4
+278 NULL 1 2
+278 val_278 3 2
+28 NULL 1 1
+28 val_28 3 1
+280 NULL 1 2
+280 val_280 3 2
+281 NULL 1 2
+281 val_281 3 2
+282 NULL 1 2
+282 val_282 3 2
+283 NULL 1 1
+283 val_283 3 1
+284 NULL 1 1
+284 val_284 3 1
+285 NULL 1 1
+285 val_285 3 1
+286 NULL 1 1
+286 val_286 3 1
+287 NULL 1 1
+287 val_287 3 1
+288 NULL 1 2
+288 val_288 3 2
+289 NULL 1 1
+289 val_289 3 1
+291 NULL 1 1
+291 val_291 3 1
+292 NULL 1 1
+292 val_292 3 1
+296 NULL 1 1
+296 val_296 3 1
+298 NULL 1 3
+298 val_298 3 3
+30 NULL 1 1
+30 val_30 3 1
+302 NULL 1 1
+302 val_302 3 1
+305 NULL 1 1
+305 val_305 3 1
+306 NULL 1 1
+306 val_306 3 1
+307 NULL 1 2
+307 val_307 3 2
+308 NULL 1 1
+308 val_308 3 1
+309 NULL 1 2
+309 val_309 3 2
+310 NULL 1 1
+310 val_310 3 1
+311 NULL 1 3
+311 val_311 3 3
+315 NULL 1 1
+315 val_315 3 1
+316 NULL 1 3
+316 val_316 3 3
+317 NULL 1 2
+317 val_317 3 2
+318 NULL 1 3
+318 val_318 3 3
+321 NULL 1 2
+321 val_321 3 2
+322 NULL 1 2
+322 val_322 3 2
+323 NULL 1 1
+323 val_323 3 1
+325 NULL 1 2
+325 val_325 3 2
+327 NULL 1 3
+327 val_327 3 3
+33 NULL 1 1
+33 val_33 3 1
+331 NULL 1 2
+331 val_331 3 2
+332 NULL 1 1
+332 val_332 3 1
+333 NULL 1 2
+333 val_333 3 2
+335 NULL 1 1
+335 val_335 3 1
+336 NULL 1 1
+336 val_336 3 1
+338 NULL 1 1
+338 val_338 3 1
+339 NULL 1 1
+339 val_339 3 1
+34 NULL 1 1
+34 val_34 3 1
+341 NULL 1 1
+341 val_341 3 1
+342 NULL 1 2
+342 val_342 3 2
+344 NULL 1 2
+344 val_344 3 2
+345 NULL 1 1
+345 val_345 3 1
+348 NULL 1 5
+348 val_348 3 5
+35 NULL 1 3
+35 val_35 3 3
+351 NULL 1 1
+351 val_351 3 1
+353 NULL 1 2
+353 val_353 3 2
+356 NULL 1 1
+356 val_356 3 1
+360 NULL 1 1
+360 val_360 3 1
+362 NULL 1 1
+362 val_362 3 1
+364 NULL 1 1
+364 val_364 3 1
+365 NULL 1 1
+365 val_365 3 1
+366 NULL 1 1
+366 val_366 3 1
+367 NULL 1 2
+367 val_367 3 2
+368 NULL 1 1
+368 val_368 3 1
+369 NULL 1 3
+369 val_369 3 3
+37 NULL 1 2
+37 val_37 3 2
+373 NULL 1 1
+373 val_373 3 1
+374 NULL 1 1
+374 val_374 3 1
+375 NULL 1 1
+375 val_375 3 1
+377 NULL 1 1
+377 val_377 3 1
+378 NULL 1 1
+378 val_378 3 1
+379 NULL 1 1
+379 val_379 3 1
+382 NULL 1 2
+382 val_382 3 2
+384 NULL 1 3
+384 val_384 3 3
+386 NULL 1 1
+386 val_386 3 1
+389 NULL 1 1
+389 val_389 3 1
+392 NULL 1 1
+392 val_392 3 1
+393 NULL 1 1
+393 val_393 3 1
+394 NULL 1 1
+394 val_394 3 1
+395 NULL 1 2
+395 val_395 3 2
+396 NULL 1 3
+396 val_396 3 3
+397 NULL 1 2
+397 val_397 3 2
+399 NULL 1 2
+399 val_399 3 2
+4 NULL 1 1
+4 val_4 3 1
+400 NULL 1 1
+400 val_400 3 1
+401 NULL 1 5
+401 val_401 3 5
+402 NULL 1 1
+402 val_402 3 1
+403 NULL 1 3
+403 val_403 3 3
+404 NULL 1 2
+404 val_404 3 2
+406 NULL 1 4
+406 val_406 3 4
+407 NULL 1 1
+407 val_407 3 1
+409 NULL 1 3
+409 val_409 3 3
+41 NULL 1 1
+41 val_41 3 1
+411 NULL 1 1
+411 val_411 3 1
+413 NULL 1 2
+413 val_413 3 2
+414 NULL 1 2
+414 val_414 3 2
+417 NULL 1 3
+417 val_417 3 3
+418 NULL 1 1
+418 val_418 3 1
+419 NULL 1 1
+419 val_419 3 1
+42 NULL 1 2
+42 val_42 3 2
+421 NULL 1 1
+421 val_421 3 1
+424 NULL 1 2
+424 val_424 3 2
+427 NULL 1 1
+427 val_427 3 1
+429 NULL 1 2
+429 val_429 3 2
+43 NULL 1 1
+43 val_43 3 1
+430 NULL 1 3
+430 val_430 3 3
+431 NULL 1 3
+431 val_431 3 3
+432 NULL 1 1
+432 val_432 3 1
+435 NULL 1 1
+435 val_435 3 1
+436 NULL 1 1
+436 val_436 3 1
+437 NULL 1 1
+437 val_437 3 1
+438 NULL 1 3
+438 val_438 3 3
+439 NULL 1 2
+439 val_439 3 2
+44 NULL 1 1
+44 val_44 3 1
+443 NULL 1 1
+443 val_443 3 1
+444 NULL 1 1
+444 val_444 3 1
+446 NULL 1 1
+446 val_446 3 1
+448 NULL 1 1
+448 val_448 3 1
+449 NULL 1 1
+449 val_449 3 1
+452 NULL 1 1
+452 val_452 3 1
+453 NULL 1 1
+453 val_453 3 1
+454 NULL 1 3
+454 val_454 3 3
+455 NULL 1 1
+455 val_455 3 1
+457 NULL 1 1
+457 val_457 3 1
+458 NULL 1 2
+458 val_458 3 2
+459 NULL 1 2
+459 val_459 3 2
+460 NULL 1 1
+460 val_460 3 1
+462 NULL 1 2
+462 val_462 3 2
+463 NULL 1 2
+463 val_463 3 2
+466 NULL 1 3
+466 val_466 3 3
+467 NULL 1 1
+467 val_467 3 1
+468 NULL 1 4
+468 val_468 3 4
+469 NULL 1 5
+469 val_469 3 5
+47 NULL 1 1
+47 val_47 3 1
+470 NULL 1 1
+470 val_470 3 1
+472 NULL 1 1
+472 val_472 3 1
+475 NULL 1 1
+475 val_475 3 1
+477 NULL 1 1
+477 val_477 3 1
+478 NULL 1 2
+478 val_478 3 2
+479 NULL 1 1
+479 val_479 3 1
+480 NULL 1 3
+480 val_480 3 3
+481 NULL 1 1
+481 val_481 3 1
+482 NULL 1 1
+482 val_482 3 1
+483 NULL 1 1
+483 val_483 3 1
+484 NULL 1 1
+484 val_484 3 1
+485 NULL 1 1
+485 val_485 3 1
+487 NULL 1 1
+487 val_487 3 1
+489 NULL 1 4
+489 val_489 3 4
+490 NULL 1 1
+490 val_490 3 1
+491 NULL 1 1
+491 val_491 3 1
+492 NULL 1 2
+492 val_492 3 2
+493 NULL 1 1
+493 val_493 3 1
+494 NULL 1 1
+494 val_494 3 1
+495 NULL 1 1
+495 val_495 3 1
+496 NULL 1 1
+496 val_496 3 1
+497 NULL 1 1
+497 val_497 3 1
+498 NULL 1 3
+498 val_498 3 3
+5 NULL 1 3
+5 val_5 3 3
+51 NULL 1 2
+51 val_51 3 2
+53 NULL 1 1
+53 val_53 3 1
+54 NULL 1 1
+54 val_54 3 1
+57 NULL 1 1
+57 val_57 3 1
+58 NULL 1 2
+58 val_58 3 2
+64 NULL 1 1
+64 val_64 3 1
+65 NULL 1 1
+65 val_65 3 1
+66 NULL 1 1
+66 val_66 3 1
+67 NULL 1 2
+67 val_67 3 2
+69 NULL 1 1
+69 val_69 3 1
+70 NULL 1 3
+70 val_70 3 3
+72 NULL 1 2
+72 val_72 3 2
+74 NULL 1 1
+74 val_74 3 1
+76 NULL 1 2
+76 val_76 3 2
+77 NULL 1 1
+77 val_77 3 1
+78 NULL 1 1
+78 val_78 3 1
+8 NULL 1 1
+8 val_8 3 1
+80 NULL 1 1
+80 val_80 3 1
+82 NULL 1 1
+82 val_82 3 1
+83 NULL 1 2
+83 val_83 3 2
+84 NULL 1 2
+84 val_84 3 2
+85 NULL 1 1
+85 val_85 3 1
+86 NULL 1 1
+86 val_86 3 1
+87 NULL 1 1
+87 val_87 3 1
+9 NULL 1 1
+9 val_9 3 1
+90 NULL 1 3
+90 val_90 3 3
+92 NULL 1 1
+92 val_92 3 1
+95 NULL 1 2
+95 val_95 3 2
+96 NULL 1 1
+96 val_96 3 1
+97 NULL 1 2
+97 val_97 3 2
+98 NULL 1 2
+98 val_98 3 2
PREHOOK: query: DESCRIBE FORMATTED test_table_out_2 PARTITION (part = '1')
PREHOOK: type: DESCTABLE
PREHOOK: Input: default@test_table_out_2
http://git-wip-us.apache.org/repos/asf/hive/blob/444af207/ql/src/test/results/clientpositive/limit_pushdown2.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/limit_pushdown2.q.out b/ql/src/test/results/clientpositive/limit_pushdown2.q.out
index 2f68674..316d8e8 100644
--- a/ql/src/test/results/clientpositive/limit_pushdown2.q.out
+++ b/ql/src/test/results/clientpositive/limit_pushdown2.q.out
@@ -770,6 +770,95 @@ STAGE PLANS:
Processor Tree:
ListSink
+PREHOOK: query: explain
+select key, value, avg(key + 1) from src
+group by rollup(value, key)
+order by key, value limit 20
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select key, value, avg(key + 1) from src
+group by rollup(value, key)
+order by key, value limit 20
+POSTHOOK: type: QUERY
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-2 depends on stages: Stage-1
+ Stage-0 depends on stages: Stage-2
+
+STAGE PLANS:
+ Stage: Stage-1
+ Map Reduce
+ Map Operator Tree:
+ TableScan
+ alias: src
+ Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+ Select Operator
+ expressions: value (type: string), key (type: string), (UDFToDouble(key) + 1.0) (type: double)
+ outputColumnNames: _col0, _col1, _col2
+ Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+ Group By Operator
+ aggregations: avg(_col2)
+ keys: _col0 (type: string), _col1 (type: string), '0' (type: string)
+ mode: hash
+ outputColumnNames: _col0, _col1, _col2, _col3
+ Statistics: Num rows: 1500 Data size: 15936 Basic stats: COMPLETE Column stats: NONE
+ Reduce Output Operator
+ key expressions: _col0 (type: string), _col1 (type: string), _col2 (type: string)
+ sort order: +++
+ Map-reduce partition columns: _col0 (type: string), _col1 (type: string), _col2 (type: string)
+ Statistics: Num rows: 1500 Data size: 15936 Basic stats: COMPLETE Column stats: NONE
+ value expressions: _col3 (type: struct<count:bigint,sum:double,input:double>)
+ Reduce Operator Tree:
+ Group By Operator
+ aggregations: avg(VALUE._col0)
+ keys: KEY._col0 (type: string), KEY._col1 (type: string), KEY._col2 (type: string)
+ mode: mergepartial
+ outputColumnNames: _col0, _col1, _col3
+ Statistics: Num rows: 750 Data size: 7968 Basic stats: COMPLETE Column stats: NONE
+ pruneGroupingSetId: true
+ Select Operator
+ expressions: _col1 (type: string), _col0 (type: string), _col3 (type: double)
+ outputColumnNames: _col0, _col1, _col2
+ Statistics: Num rows: 750 Data size: 7968 Basic stats: COMPLETE Column stats: NONE
+ File Output Operator
+ compressed: false
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe
+
+ Stage: Stage-2
+ Map Reduce
+ Map Operator Tree:
+ TableScan
+ Reduce Output Operator
+ key expressions: _col0 (type: string), _col1 (type: string)
+ sort order: ++
+ Statistics: Num rows: 750 Data size: 7968 Basic stats: COMPLETE Column stats: NONE
+ TopN Hash Memory Usage: 0.3
+ value expressions: _col2 (type: double)
+ Reduce Operator Tree:
+ Select Operator
+ expressions: KEY.reducesinkkey0 (type: string), KEY.reducesinkkey1 (type: string), VALUE._col0 (type: double)
+ outputColumnNames: _col0, _col1, _col2
+ Statistics: Num rows: 750 Data size: 7968 Basic stats: COMPLETE Column stats: NONE
+ Limit
+ Number of rows: 20
+ Statistics: Num rows: 20 Data size: 200 Basic stats: COMPLETE Column stats: NONE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 20 Data size: 200 Basic stats: COMPLETE Column stats: NONE
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: 20
+ Processor Tree:
+ ListSink
+
PREHOOK: query: select key, value, avg(key + 1) from src
group by value, key with rollup
order by key, value limit 20