http://git-wip-us.apache.org/repos/asf/hive/blob/fd72ec4a/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
index dd8849d..dfe163e 100644
--- a/ql/src/test/results/clientpositive/tez/explainanalyze_3.q.out
+++ b/ql/src/test/results/clientpositive/tez/explainanalyze_3.q.out
@@ -244,7 +244,7 @@ PREHOOK: type: QUERY
 POSTHOOK: query: explain analyze analyze table src_stats compute statistics 
for columns
 POSTHOOK: type: QUERY
 Vertex dependency in root stage
-Reducer 2 <- Map 1 (CUSTOM_SIMPLE_EDGE)
+Reducer 2 <- Map 1 (SIMPLE_EDGE)
 
 Stage-2
   Column Stats Work{}
@@ -253,8 +253,8 @@ Stage-2
       File Output Operator [FS_5]
         Group By Operator [GBY_3] (rows=1/1 width=960)
           Output:["_col0","_col1"],aggregations:["compute_stats(VALUE._col0, 
16)","compute_stats(VALUE._col2, 16)"]
-        <-Map 1 [CUSTOM_SIMPLE_EDGE]
-          PARTITION_ONLY_SHUFFLE [RS_2]
+        <-Map 1 [SIMPLE_EDGE]
+          SHUFFLE [RS_2]
             Select Operator [SEL_1] (rows=500/500 width=10)
               Output:["key","value"]
               TableScan [TS_0] (rows=500/500 width=10)
@@ -348,10 +348,10 @@ Stage-3
               Map 1
               File Output Operator [FS_2]
                 table:{"name:":"default.src_autho_test"}
-                Select Operator [SEL_1] (rows=500/500 width=178)
+                Select Operator [SEL_1] (rows=500/500 width=10)
                   Output:["_col0","_col1"]
-                  TableScan [TS_0] (rows=500/500 width=178)
-                    
default@src,src,Tbl:COMPLETE,Col:COMPLETE,Output:["key","value"]
+                  TableScan [TS_0] (rows=500/500 width=10)
+                    
default@src,src,Tbl:COMPLETE,Col:NONE,Output:["key","value"]
         Stage-0
           Move Operator
              Please refer to the previous Stage-1
@@ -607,16 +607,16 @@ Stage-0
     Stage-1
       Reducer 2
       File Output Operator [FS_5]
-        Limit [LIM_4] (rows=5/5 width=178)
+        Limit [LIM_4] (rows=5/5 width=10)
           Number of rows:5
-          Select Operator [SEL_3] (rows=500/5 width=178)
+          Select Operator [SEL_3] (rows=500/5 width=10)
             Output:["_col0","_col1"]
           <-Map 1 [SIMPLE_EDGE]
             SHUFFLE [RS_2]
-              Select Operator [SEL_1] (rows=500/500 width=178)
+              Select Operator [SEL_1] (rows=500/500 width=10)
                 Output:["_col0","_col1"]
-                TableScan [TS_0] (rows=500/500 width=178)
-                  
default@src,src,Tbl:COMPLETE,Col:COMPLETE,Output:["key","value"]
+                TableScan [TS_0] (rows=500/500 width=10)
+                  default@src,src,Tbl:COMPLETE,Col:NONE,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
@@ -830,7 +830,7 @@ STAGE PLANS:
 #### A masked pattern was here ####
       Edges:
         Map 3 <- Map 1 (CUSTOM_EDGE), Reducer 2 (BROADCAST_EDGE)
-        Reducer 2 <- Map 1 (CUSTOM_SIMPLE_EDGE)
+        Reducer 2 <- Map 1 (SIMPLE_EDGE)
 #### A masked pattern was here ####
       Vertices:
         Map 1 
@@ -838,24 +838,24 @@ STAGE PLANS:
                 TableScan
                   alias: a
                   filterExpr: key is not null (type: boolean)
-                  Statistics: Num rows: 242/242 Data size: 4502 Basic stats: 
COMPLETE Column stats: NONE
+                  Statistics: Num rows: 242/242 Data size: 2566 Basic stats: 
COMPLETE Column stats: NONE
                   Filter Operator
                     predicate: key is not null (type: boolean)
-                    Statistics: Num rows: 242/242 Data size: 4502 Basic stats: 
COMPLETE Column stats: NONE
+                    Statistics: Num rows: 242/242 Data size: 2566 Basic stats: 
COMPLETE Column stats: NONE
                     Select Operator
                       expressions: key (type: int), value (type: string)
                       outputColumnNames: _col0, _col1
