diff --git build-common.xml build-common.xml
index ee6a3ce..8e69b7d 100644
--- build-common.xml
+++ build-common.xml
@@ -61,6 +61,7 @@
+
@@ -203,6 +204,7 @@
+
diff --git hbase-handler/src/test/org/apache/hadoop/hive/hbase/HBaseQTestUtil.java hbase-handler/src/test/org/apache/hadoop/hive/hbase/HBaseQTestUtil.java
index 0558048..a71a0b9 100644
--- hbase-handler/src/test/org/apache/hadoop/hive/hbase/HBaseQTestUtil.java
+++ hbase-handler/src/test/org/apache/hadoop/hive/hbase/HBaseQTestUtil.java
@@ -24,7 +24,7 @@
*/
public class HBaseQTestUtil extends QTestUtil {
public HBaseQTestUtil(
- String outDir, String logDir, boolean miniMr, HBaseTestSetup setup)
+ String outDir, String logDir, String miniMr, HBaseTestSetup setup)
throws Exception {
super(outDir, logDir, miniMr, null);
@@ -32,6 +32,7 @@ public HBaseQTestUtil(
super.init();
}
+ @Override
public void init() throws Exception {
// defer
}
diff --git hbase-handler/src/test/templates/TestHBaseCliDriver.vm hbase-handler/src/test/templates/TestHBaseCliDriver.vm
index 191bbc7..8344fa4 100644
--- hbase-handler/src/test/templates/TestHBaseCliDriver.vm
+++ hbase-handler/src/test/templates/TestHBaseCliDriver.vm
@@ -43,7 +43,7 @@ public class $className extends TestCase {
@Override
protected void setUp() {
try {
- boolean miniMR = "$clusterMode".equals("miniMR");
+ String miniMR = "$clusterMode";
qt = new HBaseQTestUtil((HIVE_ROOT + "$resultsDir"), (HIVE_ROOT + "$logDir"), miniMR, setup);
} catch (Exception e) {
diff --git hbase-handler/src/test/templates/TestHBaseNegativeCliDriver.vm hbase-handler/src/test/templates/TestHBaseNegativeCliDriver.vm
index f3b5e4b..e642aaa 100644
--- hbase-handler/src/test/templates/TestHBaseNegativeCliDriver.vm
+++ hbase-handler/src/test/templates/TestHBaseNegativeCliDriver.vm
@@ -43,7 +43,7 @@ public class $className extends TestCase {
@Override
protected void setUp() {
try {
- boolean miniMR = "$clusterMode".equals("miniMR");
+ String miniMR = "$clusterMode";
qt = new HBaseQTestUtil((HIVE_ROOT + "$resultsDir"), (HIVE_ROOT + "$logDir"), miniMR, setup);
diff --git ql/build.xml ql/build.xml
index be8e10f..8d41b26 100644
--- ql/build.xml
+++ ql/build.xml
@@ -135,6 +135,23 @@
logDirectory="${test.log.dir}/clientnegative"
hadoopVersion="${hadoopVersion}"
/>
+
+
+
+
diff --git ql/ivy.xml ql/ivy.xml
index e95436a..410da14 100644
--- ql/ivy.xml
+++ ql/ivy.xml
@@ -54,6 +54,7 @@
+
();
qSkipSet = new HashSet();
qSortSet = new HashSet();
- if (miniMr) {
+ if (this.miniMr) {
dfs = ShimLoader.getHadoopShims().getMiniDfs(conf, 4, true, null);
FileSystem fs = dfs.getFileSystem();
mr = ShimLoader.getHadoopShims().getMiniMrCluster(conf, 4, getHdfsUriString(fs.getUri().toString()), 1);
+ } else if (this.miniTez) {
+ HadoopShims shims = ShimLoader.getNonHadoopShims(miniMr);
+ dfs = shims.getMiniDfs(conf, 4, true, null);
+ FileSystem fs = dfs.getFileSystem();
+ mr = shims.getMiniMrCluster(conf, 4, getHdfsUriString(fs.getUri().toString()), 1);
}
initConf();
@@ -1434,7 +1439,7 @@ public void run() {
{
QTestUtil[] qt = new QTestUtil[qfiles.length];
for (int i = 0; i < qfiles.length; i++) {
- qt[i] = new QTestUtil(resDir, logDir, false, "0.20");
+ qt[i] = new QTestUtil(resDir, logDir, "", "0.20");
qt[i].addFile(qfiles[i]);
qt[i].clearTestSideEffects();
}
diff --git ql/src/test/org/apache/hadoop/hive/ql/TestLocationQueries.java ql/src/test/org/apache/hadoop/hive/ql/TestLocationQueries.java
index 0ddc1d5..d690f6c 100644
--- ql/src/test/org/apache/hadoop/hive/ql/TestLocationQueries.java
+++ ql/src/test/org/apache/hadoop/hive/ql/TestLocationQueries.java
@@ -74,7 +74,7 @@ public int checkCliDriverResults(String tname) throws Exception {
return failedCount;
}
- public CheckResults(String outDir, String logDir, boolean miniMr,
+ public CheckResults(String outDir, String logDir, String miniMr,
String hadoopVer, String locationSubdir)
throws Exception
{
@@ -95,7 +95,7 @@ public void testAlterTablePartitionLocation_alter5() throws Exception {
QTestUtil[] qt = new QTestUtil[qfiles.length];
for (int i = 0; i < qfiles.length; i++) {
- qt[i] = new CheckResults(resDir, logDir, false, "0.20", "parta");
+ qt[i] = new CheckResults(resDir, logDir, "non-minimr", "0.20", "parta");
qt[i].addFile(qfiles[i]);
qt[i].clearTestSideEffects();
}
diff --git ql/src/test/queries/clientpositive/tez_join_tests.q ql/src/test/queries/clientpositive/tez_join_tests.q
new file mode 100644
index 0000000..51674b7
--- /dev/null
+++ ql/src/test/queries/clientpositive/tez_join_tests.q
@@ -0,0 +1,13 @@
+set hive.optimize.tez=true;
+explain
+select * from (select b.key, b.value from src1 a left outer join src b on (a.key = b.key) order by b.key) x right outer join src c on (x.value = c.value) order by x.key;
+
+select * from (select b.key, b.value from src1 a left outer join src b on (a.key = b.key) order by b.key) x right outer join src c on (x.value = c.value) order by x.key;
+select * from (select b.key, b.value from src1 a left outer join src b on (a.key = b.key)) x right outer join src c on (x.value = c.value) order by x.key;
+select * from src1 a left outer join src b on (a.key = b.key) right outer join src c on (a.value = c.value) order by a.key;
+select * from src1 a left outer join src b on (a.key = b.key) left outer join src c on (a.value = c.value) order by a.key;
+select * from src1 a left outer join src b on (a.key = b.key) join src c on (a.key = c.key);
+select * from src1 a join src b on (a.key = b.key) join src c on (a.key = c.key);
+
+select count(*) from src1 a join src b on (a.key = b.key) join src c on (a.key = c.key);
+
diff --git ql/src/test/queries/clientpositive/tez_joins_explain.q ql/src/test/queries/clientpositive/tez_joins_explain.q
new file mode 100644
index 0000000..d720811
--- /dev/null
+++ ql/src/test/queries/clientpositive/tez_joins_explain.q
@@ -0,0 +1,6 @@
+set hive.optimize.tez=true;
+explain
+select * from (select b.key, b.value from src1 a left outer join src b on (a.key = b.key) order by b.key) x right outer join src c on (x.value = c.value) order by x.key;
+
+select * from (select b.key, b.value from src1 a left outer join src b on (a.key = b.key) order by b.key) x right outer join src c on (x.value = c.value) order by x.key;
+
diff --git ql/src/test/results/clientpositive/tez_join_tests.q.out ql/src/test/results/clientpositive/tez_join_tests.q.out
new file mode 100644
index 0000000..358f861
--- /dev/null
+++ ql/src/test/results/clientpositive/tez_join_tests.q.out
@@ -0,0 +1,2248 @@
+PREHOOK: query: explain
+select * from (select b.key, b.value from src1 a left outer join src b on (a.key = b.key) order by b.key) x right outer join src c on (x.value = c.value) order by x.key
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select * from (select b.key, b.value from src1 a left outer join src b on (a.key = b.key) order by b.key) x right outer join src c on (x.value = c.value) order by x.key
+POSTHOOK: type: QUERY
+ABSTRACT SYNTAX TREE:
+ (TOK_QUERY (TOK_FROM (TOK_RIGHTOUTERJOIN (TOK_SUBQUERY (TOK_QUERY (TOK_FROM (TOK_LEFTOUTERJOIN (TOK_TABREF (TOK_TABNAME src1) a) (TOK_TABREF (TOK_TABNAME src) b) (= (. (TOK_TABLE_OR_COL a) key) (. (TOK_TABLE_OR_COL b) key)))) (TOK_INSERT (TOK_DESTINATION (TOK_DIR TOK_TMP_FILE)) (TOK_SELECT (TOK_SELEXPR (. (TOK_TABLE_OR_COL b) key)) (TOK_SELEXPR (. (TOK_TABLE_OR_COL b) value))) (TOK_ORDERBY (TOK_TABSORTCOLNAMEASC (. (TOK_TABLE_OR_COL b) key))))) x) (TOK_TABREF (TOK_TABNAME src) c) (= (. (TOK_TABLE_OR_COL x) value) (. (TOK_TABLE_OR_COL c) value)))) (TOK_INSERT (TOK_DESTINATION (TOK_DIR TOK_TMP_FILE)) (TOK_SELECT (TOK_SELEXPR TOK_ALLCOLREF)) (TOK_ORDERBY (TOK_TABSORTCOLNAMEASC (. (TOK_TABLE_OR_COL x) key)))))
+
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-0 is a root stage
+
+STAGE PLANS:
+ Stage: Stage-1
+ Tez
+ Alias -> Map Operator Tree:
+ b
+ TableScan
+ alias: b
+ Reduce Output Operator
+ key expressions:
+ expr: key
+ type: string
+ sort order: +
+ Map-reduce partition columns:
+ expr: key
+ type: string
+ tag: 1
+ value expressions:
+ expr: key
+ type: string
+ expr: value
+ type: string
+ Alias -> Map Operator Tree:
+ a
+ TableScan
+ alias: a
+ Reduce Output Operator
+ key expressions:
+ expr: key
+ type: string
+ sort order: +
+ Map-reduce partition columns:
+ expr: key
+ type: string
+ tag: 0
+ Reduce Operator Tree:
+ Join Operator
+ condition map:
+ Left Outer Join0 to 1
+ condition expressions:
+ 0
+ 1 {VALUE._col0} {VALUE._col1}
+ handleSkewJoin: false
+ outputColumnNames: _col4, _col5
+ Select Operator
+ expressions:
+ expr: _col4
+ type: string
+ expr: _col5
+ type: string
+ outputColumnNames: _col0, _col1
+ Reduce Output Operator
+ key expressions:
+ expr: _col0
+ type: string
+ sort order: +
+ tag: -1
+ value expressions:
+ expr: _col0
+ type: string
+ expr: _col1
+ type: string
+ Reduce Operator Tree:
+ Extract
+ Reduce Output Operator
+ key expressions:
+ expr: _col1
+ type: string
+ sort order: +
+ Map-reduce partition columns:
+ expr: _col1
+ type: string
+ tag: 0
+ value expressions:
+ expr: _col0
+ type: string
+ expr: _col1
+ type: string
+ Alias -> Map Operator Tree:
+ c
+ TableScan
+ alias: c
+ Reduce Output Operator
+ key expressions:
+ expr: value
+ type: string
+ sort order: +
+ Map-reduce partition columns:
+ expr: value
+ type: string
+ tag: 1
+ value expressions:
+ expr: key
+ type: string
+ expr: value
+ type: string
+ Reduce Operator Tree:
+ Join Operator
+ condition map:
+ Right Outer Join0 to 1
+ condition expressions:
+ 0 {VALUE._col0} {VALUE._col1}
+ 1 {VALUE._col0} {VALUE._col1}
+ handleSkewJoin: false
+ outputColumnNames: _col0, _col1, _col2, _col3
+ Select Operator
+ expressions:
+ expr: _col0
+ type: string
+ expr: _col1
+ type: string
+ expr: _col2
+ type: string
+ expr: _col3
+ type: string
+ outputColumnNames: _col0, _col1, _col2, _col3
+ Reduce Output Operator
+ key expressions:
+ expr: _col0
+ type: string
+ sort order: +
+ tag: -1
+ value expressions:
+ expr: _col0
+ type: string
+ expr: _col1
+ type: string
+ expr: _col2
+ type: string
+ expr: _col3
+ type: string
+ Reduce Operator Tree:
+ Extract
+ File Output Operator
+ compressed: false
+ GlobalTableId: 0
+ table:
+ input format: org.apache.hadoop.mapred.TextInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+
+
+PREHOOK: query: select * from (select b.key, b.value from src1 a left outer join src b on (a.key = b.key) order by b.key) x right outer join src c on (x.value = c.value) order by x.key
+PREHOOK: type: QUERY
+PREHOOK: Input: default@src
+PREHOOK: Input: default@src1
+#### A masked pattern was here ####
+POSTHOOK: query: select * from (select b.key, b.value from src1 a left outer join src b on (a.key = b.key) order by b.key) x right outer join src c on (x.value = c.value) order by x.key
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@src
+POSTHOOK: Input: default@src1
+#### A masked pattern was here ####
+NULL NULL 0 val_0
+NULL NULL 97 val_97
+NULL NULL 97 val_97
+NULL NULL 96 val_96
+NULL NULL 95 val_95
+NULL NULL 95 val_95
+NULL NULL 92 val_92
+NULL NULL 90 val_90
+NULL NULL 90 val_90
+NULL NULL 90 val_90
+NULL NULL 9 val_9
+NULL NULL 87 val_87
+NULL NULL 86 val_86
+NULL NULL 85 val_85
+NULL NULL 84 val_84
+NULL NULL 84 val_84
+NULL NULL 83 val_83
+NULL NULL 83 val_83
+NULL NULL 82 val_82
+NULL NULL 80 val_80
+NULL NULL 8 val_8
+NULL NULL 78 val_78
+NULL NULL 77 val_77
+NULL NULL 76 val_76
+NULL NULL 76 val_76
+NULL NULL 74 val_74
+NULL NULL 72 val_72
+NULL NULL 72 val_72
+NULL NULL 70 val_70
+NULL NULL 70 val_70
+NULL NULL 70 val_70
+NULL NULL 69 val_69
+NULL NULL 67 val_67
+NULL NULL 67 val_67
+NULL NULL 65 val_65
+NULL NULL 64 val_64
+NULL NULL 58 val_58
+NULL NULL 58 val_58
+NULL NULL 57 val_57
+NULL NULL 54 val_54
+NULL NULL 53 val_53
+NULL NULL 51 val_51
+NULL NULL 51 val_51
+NULL NULL 5 val_5
+NULL NULL 5 val_5
+NULL NULL 5 val_5
+NULL NULL 498 val_498
+NULL NULL 498 val_498
+NULL NULL 498 val_498
+NULL NULL 497 val_497
+NULL NULL 496 val_496
+NULL NULL 495 val_495
+NULL NULL 494 val_494
+NULL NULL 493 val_493
+NULL NULL 492 val_492
+NULL NULL 492 val_492
+NULL NULL 491 val_491
+NULL NULL 490 val_490
+NULL NULL 489 val_489
+NULL NULL 489 val_489
+NULL NULL 489 val_489
+NULL NULL 489 val_489
+NULL NULL 487 val_487
+NULL NULL 485 val_485
+NULL NULL 484 val_484
+NULL NULL 483 val_483
+NULL NULL 482 val_482
+NULL NULL 481 val_481
+NULL NULL 480 val_480
+NULL NULL 480 val_480
+NULL NULL 480 val_480
+NULL NULL 479 val_479
+NULL NULL 478 val_478
+NULL NULL 478 val_478
+NULL NULL 477 val_477
+NULL NULL 475 val_475
+NULL NULL 472 val_472
+NULL NULL 470 val_470
+NULL NULL 47 val_47
+NULL NULL 469 val_469
+NULL NULL 469 val_469
+NULL NULL 469 val_469
+NULL NULL 469 val_469
+NULL NULL 469 val_469
+NULL NULL 468 val_468
+NULL NULL 468 val_468
+NULL NULL 468 val_468
+NULL NULL 468 val_468
+NULL NULL 467 val_467
+NULL NULL 466 val_466
+NULL NULL 466 val_466
+NULL NULL 466 val_466
+NULL NULL 463 val_463
+NULL NULL 463 val_463
+NULL NULL 462 val_462
+NULL NULL 462 val_462
+NULL NULL 460 val_460
+NULL NULL 459 val_459
+NULL NULL 459 val_459
+NULL NULL 458 val_458
+NULL NULL 458 val_458
+NULL NULL 457 val_457
+NULL NULL 455 val_455
+NULL NULL 454 val_454
+NULL NULL 454 val_454
+NULL NULL 454 val_454
+NULL NULL 453 val_453
+NULL NULL 452 val_452
+NULL NULL 449 val_449
+NULL NULL 448 val_448
+NULL NULL 446 val_446
+NULL NULL 444 val_444
+NULL NULL 443 val_443
+NULL NULL 44 val_44
+NULL NULL 439 val_439
+NULL NULL 439 val_439
+NULL NULL 438 val_438
+NULL NULL 438 val_438
+NULL NULL 438 val_438
+NULL NULL 437 val_437
+NULL NULL 436 val_436
+NULL NULL 435 val_435
+NULL NULL 432 val_432
+NULL NULL 431 val_431
+NULL NULL 431 val_431
+NULL NULL 431 val_431
+NULL NULL 430 val_430
+NULL NULL 430 val_430
+NULL NULL 430 val_430
+NULL NULL 43 val_43
+NULL NULL 429 val_429
+NULL NULL 429 val_429
+NULL NULL 427 val_427
+NULL NULL 424 val_424
+NULL NULL 424 val_424
+NULL NULL 421 val_421
+NULL NULL 42 val_42
+NULL NULL 42 val_42
+NULL NULL 419 val_419
+NULL NULL 418 val_418
+NULL NULL 417 val_417
+NULL NULL 417 val_417
+NULL NULL 417 val_417
+NULL NULL 414 val_414
+NULL NULL 414 val_414
+NULL NULL 413 val_413
+NULL NULL 413 val_413
+NULL NULL 411 val_411
+NULL NULL 41 val_41
+NULL NULL 409 val_409
+NULL NULL 409 val_409
+NULL NULL 409 val_409
+NULL NULL 407 val_407
+NULL NULL 404 val_404
+NULL NULL 404 val_404
+NULL NULL 403 val_403
+NULL NULL 403 val_403
+NULL NULL 403 val_403
+NULL NULL 402 val_402
+NULL NULL 400 val_400
+NULL NULL 4 val_4
+NULL NULL 399 val_399
+NULL NULL 399 val_399
+NULL NULL 397 val_397
+NULL NULL 397 val_397
+NULL NULL 396 val_396
+NULL NULL 396 val_396
+NULL NULL 396 val_396
+NULL NULL 395 val_395
+NULL NULL 395 val_395
+NULL NULL 394 val_394
+NULL NULL 393 val_393
+NULL NULL 392 val_392
+NULL NULL 389 val_389
+NULL NULL 386 val_386
+NULL NULL 384 val_384
+NULL NULL 384 val_384
+NULL NULL 384 val_384
+NULL NULL 382 val_382
+NULL NULL 382 val_382
+NULL NULL 379 val_379
+NULL NULL 378 val_378
+NULL NULL 377 val_377
+NULL NULL 375 val_375
+NULL NULL 374 val_374
+NULL NULL 373 val_373
+NULL NULL 37 val_37
+NULL NULL 37 val_37
+NULL NULL 368 val_368
+NULL NULL 367 val_367
+NULL NULL 367 val_367
+NULL NULL 366 val_366
+NULL NULL 365 val_365
+NULL NULL 364 val_364
+NULL NULL 362 val_362
+NULL NULL 360 val_360
+NULL NULL 356 val_356
+NULL NULL 353 val_353
+NULL NULL 353 val_353
+NULL NULL 351 val_351
+NULL NULL 35 val_35
+NULL NULL 35 val_35
+NULL NULL 35 val_35
+NULL NULL 348 val_348
+NULL NULL 348 val_348
+NULL NULL 348 val_348
+NULL NULL 348 val_348
+NULL NULL 348 val_348
+NULL NULL 345 val_345
+NULL NULL 344 val_344
+NULL NULL 344 val_344
+NULL NULL 342 val_342
+NULL NULL 342 val_342
+NULL NULL 341 val_341
+NULL NULL 34 val_34
+NULL NULL 339 val_339
+NULL NULL 338 val_338
+NULL NULL 336 val_336
+NULL NULL 335 val_335
+NULL NULL 333 val_333
+NULL NULL 333 val_333
+NULL NULL 332 val_332
+NULL NULL 331 val_331
+NULL NULL 331 val_331
+NULL NULL 33 val_33
+NULL NULL 327 val_327
+NULL NULL 327 val_327
+NULL NULL 327 val_327
+NULL NULL 325 val_325
+NULL NULL 325 val_325
+NULL NULL 323 val_323
+NULL NULL 322 val_322
+NULL NULL 322 val_322
+NULL NULL 321 val_321
+NULL NULL 321 val_321
+NULL NULL 318 val_318
+NULL NULL 318 val_318
+NULL NULL 318 val_318
+NULL NULL 317 val_317
+NULL NULL 317 val_317
+NULL NULL 316 val_316
+NULL NULL 316 val_316
+NULL NULL 316 val_316
+NULL NULL 315 val_315
+NULL NULL 310 val_310
+NULL NULL 309 val_309
+NULL NULL 309 val_309
+NULL NULL 308 val_308
+NULL NULL 307 val_307
+NULL NULL 307 val_307
+NULL NULL 306 val_306
+NULL NULL 305 val_305
+NULL NULL 302 val_302
+NULL NULL 30 val_30
+NULL NULL 298 val_298
+NULL NULL 298 val_298
+NULL NULL 298 val_298
+NULL NULL 296 val_296
+NULL NULL 292 val_292
+NULL NULL 291 val_291
+NULL NULL 289 val_289
+NULL NULL 288 val_288
+NULL NULL 288 val_288
+NULL NULL 287 val_287
+NULL NULL 286 val_286
+NULL NULL 285 val_285
+NULL NULL 284 val_284
+NULL NULL 283 val_283
+NULL NULL 282 val_282
+NULL NULL 282 val_282
+NULL NULL 281 val_281
+NULL NULL 281 val_281
+NULL NULL 280 val_280
+NULL NULL 280 val_280
+NULL NULL 28 val_28
+NULL NULL 277 val_277
+NULL NULL 277 val_277
+NULL NULL 277 val_277
+NULL NULL 277 val_277
+NULL NULL 275 val_275
+NULL NULL 274 val_274
+NULL NULL 272 val_272
+NULL NULL 272 val_272
+NULL NULL 27 val_27
+NULL NULL 266 val_266
+NULL NULL 265 val_265
+NULL NULL 265 val_265
+NULL NULL 263 val_263
+NULL NULL 262 val_262
+NULL NULL 260 val_260
+NULL NULL 26 val_26
+NULL NULL 26 val_26
+NULL NULL 258 val_258
+NULL NULL 257 val_257
+NULL NULL 256 val_256
+NULL NULL 256 val_256
+NULL NULL 252 val_252
+NULL NULL 249 val_249
+NULL NULL 248 val_248
+NULL NULL 247 val_247
+NULL NULL 244 val_244
+NULL NULL 242 val_242
+NULL NULL 242 val_242
+NULL NULL 241 val_241
+NULL NULL 24 val_24
+NULL NULL 24 val_24
+NULL NULL 239 val_239
+NULL NULL 239 val_239
+NULL NULL 237 val_237
+NULL NULL 237 val_237
+NULL NULL 235 val_235
+NULL NULL 233 val_233
+NULL NULL 233 val_233
+NULL NULL 230 val_230
+NULL NULL 230 val_230
+NULL NULL 230 val_230
+NULL NULL 230 val_230
+NULL NULL 230 val_230
+NULL NULL 229 val_229
+NULL NULL 229 val_229
+NULL NULL 228 val_228
+NULL NULL 226 val_226
+NULL NULL 223 val_223
+NULL NULL 223 val_223
+NULL NULL 222 val_222
+NULL NULL 221 val_221
+NULL NULL 221 val_221
+NULL NULL 219 val_219
+NULL NULL 219 val_219
+NULL NULL 218 val_218
+NULL NULL 217 val_217
+NULL NULL 217 val_217
+NULL NULL 216 val_216
+NULL NULL 216 val_216
+NULL NULL 214 val_214
+NULL NULL 209 val_209
+NULL NULL 209 val_209
+NULL NULL 208 val_208
+NULL NULL 208 val_208
+NULL NULL 208 val_208
+NULL NULL 207 val_207
+NULL NULL 207 val_207
+NULL NULL 205 val_205
+NULL NULL 205 val_205
+NULL NULL 203 val_203
+NULL NULL 203 val_203
+NULL NULL 202 val_202
+NULL NULL 201 val_201
+NULL NULL 200 val_200
+NULL NULL 200 val_200
+NULL NULL 20 val_20
+NULL NULL 2 val_2
+NULL NULL 199 val_199
+NULL NULL 199 val_199
+NULL NULL 199 val_199
+NULL NULL 197 val_197
+NULL NULL 197 val_197
+NULL NULL 196 val_196
+NULL NULL 195 val_195
+NULL NULL 195 val_195
+NULL NULL 194 val_194
+NULL NULL 193 val_193
+NULL NULL 193 val_193
+NULL NULL 193 val_193
+NULL NULL 192 val_192
+NULL NULL 191 val_191
+NULL NULL 191 val_191
+NULL NULL 190 val_190
+NULL NULL 19 val_19
+NULL NULL 189 val_189
+NULL NULL 187 val_187
+NULL NULL 187 val_187
+NULL NULL 187 val_187
+NULL NULL 186 val_186
+NULL NULL 183 val_183
+NULL NULL 181 val_181
+NULL NULL 180 val_180
+NULL NULL 18 val_18
+NULL NULL 18 val_18
+NULL NULL 179 val_179
+NULL NULL 179 val_179
+NULL NULL 178 val_178
+NULL NULL 177 val_177
+NULL NULL 176 val_176
+NULL NULL 176 val_176
+NULL NULL 175 val_175
+NULL NULL 175 val_175
+NULL NULL 174 val_174
+NULL NULL 174 val_174
+NULL NULL 172 val_172
+NULL NULL 172 val_172
+NULL NULL 170 val_170
+NULL NULL 17 val_17
+NULL NULL 169 val_169
+NULL NULL 169 val_169
+NULL NULL 169 val_169
+NULL NULL 169 val_169
+NULL NULL 168 val_168
+NULL NULL 167 val_167
+NULL NULL 167 val_167
+NULL NULL 167 val_167
+NULL NULL 166 val_166
+NULL NULL 165 val_165
+NULL NULL 165 val_165
+NULL NULL 164 val_164
+NULL NULL 164 val_164
+NULL NULL 163 val_163
+NULL NULL 162 val_162
+NULL NULL 160 val_160
+NULL NULL 158 val_158
+NULL NULL 157 val_157
+NULL NULL 156 val_156
+NULL NULL 155 val_155
+NULL NULL 153 val_153
+NULL NULL 152 val_152
+NULL NULL 152 val_152
+NULL NULL 15 val_15
+NULL NULL 15 val_15
+NULL NULL 149 val_149
+NULL NULL 149 val_149
+NULL NULL 145 val_145
+NULL NULL 143 val_143
+NULL NULL 138 val_138
+NULL NULL 138 val_138
+NULL NULL 138 val_138
+NULL NULL 138 val_138
+NULL NULL 137 val_137
+NULL NULL 137 val_137
+NULL NULL 136 val_136
+NULL NULL 134 val_134
+NULL NULL 134 val_134
+NULL NULL 133 val_133
+NULL NULL 131 val_131
+NULL NULL 129 val_129
+NULL NULL 129 val_129
+NULL NULL 126 val_126
+NULL NULL 125 val_125
+NULL NULL 125 val_125
+NULL NULL 120 val_120
+NULL NULL 120 val_120
+NULL NULL 12 val_12
+NULL NULL 12 val_12
+NULL NULL 119 val_119
+NULL NULL 119 val_119
+NULL NULL 119 val_119
+NULL NULL 118 val_118
+NULL NULL 118 val_118
+NULL NULL 116 val_116
+NULL NULL 114 val_114
+NULL NULL 113 val_113
+NULL NULL 113 val_113
+NULL NULL 111 val_111
+NULL NULL 11 val_11
+NULL NULL 105 val_105
+NULL NULL 104 val_104
+NULL NULL 104 val_104
+NULL NULL 103 val_103
+NULL NULL 103 val_103
+NULL NULL 100 val_100
+NULL NULL 100 val_100
+NULL NULL 10 val_10
+NULL NULL 0 val_0
+NULL NULL 0 val_0
+128 val_128 128 val_128
+128 val_128 128 val_128
+128 val_128 128 val_128
+128 val_128 128 val_128
+128 val_128 128 val_128
+128 val_128 128 val_128
+128 val_128 128 val_128
+128 val_128 128 val_128
+128 val_128 128 val_128
+146 val_146 146 val_146
+146 val_146 146 val_146
+146 val_146 146 val_146
+146 val_146 146 val_146
+150 val_150 150 val_150
+213 val_213 213 val_213
+213 val_213 213 val_213
+213 val_213 213 val_213
+213 val_213 213 val_213
+224 val_224 224 val_224
+224 val_224 224 val_224
+224 val_224 224 val_224
+224 val_224 224 val_224
+238 val_238 238 val_238
+238 val_238 238 val_238
+238 val_238 238 val_238
+238 val_238 238 val_238
+255 val_255 255 val_255
+255 val_255 255 val_255
+255 val_255 255 val_255
+255 val_255 255 val_255
+273 val_273 273 val_273
+273 val_273 273 val_273
+273 val_273 273 val_273
+273 val_273 273 val_273
+273 val_273 273 val_273
+273 val_273 273 val_273
+273 val_273 273 val_273
+273 val_273 273 val_273
+273 val_273 273 val_273
+278 val_278 278 val_278
+278 val_278 278 val_278
+278 val_278 278 val_278
+278 val_278 278 val_278
+311 val_311 311 val_311
+311 val_311 311 val_311
+311 val_311 311 val_311
+311 val_311 311 val_311
+311 val_311 311 val_311
+311 val_311 311 val_311
+311 val_311 311 val_311
+311 val_311 311 val_311
+311 val_311 311 val_311
+369 val_369 369 val_369
+369 val_369 369 val_369
+369 val_369 369 val_369
+369 val_369 369 val_369
+369 val_369 369 val_369
+369 val_369 369 val_369
+369 val_369 369 val_369
+369 val_369 369 val_369
+369 val_369 369 val_369
+401 val_401 401 val_401
+401 val_401 401 val_401
+401 val_401 401 val_401
+401 val_401 401 val_401
+401 val_401 401 val_401
+401 val_401 401 val_401
+401 val_401 401 val_401
+401 val_401 401 val_401
+401 val_401 401 val_401
+401 val_401 401 val_401
+401 val_401 401 val_401
+401 val_401 401 val_401
+401 val_401 401 val_401
+401 val_401 401 val_401
+401 val_401 401 val_401
+401 val_401 401 val_401
+401 val_401 401 val_401
+401 val_401 401 val_401
+401 val_401 401 val_401
+401 val_401 401 val_401
+401 val_401 401 val_401
+401 val_401 401 val_401
+401 val_401 401 val_401
+401 val_401 401 val_401
+401 val_401 401 val_401
+406 val_406 406 val_406
+406 val_406 406 val_406
+406 val_406 406 val_406
+406 val_406 406 val_406
+406 val_406 406 val_406
+406 val_406 406 val_406
+406 val_406 406 val_406
+406 val_406 406 val_406
+406 val_406 406 val_406
+406 val_406 406 val_406
+406 val_406 406 val_406
+406 val_406 406 val_406
+406 val_406 406 val_406
+406 val_406 406 val_406
+406 val_406 406 val_406
+406 val_406 406 val_406
+66 val_66 66 val_66
+98 val_98 98 val_98
+98 val_98 98 val_98
+98 val_98 98 val_98
+98 val_98 98 val_98
+PREHOOK: query: select * from (select b.key, b.value from src1 a left outer join src b on (a.key = b.key)) x right outer join src c on (x.value = c.value) order by x.key
+PREHOOK: type: QUERY
+PREHOOK: Input: default@src
+PREHOOK: Input: default@src1
+#### A masked pattern was here ####
+POSTHOOK: query: select * from (select b.key, b.value from src1 a left outer join src b on (a.key = b.key)) x right outer join src c on (x.value = c.value) order by x.key
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@src
+POSTHOOK: Input: default@src1
+#### A masked pattern was here ####
+NULL NULL 0 val_0
+NULL NULL 97 val_97
+NULL NULL 97 val_97
+NULL NULL 96 val_96
+NULL NULL 95 val_95
+NULL NULL 95 val_95
+NULL NULL 92 val_92
+NULL NULL 90 val_90
+NULL NULL 90 val_90
+NULL NULL 90 val_90
+NULL NULL 9 val_9
+NULL NULL 87 val_87
+NULL NULL 86 val_86
+NULL NULL 85 val_85
+NULL NULL 84 val_84
+NULL NULL 84 val_84
+NULL NULL 83 val_83
+NULL NULL 83 val_83
+NULL NULL 82 val_82
+NULL NULL 80 val_80
+NULL NULL 8 val_8
+NULL NULL 78 val_78
+NULL NULL 77 val_77
+NULL NULL 76 val_76
+NULL NULL 76 val_76
+NULL NULL 74 val_74
+NULL NULL 72 val_72
+NULL NULL 72 val_72
+NULL NULL 70 val_70
+NULL NULL 70 val_70
+NULL NULL 70 val_70
+NULL NULL 69 val_69
+NULL NULL 67 val_67
+NULL NULL 67 val_67
+NULL NULL 65 val_65
+NULL NULL 64 val_64
+NULL NULL 58 val_58
+NULL NULL 58 val_58
+NULL NULL 57 val_57
+NULL NULL 54 val_54
+NULL NULL 53 val_53
+NULL NULL 51 val_51
+NULL NULL 51 val_51
+NULL NULL 5 val_5
+NULL NULL 5 val_5
+NULL NULL 5 val_5
+NULL NULL 498 val_498
+NULL NULL 498 val_498
+NULL NULL 498 val_498
+NULL NULL 497 val_497
+NULL NULL 496 val_496
+NULL NULL 495 val_495
+NULL NULL 494 val_494
+NULL NULL 493 val_493
+NULL NULL 492 val_492
+NULL NULL 492 val_492
+NULL NULL 491 val_491
+NULL NULL 490 val_490
+NULL NULL 489 val_489
+NULL NULL 489 val_489
+NULL NULL 489 val_489
+NULL NULL 489 val_489
+NULL NULL 487 val_487
+NULL NULL 485 val_485
+NULL NULL 484 val_484
+NULL NULL 483 val_483
+NULL NULL 482 val_482
+NULL NULL 481 val_481
+NULL NULL 480 val_480
+NULL NULL 480 val_480
+NULL NULL 480 val_480
+NULL NULL 479 val_479
+NULL NULL 478 val_478
+NULL NULL 478 val_478
+NULL NULL 477 val_477
+NULL NULL 475 val_475
+NULL NULL 472 val_472
+NULL NULL 470 val_470
+NULL NULL 47 val_47
+NULL NULL 469 val_469
+NULL NULL 469 val_469
+NULL NULL 469 val_469
+NULL NULL 469 val_469
+NULL NULL 469 val_469
+NULL NULL 468 val_468
+NULL NULL 468 val_468
+NULL NULL 468 val_468
+NULL NULL 468 val_468
+NULL NULL 467 val_467
+NULL NULL 466 val_466
+NULL NULL 466 val_466
+NULL NULL 466 val_466
+NULL NULL 463 val_463
+NULL NULL 463 val_463
+NULL NULL 462 val_462
+NULL NULL 462 val_462
+NULL NULL 460 val_460
+NULL NULL 459 val_459
+NULL NULL 459 val_459
+NULL NULL 458 val_458
+NULL NULL 458 val_458
+NULL NULL 457 val_457
+NULL NULL 455 val_455
+NULL NULL 454 val_454
+NULL NULL 454 val_454
+NULL NULL 454 val_454
+NULL NULL 453 val_453
+NULL NULL 452 val_452
+NULL NULL 449 val_449
+NULL NULL 448 val_448
+NULL NULL 446 val_446
+NULL NULL 444 val_444
+NULL NULL 443 val_443
+NULL NULL 44 val_44
+NULL NULL 439 val_439
+NULL NULL 439 val_439
+NULL NULL 438 val_438
+NULL NULL 438 val_438
+NULL NULL 438 val_438
+NULL NULL 437 val_437
+NULL NULL 436 val_436
+NULL NULL 435 val_435
+NULL NULL 432 val_432
+NULL NULL 431 val_431
+NULL NULL 431 val_431
+NULL NULL 431 val_431
+NULL NULL 430 val_430
+NULL NULL 430 val_430
+NULL NULL 430 val_430
+NULL NULL 43 val_43
+NULL NULL 429 val_429
+NULL NULL 429 val_429
+NULL NULL 427 val_427
+NULL NULL 424 val_424
+NULL NULL 424 val_424
+NULL NULL 421 val_421
+NULL NULL 42 val_42
+NULL NULL 42 val_42
+NULL NULL 419 val_419
+NULL NULL 418 val_418
+NULL NULL 417 val_417
+NULL NULL 417 val_417
+NULL NULL 417 val_417
+NULL NULL 414 val_414
+NULL NULL 414 val_414
+NULL NULL 413 val_413
+NULL NULL 413 val_413
+NULL NULL 411 val_411
+NULL NULL 41 val_41
+NULL NULL 409 val_409
+NULL NULL 409 val_409
+NULL NULL 409 val_409
+NULL NULL 407 val_407
+NULL NULL 404 val_404
+NULL NULL 404 val_404
+NULL NULL 403 val_403
+NULL NULL 403 val_403
+NULL NULL 403 val_403
+NULL NULL 402 val_402
+NULL NULL 400 val_400
+NULL NULL 4 val_4
+NULL NULL 399 val_399
+NULL NULL 399 val_399
+NULL NULL 397 val_397
+NULL NULL 397 val_397
+NULL NULL 396 val_396
+NULL NULL 396 val_396
+NULL NULL 396 val_396
+NULL NULL 395 val_395
+NULL NULL 395 val_395
+NULL NULL 394 val_394
+NULL NULL 393 val_393
+NULL NULL 392 val_392
+NULL NULL 389 val_389
+NULL NULL 386 val_386
+NULL NULL 384 val_384
+NULL NULL 384 val_384
+NULL NULL 384 val_384
+NULL NULL 382 val_382
+NULL NULL 382 val_382
+NULL NULL 379 val_379
+NULL NULL 378 val_378
+NULL NULL 377 val_377
+NULL NULL 375 val_375
+NULL NULL 374 val_374
+NULL NULL 373 val_373
+NULL NULL 37 val_37
+NULL NULL 37 val_37
+NULL NULL 368 val_368
+NULL NULL 367 val_367
+NULL NULL 367 val_367
+NULL NULL 366 val_366
+NULL NULL 365 val_365
+NULL NULL 364 val_364
+NULL NULL 362 val_362
+NULL NULL 360 val_360
+NULL NULL 356 val_356
+NULL NULL 353 val_353
+NULL NULL 353 val_353
+NULL NULL 351 val_351
+NULL NULL 35 val_35
+NULL NULL 35 val_35
+NULL NULL 35 val_35
+NULL NULL 348 val_348
+NULL NULL 348 val_348
+NULL NULL 348 val_348
+NULL NULL 348 val_348
+NULL NULL 348 val_348
+NULL NULL 345 val_345
+NULL NULL 344 val_344
+NULL NULL 344 val_344
+NULL NULL 342 val_342
+NULL NULL 342 val_342
+NULL NULL 341 val_341
+NULL NULL 34 val_34
+NULL NULL 339 val_339
+NULL NULL 338 val_338
+NULL NULL 336 val_336
+NULL NULL 335 val_335
+NULL NULL 333 val_333
+NULL NULL 333 val_333
+NULL NULL 332 val_332
+NULL NULL 331 val_331
+NULL NULL 331 val_331
+NULL NULL 33 val_33
+NULL NULL 327 val_327
+NULL NULL 327 val_327
+NULL NULL 327 val_327
+NULL NULL 325 val_325
+NULL NULL 325 val_325
+NULL NULL 323 val_323
+NULL NULL 322 val_322
+NULL NULL 322 val_322
+NULL NULL 321 val_321
+NULL NULL 321 val_321
+NULL NULL 318 val_318
+NULL NULL 318 val_318
+NULL NULL 318 val_318
+NULL NULL 317 val_317
+NULL NULL 317 val_317
+NULL NULL 316 val_316
+NULL NULL 316 val_316
+NULL NULL 316 val_316
+NULL NULL 315 val_315
+NULL NULL 310 val_310
+NULL NULL 309 val_309
+NULL NULL 309 val_309
+NULL NULL 308 val_308
+NULL NULL 307 val_307
+NULL NULL 307 val_307
+NULL NULL 306 val_306
+NULL NULL 305 val_305
+NULL NULL 302 val_302
+NULL NULL 30 val_30
+NULL NULL 298 val_298
+NULL NULL 298 val_298
+NULL NULL 298 val_298
+NULL NULL 296 val_296
+NULL NULL 292 val_292
+NULL NULL 291 val_291
+NULL NULL 289 val_289
+NULL NULL 288 val_288
+NULL NULL 288 val_288
+NULL NULL 287 val_287
+NULL NULL 286 val_286
+NULL NULL 285 val_285
+NULL NULL 284 val_284
+NULL NULL 283 val_283
+NULL NULL 282 val_282
+NULL NULL 282 val_282
+NULL NULL 281 val_281
+NULL NULL 281 val_281
+NULL NULL 280 val_280
+NULL NULL 280 val_280
+NULL NULL 28 val_28
+NULL NULL 277 val_277
+NULL NULL 277 val_277
+NULL NULL 277 val_277
+NULL NULL 277 val_277
+NULL NULL 275 val_275
+NULL NULL 274 val_274
+NULL NULL 272 val_272
+NULL NULL 272 val_272
+NULL NULL 27 val_27
+NULL NULL 266 val_266
+NULL NULL 265 val_265
+NULL NULL 265 val_265
+NULL NULL 263 val_263
+NULL NULL 262 val_262
+NULL NULL 260 val_260
+NULL NULL 26 val_26
+NULL NULL 26 val_26
+NULL NULL 258 val_258
+NULL NULL 257 val_257
+NULL NULL 256 val_256
+NULL NULL 256 val_256
+NULL NULL 252 val_252
+NULL NULL 249 val_249
+NULL NULL 248 val_248
+NULL NULL 247 val_247
+NULL NULL 244 val_244
+NULL NULL 242 val_242
+NULL NULL 242 val_242
+NULL NULL 241 val_241
+NULL NULL 24 val_24
+NULL NULL 24 val_24
+NULL NULL 239 val_239
+NULL NULL 239 val_239
+NULL NULL 237 val_237
+NULL NULL 237 val_237
+NULL NULL 235 val_235
+NULL NULL 233 val_233
+NULL NULL 233 val_233
+NULL NULL 230 val_230
+NULL NULL 230 val_230
+NULL NULL 230 val_230
+NULL NULL 230 val_230
+NULL NULL 230 val_230
+NULL NULL 229 val_229
+NULL NULL 229 val_229
+NULL NULL 228 val_228
+NULL NULL 226 val_226
+NULL NULL 223 val_223
+NULL NULL 223 val_223
+NULL NULL 222 val_222
+NULL NULL 221 val_221
+NULL NULL 221 val_221
+NULL NULL 219 val_219
+NULL NULL 219 val_219
+NULL NULL 218 val_218
+NULL NULL 217 val_217
+NULL NULL 217 val_217
+NULL NULL 216 val_216
+NULL NULL 216 val_216
+NULL NULL 214 val_214
+NULL NULL 209 val_209
+NULL NULL 209 val_209
+NULL NULL 208 val_208
+NULL NULL 208 val_208
+NULL NULL 208 val_208
+NULL NULL 207 val_207
+NULL NULL 207 val_207
+NULL NULL 205 val_205
+NULL NULL 205 val_205
+NULL NULL 203 val_203
+NULL NULL 203 val_203
+NULL NULL 202 val_202
+NULL NULL 201 val_201
+NULL NULL 200 val_200
+NULL NULL 200 val_200
+NULL NULL 20 val_20
+NULL NULL 2 val_2
+NULL NULL 199 val_199
+NULL NULL 199 val_199
+NULL NULL 199 val_199
+NULL NULL 197 val_197
+NULL NULL 197 val_197
+NULL NULL 196 val_196
+NULL NULL 195 val_195
+NULL NULL 195 val_195
+NULL NULL 194 val_194
+NULL NULL 193 val_193
+NULL NULL 193 val_193
+NULL NULL 193 val_193
+NULL NULL 192 val_192
+NULL NULL 191 val_191
+NULL NULL 191 val_191
+NULL NULL 190 val_190
+NULL NULL 19 val_19
+NULL NULL 189 val_189
+NULL NULL 187 val_187
+NULL NULL 187 val_187
+NULL NULL 187 val_187
+NULL NULL 186 val_186
+NULL NULL 183 val_183
+NULL NULL 181 val_181
+NULL NULL 180 val_180
+NULL NULL 18 val_18
+NULL NULL 18 val_18
+NULL NULL 179 val_179
+NULL NULL 179 val_179
+NULL NULL 178 val_178
+NULL NULL 177 val_177
+NULL NULL 176 val_176
+NULL NULL 176 val_176
+NULL NULL 175 val_175
+NULL NULL 175 val_175
+NULL NULL 174 val_174
+NULL NULL 174 val_174
+NULL NULL 172 val_172
+NULL NULL 172 val_172
+NULL NULL 170 val_170
+NULL NULL 17 val_17
+NULL NULL 169 val_169
+NULL NULL 169 val_169
+NULL NULL 169 val_169
+NULL NULL 169 val_169
+NULL NULL 168 val_168
+NULL NULL 167 val_167
+NULL NULL 167 val_167
+NULL NULL 167 val_167
+NULL NULL 166 val_166
+NULL NULL 165 val_165
+NULL NULL 165 val_165
+NULL NULL 164 val_164
+NULL NULL 164 val_164
+NULL NULL 163 val_163
+NULL NULL 162 val_162
+NULL NULL 160 val_160
+NULL NULL 158 val_158
+NULL NULL 157 val_157
+NULL NULL 156 val_156
+NULL NULL 155 val_155
+NULL NULL 153 val_153
+NULL NULL 152 val_152
+NULL NULL 152 val_152
+NULL NULL 15 val_15
+NULL NULL 15 val_15
+NULL NULL 149 val_149
+NULL NULL 149 val_149
+NULL NULL 145 val_145
+NULL NULL 143 val_143
+NULL NULL 138 val_138
+NULL NULL 138 val_138
+NULL NULL 138 val_138
+NULL NULL 138 val_138
+NULL NULL 137 val_137
+NULL NULL 137 val_137
+NULL NULL 136 val_136
+NULL NULL 134 val_134
+NULL NULL 134 val_134
+NULL NULL 133 val_133
+NULL NULL 131 val_131
+NULL NULL 129 val_129
+NULL NULL 129 val_129
+NULL NULL 126 val_126
+NULL NULL 125 val_125
+NULL NULL 125 val_125
+NULL NULL 120 val_120
+NULL NULL 120 val_120
+NULL NULL 12 val_12
+NULL NULL 12 val_12
+NULL NULL 119 val_119
+NULL NULL 119 val_119
+NULL NULL 119 val_119
+NULL NULL 118 val_118
+NULL NULL 118 val_118
+NULL NULL 116 val_116
+NULL NULL 114 val_114
+NULL NULL 113 val_113
+NULL NULL 113 val_113
+NULL NULL 111 val_111
+NULL NULL 11 val_11
+NULL NULL 105 val_105
+NULL NULL 104 val_104
+NULL NULL 104 val_104
+NULL NULL 103 val_103
+NULL NULL 103 val_103
+NULL NULL 100 val_100
+NULL NULL 100 val_100
+NULL NULL 10 val_10
+NULL NULL 0 val_0
+NULL NULL 0 val_0
+128 val_128 128 val_128
+128 val_128 128 val_128
+128 val_128 128 val_128
+128 val_128 128 val_128
+128 val_128 128 val_128
+128 val_128 128 val_128
+128 val_128 128 val_128
+128 val_128 128 val_128
+128 val_128 128 val_128
+146 val_146 146 val_146
+146 val_146 146 val_146
+146 val_146 146 val_146
+146 val_146 146 val_146
+150 val_150 150 val_150
+213 val_213 213 val_213
+213 val_213 213 val_213
+213 val_213 213 val_213
+213 val_213 213 val_213
+224 val_224 224 val_224
+224 val_224 224 val_224
+224 val_224 224 val_224
+224 val_224 224 val_224
+238 val_238 238 val_238
+238 val_238 238 val_238
+238 val_238 238 val_238
+238 val_238 238 val_238
+255 val_255 255 val_255
+255 val_255 255 val_255
+255 val_255 255 val_255
+255 val_255 255 val_255
+273 val_273 273 val_273
+273 val_273 273 val_273
+273 val_273 273 val_273
+273 val_273 273 val_273
+273 val_273 273 val_273
+273 val_273 273 val_273
+273 val_273 273 val_273
+273 val_273 273 val_273
+273 val_273 273 val_273
+278 val_278 278 val_278
+278 val_278 278 val_278
+278 val_278 278 val_278
+278 val_278 278 val_278
+311 val_311 311 val_311
+311 val_311 311 val_311
+311 val_311 311 val_311
+311 val_311 311 val_311
+311 val_311 311 val_311
+311 val_311 311 val_311
+311 val_311 311 val_311
+311 val_311 311 val_311
+311 val_311 311 val_311
+369 val_369 369 val_369
+369 val_369 369 val_369
+369 val_369 369 val_369
+369 val_369 369 val_369
+369 val_369 369 val_369
+369 val_369 369 val_369
+369 val_369 369 val_369
+369 val_369 369 val_369
+369 val_369 369 val_369
+401 val_401 401 val_401
+401 val_401 401 val_401
+401 val_401 401 val_401
+401 val_401 401 val_401
+401 val_401 401 val_401
+401 val_401 401 val_401
+401 val_401 401 val_401
+401 val_401 401 val_401
+401 val_401 401 val_401
+401 val_401 401 val_401
+401 val_401 401 val_401
+401 val_401 401 val_401
+401 val_401 401 val_401
+401 val_401 401 val_401
+401 val_401 401 val_401
+401 val_401 401 val_401
+401 val_401 401 val_401
+401 val_401 401 val_401
+401 val_401 401 val_401
+401 val_401 401 val_401
+401 val_401 401 val_401
+401 val_401 401 val_401
+401 val_401 401 val_401
+401 val_401 401 val_401
+401 val_401 401 val_401
+406 val_406 406 val_406
+406 val_406 406 val_406
+406 val_406 406 val_406
+406 val_406 406 val_406
+406 val_406 406 val_406
+406 val_406 406 val_406
+406 val_406 406 val_406
+406 val_406 406 val_406
+406 val_406 406 val_406
+406 val_406 406 val_406
+406 val_406 406 val_406
+406 val_406 406 val_406
+406 val_406 406 val_406
+406 val_406 406 val_406
+406 val_406 406 val_406
+406 val_406 406 val_406
+66 val_66 66 val_66
+98 val_98 98 val_98
+98 val_98 98 val_98
+98 val_98 98 val_98
+98 val_98 98 val_98
+PREHOOK: query: select * from src1 a left outer join src b on (a.key = b.key) right outer join src c on (a.value = c.value) order by a.key
+PREHOOK: type: QUERY
+PREHOOK: Input: default@src
+PREHOOK: Input: default@src1
+#### A masked pattern was here ####
+POSTHOOK: query: select * from src1 a left outer join src b on (a.key = b.key) right outer join src c on (a.value = c.value) order by a.key
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@src
+POSTHOOK: Input: default@src1
+#### A masked pattern was here ####
+NULL NULL NULL NULL 0 val_0
+NULL NULL NULL NULL 97 val_97
+NULL NULL NULL NULL 97 val_97
+NULL NULL NULL NULL 96 val_96
+NULL NULL NULL NULL 95 val_95
+NULL NULL NULL NULL 95 val_95
+NULL NULL NULL NULL 92 val_92
+NULL NULL NULL NULL 90 val_90
+NULL NULL NULL NULL 90 val_90
+NULL NULL NULL NULL 90 val_90
+NULL NULL NULL NULL 9 val_9
+NULL NULL NULL NULL 87 val_87
+NULL NULL NULL NULL 86 val_86
+NULL NULL NULL NULL 85 val_85
+NULL NULL NULL NULL 84 val_84
+NULL NULL NULL NULL 84 val_84
+NULL NULL NULL NULL 83 val_83
+NULL NULL NULL NULL 83 val_83
+NULL NULL NULL NULL 82 val_82
+NULL NULL NULL NULL 80 val_80
+NULL NULL NULL NULL 8 val_8
+NULL NULL NULL NULL 78 val_78
+NULL NULL NULL NULL 77 val_77
+NULL NULL NULL NULL 76 val_76
+NULL NULL NULL NULL 76 val_76
+NULL NULL NULL NULL 74 val_74
+NULL NULL NULL NULL 72 val_72
+NULL NULL NULL NULL 72 val_72
+NULL NULL NULL NULL 70 val_70
+NULL NULL NULL NULL 70 val_70
+NULL NULL NULL NULL 70 val_70
+NULL NULL NULL NULL 69 val_69
+NULL NULL NULL NULL 67 val_67
+NULL NULL NULL NULL 67 val_67
+NULL NULL NULL NULL 65 val_65
+NULL NULL NULL NULL 64 val_64
+NULL NULL NULL NULL 58 val_58
+NULL NULL NULL NULL 58 val_58
+NULL NULL NULL NULL 57 val_57
+NULL NULL NULL NULL 54 val_54
+NULL NULL NULL NULL 53 val_53
+NULL NULL NULL NULL 51 val_51
+NULL NULL NULL NULL 51 val_51
+NULL NULL NULL NULL 5 val_5
+NULL NULL NULL NULL 5 val_5
+NULL NULL NULL NULL 5 val_5
+NULL NULL NULL NULL 498 val_498
+NULL NULL NULL NULL 498 val_498
+NULL NULL NULL NULL 498 val_498
+NULL NULL NULL NULL 497 val_497
+NULL NULL NULL NULL 496 val_496
+NULL NULL NULL NULL 495 val_495
+NULL NULL NULL NULL 494 val_494
+NULL NULL NULL NULL 493 val_493
+NULL NULL NULL NULL 492 val_492
+NULL NULL NULL NULL 492 val_492
+NULL NULL NULL NULL 491 val_491
+NULL NULL NULL NULL 490 val_490
+NULL NULL NULL NULL 489 val_489
+NULL NULL NULL NULL 489 val_489
+NULL NULL NULL NULL 489 val_489
+NULL NULL NULL NULL 489 val_489
+NULL NULL NULL NULL 487 val_487
+NULL NULL NULL NULL 485 val_485
+NULL NULL NULL NULL 483 val_483
+NULL NULL NULL NULL 482 val_482
+NULL NULL NULL NULL 481 val_481
+NULL NULL NULL NULL 480 val_480
+NULL NULL NULL NULL 480 val_480
+NULL NULL NULL NULL 480 val_480
+NULL NULL NULL NULL 479 val_479
+NULL NULL NULL NULL 478 val_478
+NULL NULL NULL NULL 478 val_478
+NULL NULL NULL NULL 477 val_477
+NULL NULL NULL NULL 475 val_475
+NULL NULL NULL NULL 472 val_472
+NULL NULL NULL NULL 470 val_470
+NULL NULL NULL NULL 47 val_47
+NULL NULL NULL NULL 469 val_469
+NULL NULL NULL NULL 469 val_469
+NULL NULL NULL NULL 469 val_469
+NULL NULL NULL NULL 469 val_469
+NULL NULL NULL NULL 469 val_469
+NULL NULL NULL NULL 468 val_468
+NULL NULL NULL NULL 468 val_468
+NULL NULL NULL NULL 468 val_468
+NULL NULL NULL NULL 468 val_468
+NULL NULL NULL NULL 467 val_467
+NULL NULL NULL NULL 466 val_466
+NULL NULL NULL NULL 466 val_466
+NULL NULL NULL NULL 466 val_466
+NULL NULL NULL NULL 463 val_463
+NULL NULL NULL NULL 463 val_463
+NULL NULL NULL NULL 462 val_462
+NULL NULL NULL NULL 462 val_462
+NULL NULL NULL NULL 460 val_460
+NULL NULL NULL NULL 459 val_459
+NULL NULL NULL NULL 459 val_459
+NULL NULL NULL NULL 458 val_458
+NULL NULL NULL NULL 458 val_458
+NULL NULL NULL NULL 457 val_457
+NULL NULL NULL NULL 455 val_455
+NULL NULL NULL NULL 454 val_454
+NULL NULL NULL NULL 454 val_454
+NULL NULL NULL NULL 454 val_454
+NULL NULL NULL NULL 453 val_453
+NULL NULL NULL NULL 452 val_452
+NULL NULL NULL NULL 449 val_449
+NULL NULL NULL NULL 448 val_448
+NULL NULL NULL NULL 446 val_446
+NULL NULL NULL NULL 444 val_444
+NULL NULL NULL NULL 443 val_443
+NULL NULL NULL NULL 44 val_44
+NULL NULL NULL NULL 439 val_439
+NULL NULL NULL NULL 439 val_439
+NULL NULL NULL NULL 438 val_438
+NULL NULL NULL NULL 438 val_438
+NULL NULL NULL NULL 438 val_438
+NULL NULL NULL NULL 437 val_437
+NULL NULL NULL NULL 436 val_436
+NULL NULL NULL NULL 435 val_435
+NULL NULL NULL NULL 432 val_432
+NULL NULL NULL NULL 431 val_431
+NULL NULL NULL NULL 431 val_431
+NULL NULL NULL NULL 431 val_431
+NULL NULL NULL NULL 430 val_430
+NULL NULL NULL NULL 430 val_430
+NULL NULL NULL NULL 430 val_430
+NULL NULL NULL NULL 43 val_43
+NULL NULL NULL NULL 429 val_429
+NULL NULL NULL NULL 429 val_429
+NULL NULL NULL NULL 427 val_427
+NULL NULL NULL NULL 424 val_424
+NULL NULL NULL NULL 424 val_424
+NULL NULL NULL NULL 421 val_421
+NULL NULL NULL NULL 42 val_42
+NULL NULL NULL NULL 42 val_42
+NULL NULL NULL NULL 419 val_419
+NULL NULL NULL NULL 418 val_418
+NULL NULL NULL NULL 417 val_417
+NULL NULL NULL NULL 417 val_417
+NULL NULL NULL NULL 417 val_417
+NULL NULL NULL NULL 414 val_414
+NULL NULL NULL NULL 414 val_414
+NULL NULL NULL NULL 413 val_413
+NULL NULL NULL NULL 413 val_413
+NULL NULL NULL NULL 411 val_411
+NULL NULL NULL NULL 41 val_41
+NULL NULL NULL NULL 407 val_407
+NULL NULL NULL NULL 404 val_404
+NULL NULL NULL NULL 404 val_404
+NULL NULL NULL NULL 403 val_403
+NULL NULL NULL NULL 403 val_403
+NULL NULL NULL NULL 403 val_403
+NULL NULL NULL NULL 402 val_402
+NULL NULL NULL NULL 400 val_400
+NULL NULL NULL NULL 4 val_4
+NULL NULL NULL NULL 399 val_399
+NULL NULL NULL NULL 399 val_399
+NULL NULL NULL NULL 397 val_397
+NULL NULL NULL NULL 397 val_397
+NULL NULL NULL NULL 396 val_396
+NULL NULL NULL NULL 396 val_396
+NULL NULL NULL NULL 396 val_396
+NULL NULL NULL NULL 395 val_395
+NULL NULL NULL NULL 395 val_395
+NULL NULL NULL NULL 394 val_394
+NULL NULL NULL NULL 393 val_393
+NULL NULL NULL NULL 392 val_392
+NULL NULL NULL NULL 389 val_389
+NULL NULL NULL NULL 386 val_386
+NULL NULL NULL NULL 384 val_384
+NULL NULL NULL NULL 384 val_384
+NULL NULL NULL NULL 384 val_384
+NULL NULL NULL NULL 382 val_382
+NULL NULL NULL NULL 382 val_382
+NULL NULL NULL NULL 379 val_379
+NULL NULL NULL NULL 378 val_378
+NULL NULL NULL NULL 377 val_377
+NULL NULL NULL NULL 375 val_375
+NULL NULL NULL NULL 374 val_374
+NULL NULL NULL NULL 373 val_373
+NULL NULL NULL NULL 37 val_37
+NULL NULL NULL NULL 37 val_37
+NULL NULL NULL NULL 369 val_369
+NULL NULL NULL NULL 369 val_369
+NULL NULL NULL NULL 369 val_369
+NULL NULL NULL NULL 368 val_368
+NULL NULL NULL NULL 367 val_367
+NULL NULL NULL NULL 367 val_367
+NULL NULL NULL NULL 366 val_366
+NULL NULL NULL NULL 365 val_365
+NULL NULL NULL NULL 364 val_364
+NULL NULL NULL NULL 362 val_362
+NULL NULL NULL NULL 360 val_360
+NULL NULL NULL NULL 356 val_356
+NULL NULL NULL NULL 353 val_353
+NULL NULL NULL NULL 353 val_353
+NULL NULL NULL NULL 351 val_351
+NULL NULL NULL NULL 35 val_35
+NULL NULL NULL NULL 35 val_35
+NULL NULL NULL NULL 35 val_35
+NULL NULL NULL NULL 348 val_348
+NULL NULL NULL NULL 348 val_348
+NULL NULL NULL NULL 348 val_348
+NULL NULL NULL NULL 348 val_348
+NULL NULL NULL NULL 348 val_348
+NULL NULL NULL NULL 345 val_345
+NULL NULL NULL NULL 344 val_344
+NULL NULL NULL NULL 344 val_344
+NULL NULL NULL NULL 342 val_342
+NULL NULL NULL NULL 342 val_342
+NULL NULL NULL NULL 341 val_341
+NULL NULL NULL NULL 34 val_34
+NULL NULL NULL NULL 339 val_339
+NULL NULL NULL NULL 338 val_338
+NULL NULL NULL NULL 336 val_336
+NULL NULL NULL NULL 335 val_335
+NULL NULL NULL NULL 333 val_333
+NULL NULL NULL NULL 333 val_333
+NULL NULL NULL NULL 332 val_332
+NULL NULL NULL NULL 331 val_331
+NULL NULL NULL NULL 331 val_331
+NULL NULL NULL NULL 33 val_33
+NULL NULL NULL NULL 327 val_327
+NULL NULL NULL NULL 327 val_327
+NULL NULL NULL NULL 327 val_327
+NULL NULL NULL NULL 325 val_325
+NULL NULL NULL NULL 325 val_325
+NULL NULL NULL NULL 323 val_323
+NULL NULL NULL NULL 322 val_322
+NULL NULL NULL NULL 322 val_322
+NULL NULL NULL NULL 321 val_321
+NULL NULL NULL NULL 321 val_321
+NULL NULL NULL NULL 318 val_318
+NULL NULL NULL NULL 318 val_318
+NULL NULL NULL NULL 318 val_318
+NULL NULL NULL NULL 317 val_317
+NULL NULL NULL NULL 317 val_317
+NULL NULL NULL NULL 316 val_316
+NULL NULL NULL NULL 316 val_316
+NULL NULL NULL NULL 316 val_316
+NULL NULL NULL NULL 315 val_315
+NULL NULL NULL NULL 310 val_310
+NULL NULL NULL NULL 309 val_309
+NULL NULL NULL NULL 309 val_309
+NULL NULL NULL NULL 308 val_308
+NULL NULL NULL NULL 307 val_307
+NULL NULL NULL NULL 307 val_307
+NULL NULL NULL NULL 306 val_306
+NULL NULL NULL NULL 305 val_305
+NULL NULL NULL NULL 302 val_302
+NULL NULL NULL NULL 30 val_30
+NULL NULL NULL NULL 298 val_298
+NULL NULL NULL NULL 298 val_298
+NULL NULL NULL NULL 298 val_298
+NULL NULL NULL NULL 296 val_296
+NULL NULL NULL NULL 292 val_292
+NULL NULL NULL NULL 291 val_291
+NULL NULL NULL NULL 289 val_289
+NULL NULL NULL NULL 288 val_288
+NULL NULL NULL NULL 288 val_288
+NULL NULL NULL NULL 287 val_287
+NULL NULL NULL NULL 286 val_286
+NULL NULL NULL NULL 285 val_285
+NULL NULL NULL NULL 284 val_284
+NULL NULL NULL NULL 283 val_283
+NULL NULL NULL NULL 282 val_282
+NULL NULL NULL NULL 282 val_282
+NULL NULL NULL NULL 281 val_281
+NULL NULL NULL NULL 281 val_281
+NULL NULL NULL NULL 280 val_280
+NULL NULL NULL NULL 280 val_280
+NULL NULL NULL NULL 28 val_28
+NULL NULL NULL NULL 277 val_277
+NULL NULL NULL NULL 277 val_277
+NULL NULL NULL NULL 277 val_277
+NULL NULL NULL NULL 277 val_277
+NULL NULL NULL NULL 275 val_275
+NULL NULL NULL NULL 274 val_274
+NULL NULL NULL NULL 272 val_272
+NULL NULL NULL NULL 272 val_272
+NULL NULL NULL NULL 266 val_266
+NULL NULL NULL NULL 263 val_263
+NULL NULL NULL NULL 262 val_262
+NULL NULL NULL NULL 260 val_260
+NULL NULL NULL NULL 26 val_26
+NULL NULL NULL NULL 26 val_26
+NULL NULL NULL NULL 258 val_258
+NULL NULL NULL NULL 257 val_257
+NULL NULL NULL NULL 256 val_256
+NULL NULL NULL NULL 256 val_256
+NULL NULL NULL NULL 252 val_252
+NULL NULL NULL NULL 249 val_249
+NULL NULL NULL NULL 248 val_248
+NULL NULL NULL NULL 247 val_247
+NULL NULL NULL NULL 244 val_244
+NULL NULL NULL NULL 242 val_242
+NULL NULL NULL NULL 242 val_242
+NULL NULL NULL NULL 241 val_241
+NULL NULL NULL NULL 24 val_24
+NULL NULL NULL NULL 24 val_24
+NULL NULL NULL NULL 239 val_239
+NULL NULL NULL NULL 239 val_239
+NULL NULL NULL NULL 237 val_237
+NULL NULL NULL NULL 237 val_237
+NULL NULL NULL NULL 235 val_235
+NULL NULL NULL NULL 233 val_233
+NULL NULL NULL NULL 233 val_233
+NULL NULL NULL NULL 230 val_230
+NULL NULL NULL NULL 230 val_230
+NULL NULL NULL NULL 230 val_230
+NULL NULL NULL NULL 230 val_230
+NULL NULL NULL NULL 230 val_230
+NULL NULL NULL NULL 229 val_229
+NULL NULL NULL NULL 229 val_229
+NULL NULL NULL NULL 228 val_228
+NULL NULL NULL NULL 226 val_226
+NULL NULL NULL NULL 224 val_224
+NULL NULL NULL NULL 224 val_224
+NULL NULL NULL NULL 223 val_223
+NULL NULL NULL NULL 223 val_223
+NULL NULL NULL NULL 222 val_222
+NULL NULL NULL NULL 221 val_221
+NULL NULL NULL NULL 221 val_221
+NULL NULL NULL NULL 219 val_219
+NULL NULL NULL NULL 219 val_219
+NULL NULL NULL NULL 218 val_218
+NULL NULL NULL NULL 217 val_217
+NULL NULL NULL NULL 217 val_217
+NULL NULL NULL NULL 216 val_216
+NULL NULL NULL NULL 216 val_216
+NULL NULL NULL NULL 214 val_214
+NULL NULL NULL NULL 209 val_209
+NULL NULL NULL NULL 209 val_209
+NULL NULL NULL NULL 208 val_208
+NULL NULL NULL NULL 208 val_208
+NULL NULL NULL NULL 208 val_208
+NULL NULL NULL NULL 207 val_207
+NULL NULL NULL NULL 207 val_207
+NULL NULL NULL NULL 205 val_205
+NULL NULL NULL NULL 205 val_205
+NULL NULL NULL NULL 203 val_203
+NULL NULL NULL NULL 203 val_203
+NULL NULL NULL NULL 202 val_202
+NULL NULL NULL NULL 201 val_201
+NULL NULL NULL NULL 200 val_200
+NULL NULL NULL NULL 200 val_200
+NULL NULL NULL NULL 20 val_20
+NULL NULL NULL NULL 2 val_2
+NULL NULL NULL NULL 199 val_199
+NULL NULL NULL NULL 199 val_199
+NULL NULL NULL NULL 199 val_199
+NULL NULL NULL NULL 197 val_197
+NULL NULL NULL NULL 197 val_197
+NULL NULL NULL NULL 196 val_196
+NULL NULL NULL NULL 195 val_195
+NULL NULL NULL NULL 195 val_195
+NULL NULL NULL NULL 194 val_194
+NULL NULL NULL NULL 192 val_192
+NULL NULL NULL NULL 191 val_191
+NULL NULL NULL NULL 191 val_191
+NULL NULL NULL NULL 190 val_190
+NULL NULL NULL NULL 19 val_19
+NULL NULL NULL NULL 189 val_189
+NULL NULL NULL NULL 187 val_187
+NULL NULL NULL NULL 187 val_187
+NULL NULL NULL NULL 187 val_187
+NULL NULL NULL NULL 186 val_186
+NULL NULL NULL NULL 183 val_183
+NULL NULL NULL NULL 181 val_181
+NULL NULL NULL NULL 180 val_180
+NULL NULL NULL NULL 18 val_18
+NULL NULL NULL NULL 18 val_18
+NULL NULL NULL NULL 179 val_179
+NULL NULL NULL NULL 179 val_179
+NULL NULL NULL NULL 178 val_178
+NULL NULL NULL NULL 177 val_177
+NULL NULL NULL NULL 176 val_176
+NULL NULL NULL NULL 176 val_176
+NULL NULL NULL NULL 175 val_175
+NULL NULL NULL NULL 175 val_175
+NULL NULL NULL NULL 174 val_174
+NULL NULL NULL NULL 174 val_174
+NULL NULL NULL NULL 172 val_172
+NULL NULL NULL NULL 172 val_172
+NULL NULL NULL NULL 170 val_170
+NULL NULL NULL NULL 17 val_17
+NULL NULL NULL NULL 169 val_169
+NULL NULL NULL NULL 169 val_169
+NULL NULL NULL NULL 169 val_169
+NULL NULL NULL NULL 169 val_169
+NULL NULL NULL NULL 168 val_168
+NULL NULL NULL NULL 167 val_167
+NULL NULL NULL NULL 167 val_167
+NULL NULL NULL NULL 167 val_167
+NULL NULL NULL NULL 166 val_166
+NULL NULL NULL NULL 164 val_164
+NULL NULL NULL NULL 164 val_164
+NULL NULL NULL NULL 163 val_163
+NULL NULL NULL NULL 162 val_162
+NULL NULL NULL NULL 160 val_160
+NULL NULL NULL NULL 158 val_158
+NULL NULL NULL NULL 157 val_157
+NULL NULL NULL NULL 156 val_156
+NULL NULL NULL NULL 155 val_155
+NULL NULL NULL NULL 153 val_153
+NULL NULL NULL NULL 152 val_152
+NULL NULL NULL NULL 152 val_152
+NULL NULL NULL NULL 15 val_15
+NULL NULL NULL NULL 15 val_15
+NULL NULL NULL NULL 149 val_149
+NULL NULL NULL NULL 149 val_149
+NULL NULL NULL NULL 145 val_145
+NULL NULL NULL NULL 143 val_143
+NULL NULL NULL NULL 138 val_138
+NULL NULL NULL NULL 138 val_138
+NULL NULL NULL NULL 138 val_138
+NULL NULL NULL NULL 138 val_138
+NULL NULL NULL NULL 137 val_137
+NULL NULL NULL NULL 137 val_137
+NULL NULL NULL NULL 136 val_136
+NULL NULL NULL NULL 134 val_134
+NULL NULL NULL NULL 134 val_134
+NULL NULL NULL NULL 133 val_133
+NULL NULL NULL NULL 131 val_131
+NULL NULL NULL NULL 129 val_129
+NULL NULL NULL NULL 129 val_129
+NULL NULL NULL NULL 128 val_128
+NULL NULL NULL NULL 128 val_128
+NULL NULL NULL NULL 128 val_128
+NULL NULL NULL NULL 126 val_126
+NULL NULL NULL NULL 125 val_125
+NULL NULL NULL NULL 125 val_125
+NULL NULL NULL NULL 120 val_120
+NULL NULL NULL NULL 120 val_120
+NULL NULL NULL NULL 12 val_12
+NULL NULL NULL NULL 12 val_12
+NULL NULL NULL NULL 119 val_119
+NULL NULL NULL NULL 119 val_119
+NULL NULL NULL NULL 119 val_119
+NULL NULL NULL NULL 118 val_118
+NULL NULL NULL NULL 118 val_118
+NULL NULL NULL NULL 116 val_116
+NULL NULL NULL NULL 114 val_114
+NULL NULL NULL NULL 113 val_113
+NULL NULL NULL NULL 113 val_113
+NULL NULL NULL NULL 111 val_111
+NULL NULL NULL NULL 11 val_11
+NULL NULL NULL NULL 105 val_105
+NULL NULL NULL NULL 104 val_104
+NULL NULL NULL NULL 104 val_104
+NULL NULL NULL NULL 103 val_103
+NULL NULL NULL NULL 103 val_103
+NULL NULL NULL NULL 100 val_100
+NULL NULL NULL NULL 100 val_100
+NULL NULL NULL NULL 10 val_10
+NULL NULL NULL NULL 0 val_0
+NULL NULL NULL NULL 0 val_0
+ val_409 NULL NULL 409 val_409
+ val_165 NULL NULL 165 val_165
+ val_165 NULL NULL 165 val_165
+ val_193 NULL NULL 193 val_193
+ val_484 NULL NULL 484 val_484
+ val_409 NULL NULL 409 val_409
+ val_265 NULL NULL 265 val_265
+ val_265 NULL NULL 265 val_265
+ val_27 NULL NULL 27 val_27
+ val_193 NULL NULL 193 val_193
+ val_193 NULL NULL 193 val_193
+ val_409 NULL NULL 409 val_409
+146 val_146 146 val_146 146 val_146
+146 val_146 146 val_146 146 val_146
+146 val_146 146 val_146 146 val_146
+146 val_146 146 val_146 146 val_146
+150 val_150 150 val_150 150 val_150
+213 val_213 213 val_213 213 val_213
+213 val_213 213 val_213 213 val_213
+213 val_213 213 val_213 213 val_213
+213 val_213 213 val_213 213 val_213
+238 val_238 238 val_238 238 val_238
+238 val_238 238 val_238 238 val_238
+238 val_238 238 val_238 238 val_238
+238 val_238 238 val_238 238 val_238
+255 val_255 255 val_255 255 val_255
+255 val_255 255 val_255 255 val_255
+255 val_255 255 val_255 255 val_255
+255 val_255 255 val_255 255 val_255
+273 val_273 273 val_273 273 val_273
+273 val_273 273 val_273 273 val_273
+273 val_273 273 val_273 273 val_273
+273 val_273 273 val_273 273 val_273
+273 val_273 273 val_273 273 val_273
+273 val_273 273 val_273 273 val_273
+273 val_273 273 val_273 273 val_273
+273 val_273 273 val_273 273 val_273
+273 val_273 273 val_273 273 val_273
+278 val_278 278 val_278 278 val_278
+278 val_278 278 val_278 278 val_278
+278 val_278 278 val_278 278 val_278
+278 val_278 278 val_278 278 val_278
+311 val_311 311 val_311 311 val_311
+311 val_311 311 val_311 311 val_311
+311 val_311 311 val_311 311 val_311
+311 val_311 311 val_311 311 val_311
+311 val_311 311 val_311 311 val_311
+311 val_311 311 val_311 311 val_311
+311 val_311 311 val_311 311 val_311
+311 val_311 311 val_311 311 val_311
+311 val_311 311 val_311 311 val_311
+401 val_401 401 val_401 401 val_401
+401 val_401 401 val_401 401 val_401
+401 val_401 401 val_401 401 val_401
+401 val_401 401 val_401 401 val_401
+401 val_401 401 val_401 401 val_401
+401 val_401 401 val_401 401 val_401
+401 val_401 401 val_401 401 val_401
+401 val_401 401 val_401 401 val_401
+401 val_401 401 val_401 401 val_401
+401 val_401 401 val_401 401 val_401
+401 val_401 401 val_401 401 val_401
+401 val_401 401 val_401 401 val_401
+401 val_401 401 val_401 401 val_401
+401 val_401 401 val_401 401 val_401
+401 val_401 401 val_401 401 val_401
+401 val_401 401 val_401 401 val_401
+401 val_401 401 val_401 401 val_401
+401 val_401 401 val_401 401 val_401
+401 val_401 401 val_401 401 val_401
+401 val_401 401 val_401 401 val_401
+401 val_401 401 val_401 401 val_401
+401 val_401 401 val_401 401 val_401
+401 val_401 401 val_401 401 val_401
+401 val_401 401 val_401 401 val_401
+401 val_401 401 val_401 401 val_401
+406 val_406 406 val_406 406 val_406
+406 val_406 406 val_406 406 val_406
+406 val_406 406 val_406 406 val_406
+406 val_406 406 val_406 406 val_406
+406 val_406 406 val_406 406 val_406
+406 val_406 406 val_406 406 val_406
+406 val_406 406 val_406 406 val_406
+406 val_406 406 val_406 406 val_406
+406 val_406 406 val_406 406 val_406
+406 val_406 406 val_406 406 val_406
+406 val_406 406 val_406 406 val_406
+406 val_406 406 val_406 406 val_406
+406 val_406 406 val_406 406 val_406
+406 val_406 406 val_406 406 val_406
+406 val_406 406 val_406 406 val_406
+406 val_406 406 val_406 406 val_406
+66 val_66 66 val_66 66 val_66
+98 val_98 98 val_98 98 val_98
+98 val_98 98 val_98 98 val_98
+98 val_98 98 val_98 98 val_98
+98 val_98 98 val_98 98 val_98
+PREHOOK: query: select * from src1 a left outer join src b on (a.key = b.key) left outer join src c on (a.value = c.value) order by a.key
+PREHOOK: type: QUERY
+PREHOOK: Input: default@src
+PREHOOK: Input: default@src1
+#### A masked pattern was here ####
+POSTHOOK: query: select * from src1 a left outer join src b on (a.key = b.key) left outer join src c on (a.value = c.value) order by a.key
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@src
+POSTHOOK: Input: default@src1
+#### A masked pattern was here ####
+ val_27 NULL NULL 27 val_27
+ NULL NULL NULL NULL
+ NULL NULL NULL NULL
+ val_484 NULL NULL 484 val_484
+ val_409 NULL NULL 409 val_409
+ val_409 NULL NULL 409 val_409
+ val_409 NULL NULL 409 val_409
+ NULL NULL NULL NULL
+ NULL NULL NULL NULL
+ val_165 NULL NULL 165 val_165
+ val_165 NULL NULL 165 val_165
+ val_193 NULL NULL 193 val_193
+ val_193 NULL NULL 193 val_193
+ val_193 NULL NULL 193 val_193
+ val_265 NULL NULL 265 val_265
+ val_265 NULL NULL 265 val_265
+128 128 val_128 NULL NULL
+128 128 val_128 NULL NULL
+128 128 val_128 NULL NULL
+146 val_146 146 val_146 146 val_146
+146 val_146 146 val_146 146 val_146
+146 val_146 146 val_146 146 val_146
+146 val_146 146 val_146 146 val_146
+150 val_150 150 val_150 150 val_150
+213 val_213 213 val_213 213 val_213
+213 val_213 213 val_213 213 val_213
+213 val_213 213 val_213 213 val_213
+213 val_213 213 val_213 213 val_213
+224 224 val_224 NULL NULL
+224 224 val_224 NULL NULL
+238 val_238 238 val_238 238 val_238
+238 val_238 238 val_238 238 val_238
+238 val_238 238 val_238 238 val_238
+238 val_238 238 val_238 238 val_238
+255 val_255 255 val_255 255 val_255
+255 val_255 255 val_255 255 val_255
+255 val_255 255 val_255 255 val_255
+255 val_255 255 val_255 255 val_255
+273 val_273 273 val_273 273 val_273
+273 val_273 273 val_273 273 val_273
+273 val_273 273 val_273 273 val_273
+273 val_273 273 val_273 273 val_273
+273 val_273 273 val_273 273 val_273
+273 val_273 273 val_273 273 val_273
+273 val_273 273 val_273 273 val_273
+273 val_273 273 val_273 273 val_273
+273 val_273 273 val_273 273 val_273
+278 val_278 278 val_278 278 val_278
+278 val_278 278 val_278 278 val_278
+278 val_278 278 val_278 278 val_278
+278 val_278 278 val_278 278 val_278
+311 val_311 311 val_311 311 val_311
+311 val_311 311 val_311 311 val_311
+311 val_311 311 val_311 311 val_311
+311 val_311 311 val_311 311 val_311
+311 val_311 311 val_311 311 val_311
+311 val_311 311 val_311 311 val_311
+311 val_311 311 val_311 311 val_311
+311 val_311 311 val_311 311 val_311
+311 val_311 311 val_311 311 val_311
+369 369 val_369 NULL NULL
+369 369 val_369 NULL NULL
+369 369 val_369 NULL NULL
+401 val_401 401 val_401 401 val_401
+401 val_401 401 val_401 401 val_401
+401 val_401 401 val_401 401 val_401
+401 val_401 401 val_401 401 val_401
+401 val_401 401 val_401 401 val_401
+401 val_401 401 val_401 401 val_401
+401 val_401 401 val_401 401 val_401
+401 val_401 401 val_401 401 val_401
+401 val_401 401 val_401 401 val_401
+401 val_401 401 val_401 401 val_401
+401 val_401 401 val_401 401 val_401
+401 val_401 401 val_401 401 val_401
+401 val_401 401 val_401 401 val_401
+401 val_401 401 val_401 401 val_401
+401 val_401 401 val_401 401 val_401
+401 val_401 401 val_401 401 val_401
+401 val_401 401 val_401 401 val_401
+401 val_401 401 val_401 401 val_401
+401 val_401 401 val_401 401 val_401
+401 val_401 401 val_401 401 val_401
+401 val_401 401 val_401 401 val_401
+401 val_401 401 val_401 401 val_401
+401 val_401 401 val_401 401 val_401
+401 val_401 401 val_401 401 val_401
+401 val_401 401 val_401 401 val_401
+406 val_406 406 val_406 406 val_406
+406 val_406 406 val_406 406 val_406
+406 val_406 406 val_406 406 val_406
+406 val_406 406 val_406 406 val_406
+406 val_406 406 val_406 406 val_406
+406 val_406 406 val_406 406 val_406
+406 val_406 406 val_406 406 val_406
+406 val_406 406 val_406 406 val_406
+406 val_406 406 val_406 406 val_406
+406 val_406 406 val_406 406 val_406
+406 val_406 406 val_406 406 val_406
+406 val_406 406 val_406 406 val_406
+406 val_406 406 val_406 406 val_406
+406 val_406 406 val_406 406 val_406
+406 val_406 406 val_406 406 val_406
+406 val_406 406 val_406 406 val_406
+66 val_66 66 val_66 66 val_66
+98 val_98 98 val_98 98 val_98
+98 val_98 98 val_98 98 val_98
+98 val_98 98 val_98 98 val_98
+98 val_98 98 val_98 98 val_98
+PREHOOK: query: select * from src1 a left outer join src b on (a.key = b.key) join src c on (a.key = c.key)
+PREHOOK: type: QUERY
+PREHOOK: Input: default@src
+PREHOOK: Input: default@src1
+#### A masked pattern was here ####
+POSTHOOK: query: select * from src1 a left outer join src b on (a.key = b.key) join src c on (a.key = c.key)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@src
+POSTHOOK: Input: default@src1
+#### A masked pattern was here ####
+128 128 val_128 128 val_128
+128 128 val_128 128 val_128
+128 128 val_128 128 val_128
+128 128 val_128 128 val_128
+128 128 val_128 128 val_128
+128 128 val_128 128 val_128
+128 128 val_128 128 val_128
+128 128 val_128 128 val_128
+128 128 val_128 128 val_128
+146 val_146 146 val_146 146 val_146
+146 val_146 146 val_146 146 val_146
+146 val_146 146 val_146 146 val_146
+146 val_146 146 val_146 146 val_146
+150 val_150 150 val_150 150 val_150
+213 val_213 213 val_213 213 val_213
+213 val_213 213 val_213 213 val_213
+213 val_213 213 val_213 213 val_213
+213 val_213 213 val_213 213 val_213
+224 224 val_224 224 val_224
+224 224 val_224 224 val_224
+224 224 val_224 224 val_224
+224 224 val_224 224 val_224
+238 val_238 238 val_238 238 val_238
+238 val_238 238 val_238 238 val_238
+238 val_238 238 val_238 238 val_238
+238 val_238 238 val_238 238 val_238
+255 val_255 255 val_255 255 val_255
+255 val_255 255 val_255 255 val_255
+255 val_255 255 val_255 255 val_255
+255 val_255 255 val_255 255 val_255
+273 val_273 273 val_273 273 val_273
+273 val_273 273 val_273 273 val_273
+273 val_273 273 val_273 273 val_273
+273 val_273 273 val_273 273 val_273
+273 val_273 273 val_273 273 val_273
+273 val_273 273 val_273 273 val_273
+273 val_273 273 val_273 273 val_273
+273 val_273 273 val_273 273 val_273
+273 val_273 273 val_273 273 val_273
+278 val_278 278 val_278 278 val_278
+278 val_278 278 val_278 278 val_278
+278 val_278 278 val_278 278 val_278
+278 val_278 278 val_278 278 val_278
+311 val_311 311 val_311 311 val_311
+311 val_311 311 val_311 311 val_311
+311 val_311 311 val_311 311 val_311
+311 val_311 311 val_311 311 val_311
+311 val_311 311 val_311 311 val_311
+311 val_311 311 val_311 311 val_311
+311 val_311 311 val_311 311 val_311
+311 val_311 311 val_311 311 val_311
+311 val_311 311 val_311 311 val_311
+369 369 val_369 369 val_369
+369 369 val_369 369 val_369
+369 369 val_369 369 val_369
+369 369 val_369 369 val_369
+369 369 val_369 369 val_369
+369 369 val_369 369 val_369
+369 369 val_369 369 val_369
+369 369 val_369 369 val_369
+369 369 val_369 369 val_369
+401 val_401 401 val_401 401 val_401
+401 val_401 401 val_401 401 val_401
+401 val_401 401 val_401 401 val_401
+401 val_401 401 val_401 401 val_401
+401 val_401 401 val_401 401 val_401
+401 val_401 401 val_401 401 val_401
+401 val_401 401 val_401 401 val_401
+401 val_401 401 val_401 401 val_401
+401 val_401 401 val_401 401 val_401
+401 val_401 401 val_401 401 val_401
+401 val_401 401 val_401 401 val_401
+401 val_401 401 val_401 401 val_401
+401 val_401 401 val_401 401 val_401
+401 val_401 401 val_401 401 val_401
+401 val_401 401 val_401 401 val_401
+401 val_401 401 val_401 401 val_401
+401 val_401 401 val_401 401 val_401
+401 val_401 401 val_401 401 val_401
+401 val_401 401 val_401 401 val_401
+401 val_401 401 val_401 401 val_401
+401 val_401 401 val_401 401 val_401
+401 val_401 401 val_401 401 val_401
+401 val_401 401 val_401 401 val_401
+401 val_401 401 val_401 401 val_401
+401 val_401 401 val_401 401 val_401
+406 val_406 406 val_406 406 val_406
+406 val_406 406 val_406 406 val_406
+406 val_406 406 val_406 406 val_406
+406 val_406 406 val_406 406 val_406
+406 val_406 406 val_406 406 val_406
+406 val_406 406 val_406 406 val_406
+406 val_406 406 val_406 406 val_406
+406 val_406 406 val_406 406 val_406
+406 val_406 406 val_406 406 val_406
+406 val_406 406 val_406 406 val_406
+406 val_406 406 val_406 406 val_406
+406 val_406 406 val_406 406 val_406
+406 val_406 406 val_406 406 val_406
+406 val_406 406 val_406 406 val_406
+406 val_406 406 val_406 406 val_406
+406 val_406 406 val_406 406 val_406
+66 val_66 66 val_66 66 val_66
+98 val_98 98 val_98 98 val_98
+98 val_98 98 val_98 98 val_98
+98 val_98 98 val_98 98 val_98
+98 val_98 98 val_98 98 val_98
+PREHOOK: query: select * from src1 a join src b on (a.key = b.key) join src c on (a.key = c.key)
+PREHOOK: type: QUERY
+PREHOOK: Input: default@src
+PREHOOK: Input: default@src1
+#### A masked pattern was here ####
+POSTHOOK: query: select * from src1 a join src b on (a.key = b.key) join src c on (a.key = c.key)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@src
+POSTHOOK: Input: default@src1
+#### A masked pattern was here ####
+128 128 val_128 128 val_128
+128 128 val_128 128 val_128
+128 128 val_128 128 val_128
+128 128 val_128 128 val_128
+128 128 val_128 128 val_128
+128 128 val_128 128 val_128
+128 128 val_128 128 val_128
+128 128 val_128 128 val_128
+128 128 val_128 128 val_128
+146 val_146 146 val_146 146 val_146
+146 val_146 146 val_146 146 val_146
+146 val_146 146 val_146 146 val_146
+146 val_146 146 val_146 146 val_146
+150 val_150 150 val_150 150 val_150
+213 val_213 213 val_213 213 val_213
+213 val_213 213 val_213 213 val_213
+213 val_213 213 val_213 213 val_213
+213 val_213 213 val_213 213 val_213
+224 224 val_224 224 val_224
+224 224 val_224 224 val_224
+224 224 val_224 224 val_224
+224 224 val_224 224 val_224
+238 val_238 238 val_238 238 val_238
+238 val_238 238 val_238 238 val_238
+238 val_238 238 val_238 238 val_238
+238 val_238 238 val_238 238 val_238
+255 val_255 255 val_255 255 val_255
+255 val_255 255 val_255 255 val_255
+255 val_255 255 val_255 255 val_255
+255 val_255 255 val_255 255 val_255
+273 val_273 273 val_273 273 val_273
+273 val_273 273 val_273 273 val_273
+273 val_273 273 val_273 273 val_273
+273 val_273 273 val_273 273 val_273
+273 val_273 273 val_273 273 val_273
+273 val_273 273 val_273 273 val_273
+273 val_273 273 val_273 273 val_273
+273 val_273 273 val_273 273 val_273
+273 val_273 273 val_273 273 val_273
+278 val_278 278 val_278 278 val_278
+278 val_278 278 val_278 278 val_278
+278 val_278 278 val_278 278 val_278
+278 val_278 278 val_278 278 val_278
+311 val_311 311 val_311 311 val_311
+311 val_311 311 val_311 311 val_311
+311 val_311 311 val_311 311 val_311
+311 val_311 311 val_311 311 val_311
+311 val_311 311 val_311 311 val_311
+311 val_311 311 val_311 311 val_311
+311 val_311 311 val_311 311 val_311
+311 val_311 311 val_311 311 val_311
+311 val_311 311 val_311 311 val_311
+369 369 val_369 369 val_369
+369 369 val_369 369 val_369
+369 369 val_369 369 val_369
+369 369 val_369 369 val_369
+369 369 val_369 369 val_369
+369 369 val_369 369 val_369
+369 369 val_369 369 val_369
+369 369 val_369 369 val_369
+369 369 val_369 369 val_369
+401 val_401 401 val_401 401 val_401
+401 val_401 401 val_401 401 val_401
+401 val_401 401 val_401 401 val_401
+401 val_401 401 val_401 401 val_401
+401 val_401 401 val_401 401 val_401
+401 val_401 401 val_401 401 val_401
+401 val_401 401 val_401 401 val_401
+401 val_401 401 val_401 401 val_401
+401 val_401 401 val_401 401 val_401
+401 val_401 401 val_401 401 val_401
+401 val_401 401 val_401 401 val_401
+401 val_401 401 val_401 401 val_401
+401 val_401 401 val_401 401 val_401
+401 val_401 401 val_401 401 val_401
+401 val_401 401 val_401 401 val_401
+401 val_401 401 val_401 401 val_401
+401 val_401 401 val_401 401 val_401
+401 val_401 401 val_401 401 val_401
+401 val_401 401 val_401 401 val_401
+401 val_401 401 val_401 401 val_401
+401 val_401 401 val_401 401 val_401
+401 val_401 401 val_401 401 val_401
+401 val_401 401 val_401 401 val_401
+401 val_401 401 val_401 401 val_401
+401 val_401 401 val_401 401 val_401
+406 val_406 406 val_406 406 val_406
+406 val_406 406 val_406 406 val_406
+406 val_406 406 val_406 406 val_406
+406 val_406 406 val_406 406 val_406
+406 val_406 406 val_406 406 val_406
+406 val_406 406 val_406 406 val_406
+406 val_406 406 val_406 406 val_406
+406 val_406 406 val_406 406 val_406
+406 val_406 406 val_406 406 val_406
+406 val_406 406 val_406 406 val_406
+406 val_406 406 val_406 406 val_406
+406 val_406 406 val_406 406 val_406
+406 val_406 406 val_406 406 val_406
+406 val_406 406 val_406 406 val_406
+406 val_406 406 val_406 406 val_406
+406 val_406 406 val_406 406 val_406
+66 val_66 66 val_66 66 val_66
+98 val_98 98 val_98 98 val_98
+98 val_98 98 val_98 98 val_98
+98 val_98 98 val_98 98 val_98
+98 val_98 98 val_98 98 val_98
+PREHOOK: query: select count(*) from src1 a join src b on (a.key = b.key) join src c on (a.key = c.key)
+PREHOOK: type: QUERY
+PREHOOK: Input: default@src
+PREHOOK: Input: default@src1
+#### A masked pattern was here ####
+POSTHOOK: query: select count(*) from src1 a join src b on (a.key = b.key) join src c on (a.key = c.key)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@src
+POSTHOOK: Input: default@src1
+#### A masked pattern was here ####
+107
diff --git ql/src/test/results/clientpositive/tez_joins_explain.q.out ql/src/test/results/clientpositive/tez_joins_explain.q.out
new file mode 100644
index 0000000..b68da6e
--- /dev/null
+++ ql/src/test/results/clientpositive/tez_joins_explain.q.out
@@ -0,0 +1,738 @@
+PREHOOK: query: explain
+select * from (select b.key, b.value from src1 a left outer join src b on (a.key = b.key) order by b.key) x right outer join src c on (x.value = c.value) order by x.key
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select * from (select b.key, b.value from src1 a left outer join src b on (a.key = b.key) order by b.key) x right outer join src c on (x.value = c.value) order by x.key
+POSTHOOK: type: QUERY
+ABSTRACT SYNTAX TREE:
+ (TOK_QUERY (TOK_FROM (TOK_RIGHTOUTERJOIN (TOK_SUBQUERY (TOK_QUERY (TOK_FROM (TOK_LEFTOUTERJOIN (TOK_TABREF (TOK_TABNAME src1) a) (TOK_TABREF (TOK_TABNAME src) b) (= (. (TOK_TABLE_OR_COL a) key) (. (TOK_TABLE_OR_COL b) key)))) (TOK_INSERT (TOK_DESTINATION (TOK_DIR TOK_TMP_FILE)) (TOK_SELECT (TOK_SELEXPR (. (TOK_TABLE_OR_COL b) key)) (TOK_SELEXPR (. (TOK_TABLE_OR_COL b) value))) (TOK_ORDERBY (TOK_TABSORTCOLNAMEASC (. (TOK_TABLE_OR_COL b) key))))) x) (TOK_TABREF (TOK_TABNAME src) c) (= (. (TOK_TABLE_OR_COL x) value) (. (TOK_TABLE_OR_COL c) value)))) (TOK_INSERT (TOK_DESTINATION (TOK_DIR TOK_TMP_FILE)) (TOK_SELECT (TOK_SELEXPR TOK_ALLCOLREF)) (TOK_ORDERBY (TOK_TABSORTCOLNAMEASC (. (TOK_TABLE_OR_COL x) key)))))
+
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-0 is a root stage
+
+STAGE PLANS:
+ Stage: Stage-1
+ Tez
+ Alias -> Map Operator Tree:
+ b
+ TableScan
+ alias: b
+ Reduce Output Operator
+ key expressions:
+ expr: key
+ type: string
+ sort order: +
+ Map-reduce partition columns:
+ expr: key
+ type: string
+ tag: 1
+ value expressions:
+ expr: key
+ type: string
+ expr: value
+ type: string
+ Alias -> Map Operator Tree:
+ a
+ TableScan
+ alias: a
+ Reduce Output Operator
+ key expressions:
+ expr: key
+ type: string
+ sort order: +
+ Map-reduce partition columns:
+ expr: key
+ type: string
+ tag: 0
+ Reduce Operator Tree:
+ Join Operator
+ condition map:
+ Left Outer Join0 to 1
+ condition expressions:
+ 0
+ 1 {VALUE._col0} {VALUE._col1}
+ handleSkewJoin: false
+ outputColumnNames: _col4, _col5
+ Select Operator
+ expressions:
+ expr: _col4
+ type: string
+ expr: _col5
+ type: string
+ outputColumnNames: _col0, _col1
+ Reduce Output Operator
+ key expressions:
+ expr: _col0
+ type: string
+ sort order: +
+ tag: -1
+ value expressions:
+ expr: _col0
+ type: string
+ expr: _col1
+ type: string
+ Reduce Operator Tree:
+ Extract
+ Reduce Output Operator
+ key expressions:
+ expr: _col1
+ type: string
+ sort order: +
+ Map-reduce partition columns:
+ expr: _col1
+ type: string
+ tag: 0
+ value expressions:
+ expr: _col0
+ type: string
+ expr: _col1
+ type: string
+ Alias -> Map Operator Tree:
+ c
+ TableScan
+ alias: c
+ Reduce Output Operator
+ key expressions:
+ expr: value
+ type: string
+ sort order: +
+ Map-reduce partition columns:
+ expr: value
+ type: string
+ tag: 1
+ value expressions:
+ expr: key
+ type: string
+ expr: value
+ type: string
+ Reduce Operator Tree:
+ Join Operator
+ condition map:
+ Right Outer Join0 to 1
+ condition expressions:
+ 0 {VALUE._col0} {VALUE._col1}
+ 1 {VALUE._col0} {VALUE._col1}
+ handleSkewJoin: false
+ outputColumnNames: _col0, _col1, _col2, _col3
+ Select Operator
+ expressions:
+ expr: _col0
+ type: string
+ expr: _col1
+ type: string
+ expr: _col2
+ type: string
+ expr: _col3
+ type: string
+ outputColumnNames: _col0, _col1, _col2, _col3
+ Reduce Output Operator
+ key expressions:
+ expr: _col0
+ type: string
+ sort order: +
+ tag: -1
+ value expressions:
+ expr: _col0
+ type: string
+ expr: _col1
+ type: string
+ expr: _col2
+ type: string
+ expr: _col3
+ type: string
+ Reduce Operator Tree:
+ Extract
+ File Output Operator
+ compressed: false
+ GlobalTableId: 0
+ table:
+ input format: org.apache.hadoop.mapred.TextInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+
+
+PREHOOK: query: select * from (select b.key, b.value from src1 a left outer join src b on (a.key = b.key) order by b.key) x right outer join src c on (x.value = c.value) order by x.key
+PREHOOK: type: QUERY
+PREHOOK: Input: default@src
+PREHOOK: Input: default@src1
+#### A masked pattern was here ####
+POSTHOOK: query: select * from (select b.key, b.value from src1 a left outer join src b on (a.key = b.key) order by b.key) x right outer join src c on (x.value = c.value) order by x.key
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@src
+POSTHOOK: Input: default@src1
+#### A masked pattern was here ####
+NULL NULL 0 val_0
+NULL NULL 97 val_97
+NULL NULL 97 val_97
+NULL NULL 96 val_96
+NULL NULL 95 val_95
+NULL NULL 95 val_95
+NULL NULL 92 val_92
+NULL NULL 90 val_90
+NULL NULL 90 val_90
+NULL NULL 90 val_90
+NULL NULL 9 val_9
+NULL NULL 87 val_87
+NULL NULL 86 val_86
+NULL NULL 85 val_85
+NULL NULL 84 val_84
+NULL NULL 84 val_84
+NULL NULL 83 val_83
+NULL NULL 83 val_83
+NULL NULL 82 val_82
+NULL NULL 80 val_80
+NULL NULL 8 val_8
+NULL NULL 78 val_78
+NULL NULL 77 val_77
+NULL NULL 76 val_76
+NULL NULL 76 val_76
+NULL NULL 74 val_74
+NULL NULL 72 val_72
+NULL NULL 72 val_72
+NULL NULL 70 val_70
+NULL NULL 70 val_70
+NULL NULL 70 val_70
+NULL NULL 69 val_69
+NULL NULL 67 val_67
+NULL NULL 67 val_67
+NULL NULL 65 val_65
+NULL NULL 64 val_64
+NULL NULL 58 val_58
+NULL NULL 58 val_58
+NULL NULL 57 val_57
+NULL NULL 54 val_54
+NULL NULL 53 val_53
+NULL NULL 51 val_51
+NULL NULL 51 val_51
+NULL NULL 5 val_5
+NULL NULL 5 val_5
+NULL NULL 5 val_5
+NULL NULL 498 val_498
+NULL NULL 498 val_498
+NULL NULL 498 val_498
+NULL NULL 497 val_497
+NULL NULL 496 val_496
+NULL NULL 495 val_495
+NULL NULL 494 val_494
+NULL NULL 493 val_493
+NULL NULL 492 val_492
+NULL NULL 492 val_492
+NULL NULL 491 val_491
+NULL NULL 490 val_490
+NULL NULL 489 val_489
+NULL NULL 489 val_489
+NULL NULL 489 val_489
+NULL NULL 489 val_489
+NULL NULL 487 val_487
+NULL NULL 485 val_485
+NULL NULL 484 val_484
+NULL NULL 483 val_483
+NULL NULL 482 val_482
+NULL NULL 481 val_481
+NULL NULL 480 val_480
+NULL NULL 480 val_480
+NULL NULL 480 val_480
+NULL NULL 479 val_479
+NULL NULL 478 val_478
+NULL NULL 478 val_478
+NULL NULL 477 val_477
+NULL NULL 475 val_475
+NULL NULL 472 val_472
+NULL NULL 470 val_470
+NULL NULL 47 val_47
+NULL NULL 469 val_469
+NULL NULL 469 val_469
+NULL NULL 469 val_469
+NULL NULL 469 val_469
+NULL NULL 469 val_469
+NULL NULL 468 val_468
+NULL NULL 468 val_468
+NULL NULL 468 val_468
+NULL NULL 468 val_468
+NULL NULL 467 val_467
+NULL NULL 466 val_466
+NULL NULL 466 val_466
+NULL NULL 466 val_466
+NULL NULL 463 val_463
+NULL NULL 463 val_463
+NULL NULL 462 val_462
+NULL NULL 462 val_462
+NULL NULL 460 val_460
+NULL NULL 459 val_459
+NULL NULL 459 val_459
+NULL NULL 458 val_458
+NULL NULL 458 val_458
+NULL NULL 457 val_457
+NULL NULL 455 val_455
+NULL NULL 454 val_454
+NULL NULL 454 val_454
+NULL NULL 454 val_454
+NULL NULL 453 val_453
+NULL NULL 452 val_452
+NULL NULL 449 val_449
+NULL NULL 448 val_448
+NULL NULL 446 val_446
+NULL NULL 444 val_444
+NULL NULL 443 val_443
+NULL NULL 44 val_44
+NULL NULL 439 val_439
+NULL NULL 439 val_439
+NULL NULL 438 val_438
+NULL NULL 438 val_438
+NULL NULL 438 val_438
+NULL NULL 437 val_437
+NULL NULL 436 val_436
+NULL NULL 435 val_435
+NULL NULL 432 val_432
+NULL NULL 431 val_431
+NULL NULL 431 val_431
+NULL NULL 431 val_431
+NULL NULL 430 val_430
+NULL NULL 430 val_430
+NULL NULL 430 val_430
+NULL NULL 43 val_43
+NULL NULL 429 val_429
+NULL NULL 429 val_429
+NULL NULL 427 val_427
+NULL NULL 424 val_424
+NULL NULL 424 val_424
+NULL NULL 421 val_421
+NULL NULL 42 val_42
+NULL NULL 42 val_42
+NULL NULL 419 val_419
+NULL NULL 418 val_418
+NULL NULL 417 val_417
+NULL NULL 417 val_417
+NULL NULL 417 val_417
+NULL NULL 414 val_414
+NULL NULL 414 val_414
+NULL NULL 413 val_413
+NULL NULL 413 val_413
+NULL NULL 411 val_411
+NULL NULL 41 val_41
+NULL NULL 409 val_409
+NULL NULL 409 val_409
+NULL NULL 409 val_409
+NULL NULL 407 val_407
+NULL NULL 404 val_404
+NULL NULL 404 val_404
+NULL NULL 403 val_403
+NULL NULL 403 val_403
+NULL NULL 403 val_403
+NULL NULL 402 val_402
+NULL NULL 400 val_400
+NULL NULL 4 val_4
+NULL NULL 399 val_399
+NULL NULL 399 val_399
+NULL NULL 397 val_397
+NULL NULL 397 val_397
+NULL NULL 396 val_396
+NULL NULL 396 val_396
+NULL NULL 396 val_396
+NULL NULL 395 val_395
+NULL NULL 395 val_395
+NULL NULL 394 val_394
+NULL NULL 393 val_393
+NULL NULL 392 val_392
+NULL NULL 389 val_389
+NULL NULL 386 val_386
+NULL NULL 384 val_384
+NULL NULL 384 val_384
+NULL NULL 384 val_384
+NULL NULL 382 val_382
+NULL NULL 382 val_382
+NULL NULL 379 val_379
+NULL NULL 378 val_378
+NULL NULL 377 val_377
+NULL NULL 375 val_375
+NULL NULL 374 val_374
+NULL NULL 373 val_373
+NULL NULL 37 val_37
+NULL NULL 37 val_37
+NULL NULL 368 val_368
+NULL NULL 367 val_367
+NULL NULL 367 val_367
+NULL NULL 366 val_366
+NULL NULL 365 val_365
+NULL NULL 364 val_364
+NULL NULL 362 val_362
+NULL NULL 360 val_360
+NULL NULL 356 val_356
+NULL NULL 353 val_353
+NULL NULL 353 val_353
+NULL NULL 351 val_351
+NULL NULL 35 val_35
+NULL NULL 35 val_35
+NULL NULL 35 val_35
+NULL NULL 348 val_348
+NULL NULL 348 val_348
+NULL NULL 348 val_348
+NULL NULL 348 val_348
+NULL NULL 348 val_348
+NULL NULL 345 val_345
+NULL NULL 344 val_344
+NULL NULL 344 val_344
+NULL NULL 342 val_342
+NULL NULL 342 val_342
+NULL NULL 341 val_341
+NULL NULL 34 val_34
+NULL NULL 339 val_339
+NULL NULL 338 val_338
+NULL NULL 336 val_336
+NULL NULL 335 val_335
+NULL NULL 333 val_333
+NULL NULL 333 val_333
+NULL NULL 332 val_332
+NULL NULL 331 val_331
+NULL NULL 331 val_331
+NULL NULL 33 val_33
+NULL NULL 327 val_327
+NULL NULL 327 val_327
+NULL NULL 327 val_327
+NULL NULL 325 val_325
+NULL NULL 325 val_325
+NULL NULL 323 val_323
+NULL NULL 322 val_322
+NULL NULL 322 val_322
+NULL NULL 321 val_321
+NULL NULL 321 val_321
+NULL NULL 318 val_318
+NULL NULL 318 val_318
+NULL NULL 318 val_318
+NULL NULL 317 val_317
+NULL NULL 317 val_317
+NULL NULL 316 val_316
+NULL NULL 316 val_316
+NULL NULL 316 val_316
+NULL NULL 315 val_315
+NULL NULL 310 val_310
+NULL NULL 309 val_309
+NULL NULL 309 val_309
+NULL NULL 308 val_308
+NULL NULL 307 val_307
+NULL NULL 307 val_307
+NULL NULL 306 val_306
+NULL NULL 305 val_305
+NULL NULL 302 val_302
+NULL NULL 30 val_30
+NULL NULL 298 val_298
+NULL NULL 298 val_298
+NULL NULL 298 val_298
+NULL NULL 296 val_296
+NULL NULL 292 val_292
+NULL NULL 291 val_291
+NULL NULL 289 val_289
+NULL NULL 288 val_288
+NULL NULL 288 val_288
+NULL NULL 287 val_287
+NULL NULL 286 val_286
+NULL NULL 285 val_285
+NULL NULL 284 val_284
+NULL NULL 283 val_283
+NULL NULL 282 val_282
+NULL NULL 282 val_282
+NULL NULL 281 val_281
+NULL NULL 281 val_281
+NULL NULL 280 val_280
+NULL NULL 280 val_280
+NULL NULL 28 val_28
+NULL NULL 277 val_277
+NULL NULL 277 val_277
+NULL NULL 277 val_277
+NULL NULL 277 val_277
+NULL NULL 275 val_275
+NULL NULL 274 val_274
+NULL NULL 272 val_272
+NULL NULL 272 val_272
+NULL NULL 27 val_27
+NULL NULL 266 val_266
+NULL NULL 265 val_265
+NULL NULL 265 val_265
+NULL NULL 263 val_263
+NULL NULL 262 val_262
+NULL NULL 260 val_260
+NULL NULL 26 val_26
+NULL NULL 26 val_26
+NULL NULL 258 val_258
+NULL NULL 257 val_257
+NULL NULL 256 val_256
+NULL NULL 256 val_256
+NULL NULL 252 val_252
+NULL NULL 249 val_249
+NULL NULL 248 val_248
+NULL NULL 247 val_247
+NULL NULL 244 val_244
+NULL NULL 242 val_242
+NULL NULL 242 val_242
+NULL NULL 241 val_241
+NULL NULL 24 val_24
+NULL NULL 24 val_24
+NULL NULL 239 val_239
+NULL NULL 239 val_239
+NULL NULL 237 val_237
+NULL NULL 237 val_237
+NULL NULL 235 val_235
+NULL NULL 233 val_233
+NULL NULL 233 val_233
+NULL NULL 230 val_230
+NULL NULL 230 val_230
+NULL NULL 230 val_230
+NULL NULL 230 val_230
+NULL NULL 230 val_230
+NULL NULL 229 val_229
+NULL NULL 229 val_229
+NULL NULL 228 val_228
+NULL NULL 226 val_226
+NULL NULL 223 val_223
+NULL NULL 223 val_223
+NULL NULL 222 val_222
+NULL NULL 221 val_221
+NULL NULL 221 val_221
+NULL NULL 219 val_219
+NULL NULL 219 val_219
+NULL NULL 218 val_218
+NULL NULL 217 val_217
+NULL NULL 217 val_217
+NULL NULL 216 val_216
+NULL NULL 216 val_216
+NULL NULL 214 val_214
+NULL NULL 209 val_209
+NULL NULL 209 val_209
+NULL NULL 208 val_208
+NULL NULL 208 val_208
+NULL NULL 208 val_208
+NULL NULL 207 val_207
+NULL NULL 207 val_207
+NULL NULL 205 val_205
+NULL NULL 205 val_205
+NULL NULL 203 val_203
+NULL NULL 203 val_203
+NULL NULL 202 val_202
+NULL NULL 201 val_201
+NULL NULL 200 val_200
+NULL NULL 200 val_200
+NULL NULL 20 val_20
+NULL NULL 2 val_2
+NULL NULL 199 val_199
+NULL NULL 199 val_199
+NULL NULL 199 val_199
+NULL NULL 197 val_197
+NULL NULL 197 val_197
+NULL NULL 196 val_196
+NULL NULL 195 val_195
+NULL NULL 195 val_195
+NULL NULL 194 val_194
+NULL NULL 193 val_193
+NULL NULL 193 val_193
+NULL NULL 193 val_193
+NULL NULL 192 val_192
+NULL NULL 191 val_191
+NULL NULL 191 val_191
+NULL NULL 190 val_190
+NULL NULL 19 val_19
+NULL NULL 189 val_189
+NULL NULL 187 val_187
+NULL NULL 187 val_187
+NULL NULL 187 val_187
+NULL NULL 186 val_186
+NULL NULL 183 val_183
+NULL NULL 181 val_181
+NULL NULL 180 val_180
+NULL NULL 18 val_18
+NULL NULL 18 val_18
+NULL NULL 179 val_179
+NULL NULL 179 val_179
+NULL NULL 178 val_178
+NULL NULL 177 val_177
+NULL NULL 176 val_176
+NULL NULL 176 val_176
+NULL NULL 175 val_175
+NULL NULL 175 val_175
+NULL NULL 174 val_174
+NULL NULL 174 val_174
+NULL NULL 172 val_172
+NULL NULL 172 val_172
+NULL NULL 170 val_170
+NULL NULL 17 val_17
+NULL NULL 169 val_169
+NULL NULL 169 val_169
+NULL NULL 169 val_169
+NULL NULL 169 val_169
+NULL NULL 168 val_168
+NULL NULL 167 val_167
+NULL NULL 167 val_167
+NULL NULL 167 val_167
+NULL NULL 166 val_166
+NULL NULL 165 val_165
+NULL NULL 165 val_165
+NULL NULL 164 val_164
+NULL NULL 164 val_164
+NULL NULL 163 val_163
+NULL NULL 162 val_162
+NULL NULL 160 val_160
+NULL NULL 158 val_158
+NULL NULL 157 val_157
+NULL NULL 156 val_156
+NULL NULL 155 val_155
+NULL NULL 153 val_153
+NULL NULL 152 val_152
+NULL NULL 152 val_152
+NULL NULL 15 val_15
+NULL NULL 15 val_15
+NULL NULL 149 val_149
+NULL NULL 149 val_149
+NULL NULL 145 val_145
+NULL NULL 143 val_143
+NULL NULL 138 val_138
+NULL NULL 138 val_138
+NULL NULL 138 val_138
+NULL NULL 138 val_138
+NULL NULL 137 val_137
+NULL NULL 137 val_137
+NULL NULL 136 val_136
+NULL NULL 134 val_134
+NULL NULL 134 val_134
+NULL NULL 133 val_133
+NULL NULL 131 val_131
+NULL NULL 129 val_129
+NULL NULL 129 val_129
+NULL NULL 126 val_126
+NULL NULL 125 val_125
+NULL NULL 125 val_125
+NULL NULL 120 val_120
+NULL NULL 120 val_120
+NULL NULL 12 val_12
+NULL NULL 12 val_12
+NULL NULL 119 val_119
+NULL NULL 119 val_119
+NULL NULL 119 val_119
+NULL NULL 118 val_118
+NULL NULL 118 val_118
+NULL NULL 116 val_116
+NULL NULL 114 val_114
+NULL NULL 113 val_113
+NULL NULL 113 val_113
+NULL NULL 111 val_111
+NULL NULL 11 val_11
+NULL NULL 105 val_105
+NULL NULL 104 val_104
+NULL NULL 104 val_104
+NULL NULL 103 val_103
+NULL NULL 103 val_103
+NULL NULL 100 val_100
+NULL NULL 100 val_100
+NULL NULL 10 val_10
+NULL NULL 0 val_0
+NULL NULL 0 val_0
+128 val_128 128 val_128
+128 val_128 128 val_128
+128 val_128 128 val_128
+128 val_128 128 val_128
+128 val_128 128 val_128
+128 val_128 128 val_128
+128 val_128 128 val_128
+128 val_128 128 val_128
+128 val_128 128 val_128
+146 val_146 146 val_146
+146 val_146 146 val_146
+146 val_146 146 val_146
+146 val_146 146 val_146
+150 val_150 150 val_150
+213 val_213 213 val_213
+213 val_213 213 val_213
+213 val_213 213 val_213
+213 val_213 213 val_213
+224 val_224 224 val_224
+224 val_224 224 val_224
+224 val_224 224 val_224
+224 val_224 224 val_224
+238 val_238 238 val_238
+238 val_238 238 val_238
+238 val_238 238 val_238
+238 val_238 238 val_238
+255 val_255 255 val_255
+255 val_255 255 val_255
+255 val_255 255 val_255
+255 val_255 255 val_255
+273 val_273 273 val_273
+273 val_273 273 val_273
+273 val_273 273 val_273
+273 val_273 273 val_273
+273 val_273 273 val_273
+273 val_273 273 val_273
+273 val_273 273 val_273
+273 val_273 273 val_273
+273 val_273 273 val_273
+278 val_278 278 val_278
+278 val_278 278 val_278
+278 val_278 278 val_278
+278 val_278 278 val_278
+311 val_311 311 val_311
+311 val_311 311 val_311
+311 val_311 311 val_311
+311 val_311 311 val_311
+311 val_311 311 val_311
+311 val_311 311 val_311
+311 val_311 311 val_311
+311 val_311 311 val_311
+311 val_311 311 val_311
+369 val_369 369 val_369
+369 val_369 369 val_369
+369 val_369 369 val_369
+369 val_369 369 val_369
+369 val_369 369 val_369
+369 val_369 369 val_369
+369 val_369 369 val_369
+369 val_369 369 val_369
+369 val_369 369 val_369
+401 val_401 401 val_401
+401 val_401 401 val_401
+401 val_401 401 val_401
+401 val_401 401 val_401
+401 val_401 401 val_401
+401 val_401 401 val_401
+401 val_401 401 val_401
+401 val_401 401 val_401
+401 val_401 401 val_401
+401 val_401 401 val_401
+401 val_401 401 val_401
+401 val_401 401 val_401
+401 val_401 401 val_401
+401 val_401 401 val_401
+401 val_401 401 val_401
+401 val_401 401 val_401
+401 val_401 401 val_401
+401 val_401 401 val_401
+401 val_401 401 val_401
+401 val_401 401 val_401
+401 val_401 401 val_401
+401 val_401 401 val_401
+401 val_401 401 val_401
+401 val_401 401 val_401
+401 val_401 401 val_401
+406 val_406 406 val_406
+406 val_406 406 val_406
+406 val_406 406 val_406
+406 val_406 406 val_406
+406 val_406 406 val_406
+406 val_406 406 val_406
+406 val_406 406 val_406
+406 val_406 406 val_406
+406 val_406 406 val_406
+406 val_406 406 val_406
+406 val_406 406 val_406
+406 val_406 406 val_406
+406 val_406 406 val_406
+406 val_406 406 val_406
+406 val_406 406 val_406
+406 val_406 406 val_406
+66 val_66 66 val_66
+98 val_98 98 val_98
+98 val_98 98 val_98
+98 val_98 98 val_98
+98 val_98 98 val_98
diff --git ql/src/test/templates/TestCliDriver.vm ql/src/test/templates/TestCliDriver.vm
index f2623f8..3e52388 100644
--- ql/src/test/templates/TestCliDriver.vm
+++ ql/src/test/templates/TestCliDriver.vm
@@ -34,8 +34,8 @@ public class $className extends TestCase {
static {
try {
- boolean miniMR = "$clusterMode".equals("miniMR");
String hadoopVer = "$hadoopVersion";
+ String miniMR = "$clusterMode";
qt = new QTestUtil((HIVE_ROOT + "$resultsDir"), (HIVE_ROOT + "$logDir"), miniMR, hadoopVer);
// do a one time initialization
diff --git ql/src/test/templates/TestNegativeCliDriver.vm ql/src/test/templates/TestNegativeCliDriver.vm
index 7159faf..a329693 100644
--- ql/src/test/templates/TestNegativeCliDriver.vm
+++ ql/src/test/templates/TestNegativeCliDriver.vm
@@ -34,7 +34,7 @@ public class $className extends TestCase {
static {
try {
- boolean miniMR = "$clusterMode".equals("miniMR");
+ String miniMR = "$clusterMode";
String hadoopVer = "$hadoopVersion";
qt = new QTestUtil((HIVE_ROOT + "$resultsDir"), (HIVE_ROOT + "$logDir"), miniMR, hadoopVer);
// do a one time initialization
diff --git ql/src/test/templates/TestParse.vm ql/src/test/templates/TestParse.vm
index e28e901..52dbe60 100644
--- ql/src/test/templates/TestParse.vm
+++ ql/src/test/templates/TestParse.vm
@@ -34,7 +34,7 @@ public class $className extends TestCase {
static {
try {
- boolean miniMR = "$clusterMode".equals("miniMR");
+ String miniMR = "$clusterMode";
String hadoopVer = "$hadoopVersion";
qt = new QTestUtil((HIVE_ROOT + "$resultsDir"), (HIVE_ROOT + "$logDir"), miniMR, hadoopVer);
qt.init(null);
diff --git ql/src/test/templates/TestParseNegative.vm ql/src/test/templates/TestParseNegative.vm
index 1aec083..fa3bea9 100755
--- ql/src/test/templates/TestParseNegative.vm
+++ ql/src/test/templates/TestParseNegative.vm
@@ -34,7 +34,7 @@ public class $className extends TestCase {
static {
try {
- boolean miniMR = "$clusterMode".equals("miniMR");
+ String miniMR = "$clusterMode";
String hadoopVer = "$hadoopVersion";
qt = new QTestUtil((HIVE_ROOT + "$resultsDir"), (HIVE_ROOT + "$logDir"), miniMR, hadoopVer);
} catch (Exception e) {
diff --git shims/build.xml shims/build.xml
index cbfba5a..c7393fd 100644
--- shims/build.xml
+++ shims/build.xml
@@ -26,29 +26,50 @@ to call at top-level: ant deploy-contrib compile-core-test
-
+
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
-
+
+
+
+
+
+
+
+
+
+
+
-
+
-
+
+
+
+
+
+
+
+
+
@@ -77,7 +98,7 @@ to call at top-level: ant deploy-contrib compile-core-test
-
+
diff --git shims/src/0.23/java/org/apache/hadoop/hive/shims/Hadoop23Shims.java shims/src/0.23/java/org/apache/hadoop/hive/shims/Hadoop23Shims.java
index d36587d..ebebc57 100644
--- shims/src/0.23/java/org/apache/hadoop/hive/shims/Hadoop23Shims.java
+++ shims/src/0.23/java/org/apache/hadoop/hive/shims/Hadoop23Shims.java
@@ -185,6 +185,11 @@ public MiniMrShim getMiniMrCluster(Configuration conf, int numberOfTaskTrackers,
private final MiniMRCluster mr;
private final Configuration conf;
+ public MiniMrShim() {
+ mr = null;
+ conf = null;
+ }
+
public MiniMrShim(Configuration conf, int numberOfTaskTrackers,
String nameNode, int numDir) throws IOException {
this.conf = conf;
diff --git shims/src/common/java/org/apache/hadoop/hive/shims/ShimLoader.java shims/src/common/java/org/apache/hadoop/hive/shims/ShimLoader.java
index a4714ae..608120f 100644
--- shims/src/common/java/org/apache/hadoop/hive/shims/ShimLoader.java
+++ shims/src/common/java/org/apache/hadoop/hive/shims/ShimLoader.java
@@ -71,6 +71,10 @@
EVENT_COUNTER_SHIM_CLASSES.put("0.23", "org.apache.hadoop.log.metrics.EventCounter");
}
+ public static synchronized HadoopShims getNonHadoopShims(String name) {
+ return createShim("org.apache.hadoop.hive.shims.TezShims", HadoopShims.class);
+ }
+
/**
* Factory method to get an instance of HadoopShims based on the
* version of Hadoop on the classpath.
diff --git shims/src/tez/java/org/apache/hadoop/hive/shims/TezShims.java shims/src/tez/java/org/apache/hadoop/hive/shims/TezShims.java
new file mode 100644
index 0000000..8c6fc9c
--- /dev/null
+++ shims/src/tez/java/org/apache/hadoop/hive/shims/TezShims.java
@@ -0,0 +1,148 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.hadoop.hive.shims;
+
+import org.apache.hadoop.hive.shims.Hadoop23Shims;
+
+import java.io.IOException;
+import java.lang.Integer;
+import java.net.InetSocketAddress;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.util.Iterator;
+import java.util.Map;
+
+import org.apache.commons.lang.StringUtils;
+import org.apache.hadoop.conf.Configuration;
+import org.apache.hadoop.fs.BlockLocation;
+import org.apache.hadoop.fs.FileStatus;
+import org.apache.hadoop.fs.FileSystem;
+import org.apache.hadoop.fs.LocatedFileStatus;
+import org.apache.hadoop.fs.Path;
+import org.apache.hadoop.fs.PathFilter;
+import org.apache.hadoop.fs.RemoteIterator;
+import org.apache.hadoop.fs.Trash;
+import org.apache.hadoop.hdfs.MiniDFSCluster;
+import org.apache.hadoop.mapred.MiniMRCluster;
+import org.apache.hadoop.mapred.ClusterStatus;
+import org.apache.hadoop.mapred.JobConf;
+import org.apache.hadoop.mapred.Reporter;
+import org.apache.hadoop.mapred.WebHCatJTShim23;
+import org.apache.hadoop.mapreduce.Job;
+import org.apache.hadoop.mapreduce.JobContext;
+import org.apache.hadoop.mapreduce.JobID;
+import org.apache.hadoop.mapreduce.MRJobConfig;
+import org.apache.hadoop.mapreduce.OutputFormat;
+import org.apache.hadoop.mapreduce.TaskAttemptID;
+import org.apache.hadoop.mapreduce.TaskID;
+import org.apache.hadoop.mapreduce.TaskType;
+import org.apache.hadoop.mapreduce.task.JobContextImpl;
+import org.apache.hadoop.mapreduce.task.TaskAttemptContextImpl;
+import org.apache.hadoop.mapreduce.util.HostUtil;
+import org.apache.hadoop.net.NetUtils;
+import org.apache.hadoop.util.Progressable;
+import org.apache.hadoop.mapred.lib.TotalOrderPartitioner;
+import org.apache.hadoop.security.UserGroupInformation;
+import org.apache.tez.mapreduce.*;
+
+/**
+ * Implemention of shims against Tez
+ */
+public class TezShims extends Hadoop23Shims {
+
+ private MiniDFSCluster dfsCluster;
+ /**
+ * Returns a shim to wrap MiniMrCluster
+ */
+ @Override
+ public MiniMrShim getMiniMrCluster(Configuration conf, int numberOfTaskTrackers,
+ String nameNode, int numDir) throws IOException {
+ return new MiniMrShim(conf, numberOfTaskTrackers, nameNode, numDir);
+ }
+
+ /**
+ * Shim for MiniMrCluster
+ */
+ public class MiniMrShim extends Hadoop23Shims.MiniMrShim {
+
+ private final MiniMRRTezCluster mr;
+ private final Configuration conf;
+
+ public MiniMrShim(Configuration conf, int numberOfTaskTrackers,
+ String nameNode, int numDir) throws IOException {
+
+ mr = new MiniMRRTezCluster("hive", numberOfTaskTrackers);
+ conf.set("fs.defaultFS", nameNode);
+ conf.set(MRJobConfig.MR_AM_STAGING_DIR, "/apps_staging_dir");
+ mr.init(conf);
+ mr.start();
+ this.conf = mr.getConfig();
+ }
+
+ @Override
+ public int getJobTrackerPort() throws UnsupportedOperationException {
+ String address = conf.get("yarn.resourcemanager.address");
+ address = StringUtils.substringAfterLast(address, ":");
+
+ if (StringUtils.isBlank(address)) {
+ throw new IllegalArgumentException("Invalid YARN resource manager port.");
+ }
+
+ return Integer.parseInt(address);
+ }
+
+ @Override
+ public void shutdown() throws IOException {
+ mr.stop();
+ }
+
+ @Override
+ public void setupConfiguration(Configuration conf) {
+ Configuration config = mr.getConfig();
+ for (Map.Entry pair: config) {
+ conf.set(pair.getKey(), pair.getValue());
+ }
+
+ Path jarPath = new Path("/user/hive");
+ Path hdfsPath = new Path("/user/");
+ try {
+ FileSystem fs = dfsCluster.getFileSystem();
+ jarPath = fs.makeQualified(jarPath);
+ conf.set("hive.jar.directory", jarPath.toString());
+ hdfsPath = fs.makeQualified(hdfsPath);
+ conf.set("hive.user.install.directory", hdfsPath.toString());
+ // conf.set("mapreduce.framework.name", "local");
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+ }
+
+ public Hadoop23Shims.MiniDFSShim getMiniDfs(Configuration conf,
+ int numDataNodes,
+ boolean format,
+ String[] racks) throws IOException {
+ this.dfsCluster = new MiniDFSCluster(conf, numDataNodes, format, racks);
+ return new MiniDFSShim(dfsCluster);
+ }
+
+ @Override
+ public boolean isLocalMode(Configuration conf) {
+ return true;
+ }
+}