You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by kg...@apache.org on 2019/07/15 10:41:13 UTC
[hive] 02/05: HIVE-21923: Vectorized MapJoin may miss results when
only the join key is selected (Zoltan Haindrich reviewed by Jesus Camacho
Rodriguez)
This is an automated email from the ASF dual-hosted git repository.
kgyrtkirk pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/hive.git
commit 96e8e78e8f7dadbb8527f054c21e2bb5c90fc8c9
Author: Zoltan Haindrich <ki...@rxd.hu>
AuthorDate: Mon Jul 15 11:32:04 2019 +0200
HIVE-21923: Vectorized MapJoin may miss results when only the join key is selected (Zoltan Haindrich reviewed by Jesus Camacho Rodriguez)
Signed-off-by: Zoltan Haindrich <ki...@rxd.hu>
---
.../hive/common/format/datetime/package-info.java | 22 -
...rMapJoinInnerBigOnlyGenerateResultOperator.java | 6 +-
.../clientpositive/hybridgrace_hashjoin_2.q | 24 +-
.../llap/correlationoptimizer4.q.out | 2 +-
.../llap/hybridgrace_hashjoin_2.q.out | 228 +-
.../results/clientpositive/spark/auto_join14.q.out | 2 +-
.../spark/bucket_map_join_tez1.q.out | 3056 ++++++++++----------
.../tez/hybridgrace_hashjoin_2.q.out | 227 +-
8 files changed, 1960 insertions(+), 1607 deletions(-)
diff --git a/common/src/test/org/apache/hadoop/hive/common/format/datetime/package-info.java b/common/src/test/org/apache/hadoop/hive/common/format/datetime/package-info.java
deleted file mode 100644
index 70ee426..0000000
--- a/common/src/test/org/apache/hadoop/hive/common/format/datetime/package-info.java
+++ /dev/null
@@ -1,22 +0,0 @@
-/*
- * 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.
- */
-
-/**
- * Tests formatting and parsing of datetime objects.
- */
-package org.apache.hadoop.hive.common.format.datetime;
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/mapjoin/VectorMapJoinInnerBigOnlyGenerateResultOperator.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/mapjoin/VectorMapJoinInnerBigOnlyGenerateResultOperator.java
index 35ddddd..ef6ad69 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/mapjoin/VectorMapJoinInnerBigOnlyGenerateResultOperator.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/mapjoin/VectorMapJoinInnerBigOnlyGenerateResultOperator.java
@@ -252,12 +252,16 @@ public abstract class VectorMapJoinInnerBigOnlyGenerateResultOperator
for (long l = 0; l < count; l++) {
- // Copy the BigTable values into the overflow batch. Since the overflow batch may
+ // Copy the values into the overflow batch. Since the overflow batch may
// not get flushed here, we must copy by value.
if (bigTableRetainedVectorCopy != null) {
bigTableRetainedVectorCopy.copyByValue(batch, batchIndex,
overflowBatch, overflowBatch.size);
}
+ if (nonOuterSmallTableKeyVectorCopy != null) {
+ nonOuterSmallTableKeyVectorCopy.copyByValue(batch, batchIndex,
+ overflowBatch, overflowBatch.size);
+ }
overflowBatch.size++;
if (overflowBatch.size == overflowBatch.DEFAULT_SIZE) {
diff --git a/ql/src/test/queries/clientpositive/hybridgrace_hashjoin_2.q b/ql/src/test/queries/clientpositive/hybridgrace_hashjoin_2.q
index d989ca7..6ed771b 100644
--- a/ql/src/test/queries/clientpositive/hybridgrace_hashjoin_2.q
+++ b/ql/src/test/queries/clientpositive/hybridgrace_hashjoin_2.q
@@ -4,8 +4,7 @@
set hive.mapred.mode=nonstrict;
set hive.explain.user=false;
-- Hybrid Grace Hash Join
--- Test n-way join
-SELECT 1;
+SELECT 'Test n-way join';
set hive.auto.convert.join=true;
set hive.auto.convert.join.noconditionaltask=true;
@@ -13,8 +12,7 @@ set hive.auto.convert.join.noconditionaltask.size=10000000;
set hive.cbo.enable=false;
--- 3-way mapjoin (1 big table, 2 small tables)
-SELECT 1;
+SELECT '3-way mapjoin (1 big table, 2 small tables)';
set hive.mapjoin.hybridgrace.hashtable=false;
@@ -34,13 +32,17 @@ SELECT COUNT(*)
FROM src1 x JOIN srcpart z ON (x.key = z.key)
JOIN src y ON (y.key = x.key);
+EXPLAIN ANALYZE SELECT COUNT(*)
+FROM src1 x JOIN srcpart z ON (x.key = z.key)
+JOIN srcpart w ON (x.key = w.key)
+JOIN src y ON (y.key = x.key);
+
SELECT COUNT(*)
FROM src1 x JOIN srcpart z ON (x.key = z.key)
JOIN src y ON (y.key = x.key);
--- 4-way mapjoin (1 big table, 3 small tables)
-SELECT 1;
+SELECT '4-way mapjoin (1 big table, 3 small tables)';
set hive.mapjoin.hybridgrace.hashtable=false;
@@ -50,7 +52,7 @@ FROM src1 x JOIN srcpart z ON (x.key = z.key)
JOIN srcpart w ON (x.key = w.key)
JOIN src y ON (y.key = x.key);
-SELECT COUNT(*)
+SELECT assert_true(5680 = COUNT(*))
FROM src1 x JOIN srcpart z ON (x.key = z.key)
JOIN srcpart w ON (x.key = w.key)
JOIN src y ON (y.key = x.key);
@@ -63,14 +65,13 @@ FROM src1 x JOIN srcpart z ON (x.key = z.key)
JOIN srcpart w ON (x.key = w.key)
JOIN src y ON (y.key = x.key);
-SELECT COUNT(*)
+SELECT assert_true(5680 = COUNT(*))
FROM src1 x JOIN srcpart z ON (x.key = z.key)
JOIN srcpart w ON (x.key = w.key)
JOIN src y ON (y.key = x.key);
--- 2 sets of 3-way mapjoin under 2 different tasks
-SELECT 1;
+SELECT '2 sets of 3-way mapjoin under 2 different tasks';
set hive.mapjoin.hybridgrace.hashtable=false;
@@ -111,8 +112,7 @@ FROM src1 x JOIN srcpart z ON (x.value = z.value)
JOIN src y ON (y.value = x.value);
--- A chain of 2 sets of 3-way mapjoin under the same task
-SELECT 1;
+SELECT 'A chain of 2 sets of 3-way mapjoin under the same task';
set hive.mapjoin.hybridgrace.hashtable=false;
diff --git a/ql/src/test/results/clientpositive/llap/correlationoptimizer4.q.out b/ql/src/test/results/clientpositive/llap/correlationoptimizer4.q.out
index 45a646c..71aaa10 100644
--- a/ql/src/test/results/clientpositive/llap/correlationoptimizer4.q.out
+++ b/ql/src/test/results/clientpositive/llap/correlationoptimizer4.q.out
@@ -721,7 +721,7 @@ POSTHOOK: Input: default@t1_n146
POSTHOOK: Input: default@t2_n86
POSTHOOK: Input: default@t3_n34
#### A masked pattern was here ####
-5 2
+13 10
PREHOOK: query: EXPLAIN VECTORIZATION
SELECT SUM(HASH(tmp.key)), SUM(HASH(tmp.cnt))
FROM (SELECT x.key AS key, count(1) AS cnt
diff --git a/ql/src/test/results/clientpositive/llap/hybridgrace_hashjoin_2.q.out b/ql/src/test/results/clientpositive/llap/hybridgrace_hashjoin_2.q.out
index 1ddc1ea..44c4568 100644
--- a/ql/src/test/results/clientpositive/llap/hybridgrace_hashjoin_2.q.out
+++ b/ql/src/test/results/clientpositive/llap/hybridgrace_hashjoin_2.q.out
@@ -1,21 +1,21 @@
-PREHOOK: query: SELECT 1
+PREHOOK: query: SELECT 'Test n-way join'
PREHOOK: type: QUERY
PREHOOK: Input: _dummy_database@_dummy_table
#### A masked pattern was here ####
-POSTHOOK: query: SELECT 1
+POSTHOOK: query: SELECT 'Test n-way join'
POSTHOOK: type: QUERY
POSTHOOK: Input: _dummy_database@_dummy_table
#### A masked pattern was here ####
-1
-PREHOOK: query: SELECT 1
+Test n-way join
+PREHOOK: query: SELECT '3-way mapjoin (1 big table, 2 small tables)'
PREHOOK: type: QUERY
PREHOOK: Input: _dummy_database@_dummy_table
#### A masked pattern was here ####
-POSTHOOK: query: SELECT 1
+POSTHOOK: query: SELECT '3-way mapjoin (1 big table, 2 small tables)'
POSTHOOK: type: QUERY
POSTHOOK: Input: _dummy_database@_dummy_table
#### A masked pattern was here ####
-1
+3-way mapjoin (1 big table, 2 small tables)
PREHOOK: query: EXPLAIN
SELECT COUNT(*)
FROM src1 x JOIN srcpart z ON (x.key = z.key)
@@ -309,6 +309,192 @@ STAGE PLANS:
PREHOOK: query: SELECT COUNT(*)
FROM src1 x JOIN srcpart z ON (x.key = z.key)
+JOIN srcpart w ON (x.key = w.key)
+JOIN src y ON (y.key = x.key)
+PREHOOK: type: QUERY
+PREHOOK: Input: default@src
+PREHOOK: Input: default@src1
+PREHOOK: Input: default@srcpart
+PREHOOK: Input: default@srcpart@ds=2008-04-08/hr=11
+PREHOOK: Input: default@srcpart@ds=2008-04-08/hr=12
+PREHOOK: Input: default@srcpart@ds=2008-04-09/hr=11
+PREHOOK: Input: default@srcpart@ds=2008-04-09/hr=12
+#### A masked pattern was here ####
+POSTHOOK: query: SELECT COUNT(*)
+FROM src1 x JOIN srcpart z ON (x.key = z.key)
+JOIN srcpart w ON (x.key = w.key)
+JOIN src y ON (y.key = x.key)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@src
+POSTHOOK: Input: default@src1
+POSTHOOK: Input: default@srcpart
+POSTHOOK: Input: default@srcpart@ds=2008-04-08/hr=11
+POSTHOOK: Input: default@srcpart@ds=2008-04-08/hr=12
+POSTHOOK: Input: default@srcpart@ds=2008-04-09/hr=11
+POSTHOOK: Input: default@srcpart@ds=2008-04-09/hr=12
+#### A masked pattern was here ####
+PREHOOK: query: EXPLAIN ANALYZE SELECT COUNT(*)
+FROM src1 x JOIN srcpart z ON (x.key = z.key)
+JOIN srcpart w ON (x.key = w.key)
+JOIN src y ON (y.key = x.key)
+PREHOOK: type: QUERY
+PREHOOK: Input: default@src
+PREHOOK: Input: default@src1
+PREHOOK: Input: default@srcpart
+PREHOOK: Input: default@srcpart@ds=2008-04-08/hr=11
+PREHOOK: Input: default@srcpart@ds=2008-04-08/hr=12
+PREHOOK: Input: default@srcpart@ds=2008-04-09/hr=11
+PREHOOK: Input: default@srcpart@ds=2008-04-09/hr=12
+#### A masked pattern was here ####
+POSTHOOK: query: EXPLAIN ANALYZE SELECT COUNT(*)
+FROM src1 x JOIN srcpart z ON (x.key = z.key)
+JOIN srcpart w ON (x.key = w.key)
+JOIN src y ON (y.key = x.key)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@src
+POSTHOOK: Input: default@src1
+POSTHOOK: Input: default@srcpart
+POSTHOOK: Input: default@srcpart@ds=2008-04-08/hr=11
+POSTHOOK: Input: default@srcpart@ds=2008-04-08/hr=12
+POSTHOOK: Input: default@srcpart@ds=2008-04-09/hr=11
+POSTHOOK: Input: default@srcpart@ds=2008-04-09/hr=12
+#### A masked pattern was here ####
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-0 depends on stages: Stage-1
+
+STAGE PLANS:
+ Stage: Stage-1
+ Tez
+#### A masked pattern was here ####
+ Edges:
+ Map 2 <- Map 1 (BROADCAST_EDGE)
+ Map 3 <- Map 2 (BROADCAST_EDGE), Map 5 (BROADCAST_EDGE)
+ Reducer 4 <- Map 3 (CUSTOM_SIMPLE_EDGE)
+#### A masked pattern was here ####
+ Vertices:
+ Map 1
+ Map Operator Tree:
+ TableScan
+ alias: x
+ filterExpr: key is not null (type: boolean)
+ Statistics: Num rows: 25/25 Data size: 2150 Basic stats: COMPLETE Column stats: COMPLETE
+ Filter Operator
+ predicate: key is not null (type: boolean)
+ Statistics: Num rows: 25/25 Data size: 2150 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ key expressions: key (type: string)
+ sort order: +
+ Map-reduce partition columns: key (type: string)
+ Statistics: Num rows: 25/25 Data size: 2150 Basic stats: COMPLETE Column stats: COMPLETE
+ Execution mode: vectorized, llap
+ LLAP IO: no inputs
+ Map 2
+ Map Operator Tree:
+ TableScan
+ alias: z
+ filterExpr: key is not null (type: boolean)
+ Statistics: Num rows: 2000/2000 Data size: 174000 Basic stats: COMPLETE Column stats: COMPLETE
+ Filter Operator
+ predicate: key is not null (type: boolean)
+ Statistics: Num rows: 2000/2000 Data size: 174000 Basic stats: COMPLETE Column stats: COMPLETE
+ Map Join Operator
+ condition map:
+ Inner Join 0 to 1
+ keys:
+ 0 key (type: string)
+ 1 key (type: string)
+ outputColumnNames: _col0
+ input vertices:
+ 0 Map 1
+ Statistics: Num rows: 158/148 Data size: 13588 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ key expressions: _col0 (type: string)
+ sort order: +
+ Map-reduce partition columns: _col0 (type: string)
+ Statistics: Num rows: 158/148 Data size: 13588 Basic stats: COMPLETE Column stats: COMPLETE
+ Execution mode: vectorized, llap
+ LLAP IO: no inputs
+ Map 3
+ Map Operator Tree:
+ TableScan
+ alias: w
+ filterExpr: key is not null (type: boolean)
+ Statistics: Num rows: 2000/2000 Data size: 174000 Basic stats: COMPLETE Column stats: COMPLETE
+ Filter Operator
+ predicate: key is not null (type: boolean)
+ Statistics: Num rows: 2000/2000 Data size: 174000 Basic stats: COMPLETE Column stats: COMPLETE
+ Map Join Operator
+ condition map:
+ Inner Join 0 to 1
+ keys:
+ 0 _col0 (type: string)
+ 1 key (type: string)
+ outputColumnNames: _col0
+ input vertices:
+ 0 Map 2
+ Statistics: Num rows: 1000/1712 Data size: 86000 Basic stats: COMPLETE Column stats: COMPLETE
+ Map Join Operator
+ condition map:
+ Inner Join 0 to 1
+ keys:
+ 0 _col0 (type: string)
+ 1 key (type: string)
+ input vertices:
+ 1 Map 5
+ Statistics: Num rows: 1582/5680 Data size: 12656 Basic stats: COMPLETE Column stats: COMPLETE
+ Group By Operator
+ aggregations: count()
+ minReductionHashAggr: 0.99
+ mode: hash
+ outputColumnNames: _col0
+ Statistics: Num rows: 1/1 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ sort order:
+ Statistics: Num rows: 1/1 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE
+ value expressions: _col0 (type: bigint)
+ Execution mode: vectorized, llap
+ LLAP IO: no inputs
+ Map 5
+ Map Operator Tree:
+ TableScan
+ alias: y
+ filterExpr: key is not null (type: boolean)
+ Statistics: Num rows: 500/500 Data size: 43500 Basic stats: COMPLETE Column stats: COMPLETE
+ Filter Operator
+ predicate: key is not null (type: boolean)
+ Statistics: Num rows: 500/500 Data size: 43500 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ key expressions: key (type: string)
+ sort order: +
+ Map-reduce partition columns: key (type: string)
+ Statistics: Num rows: 500/500 Data size: 43500 Basic stats: COMPLETE Column stats: COMPLETE
+ Execution mode: vectorized, llap
+ LLAP IO: no inputs
+ Reducer 4
+ Execution mode: vectorized, llap
+ Reduce Operator Tree:
+ Group By Operator
+ aggregations: count(VALUE._col0)
+ mode: mergepartial
+ outputColumnNames: _col0
+ Statistics: Num rows: 1/1 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 1/1 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: SELECT COUNT(*)
+FROM src1 x JOIN srcpart z ON (x.key = z.key)
JOIN src y ON (y.key = x.key)
PREHOOK: type: QUERY
PREHOOK: Input: default@src
@@ -332,15 +518,15 @@ POSTHOOK: Input: default@srcpart@ds=2008-04-09/hr=11
POSTHOOK: Input: default@srcpart@ds=2008-04-09/hr=12
#### A masked pattern was here ####
428
-PREHOOK: query: SELECT 1
+PREHOOK: query: SELECT '4-way mapjoin (1 big table, 3 small tables)'
PREHOOK: type: QUERY
PREHOOK: Input: _dummy_database@_dummy_table
#### A masked pattern was here ####
-POSTHOOK: query: SELECT 1
+POSTHOOK: query: SELECT '4-way mapjoin (1 big table, 3 small tables)'
POSTHOOK: type: QUERY
POSTHOOK: Input: _dummy_database@_dummy_table
#### A masked pattern was here ####
-1
+4-way mapjoin (1 big table, 3 small tables)
PREHOOK: query: EXPLAIN
SELECT COUNT(*)
FROM src1 x JOIN srcpart z ON (x.key = z.key)
@@ -503,7 +689,7 @@ STAGE PLANS:
Processor Tree:
ListSink
-PREHOOK: query: SELECT COUNT(*)
+PREHOOK: query: SELECT assert_true(5680 = COUNT(*))
FROM src1 x JOIN srcpart z ON (x.key = z.key)
JOIN srcpart w ON (x.key = w.key)
JOIN src y ON (y.key = x.key)
@@ -516,7 +702,7 @@ PREHOOK: Input: default@srcpart@ds=2008-04-08/hr=12
PREHOOK: Input: default@srcpart@ds=2008-04-09/hr=11
PREHOOK: Input: default@srcpart@ds=2008-04-09/hr=12
#### A masked pattern was here ####
-POSTHOOK: query: SELECT COUNT(*)
+POSTHOOK: query: SELECT assert_true(5680 = COUNT(*))
FROM src1 x JOIN srcpart z ON (x.key = z.key)
JOIN srcpart w ON (x.key = w.key)
JOIN src y ON (y.key = x.key)
@@ -529,7 +715,7 @@ POSTHOOK: Input: default@srcpart@ds=2008-04-08/hr=12
POSTHOOK: Input: default@srcpart@ds=2008-04-09/hr=11
POSTHOOK: Input: default@srcpart@ds=2008-04-09/hr=12
#### A masked pattern was here ####
-0
+NULL
PREHOOK: query: EXPLAIN
SELECT COUNT(*)
FROM src1 x JOIN srcpart z ON (x.key = z.key)
@@ -692,7 +878,7 @@ STAGE PLANS:
Processor Tree:
ListSink
-PREHOOK: query: SELECT COUNT(*)
+PREHOOK: query: SELECT assert_true(5680 = COUNT(*))
FROM src1 x JOIN srcpart z ON (x.key = z.key)
JOIN srcpart w ON (x.key = w.key)
JOIN src y ON (y.key = x.key)
@@ -705,7 +891,7 @@ PREHOOK: Input: default@srcpart@ds=2008-04-08/hr=12
PREHOOK: Input: default@srcpart@ds=2008-04-09/hr=11
PREHOOK: Input: default@srcpart@ds=2008-04-09/hr=12
#### A masked pattern was here ####
-POSTHOOK: query: SELECT COUNT(*)
+POSTHOOK: query: SELECT assert_true(5680 = COUNT(*))
FROM src1 x JOIN srcpart z ON (x.key = z.key)
JOIN srcpart w ON (x.key = w.key)
JOIN src y ON (y.key = x.key)
@@ -718,16 +904,16 @@ POSTHOOK: Input: default@srcpart@ds=2008-04-08/hr=12
POSTHOOK: Input: default@srcpart@ds=2008-04-09/hr=11
POSTHOOK: Input: default@srcpart@ds=2008-04-09/hr=12
#### A masked pattern was here ####
-0
-PREHOOK: query: SELECT 1
+NULL
+PREHOOK: query: SELECT '2 sets of 3-way mapjoin under 2 different tasks'
PREHOOK: type: QUERY
PREHOOK: Input: _dummy_database@_dummy_table
#### A masked pattern was here ####
-POSTHOOK: query: SELECT 1
+POSTHOOK: query: SELECT '2 sets of 3-way mapjoin under 2 different tasks'
POSTHOOK: type: QUERY
POSTHOOK: Input: _dummy_database@_dummy_table
#### A masked pattern was here ####
-1
+2 sets of 3-way mapjoin under 2 different tasks
PREHOOK: query: EXPLAIN
SELECT COUNT(*)
FROM src1 x JOIN srcpart z ON (x.key = z.key)
@@ -1308,15 +1494,15 @@ POSTHOOK: Input: default@srcpart@ds=2008-04-09/hr=12
#### A masked pattern was here ####
452
428
-PREHOOK: query: SELECT 1
+PREHOOK: query: SELECT 'A chain of 2 sets of 3-way mapjoin under the same task'
PREHOOK: type: QUERY
PREHOOK: Input: _dummy_database@_dummy_table
#### A masked pattern was here ####
-POSTHOOK: query: SELECT 1
+POSTHOOK: query: SELECT 'A chain of 2 sets of 3-way mapjoin under the same task'
POSTHOOK: type: QUERY
POSTHOOK: Input: _dummy_database@_dummy_table
#### A masked pattern was here ####
-1
+A chain of 2 sets of 3-way mapjoin under the same task
PREHOOK: query: EXPLAIN
SELECT COUNT(*)
FROM src1 x
diff --git a/ql/src/test/results/clientpositive/spark/auto_join14.q.out b/ql/src/test/results/clientpositive/spark/auto_join14.q.out
index 0c80c13..64ddc35 100644
--- a/ql/src/test/results/clientpositive/spark/auto_join14.q.out
+++ b/ql/src/test/results/clientpositive/spark/auto_join14.q.out
@@ -139,4 +139,4 @@ POSTHOOK: query: SELECT sum(hash(dest1_n83.c1,dest1_n83.c2)) FROM dest1_n83
POSTHOOK: type: QUERY
POSTHOOK: Input: default@dest1_n83
#### A masked pattern was here ####
-404540072956
+404554174174
diff --git a/ql/src/test/results/clientpositive/spark/bucket_map_join_tez1.q.out b/ql/src/test/results/clientpositive/spark/bucket_map_join_tez1.q.out
index 4ee669f..e026131 100644
--- a/ql/src/test/results/clientpositive/spark/bucket_map_join_tez1.q.out
+++ b/ql/src/test/results/clientpositive/spark/bucket_map_join_tez1.q.out
@@ -5146,404 +5146,120 @@ POSTHOOK: Input: default@tab_part_n9@ds=2008-04-08
0 val_0 val_0
0 val_0 val_0
0 val_0 val_0
-0 val_103 val_103
-0 val_103 val_103
-0 val_103 val_103
-0 val_103 val_103
-0 val_118 val_118
-0 val_118 val_118
-0 val_118 val_118
-0 val_118 val_118
-0 val_125 val_125
-0 val_125 val_125
-0 val_125 val_125
-0 val_125 val_125
-0 val_129 val_129
-0 val_129 val_129
-0 val_129 val_129
-0 val_129 val_129
-0 val_134 val_134
-0 val_134 val_134
-0 val_134 val_134
-0 val_134 val_134
-0 val_138 val_138
-0 val_138 val_138
-0 val_138 val_138
-0 val_138 val_138
-0 val_138 val_138
-0 val_138 val_138
-0 val_138 val_138
-0 val_138 val_138
-0 val_138 val_138
-0 val_138 val_138
-0 val_138 val_138
-0 val_138 val_138
-0 val_138 val_138
-0 val_138 val_138
-0 val_138 val_138
-0 val_138 val_138
-0 val_149 val_149
-0 val_149 val_149
-0 val_149 val_149
-0 val_149 val_149
-0 val_15 val_15
-0 val_15 val_15
-0 val_15 val_15
-0 val_15 val_15
-0 val_152 val_152
-0 val_152 val_152
-0 val_152 val_152
-0 val_152 val_152
-0 val_165 val_165
-0 val_165 val_165
-0 val_165 val_165
-0 val_165 val_165
-0 val_167 val_167
-0 val_167 val_167
-0 val_167 val_167
-0 val_167 val_167
-0 val_167 val_167
-0 val_167 val_167
-0 val_167 val_167
-0 val_167 val_167
-0 val_167 val_167
-0 val_169 val_169
-0 val_169 val_169
-0 val_169 val_169
-0 val_169 val_169
-0 val_169 val_169
-0 val_169 val_169
-0 val_169 val_169
-0 val_169 val_169
-0 val_169 val_169
-0 val_169 val_169
-0 val_169 val_169
-0 val_169 val_169
-0 val_169 val_169
-0 val_169 val_169
-0 val_169 val_169
-0 val_169 val_169
-0 val_172 val_172
-0 val_172 val_172
-0 val_172 val_172
-0 val_172 val_172
-0 val_174 val_174
-0 val_174 val_174
-0 val_174 val_174
-0 val_174 val_174
-0 val_176 val_176
-0 val_176 val_176
-0 val_176 val_176
-0 val_176 val_176
-0 val_187 val_187
-0 val_187 val_187
-0 val_187 val_187
-0 val_187 val_187
-0 val_187 val_187
-0 val_187 val_187
-0 val_187 val_187
-0 val_187 val_187
-0 val_187 val_187
-0 val_200 val_200
-0 val_200 val_200
-0 val_200 val_200
-0 val_200 val_200
-0 val_208 val_208
-0 val_208 val_208
-0 val_208 val_208
-0 val_208 val_208
-0 val_208 val_208
-0 val_208 val_208
-0 val_208 val_208
-0 val_208 val_208
-0 val_208 val_208
-0 val_213 val_213
-0 val_213 val_213
-0 val_213 val_213
-0 val_213 val_213
-0 val_217 val_217
-0 val_217 val_217
-0 val_217 val_217
-0 val_217 val_217
-0 val_219 val_219
-0 val_219 val_219
-0 val_219 val_219
-0 val_219 val_219
-0 val_224 val_224
-0 val_224 val_224
-0 val_224 val_224
-0 val_224 val_224
-0 val_233 val_233
-0 val_233 val_233
-0 val_233 val_233
-0 val_233 val_233
-0 val_237 val_237
-0 val_237 val_237
-0 val_237 val_237
-0 val_237 val_237
-0 val_239 val_239
-0 val_239 val_239
-0 val_239 val_239
-0 val_239 val_239
-0 val_24 val_24
-0 val_24 val_24
-0 val_24 val_24
-0 val_24 val_24
-0 val_242 val_242
-0 val_242 val_242
-0 val_242 val_242
-0 val_242 val_242
-0 val_255 val_255
-0 val_255 val_255
-0 val_255 val_255
-0 val_255 val_255
-0 val_26 val_26
-0 val_26 val_26
-0 val_26 val_26
-0 val_26 val_26
-0 val_273 val_273
-0 val_273 val_273
-0 val_273 val_273
-0 val_273 val_273
-0 val_273 val_273
-0 val_273 val_273
-0 val_273 val_273
-0 val_273 val_273
-0 val_273 val_273
-0 val_277 val_277
-0 val_277 val_277
-0 val_277 val_277
-0 val_277 val_277
-0 val_277 val_277
-0 val_277 val_277
-0 val_277 val_277
-0 val_277 val_277
-0 val_277 val_277
-0 val_277 val_277
-0 val_277 val_277
-0 val_277 val_277
-0 val_277 val_277
-0 val_277 val_277
-0 val_277 val_277
-0 val_277 val_277
-0 val_280 val_280
-0 val_280 val_280
-0 val_280 val_280
-0 val_280 val_280
-0 val_282 val_282
-0 val_282 val_282
-0 val_282 val_282
-0 val_282 val_282
-0 val_288 val_288
-0 val_288 val_288
-0 val_288 val_288
-0 val_288 val_288
-0 val_307 val_307
-0 val_307 val_307
-0 val_307 val_307
-0 val_307 val_307
-0 val_309 val_309
-0 val_309 val_309
-0 val_309 val_309
-0 val_309 val_309
-0 val_316 val_316
-0 val_316 val_316
-0 val_316 val_316
-0 val_316 val_316
-0 val_316 val_316
-0 val_316 val_316
-0 val_316 val_316
-0 val_316 val_316
-0 val_316 val_316
-0 val_318 val_318
-0 val_318 val_318
-0 val_318 val_318
-0 val_318 val_318
-0 val_318 val_318
-0 val_318 val_318
-0 val_318 val_318
-0 val_318 val_318
-0 val_318 val_318
-0 val_321 val_321
-0 val_321 val_321
-0 val_321 val_321
-0 val_321 val_321
-0 val_325 val_325
-0 val_325 val_325
-0 val_325 val_325
-0 val_325 val_325
-0 val_327 val_327
-0 val_327 val_327
-0 val_327 val_327
-0 val_327 val_327
-0 val_327 val_327
-0 val_327 val_327
-0 val_327 val_327
-0 val_327 val_327
-0 val_327 val_327
-0 val_35 val_35
-0 val_35 val_35
-0 val_35 val_35
-0 val_35 val_35
-0 val_35 val_35
-0 val_35 val_35
-0 val_35 val_35
-0 val_35 val_35
-0 val_35 val_35
-0 val_367 val_367
-0 val_367 val_367
-0 val_367 val_367
-0 val_367 val_367
-0 val_369 val_369
-0 val_369 val_369
-0 val_369 val_369
-0 val_369 val_369
-0 val_369 val_369
-0 val_369 val_369
-0 val_369 val_369
-0 val_369 val_369
-0 val_369 val_369
-0 val_37 val_37
-0 val_37 val_37
-0 val_37 val_37
-0 val_37 val_37
-0 val_396 val_396
-0 val_396 val_396
-0 val_396 val_396
-0 val_396 val_396
-0 val_396 val_396
-0 val_396 val_396
-0 val_396 val_396
-0 val_396 val_396
-0 val_396 val_396
-0 val_404 val_404
-0 val_404 val_404
-0 val_404 val_404
-0 val_404 val_404
-0 val_406 val_406
-0 val_406 val_406
-0 val_406 val_406
-0 val_406 val_406
-0 val_406 val_406
-0 val_406 val_406
-0 val_406 val_406
-0 val_406 val_406
-0 val_406 val_406
-0 val_406 val_406
-0 val_406 val_406
-0 val_406 val_406
-0 val_406 val_406
-0 val_406 val_406
-0 val_406 val_406
-0 val_406 val_406
-0 val_413 val_413
-0 val_413 val_413
-0 val_413 val_413
-0 val_413 val_413
-0 val_417 val_417
-0 val_417 val_417
-0 val_417 val_417
-0 val_417 val_417
-0 val_417 val_417
-0 val_417 val_417
-0 val_417 val_417
-0 val_417 val_417
-0 val_417 val_417
-0 val_42 val_42
-0 val_42 val_42
-0 val_42 val_42
-0 val_42 val_42
-0 val_424 val_424
-0 val_424 val_424
-0 val_424 val_424
-0 val_424 val_424
-0 val_431 val_431
-0 val_431 val_431
-0 val_431 val_431
-0 val_431 val_431
-0 val_431 val_431
-0 val_431 val_431
-0 val_431 val_431
-0 val_431 val_431
-0 val_431 val_431
-0 val_439 val_439
-0 val_439 val_439
-0 val_439 val_439
-0 val_439 val_439
-0 val_459 val_459
-0 val_459 val_459
-0 val_459 val_459
-0 val_459 val_459
-0 val_462 val_462
-0 val_462 val_462
-0 val_462 val_462
-0 val_462 val_462
-0 val_466 val_466
-0 val_466 val_466
-0 val_466 val_466
-0 val_466 val_466
-0 val_466 val_466
-0 val_466 val_466
-0 val_466 val_466
-0 val_466 val_466
-0 val_466 val_466
-0 val_468 val_468
-0 val_468 val_468
-0 val_468 val_468
-0 val_468 val_468
-0 val_468 val_468
-0 val_468 val_468
-0 val_468 val_468
-0 val_468 val_468
-0 val_468 val_468
-0 val_468 val_468
-0 val_468 val_468
-0 val_468 val_468
-0 val_468 val_468
-0 val_468 val_468
-0 val_468 val_468
-0 val_468 val_468
-0 val_480 val_480
-0 val_480 val_480
-0 val_480 val_480
-0 val_480 val_480
-0 val_480 val_480
-0 val_480 val_480
-0 val_480 val_480
-0 val_480 val_480
-0 val_480 val_480
-0 val_51 val_51
-0 val_51 val_51
-0 val_51 val_51
-0 val_51 val_51
-0 val_84 val_84
-0 val_84 val_84
-0 val_84 val_84
-0 val_84 val_84
-0 val_95 val_95
-0 val_95 val_95
-0 val_95 val_95
-0 val_95 val_95
-0 val_97 val_97
-0 val_97 val_97
-0 val_97 val_97
-0 val_97 val_97
+103 val_103 val_103
+103 val_103 val_103
+103 val_103 val_103
+103 val_103 val_103
105 val_105 val_105
11 val_11 val_11
114 val_114 val_114
116 val_116 val_116
+118 val_118 val_118
+118 val_118 val_118
+118 val_118 val_118
+118 val_118 val_118
+125 val_125 val_125
+125 val_125 val_125
+125 val_125 val_125
+125 val_125 val_125
+129 val_129 val_129
+129 val_129 val_129
+129 val_129 val_129
+129 val_129 val_129
+134 val_134 val_134
+134 val_134 val_134
+134 val_134 val_134
+134 val_134 val_134
136 val_136 val_136
+138 val_138 val_138
+138 val_138 val_138
+138 val_138 val_138
+138 val_138 val_138
+138 val_138 val_138
+138 val_138 val_138
+138 val_138 val_138
+138 val_138 val_138
+138 val_138 val_138
+138 val_138 val_138
+138 val_138 val_138
+138 val_138 val_138
+138 val_138 val_138
+138 val_138 val_138
+138 val_138 val_138
+138 val_138 val_138
143 val_143 val_143
145 val_145 val_145
+149 val_149 val_149
+149 val_149 val_149
+149 val_149 val_149
+149 val_149 val_149
+15 val_15 val_15
+15 val_15 val_15
+15 val_15 val_15
+15 val_15 val_15
150 val_150 val_150
+152 val_152 val_152
+152 val_152 val_152
+152 val_152 val_152
+152 val_152 val_152
156 val_156 val_156
158 val_158 val_158
163 val_163 val_163
+165 val_165 val_165
+165 val_165 val_165
+165 val_165 val_165
+165 val_165 val_165
+167 val_167 val_167
+167 val_167 val_167
+167 val_167 val_167
+167 val_167 val_167
+167 val_167 val_167
+167 val_167 val_167
+167 val_167 val_167
+167 val_167 val_167
+167 val_167 val_167
+169 val_169 val_169
+169 val_169 val_169
+169 val_169 val_169
+169 val_169 val_169
+169 val_169 val_169
+169 val_169 val_169
+169 val_169 val_169
+169 val_169 val_169
+169 val_169 val_169
+169 val_169 val_169
+169 val_169 val_169
+169 val_169 val_169
+169 val_169 val_169
+169 val_169 val_169
+169 val_169 val_169
+169 val_169 val_169
17 val_17 val_17
170 val_170 val_170
+172 val_172 val_172
+172 val_172 val_172
+172 val_172 val_172
+172 val_172 val_172
+174 val_174 val_174
+174 val_174 val_174
+174 val_174 val_174
+174 val_174 val_174
+176 val_176 val_176
+176 val_176 val_176
+176 val_176 val_176
+176 val_176 val_176
178 val_178 val_178
181 val_181 val_181
183 val_183 val_183
+187 val_187 val_187
+187 val_187 val_187
+187 val_187 val_187
+187 val_187 val_187
+187 val_187 val_187
+187 val_187 val_187
+187 val_187 val_187
+187 val_187 val_187
+187 val_187 val_187
189 val_189 val_189
19 val_19 val_19
190 val_190 val_190
@@ -5552,45 +5268,271 @@ POSTHOOK: Input: default@tab_part_n9@ds=2008-04-08
196 val_196 val_196
2 val_2 val_2
20 val_20 val_20
+200 val_200 val_200
+200 val_200 val_200
+200 val_200 val_200
+200 val_200 val_200
202 val_202 val_202
+208 val_208 val_208
+208 val_208 val_208
+208 val_208 val_208
+208 val_208 val_208
+208 val_208 val_208
+208 val_208 val_208
+208 val_208 val_208
+208 val_208 val_208
+208 val_208 val_208
+213 val_213 val_213
+213 val_213 val_213
+213 val_213 val_213
+213 val_213 val_213
+217 val_217 val_217
+217 val_217 val_217
+217 val_217 val_217
+217 val_217 val_217
+219 val_219 val_219
+219 val_219 val_219
+219 val_219 val_219
+219 val_219 val_219
222 val_222 val_222
+224 val_224 val_224
+224 val_224 val_224
+224 val_224 val_224
+224 val_224 val_224
226 val_226 val_226
228 val_228 val_228
+233 val_233 val_233
+233 val_233 val_233
+233 val_233 val_233
+233 val_233 val_233
235 val_235 val_235
+237 val_237 val_237
+237 val_237 val_237
+237 val_237 val_237
+237 val_237 val_237
+239 val_239 val_239
+239 val_239 val_239
+239 val_239 val_239
+239 val_239 val_239
+24 val_24 val_24
+24 val_24 val_24
+24 val_24 val_24
+24 val_24 val_24
+242 val_242 val_242
+242 val_242 val_242
+242 val_242 val_242
+242 val_242 val_242
244 val_244 val_244
248 val_248 val_248
+255 val_255 val_255
+255 val_255 val_255
+255 val_255 val_255
+255 val_255 val_255
257 val_257 val_257
+26 val_26 val_26
+26 val_26 val_26
+26 val_26 val_26
+26 val_26 val_26
260 val_260 val_260
262 val_262 val_262
266 val_266 val_266
+273 val_273 val_273
+273 val_273 val_273
+273 val_273 val_273
+273 val_273 val_273
+273 val_273 val_273
+273 val_273 val_273
+273 val_273 val_273
+273 val_273 val_273
+273 val_273 val_273
275 val_275 val_275
+277 val_277 val_277
+277 val_277 val_277
+277 val_277 val_277
+277 val_277 val_277
+277 val_277 val_277
+277 val_277 val_277
+277 val_277 val_277
+277 val_277 val_277
+277 val_277 val_277
+277 val_277 val_277
+277 val_277 val_277
+277 val_277 val_277
+277 val_277 val_277
+277 val_277 val_277
+277 val_277 val_277
+277 val_277 val_277
28 val_28 val_28
+280 val_280 val_280
+280 val_280 val_280
+280 val_280 val_280
+280 val_280 val_280
+282 val_282 val_282
+282 val_282 val_282
+282 val_282 val_282
+282 val_282 val_282
284 val_284 val_284
286 val_286 val_286
+288 val_288 val_288
+288 val_288 val_288
+288 val_288 val_288
+288 val_288 val_288
291 val_291 val_291
305 val_305 val_305
+307 val_307 val_307
+307 val_307 val_307
+307 val_307 val_307
+307 val_307 val_307
+309 val_309 val_309
+309 val_309 val_309
+309 val_309 val_309
+309 val_309 val_309
310 val_310 val_310
+316 val_316 val_316
+316 val_316 val_316
+316 val_316 val_316
+316 val_316 val_316
+316 val_316 val_316
+316 val_316 val_316
+316 val_316 val_316
+316 val_316 val_316
+316 val_316 val_316
+318 val_318 val_318
+318 val_318 val_318
+318 val_318 val_318
+318 val_318 val_318
+318 val_318 val_318
+318 val_318 val_318
+318 val_318 val_318
+318 val_318 val_318
+318 val_318 val_318
+321 val_321 val_321
+321 val_321 val_321
+321 val_321 val_321
+321 val_321 val_321
323 val_323 val_323
+325 val_325 val_325
+325 val_325 val_325
+325 val_325 val_325
+325 val_325 val_325
+327 val_327 val_327
+327 val_327 val_327
+327 val_327 val_327
+327 val_327 val_327
+327 val_327 val_327
+327 val_327 val_327
+327 val_327 val_327
+327 val_327 val_327
+327 val_327 val_327
33 val_33 val_33
332 val_332 val_332
336 val_336 val_336
338 val_338 val_338
341 val_341 val_341
345 val_345 val_345
+35 val_35 val_35
+35 val_35 val_35
+35 val_35 val_35
+35 val_35 val_35
+35 val_35 val_35
+35 val_35 val_35
+35 val_35 val_35
+35 val_35 val_35
+35 val_35 val_35
356 val_356 val_356
365 val_365 val_365
+367 val_367 val_367
+367 val_367 val_367
+367 val_367 val_367
+367 val_367 val_367
+369 val_369 val_369
+369 val_369 val_369
+369 val_369 val_369
+369 val_369 val_369
+369 val_369 val_369
+369 val_369 val_369
+369 val_369 val_369
+369 val_369 val_369
+369 val_369 val_369
+37 val_37 val_37
+37 val_37 val_37
+37 val_37 val_37
+37 val_37 val_37
374 val_374 val_374
378 val_378 val_378
389 val_389 val_389
392 val_392 val_392
394 val_394 val_394
+396 val_396 val_396
+396 val_396 val_396
+396 val_396 val_396
+396 val_396 val_396
+396 val_396 val_396
+396 val_396 val_396
+396 val_396 val_396
+396 val_396 val_396
+396 val_396 val_396
4 val_4 val_4
400 val_400 val_400
402 val_402 val_402
+404 val_404 val_404
+404 val_404 val_404
+404 val_404 val_404
+404 val_404 val_404
+406 val_406 val_406
+406 val_406 val_406
+406 val_406 val_406
+406 val_406 val_406
+406 val_406 val_406
+406 val_406 val_406
+406 val_406 val_406
+406 val_406 val_406
+406 val_406 val_406
+406 val_406 val_406
+406 val_406 val_406
+406 val_406 val_406
+406 val_406 val_406
+406 val_406 val_406
+406 val_406 val_406
+406 val_406 val_406
411 val_411 val_411
+413 val_413 val_413
+413 val_413 val_413
+413 val_413 val_413
+413 val_413 val_413
+417 val_417 val_417
+417 val_417 val_417
+417 val_417 val_417
+417 val_417 val_417
+417 val_417 val_417
+417 val_417 val_417
+417 val_417 val_417
+417 val_417 val_417
+417 val_417 val_417
419 val_419 val_419
+42 val_42 val_42
+42 val_42 val_42
+42 val_42 val_42
+42 val_42 val_42
+424 val_424 val_424
+424 val_424 val_424
+424 val_424 val_424
+424 val_424 val_424
+431 val_431 val_431
+431 val_431 val_431
+431 val_431 val_431
+431 val_431 val_431
+431 val_431 val_431
+431 val_431 val_431
+431 val_431 val_431
+431 val_431 val_431
+431 val_431 val_431
435 val_435 val_435
437 val_437 val_437
+439 val_439 val_439
+439 val_439 val_439
+439 val_439 val_439
+439 val_439 val_439
44 val_44 val_44
444 val_444 val_444
446 val_446 val_446
@@ -5598,16 +5540,62 @@ POSTHOOK: Input: default@tab_part_n9@ds=2008-04-08
453 val_453 val_453
455 val_455 val_455
457 val_457 val_457
+459 val_459 val_459
+459 val_459 val_459
+459 val_459 val_459
+459 val_459 val_459
460 val_460 val_460
+462 val_462 val_462
+462 val_462 val_462
+462 val_462 val_462
+462 val_462 val_462
+466 val_466 val_466
+466 val_466 val_466
+466 val_466 val_466
+466 val_466 val_466
+466 val_466 val_466
+466 val_466 val_466
+466 val_466 val_466
+466 val_466 val_466
+466 val_466 val_466
+468 val_468 val_468
+468 val_468 val_468
+468 val_468 val_468
+468 val_468 val_468
+468 val_468 val_468
+468 val_468 val_468
+468 val_468 val_468
+468 val_468 val_468
+468 val_468 val_468
+468 val_468 val_468
+468 val_468 val_468
+468 val_468 val_468
+468 val_468 val_468
+468 val_468 val_468
+468 val_468 val_468
+468 val_468 val_468
475 val_475 val_475
477 val_477 val_477
479 val_479 val_479
+480 val_480 val_480
+480 val_480 val_480
+480 val_480 val_480
+480 val_480 val_480
+480 val_480 val_480
+480 val_480 val_480
+480 val_480 val_480
+480 val_480 val_480
+480 val_480 val_480
482 val_482 val_482
484 val_484 val_484
491 val_491 val_491
493 val_493 val_493
495 val_495 val_495
497 val_497 val_497
+51 val_51 val_51
+51 val_51 val_51
+51 val_51 val_51
+51 val_51 val_51
53 val_53 val_53
57 val_57 val_57
64 val_64 val_64
@@ -5616,7 +5604,19 @@ POSTHOOK: Input: default@tab_part_n9@ds=2008-04-08
8 val_8 val_8
80 val_80 val_80
82 val_82 val_82
+84 val_84 val_84
+84 val_84 val_84
+84 val_84 val_84
+84 val_84 val_84
86 val_86 val_86
+95 val_95 val_95
+95 val_95 val_95
+95 val_95 val_95
+95 val_95 val_95
+97 val_97 val_97
+97 val_97 val_97
+97 val_97 val_97
+97 val_97 val_97
PREHOOK: query: explain select a.key, a.value, b.value
from tab_n8 a join tab_part_n9 b on a.key = b.key and a.value = b.value
PREHOOK: type: QUERY
@@ -5739,404 +5739,120 @@ POSTHOOK: Input: default@tab_part_n9@ds=2008-04-08
0 val_0 val_0
0 val_0 val_0
0 val_0 val_0
-0 val_103 val_103
-0 val_103 val_103
-0 val_103 val_103
-0 val_103 val_103
-0 val_118 val_118
-0 val_118 val_118
-0 val_118 val_118
-0 val_118 val_118
-0 val_125 val_125
-0 val_125 val_125
-0 val_125 val_125
-0 val_125 val_125
-0 val_129 val_129
-0 val_129 val_129
-0 val_129 val_129
-0 val_129 val_129
-0 val_134 val_134
-0 val_134 val_134
-0 val_134 val_134
-0 val_134 val_134
-0 val_138 val_138
-0 val_138 val_138
-0 val_138 val_138
-0 val_138 val_138
-0 val_138 val_138
-0 val_138 val_138
-0 val_138 val_138
-0 val_138 val_138
-0 val_138 val_138
-0 val_138 val_138
-0 val_138 val_138
-0 val_138 val_138
-0 val_138 val_138
-0 val_138 val_138
-0 val_138 val_138
-0 val_138 val_138
-0 val_149 val_149
-0 val_149 val_149
-0 val_149 val_149
-0 val_149 val_149
-0 val_15 val_15
-0 val_15 val_15
-0 val_15 val_15
-0 val_15 val_15
-0 val_152 val_152
-0 val_152 val_152
-0 val_152 val_152
-0 val_152 val_152
-0 val_165 val_165
-0 val_165 val_165
-0 val_165 val_165
-0 val_165 val_165
-0 val_167 val_167
-0 val_167 val_167
-0 val_167 val_167
-0 val_167 val_167
-0 val_167 val_167
-0 val_167 val_167
-0 val_167 val_167
-0 val_167 val_167
-0 val_167 val_167
-0 val_169 val_169
-0 val_169 val_169
-0 val_169 val_169
-0 val_169 val_169
-0 val_169 val_169
-0 val_169 val_169
-0 val_169 val_169
-0 val_169 val_169
-0 val_169 val_169
-0 val_169 val_169
-0 val_169 val_169
-0 val_169 val_169
-0 val_169 val_169
-0 val_169 val_169
-0 val_169 val_169
-0 val_169 val_169
-0 val_172 val_172
-0 val_172 val_172
-0 val_172 val_172
-0 val_172 val_172
-0 val_174 val_174
-0 val_174 val_174
-0 val_174 val_174
-0 val_174 val_174
-0 val_176 val_176
-0 val_176 val_176
-0 val_176 val_176
-0 val_176 val_176
-0 val_187 val_187
-0 val_187 val_187
-0 val_187 val_187
-0 val_187 val_187
-0 val_187 val_187
-0 val_187 val_187
-0 val_187 val_187
-0 val_187 val_187
-0 val_187 val_187
-0 val_200 val_200
-0 val_200 val_200
-0 val_200 val_200
-0 val_200 val_200
-0 val_208 val_208
-0 val_208 val_208
-0 val_208 val_208
-0 val_208 val_208
-0 val_208 val_208
-0 val_208 val_208
-0 val_208 val_208
-0 val_208 val_208
-0 val_208 val_208
-0 val_213 val_213
-0 val_213 val_213
-0 val_213 val_213
-0 val_213 val_213
-0 val_217 val_217
-0 val_217 val_217
-0 val_217 val_217
-0 val_217 val_217
-0 val_219 val_219
-0 val_219 val_219
-0 val_219 val_219
-0 val_219 val_219
-0 val_224 val_224
-0 val_224 val_224
-0 val_224 val_224
-0 val_224 val_224
-0 val_233 val_233
-0 val_233 val_233
-0 val_233 val_233
-0 val_233 val_233
-0 val_237 val_237
-0 val_237 val_237
-0 val_237 val_237
-0 val_237 val_237
-0 val_239 val_239
-0 val_239 val_239
-0 val_239 val_239
-0 val_239 val_239
-0 val_24 val_24
-0 val_24 val_24
-0 val_24 val_24
-0 val_24 val_24
-0 val_242 val_242
-0 val_242 val_242
-0 val_242 val_242
-0 val_242 val_242
-0 val_255 val_255
-0 val_255 val_255
-0 val_255 val_255
-0 val_255 val_255
-0 val_26 val_26
-0 val_26 val_26
-0 val_26 val_26
-0 val_26 val_26
-0 val_273 val_273
-0 val_273 val_273
-0 val_273 val_273
-0 val_273 val_273
-0 val_273 val_273
-0 val_273 val_273
-0 val_273 val_273
-0 val_273 val_273
-0 val_273 val_273
-0 val_277 val_277
-0 val_277 val_277
-0 val_277 val_277
-0 val_277 val_277
-0 val_277 val_277
-0 val_277 val_277
-0 val_277 val_277
-0 val_277 val_277
-0 val_277 val_277
-0 val_277 val_277
-0 val_277 val_277
-0 val_277 val_277
-0 val_277 val_277
-0 val_277 val_277
-0 val_277 val_277
-0 val_277 val_277
-0 val_280 val_280
-0 val_280 val_280
-0 val_280 val_280
-0 val_280 val_280
-0 val_282 val_282
-0 val_282 val_282
-0 val_282 val_282
-0 val_282 val_282
-0 val_288 val_288
-0 val_288 val_288
-0 val_288 val_288
-0 val_288 val_288
-0 val_307 val_307
-0 val_307 val_307
-0 val_307 val_307
-0 val_307 val_307
-0 val_309 val_309
-0 val_309 val_309
-0 val_309 val_309
-0 val_309 val_309
-0 val_316 val_316
-0 val_316 val_316
-0 val_316 val_316
-0 val_316 val_316
-0 val_316 val_316
-0 val_316 val_316
-0 val_316 val_316
-0 val_316 val_316
-0 val_316 val_316
-0 val_318 val_318
-0 val_318 val_318
-0 val_318 val_318
-0 val_318 val_318
-0 val_318 val_318
-0 val_318 val_318
-0 val_318 val_318
-0 val_318 val_318
-0 val_318 val_318
-0 val_321 val_321
-0 val_321 val_321
-0 val_321 val_321
-0 val_321 val_321
-0 val_325 val_325
-0 val_325 val_325
-0 val_325 val_325
-0 val_325 val_325
-0 val_327 val_327
-0 val_327 val_327
-0 val_327 val_327
-0 val_327 val_327
-0 val_327 val_327
-0 val_327 val_327
-0 val_327 val_327
-0 val_327 val_327
-0 val_327 val_327
-0 val_35 val_35
-0 val_35 val_35
-0 val_35 val_35
-0 val_35 val_35
-0 val_35 val_35
-0 val_35 val_35
-0 val_35 val_35
-0 val_35 val_35
-0 val_35 val_35
-0 val_367 val_367
-0 val_367 val_367
-0 val_367 val_367
-0 val_367 val_367
-0 val_369 val_369
-0 val_369 val_369
-0 val_369 val_369
-0 val_369 val_369
-0 val_369 val_369
-0 val_369 val_369
-0 val_369 val_369
-0 val_369 val_369
-0 val_369 val_369
-0 val_37 val_37
-0 val_37 val_37
-0 val_37 val_37
-0 val_37 val_37
-0 val_396 val_396
-0 val_396 val_396
-0 val_396 val_396
-0 val_396 val_396
-0 val_396 val_396
-0 val_396 val_396
-0 val_396 val_396
-0 val_396 val_396
-0 val_396 val_396
-0 val_404 val_404
-0 val_404 val_404
-0 val_404 val_404
-0 val_404 val_404
-0 val_406 val_406
-0 val_406 val_406
-0 val_406 val_406
-0 val_406 val_406
-0 val_406 val_406
-0 val_406 val_406
-0 val_406 val_406
-0 val_406 val_406
-0 val_406 val_406
-0 val_406 val_406
-0 val_406 val_406
-0 val_406 val_406
-0 val_406 val_406
-0 val_406 val_406
-0 val_406 val_406
-0 val_406 val_406
-0 val_413 val_413
-0 val_413 val_413
-0 val_413 val_413
-0 val_413 val_413
-0 val_417 val_417
-0 val_417 val_417
-0 val_417 val_417
-0 val_417 val_417
-0 val_417 val_417
-0 val_417 val_417
-0 val_417 val_417
-0 val_417 val_417
-0 val_417 val_417
-0 val_42 val_42
-0 val_42 val_42
-0 val_42 val_42
-0 val_42 val_42
-0 val_424 val_424
-0 val_424 val_424
-0 val_424 val_424
-0 val_424 val_424
-0 val_431 val_431
-0 val_431 val_431
-0 val_431 val_431
-0 val_431 val_431
-0 val_431 val_431
-0 val_431 val_431
-0 val_431 val_431
-0 val_431 val_431
-0 val_431 val_431
-0 val_439 val_439
-0 val_439 val_439
-0 val_439 val_439
-0 val_439 val_439
-0 val_459 val_459
-0 val_459 val_459
-0 val_459 val_459
-0 val_459 val_459
-0 val_462 val_462
-0 val_462 val_462
-0 val_462 val_462
-0 val_462 val_462
-0 val_466 val_466
-0 val_466 val_466
-0 val_466 val_466
-0 val_466 val_466
-0 val_466 val_466
-0 val_466 val_466
-0 val_466 val_466
-0 val_466 val_466
-0 val_466 val_466
-0 val_468 val_468
-0 val_468 val_468
-0 val_468 val_468
-0 val_468 val_468
-0 val_468 val_468
-0 val_468 val_468
-0 val_468 val_468
-0 val_468 val_468
-0 val_468 val_468
-0 val_468 val_468
-0 val_468 val_468
-0 val_468 val_468
-0 val_468 val_468
-0 val_468 val_468
-0 val_468 val_468
-0 val_468 val_468
-0 val_480 val_480
-0 val_480 val_480
-0 val_480 val_480
-0 val_480 val_480
-0 val_480 val_480
-0 val_480 val_480
-0 val_480 val_480
-0 val_480 val_480
-0 val_480 val_480
-0 val_51 val_51
-0 val_51 val_51
-0 val_51 val_51
-0 val_51 val_51
-0 val_84 val_84
-0 val_84 val_84
-0 val_84 val_84
-0 val_84 val_84
-0 val_95 val_95
-0 val_95 val_95
-0 val_95 val_95
-0 val_95 val_95
-0 val_97 val_97
-0 val_97 val_97
-0 val_97 val_97
-0 val_97 val_97
+103 val_103 val_103
+103 val_103 val_103
+103 val_103 val_103
+103 val_103 val_103
105 val_105 val_105
11 val_11 val_11
114 val_114 val_114
116 val_116 val_116
+118 val_118 val_118
+118 val_118 val_118
+118 val_118 val_118
+118 val_118 val_118
+125 val_125 val_125
+125 val_125 val_125
+125 val_125 val_125
+125 val_125 val_125
+129 val_129 val_129
+129 val_129 val_129
+129 val_129 val_129
+129 val_129 val_129
+134 val_134 val_134
+134 val_134 val_134
+134 val_134 val_134
+134 val_134 val_134
136 val_136 val_136
+138 val_138 val_138
+138 val_138 val_138
+138 val_138 val_138
+138 val_138 val_138
+138 val_138 val_138
+138 val_138 val_138
+138 val_138 val_138
+138 val_138 val_138
+138 val_138 val_138
+138 val_138 val_138
+138 val_138 val_138
+138 val_138 val_138
+138 val_138 val_138
+138 val_138 val_138
+138 val_138 val_138
+138 val_138 val_138
143 val_143 val_143
145 val_145 val_145
+149 val_149 val_149
+149 val_149 val_149
+149 val_149 val_149
+149 val_149 val_149
+15 val_15 val_15
+15 val_15 val_15
+15 val_15 val_15
+15 val_15 val_15
150 val_150 val_150
+152 val_152 val_152
+152 val_152 val_152
+152 val_152 val_152
+152 val_152 val_152
156 val_156 val_156
158 val_158 val_158
163 val_163 val_163
+165 val_165 val_165
+165 val_165 val_165
+165 val_165 val_165
+165 val_165 val_165
+167 val_167 val_167
+167 val_167 val_167
+167 val_167 val_167
+167 val_167 val_167
+167 val_167 val_167
+167 val_167 val_167
+167 val_167 val_167
+167 val_167 val_167
+167 val_167 val_167
+169 val_169 val_169
+169 val_169 val_169
+169 val_169 val_169
+169 val_169 val_169
+169 val_169 val_169
+169 val_169 val_169
+169 val_169 val_169
+169 val_169 val_169
+169 val_169 val_169
+169 val_169 val_169
+169 val_169 val_169
+169 val_169 val_169
+169 val_169 val_169
+169 val_169 val_169
+169 val_169 val_169
+169 val_169 val_169
17 val_17 val_17
170 val_170 val_170
+172 val_172 val_172
+172 val_172 val_172
+172 val_172 val_172
+172 val_172 val_172
+174 val_174 val_174
+174 val_174 val_174
+174 val_174 val_174
+174 val_174 val_174
+176 val_176 val_176
+176 val_176 val_176
+176 val_176 val_176
+176 val_176 val_176
178 val_178 val_178
181 val_181 val_181
183 val_183 val_183
+187 val_187 val_187
+187 val_187 val_187
+187 val_187 val_187
+187 val_187 val_187
+187 val_187 val_187
+187 val_187 val_187
+187 val_187 val_187
+187 val_187 val_187
+187 val_187 val_187
189 val_189 val_189
19 val_19 val_19
190 val_190 val_190
@@ -6145,45 +5861,271 @@ POSTHOOK: Input: default@tab_part_n9@ds=2008-04-08
196 val_196 val_196
2 val_2 val_2
20 val_20 val_20
+200 val_200 val_200
+200 val_200 val_200
+200 val_200 val_200
+200 val_200 val_200
202 val_202 val_202
+208 val_208 val_208
+208 val_208 val_208
+208 val_208 val_208
+208 val_208 val_208
+208 val_208 val_208
+208 val_208 val_208
+208 val_208 val_208
+208 val_208 val_208
+208 val_208 val_208
+213 val_213 val_213
+213 val_213 val_213
+213 val_213 val_213
+213 val_213 val_213
+217 val_217 val_217
+217 val_217 val_217
+217 val_217 val_217
+217 val_217 val_217
+219 val_219 val_219
+219 val_219 val_219
+219 val_219 val_219
+219 val_219 val_219
222 val_222 val_222
+224 val_224 val_224
+224 val_224 val_224
+224 val_224 val_224
+224 val_224 val_224
226 val_226 val_226
228 val_228 val_228
+233 val_233 val_233
+233 val_233 val_233
+233 val_233 val_233
+233 val_233 val_233
235 val_235 val_235
+237 val_237 val_237
+237 val_237 val_237
+237 val_237 val_237
+237 val_237 val_237
+239 val_239 val_239
+239 val_239 val_239
+239 val_239 val_239
+239 val_239 val_239
+24 val_24 val_24
+24 val_24 val_24
+24 val_24 val_24
+24 val_24 val_24
+242 val_242 val_242
+242 val_242 val_242
+242 val_242 val_242
+242 val_242 val_242
244 val_244 val_244
248 val_248 val_248
+255 val_255 val_255
+255 val_255 val_255
+255 val_255 val_255
+255 val_255 val_255
257 val_257 val_257
+26 val_26 val_26
+26 val_26 val_26
+26 val_26 val_26
+26 val_26 val_26
260 val_260 val_260
262 val_262 val_262
266 val_266 val_266
+273 val_273 val_273
+273 val_273 val_273
+273 val_273 val_273
+273 val_273 val_273
+273 val_273 val_273
+273 val_273 val_273
+273 val_273 val_273
+273 val_273 val_273
+273 val_273 val_273
275 val_275 val_275
+277 val_277 val_277
+277 val_277 val_277
+277 val_277 val_277
+277 val_277 val_277
+277 val_277 val_277
+277 val_277 val_277
+277 val_277 val_277
+277 val_277 val_277
+277 val_277 val_277
+277 val_277 val_277
+277 val_277 val_277
+277 val_277 val_277
+277 val_277 val_277
+277 val_277 val_277
+277 val_277 val_277
+277 val_277 val_277
28 val_28 val_28
+280 val_280 val_280
+280 val_280 val_280
+280 val_280 val_280
+280 val_280 val_280
+282 val_282 val_282
+282 val_282 val_282
+282 val_282 val_282
+282 val_282 val_282
284 val_284 val_284
286 val_286 val_286
+288 val_288 val_288
+288 val_288 val_288
+288 val_288 val_288
+288 val_288 val_288
291 val_291 val_291
305 val_305 val_305
+307 val_307 val_307
+307 val_307 val_307
+307 val_307 val_307
+307 val_307 val_307
+309 val_309 val_309
+309 val_309 val_309
+309 val_309 val_309
+309 val_309 val_309
310 val_310 val_310
+316 val_316 val_316
+316 val_316 val_316
+316 val_316 val_316
+316 val_316 val_316
+316 val_316 val_316
+316 val_316 val_316
+316 val_316 val_316
+316 val_316 val_316
+316 val_316 val_316
+318 val_318 val_318
+318 val_318 val_318
+318 val_318 val_318
+318 val_318 val_318
+318 val_318 val_318
+318 val_318 val_318
+318 val_318 val_318
+318 val_318 val_318
+318 val_318 val_318
+321 val_321 val_321
+321 val_321 val_321
+321 val_321 val_321
+321 val_321 val_321
323 val_323 val_323
+325 val_325 val_325
+325 val_325 val_325
+325 val_325 val_325
+325 val_325 val_325
+327 val_327 val_327
+327 val_327 val_327
+327 val_327 val_327
+327 val_327 val_327
+327 val_327 val_327
+327 val_327 val_327
+327 val_327 val_327
+327 val_327 val_327
+327 val_327 val_327
33 val_33 val_33
332 val_332 val_332
336 val_336 val_336
338 val_338 val_338
341 val_341 val_341
345 val_345 val_345
+35 val_35 val_35
+35 val_35 val_35
+35 val_35 val_35
+35 val_35 val_35
+35 val_35 val_35
+35 val_35 val_35
+35 val_35 val_35
+35 val_35 val_35
+35 val_35 val_35
356 val_356 val_356
365 val_365 val_365
+367 val_367 val_367
+367 val_367 val_367
+367 val_367 val_367
+367 val_367 val_367
+369 val_369 val_369
+369 val_369 val_369
+369 val_369 val_369
+369 val_369 val_369
+369 val_369 val_369
+369 val_369 val_369
+369 val_369 val_369
+369 val_369 val_369
+369 val_369 val_369
+37 val_37 val_37
+37 val_37 val_37
+37 val_37 val_37
+37 val_37 val_37
374 val_374 val_374
378 val_378 val_378
389 val_389 val_389
392 val_392 val_392
394 val_394 val_394
+396 val_396 val_396
+396 val_396 val_396
+396 val_396 val_396
+396 val_396 val_396
+396 val_396 val_396
+396 val_396 val_396
+396 val_396 val_396
+396 val_396 val_396
+396 val_396 val_396
4 val_4 val_4
400 val_400 val_400
402 val_402 val_402
+404 val_404 val_404
+404 val_404 val_404
+404 val_404 val_404
+404 val_404 val_404
+406 val_406 val_406
+406 val_406 val_406
+406 val_406 val_406
+406 val_406 val_406
+406 val_406 val_406
+406 val_406 val_406
+406 val_406 val_406
+406 val_406 val_406
+406 val_406 val_406
+406 val_406 val_406
+406 val_406 val_406
+406 val_406 val_406
+406 val_406 val_406
+406 val_406 val_406
+406 val_406 val_406
+406 val_406 val_406
411 val_411 val_411
+413 val_413 val_413
+413 val_413 val_413
+413 val_413 val_413
+413 val_413 val_413
+417 val_417 val_417
+417 val_417 val_417
+417 val_417 val_417
+417 val_417 val_417
+417 val_417 val_417
+417 val_417 val_417
+417 val_417 val_417
+417 val_417 val_417
+417 val_417 val_417
419 val_419 val_419
+42 val_42 val_42
+42 val_42 val_42
+42 val_42 val_42
+42 val_42 val_42
+424 val_424 val_424
+424 val_424 val_424
+424 val_424 val_424
+424 val_424 val_424
+431 val_431 val_431
+431 val_431 val_431
+431 val_431 val_431
+431 val_431 val_431
+431 val_431 val_431
+431 val_431 val_431
+431 val_431 val_431
+431 val_431 val_431
+431 val_431 val_431
435 val_435 val_435
437 val_437 val_437
+439 val_439 val_439
+439 val_439 val_439
+439 val_439 val_439
+439 val_439 val_439
44 val_44 val_44
444 val_444 val_444
446 val_446 val_446
@@ -6191,16 +6133,62 @@ POSTHOOK: Input: default@tab_part_n9@ds=2008-04-08
453 val_453 val_453
455 val_455 val_455
457 val_457 val_457
+459 val_459 val_459
+459 val_459 val_459
+459 val_459 val_459
+459 val_459 val_459
460 val_460 val_460
+462 val_462 val_462
+462 val_462 val_462
+462 val_462 val_462
+462 val_462 val_462
+466 val_466 val_466
+466 val_466 val_466
+466 val_466 val_466
+466 val_466 val_466
+466 val_466 val_466
+466 val_466 val_466
+466 val_466 val_466
+466 val_466 val_466
+466 val_466 val_466
+468 val_468 val_468
+468 val_468 val_468
+468 val_468 val_468
+468 val_468 val_468
+468 val_468 val_468
+468 val_468 val_468
+468 val_468 val_468
+468 val_468 val_468
+468 val_468 val_468
+468 val_468 val_468
+468 val_468 val_468
+468 val_468 val_468
+468 val_468 val_468
+468 val_468 val_468
+468 val_468 val_468
+468 val_468 val_468
475 val_475 val_475
477 val_477 val_477
479 val_479 val_479
+480 val_480 val_480
+480 val_480 val_480
+480 val_480 val_480
+480 val_480 val_480
+480 val_480 val_480
+480 val_480 val_480
+480 val_480 val_480
+480 val_480 val_480
+480 val_480 val_480
482 val_482 val_482
484 val_484 val_484
491 val_491 val_491
493 val_493 val_493
495 val_495 val_495
497 val_497 val_497
+51 val_51 val_51
+51 val_51 val_51
+51 val_51 val_51
+51 val_51 val_51
53 val_53 val_53
57 val_57 val_57
64 val_64 val_64
@@ -6209,7 +6197,19 @@ POSTHOOK: Input: default@tab_part_n9@ds=2008-04-08
8 val_8 val_8
80 val_80 val_80
82 val_82 val_82
+84 val_84 val_84
+84 val_84 val_84
+84 val_84 val_84
+84 val_84 val_84
86 val_86 val_86
+95 val_95 val_95
+95 val_95 val_95
+95 val_95 val_95
+95 val_95 val_95
+97 val_97 val_97
+97 val_97 val_97
+97 val_97 val_97
+97 val_97 val_97
PREHOOK: query: CREATE TABLE tab2_n4(key int, value string) PARTITIONED BY(ds STRING) STORED AS TEXTFILE
PREHOOK: type: CREATETABLE
PREHOOK: Output: database:default
@@ -6368,404 +6368,120 @@ POSTHOOK: Input: default@tab_part_n9@ds=2008-04-08
0 val_0 val_0
0 val_0 val_0
0 val_0 val_0
-0 val_103 val_103
-0 val_103 val_103
-0 val_103 val_103
-0 val_103 val_103
-0 val_118 val_118
-0 val_118 val_118
-0 val_118 val_118
-0 val_118 val_118
-0 val_125 val_125
-0 val_125 val_125
-0 val_125 val_125
-0 val_125 val_125
-0 val_129 val_129
-0 val_129 val_129
-0 val_129 val_129
-0 val_129 val_129
-0 val_134 val_134
-0 val_134 val_134
-0 val_134 val_134
-0 val_134 val_134
-0 val_138 val_138
-0 val_138 val_138
-0 val_138 val_138
-0 val_138 val_138
-0 val_138 val_138
-0 val_138 val_138
-0 val_138 val_138
-0 val_138 val_138
-0 val_138 val_138
-0 val_138 val_138
-0 val_138 val_138
-0 val_138 val_138
-0 val_138 val_138
-0 val_138 val_138
-0 val_138 val_138
-0 val_138 val_138
-0 val_149 val_149
-0 val_149 val_149
-0 val_149 val_149
-0 val_149 val_149
-0 val_15 val_15
-0 val_15 val_15
-0 val_15 val_15
-0 val_15 val_15
-0 val_152 val_152
-0 val_152 val_152
-0 val_152 val_152
-0 val_152 val_152
-0 val_165 val_165
-0 val_165 val_165
-0 val_165 val_165
-0 val_165 val_165
-0 val_167 val_167
-0 val_167 val_167
-0 val_167 val_167
-0 val_167 val_167
-0 val_167 val_167
-0 val_167 val_167
-0 val_167 val_167
-0 val_167 val_167
-0 val_167 val_167
-0 val_169 val_169
-0 val_169 val_169
-0 val_169 val_169
-0 val_169 val_169
-0 val_169 val_169
-0 val_169 val_169
-0 val_169 val_169
-0 val_169 val_169
-0 val_169 val_169
-0 val_169 val_169
-0 val_169 val_169
-0 val_169 val_169
-0 val_169 val_169
-0 val_169 val_169
-0 val_169 val_169
-0 val_169 val_169
-0 val_172 val_172
-0 val_172 val_172
-0 val_172 val_172
-0 val_172 val_172
-0 val_174 val_174
-0 val_174 val_174
-0 val_174 val_174
-0 val_174 val_174
-0 val_176 val_176
-0 val_176 val_176
-0 val_176 val_176
-0 val_176 val_176
-0 val_187 val_187
-0 val_187 val_187
-0 val_187 val_187
-0 val_187 val_187
-0 val_187 val_187
-0 val_187 val_187
-0 val_187 val_187
-0 val_187 val_187
-0 val_187 val_187
-0 val_200 val_200
-0 val_200 val_200
-0 val_200 val_200
-0 val_200 val_200
-0 val_208 val_208
-0 val_208 val_208
-0 val_208 val_208
-0 val_208 val_208
-0 val_208 val_208
-0 val_208 val_208
-0 val_208 val_208
-0 val_208 val_208
-0 val_208 val_208
-0 val_213 val_213
-0 val_213 val_213
-0 val_213 val_213
-0 val_213 val_213
-0 val_217 val_217
-0 val_217 val_217
-0 val_217 val_217
-0 val_217 val_217
-0 val_219 val_219
-0 val_219 val_219
-0 val_219 val_219
-0 val_219 val_219
-0 val_224 val_224
-0 val_224 val_224
-0 val_224 val_224
-0 val_224 val_224
-0 val_233 val_233
-0 val_233 val_233
-0 val_233 val_233
-0 val_233 val_233
-0 val_237 val_237
-0 val_237 val_237
-0 val_237 val_237
-0 val_237 val_237
-0 val_239 val_239
-0 val_239 val_239
-0 val_239 val_239
-0 val_239 val_239
-0 val_24 val_24
-0 val_24 val_24
-0 val_24 val_24
-0 val_24 val_24
-0 val_242 val_242
-0 val_242 val_242
-0 val_242 val_242
-0 val_242 val_242
-0 val_255 val_255
-0 val_255 val_255
-0 val_255 val_255
-0 val_255 val_255
-0 val_26 val_26
-0 val_26 val_26
-0 val_26 val_26
-0 val_26 val_26
-0 val_273 val_273
-0 val_273 val_273
-0 val_273 val_273
-0 val_273 val_273
-0 val_273 val_273
-0 val_273 val_273
-0 val_273 val_273
-0 val_273 val_273
-0 val_273 val_273
-0 val_277 val_277
-0 val_277 val_277
-0 val_277 val_277
-0 val_277 val_277
-0 val_277 val_277
-0 val_277 val_277
-0 val_277 val_277
-0 val_277 val_277
-0 val_277 val_277
-0 val_277 val_277
-0 val_277 val_277
-0 val_277 val_277
-0 val_277 val_277
-0 val_277 val_277
-0 val_277 val_277
-0 val_277 val_277
-0 val_280 val_280
-0 val_280 val_280
-0 val_280 val_280
-0 val_280 val_280
-0 val_282 val_282
-0 val_282 val_282
-0 val_282 val_282
-0 val_282 val_282
-0 val_288 val_288
-0 val_288 val_288
-0 val_288 val_288
-0 val_288 val_288
-0 val_307 val_307
-0 val_307 val_307
-0 val_307 val_307
-0 val_307 val_307
-0 val_309 val_309
-0 val_309 val_309
-0 val_309 val_309
-0 val_309 val_309
-0 val_316 val_316
-0 val_316 val_316
-0 val_316 val_316
-0 val_316 val_316
-0 val_316 val_316
-0 val_316 val_316
-0 val_316 val_316
-0 val_316 val_316
-0 val_316 val_316
-0 val_318 val_318
-0 val_318 val_318
-0 val_318 val_318
-0 val_318 val_318
-0 val_318 val_318
-0 val_318 val_318
-0 val_318 val_318
-0 val_318 val_318
-0 val_318 val_318
-0 val_321 val_321
-0 val_321 val_321
-0 val_321 val_321
-0 val_321 val_321
-0 val_325 val_325
-0 val_325 val_325
-0 val_325 val_325
-0 val_325 val_325
-0 val_327 val_327
-0 val_327 val_327
-0 val_327 val_327
-0 val_327 val_327
-0 val_327 val_327
-0 val_327 val_327
-0 val_327 val_327
-0 val_327 val_327
-0 val_327 val_327
-0 val_35 val_35
-0 val_35 val_35
-0 val_35 val_35
-0 val_35 val_35
-0 val_35 val_35
-0 val_35 val_35
-0 val_35 val_35
-0 val_35 val_35
-0 val_35 val_35
-0 val_367 val_367
-0 val_367 val_367
-0 val_367 val_367
-0 val_367 val_367
-0 val_369 val_369
-0 val_369 val_369
-0 val_369 val_369
-0 val_369 val_369
-0 val_369 val_369
-0 val_369 val_369
-0 val_369 val_369
-0 val_369 val_369
-0 val_369 val_369
-0 val_37 val_37
-0 val_37 val_37
-0 val_37 val_37
-0 val_37 val_37
-0 val_396 val_396
-0 val_396 val_396
-0 val_396 val_396
-0 val_396 val_396
-0 val_396 val_396
-0 val_396 val_396
-0 val_396 val_396
-0 val_396 val_396
-0 val_396 val_396
-0 val_404 val_404
-0 val_404 val_404
-0 val_404 val_404
-0 val_404 val_404
-0 val_406 val_406
-0 val_406 val_406
-0 val_406 val_406
-0 val_406 val_406
-0 val_406 val_406
-0 val_406 val_406
-0 val_406 val_406
-0 val_406 val_406
-0 val_406 val_406
-0 val_406 val_406
-0 val_406 val_406
-0 val_406 val_406
-0 val_406 val_406
-0 val_406 val_406
-0 val_406 val_406
-0 val_406 val_406
-0 val_413 val_413
-0 val_413 val_413
-0 val_413 val_413
-0 val_413 val_413
-0 val_417 val_417
-0 val_417 val_417
-0 val_417 val_417
-0 val_417 val_417
-0 val_417 val_417
-0 val_417 val_417
-0 val_417 val_417
-0 val_417 val_417
-0 val_417 val_417
-0 val_42 val_42
-0 val_42 val_42
-0 val_42 val_42
-0 val_42 val_42
-0 val_424 val_424
-0 val_424 val_424
-0 val_424 val_424
-0 val_424 val_424
-0 val_431 val_431
-0 val_431 val_431
-0 val_431 val_431
-0 val_431 val_431
-0 val_431 val_431
-0 val_431 val_431
-0 val_431 val_431
-0 val_431 val_431
-0 val_431 val_431
-0 val_439 val_439
-0 val_439 val_439
-0 val_439 val_439
-0 val_439 val_439
-0 val_459 val_459
-0 val_459 val_459
-0 val_459 val_459
-0 val_459 val_459
-0 val_462 val_462
-0 val_462 val_462
-0 val_462 val_462
-0 val_462 val_462
-0 val_466 val_466
-0 val_466 val_466
-0 val_466 val_466
-0 val_466 val_466
-0 val_466 val_466
-0 val_466 val_466
-0 val_466 val_466
-0 val_466 val_466
-0 val_466 val_466
-0 val_468 val_468
-0 val_468 val_468
-0 val_468 val_468
-0 val_468 val_468
-0 val_468 val_468
-0 val_468 val_468
-0 val_468 val_468
-0 val_468 val_468
-0 val_468 val_468
-0 val_468 val_468
-0 val_468 val_468
-0 val_468 val_468
-0 val_468 val_468
-0 val_468 val_468
-0 val_468 val_468
-0 val_468 val_468
-0 val_480 val_480
-0 val_480 val_480
-0 val_480 val_480
-0 val_480 val_480
-0 val_480 val_480
-0 val_480 val_480
-0 val_480 val_480
-0 val_480 val_480
-0 val_480 val_480
-0 val_51 val_51
-0 val_51 val_51
-0 val_51 val_51
-0 val_51 val_51
-0 val_84 val_84
-0 val_84 val_84
-0 val_84 val_84
-0 val_84 val_84
-0 val_95 val_95
-0 val_95 val_95
-0 val_95 val_95
-0 val_95 val_95
-0 val_97 val_97
-0 val_97 val_97
-0 val_97 val_97
-0 val_97 val_97
+103 val_103 val_103
+103 val_103 val_103
+103 val_103 val_103
+103 val_103 val_103
105 val_105 val_105
11 val_11 val_11
114 val_114 val_114
116 val_116 val_116
+118 val_118 val_118
+118 val_118 val_118
+118 val_118 val_118
+118 val_118 val_118
+125 val_125 val_125
+125 val_125 val_125
+125 val_125 val_125
+125 val_125 val_125
+129 val_129 val_129
+129 val_129 val_129
+129 val_129 val_129
+129 val_129 val_129
+134 val_134 val_134
+134 val_134 val_134
+134 val_134 val_134
+134 val_134 val_134
136 val_136 val_136
+138 val_138 val_138
+138 val_138 val_138
+138 val_138 val_138
+138 val_138 val_138
+138 val_138 val_138
+138 val_138 val_138
+138 val_138 val_138
+138 val_138 val_138
+138 val_138 val_138
+138 val_138 val_138
+138 val_138 val_138
+138 val_138 val_138
+138 val_138 val_138
+138 val_138 val_138
+138 val_138 val_138
+138 val_138 val_138
143 val_143 val_143
145 val_145 val_145
+149 val_149 val_149
+149 val_149 val_149
+149 val_149 val_149
+149 val_149 val_149
+15 val_15 val_15
+15 val_15 val_15
+15 val_15 val_15
+15 val_15 val_15
150 val_150 val_150
+152 val_152 val_152
+152 val_152 val_152
+152 val_152 val_152
+152 val_152 val_152
156 val_156 val_156
158 val_158 val_158
163 val_163 val_163
+165 val_165 val_165
+165 val_165 val_165
+165 val_165 val_165
+165 val_165 val_165
+167 val_167 val_167
+167 val_167 val_167
+167 val_167 val_167
+167 val_167 val_167
+167 val_167 val_167
+167 val_167 val_167
+167 val_167 val_167
+167 val_167 val_167
+167 val_167 val_167
+169 val_169 val_169
+169 val_169 val_169
+169 val_169 val_169
+169 val_169 val_169
+169 val_169 val_169
+169 val_169 val_169
+169 val_169 val_169
+169 val_169 val_169
+169 val_169 val_169
+169 val_169 val_169
+169 val_169 val_169
+169 val_169 val_169
+169 val_169 val_169
+169 val_169 val_169
+169 val_169 val_169
+169 val_169 val_169
17 val_17 val_17
170 val_170 val_170
+172 val_172 val_172
+172 val_172 val_172
+172 val_172 val_172
+172 val_172 val_172
+174 val_174 val_174
+174 val_174 val_174
+174 val_174 val_174
+174 val_174 val_174
+176 val_176 val_176
+176 val_176 val_176
+176 val_176 val_176
+176 val_176 val_176
178 val_178 val_178
181 val_181 val_181
183 val_183 val_183
+187 val_187 val_187
+187 val_187 val_187
+187 val_187 val_187
+187 val_187 val_187
+187 val_187 val_187
+187 val_187 val_187
+187 val_187 val_187
+187 val_187 val_187
+187 val_187 val_187
189 val_189 val_189
19 val_19 val_19
190 val_190 val_190
@@ -6774,45 +6490,271 @@ POSTHOOK: Input: default@tab_part_n9@ds=2008-04-08
196 val_196 val_196
2 val_2 val_2
20 val_20 val_20
+200 val_200 val_200
+200 val_200 val_200
+200 val_200 val_200
+200 val_200 val_200
202 val_202 val_202
+208 val_208 val_208
+208 val_208 val_208
+208 val_208 val_208
+208 val_208 val_208
+208 val_208 val_208
+208 val_208 val_208
+208 val_208 val_208
+208 val_208 val_208
+208 val_208 val_208
+213 val_213 val_213
+213 val_213 val_213
+213 val_213 val_213
+213 val_213 val_213
+217 val_217 val_217
+217 val_217 val_217
+217 val_217 val_217
+217 val_217 val_217
+219 val_219 val_219
+219 val_219 val_219
+219 val_219 val_219
+219 val_219 val_219
222 val_222 val_222
+224 val_224 val_224
+224 val_224 val_224
+224 val_224 val_224
+224 val_224 val_224
226 val_226 val_226
228 val_228 val_228
+233 val_233 val_233
+233 val_233 val_233
+233 val_233 val_233
+233 val_233 val_233
235 val_235 val_235
+237 val_237 val_237
+237 val_237 val_237
+237 val_237 val_237
+237 val_237 val_237
+239 val_239 val_239
+239 val_239 val_239
+239 val_239 val_239
+239 val_239 val_239
+24 val_24 val_24
+24 val_24 val_24
+24 val_24 val_24
+24 val_24 val_24
+242 val_242 val_242
+242 val_242 val_242
+242 val_242 val_242
+242 val_242 val_242
244 val_244 val_244
248 val_248 val_248
+255 val_255 val_255
+255 val_255 val_255
+255 val_255 val_255
+255 val_255 val_255
257 val_257 val_257
+26 val_26 val_26
+26 val_26 val_26
+26 val_26 val_26
+26 val_26 val_26
260 val_260 val_260
262 val_262 val_262
266 val_266 val_266
+273 val_273 val_273
+273 val_273 val_273
+273 val_273 val_273
+273 val_273 val_273
+273 val_273 val_273
+273 val_273 val_273
+273 val_273 val_273
+273 val_273 val_273
+273 val_273 val_273
275 val_275 val_275
+277 val_277 val_277
+277 val_277 val_277
+277 val_277 val_277
+277 val_277 val_277
+277 val_277 val_277
+277 val_277 val_277
+277 val_277 val_277
+277 val_277 val_277
+277 val_277 val_277
+277 val_277 val_277
+277 val_277 val_277
+277 val_277 val_277
+277 val_277 val_277
+277 val_277 val_277
+277 val_277 val_277
+277 val_277 val_277
28 val_28 val_28
+280 val_280 val_280
+280 val_280 val_280
+280 val_280 val_280
+280 val_280 val_280
+282 val_282 val_282
+282 val_282 val_282
+282 val_282 val_282
+282 val_282 val_282
284 val_284 val_284
286 val_286 val_286
+288 val_288 val_288
+288 val_288 val_288
+288 val_288 val_288
+288 val_288 val_288
291 val_291 val_291
305 val_305 val_305
+307 val_307 val_307
+307 val_307 val_307
+307 val_307 val_307
+307 val_307 val_307
+309 val_309 val_309
+309 val_309 val_309
+309 val_309 val_309
+309 val_309 val_309
310 val_310 val_310
+316 val_316 val_316
+316 val_316 val_316
+316 val_316 val_316
+316 val_316 val_316
+316 val_316 val_316
+316 val_316 val_316
+316 val_316 val_316
+316 val_316 val_316
+316 val_316 val_316
+318 val_318 val_318
+318 val_318 val_318
+318 val_318 val_318
+318 val_318 val_318
+318 val_318 val_318
+318 val_318 val_318
+318 val_318 val_318
+318 val_318 val_318
+318 val_318 val_318
+321 val_321 val_321
+321 val_321 val_321
+321 val_321 val_321
+321 val_321 val_321
323 val_323 val_323
+325 val_325 val_325
+325 val_325 val_325
+325 val_325 val_325
+325 val_325 val_325
+327 val_327 val_327
+327 val_327 val_327
+327 val_327 val_327
+327 val_327 val_327
+327 val_327 val_327
+327 val_327 val_327
+327 val_327 val_327
+327 val_327 val_327
+327 val_327 val_327
33 val_33 val_33
332 val_332 val_332
336 val_336 val_336
338 val_338 val_338
341 val_341 val_341
345 val_345 val_345
+35 val_35 val_35
+35 val_35 val_35
+35 val_35 val_35
+35 val_35 val_35
+35 val_35 val_35
+35 val_35 val_35
+35 val_35 val_35
+35 val_35 val_35
+35 val_35 val_35
356 val_356 val_356
365 val_365 val_365
+367 val_367 val_367
+367 val_367 val_367
+367 val_367 val_367
+367 val_367 val_367
+369 val_369 val_369
+369 val_369 val_369
+369 val_369 val_369
+369 val_369 val_369
+369 val_369 val_369
+369 val_369 val_369
+369 val_369 val_369
+369 val_369 val_369
+369 val_369 val_369
+37 val_37 val_37
+37 val_37 val_37
+37 val_37 val_37
+37 val_37 val_37
374 val_374 val_374
378 val_378 val_378
389 val_389 val_389
392 val_392 val_392
394 val_394 val_394
+396 val_396 val_396
+396 val_396 val_396
+396 val_396 val_396
+396 val_396 val_396
+396 val_396 val_396
+396 val_396 val_396
+396 val_396 val_396
+396 val_396 val_396
+396 val_396 val_396
4 val_4 val_4
400 val_400 val_400
402 val_402 val_402
+404 val_404 val_404
+404 val_404 val_404
+404 val_404 val_404
+404 val_404 val_404
+406 val_406 val_406
+406 val_406 val_406
+406 val_406 val_406
+406 val_406 val_406
+406 val_406 val_406
+406 val_406 val_406
+406 val_406 val_406
+406 val_406 val_406
+406 val_406 val_406
+406 val_406 val_406
+406 val_406 val_406
+406 val_406 val_406
+406 val_406 val_406
+406 val_406 val_406
+406 val_406 val_406
+406 val_406 val_406
411 val_411 val_411
+413 val_413 val_413
+413 val_413 val_413
+413 val_413 val_413
+413 val_413 val_413
+417 val_417 val_417
+417 val_417 val_417
+417 val_417 val_417
+417 val_417 val_417
+417 val_417 val_417
+417 val_417 val_417
+417 val_417 val_417
+417 val_417 val_417
+417 val_417 val_417
419 val_419 val_419
+42 val_42 val_42
+42 val_42 val_42
+42 val_42 val_42
+42 val_42 val_42
+424 val_424 val_424
+424 val_424 val_424
+424 val_424 val_424
+424 val_424 val_424
+431 val_431 val_431
+431 val_431 val_431
+431 val_431 val_431
+431 val_431 val_431
+431 val_431 val_431
+431 val_431 val_431
+431 val_431 val_431
+431 val_431 val_431
+431 val_431 val_431
435 val_435 val_435
437 val_437 val_437
+439 val_439 val_439
+439 val_439 val_439
+439 val_439 val_439
+439 val_439 val_439
44 val_44 val_44
444 val_444 val_444
446 val_446 val_446
@@ -6820,16 +6762,62 @@ POSTHOOK: Input: default@tab_part_n9@ds=2008-04-08
453 val_453 val_453
455 val_455 val_455
457 val_457 val_457
+459 val_459 val_459
+459 val_459 val_459
+459 val_459 val_459
+459 val_459 val_459
460 val_460 val_460
+462 val_462 val_462
+462 val_462 val_462
+462 val_462 val_462
+462 val_462 val_462
+466 val_466 val_466
+466 val_466 val_466
+466 val_466 val_466
+466 val_466 val_466
+466 val_466 val_466
+466 val_466 val_466
+466 val_466 val_466
+466 val_466 val_466
+466 val_466 val_466
+468 val_468 val_468
+468 val_468 val_468
+468 val_468 val_468
+468 val_468 val_468
+468 val_468 val_468
+468 val_468 val_468
+468 val_468 val_468
+468 val_468 val_468
+468 val_468 val_468
+468 val_468 val_468
+468 val_468 val_468
+468 val_468 val_468
+468 val_468 val_468
+468 val_468 val_468
+468 val_468 val_468
+468 val_468 val_468
475 val_475 val_475
477 val_477 val_477
479 val_479 val_479
+480 val_480 val_480
+480 val_480 val_480
+480 val_480 val_480
+480 val_480 val_480
+480 val_480 val_480
+480 val_480 val_480
+480 val_480 val_480
+480 val_480 val_480
+480 val_480 val_480
482 val_482 val_482
484 val_484 val_484
491 val_491 val_491
493 val_493 val_493
495 val_495 val_495
497 val_497 val_497
+51 val_51 val_51
+51 val_51 val_51
+51 val_51 val_51
+51 val_51 val_51
53 val_53 val_53
57 val_57 val_57
64 val_64 val_64
@@ -6838,7 +6826,19 @@ POSTHOOK: Input: default@tab_part_n9@ds=2008-04-08
8 val_8 val_8
80 val_80 val_80
82 val_82 val_82
+84 val_84 val_84
+84 val_84 val_84
+84 val_84 val_84
+84 val_84 val_84
86 val_86 val_86
+95 val_95 val_95
+95 val_95 val_95
+95 val_95 val_95
+95 val_95 val_95
+97 val_97 val_97
+97 val_97 val_97
+97 val_97 val_97
+97 val_97 val_97
PREHOOK: query: explain select a.key, a.value, b.value
from tab2_n4 a join tab_part_n9 b on a.key = b.key and a.value = b.value
PREHOOK: type: QUERY
@@ -6961,404 +6961,120 @@ POSTHOOK: Input: default@tab_part_n9@ds=2008-04-08
0 val_0 val_0
0 val_0 val_0
0 val_0 val_0
-0 val_103 val_103
-0 val_103 val_103
-0 val_103 val_103
-0 val_103 val_103
-0 val_118 val_118
-0 val_118 val_118
-0 val_118 val_118
-0 val_118 val_118
-0 val_125 val_125
-0 val_125 val_125
-0 val_125 val_125
-0 val_125 val_125
-0 val_129 val_129
-0 val_129 val_129
-0 val_129 val_129
-0 val_129 val_129
-0 val_134 val_134
-0 val_134 val_134
-0 val_134 val_134
-0 val_134 val_134
-0 val_138 val_138
-0 val_138 val_138
-0 val_138 val_138
-0 val_138 val_138
-0 val_138 val_138
-0 val_138 val_138
-0 val_138 val_138
-0 val_138 val_138
-0 val_138 val_138
-0 val_138 val_138
-0 val_138 val_138
-0 val_138 val_138
-0 val_138 val_138
-0 val_138 val_138
-0 val_138 val_138
-0 val_138 val_138
-0 val_149 val_149
-0 val_149 val_149
-0 val_149 val_149
-0 val_149 val_149
-0 val_15 val_15
-0 val_15 val_15
-0 val_15 val_15
-0 val_15 val_15
-0 val_152 val_152
-0 val_152 val_152
-0 val_152 val_152
-0 val_152 val_152
-0 val_165 val_165
-0 val_165 val_165
-0 val_165 val_165
-0 val_165 val_165
-0 val_167 val_167
-0 val_167 val_167
-0 val_167 val_167
-0 val_167 val_167
-0 val_167 val_167
-0 val_167 val_167
-0 val_167 val_167
-0 val_167 val_167
-0 val_167 val_167
-0 val_169 val_169
-0 val_169 val_169
-0 val_169 val_169
-0 val_169 val_169
-0 val_169 val_169
-0 val_169 val_169
-0 val_169 val_169
-0 val_169 val_169
-0 val_169 val_169
-0 val_169 val_169
-0 val_169 val_169
-0 val_169 val_169
-0 val_169 val_169
-0 val_169 val_169
-0 val_169 val_169
-0 val_169 val_169
-0 val_172 val_172
-0 val_172 val_172
-0 val_172 val_172
-0 val_172 val_172
-0 val_174 val_174
-0 val_174 val_174
-0 val_174 val_174
-0 val_174 val_174
-0 val_176 val_176
-0 val_176 val_176
-0 val_176 val_176
-0 val_176 val_176
-0 val_187 val_187
-0 val_187 val_187
-0 val_187 val_187
-0 val_187 val_187
-0 val_187 val_187
-0 val_187 val_187
-0 val_187 val_187
-0 val_187 val_187
-0 val_187 val_187
-0 val_200 val_200
-0 val_200 val_200
-0 val_200 val_200
-0 val_200 val_200
-0 val_208 val_208
-0 val_208 val_208
-0 val_208 val_208
-0 val_208 val_208
-0 val_208 val_208
-0 val_208 val_208
-0 val_208 val_208
-0 val_208 val_208
-0 val_208 val_208
-0 val_213 val_213
-0 val_213 val_213
-0 val_213 val_213
-0 val_213 val_213
-0 val_217 val_217
-0 val_217 val_217
-0 val_217 val_217
-0 val_217 val_217
-0 val_219 val_219
-0 val_219 val_219
-0 val_219 val_219
-0 val_219 val_219
-0 val_224 val_224
-0 val_224 val_224
-0 val_224 val_224
-0 val_224 val_224
-0 val_233 val_233
-0 val_233 val_233
-0 val_233 val_233
-0 val_233 val_233
-0 val_237 val_237
-0 val_237 val_237
-0 val_237 val_237
-0 val_237 val_237
-0 val_239 val_239
-0 val_239 val_239
-0 val_239 val_239
-0 val_239 val_239
-0 val_24 val_24
-0 val_24 val_24
-0 val_24 val_24
-0 val_24 val_24
-0 val_242 val_242
-0 val_242 val_242
-0 val_242 val_242
-0 val_242 val_242
-0 val_255 val_255
-0 val_255 val_255
-0 val_255 val_255
-0 val_255 val_255
-0 val_26 val_26
-0 val_26 val_26
-0 val_26 val_26
-0 val_26 val_26
-0 val_273 val_273
-0 val_273 val_273
-0 val_273 val_273
-0 val_273 val_273
-0 val_273 val_273
-0 val_273 val_273
-0 val_273 val_273
-0 val_273 val_273
-0 val_273 val_273
-0 val_277 val_277
-0 val_277 val_277
-0 val_277 val_277
-0 val_277 val_277
-0 val_277 val_277
-0 val_277 val_277
-0 val_277 val_277
-0 val_277 val_277
-0 val_277 val_277
-0 val_277 val_277
-0 val_277 val_277
-0 val_277 val_277
-0 val_277 val_277
-0 val_277 val_277
-0 val_277 val_277
-0 val_277 val_277
-0 val_280 val_280
-0 val_280 val_280
-0 val_280 val_280
-0 val_280 val_280
-0 val_282 val_282
-0 val_282 val_282
-0 val_282 val_282
-0 val_282 val_282
-0 val_288 val_288
-0 val_288 val_288
-0 val_288 val_288
-0 val_288 val_288
-0 val_307 val_307
-0 val_307 val_307
-0 val_307 val_307
-0 val_307 val_307
-0 val_309 val_309
-0 val_309 val_309
-0 val_309 val_309
-0 val_309 val_309
-0 val_316 val_316
-0 val_316 val_316
-0 val_316 val_316
-0 val_316 val_316
-0 val_316 val_316
-0 val_316 val_316
-0 val_316 val_316
-0 val_316 val_316
-0 val_316 val_316
-0 val_318 val_318
-0 val_318 val_318
-0 val_318 val_318
-0 val_318 val_318
-0 val_318 val_318
-0 val_318 val_318
-0 val_318 val_318
-0 val_318 val_318
-0 val_318 val_318
-0 val_321 val_321
-0 val_321 val_321
-0 val_321 val_321
-0 val_321 val_321
-0 val_325 val_325
-0 val_325 val_325
-0 val_325 val_325
-0 val_325 val_325
-0 val_327 val_327
-0 val_327 val_327
-0 val_327 val_327
-0 val_327 val_327
-0 val_327 val_327
-0 val_327 val_327
-0 val_327 val_327
-0 val_327 val_327
-0 val_327 val_327
-0 val_35 val_35
-0 val_35 val_35
-0 val_35 val_35
-0 val_35 val_35
-0 val_35 val_35
-0 val_35 val_35
-0 val_35 val_35
-0 val_35 val_35
-0 val_35 val_35
-0 val_367 val_367
-0 val_367 val_367
-0 val_367 val_367
-0 val_367 val_367
-0 val_369 val_369
-0 val_369 val_369
-0 val_369 val_369
-0 val_369 val_369
-0 val_369 val_369
-0 val_369 val_369
-0 val_369 val_369
-0 val_369 val_369
-0 val_369 val_369
-0 val_37 val_37
-0 val_37 val_37
-0 val_37 val_37
-0 val_37 val_37
-0 val_396 val_396
-0 val_396 val_396
-0 val_396 val_396
-0 val_396 val_396
-0 val_396 val_396
-0 val_396 val_396
-0 val_396 val_396
-0 val_396 val_396
-0 val_396 val_396
-0 val_404 val_404
-0 val_404 val_404
-0 val_404 val_404
-0 val_404 val_404
-0 val_406 val_406
-0 val_406 val_406
-0 val_406 val_406
-0 val_406 val_406
-0 val_406 val_406
-0 val_406 val_406
-0 val_406 val_406
-0 val_406 val_406
-0 val_406 val_406
-0 val_406 val_406
-0 val_406 val_406
-0 val_406 val_406
-0 val_406 val_406
-0 val_406 val_406
-0 val_406 val_406
-0 val_406 val_406
-0 val_413 val_413
-0 val_413 val_413
-0 val_413 val_413
-0 val_413 val_413
-0 val_417 val_417
-0 val_417 val_417
-0 val_417 val_417
-0 val_417 val_417
-0 val_417 val_417
-0 val_417 val_417
-0 val_417 val_417
-0 val_417 val_417
-0 val_417 val_417
-0 val_42 val_42
-0 val_42 val_42
-0 val_42 val_42
-0 val_42 val_42
-0 val_424 val_424
-0 val_424 val_424
-0 val_424 val_424
-0 val_424 val_424
-0 val_431 val_431
-0 val_431 val_431
-0 val_431 val_431
-0 val_431 val_431
-0 val_431 val_431
-0 val_431 val_431
-0 val_431 val_431
-0 val_431 val_431
-0 val_431 val_431
-0 val_439 val_439
-0 val_439 val_439
-0 val_439 val_439
-0 val_439 val_439
-0 val_459 val_459
-0 val_459 val_459
-0 val_459 val_459
-0 val_459 val_459
-0 val_462 val_462
-0 val_462 val_462
-0 val_462 val_462
-0 val_462 val_462
-0 val_466 val_466
-0 val_466 val_466
-0 val_466 val_466
-0 val_466 val_466
-0 val_466 val_466
-0 val_466 val_466
-0 val_466 val_466
-0 val_466 val_466
-0 val_466 val_466
-0 val_468 val_468
-0 val_468 val_468
-0 val_468 val_468
-0 val_468 val_468
-0 val_468 val_468
-0 val_468 val_468
-0 val_468 val_468
-0 val_468 val_468
-0 val_468 val_468
-0 val_468 val_468
-0 val_468 val_468
-0 val_468 val_468
-0 val_468 val_468
-0 val_468 val_468
-0 val_468 val_468
-0 val_468 val_468
-0 val_480 val_480
-0 val_480 val_480
-0 val_480 val_480
-0 val_480 val_480
-0 val_480 val_480
-0 val_480 val_480
-0 val_480 val_480
-0 val_480 val_480
-0 val_480 val_480
-0 val_51 val_51
-0 val_51 val_51
-0 val_51 val_51
-0 val_51 val_51
-0 val_84 val_84
-0 val_84 val_84
-0 val_84 val_84
-0 val_84 val_84
-0 val_95 val_95
-0 val_95 val_95
-0 val_95 val_95
-0 val_95 val_95
-0 val_97 val_97
-0 val_97 val_97
-0 val_97 val_97
-0 val_97 val_97
+103 val_103 val_103
+103 val_103 val_103
+103 val_103 val_103
+103 val_103 val_103
105 val_105 val_105
11 val_11 val_11
114 val_114 val_114
116 val_116 val_116
+118 val_118 val_118
+118 val_118 val_118
+118 val_118 val_118
+118 val_118 val_118
+125 val_125 val_125
+125 val_125 val_125
+125 val_125 val_125
+125 val_125 val_125
+129 val_129 val_129
+129 val_129 val_129
+129 val_129 val_129
+129 val_129 val_129
+134 val_134 val_134
+134 val_134 val_134
+134 val_134 val_134
+134 val_134 val_134
136 val_136 val_136
+138 val_138 val_138
+138 val_138 val_138
+138 val_138 val_138
+138 val_138 val_138
+138 val_138 val_138
+138 val_138 val_138
+138 val_138 val_138
+138 val_138 val_138
+138 val_138 val_138
+138 val_138 val_138
+138 val_138 val_138
+138 val_138 val_138
+138 val_138 val_138
+138 val_138 val_138
+138 val_138 val_138
+138 val_138 val_138
143 val_143 val_143
145 val_145 val_145
+149 val_149 val_149
+149 val_149 val_149
+149 val_149 val_149
+149 val_149 val_149
+15 val_15 val_15
+15 val_15 val_15
+15 val_15 val_15
+15 val_15 val_15
150 val_150 val_150
+152 val_152 val_152
+152 val_152 val_152
+152 val_152 val_152
+152 val_152 val_152
156 val_156 val_156
158 val_158 val_158
163 val_163 val_163
+165 val_165 val_165
+165 val_165 val_165
+165 val_165 val_165
+165 val_165 val_165
+167 val_167 val_167
+167 val_167 val_167
+167 val_167 val_167
+167 val_167 val_167
+167 val_167 val_167
+167 val_167 val_167
+167 val_167 val_167
+167 val_167 val_167
+167 val_167 val_167
+169 val_169 val_169
+169 val_169 val_169
+169 val_169 val_169
+169 val_169 val_169
+169 val_169 val_169
+169 val_169 val_169
+169 val_169 val_169
+169 val_169 val_169
+169 val_169 val_169
+169 val_169 val_169
+169 val_169 val_169
+169 val_169 val_169
+169 val_169 val_169
+169 val_169 val_169
+169 val_169 val_169
+169 val_169 val_169
17 val_17 val_17
170 val_170 val_170
+172 val_172 val_172
+172 val_172 val_172
+172 val_172 val_172
+172 val_172 val_172
+174 val_174 val_174
+174 val_174 val_174
+174 val_174 val_174
+174 val_174 val_174
+176 val_176 val_176
+176 val_176 val_176
+176 val_176 val_176
+176 val_176 val_176
178 val_178 val_178
181 val_181 val_181
183 val_183 val_183
+187 val_187 val_187
+187 val_187 val_187
+187 val_187 val_187
+187 val_187 val_187
+187 val_187 val_187
+187 val_187 val_187
+187 val_187 val_187
+187 val_187 val_187
+187 val_187 val_187
189 val_189 val_189
19 val_19 val_19
190 val_190 val_190
@@ -7367,45 +7083,271 @@ POSTHOOK: Input: default@tab_part_n9@ds=2008-04-08
196 val_196 val_196
2 val_2 val_2
20 val_20 val_20
+200 val_200 val_200
+200 val_200 val_200
+200 val_200 val_200
+200 val_200 val_200
202 val_202 val_202
+208 val_208 val_208
+208 val_208 val_208
+208 val_208 val_208
+208 val_208 val_208
+208 val_208 val_208
+208 val_208 val_208
+208 val_208 val_208
+208 val_208 val_208
+208 val_208 val_208
+213 val_213 val_213
+213 val_213 val_213
+213 val_213 val_213
+213 val_213 val_213
+217 val_217 val_217
+217 val_217 val_217
+217 val_217 val_217
+217 val_217 val_217
+219 val_219 val_219
+219 val_219 val_219
+219 val_219 val_219
+219 val_219 val_219
222 val_222 val_222
+224 val_224 val_224
+224 val_224 val_224
+224 val_224 val_224
+224 val_224 val_224
226 val_226 val_226
228 val_228 val_228
+233 val_233 val_233
+233 val_233 val_233
+233 val_233 val_233
+233 val_233 val_233
235 val_235 val_235
+237 val_237 val_237
+237 val_237 val_237
+237 val_237 val_237
+237 val_237 val_237
+239 val_239 val_239
+239 val_239 val_239
+239 val_239 val_239
+239 val_239 val_239
+24 val_24 val_24
+24 val_24 val_24
+24 val_24 val_24
+24 val_24 val_24
+242 val_242 val_242
+242 val_242 val_242
+242 val_242 val_242
+242 val_242 val_242
244 val_244 val_244
248 val_248 val_248
+255 val_255 val_255
+255 val_255 val_255
+255 val_255 val_255
+255 val_255 val_255
257 val_257 val_257
+26 val_26 val_26
+26 val_26 val_26
+26 val_26 val_26
+26 val_26 val_26
260 val_260 val_260
262 val_262 val_262
266 val_266 val_266
+273 val_273 val_273
+273 val_273 val_273
+273 val_273 val_273
+273 val_273 val_273
+273 val_273 val_273
+273 val_273 val_273
+273 val_273 val_273
+273 val_273 val_273
+273 val_273 val_273
275 val_275 val_275
+277 val_277 val_277
+277 val_277 val_277
+277 val_277 val_277
+277 val_277 val_277
+277 val_277 val_277
+277 val_277 val_277
+277 val_277 val_277
+277 val_277 val_277
+277 val_277 val_277
+277 val_277 val_277
+277 val_277 val_277
+277 val_277 val_277
+277 val_277 val_277
+277 val_277 val_277
+277 val_277 val_277
+277 val_277 val_277
28 val_28 val_28
+280 val_280 val_280
+280 val_280 val_280
+280 val_280 val_280
+280 val_280 val_280
+282 val_282 val_282
+282 val_282 val_282
+282 val_282 val_282
+282 val_282 val_282
284 val_284 val_284
286 val_286 val_286
+288 val_288 val_288
+288 val_288 val_288
+288 val_288 val_288
+288 val_288 val_288
291 val_291 val_291
305 val_305 val_305
+307 val_307 val_307
+307 val_307 val_307
+307 val_307 val_307
+307 val_307 val_307
+309 val_309 val_309
+309 val_309 val_309
+309 val_309 val_309
+309 val_309 val_309
310 val_310 val_310
+316 val_316 val_316
+316 val_316 val_316
+316 val_316 val_316
+316 val_316 val_316
+316 val_316 val_316
+316 val_316 val_316
+316 val_316 val_316
+316 val_316 val_316
+316 val_316 val_316
+318 val_318 val_318
+318 val_318 val_318
+318 val_318 val_318
+318 val_318 val_318
+318 val_318 val_318
+318 val_318 val_318
+318 val_318 val_318
+318 val_318 val_318
+318 val_318 val_318
+321 val_321 val_321
+321 val_321 val_321
+321 val_321 val_321
+321 val_321 val_321
323 val_323 val_323
+325 val_325 val_325
+325 val_325 val_325
+325 val_325 val_325
+325 val_325 val_325
+327 val_327 val_327
+327 val_327 val_327
+327 val_327 val_327
+327 val_327 val_327
+327 val_327 val_327
+327 val_327 val_327
+327 val_327 val_327
+327 val_327 val_327
+327 val_327 val_327
33 val_33 val_33
332 val_332 val_332
336 val_336 val_336
338 val_338 val_338
341 val_341 val_341
345 val_345 val_345
+35 val_35 val_35
+35 val_35 val_35
+35 val_35 val_35
+35 val_35 val_35
+35 val_35 val_35
+35 val_35 val_35
+35 val_35 val_35
+35 val_35 val_35
+35 val_35 val_35
356 val_356 val_356
365 val_365 val_365
+367 val_367 val_367
+367 val_367 val_367
+367 val_367 val_367
+367 val_367 val_367
+369 val_369 val_369
+369 val_369 val_369
+369 val_369 val_369
+369 val_369 val_369
+369 val_369 val_369
+369 val_369 val_369
+369 val_369 val_369
+369 val_369 val_369
+369 val_369 val_369
+37 val_37 val_37
+37 val_37 val_37
+37 val_37 val_37
+37 val_37 val_37
374 val_374 val_374
378 val_378 val_378
389 val_389 val_389
392 val_392 val_392
394 val_394 val_394
+396 val_396 val_396
+396 val_396 val_396
+396 val_396 val_396
+396 val_396 val_396
+396 val_396 val_396
+396 val_396 val_396
+396 val_396 val_396
+396 val_396 val_396
+396 val_396 val_396
4 val_4 val_4
400 val_400 val_400
402 val_402 val_402
+404 val_404 val_404
+404 val_404 val_404
+404 val_404 val_404
+404 val_404 val_404
+406 val_406 val_406
+406 val_406 val_406
+406 val_406 val_406
+406 val_406 val_406
+406 val_406 val_406
+406 val_406 val_406
+406 val_406 val_406
+406 val_406 val_406
+406 val_406 val_406
+406 val_406 val_406
+406 val_406 val_406
+406 val_406 val_406
+406 val_406 val_406
+406 val_406 val_406
+406 val_406 val_406
+406 val_406 val_406
411 val_411 val_411
+413 val_413 val_413
+413 val_413 val_413
+413 val_413 val_413
+413 val_413 val_413
+417 val_417 val_417
+417 val_417 val_417
+417 val_417 val_417
+417 val_417 val_417
+417 val_417 val_417
+417 val_417 val_417
+417 val_417 val_417
+417 val_417 val_417
+417 val_417 val_417
419 val_419 val_419
+42 val_42 val_42
+42 val_42 val_42
+42 val_42 val_42
+42 val_42 val_42
+424 val_424 val_424
+424 val_424 val_424
+424 val_424 val_424
+424 val_424 val_424
+431 val_431 val_431
+431 val_431 val_431
+431 val_431 val_431
+431 val_431 val_431
+431 val_431 val_431
+431 val_431 val_431
+431 val_431 val_431
+431 val_431 val_431
+431 val_431 val_431
435 val_435 val_435
437 val_437 val_437
+439 val_439 val_439
+439 val_439 val_439
+439 val_439 val_439
+439 val_439 val_439
44 val_44 val_44
444 val_444 val_444
446 val_446 val_446
@@ -7413,16 +7355,62 @@ POSTHOOK: Input: default@tab_part_n9@ds=2008-04-08
453 val_453 val_453
455 val_455 val_455
457 val_457 val_457
+459 val_459 val_459
+459 val_459 val_459
+459 val_459 val_459
+459 val_459 val_459
460 val_460 val_460
+462 val_462 val_462
+462 val_462 val_462
+462 val_462 val_462
+462 val_462 val_462
+466 val_466 val_466
+466 val_466 val_466
+466 val_466 val_466
+466 val_466 val_466
+466 val_466 val_466
+466 val_466 val_466
+466 val_466 val_466
+466 val_466 val_466
+466 val_466 val_466
+468 val_468 val_468
+468 val_468 val_468
+468 val_468 val_468
+468 val_468 val_468
+468 val_468 val_468
+468 val_468 val_468
+468 val_468 val_468
+468 val_468 val_468
+468 val_468 val_468
+468 val_468 val_468
+468 val_468 val_468
+468 val_468 val_468
+468 val_468 val_468
+468 val_468 val_468
+468 val_468 val_468
+468 val_468 val_468
475 val_475 val_475
477 val_477 val_477
479 val_479 val_479
+480 val_480 val_480
+480 val_480 val_480
+480 val_480 val_480
+480 val_480 val_480
+480 val_480 val_480
+480 val_480 val_480
+480 val_480 val_480
+480 val_480 val_480
+480 val_480 val_480
482 val_482 val_482
484 val_484 val_484
491 val_491 val_491
493 val_493 val_493
495 val_495 val_495
497 val_497 val_497
+51 val_51 val_51
+51 val_51 val_51
+51 val_51 val_51
+51 val_51 val_51
53 val_53 val_53
57 val_57 val_57
64 val_64 val_64
@@ -7431,4 +7419,16 @@ POSTHOOK: Input: default@tab_part_n9@ds=2008-04-08
8 val_8 val_8
80 val_80 val_80
82 val_82 val_82
+84 val_84 val_84
+84 val_84 val_84
+84 val_84 val_84
+84 val_84 val_84
86 val_86 val_86
+95 val_95 val_95
+95 val_95 val_95
+95 val_95 val_95
+95 val_95 val_95
+97 val_97 val_97
+97 val_97 val_97
+97 val_97 val_97
+97 val_97 val_97
diff --git a/ql/src/test/results/clientpositive/tez/hybridgrace_hashjoin_2.q.out b/ql/src/test/results/clientpositive/tez/hybridgrace_hashjoin_2.q.out
index 8e9bd05..d5f2e1e 100644
--- a/ql/src/test/results/clientpositive/tez/hybridgrace_hashjoin_2.q.out
+++ b/ql/src/test/results/clientpositive/tez/hybridgrace_hashjoin_2.q.out
@@ -1,21 +1,21 @@
-PREHOOK: query: SELECT 1
+PREHOOK: query: SELECT 'Test n-way join'
PREHOOK: type: QUERY
PREHOOK: Input: _dummy_database@_dummy_table
PREHOOK: Output: hdfs://### HDFS PATH ###
-POSTHOOK: query: SELECT 1
+POSTHOOK: query: SELECT 'Test n-way join'
POSTHOOK: type: QUERY
POSTHOOK: Input: _dummy_database@_dummy_table
POSTHOOK: Output: hdfs://### HDFS PATH ###
-1
-PREHOOK: query: SELECT 1
+Test n-way join
+PREHOOK: query: SELECT '3-way mapjoin (1 big table, 2 small tables)'
PREHOOK: type: QUERY
PREHOOK: Input: _dummy_database@_dummy_table
PREHOOK: Output: hdfs://### HDFS PATH ###
-POSTHOOK: query: SELECT 1
+POSTHOOK: query: SELECT '3-way mapjoin (1 big table, 2 small tables)'
POSTHOOK: type: QUERY
POSTHOOK: Input: _dummy_database@_dummy_table
POSTHOOK: Output: hdfs://### HDFS PATH ###
-1
+3-way mapjoin (1 big table, 2 small tables)
PREHOOK: query: EXPLAIN
SELECT COUNT(*)
FROM src1 x JOIN srcpart z ON (x.key = z.key)
@@ -305,6 +305,191 @@ STAGE PLANS:
PREHOOK: query: SELECT COUNT(*)
FROM src1 x JOIN srcpart z ON (x.key = z.key)
+JOIN srcpart w ON (x.key = w.key)
+JOIN src y ON (y.key = x.key)
+PREHOOK: type: QUERY
+PREHOOK: Input: default@src
+PREHOOK: Input: default@src1
+PREHOOK: Input: default@srcpart
+PREHOOK: Input: default@srcpart@ds=2008-04-08/hr=11
+PREHOOK: Input: default@srcpart@ds=2008-04-08/hr=12
+PREHOOK: Input: default@srcpart@ds=2008-04-09/hr=11
+PREHOOK: Input: default@srcpart@ds=2008-04-09/hr=12
+PREHOOK: Output: hdfs://### HDFS PATH ###
+POSTHOOK: query: SELECT COUNT(*)
+FROM src1 x JOIN srcpart z ON (x.key = z.key)
+JOIN srcpart w ON (x.key = w.key)
+JOIN src y ON (y.key = x.key)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@src
+POSTHOOK: Input: default@src1
+POSTHOOK: Input: default@srcpart
+POSTHOOK: Input: default@srcpart@ds=2008-04-08/hr=11
+POSTHOOK: Input: default@srcpart@ds=2008-04-08/hr=12
+POSTHOOK: Input: default@srcpart@ds=2008-04-09/hr=11
+POSTHOOK: Input: default@srcpart@ds=2008-04-09/hr=12
+POSTHOOK: Output: hdfs://### HDFS PATH ###
+PREHOOK: query: EXPLAIN ANALYZE SELECT COUNT(*)
+FROM src1 x JOIN srcpart z ON (x.key = z.key)
+JOIN srcpart w ON (x.key = w.key)
+JOIN src y ON (y.key = x.key)
+PREHOOK: type: QUERY
+PREHOOK: Input: default@src
+PREHOOK: Input: default@src1
+PREHOOK: Input: default@srcpart
+PREHOOK: Input: default@srcpart@ds=2008-04-08/hr=11
+PREHOOK: Input: default@srcpart@ds=2008-04-08/hr=12
+PREHOOK: Input: default@srcpart@ds=2008-04-09/hr=11
+PREHOOK: Input: default@srcpart@ds=2008-04-09/hr=12
+PREHOOK: Output: hdfs://### HDFS PATH ###
+POSTHOOK: query: EXPLAIN ANALYZE SELECT COUNT(*)
+FROM src1 x JOIN srcpart z ON (x.key = z.key)
+JOIN srcpart w ON (x.key = w.key)
+JOIN src y ON (y.key = x.key)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@src
+POSTHOOK: Input: default@src1
+POSTHOOK: Input: default@srcpart
+POSTHOOK: Input: default@srcpart@ds=2008-04-08/hr=11
+POSTHOOK: Input: default@srcpart@ds=2008-04-08/hr=12
+POSTHOOK: Input: default@srcpart@ds=2008-04-09/hr=11
+POSTHOOK: Input: default@srcpart@ds=2008-04-09/hr=12
+POSTHOOK: Output: hdfs://### HDFS PATH ###
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-0 depends on stages: Stage-1
+
+STAGE PLANS:
+ Stage: Stage-1
+ Tez
+#### A masked pattern was here ####
+ Edges:
+ Map 2 <- Map 1 (BROADCAST_EDGE)
+ Map 3 <- Map 2 (BROADCAST_EDGE), Map 5 (BROADCAST_EDGE)
+ Reducer 4 <- Map 3 (CUSTOM_SIMPLE_EDGE)
+#### A masked pattern was here ####
+ Vertices:
+ Map 1
+ Map Operator Tree:
+ TableScan
+ alias: x
+ filterExpr: key is not null (type: boolean)
+ Statistics: Num rows: 25/25 Data size: 2150 Basic stats: COMPLETE Column stats: COMPLETE
+ Filter Operator
+ predicate: key is not null (type: boolean)
+ Statistics: Num rows: 25/25 Data size: 2150 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ key expressions: key (type: string)
+ sort order: +
+ Map-reduce partition columns: key (type: string)
+ Statistics: Num rows: 25/25 Data size: 2150 Basic stats: COMPLETE Column stats: COMPLETE
+ Execution mode: vectorized
+ Map 2
+ Map Operator Tree:
+ TableScan
+ alias: z
+ filterExpr: key is not null (type: boolean)
+ Statistics: Num rows: 2000/2000 Data size: 174000 Basic stats: COMPLETE Column stats: COMPLETE
+ Filter Operator
+ predicate: key is not null (type: boolean)
+ Statistics: Num rows: 2000/2000 Data size: 174000 Basic stats: COMPLETE Column stats: COMPLETE
+ Map Join Operator
+ condition map:
+ Inner Join 0 to 1
+ keys:
+ 0 key (type: string)
+ 1 key (type: string)
+ outputColumnNames: _col0
+ input vertices:
+ 0 Map 1
+ Statistics: Num rows: 158/148 Data size: 13588 Basic stats: COMPLETE Column stats: COMPLETE
+ HybridGraceHashJoin: true
+ Reduce Output Operator
+ key expressions: _col0 (type: string)
+ sort order: +
+ Map-reduce partition columns: _col0 (type: string)
+ Statistics: Num rows: 158/148 Data size: 13588 Basic stats: COMPLETE Column stats: COMPLETE
+ Execution mode: vectorized
+ Map 3
+ Map Operator Tree:
+ TableScan
+ alias: w
+ filterExpr: key is not null (type: boolean)
+ Statistics: Num rows: 2000/2000 Data size: 174000 Basic stats: COMPLETE Column stats: COMPLETE
+ Filter Operator
+ predicate: key is not null (type: boolean)
+ Statistics: Num rows: 2000/2000 Data size: 174000 Basic stats: COMPLETE Column stats: COMPLETE
+ Map Join Operator
+ condition map:
+ Inner Join 0 to 1
+ keys:
+ 0 _col0 (type: string)
+ 1 key (type: string)
+ outputColumnNames: _col0
+ input vertices:
+ 0 Map 2
+ Statistics: Num rows: 1000/1712 Data size: 86000 Basic stats: COMPLETE Column stats: COMPLETE
+ HybridGraceHashJoin: true
+ Map Join Operator
+ condition map:
+ Inner Join 0 to 1
+ keys:
+ 0 _col0 (type: string)
+ 1 key (type: string)
+ input vertices:
+ 1 Map 5
+ Statistics: Num rows: 1582/5680 Data size: 12656 Basic stats: COMPLETE Column stats: COMPLETE
+ HybridGraceHashJoin: true
+ Group By Operator
+ aggregations: count()
+ minReductionHashAggr: 0.99
+ mode: hash
+ outputColumnNames: _col0
+ Statistics: Num rows: 1/1 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ sort order:
+ Statistics: Num rows: 1/1 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE
+ value expressions: _col0 (type: bigint)
+ Execution mode: vectorized
+ Map 5
+ Map Operator Tree:
+ TableScan
+ alias: y
+ filterExpr: key is not null (type: boolean)
+ Statistics: Num rows: 500/500 Data size: 43500 Basic stats: COMPLETE Column stats: COMPLETE
+ Filter Operator
+ predicate: key is not null (type: boolean)
+ Statistics: Num rows: 500/500 Data size: 43500 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ key expressions: key (type: string)
+ sort order: +
+ Map-reduce partition columns: key (type: string)
+ Statistics: Num rows: 500/500 Data size: 43500 Basic stats: COMPLETE Column stats: COMPLETE
+ Execution mode: vectorized
+ Reducer 4
+ Execution mode: vectorized
+ Reduce Operator Tree:
+ Group By Operator
+ aggregations: count(VALUE._col0)
+ mode: mergepartial
+ outputColumnNames: _col0
+ Statistics: Num rows: 1/1 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 1/1 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: SELECT COUNT(*)
+FROM src1 x JOIN srcpart z ON (x.key = z.key)
JOIN src y ON (y.key = x.key)
PREHOOK: type: QUERY
PREHOOK: Input: default@src
@@ -328,15 +513,15 @@ POSTHOOK: Input: default@srcpart@ds=2008-04-09/hr=11
POSTHOOK: Input: default@srcpart@ds=2008-04-09/hr=12
POSTHOOK: Output: hdfs://### HDFS PATH ###
428
-PREHOOK: query: SELECT 1
+PREHOOK: query: SELECT '4-way mapjoin (1 big table, 3 small tables)'
PREHOOK: type: QUERY
PREHOOK: Input: _dummy_database@_dummy_table
PREHOOK: Output: hdfs://### HDFS PATH ###
-POSTHOOK: query: SELECT 1
+POSTHOOK: query: SELECT '4-way mapjoin (1 big table, 3 small tables)'
POSTHOOK: type: QUERY
POSTHOOK: Input: _dummy_database@_dummy_table
POSTHOOK: Output: hdfs://### HDFS PATH ###
-1
+4-way mapjoin (1 big table, 3 small tables)
PREHOOK: query: EXPLAIN
SELECT COUNT(*)
FROM src1 x JOIN srcpart z ON (x.key = z.key)
@@ -495,7 +680,7 @@ STAGE PLANS:
Processor Tree:
ListSink
-PREHOOK: query: SELECT COUNT(*)
+PREHOOK: query: SELECT assert_true(5680 = COUNT(*))
FROM src1 x JOIN srcpart z ON (x.key = z.key)
JOIN srcpart w ON (x.key = w.key)
JOIN src y ON (y.key = x.key)
@@ -508,7 +693,7 @@ PREHOOK: Input: default@srcpart@ds=2008-04-08/hr=12
PREHOOK: Input: default@srcpart@ds=2008-04-09/hr=11
PREHOOK: Input: default@srcpart@ds=2008-04-09/hr=12
PREHOOK: Output: hdfs://### HDFS PATH ###
-POSTHOOK: query: SELECT COUNT(*)
+POSTHOOK: query: SELECT assert_true(5680 = COUNT(*))
FROM src1 x JOIN srcpart z ON (x.key = z.key)
JOIN srcpart w ON (x.key = w.key)
JOIN src y ON (y.key = x.key)
@@ -521,7 +706,7 @@ POSTHOOK: Input: default@srcpart@ds=2008-04-08/hr=12
POSTHOOK: Input: default@srcpart@ds=2008-04-09/hr=11
POSTHOOK: Input: default@srcpart@ds=2008-04-09/hr=12
POSTHOOK: Output: hdfs://### HDFS PATH ###
-0
+NULL
PREHOOK: query: EXPLAIN
SELECT COUNT(*)
FROM src1 x JOIN srcpart z ON (x.key = z.key)
@@ -683,7 +868,7 @@ STAGE PLANS:
Processor Tree:
ListSink
-PREHOOK: query: SELECT COUNT(*)
+PREHOOK: query: SELECT assert_true(5680 = COUNT(*))
FROM src1 x JOIN srcpart z ON (x.key = z.key)
JOIN srcpart w ON (x.key = w.key)
JOIN src y ON (y.key = x.key)
@@ -696,7 +881,7 @@ PREHOOK: Input: default@srcpart@ds=2008-04-08/hr=12
PREHOOK: Input: default@srcpart@ds=2008-04-09/hr=11
PREHOOK: Input: default@srcpart@ds=2008-04-09/hr=12
PREHOOK: Output: hdfs://### HDFS PATH ###
-POSTHOOK: query: SELECT COUNT(*)
+POSTHOOK: query: SELECT assert_true(5680 = COUNT(*))
FROM src1 x JOIN srcpart z ON (x.key = z.key)
JOIN srcpart w ON (x.key = w.key)
JOIN src y ON (y.key = x.key)
@@ -709,16 +894,16 @@ POSTHOOK: Input: default@srcpart@ds=2008-04-08/hr=12
POSTHOOK: Input: default@srcpart@ds=2008-04-09/hr=11
POSTHOOK: Input: default@srcpart@ds=2008-04-09/hr=12
POSTHOOK: Output: hdfs://### HDFS PATH ###
-0
-PREHOOK: query: SELECT 1
+NULL
+PREHOOK: query: SELECT '2 sets of 3-way mapjoin under 2 different tasks'
PREHOOK: type: QUERY
PREHOOK: Input: _dummy_database@_dummy_table
PREHOOK: Output: hdfs://### HDFS PATH ###
-POSTHOOK: query: SELECT 1
+POSTHOOK: query: SELECT '2 sets of 3-way mapjoin under 2 different tasks'
POSTHOOK: type: QUERY
POSTHOOK: Input: _dummy_database@_dummy_table
POSTHOOK: Output: hdfs://### HDFS PATH ###
-1
+2 sets of 3-way mapjoin under 2 different tasks
PREHOOK: query: EXPLAIN
SELECT COUNT(*)
FROM src1 x JOIN srcpart z ON (x.key = z.key)
@@ -1291,15 +1476,15 @@ POSTHOOK: Input: default@srcpart@ds=2008-04-09/hr=12
POSTHOOK: Output: hdfs://### HDFS PATH ###
428
452
-PREHOOK: query: SELECT 1
+PREHOOK: query: SELECT 'A chain of 2 sets of 3-way mapjoin under the same task'
PREHOOK: type: QUERY
PREHOOK: Input: _dummy_database@_dummy_table
PREHOOK: Output: hdfs://### HDFS PATH ###
-POSTHOOK: query: SELECT 1
+POSTHOOK: query: SELECT 'A chain of 2 sets of 3-way mapjoin under the same task'
POSTHOOK: type: QUERY
POSTHOOK: Input: _dummy_database@_dummy_table
POSTHOOK: Output: hdfs://### HDFS PATH ###
-1
+A chain of 2 sets of 3-way mapjoin under the same task
PREHOOK: query: EXPLAIN
SELECT COUNT(*)
FROM src1 x