-                      Statistics: Num rows: 242/242 Data size: 4502 Basic 
stats: COMPLETE Column stats: NONE
+                      Statistics: Num rows: 242/242 Data size: 2566 Basic 
stats: COMPLETE Column stats: NONE
                       Reduce Output Operator
                         key expressions: _col0 (type: int)
                         sort order: +
                         Map-reduce partition columns: _col0 (type: int)
-                        Statistics: Num rows: 242/242 Data size: 4502 Basic 
stats: COMPLETE Column stats: NONE
+                        Statistics: Num rows: 242/242 Data size: 2566 Basic 
stats: COMPLETE Column stats: NONE
                         value expressions: _col1 (type: string)
                       Select Operator
                         expressions: _col0 (type: int)
                         outputColumnNames: _col0
-                        Statistics: Num rows: 242/242 Data size: 4502 Basic 
stats: COMPLETE Column stats: NONE
+                        Statistics: Num rows: 242/242 Data size: 2566 Basic 
stats: COMPLETE Column stats: NONE
                         Group By Operator
                           aggregations: min(_col0), max(_col0), 
bloom_filter(_col0, expectedEntries=242)
                           mode: hash
@@ -870,14 +870,14 @@ STAGE PLANS:
                 TableScan
                   alias: b
                   filterExpr: (key is not null and key BETWEEN 
DynamicValue(RS_6_a_key_min) AND DynamicValue(RS_6_a_key_max) and 
in_bloom_filter(key, DynamicValue(RS_6_a_key_bloom_filter))) (type: boolean)
-                  Statistics: Num rows: 500/500 Data size: 9312 Basic stats: 
COMPLETE Column stats: NONE
+                  Statistics: Num rows: 500/500 Data size: 5312 Basic stats: 
COMPLETE Column stats: NONE
                   Filter Operator
                     predicate: (key is not null and key BETWEEN 
DynamicValue(RS_6_a_key_min) AND DynamicValue(RS_6_a_key_max) and 
in_bloom_filter(key, DynamicValue(RS_6_a_key_bloom_filter))) (type: boolean)
-                    Statistics: Num rows: 500/244 Data size: 9312 Basic stats: 
COMPLETE Column stats: NONE
+                    Statistics: Num rows: 500/244 Data size: 5312 Basic stats: 
COMPLETE Column stats: NONE
                     Select Operator
                       expressions: key (type: int), value (type: string)
                       outputColumnNames: _col0, _col1
-                      Statistics: Num rows: 500/244 Data size: 9312 Basic 
stats: COMPLETE Column stats: NONE
+                      Statistics: Num rows: 500/244 Data size: 5312 Basic 
stats: COMPLETE Column stats: NONE
                       Map Join Operator
                         condition map:
                              Inner Join 0 to 1
@@ -887,15 +887,15 @@ STAGE PLANS:
                         outputColumnNames: _col0, _col1, _col3
                         input vertices:
                           0 Map 1
-                        Statistics: Num rows: 550/480 Data size: 10243 Basic 
stats: COMPLETE Column stats: NONE
+                        Statistics: Num rows: 550/480 Data size: 5843 Basic 
stats: COMPLETE Column stats: NONE
                         HybridGraceHashJoin: true
                         Select Operator
                           expressions: _col0 (type: int), _col1 (type: 
string), _col3 (type: string)
                           outputColumnNames: _col0, _col1, _col2
-                          Statistics: Num rows: 550/480 Data size: 10243 Basic 
stats: COMPLETE Column stats: NONE
+                          Statistics: Num rows: 550/480 Data size: 5843 Basic 
stats: COMPLETE Column stats: NONE
                           File Output Operator
                             compressed: false
-                            Statistics: Num rows: 550/480 Data size: 10243 
Basic stats: COMPLETE Column stats: NONE
+                            Statistics: Num rows: 550/480 Data size: 5843 
Basic stats: COMPLETE Column stats: NONE
                             table:
                                 input format: 
org.apache.hadoop.mapred.SequenceFileInputFormat
                                 output format: 
org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat

http://git-wip-us.apache.org/repos/asf/hive/blob/fd72ec4a/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/fd72ec4a/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

Reply via email to