You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by jd...@apache.org on 2017/10/17 22:05:18 UTC

[1/2] hive git commit: HIVE-17792: Enable Bucket Map Join when there are extra keys other than bucketed columns (Deepak Jaiswal, reviewed by Jason Dere)

Repository: hive
Updated Branches:
  refs/heads/master 2ee080d12 -> f973243a5


http://git-wip-us.apache.org/repos/asf/hive/blob/f973243a/ql/src/test/results/clientpositive/spark/bucket_map_join_tez1.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/spark/bucket_map_join_tez1.q.out b/ql/src/test/results/clientpositive/spark/bucket_map_join_tez1.q.out
index 3bbc449..c0197d3 100644
--- a/ql/src/test/results/clientpositive/spark/bucket_map_join_tez1.q.out
+++ b/ql/src/test/results/clientpositive/spark/bucket_map_join_tez1.q.out
@@ -4616,3 +4616,2351 @@ STAGE PLANS:
       Processor Tree:
         ListSink
 
+PREHOOK: query: explain select a.key, a.value, b.value
+        from tab a join tab_part b on a.key = b.key and a.value = b.value
+PREHOOK: type: QUERY
+POSTHOOK: query: explain select a.key, a.value, b.value
+        from tab a join tab_part b on a.key = b.key and a.value = b.value
+POSTHOOK: type: QUERY
+STAGE DEPENDENCIES:
+  Stage-2 is a root stage
+  Stage-1 depends on stages: Stage-2
+  Stage-0 depends on stages: Stage-1
+
+STAGE PLANS:
+  Stage: Stage-2
+    Spark
+#### A masked pattern was here ####
+      Vertices:
+        Map 1 
+            Map Operator Tree:
+                TableScan
+                  alias: a
+                  Statistics: Num rows: 242 Data size: 2566 Basic stats: COMPLETE Column stats: NONE
+                  Filter Operator
+                    predicate: (key is not null and value is not null) (type: boolean)
+                    Statistics: Num rows: 242 Data size: 2566 Basic stats: COMPLETE Column stats: NONE
+                    Select Operator
+                      expressions: key (type: int), value (type: string)
+                      outputColumnNames: _col0, _col1
+                      Statistics: Num rows: 242 Data size: 2566 Basic stats: COMPLETE Column stats: NONE
+                      Spark HashTable Sink Operator
+                        keys:
+                          0 _col0 (type: int), _col1 (type: string)
+                          1 _col0 (type: int), _col1 (type: string)
+            Local Work:
+              Map Reduce Local Work
+
+  Stage: Stage-1
+    Spark
+#### A masked pattern was here ####
+      Vertices:
+        Map 2 
+            Map Operator Tree:
+                TableScan
+                  alias: b
+                  Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+                  Filter Operator
+                    predicate: (key is not null and value is not null) (type: boolean)
+                    Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+                    Select Operator
+                      expressions: key (type: int), value (type: string)
+                      outputColumnNames: _col0, _col1
+                      Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+                      Map Join Operator
+                        condition map:
+                             Inner Join 0 to 1
+                        keys:
+                          0 _col0 (type: int), _col1 (type: string)
+                          1 _col0 (type: int), _col1 (type: string)
+                        outputColumnNames: _col0, _col1, _col3
+                        input vertices:
+                          0 Map 1
+                        Statistics: Num rows: 550 Data size: 5843 Basic stats: COMPLETE Column stats: NONE
+                        Select Operator
+                          expressions: _col0 (type: int), _col1 (type: string), _col3 (type: string)
+                          outputColumnNames: _col0, _col1, _col2
+                          Statistics: Num rows: 550 Data size: 5843 Basic stats: COMPLETE Column stats: NONE
+                          File Output Operator
+                            compressed: false
+                            Statistics: Num rows: 550 Data size: 5843 Basic stats: COMPLETE Column stats: NONE
+                            table:
+                                input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+                                output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+                                serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+            Local Work:
+              Map Reduce Local Work
+
+  Stage: Stage-0
+    Fetch Operator
+      limit: -1
+      Processor Tree:
+        ListSink
+
+PREHOOK: query: select a.key, a.value, b.value
+from tab a join tab_part b on a.key = b.key and a.value = b.value
+order by a.key, a.value, b.value
+PREHOOK: type: QUERY
+PREHOOK: Input: default@tab
+PREHOOK: Input: default@tab@ds=2008-04-08
+PREHOOK: Input: default@tab_part
+PREHOOK: Input: default@tab_part@ds=2008-04-08
+#### A masked pattern was here ####
+POSTHOOK: query: select a.key, a.value, b.value
+from tab a join tab_part b on a.key = b.key and a.value = b.value
+order by a.key, a.value, b.value
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@tab
+POSTHOOK: Input: default@tab@ds=2008-04-08
+POSTHOOK: Input: default@tab_part
+POSTHOOK: Input: default@tab_part@ds=2008-04-08
+#### A masked pattern was here ####
+0	val_0	val_0
+0	val_0	val_0
+0	val_0	val_0
+0	val_0	val_0
+0	val_0	val_0
+0	val_0	val_0
+0	val_0	val_0
+0	val_0	val_0
+0	val_0	val_0
+2	val_2	val_2
+4	val_4	val_4
+8	val_8	val_8
+11	val_11	val_11
+15	val_15	val_15
+15	val_15	val_15
+15	val_15	val_15
+15	val_15	val_15
+17	val_17	val_17
+19	val_19	val_19
+20	val_20	val_20
+24	val_24	val_24
+24	val_24	val_24
+24	val_24	val_24
+24	val_24	val_24
+26	val_26	val_26
+26	val_26	val_26
+26	val_26	val_26
+26	val_26	val_26
+28	val_28	val_28
+33	val_33	val_33
+35	val_35	val_35
+35	val_35	val_35
+35	val_35	val_35
+35	val_35	val_35
+35	val_35	val_35
+35	val_35	val_35
+35	val_35	val_35
+35	val_35	val_35
+35	val_35	val_35
+37	val_37	val_37
+37	val_37	val_37
+37	val_37	val_37
+37	val_37	val_37
+42	val_42	val_42
+42	val_42	val_42
+42	val_42	val_42
+42	val_42	val_42
+44	val_44	val_44
+51	val_51	val_51
+51	val_51	val_51
+51	val_51	val_51
+51	val_51	val_51
+53	val_53	val_53
+57	val_57	val_57
+64	val_64	val_64
+66	val_66	val_66
+77	val_77	val_77
+80	val_80	val_80
+82	val_82	val_82
+84	val_84	val_84
+84	val_84	val_84
+84	val_84	val_84
+84	val_84	val_84
+86	val_86	val_86
+95	val_95	val_95
+95	val_95	val_95
+95	val_95	val_95
+95	val_95	val_95
+97	val_97	val_97
+97	val_97	val_97
+97	val_97	val_97
+97	val_97	val_97
+103	val_103	val_103
+103	val_103	val_103
+103	val_103	val_103
+103	val_103	val_103
+105	val_105	val_105
+114	val_114	val_114
+116	val_116	val_116
+118	val_118	val_118
+118	val_118	val_118
+118	val_118	val_118
+118	val_118	val_118
+125	val_125	val_125
+125	val_125	val_125
+125	val_125	val_125
+125	val_125	val_125
+129	val_129	val_129
+129	val_129	val_129
+129	val_129	val_129
+129	val_129	val_129
+134	val_134	val_134
+134	val_134	val_134
+134	val_134	val_134
+134	val_134	val_134
+136	val_136	val_136
+138	val_138	val_138
+138	val_138	val_138
+138	val_138	val_138
+138	val_138	val_138
+138	val_138	val_138
+138	val_138	val_138
+138	val_138	val_138
+138	val_138	val_138
+138	val_138	val_138
+138	val_138	val_138
+138	val_138	val_138
+138	val_138	val_138
+138	val_138	val_138
+138	val_138	val_138
+138	val_138	val_138
+138	val_138	val_138
+143	val_143	val_143
+145	val_145	val_145
+149	val_149	val_149
+149	val_149	val_149
+149	val_149	val_149
+149	val_149	val_149
+150	val_150	val_150
+152	val_152	val_152
+152	val_152	val_152
+152	val_152	val_152
+152	val_152	val_152
+156	val_156	val_156
+158	val_158	val_158
+163	val_163	val_163
+165	val_165	val_165
+165	val_165	val_165
+165	val_165	val_165
+165	val_165	val_165
+167	val_167	val_167
+167	val_167	val_167
+167	val_167	val_167
+167	val_167	val_167
+167	val_167	val_167
+167	val_167	val_167
+167	val_167	val_167
+167	val_167	val_167
+167	val_167	val_167
+169	val_169	val_169
+169	val_169	val_169
+169	val_169	val_169
+169	val_169	val_169
+169	val_169	val_169
+169	val_169	val_169
+169	val_169	val_169
+169	val_169	val_169
+169	val_169	val_169
+169	val_169	val_169
+169	val_169	val_169
+169	val_169	val_169
+169	val_169	val_169
+169	val_169	val_169
+169	val_169	val_169
+169	val_169	val_169
+170	val_170	val_170
+172	val_172	val_172
+172	val_172	val_172
+172	val_172	val_172
+172	val_172	val_172
+174	val_174	val_174
+174	val_174	val_174
+174	val_174	val_174
+174	val_174	val_174
+176	val_176	val_176
+176	val_176	val_176
+176	val_176	val_176
+176	val_176	val_176
+178	val_178	val_178
+181	val_181	val_181
+183	val_183	val_183
+187	val_187	val_187
+187	val_187	val_187
+187	val_187	val_187
+187	val_187	val_187
+187	val_187	val_187
+187	val_187	val_187
+187	val_187	val_187
+187	val_187	val_187
+187	val_187	val_187
+189	val_189	val_189
+190	val_190	val_190
+192	val_192	val_192
+194	val_194	val_194
+196	val_196	val_196
+200	val_200	val_200
+200	val_200	val_200
+200	val_200	val_200
+200	val_200	val_200
+202	val_202	val_202
+208	val_208	val_208
+208	val_208	val_208
+208	val_208	val_208
+208	val_208	val_208
+208	val_208	val_208
+208	val_208	val_208
+208	val_208	val_208
+208	val_208	val_208
+208	val_208	val_208
+213	val_213	val_213
+213	val_213	val_213
+213	val_213	val_213
+213	val_213	val_213
+217	val_217	val_217
+217	val_217	val_217
+217	val_217	val_217
+217	val_217	val_217
+219	val_219	val_219
+219	val_219	val_219
+219	val_219	val_219
+219	val_219	val_219
+222	val_222	val_222
+224	val_224	val_224
+224	val_224	val_224
+224	val_224	val_224
+224	val_224	val_224
+226	val_226	val_226
+228	val_228	val_228
+233	val_233	val_233
+233	val_233	val_233
+233	val_233	val_233
+233	val_233	val_233
+235	val_235	val_235
+237	val_237	val_237
+237	val_237	val_237
+237	val_237	val_237
+237	val_237	val_237
+239	val_239	val_239
+239	val_239	val_239
+239	val_239	val_239
+239	val_239	val_239
+242	val_242	val_242
+242	val_242	val_242
+242	val_242	val_242
+242	val_242	val_242
+244	val_244	val_244
+248	val_248	val_248
+255	val_255	val_255
+255	val_255	val_255
+255	val_255	val_255
+255	val_255	val_255
+257	val_257	val_257
+260	val_260	val_260
+262	val_262	val_262
+266	val_266	val_266
+273	val_273	val_273
+273	val_273	val_273
+273	val_273	val_273
+273	val_273	val_273
+273	val_273	val_273
+273	val_273	val_273
+273	val_273	val_273
+273	val_273	val_273
+273	val_273	val_273
+275	val_275	val_275
+277	val_277	val_277
+277	val_277	val_277
+277	val_277	val_277
+277	val_277	val_277
+277	val_277	val_277
+277	val_277	val_277
+277	val_277	val_277
+277	val_277	val_277
+277	val_277	val_277
+277	val_277	val_277
+277	val_277	val_277
+277	val_277	val_277
+277	val_277	val_277
+277	val_277	val_277
+277	val_277	val_277
+277	val_277	val_277
+280	val_280	val_280
+280	val_280	val_280
+280	val_280	val_280
+280	val_280	val_280
+282	val_282	val_282
+282	val_282	val_282
+282	val_282	val_282
+282	val_282	val_282
+284	val_284	val_284
+286	val_286	val_286
+288	val_288	val_288
+288	val_288	val_288
+288	val_288	val_288
+288	val_288	val_288
+291	val_291	val_291
+305	val_305	val_305
+307	val_307	val_307
+307	val_307	val_307
+307	val_307	val_307
+307	val_307	val_307
+309	val_309	val_309
+309	val_309	val_309
+309	val_309	val_309
+309	val_309	val_309
+310	val_310	val_310
+316	val_316	val_316
+316	val_316	val_316
+316	val_316	val_316
+316	val_316	val_316
+316	val_316	val_316
+316	val_316	val_316
+316	val_316	val_316
+316	val_316	val_316
+316	val_316	val_316
+318	val_318	val_318
+318	val_318	val_318
+318	val_318	val_318
+318	val_318	val_318
+318	val_318	val_318
+318	val_318	val_318
+318	val_318	val_318
+318	val_318	val_318
+318	val_318	val_318
+321	val_321	val_321
+321	val_321	val_321
+321	val_321	val_321
+321	val_321	val_321
+323	val_323	val_323
+325	val_325	val_325
+325	val_325	val_325
+325	val_325	val_325
+325	val_325	val_325
+327	val_327	val_327
+327	val_327	val_327
+327	val_327	val_327
+327	val_327	val_327
+327	val_327	val_327
+327	val_327	val_327
+327	val_327	val_327
+327	val_327	val_327
+327	val_327	val_327
+332	val_332	val_332
+336	val_336	val_336
+338	val_338	val_338
+341	val_341	val_341
+345	val_345	val_345
+356	val_356	val_356
+365	val_365	val_365
+367	val_367	val_367
+367	val_367	val_367
+367	val_367	val_367
+367	val_367	val_367
+369	val_369	val_369
+369	val_369	val_369
+369	val_369	val_369
+369	val_369	val_369
+369	val_369	val_369
+369	val_369	val_369
+369	val_369	val_369
+369	val_369	val_369
+369	val_369	val_369
+374	val_374	val_374
+378	val_378	val_378
+389	val_389	val_389
+392	val_392	val_392
+394	val_394	val_394
+396	val_396	val_396
+396	val_396	val_396
+396	val_396	val_396
+396	val_396	val_396
+396	val_396	val_396
+396	val_396	val_396
+396	val_396	val_396
+396	val_396	val_396
+396	val_396	val_396
+400	val_400	val_400
+402	val_402	val_402
+404	val_404	val_404
+404	val_404	val_404
+404	val_404	val_404
+404	val_404	val_404
+406	val_406	val_406
+406	val_406	val_406
+406	val_406	val_406
+406	val_406	val_406
+406	val_406	val_406
+406	val_406	val_406
+406	val_406	val_406
+406	val_406	val_406
+406	val_406	val_406
+406	val_406	val_406
+406	val_406	val_406
+406	val_406	val_406
+406	val_406	val_406
+406	val_406	val_406
+406	val_406	val_406
+406	val_406	val_406
+411	val_411	val_411
+413	val_413	val_413
+413	val_413	val_413
+413	val_413	val_413
+413	val_413	val_413
+417	val_417	val_417
+417	val_417	val_417
+417	val_417	val_417
+417	val_417	val_417
+417	val_417	val_417
+417	val_417	val_417
+417	val_417	val_417
+417	val_417	val_417
+417	val_417	val_417
+419	val_419	val_419
+424	val_424	val_424
+424	val_424	val_424
+424	val_424	val_424
+424	val_424	val_424
+431	val_431	val_431
+431	val_431	val_431
+431	val_431	val_431
+431	val_431	val_431
+431	val_431	val_431
+431	val_431	val_431
+431	val_431	val_431
+431	val_431	val_431
+431	val_431	val_431
+435	val_435	val_435
+437	val_437	val_437
+439	val_439	val_439
+439	val_439	val_439
+439	val_439	val_439
+439	val_439	val_439
+444	val_444	val_444
+446	val_446	val_446
+448	val_448	val_448
+453	val_453	val_453
+455	val_455	val_455
+457	val_457	val_457
+459	val_459	val_459
+459	val_459	val_459
+459	val_459	val_459
+459	val_459	val_459
+460	val_460	val_460
+462	val_462	val_462
+462	val_462	val_462
+462	val_462	val_462
+462	val_462	val_462
+466	val_466	val_466
+466	val_466	val_466
+466	val_466	val_466
+466	val_466	val_466
+466	val_466	val_466
+466	val_466	val_466
+466	val_466	val_466
+466	val_466	val_466
+466	val_466	val_466
+468	val_468	val_468
+468	val_468	val_468
+468	val_468	val_468
+468	val_468	val_468
+468	val_468	val_468
+468	val_468	val_468
+468	val_468	val_468
+468	val_468	val_468
+468	val_468	val_468
+468	val_468	val_468
+468	val_468	val_468
+468	val_468	val_468
+468	val_468	val_468
+468	val_468	val_468
+468	val_468	val_468
+468	val_468	val_468
+475	val_475	val_475
+477	val_477	val_477
+479	val_479	val_479
+480	val_480	val_480
+480	val_480	val_480
+480	val_480	val_480
+480	val_480	val_480
+480	val_480	val_480
+480	val_480	val_480
+480	val_480	val_480
+480	val_480	val_480
+480	val_480	val_480
+482	val_482	val_482
+484	val_484	val_484
+491	val_491	val_491
+493	val_493	val_493
+495	val_495	val_495
+497	val_497	val_497
+PREHOOK: query: explain select a.key, a.value, b.value
+        from tab a join tab_part b on a.key = b.key and a.value = b.value
+PREHOOK: type: QUERY
+POSTHOOK: query: explain select a.key, a.value, b.value
+        from tab a join tab_part b on a.key = b.key and a.value = b.value
+POSTHOOK: type: QUERY
+STAGE DEPENDENCIES:
+  Stage-2 is a root stage
+  Stage-1 depends on stages: Stage-2
+  Stage-0 depends on stages: Stage-1
+
+STAGE PLANS:
+  Stage: Stage-2
+    Spark
+#### A masked pattern was here ####
+      Vertices:
+        Map 1 
+            Map Operator Tree:
+                TableScan
+                  alias: a
+                  Statistics: Num rows: 242 Data size: 2566 Basic stats: COMPLETE Column stats: NONE
+                  Filter Operator
+                    predicate: (key is not null and value is not null) (type: boolean)
+                    Statistics: Num rows: 242 Data size: 2566 Basic stats: COMPLETE Column stats: NONE
+                    Select Operator
+                      expressions: key (type: int), value (type: string)
+                      outputColumnNames: _col0, _col1
+                      Statistics: Num rows: 242 Data size: 2566 Basic stats: COMPLETE Column stats: NONE
+                      Spark HashTable Sink Operator
+                        keys:
+                          0 _col0 (type: int), _col1 (type: string)
+                          1 _col0 (type: int), _col1 (type: string)
+            Local Work:
+              Map Reduce Local Work
+
+  Stage: Stage-1
+    Spark
+#### A masked pattern was here ####
+      Vertices:
+        Map 2 
+            Map Operator Tree:
+                TableScan
+                  alias: b
+                  Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+                  Filter Operator
+                    predicate: (key is not null and value is not null) (type: boolean)
+                    Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+                    Select Operator
+                      expressions: key (type: int), value (type: string)
+                      outputColumnNames: _col0, _col1
+                      Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+                      Map Join Operator
+                        condition map:
+                             Inner Join 0 to 1
+                        keys:
+                          0 _col0 (type: int), _col1 (type: string)
+                          1 _col0 (type: int), _col1 (type: string)
+                        outputColumnNames: _col0, _col1, _col3
+                        input vertices:
+                          0 Map 1
+                        Statistics: Num rows: 550 Data size: 5843 Basic stats: COMPLETE Column stats: NONE
+                        Select Operator
+                          expressions: _col0 (type: int), _col1 (type: string), _col3 (type: string)
+                          outputColumnNames: _col0, _col1, _col2
+                          Statistics: Num rows: 550 Data size: 5843 Basic stats: COMPLETE Column stats: NONE
+                          File Output Operator
+                            compressed: false
+                            Statistics: Num rows: 550 Data size: 5843 Basic stats: COMPLETE Column stats: NONE
+                            table:
+                                input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+                                output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+                                serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+            Local Work:
+              Map Reduce Local Work
+
+  Stage: Stage-0
+    Fetch Operator
+      limit: -1
+      Processor Tree:
+        ListSink
+
+PREHOOK: query: select a.key, a.value, b.value
+from tab a join tab_part b on a.key = b.key and a.value = b.value
+order by a.key, a.value, b.value
+PREHOOK: type: QUERY
+PREHOOK: Input: default@tab
+PREHOOK: Input: default@tab@ds=2008-04-08
+PREHOOK: Input: default@tab_part
+PREHOOK: Input: default@tab_part@ds=2008-04-08
+#### A masked pattern was here ####
+POSTHOOK: query: select a.key, a.value, b.value
+from tab a join tab_part b on a.key = b.key and a.value = b.value
+order by a.key, a.value, b.value
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@tab
+POSTHOOK: Input: default@tab@ds=2008-04-08
+POSTHOOK: Input: default@tab_part
+POSTHOOK: Input: default@tab_part@ds=2008-04-08
+#### A masked pattern was here ####
+0	val_0	val_0
+0	val_0	val_0
+0	val_0	val_0
+0	val_0	val_0
+0	val_0	val_0
+0	val_0	val_0
+0	val_0	val_0
+0	val_0	val_0
+0	val_0	val_0
+2	val_2	val_2
+4	val_4	val_4
+8	val_8	val_8
+11	val_11	val_11
+15	val_15	val_15
+15	val_15	val_15
+15	val_15	val_15
+15	val_15	val_15
+17	val_17	val_17
+19	val_19	val_19
+20	val_20	val_20
+24	val_24	val_24
+24	val_24	val_24
+24	val_24	val_24
+24	val_24	val_24
+26	val_26	val_26
+26	val_26	val_26
+26	val_26	val_26
+26	val_26	val_26
+28	val_28	val_28
+33	val_33	val_33
+35	val_35	val_35
+35	val_35	val_35
+35	val_35	val_35
+35	val_35	val_35
+35	val_35	val_35
+35	val_35	val_35
+35	val_35	val_35
+35	val_35	val_35
+35	val_35	val_35
+37	val_37	val_37
+37	val_37	val_37
+37	val_37	val_37
+37	val_37	val_37
+42	val_42	val_42
+42	val_42	val_42
+42	val_42	val_42
+42	val_42	val_42
+44	val_44	val_44
+51	val_51	val_51
+51	val_51	val_51
+51	val_51	val_51
+51	val_51	val_51
+53	val_53	val_53
+57	val_57	val_57
+64	val_64	val_64
+66	val_66	val_66
+77	val_77	val_77
+80	val_80	val_80
+82	val_82	val_82
+84	val_84	val_84
+84	val_84	val_84
+84	val_84	val_84
+84	val_84	val_84
+86	val_86	val_86
+95	val_95	val_95
+95	val_95	val_95
+95	val_95	val_95
+95	val_95	val_95
+97	val_97	val_97
+97	val_97	val_97
+97	val_97	val_97
+97	val_97	val_97
+103	val_103	val_103
+103	val_103	val_103
+103	val_103	val_103
+103	val_103	val_103
+105	val_105	val_105
+114	val_114	val_114
+116	val_116	val_116
+118	val_118	val_118
+118	val_118	val_118
+118	val_118	val_118
+118	val_118	val_118
+125	val_125	val_125
+125	val_125	val_125
+125	val_125	val_125
+125	val_125	val_125
+129	val_129	val_129
+129	val_129	val_129
+129	val_129	val_129
+129	val_129	val_129
+134	val_134	val_134
+134	val_134	val_134
+134	val_134	val_134
+134	val_134	val_134
+136	val_136	val_136
+138	val_138	val_138
+138	val_138	val_138
+138	val_138	val_138
+138	val_138	val_138
+138	val_138	val_138
+138	val_138	val_138
+138	val_138	val_138
+138	val_138	val_138
+138	val_138	val_138
+138	val_138	val_138
+138	val_138	val_138
+138	val_138	val_138
+138	val_138	val_138
+138	val_138	val_138
+138	val_138	val_138
+138	val_138	val_138
+143	val_143	val_143
+145	val_145	val_145
+149	val_149	val_149
+149	val_149	val_149
+149	val_149	val_149
+149	val_149	val_149
+150	val_150	val_150
+152	val_152	val_152
+152	val_152	val_152
+152	val_152	val_152
+152	val_152	val_152
+156	val_156	val_156
+158	val_158	val_158
+163	val_163	val_163
+165	val_165	val_165
+165	val_165	val_165
+165	val_165	val_165
+165	val_165	val_165
+167	val_167	val_167
+167	val_167	val_167
+167	val_167	val_167
+167	val_167	val_167
+167	val_167	val_167
+167	val_167	val_167
+167	val_167	val_167
+167	val_167	val_167
+167	val_167	val_167
+169	val_169	val_169
+169	val_169	val_169
+169	val_169	val_169
+169	val_169	val_169
+169	val_169	val_169
+169	val_169	val_169
+169	val_169	val_169
+169	val_169	val_169
+169	val_169	val_169
+169	val_169	val_169
+169	val_169	val_169
+169	val_169	val_169
+169	val_169	val_169
+169	val_169	val_169
+169	val_169	val_169
+169	val_169	val_169
+170	val_170	val_170
+172	val_172	val_172
+172	val_172	val_172
+172	val_172	val_172
+172	val_172	val_172
+174	val_174	val_174
+174	val_174	val_174
+174	val_174	val_174
+174	val_174	val_174
+176	val_176	val_176
+176	val_176	val_176
+176	val_176	val_176
+176	val_176	val_176
+178	val_178	val_178
+181	val_181	val_181
+183	val_183	val_183
+187	val_187	val_187
+187	val_187	val_187
+187	val_187	val_187
+187	val_187	val_187
+187	val_187	val_187
+187	val_187	val_187
+187	val_187	val_187
+187	val_187	val_187
+187	val_187	val_187
+189	val_189	val_189
+190	val_190	val_190
+192	val_192	val_192
+194	val_194	val_194
+196	val_196	val_196
+200	val_200	val_200
+200	val_200	val_200
+200	val_200	val_200
+200	val_200	val_200
+202	val_202	val_202
+208	val_208	val_208
+208	val_208	val_208
+208	val_208	val_208
+208	val_208	val_208
+208	val_208	val_208
+208	val_208	val_208
+208	val_208	val_208
+208	val_208	val_208
+208	val_208	val_208
+213	val_213	val_213
+213	val_213	val_213
+213	val_213	val_213
+213	val_213	val_213
+217	val_217	val_217
+217	val_217	val_217
+217	val_217	val_217
+217	val_217	val_217
+219	val_219	val_219
+219	val_219	val_219
+219	val_219	val_219
+219	val_219	val_219
+222	val_222	val_222
+224	val_224	val_224
+224	val_224	val_224
+224	val_224	val_224
+224	val_224	val_224
+226	val_226	val_226
+228	val_228	val_228
+233	val_233	val_233
+233	val_233	val_233
+233	val_233	val_233
+233	val_233	val_233
+235	val_235	val_235
+237	val_237	val_237
+237	val_237	val_237
+237	val_237	val_237
+237	val_237	val_237
+239	val_239	val_239
+239	val_239	val_239
+239	val_239	val_239
+239	val_239	val_239
+242	val_242	val_242
+242	val_242	val_242
+242	val_242	val_242
+242	val_242	val_242
+244	val_244	val_244
+248	val_248	val_248
+255	val_255	val_255
+255	val_255	val_255
+255	val_255	val_255
+255	val_255	val_255
+257	val_257	val_257
+260	val_260	val_260
+262	val_262	val_262
+266	val_266	val_266
+273	val_273	val_273
+273	val_273	val_273
+273	val_273	val_273
+273	val_273	val_273
+273	val_273	val_273
+273	val_273	val_273
+273	val_273	val_273
+273	val_273	val_273
+273	val_273	val_273
+275	val_275	val_275
+277	val_277	val_277
+277	val_277	val_277
+277	val_277	val_277
+277	val_277	val_277
+277	val_277	val_277
+277	val_277	val_277
+277	val_277	val_277
+277	val_277	val_277
+277	val_277	val_277
+277	val_277	val_277
+277	val_277	val_277
+277	val_277	val_277
+277	val_277	val_277
+277	val_277	val_277
+277	val_277	val_277
+277	val_277	val_277
+280	val_280	val_280
+280	val_280	val_280
+280	val_280	val_280
+280	val_280	val_280
+282	val_282	val_282
+282	val_282	val_282
+282	val_282	val_282
+282	val_282	val_282
+284	val_284	val_284
+286	val_286	val_286
+288	val_288	val_288
+288	val_288	val_288
+288	val_288	val_288
+288	val_288	val_288
+291	val_291	val_291
+305	val_305	val_305
+307	val_307	val_307
+307	val_307	val_307
+307	val_307	val_307
+307	val_307	val_307
+309	val_309	val_309
+309	val_309	val_309
+309	val_309	val_309
+309	val_309	val_309
+310	val_310	val_310
+316	val_316	val_316
+316	val_316	val_316
+316	val_316	val_316
+316	val_316	val_316
+316	val_316	val_316
+316	val_316	val_316
+316	val_316	val_316
+316	val_316	val_316
+316	val_316	val_316
+318	val_318	val_318
+318	val_318	val_318
+318	val_318	val_318
+318	val_318	val_318
+318	val_318	val_318
+318	val_318	val_318
+318	val_318	val_318
+318	val_318	val_318
+318	val_318	val_318
+321	val_321	val_321
+321	val_321	val_321
+321	val_321	val_321
+321	val_321	val_321
+323	val_323	val_323
+325	val_325	val_325
+325	val_325	val_325
+325	val_325	val_325
+325	val_325	val_325
+327	val_327	val_327
+327	val_327	val_327
+327	val_327	val_327
+327	val_327	val_327
+327	val_327	val_327
+327	val_327	val_327
+327	val_327	val_327
+327	val_327	val_327
+327	val_327	val_327
+332	val_332	val_332
+336	val_336	val_336
+338	val_338	val_338
+341	val_341	val_341
+345	val_345	val_345
+356	val_356	val_356
+365	val_365	val_365
+367	val_367	val_367
+367	val_367	val_367
+367	val_367	val_367
+367	val_367	val_367
+369	val_369	val_369
+369	val_369	val_369
+369	val_369	val_369
+369	val_369	val_369
+369	val_369	val_369
+369	val_369	val_369
+369	val_369	val_369
+369	val_369	val_369
+369	val_369	val_369
+374	val_374	val_374
+378	val_378	val_378
+389	val_389	val_389
+392	val_392	val_392
+394	val_394	val_394
+396	val_396	val_396
+396	val_396	val_396
+396	val_396	val_396
+396	val_396	val_396
+396	val_396	val_396
+396	val_396	val_396
+396	val_396	val_396
+396	val_396	val_396
+396	val_396	val_396
+400	val_400	val_400
+402	val_402	val_402
+404	val_404	val_404
+404	val_404	val_404
+404	val_404	val_404
+404	val_404	val_404
+406	val_406	val_406
+406	val_406	val_406
+406	val_406	val_406
+406	val_406	val_406
+406	val_406	val_406
+406	val_406	val_406
+406	val_406	val_406
+406	val_406	val_406
+406	val_406	val_406
+406	val_406	val_406
+406	val_406	val_406
+406	val_406	val_406
+406	val_406	val_406
+406	val_406	val_406
+406	val_406	val_406
+406	val_406	val_406
+411	val_411	val_411
+413	val_413	val_413
+413	val_413	val_413
+413	val_413	val_413
+413	val_413	val_413
+417	val_417	val_417
+417	val_417	val_417
+417	val_417	val_417
+417	val_417	val_417
+417	val_417	val_417
+417	val_417	val_417
+417	val_417	val_417
+417	val_417	val_417
+417	val_417	val_417
+419	val_419	val_419
+424	val_424	val_424
+424	val_424	val_424
+424	val_424	val_424
+424	val_424	val_424
+431	val_431	val_431
+431	val_431	val_431
+431	val_431	val_431
+431	val_431	val_431
+431	val_431	val_431
+431	val_431	val_431
+431	val_431	val_431
+431	val_431	val_431
+431	val_431	val_431
+435	val_435	val_435
+437	val_437	val_437
+439	val_439	val_439
+439	val_439	val_439
+439	val_439	val_439
+439	val_439	val_439
+444	val_444	val_444
+446	val_446	val_446
+448	val_448	val_448
+453	val_453	val_453
+455	val_455	val_455
+457	val_457	val_457
+459	val_459	val_459
+459	val_459	val_459
+459	val_459	val_459
+459	val_459	val_459
+460	val_460	val_460
+462	val_462	val_462
+462	val_462	val_462
+462	val_462	val_462
+462	val_462	val_462
+466	val_466	val_466
+466	val_466	val_466
+466	val_466	val_466
+466	val_466	val_466
+466	val_466	val_466
+466	val_466	val_466
+466	val_466	val_466
+466	val_466	val_466
+466	val_466	val_466
+468	val_468	val_468
+468	val_468	val_468
+468	val_468	val_468
+468	val_468	val_468
+468	val_468	val_468
+468	val_468	val_468
+468	val_468	val_468
+468	val_468	val_468
+468	val_468	val_468
+468	val_468	val_468
+468	val_468	val_468
+468	val_468	val_468
+468	val_468	val_468
+468	val_468	val_468
+468	val_468	val_468
+468	val_468	val_468
+475	val_475	val_475
+477	val_477	val_477
+479	val_479	val_479
+480	val_480	val_480
+480	val_480	val_480
+480	val_480	val_480
+480	val_480	val_480
+480	val_480	val_480
+480	val_480	val_480
+480	val_480	val_480
+480	val_480	val_480
+480	val_480	val_480
+482	val_482	val_482
+484	val_484	val_484
+491	val_491	val_491
+493	val_493	val_493
+495	val_495	val_495
+497	val_497	val_497
+PREHOOK: query: CREATE TABLE tab2(key int, value string) PARTITIONED BY(ds STRING) STORED AS TEXTFILE
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@tab2
+POSTHOOK: query: CREATE TABLE tab2(key int, value string) PARTITIONED BY(ds STRING) STORED AS TEXTFILE
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@tab2
+PREHOOK: query: insert overwrite table tab2 partition (ds='2008-04-08')
+select key,value from srcbucket_mapjoin
+PREHOOK: type: QUERY
+PREHOOK: Input: default@srcbucket_mapjoin
+PREHOOK: Input: default@srcbucket_mapjoin@ds=2008-04-08
+PREHOOK: Output: default@tab2@ds=2008-04-08
+POSTHOOK: query: insert overwrite table tab2 partition (ds='2008-04-08')
+select key,value from srcbucket_mapjoin
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@srcbucket_mapjoin
+POSTHOOK: Input: default@srcbucket_mapjoin@ds=2008-04-08
+POSTHOOK: Output: default@tab2@ds=2008-04-08
+POSTHOOK: Lineage: tab2 PARTITION(ds=2008-04-08).key SIMPLE [(srcbucket_mapjoin)srcbucket_mapjoin.FieldSchema(name:key, type:int, comment:null), ]
+POSTHOOK: Lineage: tab2 PARTITION(ds=2008-04-08).value SIMPLE [(srcbucket_mapjoin)srcbucket_mapjoin.FieldSchema(name:value, type:string, comment:null), ]
+PREHOOK: query: analyze table tab2 compute statistics for columns
+PREHOOK: type: QUERY
+PREHOOK: Input: default@tab2
+PREHOOK: Input: default@tab2@ds=2008-04-08
+#### A masked pattern was here ####
+POSTHOOK: query: analyze table tab2 compute statistics for columns
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@tab2
+POSTHOOK: Input: default@tab2@ds=2008-04-08
+#### A masked pattern was here ####
+PREHOOK: query: explain select a.key, a.value, b.value
+        from tab2 a join tab_part b on a.key = b.key and a.value = b.value
+PREHOOK: type: QUERY
+POSTHOOK: query: explain select a.key, a.value, b.value
+        from tab2 a join tab_part b on a.key = b.key and a.value = b.value
+POSTHOOK: type: QUERY
+STAGE DEPENDENCIES:
+  Stage-2 is a root stage
+  Stage-1 depends on stages: Stage-2
+  Stage-0 depends on stages: Stage-1
+
+STAGE PLANS:
+  Stage: Stage-2
+    Spark
+#### A masked pattern was here ####
+      Vertices:
+        Map 1 
+            Map Operator Tree:
+                TableScan
+                  alias: a
+                  Statistics: Num rows: 242 Data size: 2566 Basic stats: COMPLETE Column stats: NONE
+                  Filter Operator
+                    predicate: (key is not null and value is not null) (type: boolean)
+                    Statistics: Num rows: 242 Data size: 2566 Basic stats: COMPLETE Column stats: NONE
+                    Select Operator
+                      expressions: key (type: int), value (type: string)
+                      outputColumnNames: _col0, _col1
+                      Statistics: Num rows: 242 Data size: 2566 Basic stats: COMPLETE Column stats: NONE
+                      Spark HashTable Sink Operator
+                        keys:
+                          0 _col0 (type: int), _col1 (type: string)
+                          1 _col0 (type: int), _col1 (type: string)
+            Local Work:
+              Map Reduce Local Work
+
+  Stage: Stage-1
+    Spark
+#### A masked pattern was here ####
+      Vertices:
+        Map 2 
+            Map Operator Tree:
+                TableScan
+                  alias: b
+                  Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+                  Filter Operator
+                    predicate: (key is not null and value is not null) (type: boolean)
+                    Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+                    Select Operator
+                      expressions: key (type: int), value (type: string)
+                      outputColumnNames: _col0, _col1
+                      Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+                      Map Join Operator
+                        condition map:
+                             Inner Join 0 to 1
+                        keys:
+                          0 _col0 (type: int), _col1 (type: string)
+                          1 _col0 (type: int), _col1 (type: string)
+                        outputColumnNames: _col0, _col1, _col3
+                        input vertices:
+                          0 Map 1
+                        Statistics: Num rows: 550 Data size: 5843 Basic stats: COMPLETE Column stats: NONE
+                        Select Operator
+                          expressions: _col0 (type: int), _col1 (type: string), _col3 (type: string)
+                          outputColumnNames: _col0, _col1, _col2
+                          Statistics: Num rows: 550 Data size: 5843 Basic stats: COMPLETE Column stats: NONE
+                          File Output Operator
+                            compressed: false
+                            Statistics: Num rows: 550 Data size: 5843 Basic stats: COMPLETE Column stats: NONE
+                            table:
+                                input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+                                output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+                                serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+            Local Work:
+              Map Reduce Local Work
+
+  Stage: Stage-0
+    Fetch Operator
+      limit: -1
+      Processor Tree:
+        ListSink
+
+PREHOOK: query: select a.key, a.value, b.value
+from tab2 a join tab_part b on a.key = b.key and a.value = b.value
+order by a.key, a.value, b.value
+PREHOOK: type: QUERY
+PREHOOK: Input: default@tab2
+PREHOOK: Input: default@tab2@ds=2008-04-08
+PREHOOK: Input: default@tab_part
+PREHOOK: Input: default@tab_part@ds=2008-04-08
+#### A masked pattern was here ####
+POSTHOOK: query: select a.key, a.value, b.value
+from tab2 a join tab_part b on a.key = b.key and a.value = b.value
+order by a.key, a.value, b.value
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@tab2
+POSTHOOK: Input: default@tab2@ds=2008-04-08
+POSTHOOK: Input: default@tab_part
+POSTHOOK: Input: default@tab_part@ds=2008-04-08
+#### A masked pattern was here ####
+0	val_0	val_0
+0	val_0	val_0
+0	val_0	val_0
+0	val_0	val_0
+0	val_0	val_0
+0	val_0	val_0
+0	val_0	val_0
+0	val_0	val_0
+0	val_0	val_0
+2	val_2	val_2
+4	val_4	val_4
+8	val_8	val_8
+11	val_11	val_11
+15	val_15	val_15
+15	val_15	val_15
+15	val_15	val_15
+15	val_15	val_15
+17	val_17	val_17
+19	val_19	val_19
+20	val_20	val_20
+24	val_24	val_24
+24	val_24	val_24
+24	val_24	val_24
+24	val_24	val_24
+26	val_26	val_26
+26	val_26	val_26
+26	val_26	val_26
+26	val_26	val_26
+28	val_28	val_28
+33	val_33	val_33
+35	val_35	val_35
+35	val_35	val_35
+35	val_35	val_35
+35	val_35	val_35
+35	val_35	val_35
+35	val_35	val_35
+35	val_35	val_35
+35	val_35	val_35
+35	val_35	val_35
+37	val_37	val_37
+37	val_37	val_37
+37	val_37	val_37
+37	val_37	val_37
+42	val_42	val_42
+42	val_42	val_42
+42	val_42	val_42
+42	val_42	val_42
+44	val_44	val_44
+51	val_51	val_51
+51	val_51	val_51
+51	val_51	val_51
+51	val_51	val_51
+53	val_53	val_53
+57	val_57	val_57
+64	val_64	val_64
+66	val_66	val_66
+77	val_77	val_77
+80	val_80	val_80
+82	val_82	val_82
+84	val_84	val_84
+84	val_84	val_84
+84	val_84	val_84
+84	val_84	val_84
+86	val_86	val_86
+95	val_95	val_95
+95	val_95	val_95
+95	val_95	val_95
+95	val_95	val_95
+97	val_97	val_97
+97	val_97	val_97
+97	val_97	val_97
+97	val_97	val_97
+103	val_103	val_103
+103	val_103	val_103
+103	val_103	val_103
+103	val_103	val_103
+105	val_105	val_105
+114	val_114	val_114
+116	val_116	val_116
+118	val_118	val_118
+118	val_118	val_118
+118	val_118	val_118
+118	val_118	val_118
+125	val_125	val_125
+125	val_125	val_125
+125	val_125	val_125
+125	val_125	val_125
+129	val_129	val_129
+129	val_129	val_129
+129	val_129	val_129
+129	val_129	val_129
+134	val_134	val_134
+134	val_134	val_134
+134	val_134	val_134
+134	val_134	val_134
+136	val_136	val_136
+138	val_138	val_138
+138	val_138	val_138
+138	val_138	val_138
+138	val_138	val_138
+138	val_138	val_138
+138	val_138	val_138
+138	val_138	val_138
+138	val_138	val_138
+138	val_138	val_138
+138	val_138	val_138
+138	val_138	val_138
+138	val_138	val_138
+138	val_138	val_138
+138	val_138	val_138
+138	val_138	val_138
+138	val_138	val_138
+143	val_143	val_143
+145	val_145	val_145
+149	val_149	val_149
+149	val_149	val_149
+149	val_149	val_149
+149	val_149	val_149
+150	val_150	val_150
+152	val_152	val_152
+152	val_152	val_152
+152	val_152	val_152
+152	val_152	val_152
+156	val_156	val_156
+158	val_158	val_158
+163	val_163	val_163
+165	val_165	val_165
+165	val_165	val_165
+165	val_165	val_165
+165	val_165	val_165
+167	val_167	val_167
+167	val_167	val_167
+167	val_167	val_167
+167	val_167	val_167
+167	val_167	val_167
+167	val_167	val_167
+167	val_167	val_167
+167	val_167	val_167
+167	val_167	val_167
+169	val_169	val_169
+169	val_169	val_169
+169	val_169	val_169
+169	val_169	val_169
+169	val_169	val_169
+169	val_169	val_169
+169	val_169	val_169
+169	val_169	val_169
+169	val_169	val_169
+169	val_169	val_169
+169	val_169	val_169
+169	val_169	val_169
+169	val_169	val_169
+169	val_169	val_169
+169	val_169	val_169
+169	val_169	val_169
+170	val_170	val_170
+172	val_172	val_172
+172	val_172	val_172
+172	val_172	val_172
+172	val_172	val_172
+174	val_174	val_174
+174	val_174	val_174
+174	val_174	val_174
+174	val_174	val_174
+176	val_176	val_176
+176	val_176	val_176
+176	val_176	val_176
+176	val_176	val_176
+178	val_178	val_178
+181	val_181	val_181
+183	val_183	val_183
+187	val_187	val_187
+187	val_187	val_187
+187	val_187	val_187
+187	val_187	val_187
+187	val_187	val_187
+187	val_187	val_187
+187	val_187	val_187
+187	val_187	val_187
+187	val_187	val_187
+189	val_189	val_189
+190	val_190	val_190
+192	val_192	val_192
+194	val_194	val_194
+196	val_196	val_196
+200	val_200	val_200
+200	val_200	val_200
+200	val_200	val_200
+200	val_200	val_200
+202	val_202	val_202
+208	val_208	val_208
+208	val_208	val_208
+208	val_208	val_208
+208	val_208	val_208
+208	val_208	val_208
+208	val_208	val_208
+208	val_208	val_208
+208	val_208	val_208
+208	val_208	val_208
+213	val_213	val_213
+213	val_213	val_213
+213	val_213	val_213
+213	val_213	val_213
+217	val_217	val_217
+217	val_217	val_217
+217	val_217	val_217
+217	val_217	val_217
+219	val_219	val_219
+219	val_219	val_219
+219	val_219	val_219
+219	val_219	val_219
+222	val_222	val_222
+224	val_224	val_224
+224	val_224	val_224
+224	val_224	val_224
+224	val_224	val_224
+226	val_226	val_226
+228	val_228	val_228
+233	val_233	val_233
+233	val_233	val_233
+233	val_233	val_233
+233	val_233	val_233
+235	val_235	val_235
+237	val_237	val_237
+237	val_237	val_237
+237	val_237	val_237
+237	val_237	val_237
+239	val_239	val_239
+239	val_239	val_239
+239	val_239	val_239
+239	val_239	val_239
+242	val_242	val_242
+242	val_242	val_242
+242	val_242	val_242
+242	val_242	val_242
+244	val_244	val_244
+248	val_248	val_248
+255	val_255	val_255
+255	val_255	val_255
+255	val_255	val_255
+255	val_255	val_255
+257	val_257	val_257
+260	val_260	val_260
+262	val_262	val_262
+266	val_266	val_266
+273	val_273	val_273
+273	val_273	val_273
+273	val_273	val_273
+273	val_273	val_273
+273	val_273	val_273
+273	val_273	val_273
+273	val_273	val_273
+273	val_273	val_273
+273	val_273	val_273
+275	val_275	val_275
+277	val_277	val_277
+277	val_277	val_277
+277	val_277	val_277
+277	val_277	val_277
+277	val_277	val_277
+277	val_277	val_277
+277	val_277	val_277
+277	val_277	val_277
+277	val_277	val_277
+277	val_277	val_277
+277	val_277	val_277
+277	val_277	val_277
+277	val_277	val_277
+277	val_277	val_277
+277	val_277	val_277
+277	val_277	val_277
+280	val_280	val_280
+280	val_280	val_280
+280	val_280	val_280
+280	val_280	val_280
+282	val_282	val_282
+282	val_282	val_282
+282	val_282	val_282
+282	val_282	val_282
+284	val_284	val_284
+286	val_286	val_286
+288	val_288	val_288
+288	val_288	val_288
+288	val_288	val_288
+288	val_288	val_288
+291	val_291	val_291
+305	val_305	val_305
+307	val_307	val_307
+307	val_307	val_307
+307	val_307	val_307
+307	val_307	val_307
+309	val_309	val_309
+309	val_309	val_309
+309	val_309	val_309
+309	val_309	val_309
+310	val_310	val_310
+316	val_316	val_316
+316	val_316	val_316
+316	val_316	val_316
+316	val_316	val_316
+316	val_316	val_316
+316	val_316	val_316
+316	val_316	val_316
+316	val_316	val_316
+316	val_316	val_316
+318	val_318	val_318
+318	val_318	val_318
+318	val_318	val_318
+318	val_318	val_318
+318	val_318	val_318
+318	val_318	val_318
+318	val_318	val_318
+318	val_318	val_318
+318	val_318	val_318
+321	val_321	val_321
+321	val_321	val_321
+321	val_321	val_321
+321	val_321	val_321
+323	val_323	val_323
+325	val_325	val_325
+325	val_325	val_325
+325	val_325	val_325
+325	val_325	val_325
+327	val_327	val_327
+327	val_327	val_327
+327	val_327	val_327
+327	val_327	val_327
+327	val_327	val_327
+327	val_327	val_327
+327	val_327	val_327
+327	val_327	val_327
+327	val_327	val_327
+332	val_332	val_332
+336	val_336	val_336
+338	val_338	val_338
+341	val_341	val_341
+345	val_345	val_345
+356	val_356	val_356
+365	val_365	val_365
+367	val_367	val_367
+367	val_367	val_367
+367	val_367	val_367
+367	val_367	val_367
+369	val_369	val_369
+369	val_369	val_369
+369	val_369	val_369
+369	val_369	val_369
+369	val_369	val_369
+369	val_369	val_369
+369	val_369	val_369
+369	val_369	val_369
+369	val_369	val_369
+374	val_374	val_374
+378	val_378	val_378
+389	val_389	val_389
+392	val_392	val_392
+394	val_394	val_394
+396	val_396	val_396
+396	val_396	val_396
+396	val_396	val_396
+396	val_396	val_396
+396	val_396	val_396
+396	val_396	val_396
+396	val_396	val_396
+396	val_396	val_396
+396	val_396	val_396
+400	val_400	val_400
+402	val_402	val_402
+404	val_404	val_404
+404	val_404	val_404
+404	val_404	val_404
+404	val_404	val_404
+406	val_406	val_406
+406	val_406	val_406
+406	val_406	val_406
+406	val_406	val_406
+406	val_406	val_406
+406	val_406	val_406
+406	val_406	val_406
+406	val_406	val_406
+406	val_406	val_406
+406	val_406	val_406
+406	val_406	val_406
+406	val_406	val_406
+406	val_406	val_406
+406	val_406	val_406
+406	val_406	val_406
+406	val_406	val_406
+411	val_411	val_411
+413	val_413	val_413
+413	val_413	val_413
+413	val_413	val_413
+413	val_413	val_413
+417	val_417	val_417
+417	val_417	val_417
+417	val_417	val_417
+417	val_417	val_417
+417	val_417	val_417
+417	val_417	val_417
+417	val_417	val_417
+417	val_417	val_417
+417	val_417	val_417
+419	val_419	val_419
+424	val_424	val_424
+424	val_424	val_424
+424	val_424	val_424
+424	val_424	val_424
+431	val_431	val_431
+431	val_431	val_431
+431	val_431	val_431
+431	val_431	val_431
+431	val_431	val_431
+431	val_431	val_431
+431	val_431	val_431
+431	val_431	val_431
+431	val_431	val_431
+435	val_435	val_435
+437	val_437	val_437
+439	val_439	val_439
+439	val_439	val_439
+439	val_439	val_439
+439	val_439	val_439
+444	val_444	val_444
+446	val_446	val_446
+448	val_448	val_448
+453	val_453	val_453
+455	val_455	val_455
+457	val_457	val_457
+459	val_459	val_459
+459	val_459	val_459
+459	val_459	val_459
+459	val_459	val_459
+460	val_460	val_460
+462	val_462	val_462
+462	val_462	val_462
+462	val_462	val_462
+462	val_462	val_462
+466	val_466	val_466
+466	val_466	val_466
+466	val_466	val_466
+466	val_466	val_466
+466	val_466	val_466
+466	val_466	val_466
+466	val_466	val_466
+466	val_466	val_466
+466	val_466	val_466
+468	val_468	val_468
+468	val_468	val_468
+468	val_468	val_468
+468	val_468	val_468
+468	val_468	val_468
+468	val_468	val_468
+468	val_468	val_468
+468	val_468	val_468
+468	val_468	val_468
+468	val_468	val_468
+468	val_468	val_468
+468	val_468	val_468
+468	val_468	val_468
+468	val_468	val_468
+468	val_468	val_468
+468	val_468	val_468
+475	val_475	val_475
+477	val_477	val_477
+479	val_479	val_479
+480	val_480	val_480
+480	val_480	val_480
+480	val_480	val_480
+480	val_480	val_480
+480	val_480	val_480
+480	val_480	val_480
+480	val_480	val_480
+480	val_480	val_480
+480	val_480	val_480
+482	val_482	val_482
+484	val_484	val_484
+491	val_491	val_491
+493	val_493	val_493
+495	val_495	val_495
+497	val_497	val_497
+PREHOOK: query: explain select a.key, a.value, b.value
+        from tab2 a join tab_part b on a.key = b.key and a.value = b.value
+PREHOOK: type: QUERY
+POSTHOOK: query: explain select a.key, a.value, b.value
+        from tab2 a join tab_part b on a.key = b.key and a.value = b.value
+POSTHOOK: type: QUERY
+STAGE DEPENDENCIES:
+  Stage-2 is a root stage
+  Stage-1 depends on stages: Stage-2
+  Stage-0 depends on stages: Stage-1
+
+STAGE PLANS:
+  Stage: Stage-2
+    Spark
+#### A masked pattern was here ####
+      Vertices:
+        Map 1 
+            Map Operator Tree:
+                TableScan
+                  alias: a
+                  Statistics: Num rows: 242 Data size: 2566 Basic stats: COMPLETE Column stats: NONE
+                  Filter Operator
+                    predicate: (key is not null and value is not null) (type: boolean)
+                    Statistics: Num rows: 242 Data size: 2566 Basic stats: COMPLETE Column stats: NONE
+                    Select Operator
+                      expressions: key (type: int), value (type: string)
+                      outputColumnNames: _col0, _col1
+                      Statistics: Num rows: 242 Data size: 2566 Basic stats: COMPLETE Column stats: NONE
+                      Spark HashTable Sink Operator
+                        keys:
+                          0 _col0 (type: int), _col1 (type: string)
+                          1 _col0 (type: int), _col1 (type: string)
+            Local Work:
+              Map Reduce Local Work
+
+  Stage: Stage-1
+    Spark
+#### A masked pattern was here ####
+      Vertices:
+        Map 2 
+            Map Operator Tree:
+                TableScan
+                  alias: b
+                  Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+                  Filter Operator
+                    predicate: (key is not null and value is not null) (type: boolean)
+                    Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+                    Select Operator
+                      expressions: key (type: int), value (type: string)
+                      outputColumnNames: _col0, _col1
+                      Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+                      Map Join Operator
+                        condition map:
+                             Inner Join 0 to 1
+                        keys:
+                          0 _col0 (type: int), _col1 (type: string)
+                          1 _col0 (type: int), _col1 (type: string)
+                        outputColumnNames: _col0, _col1, _col3
+                        input vertices:
+                          0 Map 1
+                        Statistics: Num rows: 550 Data size: 5843 Basic stats: COMPLETE Column stats: NONE
+                        Select Operator
+                          expressions: _col0 (type: int), _col1 (type: string), _col3 (type: string)
+                          outputColumnNames: _col0, _col1, _col2
+                          Statistics: Num rows: 550 Data size: 5843 Basic stats: COMPLETE Column stats: NONE
+                          File Output Operator
+                            compressed: false
+                            Statistics: Num rows: 550 Data size: 5843 Basic stats: COMPLETE Column stats: NONE
+                            table:
+                                input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+                                output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+                                serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+            Local Work:
+              Map Reduce Local Work
+
+  Stage: Stage-0
+    Fetch Operator
+      limit: -1
+      Processor Tree:
+        ListSink
+
+PREHOOK: query: select a.key, a.value, b.value
+from tab2 a join tab_part b on a.key = b.key and a.value = b.value
+order by a.key, a.value, b.value
+PREHOOK: type: QUERY
+PREHOOK: Input: default@tab2
+PREHOOK: Input: default@tab2@ds=2008-04-08
+PREHOOK: Input: default@tab_part
+PREHOOK: Input: default@tab_part@ds=2008-04-08
+#### A masked pattern was here ####
+POSTHOOK: query: select a.key, a.value, b.value
+from tab2 a join tab_part b on a.key = b.key and a.value = b.value
+order by a.key, a.value, b.value
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@tab2
+POSTHOOK: Input: default@tab2@ds=2008-04-08
+POSTHOOK: Input: default@tab_part
+POSTHOOK: Input: default@tab_part@ds=2008-04-08
+#### A masked pattern was here ####
+0	val_0	val_0
+0	val_0	val_0
+0	val_0	val_0
+0	val_0	val_0
+0	val_0	val_0
+0	val_0	val_0
+0	val_0	val_0
+0	val_0	val_0
+0	val_0	val_0
+2	val_2	val_2
+4	val_4	val_4
+8	val_8	val_8
+11	val_11	val_11
+15	val_15	val_15
+15	val_15	val_15
+15	val_15	val_15
+15	val_15	val_15
+17	val_17	val_17
+19	val_19	val_19
+20	val_20	val_20
+24	val_24	val_24
+24	val_24	val_24
+24	val_24	val_24
+24	val_24	val_24
+26	val_26	val_26
+26	val_26	val_26
+26	val_26	val_26
+26	val_26	val_26
+28	val_28	val_28
+33	val_33	val_33
+35	val_35	val_35
+35	val_35	val_35
+35	val_35	val_35
+35	val_35	val_35
+35	val_35	val_35
+35	val_35	val_35
+35	val_35	val_35
+35	val_35	val_35
+35	val_35	val_35
+37	val_37	val_37
+37	val_37	val_37
+37	val_37	val_37
+37	val_37	val_37
+42	val_42	val_42
+42	val_42	val_42
+42	val_42	val_42
+42	val_42	val_42
+44	val_44	val_44
+51	val_51	val_51
+51	val_51	val_51
+51	val_51	val_51
+51	val_51	val_51
+53	val_53	val_53
+57	val_57	val_57
+64	val_64	val_64
+66	val_66	val_66
+77	val_77	val_77
+80	val_80	val_80
+82	val_82	val_82
+84	val_84	val_84
+84	val_84	val_84
+84	val_84	val_84
+84	val_84	val_84
+86	val_86	val_86
+95	val_95	val_95
+95	val_95	val_95
+95	val_95	val_95
+95	val_95	val_95
+97	val_97	val_97
+97	val_97	val_97
+97	val_97	val_97
+97	val_97	val_97
+103	val_103	val_103
+103	val_103	val_103
+103	val_103	val_103
+103	val_103	val_103
+105	val_105	val_105
+114	val_114	val_114
+116	val_116	val_116
+118	val_118	val_118
+118	val_118	val_118
+118	val_118	val_118
+118	val_118	val_118
+125	val_125	val_125
+125	val_125	val_125
+125	val_125	val_125
+125	val_125	val_125
+129	val_129	val_129
+129	val_129	val_129
+129	val_129	val_129
+129	val_129	val_129
+134	val_134	val_134
+134	val_134	val_134
+134	val_134	val_134
+134	val_134	val_134
+136	val_136	val_136
+138	val_138	val_138
+138	val_138	val_138
+138	val_138	val_138
+138	val_138	val_138
+138	val_138	val_138
+138	val_138	val_138
+138	val_138	val_138
+138	val_138	val_138
+138	val_138	val_138
+138	val_138	val_138
+138	val_138	val_138
+138	val_138	val_138
+138	val_138	val_138
+138	val_138	val_138
+138	val_138	val_138
+138	val_138	val_138
+143	val_143	val_143
+145	val_145	val_145
+149	val_149	val_149
+149	val_149	val_149
+149	val_149	val_149
+149	val_149	val_149
+150	val_150	val_150
+152	val_152	val_152
+152	val_152	val_152
+152	val_152	val_152
+152	val_152	val_152
+156	val_156	val_156
+158	val_158	val_158
+163	val_163	val_163
+165	val_165	val_165
+165	val_165	val_165
+165	val_165	val_165
+165	val_165	val_165
+167	val_167	val_167
+167	val_167	val_167
+167	val_167	val_167
+167	val_167	val_167
+167	val_167	val_167
+167	val_167	val_167
+167	val_167	val_167
+167	val_167	val_167
+167	val_167	val_167
+169	val_169	val_169
+169	val_169	val_169
+169	val_169	val_169
+169	val_169	val_169
+169	val_169	val_169
+169	val_169	val_169
+169	val_169	val_169
+169	val_169	val_169
+169	val_169	val_169
+169	val_169	val_169
+169	val_169	val_169
+169	val_169	val_169
+169	val_169	val_169
+169	val_169	val_169
+169	val_169	val_169
+169	val_169	val_169
+170	val_170	val_170
+172	val_172	val_172
+172	val_172	val_172
+172	val_172	val_172
+172	val_172	val_172
+174	val_174	val_174
+174	val_174	val_174
+174	val_174	val_174
+174	val_174	val_174
+176	val_176	val_176
+176	val_176	val_176
+176	val_176	val_176
+176	val_176	val_176
+178	val_178	val_178
+181	val_181	val_181
+183	val_183	val_183
+187	val_187	val_187
+187	val_187	val_187
+187	val_187	val_187
+187	val_187	val_187
+187	val_187	val_187
+187	val_187	val_187
+187	val_187	val_187
+187	val_187	val_187
+187	val_187	val_187
+189	val_189	val_189
+190	val_190	val_190
+192	val_192	val_192
+194	val_194	val_194
+196	val_196	val_196
+200	val_200	val_200
+200	val_200	val_200
+200	val_200	val_200
+200	val_200	val_200
+202	val_202	val_202
+208	val_208	val_208
+208	val_208	val_208
+208	val_208	val_208
+208	val_208	val_208
+208	val_208	val_208
+208	val_208	val_208
+208	val_208	val_208
+208	val_208	val_208
+208	val_208	val_208
+213	val_213	val_213
+213	val_213	val_213
+213	val_213	val_213
+213	val_213	val_213
+217	val_217	val_217
+217	val_217	val_217
+217	val_217	val_217
+217	val_217	val_217
+219	val_219	val_219
+219	val_219	val_219
+219	val_219	val_219
+219	val_219	val_219
+222	val_222	val_222
+224	val_224	val_224
+224	val_224	val_224
+224	val_224	val_224
+224	val_224	val_224
+226	val_226	val_226
+228	val_228	val_228
+233	val_233	val_233
+233	val_233	val_233
+233	val_233	val_233
+233	val_233	val_233
+235	val_235	val_235
+237	val_237	val_237
+237	val_237	val_237
+237	val_237	val_237
+237	val_237	val_237
+239	val_239	val_239
+239	val_239	val_239
+239	val_239	val_239
+239	val_239	val_239
+242	val_242	val_242
+242	val_242	val_242
+242	val_242	val_242
+242	val_242	val_242
+244	val_244	val_244
+248	val_248	val_248
+255	val_255	val_255
+255	val_255	val_255
+255	val_255	val_255
+255	val_255	val_255
+257	val_257	val_257
+260	val_260	val_260
+262	val_262	val_262
+266	val_266	val_266
+273	val_273	val_273
+273	val_273	val_273
+273	val_273	val_273
+273	val_273	val_273
+273	val_273	val_273
+273	val_273	val_273
+273	val_273	val_273
+273	val_273	val_273
+273	val_273	val_273
+275	val_275	val_275
+277	val_277	val_277
+277	val_277	val_277
+277	val_277	val_277
+277	val_277	val_277
+277	val_277	val_277
+277	val_277	val_277
+277	val_277	val_277
+277	val_277	val_277
+277	val_277	val_277
+277	val_277	val_277
+277	val_277	val_277
+277	val_277	val_277
+277	val_277	val_277
+277	val_277	val_277
+277	val_277	val_277
+277	val_277	val_277
+280	val_280	val_280
+280	val_280	val_280
+280	val_280	val_280
+280	val_280	val_280
+282	val_282	val_282
+282	val_282	val_282
+282	val_282	val_282
+282	val_282	val_282
+284	val_284	val_284
+286	val_286	val_286
+288	val_288	val_288
+288	val_288	val_288
+288	val_288	val_288
+288	val_288	val_288
+291	val_291	val_291
+305	val_305	val_305
+307	val_307	val_307
+307	val_307	val_307
+307	val_307	val_307
+307	val_307	val_307
+309	val_309	val_309
+309	val_309	val_309
+309	val_309	val_309
+309	val_309	val_309
+310	val_310	val_310
+316	val_316	val_316
+316	val_316	val_316
+316	val_316	val_316
+316	val_316	val_316
+316	val_316	val_316
+316	val_316	val_316
+316	val_316	val_316
+316	val_316	val_316
+316	val_316	val_316
+318	val_318	val_318
+318	val_318	val_318
+318	val_318	val_318
+318	val_318	val_318
+318	val_318	val_318
+318	val_318	val_318
+318	val_318	val_318
+318	val_318	val_318
+318	val_318	val_318
+321	val_321	val_321
+321	val_321	val_321
+321	val_321	val_321
+321	val_321	val_321
+323	val_323	val_323
+325	val_325	val_325
+325	val_325	val_325
+325	val_325	val_325
+325	val_325	val_325
+327	val_327	val_327
+327	val_327	val_327
+327	val_327	val_327
+327	val_327	val_327
+327	val_327	val_327
+327	val_327	val_327
+327	val_327	val_327
+327	val_327	val_327
+327	val_327	val_327
+332	val_332	val_332
+336	val_336	val_336
+338	val_338	val_338
+341	val_341	val_341
+345	val_345	val_345
+356	val_356	val_356
+365	val_365	val_365
+367	val_367	val_367
+367	val_367	val_367
+367	val_367	val_367
+367	val_367	val_367
+369	val_369	val_369
+369	val_369	val_369
+369	val_369	val_369
+369	val_369	val_369
+369	val_369	val_369
+369	val_369	val_369
+369	val_369	val_369
+369	val_369	val_369
+369	val_369	val_369
+374	val_374	val_374
+378	val_378	val_378
+389	val_389	val_389
+392	val_392	val_392
+394	val_394	val_394
+396	val_396	val_396
+396	val_396	val_396
+396	val_396	val_396
+396	val_396	val_396
+396	val_396	val_396
+396	val_396	val_396
+396	val_396	val_396
+396	val_396	val_396
+396	val_396	val_396
+400	val_400	val_400
+402	val_402	val_402
+404	val_404	val_404
+404	val_404	val_404
+404	val_404	val_404
+404	val_404	val_404
+406	val_406	val_406
+406	val_406	val_406
+406	val_406	val_406
+406	val_406	val_406
+406	val_406	val_406
+406	val_406	val_406
+406	val_406	val_406
+406	val_406	val_406
+406	val_406	val_406
+406	val_406	val_406
+406	val_406	val_406
+406	val_406	val_406
+406	val_406	val_406
+406	val_406	val_406
+406	val_406	val_406
+406	val_406	val_406
+411	val_411	val_411
+413	val_413	val_413
+413	val_413	val_413
+413	val_413	val_413
+413	val_413	val_413
+417	val_417	val_417
+417	val_417	val_417
+417	val_417	val_417
+417	val_417	val_417
+417	val_417	val_417
+417	val_417	val_417
+417	val_417	val_417
+417	val_417	val_417
+417	val_417	val_417
+419	val_419	val_419
+424	val_424	val_424
+424	val_424	val_424
+424	val_424	val_424
+424	val_424	val_424
+431	val_431	val_431
+431	val_431	val_431
+431	val_431	val_431
+431	val_431	val_431
+431	val_431	val_431
+431	val_431	val_431
+431	val_431	val_431
+431	val_431	val_431
+431	val_431	val_431
+435	val_435	val_435
+437	val_437	val_437
+439	val_439	val_439
+439	val_439	val_439
+439	val_439	val_439
+439	val_439	val_439
+444	val_444	val_444
+446	val_446	val_446
+448	val_448	val_448
+453	val_453	val_453
+455	val_455	val_455
+457	val_457	val_457
+459	val_459	val_459
+459	val_459	val_459
+459	val_459	val_459
+459	val_459	val_459
+460	val_460	val_460
+462	val_462	val_462
+462	val_462	val_462
+462	val_462	val_462
+462	val_462	val_462
+466	val_466	val_466
+466	val_466	val_466
+466	val_466	val_466
+466	val_466	val_466
+466	val_466	val_466
+466	val_466	val_466
+466	val_466	val_466
+466	val_466	val_466
+466	val_466	val_466
+468	val_468	val_468
+468	val_468	val_468
+468	val_468	val_468
+468	val_468	val_468
+468	val_468	val_468
+468	val_468	val_468
+468	val_468	val_468
+468	val_468	val_468
+468	val_468	val_468
+468	val_468	val_468
+468	val_468	val_468
+468	val_468	val_468
+468	val_468	val_468
+468	val_468	val_468
+468	val_468	val_468
+468	val_468	val_468
+475	val_475	val_475
+477	val_477	val_477
+479	val_479	val_479
+480	val_480	val_480
+480	val_480	val_480
+480	val_480	val_480
+480	val_480	val_480
+480	val_480	val_480
+480	val_480	val_480
+480	val_480	val_480
+480	val_480	val_480
+480	val_480	val_480
+482	val_482	val_482
+484	val_484	val_484
+491	val_491	val_491
+493	val_493	val_493
+495	val_495	val_495
+497	val_497	val_497


