You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by se...@apache.org on 2016/08/30 22:21:18 UTC
[11/17] hive git commit: HIVE-14362: Support explain analyze in Hive
(Pengcheng Xiong, reviewed by Ashutosh Chauhan, Gopal V and Gabor Szadovszky)
http://git-wip-us.apache.org/repos/asf/hive/blob/20824f27/ql/src/test/results/clientpositive/tez/explainanalyze_2.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/tez/explainanalyze_2.q.out b/ql/src/test/results/clientpositive/tez/explainanalyze_2.q.out
new file mode 100644
index 0000000..37fc7d3
--- /dev/null
+++ b/ql/src/test/results/clientpositive/tez/explainanalyze_2.q.out
@@ -0,0 +1,4827 @@
+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: 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
+PREHOOK: Input: default@src
+PREHOOK: Input: default@src1
+PREHOOK: Input: default@srcpart
+PREHOOK: Input: default@srcpart@ds=2008-04-08/hr=11
+#### A masked pattern was here ####
+POSTHOOK: query: 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
+POSTHOOK: Input: default@src
+POSTHOOK: Input: default@src1
+POSTHOOK: Input: default@srcpart
+POSTHOOK: Input: default@srcpart@ds=2008-04-08/hr=11
+#### A masked pattern was here ####
+PREHOOK: query: explain analyze
+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 analyze
+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/85 width=268)
+ Output:["_col0","_col1","_col2"]
+ Merge Join Operator [MERGEJOIN_26] (rows=141/85 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/500 width=178)
+ Output:["_col0","_col1"]
+ Filter Operator [FIL_24] (rows=500/500 width=178)
+ predicate:key is not null
+ TableScan [TS_6] (rows=500/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/41 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/500 width=369)
+ Output:["_col0"]
+ Filter Operator [FIL_22] (rows=500/500 width=91)
+ predicate:value is not null
+ TableScan [TS_0] (rows=500/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/25 width=175)
+ Output:["_col0","_col1"]
+ Filter Operator [FIL_23] (rows=25/25 width=175)
+ predicate:(key is not null and value is not null)
+ TableScan [TS_3] (rows=25/25 width=175)
+ default@src1,x,Tbl:COMPLETE,Col:COMPLETE,Output:["key","value"]
+
+PREHOOK: query: 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
+PREHOOK: Input: default@cs
+PREHOOK: Input: default@sr
+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: Input: default@srcpart@ds=2008-04-09/hr=11
+PREHOOK: Input: default@srcpart@ds=2008-04-09/hr=12
+PREHOOK: Input: default@ss
+#### A masked pattern was here ####
+POSTHOOK: query: 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
+POSTHOOK: Input: default@cs
+POSTHOOK: Input: default@sr
+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: Input: default@srcpart@ds=2008-04-09/hr=11
+POSTHOOK: Input: default@srcpart@ds=2008-04-09/hr=12
+POSTHOOK: Input: default@ss
+#### A masked pattern was here ####
+PREHOOK: query: explain analyze
+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 analyze
+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 <- Map 14 (SIMPLE_EDGE), Reducer 9 (SIMPLE_EDGE)
+Reducer 11 <- Reducer 10 (SIMPLE_EDGE), Reducer 16 (SIMPLE_EDGE)
+Reducer 16 <- Map 15 (SIMPLE_EDGE), Map 17 (SIMPLE_EDGE)
+Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 6 (SIMPLE_EDGE)
+Reducer 3 <- Reducer 11 (SIMPLE_EDGE), Reducer 2 (SIMPLE_EDGE)
+Reducer 4 <- Reducer 3 (SIMPLE_EDGE)
+Reducer 5 <- Reducer 4 (SIMPLE_EDGE)
+Reducer 8 <- Map 12 (SIMPLE_EDGE), Map 7 (SIMPLE_EDGE)
+Reducer 9 <- Map 13 (SIMPLE_EDGE), Reducer 8 (SIMPLE_EDGE)
+
+Stage-0
+ Fetch Operator
+ limit:100
+ Stage-1
+ Reducer 5
+ File Output Operator [FS_55]
+ Limit [LIM_54] (rows=24/0 width=285)
+ Number of rows:100
+ Select Operator [SEL_53] (rows=24/0 width=285)
+ Output:["_col0","_col1","_col2","_col3","_col4","_col5"]
+ <-Reducer 4 [SIMPLE_EDGE]
+ SHUFFLE [RS_52]
+ Group By Operator [GBY_50] (rows=24/0 width=285)
+ 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 3 [SIMPLE_EDGE]
+ SHUFFLE [RS_49]
+ PartitionCols:_col0, _col1, _col2
+ Group By Operator [GBY_48] (rows=24/0 width=285)
+ Output:["_col0","_col1","_col2","_col3","_col4","_col5"],aggregations:["count(_col13)","count(_col21)","count(_col3)"],keys:_col12, _col20, _col2
+ Select Operator [SEL_47] (rows=650/0 width=534)
+ Output:["_col12","_col20","_col2","_col13","_col21","_col3"]
+ Merge Join Operator [MERGEJOIN_97] (rows=650/0 width=534)
+ Conds:RS_44._col1, _col3=RS_45._col15, _col17(Inner),Output:["_col2","_col3","_col12","_col13","_col20","_col21"]
+ <-Reducer 11 [SIMPLE_EDGE]
+ SHUFFLE [RS_45]
+ PartitionCols:_col15, _col17
+ Select Operator [SEL_40] (rows=190/0 width=447)
+ Output:["_col14","_col15","_col17","_col6","_col7"]
+ Merge Join Operator [MERGEJOIN_96] (rows=190/0 width=447)
+ Conds:RS_37._col6, _col4=RS_38._col4, _col2(Inner),Output:["_col2","_col3","_col14","_col15","_col17"]
+ <-Reducer 10 [SIMPLE_EDGE]
+ SHUFFLE [RS_37]
+ PartitionCols:_col6, _col4
+ Merge Join Operator [MERGEJOIN_94] (rows=40/0 width=352)
+ Conds:RS_34._col3=RS_35._col1(Inner),Output:["_col2","_col3","_col4","_col6"]
+ <-Map 14 [SIMPLE_EDGE]
+ SHUFFLE [RS_35]
+ PartitionCols:_col1
+ Select Operator [SEL_17] (rows=2/0 width=180)
+ Output:["_col1"]
+ Filter Operator [FIL_88] (rows=2/0 width=175)
+ predicate:((key = 'src1key') and value is not null)
+ TableScan [TS_15] (rows=25/25 width=175)
+ default@src1,src1,Tbl:COMPLETE,Col:COMPLETE,Output:["key","value"]
+ <-Reducer 9 [SIMPLE_EDGE]
+ SHUFFLE [RS_34]
+ PartitionCols:_col3
+ Merge Join Operator [MERGEJOIN_93] (rows=40/0 width=352)
+ Conds:RS_31._col2=RS_32._col0(Inner),Output:["_col2","_col3","_col4","_col6"]
+ <-Map 13 [SIMPLE_EDGE]
+ SHUFFLE [RS_32]
+ PartitionCols:_col0
+ Select Operator [SEL_14] (rows=2/0 width=178)
+ Output:["_col0"]
+ Filter Operator [FIL_87] (rows=2/0 width=178)
+ predicate:((value = 'd1value') and key is not null)
+ TableScan [TS_12] (rows=500/500 width=178)
+ default@src,d1,Tbl:COMPLETE,Col:COMPLETE,Output:["key","value"]
+ <-Reducer 8 [SIMPLE_EDGE]
+ SHUFFLE [RS_31]
+ PartitionCols:_col2
+ Merge Join Operator [MERGEJOIN_92] (rows=40/0 width=352)
+ Conds:RS_28._col1=RS_29._col3(Inner),Output:["_col2","_col3","_col4","_col6"]
+ <-Map 12 [SIMPLE_EDGE]
+ SHUFFLE [RS_29]
+ PartitionCols:_col3
+ Select Operator [SEL_11] (rows=8/0 width=531)
+ Output:["_col0","_col1","_col2","_col3","_col4"]
+ Filter Operator [FIL_86] (rows=8/0 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_9] (rows=85/85 width=534)
+ default@ss,ss,Tbl:COMPLETE,Col:COMPLETE,Output:["k1","v1","k2","v2","k3","v3"]
+ <-Map 7 [SIMPLE_EDGE]
+ SHUFFLE [RS_28]
+ PartitionCols:_col1
+ Select Operator [SEL_8] (rows=10/0 width=185)
+ Output:["_col1"]
+ Filter Operator [FIL_85] (rows=10/0 width=178)
+ predicate:((key = 'srcpartkey') and value is not null)
+ TableScan [TS_6] (rows=2000/2000 width=178)
+ default@srcpart,srcpart,Tbl:COMPLETE,Col:COMPLETE,Output:["key","value"]
+ <-Reducer 16 [SIMPLE_EDGE]
+ SHUFFLE [RS_38]
+ PartitionCols:_col4, _col2
+ Merge Join Operator [MERGEJOIN_95] (rows=19/0 width=356)
+ Conds:RS_24._col0=RS_25._col0(Inner),Output:["_col2","_col3","_col4","_col5"]
+ <-Map 15 [SIMPLE_EDGE]
+ SHUFFLE [RS_24]
+ PartitionCols:_col0
+ Select Operator [SEL_20] (rows=8/0 width=531)
+ Output:["_col0","_col2","_col3","_col4","_col5"]
+ Filter Operator [FIL_89] (rows=8/0 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_18] (rows=85/85 width=534)
+ default@sr,sr,Tbl:COMPLETE,Col:COMPLETE,Output:["k1","v1","k2","v2","k3","v3"]
+ <-Map 17 [SIMPLE_EDGE]
+ SHUFFLE [RS_25]
+ PartitionCols:_col0
+ Select Operator [SEL_23] (rows=500/0 width=178)
+ Output:["_col0"]
+ Filter Operator [FIL_90] (rows=500/0 width=178)
+ predicate:((value) IN ('2000Q1', '2000Q2', '2000Q3') and key is not null)
+ TableScan [TS_21] (rows=500/500 width=178)
+ default@src,d2,Tbl:COMPLETE,Col:COMPLETE,Output:["key","value"]
+ <-Reducer 2 [SIMPLE_EDGE]
+ SHUFFLE [RS_44]
+ PartitionCols:_col1, _col3
+ Merge Join Operator [MERGEJOIN_91] (rows=414/0 width=269)
+ Conds:RS_41._col0=RS_42._col0(Inner),Output:["_col1","_col2","_col3"]
+ <-Map 1 [SIMPLE_EDGE]
+ SHUFFLE [RS_41]
+ PartitionCols:_col0
+ Select Operator [SEL_2] (rows=170/170 width=356)
+ Output:["_col0","_col1","_col2","_col3"]
+ Filter Operator [FIL_83] (rows=170/170 width=356)
+ predicate:(v2 is not null and v3 is not null and k1 is not null)
+ TableScan [TS_0] (rows=170/170 width=356)
+ default@cs,cs,Tbl:COMPLETE,Col:COMPLETE,Output:["k1","v2","k3","v3"]
+ <-Map 6 [SIMPLE_EDGE]
+ SHUFFLE [RS_42]
+ PartitionCols:_col0
+ Select Operator [SEL_5] (rows=500/0 width=178)
+ Output:["_col0"]
+ Filter Operator [FIL_84] (rows=500/0 width=178)
+ predicate:((value) IN ('2000Q1', '2000Q2', '2000Q3') and key is not null)
+ TableScan [TS_3] (rows=500/500 width=178)
+ default@src,d3,Tbl:COMPLETE,Col:COMPLETE,Output:["key","value"]
+
+PREHOOK: query: 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
+PREHOOK: Input: default@src
+PREHOOK: Input: default@src1
+#### A masked pattern was here ####
+POSTHOOK: query: 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
+POSTHOOK: Input: default@src
+POSTHOOK: Input: default@src1
+#### A masked pattern was here ####
+PREHOOK: query: explain analyze
+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 analyze
+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/15 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/30 width=177)
+ Output:["_col0","_col1"],keys:_col0, _col1
+ Select Operator [SEL_51] (rows=73/61 width=177)
+ Output:["_col0","_col1"]
+ Merge Join Operator [MERGEJOIN_85] (rows=73/61 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/500 width=87)
+ Output:["_col0"]
+ Filter Operator [FIL_81] (rows=500/500 width=87)
+ predicate:key is not null
+ TableScan [TS_42] (rows=500/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/52 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/25 width=175)
+ Output:["_col0","_col1"]
+ Filter Operator [FIL_80] (rows=25/25 width=175)
+ predicate:(key is not null and value is not null)
+ TableScan [TS_39] (rows=25/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/319 width=178)
+ Output:["_col1"]
+ Group By Operator [GBY_37] (rows=262/319 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/331 width=178)
+ Output:["_col0","_col1"],keys:_col1, _col0
+ Select Operator [SEL_28] (rows=25/25 width=175)
+ Output:["_col0","_col1"]
+ Filter Operator [FIL_78] (rows=25/25 width=175)
+ predicate:value is not null
+ TableScan [TS_26] (rows=25/25 width=175)
+ Output:["key","value"]
+ <-Map 16 [CONTAINS]
+ Reduce Output Operator [RS_36]
+ PartitionCols:_col0, _col1
+ Group By Operator [GBY_35] (rows=262/331 width=178)
+ Output:["_col0","_col1"],keys:_col1, _col0
+ Select Operator [SEL_31] (rows=500/500 width=178)
+ Output:["_col0","_col1"]
+ Filter Operator [FIL_79] (rows=500/500 width=178)
+ predicate:value is not null
+ TableScan [TS_29] (rows=500/500 width=178)
+ Output:["key","value"]
+ <-Reducer 5 [CONTAINS]
+ Reduce Output Operator [RS_56]
+ PartitionCols:_col0, _col1
+ Group By Operator [GBY_55] (rows=28/30 width=177)
+ Output:["_col0","_col1"],keys:_col0, _col1
+ Select Operator [SEL_25] (rows=73/61 width=177)
+ Output:["_col0","_col1"]
+ Merge Join Operator [MERGEJOIN_83] (rows=73/61 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/500 width=87)
+ Output:["_col0"]
+ Filter Operator [FIL_77] (rows=500/500 width=87)
+ predicate:key is not null
+ TableScan [TS_16] (rows=500/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/52 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/25 width=175)
+ Output:["_col0","_col1"]
+ Filter Operator [FIL_76] (rows=25/25 width=175)
+ predicate:(key is not null and value is not null)
+ TableScan [TS_13] (rows=25/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/319 width=178)
+ Output:["_col1"]
+ 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:_col1, _col0
+ Select Operator [SEL_2] (rows=25/25 width=175)
+ Output:["_col0","_col1"]
+ Filter Operator [FIL_74] (rows=25/25 width=175)
+ predicate:value is not null
+ TableScan [TS_0] (rows=25/25 width=175)
+ Output:["key","value"]
+ <-Map 8 [CONTAINS]
+ Reduce Output Operator [RS_10]
+ PartitionCols:_col0, _col1
+ Group By Operator [GBY_9] (rows=262/331 width=178)
+ Output:["_col0","_col1"],keys:_col1, _col0
+ Select Operator [SEL_5] (rows=500/500 width=178)
+ Output:["_col0","_col1"]
+ Filter Operator [FIL_75] (rows=500/500 width=178)
+ predicate:value is not null
+ TableScan [TS_3] (rows=500/500 width=178)
+ Output:["key","value"]
+
+PREHOOK: query: 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
+PREHOOK: Input: default@src
+PREHOOK: Input: default@src1
+#### A masked pattern was here ####
+POSTHOOK: query: 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
+POSTHOOK: Input: default@src
+POSTHOOK: Input: default@src1
+#### A masked pattern was here ####
+PREHOOK: query: explain analyze
+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 analyze
+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/15 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/30 width=177)
+ Output:["_col0","_col1"],keys:_col0, _col1
+ Select Operator [SEL_114] (rows=124/61 width=177)
+ Output:["_col0","_col1"]
+ Merge Join Operator [MERGEJOIN_170] (rows=124/61 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/500 width=178)
+ Output:["_col0","_col1"]
+ Filter Operator [FIL_164] (rows=500/500 width=178)
+ predicate:key is not null
+ TableScan [TS_105] (rows=500/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/52 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/25 width=175)
+ Output:["_col0","_col1"]
+ Filter Operator [FIL_163] (rows=25/25 width=175)
+ predicate:(key is not null and value is not null)
+ TableScan [TS_102] (rows=25/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/319 width=178)
+ Output:["_col1"]
+ Group By Operator [GBY_100] (rows=440/319 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/628 width=178)
+ Output:["_col0","_col1"],keys:_col1, _col0
+ Select Operator [SEL_94] (rows=500/500 width=178)
+ Output:["_col0","_col1"]
+ Filter Operator [FIL_162] (rows=500/500 width=178)
+ predicate:value is not null
+ TableScan [TS_92] (rows=500/500 width=178)
+ Output:["key","value"]
+ <-Reducer 28 [CONTAINS]
+ Reduce Output Operator [RS_99]
+ PartitionCols:_col0, _col1
+ Group By Operator [GBY_98] (rows=440/628 width=178)
+ Output:["_col0","_col1"],keys:_col1, _col0
+ Select Operator [SEL_91] (rows=381/319 width=178)
+ Output:["_col0","_col1"]
+ Group By Operator [GBY_90] (rows=381/319 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/628 width=178)
+ Output:["_col0","_col1"],keys:_col1, _col0
+ Select Operator [SEL_84] (rows=500/500 width=178)
+ Output:["_col0","_col1"]
+ Filter Operator [FIL_161] (rows=500/500 width=178)
+ predicate:value is not null
+ TableScan [TS_82] (rows=500/500 width=178)
+ Output:["key","value"]
+ <-Reducer 26 [CONTAINS]
+ Reduce Output Operator [RS_89]
+ PartitionCols:_col0, _col1
+ Group By Operator [GBY_88] (rows=381/628 width=178)
+ Output:["_col0","_col1"],keys:_col1, _col0
+ Select Operator [SEL_81] (rows=262/319 width=178)
+ Output:["_col0","_col1"]
+ Group By Operator [GBY_80] (rows=262/319 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/331 width=178)
+ Output:["_col0","_col1"],keys:_col1, _col0
+ Select Operator [SEL_71] (rows=25/25 width=175)
+ Output:["_col0","_col1"]
+ Filter Operator [FIL_159] (rows=25/25 width=175)
+ predicate:value is not null
+ TableScan [TS_69] (rows=25/25 width=175)
+ Output:["key","value"]
+ <-Map 33 [CONTAINS]
+ Reduce Output Operator [RS_79]
+ PartitionCols:_col0, _col1
+ Group By Operator [GBY_78] (rows=262/331 width=178)
+ Output:["_col0","_col1"],keys:_col1, _col0
+ Select Operator [SEL_74] (rows=500/500 width=178)
+ Output:["_col0","_col1"]
+ Filter Operator [FIL_160] (rows=500/500 width=178)
+ predicate:value is not null
+ TableScan [TS_72] (rows=500/500 width=178)
+ Output:["key","value"]
+ <-Reducer 7 [CONTAINS]
+ Reduce Output Operator [RS_119]
+ PartitionCols:_col0, _col1
+ Group By Operator [GBY_118] (rows=107/30 width=177)
+ Output:["_col0","_col1"],keys:_col0, _col1
+ Group By Operator [GBY_67] (rows=90/15 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/30 width=177)
+ Output:["_col0","_col1"],keys:_col0, _col1
+ Select Operator [SEL_61] (rows=107/61 width=177)
+ Output:["_col0","_col1"]
+ Merge Join Operator [MERGEJOIN_168] (rows=107/61 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/500 width=178)
+ Output:["_col0","_col1"]
+ Filter Operator [FIL_158] (rows=500/500 width=178)
+ predicate:key is not null
+ TableScan [TS_52] (rows=500/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/52 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/25 width=175)
+ Output:["_col0","_col1"]
+ Filter Operator [FIL_157] (rows=25/25 width=175)
+ predicate:(key is not null and value is not null)
+ TableScan [TS_49] (rows=25/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/319 width=178)
+ Output:["_col1"]
+ Group By Operator [GBY_47] (rows=381/319 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/628 width=178)
+ Output:["_col0","_col1"],keys:_col1, _col0
+ Select Operator [SEL_41] (rows=500/500 width=178)
+ Output:["_col0","_col1"]
+ Filter Operator [FIL_156] (rows=500/500 width=178)
+ predicate:value is not null
+ TableScan [TS_39] (rows=500/500 width=178)
+ Output:["key","value"]
+ <-Reducer 15 [CONTAINS]
+ Reduce Output Operator [RS_46]
+ PartitionCols:_col0, _col1
+ Group By Operator [GBY_45] (rows=381/628 width=178)
+ Output:["_col0","_col1"],keys:_col1, _col0
+ Select Operator [SEL_38] (rows=262/319 width=178)
+ Output:["_col0","_col1"]
+ Group By Operator [GBY_37] (rows=262/319 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/331 width=178)
+ Output:["_col0","_col1"],keys:_col1, _col0
+ Select Operator [SEL_28] (rows=25/25 width=175)
+ Output:["_col0","_col1"]
+ Filter Operator [FIL_154] (rows=25/25 width=175)
+ predicate:value is not null
+ TableScan [TS_26] (rows=25/25 width=175)
+ Output:["key","value"]
+ <-Map 20 [CONTAINS]
+ Reduce Output Operator [RS_36]
+ PartitionCols:_col0, _col1
+ Group By Operator [GBY_35] (rows=262/331 width=178)
+ Output:["_col0","_col1"],keys:_col1, _col0
+ Select Operator [SEL_31] (rows=500/500 width=178)
+ Output:["_col0","_col1"]
+ Filter Operator [FIL_155] (rows=500/500 width=178)
+ predicate:value is not null
+ TableScan [TS_29] (rows=500/500 width=178)
+ Output:["key","value"]
+ <-Reducer 5 [CONTAINS]
+ Reduce Output Operator [RS_66]
+ PartitionCols:_col0, _col1
+ Group By Operator [GBY_65] (rows=90/30 width=177)
+ Output:["_col0","_col1"],keys:_col0, _col1
+ Select Operator [SEL_25] (rows=73/61 width=177)
+ Output:["_col0","_col1"]
+ Merge Join Operator [MERGEJOIN_166] (rows=73/61 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/500 width=178)
+ Output:["_col0","_col1"]
+ Filter Operator [FIL_153] (rows=500/500 width=178)
+ predicate:key is not null
+ TableScan [TS_16] (rows=500/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/52 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/25 width=175)
+ Output:["_col0","_col1"]
+ Filter Operator [FIL_152] (rows=25/25 width=175)
+ predicate:(key is not null and value is not null)
+ TableScan [TS_13] (rows=25/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/319 width=178)
+ Output:["_col1"]
+ 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:_col1, _col0
+ Select Operator [SEL_2] (rows=25/25 width=175)
+ Output:["_col0","_col1"]
+ Filter Operator [FIL_150] (rows=25/25 width=175)
+ predicate:value is not null
+ TableScan [TS_0] (rows=25/25 width=175)
+ Output:["key","value"]
+ <-Map 10 [CONTAINS]
+ Reduce Output Operator [RS_10]
+ PartitionCols:_col0, _col1
+ Group By Operator [GBY_9] (rows=262/331 width=178)
+ Output:["_col0","_col1"],keys:_col1, _col0
+ Select Operator [SEL_5] (rows=500/500 width=178)
+ Output:["_col0","_col1"]
+ Filter Operator [FIL_151] (rows=500/500 width=178)
+ predicate:value is not null
+ TableScan [TS_3] (rows=500/500 width=178)
+ Output:["key","value"]
+
+PREHOOK: query: 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
+PREHOOK: Input: default@src
+PREHOOK: Input: default@src1
+PREHOOK: Input: default@srcpart
+PREHOOK: Input: default@srcpart@ds=2008-04-08/hr=11
+#### A masked pattern was here ####
+POSTHOOK: query: 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
+POSTHOOK: Input: default@src
+POSTHOOK: Input: default@src1
+POSTHOOK: Input: default@srcpart
+POSTHOOK: Input: default@srcpart@ds=2008-04-08/hr=11
+#### A masked pattern was here ####
+PREHOOK: query: explain analyze
+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 analyze
+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/85 width=10)
+ Output:["_col0","_col1","_col2"]
+ Map Join Operator [MAPJOIN_26] (rows=605/85 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/500 width=10)
+ Output:["_col0","_col1"]
+ Filter Operator [FIL_24] (rows=500/500 width=10)
+ predicate:key is not null
+ TableScan [TS_6] (rows=500/500 width=10)
+ default@src,y,Tbl:COMPLETE,Col:NONE,Output:["key","value"]
+ <-Map Join Operator [MAPJOIN_25] (rows=550/41 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/25 width=7)
+ Output:["_col0","_col1"]
+ Filter Operator [FIL_23] (rows=25/25 width=7)
+ predicate:(key is not null and value is not null)
+ TableScan [TS_3] (rows=25/25 width=7)
+ default@src1,x,Tbl:COMPLETE,Col:NONE,Output:["key","value"]
+ <-Select Operator [SEL_2] (rows=500/500 width=10)
+ Output:["_col0"]
+ Filter Operator [FIL_22] (rows=500/500 width=10)
+ predicate:value is not null
+ TableScan [TS_0] (rows=500/500 width=10)
+ default@srcpart,z,Tbl:COMPLETE,Col:NONE,Output:["value"]
+
+PREHOOK: query: 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
+PREHOOK: Input: default@cs
+PREHOOK: Input: default@sr
+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: Input: default@srcpart@ds=2008-04-09/hr=11
+PREHOOK: Input: default@srcpart@ds=2008-04-09/hr=12
+PREHOOK: Input: default@ss
+#### A masked pattern was here ####
+POSTHOOK: query: 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
+POSTHOOK: Input: default@cs
+POSTHOOK: Input: default@sr
+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: Input: default@srcpart@ds=2008-04-09/hr=11
+POSTHOOK: Input: default@srcpart@ds=2008-04-09/hr=12
+POSTHOOK: Input: default@ss
+#### A masked pattern was here ####
+PREHOOK: query: explain analyze
+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 analyze
+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 10 <- Map 9 (BROADCAST_EDGE)
+Map 2 <- Map 1 (BROADCAST_EDGE)
+Map 3 <- Map 10 (BROADCAST_EDGE), Map 2 (BROADCAST_EDGE), Map 6 (BROADCAST_EDGE), Map 7 (BROADCAST_EDGE), Map 8 (BROADCAST_EDGE)
+Reducer 4 <- Map 3 (SIMPLE_EDGE)
+Reducer 5 <- Reducer 4 (SIMPLE_EDGE)
+
+Stage-0
+ Fetch Operator
+ limit:100
+ Stage-1
+ Reducer 5
+ File Output Operator [FS_55]
+ Limit [LIM_54] (rows=100/0 width=10)
+ Number of rows:100
+ Select Operator [SEL_53] (rows=805/0 width=10)
+ Output:["_col0","_col1","_col2","_col3","_col4","_col5"]
+ <-Reducer 4 [SIMPLE_EDGE]
+ SHUFFLE [RS_52]
+ Group By Operator [GBY_50] (rows=805/0 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 3 [SIMPLE_EDGE]
+ SHUFFLE [RS_49]
+ PartitionCols:_col0, _col1, _col2
+ Group By Operator [GBY_48] (rows=1610/0 width=10)
+ Output:["_col0","_col1","_col2","_col3","_col4","_col5"],aggregations:["count(_col13)","count(_col21)","count(_col3)"],keys:_col12, _col20, _col2
+ Select Operator [SEL_47] (rows=1610/0 width=10)
+ Output:["_col12","_col20","_col2","_col13","_col21","_col3"]
+ Map Join Operator [MAPJOIN_97] (rows=1610/0 width=10)
+ Conds:RS_44._col1, _col3=SEL_40._col15, _col17(Inner),HybridGraceHashJoin:true,Output:["_col2","_col3","_col12","_col13","_col20","_col21"]
+ <-Map 2 [BROADCAST_EDGE]
+ BROADCAST [RS_44]
+ PartitionCols:_col1, _col3
+ Map Join Operator [MAPJOIN_91] (rows=275/0 width=10)
+ Conds:RS_41._col0=SEL_5._col0(Inner),HybridGraceHashJoin:true,Output:["_col1","_col2","_col3"]
+ <-Map 1 [BROADCAST_EDGE]
+ BROADCAST [RS_41]
+ PartitionCols:_col0
+ Select Operator [SEL_2] (rows=170/170 width=34)
+ Output:["_col0","_col1","_col2","_col3"]
+ Filter Operator [FIL_83] (rows=170/170 width=34)
+ predicate:(v2 is not null and v3 is not null and k1 is not null)
+ TableScan [TS_0] (rows=170/170 width=34)
+ default@cs,cs,Tbl:COMPLETE,Col:NONE,Output:["k1","v2","k3","v3"]
+ <-Select Operator [SEL_5] (rows=250/0 width=10)
+ Output:["_col0"]
+ Filter Operator [FIL_84] (rows=250/0 width=10)
+ predicate:((value) IN ('2000Q1', '2000Q2', '2000Q3') and key is not null)
+ TableScan [TS_3] (rows=500/500 width=10)
+ default@src,d3,Tbl:COMPLETE,Col:NONE,Output:["key","value"]
+ <-Select Operator [SEL_40] (rows=1464/0 width=10)
+ Output:["_col14","_col15","_col17","_col6","_col7"]
+ Map Join Operator [MAPJOIN_96] (rows=1464/0 width=10)
+ Conds:MAPJOIN_94._col6, _col4=RS_38._col4, _col2(Inner),HybridGraceHashJoin:true,Output:["_col2","_col3","_col14","_col15","_col17"]
+ <-Map 10 [BROADCAST_EDGE]
+ BROADCAST [RS_38]
+ PartitionCols:_col4, _col2
+ Map Join Operator [MAPJOIN_95] (rows=275/0 width=10)
+ Conds:RS_24._col0=SEL_23._col0(Inner),HybridGraceHashJoin:true,Output:["_col2","_col3","_col4","_col5"]
+ <-Map 9 [BROADCAST_EDGE]
+ BROADCAST [RS_24]
+ PartitionCols:_col0
+ Select Operator [SEL_20] (rows=42/0 width=34)
+ Output:["_col0","_col2","_col3","_col4","_col5"]
+ Filter Operator [FIL_89] (rows=42/0 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_18] (rows=85/85 width=34)
+ default@sr,sr,Tbl:COMPLETE,Col:NONE,Output:["k1","v1","k2","v2","k3","v3"]
+ <-Select Operator [SEL_23] (rows=250/0 width=10)
+ Output:["_col0"]
+ Filter Operator [FIL_90] (rows=250/0 width=10)
+ predicate:((value) IN ('2000Q1', '2000Q2', '2000Q3') and key is not null)
+ TableScan [TS_21] (rows=500/500 width=10)
+ default@src,d2,Tbl:COMPLETE,Col:NONE,Output:["key","value"]
+ <-Map Join Operator [MAPJOIN_94] (rows=1331/0 width=10)
+ Conds:MAPJOIN_93._col3=RS_35._col1(Inner),HybridGraceHashJoin:true,Output:["_col2","_col3","_col4","_col6"]
+ <-Map 8 [BROADCAST_EDGE]
+ BROADCAST [RS_35]
+ PartitionCols:_col1
+ Select Operator [SEL_17] (rows=12/0 width=7)
+ Output:["_col1"]
+ Filter Operator [FIL_88] (rows=12/0 width=7)
+ predicate:((key = 'src1key') and value is not null)
+ TableScan [TS_15] (rows=25/25 width=7)
+ default@src1,src1,Tbl:COMPLETE,Col:NONE,Output:["key","value"]
+ <-Map Join Operator [MAPJOIN_93] (rows=1210/0 width=10)
+ Conds:MAPJOIN_92._col2=RS_32._col0(Inner),HybridGraceHashJoin:true,Output:["_col2","_col3","_col4","_col6"]
+ <-Map 7 [BROADCAST_EDGE]
+ BROADCAST [RS_32]
+ PartitionCols:_col0
+ Select Operator [SEL_14] (rows=250/0 width=10)
+ Output:["_col0"]
+ Filter Operator [FIL_87] (rows=250/0 width=10)
+ predicate:((value = 'd1value') and key is not null)
+ TableScan [TS_12] (rows=500/500 width=10)
+ default@src,d1,Tbl:COMPLETE,Col:NONE,Output:["key","value"]
+ <-Map Join Operator [MAPJOIN_92] (rows=1100/0 width=10)
+ Conds:SEL_8._col1=RS_29._col3(Inner),HybridGraceHashJoin:true,Output:["_col2","_col3","_col4","_col6"]
+ <-Map 6 [BROADCAST_EDGE]
+ BROADCAST [RS_29]
+ PartitionCols:_col3
+ Select Operator [SEL_11] (rows=42/0 width=34)
+ Output:["_col0","_col1","_col2","_col3","_col4"]
+ Filter Operator [FIL_86] (rows=42/0 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_9] (rows=85/85 width=34)
+ default@ss,ss,Tbl:COMPLETE,Col:NONE,Output:["k1","v1","k2","v2","k3","v3"]
+ <-Select Operator [SEL_8] (rows=1000/0 width=10)
+ Output:["_col1"]
+ Filter Operator [FIL_85] (rows=1000/0 width=10)
+ predicate:((key = 'srcpartkey') and value is not null)
+ TableScan [TS_6] (rows=2000/2000 width=10)
+ default@srcpart,srcpart,Tbl:COMPLETE,Col:NONE,Output:["key","value"]
+
+PREHOOK: query: 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
+PREHOOK: Input: default@src
+PREHOOK: Input: default@src1
+#### A masked pattern was here ####
+POSTHOOK: query: 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
+POSTHOOK: Input: default@src
+POSTHOOK: Input: default@src1
+#### A masked pattern was here ####
+PREHOOK: query: explain analyze
+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 analyze
+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/15 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/30 width=10)
+ Output:["_col0","_col1"],keys:_col0, _col1
+ Select Operator [SEL_51] (rows=550/61 width=10)
+ Output:["_col0","_col1"]
+ Map Join Operator [MAPJOIN_85] (rows=550/61 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/500 width=10)
+ Output:["_col0"]
+ Filter Operator [FIL_81] (rows=500/500 width=10)
+ predicate:key is not null
+ TableScan [TS_42] (rows=500/500 width=10)
+ default@src,y,Tbl:COMPLETE,Col:NONE,Output:["key"]
+ <-Map Join Operator [MAPJOIN_84] (rows=288/52 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/25 width=7)
+ Output:["_col0","_col1"]
+ Filter Operator [FIL_80] (rows=25/25 width=7)
+ predicate:(key is not null and value is not null)
+ TableScan [TS_39] (rows=25/25 width=7)
+ default@src1,x,Tbl:COMPLETE,Col:NONE,Output:["key","value"]
+ <-Select Operator [SEL_38] (rows=262/319 width=10)
+ Output:["_col1"]
+ Group By Operator [GBY_37] (rows=262/319 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/331 width=10)
+ Output:["_col0","_col1"],keys:_col1, _col0
+ Select Operator [SEL_31] (rows=500/500 width=10)
+ Output:["_col0","_col1"]
+ Filter Operator [FIL_79] (rows=500/500 width=10)
+ predicate:value is not null
+ TableScan [TS_29] (rows=500/500 width=10)
+ Output:["key","value"]
+ <-Map 9 [CONTAINS]
+ Reduce Output Operator [RS_36]
+ PartitionCols:_col0, _col1
+ Group By Operator [GBY_35] (rows=525/331 width=10)
+ Output:["_col0","_col1"],keys:_col1, _col0
+ Select Operator [SEL_28] (rows=25/25 width=7)
+ Output:["_col0","_col1"]
+ Filter Operator [FIL_78] (rows=25/25 width=7)
+ predicate:value is not null
+ TableScan [TS_26] (rows=25/25 width=7)
+ Output:["key","value"]
+ <-Reducer 3 [CONTAINS]
+ Reduce Output Operator [RS_56]
+ PartitionCols:_col0, _col1
+ Group By Operator [GBY_55] (rows=1100/30 width=10)
+ Output:["_col0","_col1"],keys:_col0, _col1
+ Select Operator [SEL_25] (rows=550/61 width=10)
+ Output:["_col0","_col1"]
+ Map Join Operator [MAPJOIN_83] (rows=550/61 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/500 width=10)
+ Output:["_col0"]
+ Filter Operator [FIL_77] (rows=500/500 width=10)
+ predicate:key is not null
+ TableScan [TS_16] (rows=500/500 width=10)
+ default@src,y,Tbl:COMPLETE,Col:NONE,Output:["key"]
+ <-Map Join Operator [MAPJOIN_82] (rows=288/52 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/25 width=7)
+ Output:["_col0","_col1"]
+ Filter Operator [FIL_76] (rows=25/25 width=7)
+ predicate:(key is not null and value is not null)
+ TableScan [TS_13] (rows=25/25 width=7)
+ default@src1,x,Tbl:COMPLETE,Col:NONE,Output:["key","value"]
+ <-Select Operator [SEL_12] (rows=262/319 width=10)
+ Output:["_col1"]
+ Group By Operator [GBY_11] (rows=262/319 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/331 width=10)
+ Output:["_col0","_col1"],keys:_col1, _col0
+ Select Operator [SEL_2] (rows=25/25 width=7)
+ Output:["_col0","_col1"]
+ Filter Operator [FIL_74] (rows=25/25 width=7)
+ predicate:value is not null
+ TableScan [TS_0] (rows=25/25 width=7)
+ Output:["key","value"]
+ <-Map 6 [CONTAINS]
+ Reduce Output Operator [RS_10]
+ PartitionCols:_col0, _col1
+ Group By Operator [GBY_9] (rows=525/331 width=10)
+ Output:["_col0","_col1"],keys:_col1, _col0
+ Select Operator [SEL_5] (rows=500/500 width=10)
+ Output:["_col0","_col1"]
+ Filter Operator [FIL_75] (rows=500/500 width=10)
+ predicate:value is not null
+ TableScan [TS_3] (rows=500/500 width=10)
+ Output:["key","value"]
+
+PREHOOK: query: 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
+PREHOOK: Input: default@src
+PREHOOK: Input: default@src1
+#### A masked pattern was here ####
+POSTHOOK: query: 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
+POSTHOOK: Input: default@src
+POSTHOOK: Input: default@src1
+#### A masked pattern was here ####
+PREHOOK: query: explain analyze
+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 analyze
+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/15 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/30 width=10)
+ Output:["_col0","_col1"],keys:_col0, _col1
+ Select Operator [SEL_114] (rows=550/61 width=10)
+ Output:["_col0","_col1"]
+ Map Join Operator [MAPJOIN_170] (rows=550/61 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/500 width=10)
+ Output:["_col0","_col1"]
+ Filter Operator [FIL_164] (rows=500/500 width=10)
+ predicate:key is not null
+ TableScan [TS_105] (rows=500/500 width=10)
+ default@src,y,Tbl:COMPLETE,Col:NONE,Output:["key","value"]
+ <-Map Join Operator [MAPJOIN_169] (rows=484/52 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/25 width=7)
+ Output:["_col0","_col1"]
+ Filter Operator [FIL_163] (rows=25/25 width=7)
+ predicate:(key is not null and value is not null)
+ TableScan [TS_102] (rows=25/25 width=7)
+ default@src1,x,Tbl:COMPLETE,Col:NONE,Output:["key","value"]
+ <-Select Operator [SEL_101] (rows=440/319 width=10)
+ Output:["_col1"]
+ Group By Operator [GBY_100] (rows=440/319 width=10)
+ Output:["_col0","_col1"],ke
<TRUNCATED>