You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by se...@apache.org on 2016/08/30 22:21:17 UTC

[10/17] hive git commit: HIVE-14362: Support explain analyze in Hive (Pengcheng Xiong, reviewed by Ashutosh Chauhan, Gopal V and Gabor Szadovszky)

http://git-wip-us.apache.org/repos/asf/hive/blob/20824f27/ql/src/test/results/clientpositive/tez/explainanalyze_3.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/tez/explainanalyze_3.q.out b/ql/src/test/results/clientpositive/tez/explainanalyze_3.q.out
new file mode 100644
index 0000000..c86e143
--- /dev/null
+++ b/ql/src/test/results/clientpositive/tez/explainanalyze_3.q.out
@@ -0,0 +1,839 @@
+PREHOOK: query: select key, value
+FROM srcpart LATERAL VIEW explode(array(1,2,3)) myTable AS myCol
+PREHOOK: type: QUERY
+PREHOOK: Input: default@srcpart
+PREHOOK: Input: default@srcpart@ds=2008-04-08/hr=11
+PREHOOK: Input: default@srcpart@ds=2008-04-08/hr=12
+PREHOOK: Input: default@srcpart@ds=2008-04-09/hr=11
+PREHOOK: Input: default@srcpart@ds=2008-04-09/hr=12
+#### A masked pattern was here ####
+POSTHOOK: query: select key, value
+FROM srcpart LATERAL VIEW explode(array(1,2,3)) myTable AS myCol
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@srcpart
+POSTHOOK: Input: default@srcpart@ds=2008-04-08/hr=11
+POSTHOOK: Input: default@srcpart@ds=2008-04-08/hr=12
+POSTHOOK: Input: default@srcpart@ds=2008-04-09/hr=11
+POSTHOOK: Input: default@srcpart@ds=2008-04-09/hr=12
+#### A masked pattern was here ####
+PREHOOK: query: explain analyze select key, value
+FROM srcpart LATERAL VIEW explode(array(1,2,3)) myTable AS myCol
+PREHOOK: type: QUERY
+POSTHOOK: query: explain analyze select key, value
+FROM srcpart LATERAL VIEW explode(array(1,2,3)) myTable AS myCol
+POSTHOOK: type: QUERY
+Plan not optimized by CBO.
+
+Stage-0
+  Fetch Operator
+    limit:-1
+    Select Operator [SEL_6]
+      Output:["_col0","_col1"]
+      Lateral View Join Operator [LVJ_5]
+        Output:["_col0","_col1","_col7"]
+        Select Operator [SEL_2]
+          Output:["key","value"]
+          Lateral View Forward [LVF_1]
+            TableScan [TS_0]
+              Output:["key","value"]
+    Select Operator [SEL_6]
+      Output:["_col0","_col1"]
+      Lateral View Join Operator [LVJ_5]
+        Output:["_col0","_col1","_col7"]
+        UDTF Operator [UDTF_4]
+          function name:explode
+          Select Operator [SEL_3]
+            Output:["_col0"]
+             Please refer to the previous Lateral View Forward [LVF_1]
+
+PREHOOK: query: show tables
+PREHOOK: type: SHOWTABLES
+PREHOOK: Input: database:default
+POSTHOOK: query: show tables
+POSTHOOK: type: SHOWTABLES
+POSTHOOK: Input: database:default
+PREHOOK: query: explain analyze show tables
+PREHOOK: type: SHOWTABLES
+POSTHOOK: query: explain analyze show tables
+POSTHOOK: type: SHOWTABLES
+Stage-1
+  Fetch Operator
+    limit:-1
+    Stage-0
+      Show Table Operator:
+        database name:default
+
+#### A masked pattern was here ####
+PREHOOK: type: CREATEDATABASE
+PREHOOK: Output: database:newDB
+#### A masked pattern was here ####
+POSTHOOK: type: CREATEDATABASE
+POSTHOOK: Output: database:newDB
+#### A masked pattern was here ####
+PREHOOK: type: CREATEDATABASE
+#### A masked pattern was here ####
+POSTHOOK: type: CREATEDATABASE
+Stage-0
+
+#### A masked pattern was here ####
+PREHOOK: type: CREATEDATABASE
+PREHOOK: Output: database:newDB
+#### A masked pattern was here ####
+POSTHOOK: type: CREATEDATABASE
+POSTHOOK: Output: database:newDB
+#### A masked pattern was here ####
+PREHOOK: query: describe database extended newDB
+PREHOOK: type: DESCDATABASE
+PREHOOK: Input: database:newdb
+POSTHOOK: query: describe database extended newDB
+POSTHOOK: type: DESCDATABASE
+POSTHOOK: Input: database:newdb
+PREHOOK: query: explain analyze describe database extended newDB
+PREHOOK: type: DESCDATABASE
+POSTHOOK: query: explain analyze describe database extended newDB
+POSTHOOK: type: DESCDATABASE
+Stage-1
+  Fetch Operator
+    limit:-1
+    Stage-0
+
+PREHOOK: query: describe database extended newDB
+PREHOOK: type: DESCDATABASE
+PREHOOK: Input: database:newdb
+POSTHOOK: query: describe database extended newDB
+POSTHOOK: type: DESCDATABASE
+POSTHOOK: Input: database:newdb
+newdb		location/in/test	hive_test_user	USER	
+PREHOOK: query: use newDB
+PREHOOK: type: SWITCHDATABASE
+PREHOOK: Input: database:newdb
+POSTHOOK: query: use newDB
+POSTHOOK: type: SWITCHDATABASE
+POSTHOOK: Input: database:newdb
+PREHOOK: query: explain analyze use newDB
+PREHOOK: type: SWITCHDATABASE
+POSTHOOK: query: explain analyze use newDB
+POSTHOOK: type: SWITCHDATABASE
+Stage-0
+
+PREHOOK: query: use newDB
+PREHOOK: type: SWITCHDATABASE
+PREHOOK: Input: database:newdb
+POSTHOOK: query: use newDB
+POSTHOOK: type: SWITCHDATABASE
+POSTHOOK: Input: database:newdb
+PREHOOK: query: create table tab (name string)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:newdb
+PREHOOK: Output: newDB@tab
+POSTHOOK: query: create table tab (name string)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:newdb
+POSTHOOK: Output: newDB@tab
+PREHOOK: query: alter table tab rename to newName
+PREHOOK: type: ALTERTABLE_RENAME
+PREHOOK: Input: newdb@tab
+PREHOOK: Output: newdb@tab
+POSTHOOK: query: alter table tab rename to newName
+POSTHOOK: type: ALTERTABLE_RENAME
+POSTHOOK: Input: newdb@tab
+POSTHOOK: Output: newdb@tab
+PREHOOK: query: explain analyze alter table tab rename to newName
+PREHOOK: type: ALTERTABLE_RENAME
+POSTHOOK: query: explain analyze alter table tab rename to newName
+POSTHOOK: type: ALTERTABLE_RENAME
+Stage-0
+  Alter Table Operator:
+    new name:newDB.newName,old name:newDB.tab,type:rename
+
+PREHOOK: query: drop table tab
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: newdb@tab
+PREHOOK: Output: newdb@tab
+POSTHOOK: query: drop table tab
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: newdb@tab
+POSTHOOK: Output: newdb@tab
+PREHOOK: query: explain analyze drop table tab
+PREHOOK: type: DROPTABLE
+POSTHOOK: query: explain analyze drop table tab
+POSTHOOK: type: DROPTABLE
+Stage-0
+  Drop Table Operator:
+    table:tab
+
+PREHOOK: query: drop table tab
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: newdb@tab
+PREHOOK: Output: newdb@tab
+POSTHOOK: query: drop table tab
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: newdb@tab
+POSTHOOK: Output: newdb@tab
+PREHOOK: query: use default
+PREHOOK: type: SWITCHDATABASE
+PREHOOK: Input: database:default
+POSTHOOK: query: use default
+POSTHOOK: type: SWITCHDATABASE
+POSTHOOK: Input: database:default
+PREHOOK: query: explain analyze use default
+PREHOOK: type: SWITCHDATABASE
+POSTHOOK: query: explain analyze use default
+POSTHOOK: type: SWITCHDATABASE
+Stage-0
+
+PREHOOK: query: use default
+PREHOOK: type: SWITCHDATABASE
+PREHOOK: Input: database:default
+POSTHOOK: query: use default
+POSTHOOK: type: SWITCHDATABASE
+POSTHOOK: Input: database:default
+PREHOOK: query: drop database newDB
+PREHOOK: type: DROPDATABASE
+PREHOOK: Input: database:newdb
+PREHOOK: Output: database:newdb
+POSTHOOK: query: drop database newDB
+POSTHOOK: type: DROPDATABASE
+POSTHOOK: Input: database:newdb
+POSTHOOK: Output: database:newdb
+PREHOOK: query: analyze table src compute statistics
+PREHOOK: type: QUERY
+PREHOOK: Input: default@src
+PREHOOK: Output: default@src
+FAILED: Hive Internal Error: java.lang.RuntimeException(Cannot overwrite read-only table: src)
+java.lang.RuntimeException: Cannot overwrite read-only table: src
+#### A masked pattern was here ####
+
+PREHOOK: query: explain analyze analyze table src compute statistics
+PREHOOK: type: QUERY
+POSTHOOK: query: explain analyze analyze table src compute statistics
+POSTHOOK: type: QUERY
+Stage-2
+  Stats-Aggr Operator
+    Stage-0
+      Map 1
+      TableScan [TS_0] (rows=500/0 width=10)
+        default@src,src,Tbl:COMPLETE,Col:COMPLETE
+
+PREHOOK: query: analyze table src compute statistics for columns
+PREHOOK: type: QUERY
+PREHOOK: Input: default@src
+#### A masked pattern was here ####
+POSTHOOK: query: analyze table src compute statistics for columns
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@src
+#### A masked pattern was here ####
+PREHOOK: query: explain analyze analyze table src compute statistics for columns
+PREHOOK: type: QUERY
+POSTHOOK: query: explain analyze analyze table src compute statistics for columns
+POSTHOOK: type: QUERY
+Vertex dependency in root stage
+Reducer 2 <- Map 1 (SIMPLE_EDGE)
+
+Stage-2
+  Column Stats Work{}
+    Stage-0
+      Reducer 2
+      File Output Operator [FS_6]
+        Group By Operator [GBY_4] (rows=1/1 width=960)
+          Output:["_col0","_col1"],aggregations:["compute_stats(VALUE._col0)","compute_stats(VALUE._col1)"]
+        <-Map 1 [SIMPLE_EDGE]
+          SHUFFLE [RS_3]
+            Group By Operator [GBY_2] (rows=1/1 width=984)
+              Output:["_col0","_col1"],aggregations:["compute_stats(key, 16)","compute_stats(value, 16)"]
+              Select Operator [SEL_1] (rows=500/500 width=178)
+                Output:["key","value"]
+                TableScan [TS_0] (rows=500/500 width=178)
+                  default@src,src,Tbl:COMPLETE,Col:COMPLETE,Output:["key","value"]
+
+PREHOOK: query: CREATE TEMPORARY MACRO SIGMOID (x DOUBLE) 1.0 / (1.0 + EXP(-x))
+PREHOOK: type: CREATEMACRO
+PREHOOK: Output: database:default
+POSTHOOK: query: CREATE TEMPORARY MACRO SIGMOID (x DOUBLE) 1.0 / (1.0 + EXP(-x))
+POSTHOOK: type: CREATEMACRO
+POSTHOOK: Output: database:default
+PREHOOK: query: explain analyze
+CREATE TEMPORARY MACRO SIGMOID (x DOUBLE) 1.0 / (1.0 + EXP(-x))
+PREHOOK: type: CREATEMACRO
+POSTHOOK: query: explain analyze
+CREATE TEMPORARY MACRO SIGMOID (x DOUBLE) 1.0 / (1.0 + EXP(-x))
+POSTHOOK: type: CREATEMACRO
+Stage-0
+
+PREHOOK: query: CREATE TEMPORARY MACRO SIGMOID (x DOUBLE) 1.0 / (1.0 + EXP(-x))
+PREHOOK: type: CREATEMACRO
+PREHOOK: Output: database:default
+POSTHOOK: query: CREATE TEMPORARY MACRO SIGMOID (x DOUBLE) 1.0 / (1.0 + EXP(-x))
+POSTHOOK: type: CREATEMACRO
+POSTHOOK: Output: database:default
+PREHOOK: query: SELECT SIGMOID(2) FROM src LIMIT 1
+PREHOOK: type: QUERY
+PREHOOK: Input: default@src
+#### A masked pattern was here ####
+POSTHOOK: query: SELECT SIGMOID(2) FROM src LIMIT 1
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@src
+#### A masked pattern was here ####
+PREHOOK: query: explain analyze SELECT SIGMOID(2) FROM src LIMIT 1
+PREHOOK: type: QUERY
+POSTHOOK: query: explain analyze SELECT SIGMOID(2) FROM src LIMIT 1
+POSTHOOK: type: QUERY
+Plan optimized by CBO.
+
+Stage-0
+  Fetch Operator
+    limit:1
+    Limit [LIM_2]
+      Number of rows:1
+      Select Operator [SEL_1]
+        Output:["_col0"]
+        TableScan [TS_0]
+
+PREHOOK: query: DROP TEMPORARY MACRO SIGMOID
+PREHOOK: type: DROPMACRO
+PREHOOK: Output: database:default
+POSTHOOK: query: DROP TEMPORARY MACRO SIGMOID
+POSTHOOK: type: DROPMACRO
+POSTHOOK: Output: database:default
+PREHOOK: query: explain analyze DROP TEMPORARY MACRO SIGMOID
+PREHOOK: type: DROPMACRO
+POSTHOOK: query: explain analyze DROP TEMPORARY MACRO SIGMOID
+POSTHOOK: type: DROPMACRO
+Stage-0
+
+PREHOOK: query: DROP TEMPORARY MACRO SIGMOID
+PREHOOK: type: DROPMACRO
+PREHOOK: Output: database:default
+POSTHOOK: query: DROP TEMPORARY MACRO SIGMOID
+POSTHOOK: type: DROPMACRO
+POSTHOOK: Output: database:default
+PREHOOK: query: create table src_autho_test as select * from src
+PREHOOK: type: CREATETABLE_AS_SELECT
+PREHOOK: Input: default@src
+PREHOOK: Output: database:default
+PREHOOK: Output: default@src_autho_test
+POSTHOOK: query: create table src_autho_test as select * from src
+POSTHOOK: type: CREATETABLE_AS_SELECT
+POSTHOOK: Input: default@src
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@src_autho_test
+PREHOOK: query: explain analyze create table src_autho_test as select * from src
+PREHOOK: type: CREATETABLE_AS_SELECT
+POSTHOOK: query: explain analyze create table src_autho_test as select * from src
+POSTHOOK: type: CREATETABLE_AS_SELECT
+Plan optimized by CBO.
+
+Stage-3
+  Stats-Aggr Operator
+    Stage-4
+      Create Table Operator:
+        name:default.src_autho_test
+        Stage-2
+          Dependency Collection{}
+            Stage-1
+              Map 1
+              File Output Operator [FS_2]
+                table:{"name:":"default.src_autho_test"}
+                Select Operator [SEL_1] (rows=500/500 width=178)
+                  Output:["_col0","_col1"]
+                  TableScan [TS_0] (rows=500/500 width=178)
+                    default@src,src,Tbl:COMPLETE,Col:COMPLETE,Output:["key","value"]
+        Stage-0
+          Move Operator
+             Please refer to the previous Stage-1
+
+PREHOOK: query: create table src_autho_test as select * from src
+PREHOOK: type: CREATETABLE_AS_SELECT
+PREHOOK: Input: default@src
+PREHOOK: Output: database:default
+PREHOOK: Output: default@src_autho_test
+POSTHOOK: query: create table src_autho_test as select * from src
+POSTHOOK: type: CREATETABLE_AS_SELECT
+POSTHOOK: Input: default@src
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@src_autho_test
+POSTHOOK: Lineage: src_autho_test.key SIMPLE [(src)src.FieldSchema(name:key, type:string, comment:default), ]
+POSTHOOK: Lineage: src_autho_test.value SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ]
+PREHOOK: query: grant select on table src_autho_test to user hive_test_user
+PREHOOK: type: GRANT_PRIVILEGE
+PREHOOK: Output: default@src_autho_test
+POSTHOOK: query: grant select on table src_autho_test to user hive_test_user
+POSTHOOK: type: GRANT_PRIVILEGE
+POSTHOOK: Output: default@src_autho_test
+PREHOOK: query: explain analyze grant select on table src_autho_test to user hive_test_user
+PREHOOK: type: GRANT_PRIVILEGE
+POSTHOOK: query: explain analyze grant select on table src_autho_test to user hive_test_user
+POSTHOOK: type: GRANT_PRIVILEGE
+Stage-0
+
+PREHOOK: query: grant select on table src_autho_test to user hive_test_user
+PREHOOK: type: GRANT_PRIVILEGE
+PREHOOK: Output: default@src_autho_test
+POSTHOOK: query: grant select on table src_autho_test to user hive_test_user
+POSTHOOK: type: GRANT_PRIVILEGE
+POSTHOOK: Output: default@src_autho_test
+PREHOOK: query: show grant user hive_test_user on table src_autho_test
+PREHOOK: type: SHOW_GRANT
+POSTHOOK: query: show grant user hive_test_user on table src_autho_test
+POSTHOOK: type: SHOW_GRANT
+PREHOOK: query: explain analyze show grant user hive_test_user on table src_autho_test
+PREHOOK: type: SHOW_GRANT
+POSTHOOK: query: explain analyze show grant user hive_test_user on table src_autho_test
+POSTHOOK: type: SHOW_GRANT
+Stage-1
+  Fetch Operator
+    limit:-1
+    Stage-0
+
+PREHOOK: query: show grant user hive_test_user on table src_autho_test(key)
+PREHOOK: type: SHOW_GRANT
+POSTHOOK: query: show grant user hive_test_user on table src_autho_test(key)
+POSTHOOK: type: SHOW_GRANT
+PREHOOK: query: explain analyze show grant user hive_test_user on table src_autho_test(key)
+PREHOOK: type: SHOW_GRANT
+POSTHOOK: query: explain analyze show grant user hive_test_user on table src_autho_test(key)
+POSTHOOK: type: SHOW_GRANT
+Stage-1
+  Fetch Operator
+    limit:-1
+    Stage-0
+
+PREHOOK: query: select key from src_autho_test order by key limit 20
+PREHOOK: type: QUERY
+PREHOOK: Input: default@src_autho_test
+#### A masked pattern was here ####
+POSTHOOK: query: select key from src_autho_test order by key limit 20
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@src_autho_test
+#### A masked pattern was here ####
+0
+0
+0
+10
+100
+100
+103
+103
+104
+104
+105
+11
+111
+113
+113
+114
+116
+118
+118
+119
+PREHOOK: query: revoke select on table src_autho_test from user hive_test_user
+PREHOOK: type: REVOKE_PRIVILEGE
+PREHOOK: Output: default@src_autho_test
+POSTHOOK: query: revoke select on table src_autho_test from user hive_test_user
+POSTHOOK: type: REVOKE_PRIVILEGE
+POSTHOOK: Output: default@src_autho_test
+PREHOOK: query: explain analyze revoke select on table src_autho_test from user hive_test_user
+PREHOOK: type: REVOKE_PRIVILEGE
+POSTHOOK: query: explain analyze revoke select on table src_autho_test from user hive_test_user
+POSTHOOK: type: REVOKE_PRIVILEGE
+Stage-0
+
+PREHOOK: query: grant select(key) on table src_autho_test to user hive_test_user
+PREHOOK: type: GRANT_PRIVILEGE
+PREHOOK: Output: default@src_autho_test
+POSTHOOK: query: grant select(key) on table src_autho_test to user hive_test_user
+POSTHOOK: type: GRANT_PRIVILEGE
+POSTHOOK: Output: default@src_autho_test
+PREHOOK: query: explain analyze grant select(key) on table src_autho_test to user hive_test_user
+PREHOOK: type: GRANT_PRIVILEGE
+POSTHOOK: query: explain analyze grant select(key) on table src_autho_test to user hive_test_user
+POSTHOOK: type: GRANT_PRIVILEGE
+Stage-0
+
+PREHOOK: query: revoke select(key) on table src_autho_test from user hive_test_user
+PREHOOK: type: REVOKE_PRIVILEGE
+PREHOOK: Output: default@src_autho_test
+POSTHOOK: query: revoke select(key) on table src_autho_test from user hive_test_user
+POSTHOOK: type: REVOKE_PRIVILEGE
+POSTHOOK: Output: default@src_autho_test
+PREHOOK: query: explain analyze revoke select(key) on table src_autho_test from user hive_test_user
+PREHOOK: type: REVOKE_PRIVILEGE
+POSTHOOK: query: explain analyze revoke select(key) on table src_autho_test from user hive_test_user
+POSTHOOK: type: REVOKE_PRIVILEGE
+Stage-0
+
+PREHOOK: query: create role sRc_roLE
+PREHOOK: type: CREATEROLE
+POSTHOOK: query: create role sRc_roLE
+POSTHOOK: type: CREATEROLE
+PREHOOK: query: explain analyze 
+create role sRc_roLE
+PREHOOK: type: CREATEROLE
+POSTHOOK: query: explain analyze 
+create role sRc_roLE
+POSTHOOK: type: CREATEROLE
+Stage-0
+
+PREHOOK: query: create role sRc_roLE
+PREHOOK: type: CREATEROLE
+POSTHOOK: query: create role sRc_roLE
+POSTHOOK: type: CREATEROLE
+PREHOOK: query: grant role sRc_roLE to user hive_test_user
+PREHOOK: type: GRANT_ROLE
+POSTHOOK: query: grant role sRc_roLE to user hive_test_user
+POSTHOOK: type: GRANT_ROLE
+PREHOOK: query: explain analyze
+grant role sRc_roLE to user hive_test_user
+PREHOOK: type: GRANT_ROLE
+POSTHOOK: query: explain analyze
+grant role sRc_roLE to user hive_test_user
+POSTHOOK: type: GRANT_ROLE
+Stage-0
+
+PREHOOK: query: grant role sRc_roLE to user hive_test_user
+PREHOOK: type: GRANT_ROLE
+POSTHOOK: query: grant role sRc_roLE to user hive_test_user
+POSTHOOK: type: GRANT_ROLE
+PREHOOK: query: show role grant user hive_test_user
+PREHOOK: type: SHOW_ROLE_GRANT
+POSTHOOK: query: show role grant user hive_test_user
+POSTHOOK: type: SHOW_ROLE_GRANT
+PREHOOK: query: explain analyze show role grant user hive_test_user
+PREHOOK: type: SHOW_ROLE_GRANT
+POSTHOOK: query: explain analyze show role grant user hive_test_user
+POSTHOOK: type: SHOW_ROLE_GRANT
+Stage-1
+  Fetch Operator
+    limit:-1
+    Stage-0
+
+PREHOOK: query: drop role sRc_roLE
+PREHOOK: type: DROPROLE
+POSTHOOK: query: drop role sRc_roLE
+POSTHOOK: type: DROPROLE
+PREHOOK: query: explain analyze drop role sRc_roLE
+PREHOOK: type: DROPROLE
+POSTHOOK: query: explain analyze drop role sRc_roLE
+POSTHOOK: type: DROPROLE
+Stage-0
+
+PREHOOK: query: drop role sRc_roLE
+PREHOOK: type: DROPROLE
+POSTHOOK: query: drop role sRc_roLE
+POSTHOOK: type: DROPROLE
+PREHOOK: query: drop table src_autho_test
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@src_autho_test
+PREHOOK: Output: default@src_autho_test
+POSTHOOK: query: drop table src_autho_test
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@src_autho_test
+POSTHOOK: Output: default@src_autho_test
+PREHOOK: query: drop view v
+PREHOOK: type: DROPVIEW
+POSTHOOK: query: drop view v
+POSTHOOK: type: DROPVIEW
+PREHOOK: query: explain analyze drop view v
+PREHOOK: type: DROPVIEW
+POSTHOOK: query: explain analyze drop view v
+POSTHOOK: type: DROPVIEW
+Stage-0
+  Drop Table Operator:
+    table:v
+
+PREHOOK: query: create view v as with cte as (select * from src  order by key limit 5)
+select * from cte
+PREHOOK: type: CREATEVIEW
+PREHOOK: Input: default@src
+PREHOOK: Output: database:default
+PREHOOK: Output: default@v
+POSTHOOK: query: create view v as with cte as (select * from src  order by key limit 5)
+select * from cte
+POSTHOOK: type: CREATEVIEW
+POSTHOOK: Input: default@src
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@v
+PREHOOK: query: explain analyze create view v as with cte as (select * from src  order by key limit 5)
+select * from cte
+PREHOOK: type: CREATEVIEW
+POSTHOOK: query: explain analyze create view v as with cte as (select * from src  order by key limit 5)
+select * from cte
+POSTHOOK: type: CREATEVIEW
+Plan not optimized by CBO.
+
+Stage-0
+  Create View Operator:
+    name:default.v,original text:with cte as (select * from src  order by key limit 5)
+select * from cte
+
+PREHOOK: query: with cte as (select * from src  order by key limit 5)
+select * from cte
+PREHOOK: type: QUERY
+PREHOOK: Input: default@src
+#### A masked pattern was here ####
+POSTHOOK: query: with cte as (select * from src  order by key limit 5)
+select * from cte
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@src
+#### A masked pattern was here ####
+PREHOOK: query: explain analyze with cte as (select * from src  order by key limit 5)
+select * from cte
+PREHOOK: type: QUERY
+POSTHOOK: query: explain analyze with cte as (select * from src  order by key limit 5)
+select * from cte
+POSTHOOK: type: QUERY
+Plan optimized by CBO.
+
+Vertex dependency in root stage
+Reducer 2 <- Map 1 (SIMPLE_EDGE)
+
+Stage-0
+  Fetch Operator
+    limit:5
+    Stage-1
+      Reducer 2
+      File Output Operator [FS_5]
+        Limit [LIM_4] (rows=5/5 width=178)
+          Number of rows:5
+          Select Operator [SEL_3] (rows=500/5 width=178)
+            Output:["_col0","_col1"]
+          <-Map 1 [SIMPLE_EDGE]
+            SHUFFLE [RS_2]
+              Select Operator [SEL_1] (rows=500/500 width=178)
+                Output:["_col0","_col1"]
+                TableScan [TS_0] (rows=500/500 width=178)
+                  default@src,src,Tbl:COMPLETE,Col:COMPLETE,Output:["key","value"]
+
+PREHOOK: query: create table orc_merge5 (userid bigint, string1 string, subtype double, decimal1 decimal, ts timestamp) stored as orc
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@orc_merge5
+POSTHOOK: query: create table orc_merge5 (userid bigint, string1 string, subtype double, decimal1 decimal, ts timestamp) stored as orc
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@orc_merge5
+PREHOOK: query: load data local inpath '../../data/files/orc_split_elim.orc' into table orc_merge5
+PREHOOK: type: LOAD
+#### A masked pattern was here ####
+PREHOOK: Output: default@orc_merge5
+POSTHOOK: query: load data local inpath '../../data/files/orc_split_elim.orc' into table orc_merge5
+POSTHOOK: type: LOAD
+#### A masked pattern was here ####
+POSTHOOK: Output: default@orc_merge5
+PREHOOK: query: insert overwrite table orc_merge5 select userid,string1,subtype,decimal1,ts from orc_merge5 where userid<=13
+PREHOOK: type: QUERY
+PREHOOK: Input: default@orc_merge5
+PREHOOK: Output: default@orc_merge5
+POSTHOOK: query: insert overwrite table orc_merge5 select userid,string1,subtype,decimal1,ts from orc_merge5 where userid<=13
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@orc_merge5
+POSTHOOK: Output: default@orc_merge5
+PREHOOK: query: explain analyze insert overwrite table orc_merge5 select userid,string1,subtype,decimal1,ts from orc_merge5 where userid<=13
+PREHOOK: type: QUERY
+POSTHOOK: query: explain analyze insert overwrite table orc_merge5 select userid,string1,subtype,decimal1,ts from orc_merge5 where userid<=13
+POSTHOOK: type: QUERY
+Plan optimized by CBO.
+
+Stage-3
+  Stats-Aggr Operator
+    Stage-0
+      Move Operator
+        table:{"name:":"default.orc_merge5"}
+        Stage-2
+          Dependency Collection{}
+            Stage-5(CONDITIONAL)
+              Move Operator
+                Stage-8(CONDITIONAL CHILD TASKS: Stage-5, Stage-4, Stage-6)
+                  Conditional Operator
+                    Stage-1
+                      Map 1
+                      File Output Operator [FS_3]
+                        table:{"name:":"default.orc_merge5"}
+                        Select Operator [SEL_2] (rows=306/3 width=268)
+                          Output:["_col0","_col1","_col2","_col3","_col4"]
+                          Filter Operator [FIL_4] (rows=306/3 width=268)
+                            predicate:(userid <= 13)
+                            TableScan [TS_0] (rows=919/15000 width=268)
+                              default@orc_merge5,orc_merge5,Tbl:COMPLETE,Col:NONE,Output:["userid","string1","subtype","decimal1","ts"]
+            Stage-4(CONDITIONAL)
+              File Merge
+                 Please refer to the previous Stage-8(CONDITIONAL CHILD TASKS: Stage-5, Stage-4, Stage-6)
+            Stage-7
+              Move Operator
+                Stage-6(CONDITIONAL)
+                  File Merge
+                     Please refer to the previous Stage-8(CONDITIONAL CHILD TASKS: Stage-5, Stage-4, Stage-6)
+
+PREHOOK: query: drop table orc_merge5
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@orc_merge5
+PREHOOK: Output: default@orc_merge5
+POSTHOOK: query: drop table orc_merge5
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@orc_merge5
+POSTHOOK: Output: default@orc_merge5
+PREHOOK: query: CREATE TABLE srcbucket_mapjoin(key int, value string) partitioned by (ds string) CLUSTERED BY (key) INTO 2 BUCKETS STORED AS TEXTFILE
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@srcbucket_mapjoin
+POSTHOOK: query: CREATE TABLE srcbucket_mapjoin(key int, value string) partitioned by (ds string) CLUSTERED BY (key) INTO 2 BUCKETS STORED AS TEXTFILE
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@srcbucket_mapjoin
+PREHOOK: query: CREATE TABLE tab_part (key int, value string) PARTITIONED BY(ds STRING) CLUSTERED BY (key) INTO 4 BUCKETS STORED AS TEXTFILE
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@tab_part
+POSTHOOK: query: CREATE TABLE tab_part (key int, value string) PARTITIONED BY(ds STRING) CLUSTERED BY (key) INTO 4 BUCKETS STORED AS TEXTFILE
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@tab_part
+PREHOOK: query: CREATE TABLE srcbucket_mapjoin_part (key int, value string) partitioned by (ds string) CLUSTERED BY (key) INTO 4 BUCKETS STORED AS TEXTFILE
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@srcbucket_mapjoin_part
+POSTHOOK: query: CREATE TABLE srcbucket_mapjoin_part (key int, value string) partitioned by (ds string) CLUSTERED BY (key) INTO 4 BUCKETS STORED AS TEXTFILE
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@srcbucket_mapjoin_part
+PREHOOK: query: load data local inpath '../../data/files/srcbucket20.txt' INTO TABLE srcbucket_mapjoin partition(ds='2008-04-08')
+PREHOOK: type: LOAD
+#### A masked pattern was here ####
+PREHOOK: Output: default@srcbucket_mapjoin
+POSTHOOK: query: load data local inpath '../../data/files/srcbucket20.txt' INTO TABLE srcbucket_mapjoin partition(ds='2008-04-08')
+POSTHOOK: type: LOAD
+#### A masked pattern was here ####
+POSTHOOK: Output: default@srcbucket_mapjoin
+POSTHOOK: Output: default@srcbucket_mapjoin@ds=2008-04-08
+PREHOOK: query: load data local inpath '../../data/files/srcbucket22.txt' INTO TABLE srcbucket_mapjoin partition(ds='2008-04-08')
+PREHOOK: type: LOAD
+#### A masked pattern was here ####
+PREHOOK: Output: default@srcbucket_mapjoin@ds=2008-04-08
+POSTHOOK: query: load data local inpath '../../data/files/srcbucket22.txt' INTO TABLE srcbucket_mapjoin partition(ds='2008-04-08')
+POSTHOOK: type: LOAD
+#### A masked pattern was here ####
+POSTHOOK: Output: default@srcbucket_mapjoin@ds=2008-04-08
+PREHOOK: query: load data local inpath '../../data/files/srcbucket20.txt' INTO TABLE srcbucket_mapjoin_part partition(ds='2008-04-08')
+PREHOOK: type: LOAD
+#### A masked pattern was here ####
+PREHOOK: Output: default@srcbucket_mapjoin_part
+POSTHOOK: query: load data local inpath '../../data/files/srcbucket20.txt' INTO TABLE srcbucket_mapjoin_part partition(ds='2008-04-08')
+POSTHOOK: type: LOAD
+#### A masked pattern was here ####
+POSTHOOK: Output: default@srcbucket_mapjoin_part
+POSTHOOK: Output: default@srcbucket_mapjoin_part@ds=2008-04-08
+PREHOOK: query: load data local inpath '../../data/files/srcbucket21.txt' INTO TABLE srcbucket_mapjoin_part partition(ds='2008-04-08')
+PREHOOK: type: LOAD
+#### A masked pattern was here ####
+PREHOOK: Output: default@srcbucket_mapjoin_part@ds=2008-04-08
+POSTHOOK: query: load data local inpath '../../data/files/srcbucket21.txt' INTO TABLE srcbucket_mapjoin_part partition(ds='2008-04-08')
+POSTHOOK: type: LOAD
+#### A masked pattern was here ####
+POSTHOOK: Output: default@srcbucket_mapjoin_part@ds=2008-04-08
+PREHOOK: query: load data local inpath '../../data/files/srcbucket22.txt' INTO TABLE srcbucket_mapjoin_part partition(ds='2008-04-08')
+PREHOOK: type: LOAD
+#### A masked pattern was here ####
+PREHOOK: Output: default@srcbucket_mapjoin_part@ds=2008-04-08
+POSTHOOK: query: load data local inpath '../../data/files/srcbucket22.txt' INTO TABLE srcbucket_mapjoin_part partition(ds='2008-04-08')
+POSTHOOK: type: LOAD
+#### A masked pattern was here ####
+POSTHOOK: Output: default@srcbucket_mapjoin_part@ds=2008-04-08
+PREHOOK: query: load data local inpath '../../data/files/srcbucket23.txt' INTO TABLE srcbucket_mapjoin_part partition(ds='2008-04-08')
+PREHOOK: type: LOAD
+#### A masked pattern was here ####
+PREHOOK: Output: default@srcbucket_mapjoin_part@ds=2008-04-08
+POSTHOOK: query: load data local inpath '../../data/files/srcbucket23.txt' INTO TABLE srcbucket_mapjoin_part partition(ds='2008-04-08')
+POSTHOOK: type: LOAD
+#### A masked pattern was here ####
+POSTHOOK: Output: default@srcbucket_mapjoin_part@ds=2008-04-08
+PREHOOK: query: insert overwrite table tab_part partition (ds='2008-04-08')
+select key,value from srcbucket_mapjoin_part
+PREHOOK: type: QUERY
+PREHOOK: Input: default@srcbucket_mapjoin_part
+PREHOOK: Input: default@srcbucket_mapjoin_part@ds=2008-04-08
+PREHOOK: Output: default@tab_part@ds=2008-04-08
+POSTHOOK: query: insert overwrite table tab_part partition (ds='2008-04-08')
+select key,value from srcbucket_mapjoin_part
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@srcbucket_mapjoin_part
+POSTHOOK: Input: default@srcbucket_mapjoin_part@ds=2008-04-08
+POSTHOOK: Output: default@tab_part@ds=2008-04-08
+POSTHOOK: Lineage: tab_part PARTITION(ds=2008-04-08).key SIMPLE [(srcbucket_mapjoin_part)srcbucket_mapjoin_part.FieldSchema(name:key, type:int, comment:null), ]
+POSTHOOK: Lineage: tab_part PARTITION(ds=2008-04-08).value SIMPLE [(srcbucket_mapjoin_part)srcbucket_mapjoin_part.FieldSchema(name:value, type:string, comment:null), ]
+PREHOOK: query: CREATE TABLE tab(key int, value string) PARTITIONED BY(ds STRING) CLUSTERED BY (key) INTO 2 BUCKETS STORED AS TEXTFILE
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@tab
+POSTHOOK: query: CREATE TABLE tab(key int, value string) PARTITIONED BY(ds STRING) CLUSTERED BY (key) INTO 2 BUCKETS STORED AS TEXTFILE
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@tab
+PREHOOK: query: insert overwrite table tab partition (ds='2008-04-08')
+select key,value from srcbucket_mapjoin
+PREHOOK: type: QUERY
+PREHOOK: Input: default@srcbucket_mapjoin
+PREHOOK: Input: default@srcbucket_mapjoin@ds=2008-04-08
+PREHOOK: Output: default@tab@ds=2008-04-08
+POSTHOOK: query: insert overwrite table tab partition (ds='2008-04-08')
+select key,value from srcbucket_mapjoin
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@srcbucket_mapjoin
+POSTHOOK: Input: default@srcbucket_mapjoin@ds=2008-04-08
+POSTHOOK: Output: default@tab@ds=2008-04-08
+POSTHOOK: Lineage: tab PARTITION(ds=2008-04-08).key SIMPLE [(srcbucket_mapjoin)srcbucket_mapjoin.FieldSchema(name:key, type:int, comment:null), ]
+POSTHOOK: Lineage: tab PARTITION(ds=2008-04-08).value SIMPLE [(srcbucket_mapjoin)srcbucket_mapjoin.FieldSchema(name:value, type:string, comment:null), ]
+PREHOOK: query: select a.key, a.value, b.value
+from tab a join tab_part b on a.key = b.key
+PREHOOK: type: QUERY
+PREHOOK: Input: default@tab
+PREHOOK: Input: default@tab@ds=2008-04-08
+PREHOOK: Input: default@tab_part
+PREHOOK: Input: default@tab_part@ds=2008-04-08
+#### A masked pattern was here ####
+POSTHOOK: query: select a.key, a.value, b.value
+from tab a join tab_part b on a.key = b.key
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@tab
+POSTHOOK: Input: default@tab@ds=2008-04-08
+POSTHOOK: Input: default@tab_part
+POSTHOOK: Input: default@tab_part@ds=2008-04-08
+#### A masked pattern was here ####
+PREHOOK: query: explain analyze
+select a.key, a.value, b.value
+from tab a join tab_part b on a.key = b.key
+PREHOOK: type: QUERY
+POSTHOOK: query: explain analyze
+select a.key, a.value, b.value
+from tab a join tab_part b on a.key = b.key
+POSTHOOK: type: QUERY
+Plan optimized by CBO.
+
+Vertex dependency in root stage
+Map 2 <- Map 1 (CUSTOM_EDGE)
+
+Stage-0
+  Fetch Operator
+    limit:-1
+    Stage-1
+      Map 2
+      File Output Operator [FS_10]
+        Select Operator [SEL_9] (rows=550/480 width=18)
+          Output:["_col0","_col1","_col2"]
+          Map Join Operator [MAPJOIN_15] (rows=550/480 width=18)
+            BucketMapJoin:true,Conds:RS_6._col0=SEL_5._col0(Inner),HybridGraceHashJoin:true,Output:["_col0","_col1","_col3"]
+          <-Map 1 [CUSTOM_EDGE]
+            MULTICAST [RS_6]
+              PartitionCols:_col0
+              Select Operator [SEL_2] (rows=242/242 width=18)
+                Output:["_col0","_col1"]
+                Filter Operator [FIL_13] (rows=242/242 width=18)
+                  predicate:key is not null
+                  TableScan [TS_0] (rows=242/242 width=18)
+                    default@tab,a,Tbl:COMPLETE,Col:NONE,Output:["key","value"]
+          <-Select Operator [SEL_5] (rows=500/500 width=18)
+              Output:["_col0","_col1"]
+              Filter Operator [FIL_14] (rows=500/500 width=18)
+                predicate:key is not null
+                TableScan [TS_3] (rows=500/500 width=18)
+                  default@tab_part,b,Tbl:COMPLETE,Col:NONE,Output:["key","value"]
+