[2/2] hive git commit: HIVE-17792: Enable Bucket Map Join when there are extra keys other than bucketed columns (Deepak Jaiswal, reviewed by Jason Dere)

Posted by jd...@apache.org.
HIVE-17792: Enable Bucket Map Join when there are extra keys other than bucketed columns (Deepak Jaiswal, reviewed by Jason Dere)


Project: http://git-wip-us.apache.org/repos/asf/hive/repo
Commit: http://git-wip-us.apache.org/repos/asf/hive/commit/f973243a
Tree: http://git-wip-us.apache.org/repos/asf/hive/tree/f973243a
Diff: http://git-wip-us.apache.org/repos/asf/hive/diff/f973243a

Branch: refs/heads/master
Commit: f973243a59c8fa94f932bdede1a13bd96275089a
Parents: 2ee080d
Author: Jason Dere <jd...@hortonworks.com>
Authored: Tue Oct 17 15:04:49 2017 -0700
Committer: Jason Dere <jd...@hortonworks.com>
Committed: Tue Oct 17 15:04:49 2017 -0700

----------------------------------------------------------------------
 .../hive/ql/optimizer/ConvertJoinMapJoin.java   |   44 +-
 .../annotation/OpTraitsRulesProcFactory.java    |  110 +-
 .../clientpositive/bucket_map_join_tez1.q       |   36 +
 .../llap/bucket_map_join_tez1.q.out             | 2356 ++++++++++++++++++
 .../clientpositive/llap/tez_smb_main.q.out      |   12 +-
 .../spark/bucket_map_join_tez1.q.out            | 2348 +++++++++++++++++
 6 files changed, 4854 insertions(+), 52 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hive/blob/f973243a/ql/src/java/org/apache/hadoop/hive/ql/optimizer/ConvertJoinMapJoin.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/optimizer/ConvertJoinMapJoin.java b/ql/src/java/org/apache/hadoop/hive/ql/optimizer/ConvertJoinMapJoin.java
