http://git-wip-us.apache.org/repos/asf/hive/blob/975a49b6/ql/src/test/results/clientpositive/tez/explainuser_2.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/tez/explainuser_2.q.out 
b/ql/src/test/results/clientpositive/tez/explainuser_2.q.out
deleted file mode 100644
index 44a6924..0000000
--- a/ql/src/test/results/clientpositive/tez/explainuser_2.q.out
+++ /dev/null
@@ -1,4190 +0,0 @@
-PREHOOK: query: -- SORT_QUERY_RESULTS
-
-CREATE TABLE dest_j1(key STRING, value STRING, val2 STRING) STORED AS TEXTFILE
-PREHOOK: type: CREATETABLE
-PREHOOK: Output: database:default
-PREHOOK: Output: default@dest_j1
-POSTHOOK: query: -- SORT_QUERY_RESULTS
-
-CREATE TABLE dest_j1(key STRING, value STRING, val2 STRING) STORED AS TEXTFILE
-POSTHOOK: type: CREATETABLE
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@dest_j1
-PREHOOK: query: CREATE TABLE ss(k1 STRING,v1 STRING,k2 STRING,v2 STRING,k3 
STRING,v3 STRING) STORED AS TEXTFILE
-PREHOOK: type: CREATETABLE
-PREHOOK: Output: database:default
-PREHOOK: Output: default@ss
-POSTHOOK: query: CREATE TABLE ss(k1 STRING,v1 STRING,k2 STRING,v2 STRING,k3 
STRING,v3 STRING) STORED AS TEXTFILE
-POSTHOOK: type: CREATETABLE
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@ss
-PREHOOK: query: CREATE TABLE sr(k1 STRING,v1 STRING,k2 STRING,v2 STRING,k3 
STRING,v3 STRING) STORED AS TEXTFILE
-PREHOOK: type: CREATETABLE
-PREHOOK: Output: database:default
-PREHOOK: Output: default@sr
-POSTHOOK: query: CREATE TABLE sr(k1 STRING,v1 STRING,k2 STRING,v2 STRING,k3 
STRING,v3 STRING) STORED AS TEXTFILE
-POSTHOOK: type: CREATETABLE
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@sr
-PREHOOK: query: CREATE TABLE cs(k1 STRING,v1 STRING,k2 STRING,v2 STRING,k3 
STRING,v3 STRING) STORED AS TEXTFILE
-PREHOOK: type: CREATETABLE
-PREHOOK: Output: database:default
-PREHOOK: Output: default@cs
-POSTHOOK: query: CREATE TABLE cs(k1 STRING,v1 STRING,k2 STRING,v2 STRING,k3 
STRING,v3 STRING) STORED AS TEXTFILE
-POSTHOOK: type: CREATETABLE
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@cs
-PREHOOK: query: INSERT OVERWRITE TABLE ss
-SELECT x.key,x.value,y.key,y.value,z.key,z.value
-FROM src1 x 
-JOIN src y ON (x.key = y.key) 
-JOIN srcpart z ON (x.value = z.value and z.ds='2008-04-08' and z.hr=11)
-PREHOOK: type: QUERY
-PREHOOK: Input: default@src
-PREHOOK: Input: default@src1
-PREHOOK: Input: default@srcpart
-PREHOOK: Input: default@srcpart@ds=2008-04-08/hr=11
-PREHOOK: Output: default@ss
-POSTHOOK: query: INSERT OVERWRITE TABLE ss
-SELECT x.key,x.value,y.key,y.value,z.key,z.value
-FROM src1 x 
-JOIN src y ON (x.key = y.key) 
-JOIN srcpart z ON (x.value = z.value and z.ds='2008-04-08' and z.hr=11)
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@src
-POSTHOOK: Input: default@src1
-POSTHOOK: Input: default@srcpart
-POSTHOOK: Input: default@srcpart@ds=2008-04-08/hr=11
-POSTHOOK: Output: default@ss
-POSTHOOK: Lineage: ss.k1 SIMPLE [(src1)x.FieldSchema(name:key, type:string, 
comment:default), ]
-POSTHOOK: Lineage: ss.k2 SIMPLE [(src)y.FieldSchema(name:key, type:string, 
comment:default), ]
-POSTHOOK: Lineage: ss.k3 SIMPLE [(srcpart)z.FieldSchema(name:key, type:string, 
comment:default), ]
-POSTHOOK: Lineage: ss.v1 SIMPLE [(src1)x.FieldSchema(name:value, type:string, 
comment:default), ]
-POSTHOOK: Lineage: ss.v2 SIMPLE [(src)y.FieldSchema(name:value, type:string, 
comment:default), ]
-POSTHOOK: Lineage: ss.v3 SIMPLE [(srcpart)z.FieldSchema(name:value, 
type:string, comment:default), ]
-PREHOOK: query: INSERT OVERWRITE TABLE sr
-SELECT x.key,x.value,y.key,y.value,z.key,z.value
-FROM src1 x 
-JOIN src y ON (x.key = y.key) 
-JOIN srcpart z ON (x.value = z.value and z.ds='2008-04-08' and z.hr=12)
-PREHOOK: type: QUERY
-PREHOOK: Input: default@src
-PREHOOK: Input: default@src1
-PREHOOK: Input: default@srcpart
-PREHOOK: Input: default@srcpart@ds=2008-04-08/hr=12
-PREHOOK: Output: default@sr
-POSTHOOK: query: INSERT OVERWRITE TABLE sr
-SELECT x.key,x.value,y.key,y.value,z.key,z.value
-FROM src1 x 
-JOIN src y ON (x.key = y.key) 
-JOIN srcpart z ON (x.value = z.value and z.ds='2008-04-08' and z.hr=12)
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@src
-POSTHOOK: Input: default@src1
-POSTHOOK: Input: default@srcpart
-POSTHOOK: Input: default@srcpart@ds=2008-04-08/hr=12
-POSTHOOK: Output: default@sr
-POSTHOOK: Lineage: sr.k1 SIMPLE [(src1)x.FieldSchema(name:key, type:string, 
comment:default), ]
-POSTHOOK: Lineage: sr.k2 SIMPLE [(src)y.FieldSchema(name:key, type:string, 
comment:default), ]
-POSTHOOK: Lineage: sr.k3 SIMPLE [(srcpart)z.FieldSchema(name:key, type:string, 
comment:default), ]
-POSTHOOK: Lineage: sr.v1 SIMPLE [(src1)x.FieldSchema(name:value, type:string, 
comment:default), ]
-POSTHOOK: Lineage: sr.v2 SIMPLE [(src)y.FieldSchema(name:value, type:string, 
comment:default), ]
-POSTHOOK: Lineage: sr.v3 SIMPLE [(srcpart)z.FieldSchema(name:value, 
type:string, comment:default), ]
-PREHOOK: query: INSERT OVERWRITE TABLE cs
-SELECT x.key,x.value,y.key,y.value,z.key,z.value
-FROM src1 x 
-JOIN src y ON (x.key = y.key) 
-JOIN srcpart z ON (x.value = z.value and z.ds='2008-04-08')
-PREHOOK: type: QUERY
-PREHOOK: Input: default@src
-PREHOOK: Input: default@src1
-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: Output: default@cs
-POSTHOOK: query: INSERT OVERWRITE TABLE cs
-SELECT x.key,x.value,y.key,y.value,z.key,z.value
-FROM src1 x 
-JOIN src y ON (x.key = y.key) 
-JOIN srcpart z ON (x.value = z.value and z.ds='2008-04-08')
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@src
-POSTHOOK: Input: default@src1
-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: Output: default@cs
-POSTHOOK: Lineage: cs.k1 SIMPLE [(src1)x.FieldSchema(name:key, type:string, 
comment:default), ]
-POSTHOOK: Lineage: cs.k2 SIMPLE [(src)y.FieldSchema(name:key, type:string, 
comment:default), ]
-POSTHOOK: Lineage: cs.k3 SIMPLE [(srcpart)z.FieldSchema(name:key, type:string, 
comment:default), ]
-POSTHOOK: Lineage: cs.v1 SIMPLE [(src1)x.FieldSchema(name:value, type:string, 
comment:default), ]
-POSTHOOK: Lineage: cs.v2 SIMPLE [(src)y.FieldSchema(name:value, type:string, 
comment:default), ]
-POSTHOOK: Lineage: cs.v3 SIMPLE [(srcpart)z.FieldSchema(name:value, 
type:string, comment:default), ]
-PREHOOK: query: ANALYZE TABLE ss COMPUTE STATISTICS
-PREHOOK: type: QUERY
-PREHOOK: Input: default@ss
-PREHOOK: Output: default@ss
-POSTHOOK: query: ANALYZE TABLE ss COMPUTE STATISTICS
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@ss
-POSTHOOK: Output: default@ss
-PREHOOK: query: ANALYZE TABLE ss COMPUTE STATISTICS FOR COLUMNS 
k1,v1,k2,v2,k3,v3
-PREHOOK: type: QUERY
-PREHOOK: Input: default@ss
-#### A masked pattern was here ####
-POSTHOOK: query: ANALYZE TABLE ss COMPUTE STATISTICS FOR COLUMNS 
k1,v1,k2,v2,k3,v3
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@ss
-#### A masked pattern was here ####
-PREHOOK: query: ANALYZE TABLE sr COMPUTE STATISTICS
-PREHOOK: type: QUERY
-PREHOOK: Input: default@sr
-PREHOOK: Output: default@sr
-POSTHOOK: query: ANALYZE TABLE sr COMPUTE STATISTICS
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@sr
-POSTHOOK: Output: default@sr
-PREHOOK: query: ANALYZE TABLE sr COMPUTE STATISTICS FOR COLUMNS 
k1,v1,k2,v2,k3,v3
-PREHOOK: type: QUERY
-PREHOOK: Input: default@sr
-#### A masked pattern was here ####
-POSTHOOK: query: ANALYZE TABLE sr COMPUTE STATISTICS FOR COLUMNS 
k1,v1,k2,v2,k3,v3
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@sr
-#### A masked pattern was here ####
-PREHOOK: query: ANALYZE TABLE cs COMPUTE STATISTICS
-PREHOOK: type: QUERY
-PREHOOK: Input: default@cs
-PREHOOK: Output: default@cs
-POSTHOOK: query: ANALYZE TABLE cs COMPUTE STATISTICS
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@cs
-POSTHOOK: Output: default@cs
-PREHOOK: query: ANALYZE TABLE cs COMPUTE STATISTICS FOR COLUMNS 
k1,v1,k2,v2,k3,v3
-PREHOOK: type: QUERY
-PREHOOK: Input: default@cs
-#### A masked pattern was here ####
-POSTHOOK: query: ANALYZE TABLE cs COMPUTE STATISTICS FOR COLUMNS 
k1,v1,k2,v2,k3,v3
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@cs
-#### A masked pattern was here ####
-PREHOOK: query: EXPLAIN
-SELECT x.key, z.value, y.value
-FROM src1 x JOIN src y ON (x.key = y.key) 
-JOIN srcpart z ON (x.value = z.value and z.ds='2008-04-08' and z.hr=11)
-PREHOOK: type: QUERY
-POSTHOOK: query: EXPLAIN
-SELECT x.key, z.value, y.value
-FROM src1 x JOIN src y ON (x.key = y.key) 
-JOIN srcpart z ON (x.value = z.value and z.ds='2008-04-08' and z.hr=11)
-POSTHOOK: type: QUERY
-Plan optimized by CBO.
-
-Vertex dependency in root stage
-Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 4 (SIMPLE_EDGE)
-Reducer 3 <- Map 5 (SIMPLE_EDGE), Reducer 2 (SIMPLE_EDGE)
-
-Stage-0
-  Fetch Operator
-    limit:-1
-    Stage-1
-      Reducer 3
-      File Output Operator [FS_16]
-        Select Operator [SEL_15] (rows=141 width=268)
-          Output:["_col0","_col1","_col2"]
-          Merge Join Operator [MERGEJOIN_26] (rows=141 width=268)
-            
Conds:RS_12._col3=RS_13._col0(Inner),Output:["_col0","_col3","_col6"]
-          <-Map 5 [SIMPLE_EDGE]
-            SHUFFLE [RS_13]
-              PartitionCols:_col0
-              Select Operator [SEL_8] (rows=500 width=178)
-                Output:["_col0","_col1"]
-                Filter Operator [FIL_24] (rows=500 width=178)
-                  predicate:key is not null
-                  TableScan [TS_6] (rows=500 width=178)
-                    
default@src,y,Tbl:COMPLETE,Col:COMPLETE,Output:["key","value"]
-          <-Reducer 2 [SIMPLE_EDGE]
-            SHUFFLE [RS_12]
-              PartitionCols:_col3
-              Merge Join Operator [MERGEJOIN_25] (rows=58 width=177)
-                Conds:RS_9._col0=RS_10._col1(Inner),Output:["_col0","_col3"]
-              <-Map 1 [SIMPLE_EDGE]
-                SHUFFLE [RS_9]
-                  PartitionCols:_col0
-                  Select Operator [SEL_2] (rows=500 width=369)
-                    Output:["_col0"]
-                    Filter Operator [FIL_22] (rows=500 width=91)
-                      predicate:value is not null
-                      TableScan [TS_0] (rows=500 width=91)
-                        
default@srcpart,z,Tbl:COMPLETE,Col:COMPLETE,Output:["value"]
-              <-Map 4 [SIMPLE_EDGE]
-                SHUFFLE [RS_10]
-                  PartitionCols:_col1
-                  Select Operator [SEL_5] (rows=25 width=175)
-                    Output:["_col0","_col1"]
-                    Filter Operator [FIL_23] (rows=25 width=175)
-                      predicate:(key is not null and value is not null)
-                      TableScan [TS_3] (rows=25 width=175)
-                        
default@src1,x,Tbl:COMPLETE,Col:COMPLETE,Output:["key","value"]
-
-PREHOOK: query: EXPLAIN
-select 
-ss.k1,sr.k2,cs.k3,count(ss.v1),count(sr.v2),count(cs.v3)
-FROM 
-ss,sr,cs,src d1,src d2,src d3,src1,srcpart
-where
-    ss.k1 = d1.key 
-and sr.k1 = d2.key 
-and cs.k1 = d3.key 
-and ss.k2 = sr.k2
-and ss.k3 = sr.k3
-and ss.v1 = src1.value
-and ss.v2 = srcpart.value
-and sr.v2 = cs.v2
-and sr.v3 = cs.v3
-and ss.v3='ssv3'
-and sr.v1='srv1'
-and src1.key = 'src1key'
-and srcpart.key = 'srcpartkey'
-and d1.value = 'd1value'
-and d2.value in ('2000Q1','2000Q2','2000Q3')
-and d3.value in ('2000Q1','2000Q2','2000Q3')
-group by 
-ss.k1,sr.k2,cs.k3
-order by 
-ss.k1,sr.k2,cs.k3
-limit 100
-PREHOOK: type: QUERY
-POSTHOOK: query: EXPLAIN
-select 
-ss.k1,sr.k2,cs.k3,count(ss.v1),count(sr.v2),count(cs.v3)
-FROM 
-ss,sr,cs,src d1,src d2,src d3,src1,srcpart
-where
-    ss.k1 = d1.key 
-and sr.k1 = d2.key 
-and cs.k1 = d3.key 
-and ss.k2 = sr.k2
-and ss.k3 = sr.k3
-and ss.v1 = src1.value
-and ss.v2 = srcpart.value
-and sr.v2 = cs.v2
-and sr.v3 = cs.v3
-and ss.v3='ssv3'
-and sr.v1='srv1'
-and src1.key = 'src1key'
-and srcpart.key = 'srcpartkey'
-and d1.value = 'd1value'
-and d2.value in ('2000Q1','2000Q2','2000Q3')
-and d3.value in ('2000Q1','2000Q2','2000Q3')
-group by 
-ss.k1,sr.k2,cs.k3
-order by 
-ss.k1,sr.k2,cs.k3
-limit 100
-POSTHOOK: type: QUERY
-Plan optimized by CBO.
-
-Vertex dependency in root stage
-Reducer 10 <- Reducer 9 (SIMPLE_EDGE)
-Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 11 (SIMPLE_EDGE)
-Reducer 3 <- Map 12 (SIMPLE_EDGE), Reducer 2 (SIMPLE_EDGE)
-Reducer 4 <- Map 13 (SIMPLE_EDGE), Reducer 3 (SIMPLE_EDGE)
-Reducer 5 <- Map 14 (SIMPLE_EDGE), Reducer 4 (SIMPLE_EDGE)
-Reducer 6 <- Map 15 (SIMPLE_EDGE), Reducer 5 (SIMPLE_EDGE)
-Reducer 7 <- Map 16 (SIMPLE_EDGE), Reducer 6 (SIMPLE_EDGE)
-Reducer 8 <- Map 17 (SIMPLE_EDGE), Reducer 7 (SIMPLE_EDGE)
-Reducer 9 <- Reducer 8 (SIMPLE_EDGE)
-
-Stage-0
-  Fetch Operator
-    limit:100
-    Stage-1
-      Reducer 10
-      File Output Operator [FS_53]
-        Limit [LIM_52] (rows=100 width=18)
-          Number of rows:100
-          Select Operator [SEL_51] (rows=550 width=18)
-            Output:["_col0","_col1","_col2","_col3","_col4","_col5"]
-          <-Reducer 9 [SIMPLE_EDGE]
-            SHUFFLE [RS_50]
-              Group By Operator [GBY_48] (rows=550 width=18)
-                
Output:["_col0","_col1","_col2","_col3","_col4","_col5"],aggregations:["count(VALUE._col0)","count(VALUE._col1)","count(VALUE._col2)"],keys:KEY._col0,
 KEY._col1, KEY._col2