http://git-wip-us.apache.org/repos/asf/hive/blob/20824f27/ql/src/test/results/clientpositive/tez/explainanalyze_4.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/tez/explainanalyze_4.q.out b/ql/src/test/results/clientpositive/tez/explainanalyze_4.q.out
new file mode 100644
index 0000000..3426d19
--- /dev/null
+++ b/ql/src/test/results/clientpositive/tez/explainanalyze_4.q.out
@@ -0,0 +1,590 @@
+PREHOOK: query: select
+  *
+from alltypesorc a join alltypesorc b on a.cint = b.cint
+where
+  a.cint between 1000000 and 3000000 and b.cbigint is not null
+order by a.cint
+PREHOOK: type: QUERY
+PREHOOK: Input: default@alltypesorc
+#### A masked pattern was here ####
+POSTHOOK: query: select
+  *
+from alltypesorc a join alltypesorc b on a.cint = b.cint
+where
+  a.cint between 1000000 and 3000000 and b.cbigint is not null
+order by a.cint
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@alltypesorc
+#### A masked pattern was here ####
+PREHOOK: query: -- First try with regular mergejoin
+explain analyze
+select
+  *
+from alltypesorc a join alltypesorc b on a.cint = b.cint
+where
+  a.cint between 1000000 and 3000000 and b.cbigint is not null
+order by a.cint
+PREHOOK: type: QUERY
+POSTHOOK: query: -- First try with regular mergejoin
+explain analyze
+select
+  *
+from alltypesorc a join alltypesorc b on a.cint = b.cint
+where
+  a.cint between 1000000 and 3000000 and b.cbigint is not null
+order by a.cint
+POSTHOOK: type: QUERY
+Plan optimized by CBO.
+
+Vertex dependency in root stage
+Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 4 (SIMPLE_EDGE)
+Reducer 3 <- Reducer 2 (SIMPLE_EDGE)
+
+Stage-0
+  Fetch Operator
+    limit:-1
+    Stage-1
+      Reducer 3
+      File Output Operator [FS_12]
+        Select Operator [SEL_11] (rows=7286/10 width=620)
+          Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11","_col12","_col13","_col14","_col15","_col16","_col17","_col18","_col19","_col20","_col21","_col22","_col23"]
+        <-Reducer 2 [SIMPLE_EDGE]
+          SHUFFLE [RS_10]
+            Merge Join Operator [MERGEJOIN_17] (rows=7286/10 width=620)
+              Conds:RS_6._col2=RS_7._col2(Inner),Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11","_col12","_col13","_col14","_col15","_col16","_col17","_col18","_col19","_col20","_col21","_col22","_col23"]
+            <-Map 1 [SIMPLE_EDGE]
+              SHUFFLE [RS_6]
+                PartitionCols:_col2
+                Select Operator [SEL_2] (rows=6144/10 width=251)
+                  Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11"]
+                  Filter Operator [FIL_15] (rows=6144/10 width=251)
+                    predicate:cint BETWEEN 1000000 AND 3000000
+                    TableScan [TS_0] (rows=12288/12288 width=251)
+                      default@alltypesorc,a,Tbl:COMPLETE,Col:COMPLETE,Output:["ctinyint","csmallint","cint","cbigint","cfloat","cdouble","cstring1","cstring2","ctimestamp1","ctimestamp2","cboolean1","cboolean2"]
+            <-Map 4 [SIMPLE_EDGE]
+              SHUFFLE [RS_7]
+                PartitionCols:_col2
+                Select Operator [SEL_5] (rows=3424/10 width=251)
+                  Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11"]
+                  Filter Operator [FIL_16] (rows=3424/10 width=251)
+                    predicate:(cint is not null and cbigint is not null and cint BETWEEN 1000000 AND 3000000)
+                    TableScan [TS_3] (rows=12288/12288 width=251)
+                      default@alltypesorc,b,Tbl:COMPLETE,Col:COMPLETE,Output:["ctinyint","csmallint","cint","cbigint","cfloat","cdouble","cstring1","cstring2","ctimestamp1","ctimestamp2","cboolean1","cboolean2"]
+
+PREHOOK: query: select
+  *
+from alltypesorc a join alltypesorc b on a.cint = b.cint
+where
+  a.cint between 1000000 and 3000000 and b.cbigint is not null
+order by a.cint
+PREHOOK: type: QUERY
+PREHOOK: Input: default@alltypesorc
+#### A masked pattern was here ####
+POSTHOOK: query: select
+  *
+from alltypesorc a join alltypesorc b on a.cint = b.cint
+where
+  a.cint between 1000000 and 3000000 and b.cbigint is not null
+order by a.cint
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@alltypesorc
+#### A masked pattern was here ####
+11	NULL	1000828	1531084669	11.0	NULL	wM316f6NqGIkoP388j3F6	poWQQo3Upvt3Wh	1969-12-31 16:00:02.351	NULL	false	true	11	NULL	1000828	1531084669	11.0	NULL	wM316f6NqGIkoP388j3F6	poWQQo3Upvt3Wh	1969-12-31 16:00:02.351	NULL	false	true
+NULL	-3799	1248059	1864027286	NULL	-3799.0	Uhps6mMh3IfHB3j7yH62K	4KWs6gw7lv2WYd66P	NULL	1969-12-31 15:59:54.622	false	true	NULL	-3799	1248059	1864027286	NULL	-3799.0	Uhps6mMh3IfHB3j7yH62K	4KWs6gw7lv2WYd66P	NULL	1969-12-31 15:59:54.622	false	true
+NULL	10782	1286921	1864027286	NULL	10782.0	ODLrXI8882q8LS8	4KWs6gw7lv2WYd66P	NULL	1969-12-31 15:59:52.138	true	true	NULL	10782	1286921	1864027286	NULL	10782.0	ODLrXI8882q8LS8	4KWs6gw7lv2WYd66P	NULL	1969-12-31 15:59:52.138	true	true
+NULL	-13036	1288927	-1645852809	NULL	-13036.0	yinBY725P7V2	xH7445Rals48VOulSyR5F	NULL	1969-12-31 16:00:00.763	true	false	NULL	-13036	1288927	-1645852809	NULL	-13036.0	yinBY725P7V2	xH7445Rals48VOulSyR5F	NULL	1969-12-31 16:00:00.763	true	false
+11	NULL	1310786	-413875656	11.0	NULL	W0rvA4H1xn0xMG4uk0	8yVVjG	1969-12-31 16:00:02.351	NULL	false	true	11	NULL	1310786	-413875656	11.0	NULL	W0rvA4H1xn0xMG4uk0	8yVVjG	1969-12-31 16:00:02.351	NULL	false	true
+-51	NULL	2089466	-240556350	-51.0	NULL	cXX24dH7tblSj46j2g	C31eea0wrHHqvj	1969-12-31 16:00:08.451	NULL	true	true	-51	NULL	2089466	-240556350	-51.0	NULL	cXX24dH7tblSj46j2g	C31eea0wrHHqvj	1969-12-31 16:00:08.451	NULL	true	true
+NULL	-8915	2101183	1864027286	NULL	-8915.0	x7By66525	4KWs6gw7lv2WYd66P	NULL	1969-12-31 16:00:05.831	false	true	NULL	-8915	2101183	1864027286	NULL	-8915.0	x7By66525	4KWs6gw7lv2WYd66P	NULL	1969-12-31 16:00:05.831	false	true
+8	NULL	2229621	-381406148	8.0	NULL	q7onkS7QRPh5ghOK	oKb0bi	1969-12-31 16:00:15.892	NULL	true	false	8	NULL	2229621	-381406148	8.0	NULL	q7onkS7QRPh5ghOK	oKb0bi	1969-12-31 16:00:15.892	NULL	true	false
+8	NULL	2433892	-1611863517	8.0	NULL	674ILv3V2TxFqXP6wSbL	VLprkK2XfX	1969-12-31 16:00:15.892	NULL	false	true	8	NULL	2433892	-1611863517	8.0	NULL	674ILv3V2TxFqXP6wSbL	VLprkK2XfX	1969-12-31 16:00:15.892	NULL	false	true
+-51	NULL	2949963	-1580871111	-51.0	NULL	0K68k3bdl7jO7	TPPAu	1969-12-31 16:00:08.451	NULL	true	false	-51	NULL	2949963	-1580871111	-51.0	NULL	0K68k3bdl7jO7	TPPAu	1969-12-31 16:00:08.451	NULL	true	false
+PREHOOK: query: select
+  count(*)
+from alltypesorc a join alltypesorc b on a.cint = b.cint
+where
+  a.cint between 1000000 and 3000000 and b.cbigint is not null
+PREHOOK: type: QUERY
+PREHOOK: Input: default@alltypesorc
+#### A masked pattern was here ####
+POSTHOOK: query: select
+  count(*)
+from alltypesorc a join alltypesorc b on a.cint = b.cint
+where
+  a.cint between 1000000 and 3000000 and b.cbigint is not null
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@alltypesorc
+#### A masked pattern was here ####
+PREHOOK: query: explain analyze
+select
+  count(*)
+from alltypesorc a join alltypesorc b on a.cint = b.cint
+where
+  a.cint between 1000000 and 3000000 and b.cbigint is not null
+PREHOOK: type: QUERY
+POSTHOOK: query: explain analyze
+select
+  count(*)
+from alltypesorc a join alltypesorc b on a.cint = b.cint
+where
+  a.cint between 1000000 and 3000000 and b.cbigint is not null
+POSTHOOK: type: QUERY
+Plan optimized by CBO.
+
+Vertex dependency in root stage
+Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 4 (SIMPLE_EDGE)
+Reducer 3 <- Reducer 2 (SIMPLE_EDGE)
+
+Stage-0
+  Fetch Operator
+    limit:-1
+    Stage-1
+      Reducer 3
+      File Output Operator [FS_14]
+        Group By Operator [GBY_12] (rows=1/1 width=8)
+          Output:["_col0"],aggregations:["count(VALUE._col0)"]
+        <-Reducer 2 [SIMPLE_EDGE]
+          SHUFFLE [RS_11]
+            Group By Operator [GBY_10] (rows=1/1 width=8)
+              Output:["_col0"],aggregations:["count()"]
+              Merge Join Operator [MERGEJOIN_19] (rows=7286/10 width=8)
+                Conds:RS_6._col0=RS_7._col0(Inner)
+              <-Map 1 [SIMPLE_EDGE]
+                SHUFFLE [RS_6]
+                  PartitionCols:_col0
+                  Select Operator [SEL_2] (rows=6144/10 width=2)
+                    Output:["_col0"]
+                    Filter Operator [FIL_17] (rows=6144/10 width=2)
+                      predicate:cint BETWEEN 1000000 AND 3000000
+                      TableScan [TS_0] (rows=12288/12288 width=2)
+                        default@alltypesorc,a,Tbl:COMPLETE,Col:COMPLETE,Output:["cint"]
+              <-Map 4 [SIMPLE_EDGE]
+                SHUFFLE [RS_7]
+                  PartitionCols:_col0
+                  Select Operator [SEL_5] (rows=3424/10 width=8)
+                    Output:["_col0"]
+                    Filter Operator [FIL_18] (rows=3424/10 width=8)
+                      predicate:(cint is not null and cbigint is not null and cint BETWEEN 1000000 AND 3000000)
+                      TableScan [TS_3] (rows=12288/12288 width=8)
+                        default@alltypesorc,b,Tbl:COMPLETE,Col:COMPLETE,Output:["cint","cbigint"]
+
+PREHOOK: query: select
+  count(*)
+from alltypesorc a join alltypesorc b on a.cint = b.cint
+where
+  a.cint between 1000000 and 3000000 and b.cbigint is not null
+PREHOOK: type: QUERY
+PREHOOK: Input: default@alltypesorc
+#### A masked pattern was here ####
+POSTHOOK: query: select
+  count(*)
+from alltypesorc a join alltypesorc b on a.cint = b.cint
+where
+  a.cint between 1000000 and 3000000 and b.cbigint is not null
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@alltypesorc
+#### A masked pattern was here ####
+10
+PREHOOK: query: select
+  a.csmallint, count(*) c1
+from alltypesorc a join alltypesorc b on a.cint = b.cint
+where
+  a.cint between 1000000 and 3000000 and b.cbigint is not null
+group by a.csmallint
+order by c1
+PREHOOK: type: QUERY
+PREHOOK: Input: default@alltypesorc
+#### A masked pattern was here ####
+POSTHOOK: query: select
+  a.csmallint, count(*) c1
+from alltypesorc a join alltypesorc b on a.cint = b.cint
+where
+  a.cint between 1000000 and 3000000 and b.cbigint is not null
+group by a.csmallint
+order by c1
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@alltypesorc
+#### A masked pattern was here ####
+PREHOOK: query: explain analyze
+select
+  a.csmallint, count(*) c1
+from alltypesorc a join alltypesorc b on a.cint = b.cint
+where
+  a.cint between 1000000 and 3000000 and b.cbigint is not null
+group by a.csmallint
+order by c1
+PREHOOK: type: QUERY
+POSTHOOK: query: explain analyze
+select
+  a.csmallint, count(*) c1
+from alltypesorc a join alltypesorc b on a.cint = b.cint
+where
+  a.cint between 1000000 and 3000000 and b.cbigint is not null
+group by a.csmallint
+order by c1
+POSTHOOK: type: QUERY
+Plan optimized by CBO.
+
+Vertex dependency in root stage
+Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 5 (SIMPLE_EDGE)
+Reducer 3 <- Reducer 2 (SIMPLE_EDGE)
+Reducer 4 <- Reducer 3 (SIMPLE_EDGE)
+
+Stage-0
+  Fetch Operator
+    limit:-1
+    Stage-1
+      Reducer 4
+      File Output Operator [FS_16]
+        Select Operator [SEL_15] (rows=2765/5 width=12)
+          Output:["_col0","_col1"]
+        <-Reducer 3 [SIMPLE_EDGE]
+          SHUFFLE [RS_14]
+            Group By Operator [GBY_12] (rows=2765/5 width=12)
+              Output:["_col0","_col1"],aggregations:["count(VALUE._col0)"],keys:KEY._col0
+            <-Reducer 2 [SIMPLE_EDGE]
+              SHUFFLE [RS_11]
+                PartitionCols:_col0
+                Group By Operator [GBY_10] (rows=2765/5 width=12)
+                  Output:["_col0","_col1"],aggregations:["count()"],keys:_col0
+                  Merge Join Operator [MERGEJOIN_21] (rows=7286/10 width=4)
+                    Conds:RS_6._col1=RS_7._col0(Inner),Output:["_col0"]
+                  <-Map 1 [SIMPLE_EDGE]
+                    SHUFFLE [RS_6]
+                      PartitionCols:_col1
+                      Select Operator [SEL_2] (rows=6144/10 width=5)
+                        Output:["_col0","_col1"]
+                        Filter Operator [FIL_19] (rows=6144/10 width=5)
+                          predicate:cint BETWEEN 1000000 AND 3000000
+                          TableScan [TS_0] (rows=12288/12288 width=5)
+                            default@alltypesorc,a,Tbl:COMPLETE,Col:COMPLETE,Output:["csmallint","cint"]
+                  <-Map 5 [SIMPLE_EDGE]
+                    SHUFFLE [RS_7]
+                      PartitionCols:_col0
+                      Select Operator [SEL_5] (rows=3424/10 width=8)
+                        Output:["_col0"]
+                        Filter Operator [FIL_20] (rows=3424/10 width=8)
+                          predicate:(cint is not null and cbigint is not null and cint BETWEEN 1000000 AND 3000000)
+                          TableScan [TS_3] (rows=12288/12288 width=8)
+                            default@alltypesorc,b,Tbl:COMPLETE,Col:COMPLETE,Output:["cint","cbigint"]
+
+PREHOOK: query: select
+  a.csmallint, count(*) c1
+from alltypesorc a join alltypesorc b on a.cint = b.cint
+where
+  a.cint between 1000000 and 3000000 and b.cbigint is not null
+group by a.csmallint
+order by c1
+PREHOOK: type: QUERY
+PREHOOK: Input: default@alltypesorc
+#### A masked pattern was here ####
+POSTHOOK: query: select
+  a.csmallint, count(*) c1
+from alltypesorc a join alltypesorc b on a.cint = b.cint
+where
+  a.cint between 1000000 and 3000000 and b.cbigint is not null
+group by a.csmallint
+order by c1
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@alltypesorc
+#### A masked pattern was here ####
+-13036	1
+-8915	1
+-3799	1
+10782	1
+NULL	6
+PREHOOK: query: select
+  *
+from alltypesorc a join alltypesorc b on a.cint = b.cint
+where
+  a.cint between 1000000 and 3000000 and b.cbigint is not null
+order by a.cint
+PREHOOK: type: QUERY
+PREHOOK: Input: default@alltypesorc
+#### A masked pattern was here ####
+POSTHOOK: query: select
+  *
+from alltypesorc a join alltypesorc b on a.cint = b.cint
+where
+  a.cint between 1000000 and 3000000 and b.cbigint is not null
+order by a.cint
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@alltypesorc
+#### A masked pattern was here ####
+PREHOOK: query: -- Try with dynamically partitioned hashjoin
+explain analyze
+select
+  *
+from alltypesorc a join alltypesorc b on a.cint = b.cint
+where
+  a.cint between 1000000 and 3000000 and b.cbigint is not null
+order by a.cint
+PREHOOK: type: QUERY
+POSTHOOK: query: -- Try with dynamically partitioned hashjoin
+explain analyze
+select
+  *
+from alltypesorc a join alltypesorc b on a.cint = b.cint
+where
+  a.cint between 1000000 and 3000000 and b.cbigint is not null
+order by a.cint
+POSTHOOK: type: QUERY
+Plan optimized by CBO.
+
+Vertex dependency in root stage
+Reducer 2 <- Map 1 (CUSTOM_SIMPLE_EDGE), Map 4 (CUSTOM_SIMPLE_EDGE)
+Reducer 3 <- Reducer 2 (SIMPLE_EDGE)
+
+Stage-0
+  Fetch Operator
+    limit:-1
+    Stage-1
+      Reducer 3
+      File Output Operator [FS_12]
+        Select Operator [SEL_11] (rows=6758/10 width=215)
+          Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11","_col12","_col13","_col14","_col15","_col16","_col17","_col18","_col19","_col20","_col21","_col22","_col23"]
+        <-Reducer 2 [SIMPLE_EDGE]
+          SHUFFLE [RS_10]
+            Map Join Operator [MAPJOIN_17] (rows=6758/10 width=215)
+              Conds:RS_6.KEY.reducesinkkey0=RS_7.KEY.reducesinkkey0(Inner),HybridGraceHashJoin:true,Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11","_col12","_col13","_col14","_col15","_col16","_col17","_col18","_col19","_col20","_col21","_col22","_col23"]
+            <-Map 4 [CUSTOM_SIMPLE_EDGE]
+              PARTITION_ONLY_SHUFFLE [RS_7]
+                PartitionCols:_col2
+                Select Operator [SEL_5] (rows=6144/10 width=215)
+                  Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11"]
+                  Filter Operator [FIL_16] (rows=6144/10 width=215)
+                    predicate:(cint is not null and cbigint is not null and cint BETWEEN 1000000 AND 3000000)
+                    TableScan [TS_3] (rows=12288/12288 width=215)
+                      default@alltypesorc,b,Tbl:COMPLETE,Col:NONE,Output:["ctinyint","csmallint","cint","cbigint","cfloat","cdouble","cstring1","cstring2","ctimestamp1","ctimestamp2","cboolean1","cboolean2"]
+            <-Map 1 [CUSTOM_SIMPLE_EDGE]
+              PARTITION_ONLY_SHUFFLE [RS_6]
+                PartitionCols:_col2
+                Select Operator [SEL_2] (rows=6144/10 width=215)
+                  Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11"]
+                  Filter Operator [FIL_15] (rows=6144/10 width=215)
+                    predicate:cint BETWEEN 1000000 AND 3000000
+                    TableScan [TS_0] (rows=12288/12288 width=215)
+                      default@alltypesorc,a,Tbl:COMPLETE,Col:NONE,Output:["ctinyint","csmallint","cint","cbigint","cfloat","cdouble","cstring1","cstring2","ctimestamp1","ctimestamp2","cboolean1","cboolean2"]
+
+PREHOOK: query: select
+  *
+from alltypesorc a join alltypesorc b on a.cint = b.cint
+where
+  a.cint between 1000000 and 3000000 and b.cbigint is not null
+order by a.cint
+PREHOOK: type: QUERY
+PREHOOK: Input: default@alltypesorc
+#### A masked pattern was here ####
+POSTHOOK: query: select
+  *
+from alltypesorc a join alltypesorc b on a.cint = b.cint
+where
+  a.cint between 1000000 and 3000000 and b.cbigint is not null
+order by a.cint
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@alltypesorc
+#### A masked pattern was here ####
+11	NULL	1000828	1531084669	11.0	NULL	wM316f6NqGIkoP388j3F6	poWQQo3Upvt3Wh	1969-12-31 16:00:02.351	NULL	false	true	11	NULL	1000828	1531084669	11.0	NULL	wM316f6NqGIkoP388j3F6	poWQQo3Upvt3Wh	1969-12-31 16:00:02.351	NULL	false	true
+NULL	-3799	1248059	1864027286	NULL	-3799.0	Uhps6mMh3IfHB3j7yH62K	4KWs6gw7lv2WYd66P	NULL	1969-12-31 15:59:54.622	false	true	NULL	-3799	1248059	1864027286	NULL	-3799.0	Uhps6mMh3IfHB3j7yH62K	4KWs6gw7lv2WYd66P	NULL	1969-12-31 15:59:54.622	false	true
+NULL	10782	1286921	1864027286	NULL	10782.0	ODLrXI8882q8LS8	4KWs6gw7lv2WYd66P	NULL	1969-12-31 15:59:52.138	true	true	NULL	10782	1286921	1864027286	NULL	10782.0	ODLrXI8882q8LS8	4KWs6gw7lv2WYd66P	NULL	1969-12-31 15:59:52.138	true	true
+NULL	-13036	1288927	-1645852809	NULL	-13036.0	yinBY725P7V2	xH7445Rals48VOulSyR5F	NULL	1969-12-31 16:00:00.763	true	false	NULL	-13036	1288927	-1645852809	NULL	-13036.0	yinBY725P7V2	xH7445Rals48VOulSyR5F	NULL	1969-12-31 16:00:00.763	true	false
+11	NULL	1310786	-413875656	11.0	NULL	W0rvA4H1xn0xMG4uk0	8yVVjG	1969-12-31 16:00:02.351	NULL	false	true	11	NULL	1310786	-413875656	11.0	NULL	W0rvA4H1xn0xMG4uk0	8yVVjG	1969-12-31 16:00:02.351	NULL	false	true
+-51	NULL	2089466	-240556350	-51.0	NULL	cXX24dH7tblSj46j2g	C31eea0wrHHqvj	1969-12-31 16:00:08.451	NULL	true	true	-51	NULL	2089466	-240556350	-51.0	NULL	cXX24dH7tblSj46j2g	C31eea0wrHHqvj	1969-12-31 16:00:08.451	NULL	true	true
+NULL	-8915	2101183	1864027286	NULL	-8915.0	x7By66525	4KWs6gw7lv2WYd66P	NULL	1969-12-31 16:00:05.831	false	true	NULL	-8915	2101183	1864027286	NULL	-8915.0	x7By66525	4KWs6gw7lv2WYd66P	NULL	1969-12-31 16:00:05.831	false	true
+8	NULL	2229621	-381406148	8.0	NULL	q7onkS7QRPh5ghOK	oKb0bi	1969-12-31 16:00:15.892	NULL	true	false	8	NULL	2229621	-381406148	8.0	NULL	q7onkS7QRPh5ghOK	oKb0bi	1969-12-31 16:00:15.892	NULL	true	false
+8	NULL	2433892	-1611863517	8.0	NULL	674ILv3V2TxFqXP6wSbL	VLprkK2XfX	1969-12-31 16:00:15.892	NULL	false	true	8	NULL	2433892	-1611863517	8.0	NULL	674ILv3V2TxFqXP6wSbL	VLprkK2XfX	1969-12-31 16:00:15.892	NULL	false	true
+-51	NULL	2949963	-1580871111	-51.0	NULL	0K68k3bdl7jO7	TPPAu	1969-12-31 16:00:08.451	NULL	true	false	-51	NULL	2949963	-1580871111	-51.0	NULL	0K68k3bdl7jO7	TPPAu	1969-12-31 16:00:08.451	NULL	true	false
+PREHOOK: query: select
+  count(*)
+from alltypesorc a join alltypesorc b on a.cint = b.cint
+where
+  a.cint between 1000000 and 3000000 and b.cbigint is not null
+PREHOOK: type: QUERY
+PREHOOK: Input: default@alltypesorc
+#### A masked pattern was here ####
+POSTHOOK: query: select
+  count(*)
+from alltypesorc a join alltypesorc b on a.cint = b.cint
+where
+  a.cint between 1000000 and 3000000 and b.cbigint is not null
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@alltypesorc
+#### A masked pattern was here ####
+PREHOOK: query: explain analyze
+select
+  count(*)
+from alltypesorc a join alltypesorc b on a.cint = b.cint
+where
+  a.cint between 1000000 and 3000000 and b.cbigint is not null
+PREHOOK: type: QUERY
+POSTHOOK: query: explain analyze
+select
+  count(*)
+from alltypesorc a join alltypesorc b on a.cint = b.cint
+where
+  a.cint between 1000000 and 3000000 and b.cbigint is not null
+POSTHOOK: type: QUERY
+Plan optimized by CBO.
+
+Vertex dependency in root stage
+Reducer 2 <- Map 1 (CUSTOM_SIMPLE_EDGE), Map 4 (CUSTOM_SIMPLE_EDGE)
+Reducer 3 <- Reducer 2 (SIMPLE_EDGE)
+
+Stage-0
+  Fetch Operator
+    limit:-1
+    Stage-1
+      Reducer 3
+      File Output Operator [FS_14]
+        Group By Operator [GBY_12] (rows=1/1 width=8)
+          Output:["_col0"],aggregations:["count(VALUE._col0)"]
+        <-Reducer 2 [SIMPLE_EDGE]
+          SHUFFLE [RS_11]
+            Group By Operator [GBY_10] (rows=1/14 width=8)
+              Output:["_col0"],aggregations:["count()"]
+              Map Join Operator [MAPJOIN_19] (rows=6758/10 width=215)
+                Conds:RS_6.KEY.reducesinkkey0=RS_7.KEY.reducesinkkey0(Inner),HybridGraceHashJoin:true
+              <-Map 4 [CUSTOM_SIMPLE_EDGE]
+                PARTITION_ONLY_SHUFFLE [RS_7]
+                  PartitionCols:_col0
+                  Select Operator [SEL_5] (rows=6144/10 width=215)
+                    Output:["_col0"]
+                    Filter Operator [FIL_18] (rows=6144/10 width=215)
+                      predicate:(cint is not null and cbigint is not null and cint BETWEEN 1000000 AND 3000000)
+                      TableScan [TS_3] (rows=12288/12288 width=215)
+                        default@alltypesorc,b,Tbl:COMPLETE,Col:NONE,Output:["cint","cbigint"]
+              <-Map 1 [CUSTOM_SIMPLE_EDGE]
+                PARTITION_ONLY_SHUFFLE [RS_6]
+                  PartitionCols:_col0
+                  Select Operator [SEL_2] (rows=6144/10 width=215)
+                    Output:["_col0"]
+                    Filter Operator [FIL_17] (rows=6144/10 width=215)
+                      predicate:cint BETWEEN 1000000 AND 3000000
+                      TableScan [TS_0] (rows=12288/12288 width=215)
+                        default@alltypesorc,a,Tbl:COMPLETE,Col:NONE,Output:["cint"]
+
+PREHOOK: query: select
+  count(*)
+from alltypesorc a join alltypesorc b on a.cint = b.cint
+where
+  a.cint between 1000000 and 3000000 and b.cbigint is not null
+PREHOOK: type: QUERY
+PREHOOK: Input: default@alltypesorc
+#### A masked pattern was here ####
+POSTHOOK: query: select
+  count(*)
+from alltypesorc a join alltypesorc b on a.cint = b.cint
+where
+  a.cint between 1000000 and 3000000 and b.cbigint is not null
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@alltypesorc
+#### A masked pattern was here ####
+10
+PREHOOK: query: select
+  a.csmallint, count(*) c1
+from alltypesorc a join alltypesorc b on a.cint = b.cint
+where
+  a.cint between 1000000 and 3000000 and b.cbigint is not null
+group by a.csmallint
+order by c1
+PREHOOK: type: QUERY
+PREHOOK: Input: default@alltypesorc
+#### A masked pattern was here ####
+POSTHOOK: query: select
+  a.csmallint, count(*) c1
+from alltypesorc a join alltypesorc b on a.cint = b.cint
+where
+  a.cint between 1000000 and 3000000 and b.cbigint is not null
+group by a.csmallint
+order by c1
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@alltypesorc
+#### A masked pattern was here ####
+PREHOOK: query: explain analyze
+select
+  a.csmallint, count(*) c1
+from alltypesorc a join alltypesorc b on a.cint = b.cint
+where
+  a.cint between 1000000 and 3000000 and b.cbigint is not null
+group by a.csmallint
+order by c1
+PREHOOK: type: QUERY
+POSTHOOK: query: explain analyze
+select
+  a.csmallint, count(*) c1
+from alltypesorc a join alltypesorc b on a.cint = b.cint
+where
+  a.cint between 1000000 and 3000000 and b.cbigint is not null
+group by a.csmallint
+order by c1
+POSTHOOK: type: QUERY
+Plan optimized by CBO.
+
+Vertex dependency in root stage
+Reducer 2 <- Map 1 (CUSTOM_SIMPLE_EDGE), Map 5 (CUSTOM_SIMPLE_EDGE)
+Reducer 3 <- Reducer 2 (SIMPLE_EDGE)
+Reducer 4 <- Reducer 3 (SIMPLE_EDGE)
+
+Stage-0
+  Fetch Operator
+    limit:-1
+    Stage-1
+      Reducer 4
+      File Output Operator [FS_16]
+        Select Operator [SEL_15] (rows=3379/5 width=215)
+          Output:["_col0","_col1"]
+        <-Reducer 3 [SIMPLE_EDGE]
+          SHUFFLE [RS_14]
+            Group By Operator [GBY_12] (rows=3379/5 width=215)
+              Output:["_col0","_col1"],aggregations:["count(VALUE._col0)"],keys:KEY._col0
+            <-Reducer 2 [SIMPLE_EDGE]
+              SHUFFLE [RS_11]
+                PartitionCols:_col0
+                Group By Operator [GBY_10] (rows=6758/9 width=215)
+                  Output:["_col0","_col1"],aggregations:["count()"],keys:_col0
+                  Map Join Operator [MAPJOIN_21] (rows=6758/10 width=215)
+                    Conds:RS_6.KEY.reducesinkkey0=RS_7.KEY.reducesinkkey0(Inner),HybridGraceHashJoin:true,Output:["_col0"]
+                  <-Map 5 [CUSTOM_SIMPLE_EDGE]
+                    PARTITION_ONLY_SHUFFLE [RS_7]
+                      PartitionCols:_col0
+                      Select Operator [SEL_5] (rows=6144/10 width=215)
+                        Output:["_col0"]
+                        Filter Operator [FIL_20] (rows=6144/10 width=215)
+                          predicate:(cint is not null and cbigint is not null and cint BETWEEN 1000000 AND 3000000)
+                          TableScan [TS_3] (rows=12288/12288 width=215)
+                            default@alltypesorc,b,Tbl:COMPLETE,Col:NONE,Output:["cint","cbigint"]
+                  <-Map 1 [CUSTOM_SIMPLE_EDGE]
+                    PARTITION_ONLY_SHUFFLE [RS_6]
+                      PartitionCols:_col1
+                      Select Operator [SEL_2] (rows=6144/10 width=215)
+                        Output:["_col0","_col1"]
+                        Filter Operator [FIL_19] (rows=6144/10 width=215)
+                          predicate:cint BETWEEN 1000000 AND 3000000
+                          TableScan [TS_0] (rows=12288/12288 width=215)
+                            default@alltypesorc,a,Tbl:COMPLETE,Col:NONE,Output:["csmallint","cint"]
+
+PREHOOK: query: select
+  a.csmallint, count(*) c1
+from alltypesorc a join alltypesorc b on a.cint = b.cint
+where
+  a.cint between 1000000 and 3000000 and b.cbigint is not null
+group by a.csmallint
+order by c1
+PREHOOK: type: QUERY
+PREHOOK: Input: default@alltypesorc
+#### A masked pattern was here ####
+POSTHOOK: query: select
+  a.csmallint, count(*) c1
+from alltypesorc a join alltypesorc b on a.cint = b.cint
+where
+  a.cint between 1000000 and 3000000 and b.cbigint is not null
+group by a.csmallint
+order by c1
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@alltypesorc
+#### A masked pattern was here ####
+-8915	1
+-3799	1
+10782	1
+-13036	1
+NULL	6