index e24760b..53d34bb 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/optimizer/ConvertJoinMapJoin.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/optimizer/ConvertJoinMapJoin.java
@@ -385,6 +385,32 @@ public class ConvertJoinMapJoin implements NodeProcessor {
       return false;
     }
 
+    // Incase the join has extra keys other than bucketed columns, partition keys need to be updated
+    // on small table(s).
+    ReduceSinkOperator bigTableRS = (ReduceSinkOperator)joinOp.getParentOperators().get(bigTablePosition);
+    OpTraits opTraits = bigTableRS.getOpTraits();
+    List<List<String>> listBucketCols = opTraits.getBucketColNames();
+    ArrayList<ExprNodeDesc> bigTablePartitionCols = bigTableRS.getConf().getPartitionCols();
+    boolean updatePartitionCols = false;
+    List<Integer> positions = new ArrayList<>();
+
+    if (listBucketCols.get(0).size() != bigTablePartitionCols.size()) {
+      updatePartitionCols = true;
+      // Prepare updated partition columns for small table(s).
+      // Get the positions of bucketed columns
+
+      int i = 0;
+      Map<String, ExprNodeDesc> colExprMap = bigTableRS.getColumnExprMap();
+      for (ExprNodeDesc bigTableExpr : bigTablePartitionCols) {
+        // It is guaranteed there is only 1 list within listBucketCols.
+        for (String colName : listBucketCols.get(0)) {
+          if (colExprMap.get(colName).isSame(bigTableExpr)) {
+            positions.add(i++);
+          }
+        }
+      }
+    }
+
     MapJoinOperator mapJoinOp = convertJoinMapJoin(joinOp, context, bigTablePosition, true);
     if (mapJoinOp == null) {
       LOG.debug("Conversion to bucket map join failed.");
@@ -394,7 +420,7 @@ public class ConvertJoinMapJoin implements NodeProcessor {
     joinDesc.setBucketMapJoin(true);
 
     // we can set the traits for this join operator
-    OpTraits opTraits = new OpTraits(joinOp.getOpTraits().getBucketColNames(),
+    opTraits = new OpTraits(joinOp.getOpTraits().getBucketColNames(),
         tezBucketJoinProcCtx.getNumBuckets(), null, joinOp.getOpTraits().getNumReduceSinks());
     mapJoinOp.setOpTraits(opTraits);
     mapJoinOp.setStatistics(joinOp.getStatistics());
@@ -405,6 +431,22 @@ public class ConvertJoinMapJoin implements NodeProcessor {
     bigTableBucketNumMapping.put(joinDesc.getBigTableAlias(), tezBucketJoinProcCtx.getNumBuckets());
     joinDesc.setBigTableBucketNumMapping(bigTableBucketNumMapping);
 
+    // Update the partition columns in small table to ensure correct routing of hash tables.
+    if (updatePartitionCols) {
+      // use the positions to only pick the partitionCols which are required
+      // on the small table side.
+      for (Operator<?> op : mapJoinOp.getParentOperators()) {
+        if (!(op instanceof ReduceSinkOperator)) continue;;
+
+        ReduceSinkOperator rsOp = (ReduceSinkOperator) op;
+        ArrayList<ExprNodeDesc> newPartitionCols = new ArrayList<>();
+        ArrayList<ExprNodeDesc> partitionCols = rsOp.getConf().getPartitionCols();
+        for (Integer position : positions) {
+          newPartitionCols.add(partitionCols.get(position));
+        }
+        rsOp.getConf().setPartitionCols(newPartitionCols);
+      }
+    }
     return true;
   }
 

http://git-wip-us.apache.org/repos/asf/hive/blob/f973243a/ql/src/java/org/apache/hadoop/hive/ql/optimizer/metainfo/annotation/OpTraitsRulesProcFactory.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/optimizer/metainfo/annotation/OpTraitsRulesProcFactory.java b/ql/src/java/org/apache/hadoop/hive/ql/optimizer/metainfo/annotation/OpTraitsRulesProcFactory.java
index 875ee9d..191cfba 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/optimizer/metainfo/annotation/OpTraitsRulesProcFactory.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/optimizer/metainfo/annotation/OpTraitsRulesProcFactory.java
@@ -18,10 +18,8 @@
 
 package org.apache.hadoop.hive.ql.optimizer.metainfo.annotation;
 
-import java.util.ArrayList;
-import java.util.List;
+import java.util.*;
 import java.util.Map.Entry;
-import java.util.Stack;
 
 import org.apache.hadoop.hive.metastore.api.Order;
 import org.apache.hadoop.hive.ql.exec.GroupByOperator;
@@ -40,10 +38,7 @@ import org.apache.hadoop.hive.ql.optimizer.AbstractBucketJoinProc;
 import org.apache.hadoop.hive.ql.parse.ParseContext;
 import org.apache.hadoop.hive.ql.parse.PrunedPartitionList;
 import org.apache.hadoop.hive.ql.parse.SemanticException;
-import org.apache.hadoop.hive.ql.plan.ExprNodeColumnDesc;
-import org.apache.hadoop.hive.ql.plan.ExprNodeDesc;
-import org.apache.hadoop.hive.ql.plan.OpTraits;
-import org.apache.hadoop.hive.ql.plan.OperatorDesc;
+import org.apache.hadoop.hive.ql.plan.*;
 
 /*
  * This class populates the following operator traits for the entire operator tree:
@@ -92,26 +87,52 @@ public class OpTraitsRulesProcFactory {
         Object... nodeOutputs) throws SemanticException {
 
       ReduceSinkOperator rs = (ReduceSinkOperator)nd;
-      List<String> bucketCols = new ArrayList<String>();
-      if (rs.getColumnExprMap() != null) {
-        for (ExprNodeDesc exprDesc : rs.getConf().getKeyCols()) {
-          for (Entry<String, ExprNodeDesc> entry : rs.getColumnExprMap().entrySet()) {
-            if (exprDesc.isSame(entry.getValue())) {
-              bucketCols.add(entry.getKey());
-            }
-          }
-        }
-      }
 
       List<List<String>> listBucketCols = new ArrayList<List<String>>();
-      listBucketCols.add(bucketCols);
       int numBuckets = -1;
       int numReduceSinks = 1;
-      OpTraits parentOpTraits = rs.getParentOperators().get(0).getConf().getTraits();
+      OpTraits parentOpTraits = rs.getParentOperators().get(0).getOpTraits();
       if (parentOpTraits != null) {
         numBuckets = parentOpTraits.getNumBuckets();
         numReduceSinks += parentOpTraits.getNumReduceSinks();
       }
+
+      List<String> bucketCols = new ArrayList<>();
+      if (parentOpTraits != null &&
+              parentOpTraits.getBucketColNames() != null) {
+        if (parentOpTraits.getBucketColNames().size() > 0) {
+          for (List<String> cols : parentOpTraits.getBucketColNames()) {
+            for (String col : cols) {
+              for (Entry<String, ExprNodeDesc> entry : rs.getColumnExprMap().entrySet()) {
+                // Fetch the column expression. There should be atleast one.
+                Map<Integer, ExprNodeDesc> colMap = new HashMap<>();
+                boolean found = false;
+                ExprNodeDescUtils.getExprNodeColumnDesc(entry.getValue(), colMap);
+                for (Integer hashCode : colMap.keySet()) {
+                  ExprNodeColumnDesc expr = (ExprNodeColumnDesc) colMap.get(hashCode);
+                  if (expr.getColumn().equals(col)) {
+                    bucketCols.add(entry.getKey());
+                    found = true;
+                    break;
+                  }
+                }
+                if (found) break;
+              } // column exprmap.
+            } // cols
+          }
+        } else {
+          // fallback to old mechanism which serves SMB Joins.
+          for (ExprNodeDesc exprDesc : rs.getConf().getKeyCols()) {
+            for (Entry<String, ExprNodeDesc> entry : rs.getColumnExprMap().entrySet()) {
+              if (exprDesc.isSame(entry.getValue())) {
+                bucketCols.add(entry.getKey());
+              }
+            }
+          }
+        }
+      }
+
+      listBucketCols.add(bucketCols);
       OpTraits opTraits = new OpTraits(listBucketCols, numBuckets, listBucketCols, numReduceSinks);
       rs.setOpTraits(opTraits);
       return null;
@@ -320,39 +341,38 @@ public class OpTraitsRulesProcFactory {
 
     private List<String> getOutputColNames(JoinOperator joinOp, List<List<String>> parentColNames,
         byte pos) {
-      if (parentColNames != null) {
-        List<String> bucketColNames = new ArrayList<String>();
-
-        // guaranteed that there is only 1 list within this list because
-        // a reduce sink always brings down the bucketing cols to a single list.
-        // may not be true with correlation operators (mux-demux)
-        List<String> colNames = parentColNames.get(0);
-        for (String colName : colNames) {
-          for (ExprNodeDesc exprNode : joinOp.getConf().getExprs().get(pos)) {
-            if (exprNode instanceof ExprNodeColumnDesc) {
-              if (((ExprNodeColumnDesc) (exprNode)).getColumn().equals(colName)) {
-                for (Entry<String, ExprNodeDesc> entry : joinOp.getColumnExprMap().entrySet()) {
-                  if (entry.getValue().isSame(exprNode)) {
-                    bucketColNames.add(entry.getKey());
-                    // we have found the colName
-                    break;
-                  }
+      if (parentColNames == null) {
+        // no col names in parent
+        return null;
+      }
+      List<String> bucketColNames = new ArrayList<>();
+
+      // guaranteed that there is only 1 list within this list because
+      // a reduce sink always brings down the bucketing cols to a single list.
+      // may not be true with correlation operators (mux-demux)
+      List<String> colNames = parentColNames.size() > 0 ? parentColNames.get(0) : new ArrayList<>();
+      for (String colName : colNames) {
+        for (ExprNodeDesc exprNode : joinOp.getConf().getExprs().get(pos)) {
+          if (exprNode instanceof ExprNodeColumnDesc) {
+            if (((ExprNodeColumnDesc) (exprNode)).getColumn().equals(colName)) {
+              for (Entry<String, ExprNodeDesc> entry : joinOp.getColumnExprMap().entrySet()) {
+                if (entry.getValue().isSame(exprNode)) {
+                  bucketColNames.add(entry.getKey());
+                  // we have found the colName
+                  break;
                 }
-              } else {
-                // continue on to the next exprNode to find a match
-                continue;
               }
-              // we have found the colName. No need to search more exprNodes.
-              break;
+            } else {
+              // continue on to the next exprNode to find a match
+              continue;
             }
+            // we have found the colName. No need to search more exprNodes.
+            break;
           }
         }
-
-        return bucketColNames;
       }
 
-      // no col names in parent
-      return null;
+      return bucketColNames;
     }
   }
 

http://git-wip-us.apache.org/repos/asf/hive/blob/f973243a/ql/src/test/queries/clientpositive/bucket_map_join_tez1.q
----------------------------------------------------------------------
diff --git a/ql/src/test/queries/clientpositive/bucket_map_join_tez1.q b/ql/src/test/queries/clientpositive/bucket_map_join_tez1.q
index cac1d6a..2231493 100644
--- a/ql/src/test/queries/clientpositive/bucket_map_join_tez1.q
+++ b/ql/src/test/queries/clientpositive/bucket_map_join_tez1.q
@@ -242,3 +242,39 @@ explain
 select a.key, a.value, b.value
 from tab a join tab_part b on a.key = b.key and a.ds = b.ds;
 
+-- HIVE-17792 : Enable Bucket Map Join when there are extra keys other than bucketed columns
+set hive.auto.convert.join.noconditionaltask.size=20000;
+set hive.convert.join.bucket.mapjoin.tez = false;
+explain select a.key, a.value, b.value
+        from tab a join tab_part b on a.key = b.key and a.value = b.value;
+select a.key, a.value, b.value
+from tab a join tab_part b on a.key = b.key and a.value = b.value
+order by a.key, a.value, b.value;
+
+set hive.convert.join.bucket.mapjoin.tez = true;
+explain select a.key, a.value, b.value
+        from tab a join tab_part b on a.key = b.key and a.value = b.value;
+select a.key, a.value, b.value
+from tab a join tab_part b on a.key = b.key and a.value = b.value
+order by a.key, a.value, b.value;
+
+
+-- With non-bucketed small table
+CREATE TABLE tab2(key int, value string) PARTITIONED BY(ds STRING) STORED AS TEXTFILE;
+insert overwrite table tab2 partition (ds='2008-04-08')
+select key,value from srcbucket_mapjoin;
+analyze table tab2 compute statistics for columns;
+
+set hive.convert.join.bucket.mapjoin.tez = false;
+explain select a.key, a.value, b.value
+        from tab2 a join tab_part b on a.key = b.key and a.value = b.value;
+select a.key, a.value, b.value
+from tab2 a join tab_part b on a.key = b.key and a.value = b.value
+order by a.key, a.value, b.value;
+
+set hive.convert.join.bucket.mapjoin.tez = true;
+explain select a.key, a.value, b.value
+        from tab2 a join tab_part b on a.key = b.key and a.value = b.value;
+select a.key, a.value, b.value
+from tab2 a join tab_part b on a.key = b.key and a.value = b.value
+order by a.key, a.value, b.value;

http://git-wip-us.apache.org/repos/asf/hive/blob/f973243a/ql/src/test/results/clientpositive/llap/bucket_map_join_tez1.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/llap/bucket_map_join_tez1.q.out b/ql/src/test/results/clientpositive/llap/bucket_map_join_tez1.q.out
index 36cb4ac..20ef495 100644
--- a/ql/src/test/results/clientpositive/llap/bucket_map_join_tez1.q.out
+++ b/ql/src/test/results/clientpositive/llap/bucket_map_join_tez1.q.out
@@ -4717,3 +4717,2359 @@ STAGE PLANS:
       Processor Tree:
         ListSink
 
+PREHOOK: query: explain select a.key, a.value, b.value
+        from tab a join tab_part b on a.key = b.key and a.value = b.value
+PREHOOK: type: QUERY
+POSTHOOK: query: explain select a.key, a.value, b.value
+        from tab a join tab_part b on a.key = b.key and a.value = b.value
+POSTHOOK: type: QUERY
+STAGE DEPENDENCIES:
+  Stage-1 is a root stage
+  Stage-0 depends on stages: Stage-1
+
+STAGE PLANS:
+  Stage: Stage-1
+    Tez
+#### A masked pattern was here ####
+      Edges:
+        Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 3 (SIMPLE_EDGE)
+#### A masked pattern was here ####
+      Vertices:
+        Map 1 
+            Map Operator Tree:
+                TableScan
+                  alias: a
+                  Statistics: Num rows: 242 Data size: 22990 Basic stats: COMPLETE Column stats: COMPLETE
+                  Filter Operator
+                    predicate: (key is not null and value is not null) (type: boolean)
+                    Statistics: Num rows: 242 Data size: 22990 Basic stats: COMPLETE Column stats: COMPLETE
+                    Select Operator
+                      expressions: key (type: int), value (type: string)
+                      outputColumnNames: _col0, _col1
+                      Statistics: Num rows: 242 Data size: 22990 Basic stats: COMPLETE Column stats: COMPLETE
+                      Reduce Output Operator
+                        key expressions: _col0 (type: int), _col1 (type: string)
+                        sort order: ++
+                        Map-reduce partition columns: _col0 (type: int), _col1 (type: string)
+                        Statistics: Num rows: 242 Data size: 22990 Basic stats: COMPLETE Column stats: COMPLETE
+            Execution mode: llap
+            LLAP IO: no inputs
+        Map 3 
+            Map Operator Tree:
+                TableScan
+                  alias: b
+                  Statistics: Num rows: 500 Data size: 47500 Basic stats: COMPLETE Column stats: COMPLETE
+                  Filter Operator
+                    predicate: (key is not null and value is not null) (type: boolean)
+                    Statistics: Num rows: 500 Data size: 47500 Basic stats: COMPLETE Column stats: COMPLETE
+                    Select Operator
+                      expressions: key (type: int), value (type: string)
+                      outputColumnNames: _col0, _col1
+                      Statistics: Num rows: 500 Data size: 47500 Basic stats: COMPLETE Column stats: COMPLETE
+                      Reduce Output Operator
+                        key expressions: _col0 (type: int), _col1 (type: string)
+                        sort order: ++
+                        Map-reduce partition columns: _col0 (type: int), _col1 (type: string)
+                        Statistics: Num rows: 500 Data size: 47500 Basic stats: COMPLETE Column stats: COMPLETE
+            Execution mode: llap
+            LLAP IO: no inputs
+        Reducer 2 
+            Execution mode: llap
+            Reduce Operator Tree:
+              Merge Join Operator
+                condition map:
+                     Inner Join 0 to 1
+                keys:
+                  0 _col0 (type: int), _col1 (type: string)
+                  1 _col0 (type: int), _col1 (type: string)
+                outputColumnNames: _col0, _col1, _col3
+                Statistics: Num rows: 391 Data size: 72726 Basic stats: COMPLETE Column stats: COMPLETE
+                Select Operator
+                  expressions: _col0 (type: int), _col1 (type: string), _col3 (type: string)
+                  outputColumnNames: _col0, _col1, _col2
+                  Statistics: Num rows: 391 Data size: 72726 Basic stats: COMPLETE Column stats: COMPLETE
+                  File Output Operator
+                    compressed: false
+                    Statistics: Num rows: 391 Data size: 72726 Basic stats: COMPLETE Column stats: COMPLETE
+                    table:
+                        input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+                        output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+                        serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+
+  Stage: Stage-0
+    Fetch Operator
+      limit: -1
+      Processor Tree:
+        ListSink
+
+PREHOOK: query: select a.key, a.value, b.value
+from tab a join tab_part b on a.key = b.key and a.value = b.value
+order by a.key, a.value, b.value
+PREHOOK: type: QUERY
+PREHOOK: Input: default@tab
+PREHOOK: Input: default@tab@ds=2008-04-08
+PREHOOK: Input: default@tab_part
+PREHOOK: Input: default@tab_part@ds=2008-04-08
+#### A masked pattern was here ####
+POSTHOOK: query: select a.key, a.value, b.value
+from tab a join tab_part b on a.key = b.key and a.value = b.value
+order by a.key, a.value, b.value
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@tab
+POSTHOOK: Input: default@tab@ds=2008-04-08
+POSTHOOK: Input: default@tab_part
+POSTHOOK: Input: default@tab_part@ds=2008-04-08
+#### A masked pattern was here ####
+0	val_0	val_0
+0	val_0	val_0
+0	val_0	val_0
+0	val_0	val_0
+0	val_0	val_0
+0	val_0	val_0
+0	val_0	val_0
+0	val_0	val_0
+0	val_0	val_0
+2	val_2	val_2
+4	val_4	val_4
+8	val_8	val_8
+11	val_11	val_11
+15	val_15	val_15
+15	val_15	val_15
+15	val_15	val_15
+15	val_15	val_15
+17	val_17	val_17
+19	val_19	val_19
+20	val_20	val_20
+24	val_24	val_24
+24	val_24	val_24
+24	val_24	val_24
+24	val_24	val_24
+26	val_26	val_26
+26	val_26	val_26
+26	val_26	val_26
+26	val_26	val_26
+28	val_28	val_28
+33	val_33	val_33
+35	val_35	val_35
+35	val_35	val_35
+35	val_35	val_35
+35	val_35	val_35
+35	val_35	val_35
+35	val_35	val_35
+35	val_35	val_35
+35	val_35	val_35
+35	val_35	val_35
+37	val_37	val_37
+37	val_37	val_37
+37	val_37	val_37
+37	val_37	val_37
+42	val_42	val_42
+42	val_42	val_42
+42	val_42	val_42
+42	val_42	val_42
+44	val_44	val_44
+51	val_51	val_51
+51	val_51	val_51
+51	val_51	val_51
+51	val_51	val_51
+53	val_53	val_53
+57	val_57	val_57
+64	val_64	val_64
+66	val_66	val_66
+77	val_77	val_77
+80	val_80	val_80
+82	val_82	val_82
+84	val_84	val_84
+84	val_84	val_84
+84	val_84	val_84
+84	val_84	val_84
+86	val_86	val_86
+95	val_95	val_95
+95	val_95	val_95
+95	val_95	val_95
+95	val_95	val_95
+97	val_97	val_97
+97	val_97	val_97
+97	val_97	val_97
+97	val_97	val_97
+103	val_103	val_103
+103	val_103	val_103
+103	val_103	val_103
+103	val_103	val_103
+105	val_105	val_105
+114	val_114	val_114
+116	val_116	val_116
+118	val_118	val_118
+118	val_118	val_118
+118	val_118	val_118
+118	val_118	val_118
+125	val_125	val_125
+125	val_125	val_125
+125	val_125	val_125
+125	val_125	val_125
+129	val_129	val_129
+129	val_129	val_129
+129	val_129	val_129
+129	val_129	val_129
+134	val_134	val_134
+134	val_134	val_134
+134	val_134	val_134
+134	val_134	val_134
+136	val_136	val_136
+138	val_138	val_138
+138	val_138	val_138
+138	val_138	val_138
+138	val_138	val_138
+138	val_138	val_138
+138	val_138	val_138
+138	val_138	val_138
+138	val_138	val_138
+138	val_138	val_138
+138	val_138	val_138
+138	val_138	val_138
+138	val_138	val_138
+138	val_138	val_138
+138	val_138	val_138
+138	val_138	val_138
+138	val_138	val_138
+143	val_143	val_143
+145	val_145	val_145
+149	val_149	val_149
+149	val_149	val_149
+149	val_149	val_149
+149	val_149	val_149
+150	val_150	val_150
+152	val_152	val_152
+152	val_152	val_152
+152	val_152	val_152
+152	val_152	val_152
+156	val_156	val_156
+158	val_158	val_158
+163	val_163	val_163
+165	val_165	val_165
+165	val_165	val_165
+165	val_165	val_165
+165	val_165	val_165
+167	val_167	val_167
+167	val_167	val_167
+167	val_167	val_167
+167	val_167	val_167
+167	val_167	val_167
+167	val_167	val_167
+167	val_167	val_167
+167	val_167	val_167
+167	val_167	val_167
+169	val_169	val_169
+169	val_169	val_169
+169	val_169	val_169
+169	val_169	val_169
+169	val_169	val_169
+169	val_169	val_169
+169	val_169	val_169
+169	val_169	val_169
+169	val_169	val_169
+169	val_169	val_169
+169	val_169	val_169
+169	val_169	val_169
+169	val_169	val_169
+169	val_169	val_169
+169	val_169	val_169
+169	val_169	val_169
+170	val_170	val_170
+172	val_172	val_172
+172	val_172	val_172
+172	val_172	val_172
+172	val_172	val_172
+174	val_174	val_174
+174	val_174	val_174
+174	val_174	val_174
+174	val_174	val_174
+176	val_176	val_176
+176	val_176	val_176
+176	val_176	val_176
+176	val_176	val_176
+178	val_178	val_178
+181	val_181	val_181
+183	val_183	val_183
+187	val_187	val_187
+187	val_187	val_187
+187	val_187	val_187
+187	val_187	val_187
+187	val_187	val_187
+187	val_187	val_187
+187	val_187	val_187
+187	val_187	val_187
+187	val_187	val_187
+189	val_189	val_189
+190	val_190	val_190
+192	val_192	val_192
+194	val_194	val_194
+196	val_196	val_196
+200	val_200	val_200
+200	val_200	val_200
+200	val_200	val_200
+200	val_200	val_200
+202	val_202	val_202
+208	val_208	val_208
+208	val_208	val_208
+208	val_208	val_208
+208	val_208	val_208
+208	val_208	val_208
+208	val_208	val_208
+208	val_208	val_208
+208	val_208	val_208
+208	val_208	val_208
+213	val_213	val_213
+213	val_213	val_213
+213	val_213	val_213
+213	val_213	val_213
+217	val_217	val_217
+217	val_217	val_217
+217	val_217	val_217
+217	val_217	val_217
+219	val_219	val_219
+219	val_219	val_219
+219	val_219	val_219
+219	val_219	val_219
+222	val_222	val_222
+224	val_224	val_224
+224	val_224	val_224
+224	val_224	val_224
+224	val_224	val_224
+226	val_226	val_226
+228	val_228	val_228
+233	val_233	val_233
+233	val_233	val_233
+233	val_233	val_233
+233	val_233	val_233
+235	val_235	val_235
+237	val_237	val_237
+237	val_237	val_237
+237	val_237	val_237
+237	val_237	val_237
+239	val_239	val_239
+239	val_239	val_239
+239	val_239	val_239
+239	val_239	val_239
+242	val_242	val_242
+242	val_242	val_242
+242	val_242	val_242
+242	val_242	val_242
+244	val_244	val_244
+248	val_248	val_248
+255	val_255	val_255
+255	val_255	val_255
+255	val_255	val_255
+255	val_255	val_255
+257	val_257	val_257
+260	val_260	val_260
+262	val_262	val_262
+266	val_266	val_266
+273	val_273	val_273
+273	val_273	val_273
+273	val_273	val_273
+273	val_273	val_273
+273	val_273	val_273
+273	val_273	val_273
+273	val_273	val_273
+273	val_273	val_273
+273	val_273	val_273
+275	val_275	val_275
+277	val_277	val_277
+277	val_277	val_277
+277	val_277	val_277
+277	val_277	val_277
+277	val_277	val_277
+277	val_277	val_277
+277	val_277	val_277
+277	val_277	val_277
+277	val_277	val_277
+277	val_277	val_277
+277	val_277	val_277
+277	val_277	val_277
+277	val_277	val_277
+277	val_277	val_277
+277	val_277	val_277
+277	val_277	val_277
+280	val_280	val_280
+280	val_280	val_280
+280	val_280	val_280
+280	val_280	val_280
+282	val_282	val_282
+282	val_282	val_282
+282	val_282	val_282
+282	val_282	val_282
+284	val_284	val_284
+286	val_286	val_286
+288	val_288	val_288
+288	val_288	val_288
+288	val_288	val_288
+288	val_288	val_288
+291	val_291	val_291
+305	val_305	val_305
+307	val_307	val_307
+307	val_307	val_307
+307	val_307	val_307
+307	val_307	val_307
+309	val_309	val_309
+309	val_309	val_309
+309	val_309	val_309
+309	val_309	val_309
+310	val_310	val_310
+316	val_316	val_316
+316	val_316	val_316
+316	val_316	val_316
+316	val_316	val_316
+316	val_316	val_316
+316	val_316	val_316
+316	val_316	val_316
+316	val_316	val_316
+316	val_316	val_316
+318	val_318	val_318
+318	val_318	val_318
+318	val_318	val_318
+318	val_318	val_318
+318	val_318	val_318
+318	val_318	val_318
+318	val_318	val_318
+318	val_318	val_318
+318	val_318	val_318
+321	val_321	val_321
+321	val_321	val_321
+321	val_321	val_321
+321	val_321	val_321
+323	val_323	val_323
+325	val_325	val_325
+325	val_325	val_325
+325	val_325	val_325
+325	val_325	val_325
+327	val_327	val_327
+327	val_327	val_327
+327	val_327	val_327
+327	val_327	val_327
+327	val_327	val_327
+327	val_327	val_327
+327	val_327	val_327
+327	val_327	val_327
+327	val_327	val_327
+332	val_332	val_332
+336	val_336	val_336
+338	val_338	val_338
+341	val_341	val_341
+345	val_345	val_345
+356	val_356	val_356
+365	val_365	val_365
+367	val_367	val_367
+367	val_367	val_367
+367	val_367	val_367
+367	val_367	val_367
+369	val_369	val_369
+369	val_369	val_369
+369	val_369	val_369
+369	val_369	val_369
+369	val_369	val_369
+369	val_369	val_369
+369	val_369	val_369
+369	val_369	val_369
+369	val_369	val_369
+374	val_374	val_374
+378	val_378	val_378
+389	val_389	val_389
+392	val_392	val_392
+394	val_394	val_394
+396	val_396	val_396
+396	val_396	val_396
+396	val_396	val_396
+396	val_396	val_396
+396	val_396	val_396
+396	val_396	val_396
+396	val_396	val_396
+396	val_396	val_396
+396	val_396	val_396
+400	val_400	val_400
+402	val_402	val_402
+404	val_404	val_404
+404	val_404	val_404
+404	val_404	val_404
+404	val_404	val_404
+406	val_406	val_406
+406	val_406	val_406
+406	val_406	val_406
+406	val_406	val_406
+406	val_406	val_406
+406	val_406	val_406
+406	val_406	val_406
+406	val_406	val_406
+406	val_406	val_406
+406	val_406	val_406
+406	val_406	val_406
+406	val_406	val_406
+406	val_406	val_406
+406	val_406	val_406
+406	val_406	val_406
+406	val_406	val_406
+411	val_411	val_411
+413	val_413	val_413
+413	val_413	val_413
+413	val_413	val_413
+413	val_413	val_413
+417	val_417	val_417
+417	val_417	val_417
+417	val_417	val_417
+417	val_417	val_417
+417	val_417	val_417
+417	val_417	val_417
+417	val_417	val_417
+417	val_417	val_417
+417	val_417	val_417
+419	val_419	val_419
+424	val_424	val_424
+424	val_424	val_424
+424	val_424	val_424
+424	val_424	val_424
+431	val_431	val_431
+431	val_431	val_431
+431	val_431	val_431
+431	val_431	val_431
+431	val_431	val_431
+431	val_431	val_431
+431	val_431	val_431
+431	val_431	val_431
+431	val_431	val_431
+435	val_435	val_435
+437	val_437	val_437
+439	val_439	val_439
+439	val_439	val_439
+439	val_439	val_439
+439	val_439	val_439
+444	val_444	val_444
+446	val_446	val_446
+448	val_448	val_448
+453	val_453	val_453
+455	val_455	val_455
+457	val_457	val_457
+459	val_459	val_459
+459	val_459	val_459
+459	val_459	val_459
+459	val_459	val_459
+460	val_460	val_460
+462	val_462	val_462
+462	val_462	val_462
+462	val_462	val_462
+462	val_462	val_462
+466	val_466	val_466
+466	val_466	val_466
+466	val_466	val_466
+466	val_466	val_466
+466	val_466	val_466
+466	val_466	val_466
+466	val_466	val_466
+466	val_466	val_466
+466	val_466	val_466
+468	val_468	val_468
+468	val_468	val_468
+468	val_468	val_468
+468	val_468	val_468
+468	val_468	val_468
+468	val_468	val_468
+468	val_468	val_468
+468	val_468	val_468
+468	val_468	val_468
+468	val_468	val_468
+468	val_468	val_468
+468	val_468	val_468
+468	val_468	val_468
+468	val_468	val_468
+468	val_468	val_468
+468	val_468	val_468
+475	val_475	val_475
+477	val_477	val_477
+479	val_479	val_479
+480	val_480	val_480
+480	val_480	val_480
+480	val_480	val_480
+480	val_480	val_480
+480	val_480	val_480
+480	val_480	val_480
+480	val_480	val_480
+480	val_480	val_480
+480	val_480	val_480
+482	val_482	val_482
+484	val_484	val_484
+491	val_491	val_491
+493	val_493	val_493
+495	val_495	val_495
+497	val_497	val_497
+PREHOOK: query: explain select a.key, a.value, b.value
+        from tab a join tab_part b on a.key = b.key and a.value = b.value
+PREHOOK: type: QUERY
+POSTHOOK: query: explain select a.key, a.value, b.value
+        from tab a join tab_part b on a.key = b.key and a.value = b.value
+POSTHOOK: type: QUERY
+STAGE DEPENDENCIES:
+  Stage-1 is a root stage
+  Stage-0 depends on stages: Stage-1
+
+STAGE PLANS:
+  Stage: Stage-1
+    Tez
+#### A masked pattern was here ####
+      Edges:
+        Map 2 <- Map 1 (CUSTOM_EDGE)
+#### A masked pattern was here ####
+      Vertices:
+        Map 1 
+            Map Operator Tree:
+                TableScan
+                  alias: a
+                  Statistics: Num rows: 242 Data size: 22990 Basic stats: COMPLETE Column stats: COMPLETE
+                  Filter Operator
+                    predicate: (key is not null and value is not null) (type: boolean)
+                    Statistics: Num rows: 242 Data size: 22990 Basic stats: COMPLETE Column stats: COMPLETE
+                    Select Operator
+                      expressions: key (type: int), value (type: string)
+                      outputColumnNames: _col0, _col1
+                      Statistics: Num rows: 242 Data size: 22990 Basic stats: COMPLETE Column stats: COMPLETE
+                      Reduce Output Operator
+                        key expressions: _col0 (type: int), _col1 (type: string)
+                        sort order: ++
+                        Map-reduce partition columns: _col0 (type: int)
+                        Statistics: Num rows: 242 Data size: 22990 Basic stats: COMPLETE Column stats: COMPLETE
+            Execution mode: llap
+            LLAP IO: no inputs
+        Map 2 
+            Map Operator Tree:
+                TableScan
+                  alias: b
+                  Statistics: Num rows: 500 Data size: 47500 Basic stats: COMPLETE Column stats: COMPLETE
+                  Filter Operator
+                    predicate: (key is not null and value is not null) (type: boolean)
+                    Statistics: Num rows: 500 Data size: 47500 Basic stats: COMPLETE Column stats: COMPLETE
+                    Select Operator
+                      expressions: key (type: int), value (type: string)
+                      outputColumnNames: _col0, _col1
+                      Statistics: Num rows: 500 Data size: 47500 Basic stats: COMPLETE Column stats: COMPLETE
+                      Map Join Operator
+                        condition map:
+                             Inner Join 0 to 1
+                        keys:
+                          0 _col0 (type: int), _col1 (type: string)
+                          1 _col0 (type: int), _col1 (type: string)
+                        outputColumnNames: _col0, _col1, _col3
+                        input vertices:
+                          0 Map 1
+                        Statistics: Num rows: 391 Data size: 72726 Basic stats: COMPLETE Column stats: COMPLETE
+                        Select Operator
+                          expressions: _col0 (type: int), _col1 (type: string), _col3 (type: string)
+                          outputColumnNames: _col0, _col1, _col2
+                          Statistics: Num rows: 391 Data size: 72726 Basic stats: COMPLETE Column stats: COMPLETE
+                          File Output Operator
+                            compressed: false
+                            Statistics: Num rows: 391 Data size: 72726 Basic stats: COMPLETE Column stats: COMPLETE
+                            table:
+                                input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+                                output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+                                serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+            Execution mode: llap
+            LLAP IO: no inputs
+
+  Stage: Stage-0
+    Fetch Operator
+      limit: -1
+      Processor Tree:
+        ListSink
+
+PREHOOK: query: select a.key, a.value, b.value
+from tab a join tab_part b on a.key = b.key and a.value = b.value
+order by a.key, a.value, b.value
+PREHOOK: type: QUERY
+PREHOOK: Input: default@tab
+PREHOOK: Input: default@tab@ds=2008-04-08
+PREHOOK: Input: default@tab_part
+PREHOOK: Input: default@tab_part@ds=2008-04-08
+#### A masked pattern was here ####
+POSTHOOK: query: select a.key, a.value, b.value
+from tab a join tab_part b on a.key = b.key and a.value = b.value
+order by a.key, a.value, b.value
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@tab
+POSTHOOK: Input: default@tab@ds=2008-04-08
+POSTHOOK: Input: default@tab_part
+POSTHOOK: Input: default@tab_part@ds=2008-04-08
+#### A masked pattern was here ####
+0	val_0	val_0
+0	val_0	val_0
+0	val_0	val_0
+0	val_0	val_0
+0	val_0	val_0
+0	val_0	val_0
+0	val_0	val_0
+0	val_0	val_0
+0	val_0	val_0
+2	val_2	val_2
+4	val_4	val_4
+8	val_8	val_8
+11	val_11	val_11
+15	val_15	val_15
+15	val_15	val_15
+15	val_15	val_15
+15	val_15	val_15
+17	val_17	val_17
+19	val_19	val_19
+20	val_20	val_20
+24	val_24	val_24
+24	val_24	val_24
+24	val_24	val_24
+24	val_24	val_24
+26	val_26	val_26
+26	val_26	val_26
+26	val_26	val_26
+26	val_26	val_26
+28	val_28	val_28
+33	val_33	val_33
+35	val_35	val_35
+35	val_35	val_35
+35	val_35	val_35
+35	val_35	val_35
+35	val_35	val_35
+35	val_35	val_35
+35	val_35	val_35
+35	val_35	val_35
+35	val_35	val_35
+37	val_37	val_37
+37	val_37	val_37
+37	val_37	val_37
+37	val_37	val_37
+42	val_42	val_42
+42	val_42	val_42
+42	val_42	val_42
+42	val_42	val_42
+44	val_44	val_44
+51	val_51	val_51
+51	val_51	val_51
+51	val_51	val_51
+51	val_51	val_51
+53	val_53	val_53
+57	val_57	val_57
+64	val_64	val_64
+66	val_66	val_66
+77	val_77	val_77
+80	val_80	val_80
+82	val_82	val_82
+84	val_84	val_84
+84	val_84	val_84
+84	val_84	val_84
+84	val_84	val_84
+86	val_86	val_86
+95	val_95	val_95
+95	val_95	val_95
+95	val_95	val_95
+95	val_95	val_95
+97	val_97	val_97
+97	val_97	val_97
+97	val_97	val_97
+97	val_97	val_97
+103	val_103	val_103
+103	val_103	val_103
+103	val_103	val_103
+103	val_103	val_103
+105	val_105	val_105
+114	val_114	val_114
+116	val_116	val_116
+118	val_118	val_118
+118	val_118	val_118
+118	val_118	val_118
+118	val_118	val_118
+125	val_125	val_125
+125	val_125	val_125
+125	val_125	val_125
+125	val_125	val_125
+129	val_129	val_129
+129	val_129	val_129
+129	val_129	val_129
+129	val_129	val_129
+134	val_134	val_134
+134	val_134	val_134
+134	val_134	val_134
+134	val_134	val_134
+136	val_136	val_136
+138	val_138	val_138
+138	val_138	val_138
+138	val_138	val_138
+138	val_138	val_138
+138	val_138	val_138
+138	val_138	val_138
+138	val_138	val_138
+138	val_138	val_138
+138	val_138	val_138
+138	val_138	val_138
+138	val_138	val_138
+138	val_138	val_138
+138	val_138	val_138
+138	val_138	val_138
+138	val_138	val_138
+138	val_138	val_138
+143	val_143	val_143
+145	val_145	val_145
+149	val_149	val_149
+149	val_149	val_149
+149	val_149	val_149
+149	val_149	val_149
+150	val_150	val_150
+152	val_152	val_152
+152	val_152	val_152
+152	val_152	val_152
+152	val_152	val_152
+156	val_156	val_156
+158	val_158	val_158
+163	val_163	val_163
+165	val_165	val_165
+165	val_165	val_165
+165	val_165	val_165
+165	val_165	val_165
+167	val_167	val_167
+167	val_167	val_167
+167	val_167	val_167
+167	val_167	val_167
+167	val_167	val_167
+167	val_167	val_167
+167	val_167	val_167
+167	val_167	val_167
+167	val_167	val_167
+169	val_169	val_169
+169	val_169	val_169
+169	val_169	val_169
+169	val_169	val_169
+169	val_169	val_169
+169	val_169	val_169
+169	val_169	val_169
+169	val_169	val_169
+169	val_169	val_169
+169	val_169	val_169
+169	val_169	val_169
+169	val_169	val_169
+169	val_169	val_169
+169	val_169	val_169
+169	val_169	val_169
+169	val_169	val_169
+170	val_170	val_170
+172	val_172	val_172
+172	val_172	val_172
+172	val_172	val_172
+172	val_172	val_172
+174	val_174	val_174
+174	val_174	val_174
+174	val_174	val_174
+174	val_174	val_174
+176	val_176	val_176
+176	val_176	val_176
+176	val_176	val_176
+176	val_176	val_176
+178	val_178	val_178
+181	val_181	val_181
+183	val_183	val_183
+187	val_187	val_187
+187	val_187	val_187
+187	val_187	val_187
+187	val_187	val_187
+187	val_187	val_187
+187	val_187	val_187
+187	val_187	val_187
+187	val_187	val_187
+187	val_187	val_187
+189	val_189	val_189
+190	val_190	val_190
+192	val_192	val_192
+194	val_194	val_194
+196	val_196	val_196
+200	val_200	val_200
+200	val_200	val_200
+200	val_200	val_200
+200	val_200	val_200
+202	val_202	val_202
+208	val_208	val_208
+208	val_208	val_208
+208	val_208	val_208
+208	val_208	val_208
+208	val_208	val_208
+208	val_208	val_208
+208	val_208	val_208
+208	val_208	val_208
+208	val_208	val_208
+213	val_213	val_213
+213	val_213	val_213
+213	val_213	val_213
+213	val_213	val_213
+217	val_217	val_217
+217	val_217	val_217
+217	val_217	val_217
+217	val_217	val_217
+219	val_219	val_219
+219	val_219	val_219
+219	val_219	val_219
+219	val_219	val_219
+222	val_222	val_222
+224	val_224	val_224
+224	val_224	val_224
+224	val_224	val_224
+224	val_224	val_224
+226	val_226	val_226
+228	val_228	val_228
+233	val_233	val_233
+233	val_233	val_233
+233	val_233	val_233
+233	val_233	val_233
+235	val_235	val_235
+237	val_237	val_237
+237	val_237	val_237
+237	val_237	val_237
+237	val_237	val_237
+239	val_239	val_239
+239	val_239	val_239
+239	val_239	val_239
+239	val_239	val_239
+242	val_242	val_242
+242	val_242	val_242
+242	val_242	val_242
+242	val_242	val_242
+244	val_244	val_244
+248	val_248	val_248
+255	val_255	val_255
+255	val_255	val_255
+255	val_255	val_255
+255	val_255	val_255
+257	val_257	val_257
+260	val_260	val_260
+262	val_262	val_262
+266	val_266	val_266
+273	val_273	val_273
+273	val_273	val_273
+273	val_273	val_273
+273	val_273	val_273
+273	val_273	val_273
+273	val_273	val_273
+273	val_273	val_273
+273	val_273	val_273
+273	val_273	val_273
+275	val_275	val_275
+277	val_277	val_277
+277	val_277	val_277
+277	val_277	val_277
+277	val_277	val_277
+277	val_277	val_277
+277	val_277	val_277
+277	val_277	val_277
+277	val_277	val_277
+277	val_277	val_277
+277	val_277	val_277
+277	val_277	val_277
+277	val_277	val_277
+277	val_277	val_277
+277	val_277	val_277
+277	val_277	val_277
+277	val_277	val_277
+280	val_280	val_280
+280	val_280	val_280
+280	val_280	val_280
+280	val_280	val_280
+282	val_282	val_282
+282	val_282	val_282
+282	val_282	val_282
+282	val_282	val_282
+284	val_284	val_284
+286	val_286	val_286
+288	val_288	val_288
+288	val_288	val_288
+288	val_288	val_288
+288	val_288	val_288
+291	val_291	val_291
+305	val_305	val_305
+307	val_307	val_307
+307	val_307	val_307
+307	val_307	val_307
+307	val_307	val_307
+309	val_309	val_309
+309	val_309	val_309
+309	val_309	val_309
+309	val_309	val_309
+310	val_310	val_310
+316	val_316	val_316
+316	val_316	val_316
+316	val_316	val_316
+316	val_316	val_316
+316	val_316	val_316
+316	val_316	val_316
+316	val_316	val_316
+316	val_316	val_316
+316	val_316	val_316
+318	val_318	val_318
+318	val_318	val_318
+318	val_318	val_318
+318	val_318	val_318
+318	val_318	val_318
+318	val_318	val_318
+318	val_318	val_318
+318	val_318	val_318
+318	val_318	val_318
+321	val_321	val_321
+321	val_321	val_321
+321	val_321	val_321
+321	val_321	val_321
+323	val_323	val_323
+325	val_325	val_325
+325	val_325	val_325
+325	val_325	val_325
+325	val_325	val_325
+327	val_327	val_327
+327	val_327	val_327
+327	val_327	val_327
+327	val_327	val_327
+327	val_327	val_327
+327	val_327	val_327
+327	val_327	val_327
+327	val_327	val_327
+327	val_327	val_327
+332	val_332	val_332
+336	val_336	val_336
+338	val_338	val_338
+341	val_341	val_341
+345	val_345	val_345
+356	val_356	val_356
+365	val_365	val_365
+367	val_367	val_367
+367	val_367	val_367
+367	val_367	val_367
+367	val_367	val_367
+369	val_369	val_369
+369	val_369	val_369
+369	val_369	val_369
+369	val_369	val_369
+369	val_369	val_369
+369	val_369	val_369
+369	val_369	val_369
+369	val_369	val_369
+369	val_369	val_369
+374	val_374	val_374
+378	val_378	val_378
+389	val_389	val_389
+392	val_392	val_392
+394	val_394	val_394
+396	val_396	val_396
+396	val_396	val_396
+396	val_396	val_396
+396	val_396	val_396
+396	val_396	val_396
+396	val_396	val_396
+396	val_396	val_396
+396	val_396	val_396
+396	val_396	val_396
+400	val_400	val_400
+402	val_402	val_402
+404	val_404	val_404
+404	val_404	val_404
+404	val_404	val_404
+404	val_404	val_404
+406	val_406	val_406
+406	val_406	val_406
+406	val_406	val_406
+406	val_406	val_406
+406	val_406	val_406
+406	val_406	val_406
+406	val_406	val_406
+406	val_406	val_406
+406	val_406	val_406
+406	val_406	val_406
+406	val_406	val_406
+406	val_406	val_406
+406	val_406	val_406
+406	val_406	val_406
+406	val_406	val_406
+406	val_406	val_406
+411	val_411	val_411
+413	val_413	val_413
+413	val_413	val_413
+413	val_413	val_413
+413	val_413	val_413
+417	val_417	val_417
+417	val_417	val_417
+417	val_417	val_417
+417	val_417	val_417
+417	val_417	val_417
+417	val_417	val_417
+417	val_417	val_417
+417	val_417	val_417
+417	val_417	val_417
+419	val_419	val_419
+424	val_424	val_424
+424	val_424	val_424
+424	val_424	val_424
+424	val_424	val_424
+431	val_431	val_431
+431	val_431	val_431
+431	val_431	val_431
+431	val_431	val_431
+431	val_431	val_431
+431	val_431	val_431
+431	val_431	val_431
+431	val_431	val_431
+431	val_431	val_431
+435	val_435	val_435
+437	val_437	val_437
+439	val_439	val_439
+439	val_439	val_439
+439	val_439	val_439
+439	val_439	val_439
+444	val_444	val_444
+446	val_446	val_446
+448	val_448	val_448
+453	val_453	val_453
+455	val_455	val_455
+457	val_457	val_457
+459	val_459	val_459
+459	val_459	val_459
+459	val_459	val_459
+459	val_459	val_459
+460	val_460	val_460
+462	val_462	val_462
+462	val_462	val_462
+462	val_462	val_462
+462	val_462	val_462
+466	val_466	val_466
+466	val_466	val_466
+466	val_466	val_466
+466	val_466	val_466
+466	val_466	val_466
+466	val_466	val_466
+466	val_466	val_466
+466	val_466	val_466
+466	val_466	val_466
+468	val_468	val_468
+468	val_468	val_468
+468	val_468	val_468
+468	val_468	val_468
+468	val_468	val_468
+468	val_468	val_468
+468	val_468	val_468
+468	val_468	val_468
+468	val_468	val_468
+468	val_468	val_468
+468	val_468	val_468
+468	val_468	val_468
+468	val_468	val_468
+468	val_468	val_468
+468	val_468	val_468
+468	val_468	val_468
+475	val_475	val_475
+477	val_477	val_477
+479	val_479	val_479
+480	val_480	val_480
+480	val_480	val_480
+480	val_480	val_480
+480	val_480	val_480
+480	val_480	val_480
+480	val_480	val_480
+480	val_480	val_480
+480	val_480	val_480
+480	val_480	val_480
+482	val_482	val_482
+484	val_484	val_484
+491	val_491	val_491
+493	val_493	val_493
+495	val_495	val_495
+497	val_497	val_497
+PREHOOK: query: CREATE TABLE tab2(key int, value string) PARTITIONED BY(ds STRING) STORED AS TEXTFILE
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@tab2
+POSTHOOK: query: CREATE TABLE tab2(key int, value string) PARTITIONED BY(ds STRING) STORED AS TEXTFILE
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@tab2
+PREHOOK: query: insert overwrite table tab2 partition (ds='2008-04-08')
+select key,value from srcbucket_mapjoin
+PREHOOK: type: QUERY
+PREHOOK: Input: default@srcbucket_mapjoin
+PREHOOK: Input: default@srcbucket_mapjoin@ds=2008-04-08
+PREHOOK: Output: default@tab2@ds=2008-04-08
+POSTHOOK: query: insert overwrite table tab2 partition (ds='2008-04-08')
+select key,value from srcbucket_mapjoin
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@srcbucket_mapjoin
+POSTHOOK: Input: default@srcbucket_mapjoin@ds=2008-04-08
+POSTHOOK: Output: default@tab2@ds=2008-04-08
+POSTHOOK: Lineage: tab2 PARTITION(ds=2008-04-08).key SIMPLE [(srcbucket_mapjoin)srcbucket_mapjoin.FieldSchema(name:key, type:int, comment:null), ]
+POSTHOOK: Lineage: tab2 PARTITION(ds=2008-04-08).value SIMPLE [(srcbucket_mapjoin)srcbucket_mapjoin.FieldSchema(name:value, type:string, comment:null), ]
+PREHOOK: query: analyze table tab2 compute statistics for columns
+PREHOOK: type: QUERY
+PREHOOK: Input: default@tab2
+PREHOOK: Input: default@tab2@ds=2008-04-08
+PREHOOK: Output: default@tab2
+PREHOOK: Output: default@tab2@ds=2008-04-08
+#### A masked pattern was here ####
+POSTHOOK: query: analyze table tab2 compute statistics for columns
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@tab2
+POSTHOOK: Input: default@tab2@ds=2008-04-08
+POSTHOOK: Output: default@tab2
+POSTHOOK: Output: default@tab2@ds=2008-04-08
+#### A masked pattern was here ####
+PREHOOK: query: explain select a.key, a.value, b.value
+        from tab2 a join tab_part b on a.key = b.key and a.value = b.value
+PREHOOK: type: QUERY
+POSTHOOK: query: explain select a.key, a.value, b.value
+        from tab2 a join tab_part b on a.key = b.key and a.value = b.value
+POSTHOOK: type: QUERY
+STAGE DEPENDENCIES:
+  Stage-1 is a root stage
+  Stage-0 depends on stages: Stage-1
+
+STAGE PLANS:
+  Stage: Stage-1
+    Tez
+#### A masked pattern was here ####
+      Edges:
+        Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 3 (SIMPLE_EDGE)
+#### A masked pattern was here ####
+      Vertices:
+        Map 1 
+            Map Operator Tree:
+                TableScan
+                  alias: a
+                  Statistics: Num rows: 242 Data size: 22990 Basic stats: COMPLETE Column stats: COMPLETE
+                  Filter Operator
+                    predicate: (key is not null and value is not null) (type: boolean)
+                    Statistics: Num rows: 242 Data size: 22990 Basic stats: COMPLETE Column stats: COMPLETE
+                    Select Operator
+                      expressions: key (type: int), value (type: string)
+                      outputColumnNames: _col0, _col1
+                      Statistics: Num rows: 242 Data size: 22990 Basic stats: COMPLETE Column stats: COMPLETE
+                      Reduce Output Operator
+                        key expressions: _col0 (type: int), _col1 (type: string)
+                        sort order: ++
+                        Map-reduce partition columns: _col0 (type: int), _col1 (type: string)
+                        Statistics: Num rows: 242 Data size: 22990 Basic stats: COMPLETE Column stats: COMPLETE
+            Execution mode: llap
+            LLAP IO: no inputs
+        Map 3 
+            Map Operator Tree:
+                TableScan
+                  alias: b
+                  Statistics: Num rows: 500 Data size: 47500 Basic stats: COMPLETE Column stats: COMPLETE
+                  Filter Operator
+                    predicate: (key is not null and value is not null) (type: boolean)
+                    Statistics: Num rows: 500 Data size: 47500 Basic stats: COMPLETE Column stats: COMPLETE
+                    Select Operator
+                      expressions: key (type: int), value (type: string)
+                      outputColumnNames: _col0, _col1
+                      Statistics: Num rows: 500 Data size: 47500 Basic stats: COMPLETE Column stats: COMPLETE
+                      Reduce Output Operator
+                        key expressions: _col0 (type: int), _col1 (type: string)
+                        sort order: ++
+                        Map-reduce partition columns: _col0 (type: int), _col1 (type: string)
+                        Statistics: Num rows: 500 Data size: 47500 Basic stats: COMPLETE Column stats: COMPLETE
+            Execution mode: llap
+            LLAP IO: no inputs
+        Reducer 2 
+            Execution mode: llap
+            Reduce Operator Tree:
+              Merge Join Operator
+                condition map:
+                     Inner Join 0 to 1
+                keys:
+                  0 _col0 (type: int), _col1 (type: string)
+                  1 _col0 (type: int), _col1 (type: string)
+                outputColumnNames: _col0, _col1, _col3
+                Statistics: Num rows: 391 Data size: 72726 Basic stats: COMPLETE Column stats: COMPLETE
+                Select Operator
+                  expressions: _col0 (type: int), _col1 (type: string), _col3 (type: string)
+                  outputColumnNames: _col0, _col1, _col2
+                  Statistics: Num rows: 391 Data size: 72726 Basic stats: COMPLETE Column stats: COMPLETE
+                  File Output Operator
+                    compressed: false
+                    Statistics: Num rows: 391 Data size: 72726 Basic stats: COMPLETE Column stats: COMPLETE
+                    table:
+                        input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+                        output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+                        serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+
+  Stage: Stage-0
+    Fetch Operator
+      limit: -1
+      Processor Tree:
+        ListSink
+
+PREHOOK: query: select a.key, a.value, b.value
+from tab2 a join tab_part b on a.key = b.key and a.value = b.value
+order by a.key, a.value, b.value
+PREHOOK: type: QUERY
+PREHOOK: Input: default@tab2
+PREHOOK: Input: default@tab2@ds=2008-04-08
+PREHOOK: Input: default@tab_part
+PREHOOK: Input: default@tab_part@ds=2008-04-08
+#### A masked pattern was here ####
+POSTHOOK: query: select a.key, a.value, b.value
+from tab2 a join tab_part b on a.key = b.key and a.value = b.value
+order by a.key, a.value, b.value
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@tab2
+POSTHOOK: Input: default@tab2@ds=2008-04-08
+POSTHOOK: Input: default@tab_part
+POSTHOOK: Input: default@tab_part@ds=2008-04-08
+#### A masked pattern was here ####
+0	val_0	val_0
+0	val_0	val_0
+0	val_0	val_0
+0	val_0	val_0
+0	val_0	val_0
+0	val_0	val_0
+0	val_0	val_0
+0	val_0	val_0
+0	val_0	val_0
+2	val_2	val_2
+4	val_4	val_4
+8	val_8	val_8
+11	val_11	val_11
+15	val_15	val_15
+15	val_15	val_15
+15	val_15	val_15
+15	val_15	val_15
+17	val_17	val_17
+19	val_19	val_19
+20	val_20	val_20
+24	val_24	val_24
+24	val_24	val_24
+24	val_24	val_24
+24	val_24	val_24
+26	val_26	val_26
+26	val_26	val_26
+26	val_26	val_26
+26	val_26	val_26
+28	val_28	val_28
+33	val_33	val_33
+35	val_35	val_35
+35	val_35	val_35
+35	val_35	val_35
+35	val_35	val_35
+35	val_35	val_35
+35	val_35	val_35
+35	val_35	val_35
+35	val_35	val_35
+35	val_35	val_35
+37	val_37	val_37
+37	val_37	val_37
+37	val_37	val_37
+37	val_37	val_37
+42	val_42	val_42
+42	val_42	val_42
+42	val_42	val_42
+42	val_42	val_42
+44	val_44	val_44
+51	val_51	val_51
+51	val_51	val_51
+51	val_51	val_51
+51	val_51	val_51
+53	val_53	val_53
+57	val_57	val_57
+64	val_64	val_64
+66	val_66	val_66
+77	val_77	val_77
+80	val_80	val_80
+82	val_82	val_82
+84	val_84	val_84
+84	val_84	val_84
+84	val_84	val_84
+84	val_84	val_84
+86	val_86	val_86
+95	val_95	val_95
+95	val_95	val_95
+95	val_95	val_95
+95	val_95	val_95
+97	val_97	val_97
+97	val_97	val_97
+97	val_97	val_97
+97	val_97	val_97
+103	val_103	val_103
+103	val_103	val_103
+103	val_103	val_103
+103	val_103	val_103
+105	val_105	val_105
+114	val_114	val_114
+116	val_116	val_116
+118	val_118	val_118
+118	val_118	val_118
+118	val_118	val_118
+118	val_118	val_118
+125	val_125	val_125
+125	val_125	val_125
+125	val_125	val_125
+125	val_125	val_125
+129	val_129	val_129
+129	val_129	val_129
+129	val_129	val_129
+129	val_129	val_129
+134	val_134	val_134
+134	val_134	val_134
+134	val_134	val_134
+134	val_134	val_134
+136	val_136	val_136
+138	val_138	val_138
+138	val_138	val_138
+138	val_138	val_138
+138	val_138	val_138
+138	val_138	val_138
+138	val_138	val_138
+138	val_138	val_138
+138	val_138	val_138
+138	val_138	val_138
+138	val_138	val_138
+138	val_138	val_138
+138	val_138	val_138
+138	val_138	val_138
+138	val_138	val_138
+138	val_138	val_138
+138	val_138	val_138
+143	val_143	val_143
+145	val_145	val_145
+149	val_149	val_149
+149	val_149	val_149
+149	val_149	val_149
+149	val_149	val_149
+150	val_150	val_150
+152	val_152	val_152
+152	val_152	val_152
+152	val_152	val_152
+152	val_152	val_152
+156	val_156	val_156
+158	val_158	val_158
+163	val_163	val_163
+165	val_165	val_165
+165	val_165	val_165
+165	val_165	val_165
+165	val_165	val_165
+167	val_167	val_167
+167	val_167	val_167
+167	val_167	val_167
+167	val_167	val_167
+167	val_167	val_167
+167	val_167	val_167
+167	val_167	val_167
+167	val_167	val_167
+167	val_167	val_167
+169	val_169	val_169
+169	val_169	val_169
+169	val_169	val_169
+169	val_169	val_169
+169	val_169	val_169
+169	val_169	val_169
+169	val_169	val_169
+169	val_169	val_169
+169	val_169	val_169
+169	val_169	val_169
+169	val_169	val_169
+169	val_169	val_169
+169	val_169	val_169
+169	val_169	val_169
+169	val_169	val_169
+169	val_169	val_169
+170	val_170	val_170
+172	val_172	val_172
+172	val_172	val_172
+172	val_172	val_172
+172	val_172	val_172
+174	val_174	val_174
+174	val_174	val_174
+174	val_174	val_174
+174	val_174	val_174
+176	val_176	val_176
+176	val_176	val_176
+176	val_176	val_176
+176	val_176	val_176
+178	val_178	val_178
+181	val_181	val_181
+183	val_183	val_183
+187	val_187	val_187
+187	val_187	val_187
+187	val_187	val_187
+187	val_187	val_187
+187	val_187	val_187
+187	val_187	val_187
+187	val_187	val_187
+187	val_187	val_187
+187	val_187	val_187
+189	val_189	val_189
+190	val_190	val_190
+192	val_192	val_192
+194	val_194	val_194
+196	val_196	val_196
+200	val_200	val_200
+200	val_200	val_200
+200	val_200	val_200
+200	val_200	val_200
+202	val_202	val_202
+208	val_208	val_208
+208	val_208	val_208
+208	val_208	val_208
+208	val_208	val_208
+208	val_208	val_208
+208	val_208	val_208
+208	val_208	val_208
+208	val_208	val_208
+208	val_208	val_208
+213	val_213	val_213
+213	val_213	val_213
+213	val_213	val_213
+213	val_213	val_213
+217	val_217	val_217
+217	val_217	val_217
+217	val_217	val_217
+217	val_217	val_217
+219	val_219	val_219
+219	val_219	val_219
+219	val_219	val_219
+219	val_219	val_219
+222	val_222	val_222
+224	val_224	val_224
+224	val_224	val_224
+224	val_224	val_224
+224	val_224	val_224
+226	val_226	val_226
+228	val_228	val_228
+233	val_233	val_233
+233	val_233	val_233
+233	val_233	val_233
+233	val_233	val_233
+235	val_235	val_235
+237	val_237	val_237
+237	val_237	val_237
+237	val_237	val_237
+237	val_237	val_237
+239	val_239	val_239
+239	val_239	val_239
+239	val_239	val_239
+239	val_239	val_239
+242	val_242	val_242
+242	val_242	val_242
+242	val_242	val_242
+242	val_242	val_242
+244	val_244	val_244
+248	val_248	val_248
+255	val_255	val_255
+255	val_255	val_255
+255	val_255	val_255
+255	val_255	val_255
+257	val_257	val_257
+260	val_260	val_260
+262	val_262	val_262
+266	val_266	val_266
+273	val_273	val_273
+273	val_273	val_273
+273	val_273	val_273
+273	val_273	val_273
+273	val_273	val_273
+273	val_273	val_273
+273	val_273	val_273
+273	val_273	val_273
+273	val_273	val_273
+275	val_275	val_275
+277	val_277	val_277
+277	val_277	val_277
+277	val_277	val_277
+277	val_277	val_277
+277	val_277	val_277
+277	val_277	val_277
+277	val_277	val_277
+277	val_277	val_277
+277	val_277	val_277
+277	val_277	val_277
+277	val_277	val_277
+277	val_277	val_277
+277	val_277	val_277
+277	val_277	val_277
+277	val_277	val_277
+277	val_277	val_277
+280	val_280	val_280
+280	val_280	val_280
+280	val_280	val_280
+280	val_280	val_280
+282	val_282	val_282
+282	val_282	val_282
+282	val_282	val_282
+282	val_282	val_282
+284	val_284	val_284
+286	val_286	val_286
+288	val_288	val_288
+288	val_288	val_288
+288	val_288	val_288
+288	val_288	val_288
+291	val_291	val_291
+305	val_305	val_305
+307	val_307	val_307
+307	val_307	val_307
+307	val_307	val_307
+307	val_307	val_307
+309	val_309	val_309
+309	val_309	val_309
+309	val_309	val_309
+309	val_309	val_309
+310	val_310	val_310
+316	val_316	val_316
+316	val_316	val_316
+316	val_316	val_316
+316	val_316	val_316
+316	val_316	val_316
+316	val_316	val_316
+316	val_316	val_316
+316	val_316	val_316
+316	val_316	val_316
+318	val_318	val_318
+318	val_318	val_318
+318	val_318	val_318
+318	val_318	val_318
+318	val_318	val_318
+318	val_318	val_318
+318	val_318	val_318
+318	val_318	val_318
+318	val_318	val_318
+321	val_321	val_321
+321	val_321	val_321
+321	val_321	val_321
+321	val_321	val_321
+323	val_323	val_323
+325	val_325	val_325
+325	val_325	val_325
+325	val_325	val_325
+325	val_325	val_325
+327	val_327	val_327
+327	val_327	val_327
+327	val_327	val_327
+327	val_327	val_327
+327	val_327	val_327
+327	val_327	val_327
+327	val_327	val_327
+327	val_327	val_327
+327	val_327	val_327
+332	val_332	val_332
+336	val_336	val_336
+338	val_338	val_338
+341	val_341	val_341
+345	val_345	val_345
+356	val_356	val_356
+365	val_365	val_365
+367	val_367	val_367
+367	val_367	val_367
+367	val_367	val_367
+367	val_367	val_367
+369	val_369	val_369
+369	val_369	val_369
+369	val_369	val_369
+369	val_369	val_369
+369	val_369	val_369
+369	val_369	val_369
+369	val_369	val_369
+369	val_369	val_369
+369	val_369	val_369
+374	val_374	val_374
+378	val_378	val_378
+389	val_389	val_389
+392	val_392	val_392
+394	val_394	val_394
+396	val_396	val_396
+396	val_396	val_396
+396	val_396	val_396
+396	val_396	val_396
+396	val_396	val_396
+396	val_396	val_396
+396	val_396	val_396
+396	val_396	val_396
+396	val_396	val_396
+400	val_400	val_400
+402	val_402	val_402
+404	val_404	val_404
+404	val_404	val_404
+404	val_404	val_404
+404	val_404	val_404
+406	val_406	val_406
+406	val_406	val_406
+406	val_406	val_406
+406	val_406	val_406
+406	val_406	val_406
+406	val_406	val_406
+406	val_406	val_406
+406	val_406	val_406
+406	val_406	val_406
+406	val_406	val_406
+406	val_406	val_406
+406	val_406	val_406
+406	val_406	val_406
+406	val_406	val_406
+406	val_406	val_406
+406	val_406	val_406
+411	val_411	val_411
+413	val_413	val_413
+413	val_413	val_413
+413	val_413	val_413
+413	val_413	val_413
+417	val_417	val_417
+417	val_417	val_417
+417	val_417	val_417
+417	val_417	val_417
+417	val_417	val_417
+417	val_417	val_417
+417	val_417	val_417
+417	val_417	val_417
+417	val_417	val_417
+419	val_419	val_419
+424	val_424	val_424
+424	val_424	val_424
+424	val_424	val_424
+424	val_424	val_424
+431	val_431	val_431
+431	val_431	val_431
+431	val_431	val_431
+431	val_431	val_431
+431	val_431	val_431
+431	val_431	val_431
+431	val_431	val_431
+431	val_431	val_431
+431	val_431	val_431
+435	val_435	val_435
+437	val_437	val_437
+439	val_439	val_439
+439	val_439	val_439
+439	val_439	val_439
+439	val_439	val_439
+444	val_444	val_444
+446	val_446	val_446
+448	val_448	val_448
+453	val_453	val_453
+455	val_455	val_455
+457	val_457	val_457
+459	val_459	val_459
+459	val_459	val_459
+459	val_459	val_459
+459	val_459	val_459
+460	val_460	val_460
+462	val_462	val_462
+462	val_462	val_462
+462	val_462	val_462
+462	val_462	val_462
+466	val_466	val_466
+466	val_466	val_466
+466	val_466	val_466
+466	val_466	val_466
+466	val_466	val_466
+466	val_466	val_466
+466	val_466	val_466
+466	val_466	val_466
+466	val_466	val_466
+468	val_468	val_468
+468	val_468	val_468
+468	val_468	val_468
+468	val_468	val_468
+468	val_468	val_468
+468	val_468	val_468
+468	val_468	val_468
+468	val_468	val_468
+468	val_468	val_468
+468	val_468	val_468
+468	val_468	val_468
+468	val_468	val_468
+468	val_468	val_468
+468	val_468	val_468
+468	val_468	val_468
+468	val_468	val_468
+475	val_475	val_475
+477	val_477	val_477
+479	val_479	val_479
+480	val_480	val_480
+480	val_480	val_480
+480	val_480	val_480
+480	val_480	val_480
+480	val_480	val_480
+480	val_480	val_480
+480	val_480	val_480
+480	val_480	val_480
+480	val_480	val_480
+482	val_482	val_482
+484	val_484	val_484
+491	val_491	val_491
+493	val_493	val_493
+495	val_495	val_495
+497	val_497	val_497
+PREHOOK: query: explain select a.key, a.value, b.value
+        from tab2 a join tab_part b on a.key = b.key and a.value = b.value
+PREHOOK: type: QUERY
+POSTHOOK: query: explain select a.key, a.value, b.value
+        from tab2 a join tab_part b on a.key = b.key and a.value = b.value
+POSTHOOK: type: QUERY
+STAGE DEPENDENCIES:
+  Stage-1 is a root stage
+  Stage-0 depends on stages: Stage-1
+
+STAGE PLANS:
+  Stage: Stage-1
+    Tez
+#### A masked pattern was here ####
+      Edges:
+        Map 2 <- Map 1 (CUSTOM_EDGE)
+#### A masked pattern was here ####
+      Vertices:
+        Map 1 
+            Map Operator Tree:
+                TableScan
+                  alias: a
+                  Statistics: Num rows: 242 Data size: 22990 Basic stats: COMPLETE Column stats: COMPLETE
+                  Filter Operator
+                    predicate: (key is not null and value is not null) (type: boolean)
+                    Statistics: Num rows: 242 Data size: 22990 Basic stats: COMPLETE Column stats: COMPLETE
+                    Select Operator
+                      expressions: key (type: int), value (type: string)
+                      outputColumnNames: _col0, _col1
+                      Statistics: Num rows: 242 Data size: 22990 Basic stats: COMPLETE Column stats: COMPLETE
+                      Reduce Output Operator
+                        key expressions: _col0 (type: int), _col1 (type: string)
+                        sort order: ++
+                        Map-reduce partition columns: _col0 (type: int)
+                        Statistics: Num rows: 242 Data size: 22990 Basic stats: COMPLETE Column stats: COMPLETE
+            Execution mode: llap
+            LLAP IO: no inputs
+        Map 2 
+            Map Operator Tree:
+                TableScan
+                  alias: b
+                  Statistics: Num rows: 500 Data size: 47500 Basic stats: COMPLETE Column stats: COMPLETE
+                  Filter Operator
+                    predicate: (key is not null and value is not null) (type: boolean)
+                    Statistics: Num rows: 500 Data size: 47500 Basic stats: COMPLETE Column stats: COMPLETE
+                    Select Operator
+                      expressions: key (type: int), value (type: string)
+                      outputColumnNames: _col0, _col1
+                      Statistics: Num rows: 500 Data size: 47500 Basic stats: COMPLETE Column stats: COMPLETE
+                      Map Join Operator
+                        condition map:
+                             Inner Join 0 to 1
+                        keys:
+                          0 _col0 (type: int), _col1 (type: string)
+                          1 _col0 (type: int), _col1 (type: string)
+                        outputColumnNames: _col0, _col1, _col3
+                        input vertices:
+                          0 Map 1
+                        Statistics: Num rows: 391 Data size: 72726 Basic stats: COMPLETE Column stats: COMPLETE
+                        Select Operator
+                          expressions: _col0 (type: int), _col1 (type: string), _col3 (type: string)
+                          outputColumnNames: _col0, _col1, _col2
+                          Statistics: Num rows: 391 Data size: 72726 Basic stats: COMPLETE Column stats: COMPLETE
+                          File Output Operator
+                            compressed: false
+                            Statistics: Num rows: 391 Data size: 72726 Basic stats: COMPLETE Column stats: COMPLETE
+                            table:
+                                input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+                                output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+                                serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+            Execution mode: llap
+            LLAP IO: no inputs
+
+  Stage: Stage-0
+    Fetch Operator
+      limit: -1
+      Processor Tree:
+        ListSink
+
+PREHOOK: query: select a.key, a.value, b.value
+from tab2 a join tab_part b on a.key = b.key and a.value = b.value
+order by a.key, a.value, b.value
+PREHOOK: type: QUERY
+PREHOOK: Input: default@tab2
+PREHOOK: Input: default@tab2@ds=2008-04-08
+PREHOOK: Input: default@tab_part
+PREHOOK: Input: default@tab_part@ds=2008-04-08
+#### A masked pattern was here ####
+POSTHOOK: query: select a.key, a.value, b.value
+from tab2 a join tab_part b on a.key = b.key and a.value = b.value
+order by a.key, a.value, b.value
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@tab2
+POSTHOOK: Input: default@tab2@ds=2008-04-08
+POSTHOOK: Input: default@tab_part
+POSTHOOK: Input: default@tab_part@ds=2008-04-08
+#### A masked pattern was here ####
+0	val_0	val_0
+0	val_0	val_0
+0	val_0	val_0
+0	val_0	val_0
+0	val_0	val_0
+0	val_0	val_0
+0	val_0	val_0
+0	val_0	val_0
+0	val_0	val_0
+2	val_2	val_2
+4	val_4	val_4
+8	val_8	val_8
+11	val_11	val_11
+15	val_15	val_15
+15	val_15	val_15
+15	val_15	val_15
+15	val_15	val_15
+17	val_17	val_17
+19	val_19	val_19
+20	val_20	val_20
+24	val_24	val_24
+24	val_24	val_24
+24	val_24	val_24
+24	val_24	val_24
+26	val_26	val_26
+26	val_26	val_26
+26	val_26	val_26
+26	val_26	val_26
+28	val_28	val_28
+33	val_33	val_33
+35	val_35	val_35
+35	val_35	val_35
+35	val_35	val_35
+35	val_35	val_35
+35	val_35	val_35
+35	val_35	val_35
+35	val_35	val_35
+35	val_35	val_35
+35	val_35	val_35
+37	val_37	val_37
+37	val_37	val_37
+37	val_37	val_37
+37	val_37	val_37
+42	val_42	val_42
+42	val_42	val_42
+42	val_42	val_42
+42	val_42	val_42
+44	val_44	val_44
+51	val_51	val_51
+51	val_51	val_51
+51	val_51	val_51
+51	val_51	val_51
+53	val_53	val_53
+57	val_57	val_57
+64	val_64	val_64
+66	val_66	val_66
+77	val_77	val_77
+80	val_80	val_80
+82	val_82	val_82
+84	val_84	val_84
+84	val_84	val_84
+84	val_84	val_84
+84	val_84	val_84
+86	val_86	val_86
+95	val_95	val_95
+95	val_95	val_95
+95	val_95	val_95
+95	val_95	val_95
+97	val_97	val_97
+97	val_97	val_97
+97	val_97	val_97
+97	val_97	val_97
+103	val_103	val_103
+103	val_103	val_103
+103	val_103	val_103
+103	val_103	val_103
+105	val_105	val_105
+114	val_114	val_114
+116	val_116	val_116
+118	val_118	val_118
+118	val_118	val_118
+118	val_118	val_118
+118	val_118	val_118
+125	val_125	val_125
+125	val_125	val_125
+125	val_125	val_125
+125	val_125	val_125
+129	val_129	val_129
+129	val_129	val_129
+129	val_129	val_129
+129	val_129	val_129
+134	val_134	val_134
+134	val_134	val_134
+134	val_134	val_134
+134	val_134	val_134
+136	val_136	val_136
+138	val_138	val_138
+138	val_138	val_138
+138	val_138	val_138
+138	val_138	val_138
+138	val_138	val_138
+138	val_138	val_138
+138	val_138	val_138
+138	val_138	val_138
+138	val_138	val_138
+138	val_138	val_138
+138	val_138	val_138
+138	val_138	val_138
+138	val_138	val_138
+138	val_138	val_138
+138	val_138	val_138
+138	val_138	val_138
+143	val_143	val_143
+145	val_145	val_145
+149	val_149	val_149
+149	val_149	val_149
+149	val_149	val_149
+149	val_149	val_149
+150	val_150	val_150
+152	val_152	val_152
+152	val_152	val_152
+152	val_152	val_152
+152	val_152	val_152
+156	val_156	val_156
+158	val_158	val_158
+163	val_163	val_163
+165	val_165	val_165
+165	val_165	val_165
+165	val_165	val_165
+165	val_165	val_165
+167	val_167	val_167
+167	val_167	val_167
+167	val_167	val_167
+167	val_167	val_167
+167	val_167	val_167
+167	val_167	val_167
+167	val_167	val_167
+167	val_167	val_167
+167	val_167	val_167
+169	val_169	val_169
+169	val_169	val_169
+169	val_169	val_169
+169	val_169	val_169
+169	val_169	val_169
+169	val_169	val_169
+169	val_169	val_169
+169	val_169	val_169
+169	val_169	val_169
+169	val_169	val_169
+169	val_169	val_169
+169	val_169	val_169
+169	val_169	val_169
+169	val_169	val_169
+169	val_169	val_169
+169	val_169	val_169
+170	val_170	val_170
+172	val_172	val_172
+172	val_172	val_172
+172	val_172	val_172
+172	val_172	val_172
+174	val_174	val_174
+174	val_174	val_174
+174	val_174	val_174
+174	val_174	val_174
+176	val_176	val_176
+176	val_176	val_176
+176	val_176	val_176
+176	val_176	val_176
+178	val_178	val_178
+181	val_181	val_181
+183	val_183	val_183
+187	val_187	val_187
+187	val_187	val_187
+187	val_187	val_187
+187	val_187	val_187
+187	val_187	val_187
+187	val_187	val_187
+187	val_187	val_187
+187	val_187	val_187
+187	val_187	val_187
+189	val_189	val_189
+190	val_190	val_190
+192	val_192	val_192
+194	val_194	val_194
+196	val_196	val_196
+200	val_200	val_200
+200	val_200	val_200
+200	val_200	val_200
+200	val_200	val_200
+202	val_202	val_202
+208	val_208	val_208
+208	val_208	val_208
+208	val_208	val_208
+208	val_208	val_208
+208	val_208	val_208
+208	val_208	val_208
+208	val_208	val_208
+208	val_208	val_208
+208	val_208	val_208
+213	val_213	val_213
+213	val_213	val_213
+213	val_213	val_213
+213	val_213	val_213
+217	val_217	val_217
+217	val_217	val_217
+217	val_217	val_217
+217	val_217	val_217
+219	val_219	val_219
+219	val_219	val_219
+219	val_219	val_219
+219	val_219	val_219
+222	val_222	val_222
+224	val_224	val_224
+224	val_224	val_224
+224	val_224	val_224
+224	val_224	val_224
+226	val_226	val_226
+228	val_228	val_228
+233	val_233	val_233
+233	val_233	val_233
+233	val_233	val_233
+233	val_233	val_233
+235	val_235	val_235
+237	val_237	val_237
+237	val_237	val_237
+237	val_237	val_237
+237	val_237	val_237
+239	val_239	val_239
+239	val_239	val_239
+239	val_239	val_239
+239	val_239	val_239
+242	val_242	val_242
+242	val_242	val_242
+242	val_242	val_242
+242	val_242	val_242
+244	val_244	val_244
+248	val_248	val_248
+255	val_255	val_255
+255	val_255	val_255
+255	val_255	val_255
+255	val_255	val_255
+257	val_257	val_257
+260	val_260	val_260
+262	val_262	val_262
+266	val_266	val_266
+273	val_273	val_273
+273	val_273	val_273
+273	val_273	val_273
+273	val_273	val_273
+273	val_273	val_273
+273	val_273	val_273
+273	val_273	val_273
+273	val_273	val_273
+273	val_273	val_273
+275	val_275	val_275
+277	val_277	val_277
+277	val_277	val_277
+277	val_277	val_277
+277	val_277	val_277
+277	val_277	val_277
+277	val_277	val_277
+277	val_277	val_277
+277	val_277	val_277
+277	val_277	val_277
+277	val_277	val_277
+277	val_277	val_277
+277	val_277	val_277
+277	val_277	val_277
+277	val_277	val_277
+277	val_277	val_277
+277	val_277	val_277
+280	val_280	val_280
+280	val_280	val_280
+280	val_280	val_280
+280	val_280	val_280
+282	val_282	val_282
+282	val_282	val_282
+282	val_282	val_282
+282	val_282	val_282
+284	val_284	val_284
+286	val_286	val_286
+288	val_288	val_288
+288	val_288	val_288
+288	val_288	val_288
+288	val_288	val_288
+291	val_291	val_291
+305	val_305	val_305
+307	val_307	val_307
+307	val_307	val_307
+307	val_307	val_307
+307	val_307	val_307
+309	val_309	val_309
+309	val_309	val_309
+309	val_309	val_309
+309	val_309	val_309
+310	val_310	val_310
+316	val_316	val_316
+316	val_316	val_316
+316	val_316	val_316
+316	val_316	val_316
+316	val_316	val_316
+316	val_316	val_316
+316	val_316	val_316
+316	val_316	val_316
+316	val_316	val_316
+318	val_318	val_318
+318	val_318	val_318
+318	val_318	val_318
+318	val_318	val_318
+318	val_318	val_318
+318	val_318	val_318
+318	val_318	val_318
+318	val_318	val_318
+318	val_318	val_318
+321	val_321	val_321
+321	val_321	val_321
+321	val_321	val_321
+321	val_321	val_321
+323	val_323	val_323
+325	val_325	val_325
+325	val_325	val_325
+325	val_325	val_325
+325	val_325	val_325
+327	val_327	val_327
+327	val_327	val_327
+327	val_327	val_327
+327	val_327	val_327
+327	val_327	val_327
+327	val_327	val_327
+327	val_327	val_327
+327	val_327	val_327
+327	val_327	val_327
+332	val_332	val_332
+336	val_336	val_336
+338	val_338	val_338
+341	val_341	val_341
+345	val_345	val_345
+356	val_356	val_356
+365	val_365	val_365
+367	val_367	val_367
+367	val_367	val_367
+367	val_367	val_367
+367	val_367	val_367
+369	val_369	val_369
+369	val_369	val_369
+369	val_369	val_369
+369	val_369	val_369
+369	val_369	val_369
+369	val_369	val_369
+369	val_369	val_369
+369	val_369	val_369
+369	val_369	val_369
+374	val_374	val_374
+378	val_378	val_378
+389	val_389	val_389
+392	val_392	val_392
+394	val_394	val_394
+396	val_396	val_396
+396	val_396	val_396
+396	val_396	val_396
+396	val_396	val_396
+396	val_396	val_396
+396	val_396	val_396
+396	val_396	val_396
+396	val_396	val_396
+396	val_396	val_396
+400	val_400	val_400
+402	val_402	val_402
+404	val_404	val_404
+404	val_404	val_404
+404	val_404	val_404
+404	val_404	val_404
+406	val_406	val_406
+406	val_406	val_406
+406	val_406	val_406
+406	val_406	val_406
+406	val_406	val_406
+406	val_406	val_406
+406	val_406	val_406
+406	val_406	val_406
+406	val_406	val_406
+406	val_406	val_406
+406	val_406	val_406
+406	val_406	val_406
+406	val_406	val_406
+406	val_406	val_406
+406	val_406	val_406
+406	val_406	val_406
+411	val_411	val_411
+413	val_413	val_413
+413	val_413	val_413
+413	val_413	val_413
+413	val_413	val_413
+417	val_417	val_417
+417	val_417	val_417
+417	val_417	val_417
+417	val_417	val_417
+417	val_417	val_417
+417	val_417	val_417
+417	val_417	val_417
+417	val_417	val_417
+417	val_417	val_417
+419	val_419	val_419
+424	val_424	val_424
+424	val_424	val_424
+424	val_424	val_424
+424	val_424	val_424
+431	val_431	val_431
+431	val_431	val_431
+431	val_431	val_431
+431	val_431	val_431
+431	val_431	val_431
+431	val_431	val_431
+431	val_431	val_431
+431	val_431	val_431
+431	val_431	val_431
+435	val_435	val_435
+437	val_437	val_437
+439	val_439	val_439
+439	val_439	val_439
+439	val_439	val_439
+439	val_439	val_439
+444	val_444	val_444
+446	val_446	val_446
+448	val_448	val_448
+453	val_453	val_453
+455	val_455	val_455
+457	val_457	val_457
+459	val_459	val_459
+459	val_459	val_459
+459	val_459	val_459
+459	val_459	val_459
+460	val_460	val_460
+462	val_462	val_462
+462	val_462	val_462
+462	val_462	val_462
+462	val_462	val_462
+466	val_466	val_466
+466	val_466	val_466
+466	val_466	val_466
+466	val_466	val_466
+466	val_466	val_466
+466	val_466	val_466
+466	val_466	val_466
+466	val_466	val_466
+466	val_466	val_466
+468	val_468	val_468
+468	val_468	val_468
+468	val_468	val_468
+468	val_468	val_468
+468	val_468	val_468
+468	val_468	val_468
+468	val_468	val_468
+468	val_468	val_468
+468	val_468	val_468
+468	val_468	val_468
+468	val_468	val_468
+468	val_468	val_468
+468	val_468	val_468
+468	val_468	val_468
+468	val_468	val_468
+468	val_468	val_468
+475	val_475	val_475
+477	val_477	val_477
+479	val_479	val_479
+480	val_480	val_480
+480	val_480	val_480
+480	val_480	val_480
+480	val_480	val_480
+480	val_480	val_480
+480	val_480	val_480
+480	val_480	val_480
+480	val_480	val_480
+480	val_480	val_480
+482	val_482	val_482
+484	val_484	val_484
+491	val_491	val_491
+493	val_493	val_493
+495	val_495	val_495
+497	val_497	val_497

http://git-wip-us.apache.org/repos/asf/hive/blob/f973243a/ql/src/test/results/clientpositive/llap/tez_smb_main.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/llap/tez_smb_main.q.out b/ql/src/test/results/clientpositive/llap/tez_smb_main.q.out
index 283efcf..f457814 100644
--- a/ql/src/test/results/clientpositive/llap/tez_smb_main.q.out
+++ b/ql/src/test/results/clientpositive/llap/tez_smb_main.q.out
@@ -584,7 +584,7 @@ STAGE PLANS:
     Tez
 #### A masked pattern was here ####
       Edges:
-        Map 1 <- Map 4 (BROADCAST_EDGE)
+        Map 1 <- Map 4 (CUSTOM_EDGE)
         Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 5 (SIMPLE_EDGE)
         Reducer 3 <- Reducer 2 (CUSTOM_SIMPLE_EDGE)
 #### A masked pattern was here ####
@@ -710,7 +710,7 @@ STAGE PLANS:
     Tez
 #### A masked pattern was here ####
       Edges:
-        Map 1 <- Map 4 (BROADCAST_EDGE)
+        Map 1 <- Map 4 (CUSTOM_EDGE)
         Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 5 (SIMPLE_EDGE)
         Reducer 3 <- Reducer 2 (CUSTOM_SIMPLE_EDGE)
 #### A masked pattern was here ####
@@ -839,7 +839,7 @@ POSTHOOK: Input: default@tab@ds=2008-04-08
 POSTHOOK: Input: default@tab_part
 POSTHOOK: Input: default@tab_part@ds=2008-04-08
 #### A masked pattern was here ####
-40
+19
 PREHOOK: query: explain select count(*) from tab a join tab_part b on a.value = b.value
 PREHOOK: type: QUERY
 POSTHOOK: query: explain select count(*) from tab a join tab_part b on a.value = b.value
@@ -1400,7 +1400,7 @@ STAGE PLANS:
     Tez
 #### A masked pattern was here ####
       Edges:
-        Map 1 <- Map 2 (BROADCAST_EDGE)
+        Map 1 <- Map 2 (CUSTOM_EDGE)
         Map 3 <- Map 1 (CUSTOM_EDGE)
         Reducer 4 <- Map 3 (CUSTOM_SIMPLE_EDGE)
 #### A masked pattern was here ####
@@ -1520,7 +1520,7 @@ STAGE PLANS:
     Tez
 #### A masked pattern was here ####
       Edges:
-        Map 1 <- Map 2 (BROADCAST_EDGE)
+        Map 1 <- Map 2 (CUSTOM_EDGE)
         Map 3 <- Map 1 (CUSTOM_EDGE)
         Reducer 4 <- Map 3 (CUSTOM_SIMPLE_EDGE)
 #### A masked pattern was here ####
@@ -1643,7 +1643,7 @@ POSTHOOK: Input: default@tab@ds=2008-04-08
 POSTHOOK: Input: default@tab_part
 POSTHOOK: Input: default@tab_part@ds=2008-04-08
 #### A masked pattern was here ####
-40
+19
 PREHOOK: query: explain
 select count(*) from (select s1.key as key, s1.value as value from tab s1 join tab s3 on s1.key=s3.key
 UNION  ALL