-              <-Reducer 8 [SIMPLE_EDGE]
-                SHUFFLE [RS_47]
-                  PartitionCols:_col0, _col1, _col2
-                  Group By Operator [GBY_46] (rows=1100 width=18)
-                    
Output:["_col0","_col1","_col2","_col3","_col4","_col5"],aggregations:["count(_col1)","count(_col9)","count(_col15)"],keys:_col0,
 _col8, _col14
-                    Select Operator [SEL_45] (rows=1100 width=18)
-                      
Output:["_col0","_col8","_col14","_col1","_col9","_col15"]
-                      Merge Join Operator [MERGEJOIN_103] (rows=1100 width=18)
-                        
Conds:RS_42._col3=RS_43._col1(Inner),Output:["_col0","_col1","_col8","_col9","_col14","_col15"]
-                      <-Map 17 [SIMPLE_EDGE]
-                        SHUFFLE [RS_43]
-                          PartitionCols:_col1
-                          Select Operator [SEL_23] (rows=1000 width=18)
-                            Output:["_col1"]
-                            Filter Operator [FIL_96] (rows=1000 width=18)
-                              predicate:((key = 'srcpartkey') and value is not 
null)
-                              TableScan [TS_21] (rows=2000 width=18)
-                                
default@srcpart,srcpart,Tbl:COMPLETE,Col:NONE,Output:["key","value"]
-                      <-Reducer 7 [SIMPLE_EDGE]
-                        SHUFFLE [RS_42]
-                          PartitionCols:_col3
-                          Merge Join Operator [MERGEJOIN_102] (rows=129 
width=625)
-                            
Conds:RS_39._col1=RS_40._col1(Inner),Output:["_col0","_col1","_col3","_col8","_col9","_col14","_col15"]
-                          <-Map 16 [SIMPLE_EDGE]
-                            SHUFFLE [RS_40]
-                              PartitionCols:_col1
-                              Select Operator [SEL_20] (rows=2 width=180)
-                                Output:["_col1"]
-                                Filter Operator [FIL_95] (rows=2 width=175)
-                                  predicate:((key = 'src1key') and value is 
not null)
-                                  TableScan [TS_18] (rows=25 width=175)
-                                    
default@src1,src1,Tbl:COMPLETE,Col:COMPLETE,Output:["key","value"]
-                          <-Reducer 6 [SIMPLE_EDGE]
-                            SHUFFLE [RS_39]
-                              PartitionCols:_col1
-                              Merge Join Operator [MERGEJOIN_101] (rows=129 
width=625)
-                                
Conds:RS_36._col12=RS_37._col0(Inner),Output:["_col0","_col1","_col3","_col8","_col9","_col14","_col15"]
-                              <-Map 15 [SIMPLE_EDGE]
-                                SHUFFLE [RS_37]
-                                  PartitionCols:_col0
-                                  Select Operator [SEL_17] (rows=500 width=178)
-                                    Output:["_col0"]
-                                    Filter Operator [FIL_94] (rows=500 
width=178)
-                                      predicate:((value) IN ('2000Q1', 
'2000Q2', '2000Q3') and key is not null)
-                                      TableScan [TS_15] (rows=500 width=178)
-                                        
default@src,d3,Tbl:COMPLETE,Col:COMPLETE,Output:["key","value"]
-                              <-Reducer 5 [SIMPLE_EDGE]
-                                SHUFFLE [RS_36]
-                                  PartitionCols:_col12
-                                  Merge Join Operator [MERGEJOIN_100] (rows=53 
width=712)
-                                    
Conds:RS_33._col6=RS_34._col0(Inner),Output:["_col0","_col1","_col3","_col8","_col9","_col12","_col14","_col15"]
-                                  <-Map 14 [SIMPLE_EDGE]
-                                    SHUFFLE [RS_34]
-                                      PartitionCols:_col0
-                                      Select Operator [SEL_14] (rows=500 
width=178)
-                                        Output:["_col0"]
-                                        Filter Operator [FIL_93] (rows=500 
width=178)
-                                          predicate:((value) IN ('2000Q1', 
'2000Q2', '2000Q3') and key is not null)
-                                          TableScan [TS_12] (rows=500 
width=178)
-                                            
default@src,d2,Tbl:COMPLETE,Col:COMPLETE,Output:["key","value"]
-                                  <-Reducer 4 [SIMPLE_EDGE]
-                                    SHUFFLE [RS_33]
-                                      PartitionCols:_col6
-                                      Merge Join Operator [MERGEJOIN_99] 
(rows=22 width=799)
-                                        
Conds:RS_30._col0=RS_31._col0(Inner),Output:["_col0","_col1","_col3","_col6","_col8","_col9","_col12","_col14","_col15"]
-                                      <-Map 13 [SIMPLE_EDGE]
-                                        SHUFFLE [RS_31]
-                                          PartitionCols:_col0
-                                          Select Operator [SEL_11] (rows=2 
width=178)
-                                            Output:["_col0"]
-                                            Filter Operator [FIL_92] (rows=2 
width=178)
-                                              predicate:((value = 'd1value') 
and key is not null)
-                                              TableScan [TS_9] (rows=500 
width=178)
-                                                
default@src,d1,Tbl:COMPLETE,Col:COMPLETE,Output:["key","value"]
-                                      <-Reducer 3 [SIMPLE_EDGE]
-                                        SHUFFLE [RS_30]
-                                          PartitionCols:_col0
-                                          Merge Join Operator [MERGEJOIN_98] 
(rows=22 width=799)
-                                            Conds:RS_27._col9, 
_col11=RS_28._col1, 
_col3(Inner),Output:["_col0","_col1","_col3","_col6","_col8","_col9","_col12","_col14","_col15"]
-                                          <-Map 12 [SIMPLE_EDGE]
-                                            SHUFFLE [RS_28]
-                                              PartitionCols:_col1, _col3
-                                              Select Operator [SEL_8] 
(rows=170 width=356)
-                                                
Output:["_col0","_col1","_col2","_col3"]
-                                                Filter Operator [FIL_91] 
(rows=170 width=356)
-                                                  predicate:(v2 is not null 
and v3 is not null and k1 is not null)
-                                                  TableScan [TS_6] (rows=170 
width=356)
-                                                    
default@cs,cs,Tbl:COMPLETE,Col:COMPLETE,Output:["k1","v2","k3","v3"]
-                                          <-Reducer 2 [SIMPLE_EDGE]
-                                            SHUFFLE [RS_27]
-                                              PartitionCols:_col9, _col11
-                                              Merge Join Operator 
[MERGEJOIN_97] (rows=16 width=625)
-                                                Conds:RS_24._col2, 
_col4=RS_25._col2, 
_col4(Inner),Output:["_col0","_col1","_col3","_col6","_col8","_col9","_col11"]
-                                              <-Map 1 [SIMPLE_EDGE]
-                                                SHUFFLE [RS_24]
-                                                  PartitionCols:_col2, _col4
-                                                  Select Operator [SEL_2] 
(rows=8 width=531)
-                                                    
Output:["_col0","_col1","_col2","_col3","_col4"]
-                                                    Filter Operator [FIL_89] 
(rows=8 width=534)
-                                                      predicate:((v3 = 'ssv3') 
and k2 is not null and k3 is not null and k1 is not null and v1 is not null and 
v2 is not null)
-                                                      TableScan [TS_0] 
(rows=85 width=534)
-                                                        
default@ss,ss,Tbl:COMPLETE,Col:COMPLETE,Output:["k1","v1","k2","v2","k3","v3"]
-                                              <-Map 11 [SIMPLE_EDGE]
-                                                SHUFFLE [RS_25]
-                                                  PartitionCols:_col2, _col4
-                                                  Select Operator [SEL_5] 
(rows=8 width=531)
-                                                    
Output:["_col0","_col2","_col3","_col4","_col5"]
-                                                    Filter Operator [FIL_90] 
(rows=8 width=534)
-                                                      predicate:((v1 = 'srv1') 
and k2 is not null and k3 is not null and v2 is not null and v3 is not null and 
k1 is not null)
-                                                      TableScan [TS_3] 
(rows=85 width=534)
-                                                        
default@sr,sr,Tbl:COMPLETE,Col:COMPLETE,Output:["k1","v1","k2","v2","k3","v3"]
-
-PREHOOK: query: explain
-SELECT x.key, z.value, y.value
-FROM src1 x JOIN src y ON (x.key = y.key) 
-JOIN (select * from src1 union select * from src)z ON (x.value = z.value)
-union
-SELECT x.key, z.value, y.value
-FROM src1 x JOIN src y ON (x.key = y.key) 
-JOIN (select * from src1 union select * from src)z ON (x.value = z.value)
-PREHOOK: type: QUERY
-POSTHOOK: query: explain
-SELECT x.key, z.value, y.value
-FROM src1 x JOIN src y ON (x.key = y.key) 
-JOIN (select * from src1 union select * from src)z ON (x.value = z.value)
-union
-SELECT x.key, z.value, y.value
-FROM src1 x JOIN src y ON (x.key = y.key) 
-JOIN (select * from src1 union select * from src)z ON (x.value = z.value)
-POSTHOOK: type: QUERY
-Plan optimized by CBO.
-
-Vertex dependency in root stage
-Map 1 <- Union 2 (CONTAINS)
-Map 11 <- Union 12 (CONTAINS)
-Map 16 <- Union 12 (CONTAINS)
-Map 8 <- Union 2 (CONTAINS)
-Reducer 13 <- Union 12 (SIMPLE_EDGE)
-Reducer 14 <- Map 17 (SIMPLE_EDGE), Reducer 13 (SIMPLE_EDGE)
-Reducer 15 <- Map 18 (SIMPLE_EDGE), Reducer 14 (SIMPLE_EDGE), Union 6 
(CONTAINS)
-Reducer 3 <- Union 2 (SIMPLE_EDGE)
-Reducer 4 <- Map 9 (SIMPLE_EDGE), Reducer 3 (SIMPLE_EDGE)
-Reducer 5 <- Map 10 (SIMPLE_EDGE), Reducer 4 (SIMPLE_EDGE), Union 6 (CONTAINS)
-Reducer 7 <- Union 6 (SIMPLE_EDGE)
-
-Stage-0
-  Fetch Operator
-    limit:-1
-    Stage-1
-      Reducer 7
-      File Output Operator [FS_59]
-        Group By Operator [GBY_57] (rows=28 width=177)
-          Output:["_col0","_col1"],keys:KEY._col0, KEY._col1
-        <-Union 6 [SIMPLE_EDGE]
-          <-Reducer 15 [CONTAINS]
-            Reduce Output Operator [RS_56]
-              PartitionCols:_col0, _col1
-              Group By Operator [GBY_55] (rows=28 width=177)
-                Output:["_col0","_col1"],keys:_col0, _col1
-                Select Operator [SEL_51] (rows=73 width=177)
-                  Output:["_col0","_col1"]
-                  Merge Join Operator [MERGEJOIN_85] (rows=73 width=177)
-                    
Conds:RS_48._col2=RS_49._col0(Inner),Output:["_col1","_col2"]
-                  <-Map 18 [SIMPLE_EDGE]
-                    SHUFFLE [RS_49]
-                      PartitionCols:_col0
-                      Select Operator [SEL_44] (rows=500 width=87)
-                        Output:["_col0"]
-                        Filter Operator [FIL_81] (rows=500 width=87)
-                          predicate:key is not null
-                          TableScan [TS_42] (rows=500 width=87)
-                            
default@src,y,Tbl:COMPLETE,Col:COMPLETE,Output:["key"]
-                  <-Reducer 14 [SIMPLE_EDGE]
-                    SHUFFLE [RS_48]
-                      PartitionCols:_col2
-                      Merge Join Operator [MERGEJOIN_84] (rows=30 width=177)
-                        
Conds:RS_45._col1=RS_46._col1(Inner),Output:["_col1","_col2"]
-                      <-Map 17 [SIMPLE_EDGE]
-                        SHUFFLE [RS_46]
-                          PartitionCols:_col1
-                          Select Operator [SEL_41] (rows=25 width=175)
-                            Output:["_col0","_col1"]
-                            Filter Operator [FIL_80] (rows=25 width=175)
-                              predicate:(key is not null and value is not null)
-                              TableScan [TS_39] (rows=25 width=175)
-                                
default@src1,x,Tbl:COMPLETE,Col:COMPLETE,Output:["key","value"]
-                      <-Reducer 13 [SIMPLE_EDGE]
-                        SHUFFLE [RS_45]
-                          PartitionCols:_col1
-                          Select Operator [SEL_38] (rows=262 width=178)
-                            Output:["_col1"]
-                            Group By Operator [GBY_37] (rows=262 width=178)
-                              Output:["_col0","_col1"],keys:KEY._col0, 
KEY._col1
-                            <-Union 12 [SIMPLE_EDGE]
-                              <-Map 11 [CONTAINS]
-                                Reduce Output Operator [RS_36]
-                                  PartitionCols:_col0, _col1
-                                  Group By Operator [GBY_35] (rows=262 
width=178)
-                                    Output:["_col0","_col1"],keys:_col1, _col0
-                                    Select Operator [SEL_28] (rows=25 
width=175)
-                                      Output:["_col0","_col1"]
-                                      Filter Operator [FIL_78] (rows=25 
width=175)
-                                        predicate:value is not null
-                                        TableScan [TS_26] (rows=25 width=175)
-                                          Output:["key","value"]
-                              <-Map 16 [CONTAINS]
-                                Reduce Output Operator [RS_36]
-                                  PartitionCols:_col0, _col1
-                                  Group By Operator [GBY_35] (rows=262 
width=178)
-                                    Output:["_col0","_col1"],keys:_col1, _col0
-                                    Select Operator [SEL_31] (rows=500 
width=178)
-                                      Output:["_col0","_col1"]
-                                      Filter Operator [FIL_79] (rows=500 
width=178)
-                                        predicate:value is not null
-                                        TableScan [TS_29] (rows=500 width=178)
-                                          Output:["key","value"]
-          <-Reducer 5 [CONTAINS]
-            Reduce Output Operator [RS_56]
-              PartitionCols:_col0, _col1
-              Group By Operator [GBY_55] (rows=28 width=177)
-                Output:["_col0","_col1"],keys:_col0, _col1
-                Select Operator [SEL_25] (rows=73 width=177)
-                  Output:["_col0","_col1"]
-                  Merge Join Operator [MERGEJOIN_83] (rows=73 width=177)
-                    
Conds:RS_22._col2=RS_23._col0(Inner),Output:["_col1","_col2"]
-                  <-Map 10 [SIMPLE_EDGE]
-                    SHUFFLE [RS_23]
-                      PartitionCols:_col0
-                      Select Operator [SEL_18] (rows=500 width=87)
-                        Output:["_col0"]
-                        Filter Operator [FIL_77] (rows=500 width=87)
-                          predicate:key is not null
-                          TableScan [TS_16] (rows=500 width=87)
-                            
default@src,y,Tbl:COMPLETE,Col:COMPLETE,Output:["key"]
-                  <-Reducer 4 [SIMPLE_EDGE]
-                    SHUFFLE [RS_22]
-                      PartitionCols:_col2
-                      Merge Join Operator [MERGEJOIN_82] (rows=30 width=177)
-                        
Conds:RS_19._col1=RS_20._col1(Inner),Output:["_col1","_col2"]
-                      <-Map 9 [SIMPLE_EDGE]
-                        SHUFFLE [RS_20]
-                          PartitionCols:_col1
-                          Select Operator [SEL_15] (rows=25 width=175)
-                            Output:["_col0","_col1"]
-                            Filter Operator [FIL_76] (rows=25 width=175)
-                              predicate:(key is not null and value is not null)
-                              TableScan [TS_13] (rows=25 width=175)
-                                
default@src1,x,Tbl:COMPLETE,Col:COMPLETE,Output:["key","value"]
-                      <-Reducer 3 [SIMPLE_EDGE]
-                        SHUFFLE [RS_19]
-                          PartitionCols:_col1
-                          Select Operator [SEL_12] (rows=262 width=178)
-                            Output:["_col1"]
-                            Group By Operator [GBY_11] (rows=262 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 
width=178)
-                                    Output:["_col0","_col1"],keys:_col1, _col0
-                                    Select Operator [SEL_2] (rows=25 width=175)
-                                      Output:["_col0","_col1"]
-                                      Filter Operator [FIL_74] (rows=25 
width=175)
-                                        predicate:value is not null
-                                        TableScan [TS_0] (rows=25 width=175)
-                                          Output:["key","value"]
-                              <-Map 8 [CONTAINS]
-                                Reduce Output Operator [RS_10]
-                                  PartitionCols:_col0, _col1
-                                  Group By Operator [GBY_9] (rows=262 
width=178)
-                                    Output:["_col0","_col1"],keys:_col1, _col0
-                                    Select Operator [SEL_5] (rows=500 
width=178)
-                                      Output:["_col0","_col1"]
-                                      Filter Operator [FIL_75] (rows=500 
width=178)
-                                        predicate:value is not null
-                                        TableScan [TS_3] (rows=500 width=178)
-                                          Output:["key","value"]
-
-PREHOOK: query: explain
-SELECT x.key, y.value
-FROM src1 x JOIN src y ON (x.key = y.key) 
-JOIN (select * from src1 union select * from src)z ON (x.value = z.value)
-union
-SELECT x.key, y.value
-FROM src1 x JOIN src y ON (x.key = y.key) 
-JOIN (select key, value from src1 union select key, value from src union 
select key, value from src)z ON (x.value = z.value)
-union
-SELECT x.key, y.value
-FROM src1 x JOIN src y ON (x.key = y.key) 
-JOIN (select key, value from src1 union select key, value from src union 
select key, value from src union select key, value from src)z ON (x.value = 
z.value)
-PREHOOK: type: QUERY
-POSTHOOK: query: explain
-SELECT x.key, y.value
-FROM src1 x JOIN src y ON (x.key = y.key) 
-JOIN (select * from src1 union select * from src)z ON (x.value = z.value)
-union
-SELECT x.key, y.value
-FROM src1 x JOIN src y ON (x.key = y.key) 
-JOIN (select key, value from src1 union select key, value from src union 
select key, value from src)z ON (x.value = z.value)
-union
-SELECT x.key, y.value
-FROM src1 x JOIN src y ON (x.key = y.key) 
-JOIN (select key, value from src1 union select key, value from src union 
select key, value from src union select key, value from src)z ON (x.value = 
z.value)
-POSTHOOK: type: QUERY
-Plan optimized by CBO.
-
-Vertex dependency in root stage
-Map 1 <- Union 2 (CONTAINS)
-Map 10 <- Union 2 (CONTAINS)
-Map 13 <- Union 14 (CONTAINS)
-Map 20 <- Union 14 (CONTAINS)
-Map 21 <- Union 16 (CONTAINS)
-Map 24 <- Union 25 (CONTAINS)
-Map 33 <- Union 25 (CONTAINS)
-Map 34 <- Union 27 (CONTAINS)
-Map 35 <- Union 29 (CONTAINS)
-Reducer 15 <- Union 14 (SIMPLE_EDGE), Union 16 (CONTAINS)
-Reducer 17 <- Union 16 (SIMPLE_EDGE)
-Reducer 18 <- Map 22 (SIMPLE_EDGE), Reducer 17 (SIMPLE_EDGE)
-Reducer 19 <- Map 23 (SIMPLE_EDGE), Reducer 18 (SIMPLE_EDGE), Union 6 
(CONTAINS)
-Reducer 26 <- Union 25 (SIMPLE_EDGE), Union 27 (CONTAINS)
-Reducer 28 <- Union 27 (SIMPLE_EDGE), Union 29 (CONTAINS)
-Reducer 3 <- Union 2 (SIMPLE_EDGE)
-Reducer 30 <- Union 29 (SIMPLE_EDGE)
-Reducer 31 <- Map 36 (SIMPLE_EDGE), Reducer 30 (SIMPLE_EDGE)
-Reducer 32 <- Map 37 (SIMPLE_EDGE), Reducer 31 (SIMPLE_EDGE), Union 8 
(CONTAINS)
-Reducer 4 <- Map 11 (SIMPLE_EDGE), Reducer 3 (SIMPLE_EDGE)
-Reducer 5 <- Map 12 (SIMPLE_EDGE), Reducer 4 (SIMPLE_EDGE), Union 6 (CONTAINS)
-Reducer 7 <- Union 6 (SIMPLE_EDGE), Union 8 (CONTAINS)
-Reducer 9 <- Union 8 (SIMPLE_EDGE)
-
-Stage-0
-  Fetch Operator
-    limit:-1
-    Stage-1
-      Reducer 9
-      File Output Operator [FS_122]
-        Group By Operator [GBY_120] (rows=107 width=177)
-          Output:["_col0","_col1"],keys:KEY._col0, KEY._col1
-        <-Union 8 [SIMPLE_EDGE]
-          <-Reducer 32 [CONTAINS]
-            Reduce Output Operator [RS_119]
-              PartitionCols:_col0, _col1
-              Group By Operator [GBY_118] (rows=107 width=177)
-                Output:["_col0","_col1"],keys:_col0, _col1
-                Select Operator [SEL_114] (rows=124 width=177)
-                  Output:["_col0","_col1"]
-                  Merge Join Operator [MERGEJOIN_170] (rows=124 width=177)
-                    
Conds:RS_111._col2=RS_112._col0(Inner),Output:["_col2","_col5"]
-                  <-Map 37 [SIMPLE_EDGE]
-                    SHUFFLE [RS_112]
-                      PartitionCols:_col0
-                      Select Operator [SEL_107] (rows=500 width=178)
-                        Output:["_col0","_col1"]
-                        Filter Operator [FIL_164] (rows=500 width=178)
-                          predicate:key is not null
-                          TableScan [TS_105] (rows=500 width=178)
-                            
default@src,y,Tbl:COMPLETE,Col:COMPLETE,Output:["key","value"]
-                  <-Reducer 31 [SIMPLE_EDGE]
-                    SHUFFLE [RS_111]
-                      PartitionCols:_col2
-                      Merge Join Operator [MERGEJOIN_169] (rows=51 width=86)
-                        Conds:RS_108._col1=RS_109._col1(Inner),Output:["_col2"]
-                      <-Map 36 [SIMPLE_EDGE]
-                        SHUFFLE [RS_109]
-                          PartitionCols:_col1
-                          Select Operator [SEL_104] (rows=25 width=175)
-                            Output:["_col0","_col1"]
-                            Filter Operator [FIL_163] (rows=25 width=175)
-                              predicate:(key is not null and value is not null)
-                              TableScan [TS_102] (rows=25 width=175)
-                                
default@src1,x,Tbl:COMPLETE,Col:COMPLETE,Output:["key","value"]
-                      <-Reducer 30 [SIMPLE_EDGE]
-                        SHUFFLE [RS_108]
-                          PartitionCols:_col1
-                          Select Operator [SEL_101] (rows=440 width=178)
-                            Output:["_col1"]
-                            Group By Operator [GBY_100] (rows=440 width=178)
-                              Output:["_col0","_col1"],keys:KEY._col0, 
KEY._col1
-                            <-Union 29 [SIMPLE_EDGE]
-                              <-Map 35 [CONTAINS]
-                                Reduce Output Operator [RS_99]
-                                  PartitionCols:_col0, _col1
-                                  Group By Operator [GBY_98] (rows=440 
width=178)
-                                    Output:["_col0","_col1"],keys:_col1, _col0
-                                    Select Operator [SEL_94] (rows=500 
width=178)
-                                      Output:["_col0","_col1"]
-                                      Filter Operator [FIL_162] (rows=500 
width=178)
-                                        predicate:value is not null
-                                        TableScan [TS_92] (rows=500 width=178)
-                                          Output:["key","value"]
-                              <-Reducer 28 [CONTAINS]
-                                Reduce Output Operator [RS_99]
-                                  PartitionCols:_col0, _col1
-                                  Group By Operator [GBY_98] (rows=440 
width=178)
-                                    Output:["_col0","_col1"],keys:_col1, _col0
-                                    Select Operator [SEL_91] (rows=381 
width=178)
-                                      Output:["_col0","_col1"]
-                                      Group By Operator [GBY_90] (rows=381 
width=178)
-                                        
Output:["_col0","_col1"],keys:KEY._col0, KEY._col1
-                                      <-Union 27 [SIMPLE_EDGE]
-                                        <-Map 34 [CONTAINS]
-                                          Reduce Output Operator [RS_89]
-                                            PartitionCols:_col0, _col1
-                                            Group By Operator [GBY_88] 
(rows=381 width=178)
-                                              
Output:["_col0","_col1"],keys:_col1, _col0
-                                              Select Operator [SEL_84] 
(rows=500 width=178)
-                                                Output:["_col0","_col1"]
-                                                Filter Operator [FIL_161] 
(rows=500 width=178)
-                                                  predicate:value is not null
-                                                  TableScan [TS_82] (rows=500 
width=178)
-                                                    Output:["key","value"]
-                                        <-Reducer 26 [CONTAINS]
-                                          Reduce Output Operator [RS_89]
-                                            PartitionCols:_col0, _col1
-                                            Group By Operator [GBY_88] 
(rows=381 width=178)
-                                              
Output:["_col0","_col1"],keys:_col1, _col0
-                                              Select Operator [SEL_81] 
(rows=262 width=178)
-                                                Output:["_col0","_col1"]
-                                                Group By Operator [GBY_80] 
(rows=262 width=178)
-                                                  
Output:["_col0","_col1"],keys:KEY._col0, KEY._col1
-                                                <-Union 25 [SIMPLE_EDGE]
-                                                  <-Map 24 [CONTAINS]
-                                                    Reduce Output Operator 
[RS_79]
-                                                      PartitionCols:_col0, 
_col1
-                                                      Group By Operator 
[GBY_78] (rows=262 width=178)
-                                                        
Output:["_col0","_col1"],keys:_col1, _col0
-                                                        Select Operator 
[SEL_71] (rows=25 width=175)
-                                                          
Output:["_col0","_col1"]
-                                                          Filter Operator 
[FIL_159] (rows=25 width=175)
-                                                            predicate:value is 
not null
-                                                            TableScan [TS_69] 
(rows=25 width=175)
-                                                              
Output:["key","value"]
-                                                  <-Map 33 [CONTAINS]
-                                                    Reduce Output Operator 
[RS_79]
-                                                      PartitionCols:_col0, 
_col1
-                                                      Group By Operator 
[GBY_78] (rows=262 width=178)
-                                                        
Output:["_col0","_col1"],keys:_col1, _col0
-                                                        Select Operator 
[SEL_74] (rows=500 width=178)
-                                                          
Output:["_col0","_col1"]
-                                                          Filter Operator 
[FIL_160] (rows=500 width=178)
-                                                            predicate:value is 
not null
-                                                            TableScan [TS_72] 
(rows=500 width=178)
-                                                              
Output:["key","value"]
-          <-Reducer 7 [CONTAINS]
-            Reduce Output Operator [RS_119]
-              PartitionCols:_col0, _col1
-              Group By Operator [GBY_118] (rows=107 width=177)
-                Output:["_col0","_col1"],keys:_col0, _col1
-                Group By Operator [GBY_67] (rows=90 width=177)
-                  Output:["_col0","_col1"],keys:KEY._col0, KEY._col1
-                <-Union 6 [SIMPLE_EDGE]
-                  <-Reducer 19 [CONTAINS]
-                    Reduce Output Operator [RS_66]
-                      PartitionCols:_col0, _col1
-                      Group By Operator [GBY_65] (rows=90 width=177)
-                        Output:["_col0","_col1"],keys:_col0, _col1
-                        Select Operator [SEL_61] (rows=107 width=177)
-                          Output:["_col0","_col1"]
-                          Merge Join Operator [MERGEJOIN_168] (rows=107 
width=177)
-                            
Conds:RS_58._col2=RS_59._col0(Inner),Output:["_col2","_col5"]
-                          <-Map 23 [SIMPLE_EDGE]
-                            SHUFFLE [RS_59]
-                              PartitionCols:_col0
-                              Select Operator [SEL_54] (rows=500 width=178)
-                                Output:["_col0","_col1"]
-                                Filter Operator [FIL_158] (rows=500 width=178)
-                                  predicate:key is not null
-                                  TableScan [TS_52] (rows=500 width=178)
-                                    
default@src,y,Tbl:COMPLETE,Col:COMPLETE,Output:["key","value"]
-                          <-Reducer 18 [SIMPLE_EDGE]
-                            SHUFFLE [RS_58]
-                              PartitionCols:_col2
-                              Merge Join Operator [MERGEJOIN_167] (rows=44 
width=86)
-                                
Conds:RS_55._col1=RS_56._col1(Inner),Output:["_col2"]
-                              <-Map 22 [SIMPLE_EDGE]
-                                SHUFFLE [RS_56]
-                                  PartitionCols:_col1
-                                  Select Operator [SEL_51] (rows=25 width=175)
-                                    Output:["_col0","_col1"]
-                                    Filter Operator [FIL_157] (rows=25 
width=175)
-                                      predicate:(key is not null and value is 
not null)
-                                      TableScan [TS_49] (rows=25 width=175)
-                                        
default@src1,x,Tbl:COMPLETE,Col:COMPLETE,Output:["key","value"]
-                              <-Reducer 17 [SIMPLE_EDGE]
-                                SHUFFLE [RS_55]
-                                  PartitionCols:_col1
-                                  Select Operator [SEL_48] (rows=381 width=178)
-                                    Output:["_col1"]
-                                    Group By Operator [GBY_47] (rows=381 
width=178)
-                                      Output:["_col0","_col1"],keys:KEY._col0, 
KEY._col1
-                                    <-Union 16 [SIMPLE_EDGE]
-                                      <-Map 21 [CONTAINS]
-                                        Reduce Output Operator [RS_46]
-                                          PartitionCols:_col0, _col1
-                                          Group By Operator [GBY_45] (rows=381 
width=178)
-                                            
Output:["_col0","_col1"],keys:_col1, _col0
-                                            Select Operator [SEL_41] (rows=500 
width=178)
-                                              Output:["_col0","_col1"]
-                                              Filter Operator [FIL_156] 
(rows=500 width=178)
-                                                predicate:value is not null
-                                                TableScan [TS_39] (rows=500 
width=178)
-                                                  Output:["key","value"]
-                                      <-Reducer 15 [CONTAINS]
-                                        Reduce Output Operator [RS_46]
-                                          PartitionCols:_col0, _col1
-                                          Group By Operator [GBY_45] (rows=381 
width=178)
-                                            
Output:["_col0","_col1"],keys:_col1, _col0
-                                            Select Operator [SEL_38] (rows=262 
width=178)
-                                              Output:["_col0","_col1"]
-                                              Group By Operator [GBY_37] 
(rows=262 width=178)
-                                                
Output:["_col0","_col1"],keys:KEY._col0, KEY._col1
-                                              <-Union 14 [SIMPLE_EDGE]
-                                                <-Map 13 [CONTAINS]
-                                                  Reduce Output Operator 
[RS_36]
-                                                    PartitionCols:_col0, _col1
-                                                    Group By Operator [GBY_35] 
(rows=262 width=178)
-                                                      
Output:["_col0","_col1"],keys:_col1, _col0
-                                                      Select Operator [SEL_28] 
(rows=25 width=175)
-                                                        
Output:["_col0","_col1"]
-                                                        Filter Operator 
[FIL_154] (rows=25 width=175)
-                                                          predicate:value is 
not null
-                                                          TableScan [TS_26] 
(rows=25 width=175)
-                                                            
Output:["key","value"]
-                                                <-Map 20 [CONTAINS]
-                                                  Reduce Output Operator 
[RS_36]
-                                                    PartitionCols:_col0, _col1
-                                                    Group By Operator [GBY_35] 
(rows=262 width=178)
-                                                      
Output:["_col0","_col1"],keys:_col1, _col0
-                                                      Select Operator [SEL_31] 
(rows=500 width=178)
-                                                        
Output:["_col0","_col1"]
-                                                        Filter Operator 
[FIL_155] (rows=500 width=178)
-                                                          predicate:value is 
not null
-                                                          TableScan [TS_29] 
(rows=500 width=178)
-                                                            
Output:["key","value"]
-                  <-Reducer 5 [CONTAINS]
-                    Reduce Output Operator [RS_66]
-                      PartitionCols:_col0, _col1
-                      Group By Operator [GBY_65] (rows=90 width=177)
-                        Output:["_col0","_col1"],keys:_col0, _col1
-                        Select Operator [SEL_25] (rows=73 width=177)
-                          Output:["_col0","_col1"]
-                          Merge Join Operator [MERGEJOIN_166] (rows=73 
width=177)
-                            
Conds:RS_22._col2=RS_23._col0(Inner),Output:["_col2","_col5"]
-                          <-Map 12 [SIMPLE_EDGE]
-                            SHUFFLE [RS_23]
-                              PartitionCols:_col0
-                              Select Operator [SEL_18] (rows=500 width=178)
-                                Output:["_col0","_col1"]
-                                Filter Operator [FIL_153] (rows=500 width=178)
-                                  predicate:key is not null
-                                  TableScan [TS_16] (rows=500 width=178)
-                                    
default@src,y,Tbl:COMPLETE,Col:COMPLETE,Output:["key","value"]
-                          <-Reducer 4 [SIMPLE_EDGE]
-                            SHUFFLE [RS_22]
-                              PartitionCols:_col2
-                              Merge Join Operator [MERGEJOIN_165] (rows=30 
width=86)
-                                
Conds:RS_19._col1=RS_20._col1(Inner),Output:["_col2"]
-                              <-Map 11 [SIMPLE_EDGE]
-                                SHUFFLE [RS_20]
-                                  PartitionCols:_col1
-                                  Select Operator [SEL_15] (rows=25 width=175)
-                                    Output:["_col0","_col1"]
-                                    Filter Operator [FIL_152] (rows=25 
width=175)
-                                      predicate:(key is not null and value is 
not null)
-                                      TableScan [TS_13] (rows=25 width=175)
-                                        
default@src1,x,Tbl:COMPLETE,Col:COMPLETE,Output:["key","value"]
-                              <-Reducer 3 [SIMPLE_EDGE]
-                                SHUFFLE [RS_19]
-                                  PartitionCols:_col1
-                                  Select Operator [SEL_12] (rows=262 width=178)
-                                    Output:["_col1"]
-                                    Group By Operator [GBY_11] (rows=262 
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 
width=178)
-                                            
Output:["_col0","_col1"],keys:_col1, _col0
-                                            Select Operator [SEL_2] (rows=25 
width=175)
-                                              Output:["_col0","_col1"]
-                                              Filter Operator [FIL_150] 
(rows=25 width=175)
-                                                predicate:value is not null
-                                                TableScan [TS_0] (rows=25 
width=175)
-                                                  Output:["key","value"]
-                                      <-Map 10 [CONTAINS]
-                                        Reduce Output Operator [RS_10]
-                                          PartitionCols:_col0, _col1
-                                          Group By Operator [GBY_9] (rows=262 
width=178)
-                                            
Output:["_col0","_col1"],keys:_col1, _col0
-                                            Select Operator [SEL_5] (rows=500 
width=178)
-                                              Output:["_col0","_col1"]
-                                              Filter Operator [FIL_151] 
(rows=500 width=178)
-                                                predicate:value is not null
-                                                TableScan [TS_3] (rows=500 
width=178)
-                                                  Output:["key","value"]
-
-PREHOOK: query: EXPLAIN
-SELECT x.key, z.value, y.value
-FROM src1 x JOIN src y ON (x.key = y.key) 
-JOIN srcpart z ON (x.value = z.value and z.ds='2008-04-08' and z.hr=11)
-PREHOOK: type: QUERY
-POSTHOOK: query: EXPLAIN
-SELECT x.key, z.value, y.value
-FROM src1 x JOIN src y ON (x.key = y.key) 
-JOIN srcpart z ON (x.value = z.value and z.ds='2008-04-08' and z.hr=11)
-POSTHOOK: type: QUERY
-Plan optimized by CBO.
-
-Vertex dependency in root stage
-Map 1 <- Map 2 (BROADCAST_EDGE), Map 3 (BROADCAST_EDGE)
-
-Stage-0
-  Fetch Operator
-    limit:-1
-    Stage-1
-      Map 1
-      File Output Operator [FS_16]
-        Select Operator [SEL_15] (rows=605 width=10)
-          Output:["_col0","_col1","_col2"]
-          Map Join Operator [MAPJOIN_26] (rows=605 width=10)
-            
Conds:MAPJOIN_25._col3=RS_13._col0(Inner),HybridGraceHashJoin:true,Output:["_col0","_col3","_col6"]
-          <-Map 3 [BROADCAST_EDGE]
-            BROADCAST [RS_13]
-              PartitionCols:_col0
-              Select Operator [SEL_8] (rows=500 width=10)
-                Output:["_col0","_col1"]
-                Filter Operator [FIL_24] (rows=500 width=10)
-                  predicate:key is not null
-                  TableScan [TS_6] (rows=500 width=10)
-                    default@src,y,Tbl:COMPLETE,Col:NONE,Output:["key","value"]
-          <-Map Join Operator [MAPJOIN_25] (rows=550 width=10)
-              
Conds:SEL_2._col0=RS_10._col1(Inner),HybridGraceHashJoin:true,Output:["_col0","_col3"]
-            <-Map 2 [BROADCAST_EDGE]
-              BROADCAST [RS_10]
-                PartitionCols:_col1
-                Select Operator [SEL_5] (rows=25 width=7)
-                  Output:["_col0","_col1"]
-                  Filter Operator [FIL_23] (rows=25 width=7)
-                    predicate:(key is not null and value is not null)
-                    TableScan [TS_3] (rows=25 width=7)
-                      
default@src1,x,Tbl:COMPLETE,Col:NONE,Output:["key","value"]
-            <-Select Operator [SEL_2] (rows=500 width=10)
-                Output:["_col0"]
-                Filter Operator [FIL_22] (rows=500 width=10)
-                  predicate:value is not null
-                  TableScan [TS_0] (rows=500 width=10)
-                    default@srcpart,z,Tbl:COMPLETE,Col:NONE,Output:["value"]
-
-PREHOOK: query: EXPLAIN
-select 
-ss.k1,sr.k2,cs.k3,count(ss.v1),count(sr.v2),count(cs.v3)
-FROM 
-ss,sr,cs,src d1,src d2,src d3,src1,srcpart
-where
-    ss.k1 = d1.key 
-and sr.k1 = d2.key 
-and cs.k1 = d3.key 
-and ss.k2 = sr.k2
-and ss.k3 = sr.k3
-and ss.v1 = src1.value
-and ss.v2 = srcpart.value
-and sr.v2 = cs.v2
-and sr.v3 = cs.v3
-and ss.v3='ssv3'
-and sr.v1='srv1'
-and src1.key = 'src1key'
-and srcpart.key = 'srcpartkey'
-and d1.value = 'd1value'
-and d2.value in ('2000Q1','2000Q2','2000Q3')
-and d3.value in ('2000Q1','2000Q2','2000Q3')
-group by 
-ss.k1,sr.k2,cs.k3
-order by 
-ss.k1,sr.k2,cs.k3
-limit 100
-PREHOOK: type: QUERY
-POSTHOOK: query: EXPLAIN
-select 
-ss.k1,sr.k2,cs.k3,count(ss.v1),count(sr.v2),count(cs.v3)
-FROM 
-ss,sr,cs,src d1,src d2,src d3,src1,srcpart
-where
-    ss.k1 = d1.key 
-and sr.k1 = d2.key 
-and cs.k1 = d3.key 
-and ss.k2 = sr.k2
-and ss.k3 = sr.k3
-and ss.v1 = src1.value
-and ss.v2 = srcpart.value
-and sr.v2 = cs.v2
-and sr.v3 = cs.v3
-and ss.v3='ssv3'
-and sr.v1='srv1'
-and src1.key = 'src1key'
-and srcpart.key = 'srcpartkey'
-and d1.value = 'd1value'
-and d2.value in ('2000Q1','2000Q2','2000Q3')
-and d3.value in ('2000Q1','2000Q2','2000Q3')
-group by 
-ss.k1,sr.k2,cs.k3
-order by 
-ss.k1,sr.k2,cs.k3
-limit 100
-POSTHOOK: type: QUERY
-Plan optimized by CBO.
-
-Vertex dependency in root stage
-Map 1 <- Map 2 (BROADCAST_EDGE)
-Map 3 <- Map 1 (BROADCAST_EDGE)
-Map 4 <- Map 3 (BROADCAST_EDGE), Map 5 (BROADCAST_EDGE), Map 6 
(BROADCAST_EDGE), Map 7 (BROADCAST_EDGE)
-Map 8 <- Map 4 (BROADCAST_EDGE)
-Reducer 10 <- Reducer 9 (SIMPLE_EDGE)
-Reducer 9 <- Map 8 (SIMPLE_EDGE)
-
-Stage-0
-  Fetch Operator
-    limit:100
-    Stage-1
-      Reducer 10
-      File Output Operator [FS_53]
-        Limit [LIM_52] (rows=100 width=10)
-          Number of rows:100
-          Select Operator [SEL_51] (rows=550 width=10)
-            Output:["_col0","_col1","_col2","_col3","_col4","_col5"]
-          <-Reducer 9 [SIMPLE_EDGE]
-            SHUFFLE [RS_50]
-              Group By Operator [GBY_48] (rows=550 width=10)
-                
Output:["_col0","_col1","_col2","_col3","_col4","_col5"],aggregations:["count(VALUE._col0)","count(VALUE._col1)","count(VALUE._col2)"],keys:KEY._col0,
 KEY._col1, KEY._col2