http://git-wip-us.apache.org/repos/asf/hive/blob/20824f27/ql/src/test/results/clientpositive/tez/explainanalyze_5.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/tez/explainanalyze_5.q.out b/ql/src/test/results/clientpositive/tez/explainanalyze_5.q.out
new file mode 100644
index 0000000..39bc6f4
--- /dev/null
+++ b/ql/src/test/results/clientpositive/tez/explainanalyze_5.q.out
@@ -0,0 +1,445 @@
+PREHOOK: query: analyze table src compute statistics
+PREHOOK: type: QUERY
+PREHOOK: Input: default@src
+PREHOOK: Output: default@src
+FAILED: Hive Internal Error: java.lang.RuntimeException(Cannot overwrite read-only table: src)
+java.lang.RuntimeException: Cannot overwrite read-only table: src
+#### A masked pattern was here ####
+
+PREHOOK: query: explain analyze analyze table src compute statistics
+PREHOOK: type: QUERY
+POSTHOOK: query: explain analyze analyze table src compute statistics
+POSTHOOK: type: QUERY
+Stage-2
+  Stats-Aggr Operator
+    Stage-0
+      Map 1
+      TableScan [TS_0] (rows=500/0 width=10)
+        default@src,src,Tbl:COMPLETE,Col:COMPLETE
+
+PREHOOK: query: analyze table src compute statistics for columns
+PREHOOK: type: QUERY
+PREHOOK: Input: default@src
+#### A masked pattern was here ####
+POSTHOOK: query: analyze table src compute statistics for columns
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@src
+#### A masked pattern was here ####
+PREHOOK: query: explain analyze analyze table src compute statistics for columns
+PREHOOK: type: QUERY
+POSTHOOK: query: explain analyze analyze table src compute statistics for columns
+POSTHOOK: type: QUERY
+Vertex dependency in root stage
+Reducer 2 <- Map 1 (SIMPLE_EDGE)
+
+Stage-2
+  Column Stats Work{}
+    Stage-0
+      Reducer 2
+      File Output Operator [FS_6]
+        Group By Operator [GBY_4] (rows=1/1 width=960)
+          Output:["_col0","_col1"],aggregations:["compute_stats(VALUE._col0)","compute_stats(VALUE._col1)"]
+        <-Map 1 [SIMPLE_EDGE]
+          SHUFFLE [RS_3]
+            Group By Operator [GBY_2] (rows=1/1 width=984)
+              Output:["_col0","_col1"],aggregations:["compute_stats(key, 16)","compute_stats(value, 16)"]
+              Select Operator [SEL_1] (rows=500/500 width=178)
+                Output:["key","value"]
+                TableScan [TS_0] (rows=500/500 width=178)
+                  default@src,src,Tbl:COMPLETE,Col:COMPLETE,Output:["key","value"]
+
+PREHOOK: query: drop table src_multi2
+PREHOOK: type: DROPTABLE
+POSTHOOK: query: drop table src_multi2
+POSTHOOK: type: DROPTABLE
+PREHOOK: query: create table src_multi2 like src
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@src_multi2
+POSTHOOK: query: create table src_multi2 like src
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@src_multi2
+PREHOOK: query: insert overwrite table src_multi2 select subq.key, src.value from (select * from src union select * from src1)subq join src on subq.key=src.key
+PREHOOK: type: QUERY
+PREHOOK: Input: default@src
+PREHOOK: Input: default@src1
+PREHOOK: Output: default@src_multi2
+POSTHOOK: query: insert overwrite table src_multi2 select subq.key, src.value from (select * from src union select * from src1)subq join src on subq.key=src.key
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@src
+POSTHOOK: Input: default@src1
+POSTHOOK: Output: default@src_multi2
+PREHOOK: query: explain analyze insert overwrite table src_multi2 select subq.key, src.value from (select * from src union select * from src1)subq join src on subq.key=src.key
+PREHOOK: type: QUERY
+POSTHOOK: query: explain analyze insert overwrite table src_multi2 select subq.key, src.value from (select * from src union select * from src1)subq join src on subq.key=src.key
+POSTHOOK: type: QUERY
+Plan optimized by CBO.
+
+Vertex dependency in root stage
+Map 1 <- Union 2 (CONTAINS)
+Map 6 <- Union 2 (CONTAINS)
+Reducer 3 <- Union 2 (SIMPLE_EDGE)
+Reducer 4 <- Map 7 (SIMPLE_EDGE), Reducer 3 (SIMPLE_EDGE)
+Reducer 5 <- Reducer 4 (SIMPLE_EDGE)
+
+Stage-4
+  Column Stats Work{}
+    Stage-3
+      Stats-Aggr Operator
+        Stage-0
+          Move Operator
+            table:{"name:":"default.src_multi2"}
+            Stage-2
+              Dependency Collection{}
+                Stage-1
+                  Reducer 5
+                  File Output Operator [FS_6]
+                    Group By Operator [GBY_4] (rows=1/1 width=960)
+                      Output:["_col0","_col1"],aggregations:["compute_stats(VALUE._col0)","compute_stats(VALUE._col1)"]
+                    <-Reducer 4 [SIMPLE_EDGE]
+                      File Output Operator [FS_20]
+                        table:{"name:":"default.src_multi2"}
+                        Select Operator [SEL_19] (rows=639/508 width=178)
+                          Output:["_col0","_col1"]
+                          Merge Join Operator [MERGEJOIN_27] (rows=639/508 width=178)
+                            Conds:RS_16._col0=RS_17._col0(Inner),Output:["_col0","_col3"]
+                          <-Map 7 [SIMPLE_EDGE]
+                            SHUFFLE [RS_17]
+                              PartitionCols:_col0
+                              Select Operator [SEL_15] (rows=500/500 width=178)
+                                Output:["_col0","_col1"]
+                                Filter Operator [FIL_26] (rows=500/500 width=178)
+                                  predicate:key is not null
+                                  TableScan [TS_13] (rows=500/500 width=178)
+                                    default@src,src,Tbl:COMPLETE,Col:COMPLETE,Output:["key","value"]
+                          <-Reducer 3 [SIMPLE_EDGE]
+                            SHUFFLE [RS_16]
+                              PartitionCols:_col0
+                              Select Operator [SEL_12] (rows=262/319 width=178)
+                                Output:["_col0"]
+                                Group By Operator [GBY_11] (rows=262/319 width=178)
+                                  Output:["_col0","_col1"],keys:KEY._col0, KEY._col1
+                                <-Union 2 [SIMPLE_EDGE]
+                                  <-Map 1 [CONTAINS]
+                                    Reduce Output Operator [RS_10]
+                                      PartitionCols:_col0, _col1
+                                      Group By Operator [GBY_9] (rows=262/331 width=178)
+                                        Output:["_col0","_col1"],keys:_col0, _col1
+                                        Select Operator [SEL_2] (rows=500/500 width=178)
+                                          Output:["_col0","_col1"]
+                                          Filter Operator [FIL_24] (rows=500/500 width=178)
+                                            predicate:key is not null
+                                            TableScan [TS_0] (rows=500/500 width=178)
+                                              Output:["key","value"]
+                                  <-Map 6 [CONTAINS]
+                                    Reduce Output Operator [RS_10]
+                                      PartitionCols:_col0, _col1
+                                      Group By Operator [GBY_9] (rows=262/331 width=178)
+                                        Output:["_col0","_col1"],keys:_col0, _col1
+                                        Select Operator [SEL_5] (rows=25/25 width=175)
+                                          Output:["_col0","_col1"]
+                                          Filter Operator [FIL_25] (rows=25/25 width=175)
+                                            predicate:key is not null
+                                            TableScan [TS_3] (rows=25/25 width=175)
+                                              Output:["key","value"]
+                      SHUFFLE [RS_3]
+                        Group By Operator [GBY_2] (rows=1/1 width=984)
+                          Output:["_col0","_col1"],aggregations:["compute_stats(key, 16)","compute_stats(value, 16)"]
+                          Select Operator [SEL_1] (rows=639/508 width=178)
+                            Output:["key","value"]
+                             Please refer to the previous Select Operator [SEL_19]
+
+PREHOOK: query: select count(*) from (select * from src union select * from src1)subq
+PREHOOK: type: QUERY
+PREHOOK: Input: default@src
+PREHOOK: Input: default@src1
+#### A masked pattern was here ####
+POSTHOOK: query: select count(*) from (select * from src union select * from src1)subq
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@src
+POSTHOOK: Input: default@src1
+#### A masked pattern was here ####
+319
+PREHOOK: query: insert overwrite table src_multi2 select subq.key, src.value from (select * from src union select * from src1)subq join src on subq.key=src.key
+PREHOOK: type: QUERY
+PREHOOK: Input: default@src
+PREHOOK: Input: default@src1
+PREHOOK: Output: default@src_multi2
+POSTHOOK: query: insert overwrite table src_multi2 select subq.key, src.value from (select * from src union select * from src1)subq join src on subq.key=src.key
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@src
+POSTHOOK: Input: default@src1
+POSTHOOK: Output: default@src_multi2
+POSTHOOK: Lineage: src_multi2.key EXPRESSION [(src)src.FieldSchema(name:key, type:string, comment:default), (src1)src1.FieldSchema(name:key, type:string, comment:default), ]
+POSTHOOK: Lineage: src_multi2.value SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ]
+PREHOOK: query: describe formatted src_multi2
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@src_multi2
+POSTHOOK: query: describe formatted src_multi2
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@src_multi2
+# col_name            	data_type           	comment             
+	 	 
+key                 	string              	default             
+value               	string              	default             
+	 	 
+# Detailed Table Information	 	 
+Database:           	default             	 
+#### A masked pattern was here ####
+Retention:          	0                   	 
+#### A masked pattern was here ####
+Table Type:         	MANAGED_TABLE       	 
+Table Parameters:	 	 
+	COLUMN_STATS_ACCURATE	{\"BASIC_STATS\":\"true\",\"COLUMN_STATS\":{\"key\":\"true\",\"value\":\"true\"}}
+	numFiles            	1                   
+	numRows             	508                 
+	rawDataSize         	5400                
+	totalSize           	5908                
+#### A masked pattern was here ####
+	 	 
+# Storage Information	 	 
+SerDe Library:      	org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe	 
+InputFormat:        	org.apache.hadoop.mapred.TextInputFormat	 
+OutputFormat:       	org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat	 
+Compressed:         	No                  	 
+Num Buckets:        	-1                  	 
+Bucket Columns:     	[]                  	 
+Sort Columns:       	[]                  	 
+Storage Desc Params:	 	 
+	serialization.format	1                   
+PREHOOK: query: -- SORT_QUERY_RESULTS
+
+create table acid_uami(i int,
+                 de decimal(5,2),
+                 vc varchar(128)) clustered by (i) into 2 buckets stored as orc TBLPROPERTIES ('transactional'='true')
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@acid_uami
+POSTHOOK: query: -- SORT_QUERY_RESULTS
+
+create table acid_uami(i int,
+                 de decimal(5,2),
+                 vc varchar(128)) clustered by (i) into 2 buckets stored as orc TBLPROPERTIES ('transactional'='true')
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@acid_uami
+PREHOOK: query: insert into table acid_uami values 
+    (1, 109.23, 'mary had a little lamb'),
+    (6553, 923.19, 'its fleece was white as snow')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__1
+PREHOOK: Output: default@acid_uami
+POSTHOOK: query: insert into table acid_uami values 
+    (1, 109.23, 'mary had a little lamb'),
+    (6553, 923.19, 'its fleece was white as snow')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__1
+POSTHOOK: Output: default@acid_uami
+POSTHOOK: Lineage: acid_uami.de EXPRESSION [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: acid_uami.i EXPRESSION [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+POSTHOOK: Lineage: acid_uami.vc EXPRESSION [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+PREHOOK: query: insert into table acid_uami values 
+    (10, 119.23, 'and everywhere that mary went'),
+    (65530, 823.19, 'the lamb was sure to go')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__2
+PREHOOK: Output: default@acid_uami
+POSTHOOK: query: insert into table acid_uami values 
+    (10, 119.23, 'and everywhere that mary went'),
+    (65530, 823.19, 'the lamb was sure to go')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__2
+POSTHOOK: Output: default@acid_uami
+POSTHOOK: Lineage: acid_uami.de EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: acid_uami.i EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+POSTHOOK: Lineage: acid_uami.vc EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+PREHOOK: query: select * from acid_uami order by de
+PREHOOK: type: QUERY
+PREHOOK: Input: default@acid_uami
+#### A masked pattern was here ####
+POSTHOOK: query: select * from acid_uami order by de
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@acid_uami
+#### A masked pattern was here ####
+1	109.23	mary had a little lamb
+10	119.23	and everywhere that mary went
+6553	923.19	its fleece was white as snow
+65530	823.19	the lamb was sure to go
+PREHOOK: query: update acid_uami set de = 3.14 where de = 109.23 or de = 119.23
+PREHOOK: type: QUERY
+PREHOOK: Input: default@acid_uami
+PREHOOK: Output: default@acid_uami
+POSTHOOK: query: update acid_uami set de = 3.14 where de = 109.23 or de = 119.23
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@acid_uami
+POSTHOOK: Output: default@acid_uami
+PREHOOK: query: explain analyze update acid_uami set de = 3.14 where de = 109.23 or de = 119.23
+PREHOOK: type: QUERY
+POSTHOOK: query: explain analyze update acid_uami set de = 3.14 where de = 109.23 or de = 119.23
+POSTHOOK: type: QUERY
+Vertex dependency in root stage
+Reducer 2 <- Map 1 (SIMPLE_EDGE)
+
+Stage-3
+  Stats-Aggr Operator
+    Stage-0
+      Move Operator
+        table:{"name:":"default.acid_uami"}
+        Stage-2
+          Dependency Collection{}
+            Stage-1
+              Reducer 2
+              File Output Operator [FS_8]
+                table:{"name:":"default.acid_uami"}
+                Select Operator [SEL_4] (rows=6/2 width=302)
+                  Output:["_col0","_col1","_col2","_col3"]
+                <-Map 1 [SIMPLE_EDGE]
+                  SHUFFLE [RS_3]
+                    PartitionCols:UDFToInteger(_col0)
+                    Select Operator [SEL_2] (rows=6/2 width=302)
+                      Output:["_col0","_col1","_col3"]
+                      Filter Operator [FIL_9] (rows=6/2 width=226)
+                        predicate:((de = 109.23) or (de = 119.23))
+                        TableScan [TS_0] (rows=8/4 width=226)
+                          default@acid_uami,acid_uami, ACID table,Tbl:COMPLETE,Col:COMPLETE,Output:["i","de","vc"]
+
+PREHOOK: query: select * from acid_uami order by de
+PREHOOK: type: QUERY
+PREHOOK: Input: default@acid_uami
+#### A masked pattern was here ####
+POSTHOOK: query: select * from acid_uami order by de
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@acid_uami
+#### A masked pattern was here ####
+1	109.23	mary had a little lamb
+10	119.23	and everywhere that mary went
+6553	923.19	its fleece was white as snow
+65530	823.19	the lamb was sure to go
+PREHOOK: query: update acid_uami set de = 3.14 where de = 109.23 or de = 119.23
+PREHOOK: type: QUERY
+PREHOOK: Input: default@acid_uami
+PREHOOK: Output: default@acid_uami
+POSTHOOK: query: update acid_uami set de = 3.14 where de = 109.23 or de = 119.23
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@acid_uami
+POSTHOOK: Output: default@acid_uami
+PREHOOK: query: select * from acid_uami order by de
+PREHOOK: type: QUERY
+PREHOOK: Input: default@acid_uami
+#### A masked pattern was here ####
+POSTHOOK: query: select * from acid_uami order by de
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@acid_uami
+#### A masked pattern was here ####
+1	3.14	mary had a little lamb
+10	3.14	and everywhere that mary went
+6553	923.19	its fleece was white as snow
+65530	823.19	the lamb was sure to go
+PREHOOK: query: create table acid_dot(
+    ctinyint TINYINT,
+    csmallint SMALLINT,
+    cint INT,
+    cbigint BIGINT,
+    cfloat FLOAT,
+    cdouble DOUBLE,
+    cstring1 STRING,
+    cstring2 STRING,
+    ctimestamp1 TIMESTAMP,
+    ctimestamp2 TIMESTAMP,
+    cboolean1 BOOLEAN,
+#### A masked pattern was here ####
+PREHOOK: type: CREATETABLE
+#### A masked pattern was here ####
+PREHOOK: Output: database:default
+PREHOOK: Output: default@acid_dot
+POSTHOOK: query: create table acid_dot(
+    ctinyint TINYINT,
+    csmallint SMALLINT,
+    cint INT,
+    cbigint BIGINT,
+    cfloat FLOAT,
+    cdouble DOUBLE,
+    cstring1 STRING,
+    cstring2 STRING,
+    ctimestamp1 TIMESTAMP,
+    ctimestamp2 TIMESTAMP,
+    cboolean1 BOOLEAN,
+#### A masked pattern was here ####
+POSTHOOK: type: CREATETABLE
+#### A masked pattern was here ####
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@acid_dot
+PREHOOK: query: select count(*) from acid_dot
+PREHOOK: type: QUERY
+PREHOOK: Input: default@acid_dot
+#### A masked pattern was here ####
+POSTHOOK: query: select count(*) from acid_dot
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@acid_dot
+#### A masked pattern was here ####
+12288
+PREHOOK: query: delete from acid_dot where cint < -1070551679
+PREHOOK: type: QUERY
+PREHOOK: Input: default@acid_dot
+PREHOOK: Output: default@acid_dot
+POSTHOOK: query: delete from acid_dot where cint < -1070551679
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@acid_dot
+POSTHOOK: Output: default@acid_dot
+PREHOOK: query: explain analyze delete from acid_dot where cint < -1070551679
+PREHOOK: type: QUERY
+POSTHOOK: query: explain analyze delete from acid_dot where cint < -1070551679
+POSTHOOK: type: QUERY
+Vertex dependency in root stage
+Reducer 2 <- Map 1 (SIMPLE_EDGE)
+
+Stage-3
+  Stats-Aggr Operator
+    Stage-0
+      Move Operator
+        table:{"name:":"default.acid_dot"}
+        Stage-2
+          Dependency Collection{}
+            Stage-1
+              Reducer 2
+              File Output Operator [FS_7]
+                table:{"name:":"default.acid_dot"}
+                Select Operator [SEL_4] (rows=31436/8 width=4)
+                  Output:["_col0"]
+                <-Map 1 [SIMPLE_EDGE]
+                  SHUFFLE [RS_3]
+                    PartitionCols:UDFToInteger(_col0)
+                    Select Operator [SEL_2] (rows=31436/8 width=4)
+                      Output:["_col0"]
+                      Filter Operator [FIL_8] (rows=31436/8 width=4)
+                        predicate:(cint < -1070551679)
+                        TableScan [TS_0] (rows=94309/12288 width=4)
+                          default@acid_dot,acid_dot, ACID table,Tbl:COMPLETE,Col:NONE,Output:["cint"]
+
+PREHOOK: query: select count(*) from acid_dot
+PREHOOK: type: QUERY
+PREHOOK: Input: default@acid_dot
+#### A masked pattern was here ####
+POSTHOOK: query: select count(*) from acid_dot
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@acid_dot
+#### A masked pattern was here ####
+12288
+PREHOOK: query: delete from acid_dot where cint < -1070551679
+PREHOOK: type: QUERY
+PREHOOK: Input: default@acid_dot
+PREHOOK: Output: default@acid_dot
+POSTHOOK: query: delete from acid_dot where cint < -1070551679
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@acid_dot
+POSTHOOK: Output: default@acid_dot
+PREHOOK: query: select count(*) from acid_dot
+PREHOOK: type: QUERY
+PREHOOK: Input: default@acid_dot
+#### A masked pattern was here ####
+POSTHOOK: query: select count(*) from acid_dot
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@acid_dot
+#### A masked pattern was here ####
+12280