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 <[email protected]>
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 <[email protected]>
---
 .../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

Reply via email to