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; + } +}