-              <-Map 8 [SIMPLE_EDGE]
-                SHUFFLE [RS_47]
-                  PartitionCols:_col0, _col1, _col2
-                  Group By Operator [GBY_46] (rows=1100 width=10)
-                    
Output:["_col0","_col1","_col2","_col3","_col4","_col5"],aggregations:["count(_col1)","count(_col9)","count(_col15)"],keys:_col0,
 _col8, _col14
-                    Select Operator [SEL_45] (rows=1100 width=10)
-                      
Output:["_col0","_col8","_col14","_col1","_col9","_col15"]
-                      Map Join Operator [MAPJOIN_103] (rows=1100 width=10)
-                        
Conds:RS_42._col3=SEL_23._col1(Inner),HybridGraceHashJoin:true,Output:["_col0","_col1","_col8","_col9","_col14","_col15"]
-                      <-Map 4 [BROADCAST_EDGE]
-                        BROADCAST [RS_42]
-                          PartitionCols:_col3
-                          Map Join Operator [MAPJOIN_102] (rows=365 width=10)
-                            
Conds:MAPJOIN_101._col1=RS_40._col1(Inner),HybridGraceHashJoin:true,Output:["_col0","_col1","_col3","_col8","_col9","_col14","_col15"]
-                          <-Map 7 [BROADCAST_EDGE]
-                            BROADCAST [RS_40]
-                              PartitionCols:_col1
-                              Select Operator [SEL_20] (rows=12 width=7)
-                                Output:["_col1"]
-                                Filter Operator [FIL_95] (rows=12 width=7)
-                                  predicate:((key = 'src1key') and value is 
not null)
-                                  TableScan [TS_18] (rows=25 width=7)
-                                    
default@src1,src1,Tbl:COMPLETE,Col:NONE,Output:["key","value"]
-                          <-Map Join Operator [MAPJOIN_101] (rows=332 width=10)
-                              
Conds:MAPJOIN_100._col12=RS_37._col0(Inner),HybridGraceHashJoin:true,Output:["_col0","_col1","_col3","_col8","_col9","_col14","_col15"]
-                            <-Map 6 [BROADCAST_EDGE]
-                              BROADCAST [RS_37]
-                                PartitionCols:_col0
-                                Select Operator [SEL_17] (rows=250 width=10)
-                                  Output:["_col0"]
-                                  Filter Operator [FIL_94] (rows=250 width=10)
-                                    predicate:((value) IN ('2000Q1', '2000Q2', 
'2000Q3') and key is not null)
-                                    TableScan [TS_15] (rows=500 width=10)
-                                      
default@src,d3,Tbl:COMPLETE,Col:NONE,Output:["key","value"]
-                            <-Map Join Operator [MAPJOIN_100] (rows=302 
width=10)
-                                
Conds:MAPJOIN_99._col6=RS_34._col0(Inner),HybridGraceHashJoin:true,Output:["_col0","_col1","_col3","_col8","_col9","_col12","_col14","_col15"]
-                              <-Map 5 [BROADCAST_EDGE]
-                                BROADCAST [RS_34]
-                                  PartitionCols:_col0
-                                  Select Operator [SEL_14] (rows=250 width=10)
-                                    Output:["_col0"]
-                                    Filter Operator [FIL_93] (rows=250 
width=10)
-                                      predicate:((value) IN ('2000Q1', 
'2000Q2', '2000Q3') and key is not null)
-                                      TableScan [TS_12] (rows=500 width=10)
-                                        
default@src,d2,Tbl:COMPLETE,Col:NONE,Output:["key","value"]
-                              <-Map Join Operator [MAPJOIN_99] (rows=275 
width=10)
-                                  
Conds:RS_30._col0=SEL_11._col0(Inner),HybridGraceHashJoin:true,Output:["_col0","_col1","_col3","_col6","_col8","_col9","_col12","_col14","_col15"]
-                                <-Map 3 [BROADCAST_EDGE]
-                                  BROADCAST [RS_30]
-                                    PartitionCols:_col0
-                                    Map Join Operator [MAPJOIN_98] (rows=187 
width=34)
-                                      Conds:RS_27._col9, _col11=SEL_8._col1, 
_col3(Inner),HybridGraceHashJoin:true,Output:["_col0","_col1","_col3","_col6","_col8","_col9","_col12","_col14","_col15"]
-                                    <-Map 1 [BROADCAST_EDGE]
-                                      BROADCAST [RS_27]
-                                        PartitionCols:_col9, _col11
-                                        Map Join Operator [MAPJOIN_97] 
(rows=46 width=34)
-                                          Conds:SEL_2._col2, 
_col4=RS_25._col2, 
_col4(Inner),HybridGraceHashJoin:true,Output:["_col0","_col1","_col3","_col6","_col8","_col9","_col11"]
-                                        <-Map 2 [BROADCAST_EDGE]
-                                          BROADCAST [RS_25]
-                                            PartitionCols:_col2, _col4
-                                            Select Operator [SEL_5] (rows=42 
width=34)
-                                              
Output:["_col0","_col2","_col3","_col4","_col5"]
-                                              Filter Operator [FIL_90] 
(rows=42 width=34)
-                                                predicate:((v1 = 'srv1') and 
k2 is not null and k3 is not null and v2 is not null and v3 is not null and k1 
is not null)
-                                                TableScan [TS_3] (rows=85 
width=34)
-                                                  
default@sr,sr,Tbl:COMPLETE,Col:NONE,Output:["k1","v1","k2","v2","k3","v3"]
-                                        <-Select Operator [SEL_2] (rows=42 
width=34)
-                                            
Output:["_col0","_col1","_col2","_col3","_col4"]
-                                            Filter Operator [FIL_89] (rows=42 
width=34)
-                                              predicate:((v3 = 'ssv3') and k2 
is not null and k3 is not null and k1 is not null and v1 is not null and v2 is 
not null)
-                                              TableScan [TS_0] (rows=85 
width=34)
-                                                
default@ss,ss,Tbl:COMPLETE,Col:NONE,Output:["k1","v1","k2","v2","k3","v3"]
-                                    <-Select Operator [SEL_8] (rows=170 
width=34)
-                                        
Output:["_col0","_col1","_col2","_col3"]
-                                        Filter Operator [FIL_91] (rows=170 
width=34)
-                                          predicate:(v2 is not null and v3 is 
not null and k1 is not null)
-                                          TableScan [TS_6] (rows=170 width=34)
-                                            
default@cs,cs,Tbl:COMPLETE,Col:NONE,Output:["k1","v2","k3","v3"]
-                                <-Select Operator [SEL_11] (rows=250 width=10)
-                                    Output:["_col0"]
-                                    Filter Operator [FIL_92] (rows=250 
width=10)
-                                      predicate:((value = 'd1value') and key 
is not null)
-                                      TableScan [TS_9] (rows=500 width=10)
-                                        
default@src,d1,Tbl:COMPLETE,Col:NONE,Output:["key","value"]
-                      <-Select Operator [SEL_23] (rows=1000 width=10)
-                          Output:["_col1"]
-                          Filter Operator [FIL_96] (rows=1000 width=10)
-                            predicate:((key = 'srcpartkey') and value is not 
null)
-                            TableScan [TS_21] (rows=2000 width=10)
-                              
default@srcpart,srcpart,Tbl:COMPLETE,Col:NONE,Output:["key","value"]
-
-PREHOOK: query: explain
-SELECT x.key, z.value, y.value
-FROM src1 x JOIN src y ON (x.key = y.key) 
-JOIN (select * from src1 union select * from src)z ON (x.value = z.value)
-union
-SELECT x.key, z.value, y.value
-FROM src1 x JOIN src y ON (x.key = y.key) 
-JOIN (select * from src1 union select * from src)z ON (x.value = z.value)
-PREHOOK: type: QUERY
-POSTHOOK: query: explain
-SELECT x.key, z.value, y.value
-FROM src1 x JOIN src y ON (x.key = y.key) 
-JOIN (select * from src1 union select * from src)z ON (x.value = z.value)
-union
-SELECT x.key, z.value, y.value
-FROM src1 x JOIN src y ON (x.key = y.key) 
-JOIN (select * from src1 union select * from src)z ON (x.value = z.value)
-POSTHOOK: type: QUERY
-Plan optimized by CBO.
-
-Vertex dependency in root stage
-Map 1 <- Union 2 (CONTAINS)
-Map 12 <- Union 10 (CONTAINS)
-Map 6 <- Union 2 (CONTAINS)
-Map 9 <- Union 10 (CONTAINS)
-Reducer 11 <- Map 13 (BROADCAST_EDGE), Map 14 (BROADCAST_EDGE), Union 10 
(SIMPLE_EDGE), Union 4 (CONTAINS)
-Reducer 3 <- Map 7 (BROADCAST_EDGE), Map 8 (BROADCAST_EDGE), Union 2 
(SIMPLE_EDGE), Union 4 (CONTAINS)
-Reducer 5 <- Union 4 (SIMPLE_EDGE)
-
-Stage-0
-  Fetch Operator
-    limit:-1
-    Stage-1
-      Reducer 5
-      File Output Operator [FS_59]
-        Group By Operator [GBY_57] (rows=550 width=10)
-          Output:["_col0","_col1"],keys:KEY._col0, KEY._col1
-        <-Union 4 [SIMPLE_EDGE]
-          <-Reducer 11 [CONTAINS]
-            Reduce Output Operator [RS_56]
-              PartitionCols:_col0, _col1
-              Group By Operator [GBY_55] (rows=1100 width=10)
-                Output:["_col0","_col1"],keys:_col0, _col1
-                Select Operator [SEL_51] (rows=550 width=10)
-                  Output:["_col0","_col1"]
-                  Map Join Operator [MAPJOIN_85] (rows=550 width=10)
-                    
Conds:MAPJOIN_84._col2=RS_49._col0(Inner),HybridGraceHashJoin:true,Output:["_col1","_col2"]
-                  <-Map 14 [BROADCAST_EDGE]
-                    BROADCAST [RS_49]
-                      PartitionCols:_col0
-                      Select Operator [SEL_44] (rows=500 width=10)
-                        Output:["_col0"]
-                        Filter Operator [FIL_81] (rows=500 width=10)
-                          predicate:key is not null
-                          TableScan [TS_42] (rows=500 width=10)
-                            default@src,y,Tbl:COMPLETE,Col:NONE,Output:["key"]
-                  <-Map Join Operator [MAPJOIN_84] (rows=288 width=10)
-                      
Conds:SEL_38._col1=RS_46._col1(Inner),HybridGraceHashJoin:true,Output:["_col1","_col2"]
-                    <-Map 13 [BROADCAST_EDGE]
-                      BROADCAST [RS_46]
-                        PartitionCols:_col1
-                        Select Operator [SEL_41] (rows=25 width=7)
-                          Output:["_col0","_col1"]
-                          Filter Operator [FIL_80] (rows=25 width=7)
-                            predicate:(key is not null and value is not null)
-                            TableScan [TS_39] (rows=25 width=7)
-                              
default@src1,x,Tbl:COMPLETE,Col:NONE,Output:["key","value"]
-                    <-Select Operator [SEL_38] (rows=262 width=10)
-                        Output:["_col1"]
-                        Group By Operator [GBY_37] (rows=262 width=10)
-                          Output:["_col0","_col1"],keys:KEY._col0, KEY._col1
-                        <-Union 10 [SIMPLE_EDGE]
-                          <-Map 12 [CONTAINS]
-                            Reduce Output Operator [RS_36]
-                              PartitionCols:_col0, _col1
-                              Group By Operator [GBY_35] (rows=525 width=10)
-                                Output:["_col0","_col1"],keys:_col1, _col0
-                                Select Operator [SEL_31] (rows=500 width=10)
-                                  Output:["_col0","_col1"]
-                                  Filter Operator [FIL_79] (rows=500 width=10)
-                                    predicate:value is not null
-                                    TableScan [TS_29] (rows=500 width=10)
-                                      Output:["key","value"]
-                          <-Map 9 [CONTAINS]
-                            Reduce Output Operator [RS_36]
-                              PartitionCols:_col0, _col1
-                              Group By Operator [GBY_35] (rows=525 width=10)
-                                Output:["_col0","_col1"],keys:_col1, _col0
-                                Select Operator [SEL_28] (rows=25 width=7)
-                                  Output:["_col0","_col1"]
-                                  Filter Operator [FIL_78] (rows=25 width=7)
-                                    predicate:value is not null
-                                    TableScan [TS_26] (rows=25 width=7)
-                                      Output:["key","value"]
-          <-Reducer 3 [CONTAINS]
-            Reduce Output Operator [RS_56]
-              PartitionCols:_col0, _col1
-              Group By Operator [GBY_55] (rows=1100 width=10)
-                Output:["_col0","_col1"],keys:_col0, _col1
-                Select Operator [SEL_25] (rows=550 width=10)
-                  Output:["_col0","_col1"]
-                  Map Join Operator [MAPJOIN_83] (rows=550 width=10)
-                    
Conds:MAPJOIN_82._col2=RS_23._col0(Inner),HybridGraceHashJoin:true,Output:["_col1","_col2"]
-                  <-Map 8 [BROADCAST_EDGE]
-                    BROADCAST [RS_23]
-                      PartitionCols:_col0
-                      Select Operator [SEL_18] (rows=500 width=10)
-                        Output:["_col0"]
-                        Filter Operator [FIL_77] (rows=500 width=10)
-                          predicate:key is not null
-                          TableScan [TS_16] (rows=500 width=10)
-                            default@src,y,Tbl:COMPLETE,Col:NONE,Output:["key"]
-                  <-Map Join Operator [MAPJOIN_82] (rows=288 width=10)
-                      
Conds:SEL_12._col1=RS_20._col1(Inner),HybridGraceHashJoin:true,Output:["_col1","_col2"]
-                    <-Map 7 [BROADCAST_EDGE]
-                      BROADCAST [RS_20]
-                        PartitionCols:_col1
-                        Select Operator [SEL_15] (rows=25 width=7)
-                          Output:["_col0","_col1"]
-                          Filter Operator [FIL_76] (rows=25 width=7)
-                            predicate:(key is not null and value is not null)
-                            TableScan [TS_13] (rows=25 width=7)
-                              
default@src1,x,Tbl:COMPLETE,Col:NONE,Output:["key","value"]
-                    <-Select Operator [SEL_12] (rows=262 width=10)
-                        Output:["_col1"]
-                        Group By Operator [GBY_11] (rows=262 width=10)
-                          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=525 width=10)
-                                Output:["_col0","_col1"],keys:_col1, _col0
-                                Select Operator [SEL_2] (rows=25 width=7)
-                                  Output:["_col0","_col1"]
-                                  Filter Operator [FIL_74] (rows=25 width=7)
-                                    predicate:value is not null
-                                    TableScan [TS_0] (rows=25 width=7)
-                                      Output:["key","value"]
-                          <-Map 6 [CONTAINS]
-                            Reduce Output Operator [RS_10]
-                              PartitionCols:_col0, _col1
-                              Group By Operator [GBY_9] (rows=525 width=10)
-                                Output:["_col0","_col1"],keys:_col1, _col0
-                                Select Operator [SEL_5] (rows=500 width=10)
-                                  Output:["_col0","_col1"]
-                                  Filter Operator [FIL_75] (rows=500 width=10)
-                                    predicate:value is not null
-                                    TableScan [TS_3] (rows=500 width=10)
-                                      Output:["key","value"]
-
-PREHOOK: query: explain
-SELECT x.key, y.value
-FROM src1 x JOIN src y ON (x.key = y.key) 
-JOIN (select * from src1 union select * from src)z ON (x.value = z.value)
-union
-SELECT x.key, y.value
-FROM src1 x JOIN src y ON (x.key = y.key) 
-JOIN (select key, value from src1 union select key, value from src union 
select key, value from src)z ON (x.value = z.value)
-union
-SELECT x.key, y.value
-FROM src1 x JOIN src y ON (x.key = y.key) 
-JOIN (select key, value from src1 union select key, value from src union 
select key, value from src union select key, value from src)z ON (x.value = 
z.value)
-PREHOOK: type: QUERY
-POSTHOOK: query: explain
-SELECT x.key, y.value
-FROM src1 x JOIN src y ON (x.key = y.key) 
-JOIN (select * from src1 union select * from src)z ON (x.value = z.value)
-union
-SELECT x.key, y.value
-FROM src1 x JOIN src y ON (x.key = y.key) 
-JOIN (select key, value from src1 union select key, value from src union 
select key, value from src)z ON (x.value = z.value)
-union
-SELECT x.key, y.value
-FROM src1 x JOIN src y ON (x.key = y.key) 
-JOIN (select key, value from src1 union select key, value from src union 
select key, value from src union select key, value from src)z ON (x.value = 
z.value)
-POSTHOOK: type: QUERY
-Plan optimized by CBO.
-
-Vertex dependency in root stage
-Map 1 <- Union 2 (CONTAINS)
-Map 11 <- Union 12 (CONTAINS)
-Map 16 <- Union 12 (CONTAINS)
-Map 17 <- Union 14 (CONTAINS)
-Map 20 <- Union 21 (CONTAINS)
-Map 27 <- Union 21 (CONTAINS)
-Map 28 <- Union 23 (CONTAINS)
-Map 29 <- Union 25 (CONTAINS)
-Map 8 <- Union 2 (CONTAINS)
-Reducer 13 <- Union 12 (SIMPLE_EDGE), Union 14 (CONTAINS)
-Reducer 15 <- Map 18 (BROADCAST_EDGE), Map 19 (BROADCAST_EDGE), Union 14 
(SIMPLE_EDGE), Union 4 (CONTAINS)
-Reducer 22 <- Union 21 (SIMPLE_EDGE), Union 23 (CONTAINS)
-Reducer 24 <- Union 23 (SIMPLE_EDGE), Union 25 (CONTAINS)
-Reducer 26 <- Map 30 (BROADCAST_EDGE), Map 31 (BROADCAST_EDGE), Union 25 
(SIMPLE_EDGE), Union 6 (CONTAINS)
-Reducer 3 <- Map 10 (BROADCAST_EDGE), Map 9 (BROADCAST_EDGE), Union 2 
(SIMPLE_EDGE), Union 4 (CONTAINS)
-Reducer 5 <- Union 4 (SIMPLE_EDGE), Union 6 (CONTAINS)
-Reducer 7 <- Union 6 (SIMPLE_EDGE)
-
-Stage-0
-  Fetch Operator
-    limit:-1
-    Stage-1
-      Reducer 7
-      File Output Operator [FS_122]
-        Group By Operator [GBY_120] (rows=550 width=10)
-          Output:["_col0","_col1"],keys:KEY._col0, KEY._col1
-        <-Union 6 [SIMPLE_EDGE]
-          <-Reducer 26 [CONTAINS]
-            Reduce Output Operator [RS_119]
-              PartitionCols:_col0, _col1
-              Group By Operator [GBY_118] (rows=1100 width=10)
-                Output:["_col0","_col1"],keys:_col0, _col1
-                Select Operator [SEL_114] (rows=550 width=10)
-                  Output:["_col0","_col1"]
-                  Map Join Operator [MAPJOIN_170] (rows=550 width=10)
-                    
Conds:MAPJOIN_169._col2=RS_112._col0(Inner),HybridGraceHashJoin:true,Output:["_col2","_col5"]
-                  <-Map 31 [BROADCAST_EDGE]
-                    BROADCAST [RS_112]
-                      PartitionCols:_col0
-                      Select Operator [SEL_107] (rows=500 width=10)
-                        Output:["_col0","_col1"]
-                        Filter Operator [FIL_164] (rows=500 width=10)
-                          predicate:key is not null
-                          TableScan [TS_105] (rows=500 width=10)
-                            
default@src,y,Tbl:COMPLETE,Col:NONE,Output:["key","value"]
-                  <-Map Join Operator [MAPJOIN_169] (rows=484 width=10)
-                      
Conds:SEL_101._col1=RS_109._col1(Inner),HybridGraceHashJoin:true,Output:["_col2"]
-                    <-Map 30 [BROADCAST_EDGE]
-                      BROADCAST [RS_109]
-                        PartitionCols:_col1
-                        Select Operator [SEL_104] (rows=25 width=7)
-                          Output:["_col0","_col1"]
-                          Filter Operator [FIL_163] (rows=25 width=7)
-                            predicate:(key is not null and value is not null)
-                            TableScan [TS_102] (rows=25 width=7)
-                              
default@src1,x,Tbl:COMPLETE,Col:NONE,Output:["key","value"]
-                    <-Select Operator [SEL_101] (rows=440 width=10)
-                        Output:["_col1"]
-                        Group By Operator [GBY_100] (rows=440 width=10)
-                          Output:["_col0","_col1"],keys:KEY._col0, KEY._col1
-                        <-Union 25 [SIMPLE_EDGE]
-                          <-Map 29 [CONTAINS]
-                            Reduce Output Operator [RS_99]
-                              PartitionCols:_col0, _col1
-                              Group By Operator [GBY_98] (rows=881 width=10)
-                                Output:["_col0","_col1"],keys:_col1, _col0
-                                Select Operator [SEL_94] (rows=500 width=10)
-                                  Output:["_col0","_col1"]
-                                  Filter Operator [FIL_162] (rows=500 width=10)
-                                    predicate:value is not null
-                                    TableScan [TS_92] (rows=500 width=10)
-                                      Output:["key","value"]
-                          <-Reducer 24 [CONTAINS]
-                            Reduce Output Operator [RS_99]
-                              PartitionCols:_col0, _col1
-                              Group By Operator [GBY_98] (rows=881 width=10)
-                                Output:["_col0","_col1"],keys:_col1, _col0
-                                Select Operator [SEL_91] (rows=381 width=10)
-                                  Output:["_col0","_col1"]
-                                  Group By Operator [GBY_90] (rows=381 
width=10)
-                                    Output:["_col0","_col1"],keys:KEY._col0, 
KEY._col1
-                                  <-Union 23 [SIMPLE_EDGE]
-                                    <-Map 28 [CONTAINS]
-                                      Reduce Output Operator [RS_89]
-                                        PartitionCols:_col0, _col1
-                                        Group By Operator [GBY_88] (rows=762 
width=10)
-                                          Output:["_col0","_col1"],keys:_col1, 
_col0
-                                          Select Operator [SEL_84] (rows=500 
width=10)
-                                            Output:["_col0","_col1"]
-                                            Filter Operator [FIL_161] 
(rows=500 width=10)
-                                              predicate:value is not null
-                                              TableScan [TS_82] (rows=500 
width=10)
-                                                Output:["key","value"]
-                                    <-Reducer 22 [CONTAINS]
-                                      Reduce Output Operator [RS_89]
-                                        PartitionCols:_col0, _col1
-                                        Group By Operator [GBY_88] (rows=762 
width=10)
-                                          Output:["_col0","_col1"],keys:_col1, 
_col0
-                                          Select Operator [SEL_81] (rows=262 
width=10)
-                                            Output:["_col0","_col1"]
-                                            Group By Operator [GBY_80] 
(rows=262 width=10)
-                                              
Output:["_col0","_col1"],keys:KEY._col0, KEY._col1
-                                            <-Union 21 [SIMPLE_EDGE]
-                                              <-Map 20 [CONTAINS]
-                                                Reduce Output Operator [RS_79]
-                                                  PartitionCols:_col0, _col1
-                                                  Group By Operator [GBY_78] 
(rows=525 width=10)
-                                                    
Output:["_col0","_col1"],keys:_col1, _col0
-                                                    Select Operator [SEL_71] 
(rows=25 width=7)
-                                                      Output:["_col0","_col1"]
-                                                      Filter Operator 
[FIL_159] (rows=25 width=7)
-                                                        predicate:value is not 
null
-                                                        TableScan [TS_69] 
(rows=25 width=7)
-                                                          
Output:["key","value"]
-                                              <-Map 27 [CONTAINS]
-                                                Reduce Output Operator [RS_79]
-                                                  PartitionCols:_col0, _col1
-                                                  Group By Operator [GBY_78] 
(rows=525 width=10)
-                                                    
Output:["_col0","_col1"],keys:_col1, _col0
-                                                    Select Operator [SEL_74] 
(rows=500 width=10)
-                                                      Output:["_col0","_col1"]
-                                                      Filter Operator 
[FIL_160] (rows=500 width=10)
-                                                        predicate:value is not 
null
-                                                        TableScan [TS_72] 
(rows=500 width=10)
-                                                          
Output:["key","value"]
-          <-Reducer 5 [CONTAINS]
-            Reduce Output Operator [RS_119]
-              PartitionCols:_col0, _col1
-              Group By Operator [GBY_118] (rows=1100 width=10)
-                Output:["_col0","_col1"],keys:_col0, _col1
-                Group By Operator [GBY_67] (rows=550 width=10)
-                  Output:["_col0","_col1"],keys:KEY._col0, KEY._col1
-                <-Union 4 [SIMPLE_EDGE]
-                  <-Reducer 15 [CONTAINS]
-                    Reduce Output Operator [RS_66]
-                      PartitionCols:_col0, _col1
-                      Group By Operator [GBY_65] (rows=1100 width=10)
-                        Output:["_col0","_col1"],keys:_col0, _col1
-                        Select Operator [SEL_61] (rows=550 width=10)
-                          Output:["_col0","_col1"]
-                          Map Join Operator [MAPJOIN_168] (rows=550 width=10)
-                            
Conds:MAPJOIN_167._col2=RS_59._col0(Inner),HybridGraceHashJoin:true,Output:["_col2","_col5"]
-                          <-Map 19 [BROADCAST_EDGE]
-                            BROADCAST [RS_59]
-                              PartitionCols:_col0
-                              Select Operator [SEL_54] (rows=500 width=10)
-                                Output:["_col0","_col1"]
-                                Filter Operator [FIL_158] (rows=500 width=10)
-                                  predicate:key is not null
-                                  TableScan [TS_52] (rows=500 width=10)
-                                    
default@src,y,Tbl:COMPLETE,Col:NONE,Output:["key","value"]
-                          <-Map Join Operator [MAPJOIN_167] (rows=419 width=10)
-                              
Conds:SEL_48._col1=RS_56._col1(Inner),HybridGraceHashJoin:true,Output:["_col2"]
-                            <-Map 18 [BROADCAST_EDGE]
-                              BROADCAST [RS_56]
-                                PartitionCols:_col1
-                                Select Operator [SEL_51] (rows=25 width=7)
-                                  Output:["_col0","_col1"]
-                                  Filter Operator [FIL_157] (rows=25 width=7)
-                                    predicate:(key is not null and value is 
not null)
-                                    TableScan [TS_49] (rows=25 width=7)
-                                      
default@src1,x,Tbl:COMPLETE,Col:NONE,Output:["key","value"]
-                            <-Select Operator [SEL_48] (rows=381 width=10)
-                                Output:["_col1"]
-                                Group By Operator [GBY_47] (rows=381 width=10)
-                                  Output:["_col0","_col1"],keys:KEY._col0, 
KEY._col1
-                                <-Union 14 [SIMPLE_EDGE]
-                                  <-Map 17 [CONTAINS]
-                                    Reduce Output Operator [RS_46]
-                                      PartitionCols:_col0, _col1
-                                      Group By Operator [GBY_45] (rows=762 
width=10)
-                                        Output:["_col0","_col1"],keys:_col1, 
_col0
-                                        Select Operator [SEL_41] (rows=500 
width=10)
-                                          Output:["_col0","_col1"]
-                                          Filter Operator [FIL_156] (rows=500 
width=10)
-                                            predicate:value is not null
-                                            TableScan [TS_39] (rows=500 
width=10)
-                                              Output:["key","value"]
-                                  <-Reducer 13 [CONTAINS]
-                                    Reduce Output Operator [RS_46]
-                                      PartitionCols:_col0, _col1
-                                      Group By Operator [GBY_45] (rows=762 
width=10)
-                                        Output:["_col0","_col1"],keys:_col1, 
_col0
-                                        Select Operator [SEL_38] (rows=262 
width=10)
-                                          Output:["_col0","_col1"]
-                                          Group By Operator [GBY_37] (rows=262 
width=10)
-                                            
Output:["_col0","_col1"],keys:KEY._col0, KEY._col1
-                                          <-Union 12 [SIMPLE_EDGE]
-                                            <-Map 11 [CONTAINS]
-                                              Reduce Output Operator [RS_36]
-                                                PartitionCols:_col0, _col1
-                                                Group By Operator [GBY_35] 
(rows=525 width=10)
-                                                  
Output:["_col0","_col1"],keys:_col1, _col0
-                                                  Select Operator [SEL_28] 
(rows=25 width=7)
-                                                    Output:["_col0","_col1"]
-                                                    Filter Operator [FIL_154] 
(rows=25 width=7)
-                                                      predicate:value is not 
null
-                                                      TableScan [TS_26] 
(rows=25 width=7)
-                                                        Output:["key","value"]
-                                            <-Map 16 [CONTAINS]
-                                              Reduce Output Operator [RS_36]
-                                                PartitionCols:_col0, _col1
-                                                Group By Operator [GBY_35] 
(rows=525 width=10)
-                                                  
Output:["_col0","_col1"],keys:_col1, _col0
-                                   

<TRUNCATED>

Reply via email to