HIVE-10542: Full outer joins in tez produce incorrect results in certain cases 
(Vikram Dixit K, reviewed by Gunther Hagleitner)


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

Branch: refs/heads/beeline-cli
Commit: 26ec033c89a61fa0bf95b9b66da0842b22ec4c9b
Parents: 4b44408
Author: vikram <vik...@hortonworks.com>
Authored: Wed May 6 22:18:28 2015 -0700
Committer: vikram <vik...@hortonworks.com>
Committed: Wed May 6 22:18:28 2015 -0700

----------------------------------------------------------------------
 .../test/resources/testconfiguration.properties |   2 +-
 .../hive/ql/exec/CommonMergeJoinOperator.java   |  54 +-
 ql/src/test/queries/clientpositive/mergejoin.q  |  17 +
 .../test/results/clientpositive/mergejoin.q.out | 844 ++++++++++++++++---
 .../clientpositive/tez/auto_join29.q.out        | 500 +++++++++++
 .../results/clientpositive/tez/mergejoin.q.out  | 844 ++++++++++++++++---
 6 files changed, 2005 insertions(+), 256 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hive/blob/26ec033c/itests/src/test/resources/testconfiguration.properties
----------------------------------------------------------------------
diff --git a/itests/src/test/resources/testconfiguration.properties 
b/itests/src/test/resources/testconfiguration.properties
index 134fded..3eff7d0 100644
--- a/itests/src/test/resources/testconfiguration.properties
+++ b/itests/src/test/resources/testconfiguration.properties
@@ -124,6 +124,7 @@ minitez.query.files.shared=alter_merge_2_orc.q,\
   mapreduce2.q,\
   merge1.q,\
   merge2.q,\
+  mergejoin.q,\
   metadataonly1.q,\
   metadata_only_queries.q,\
   optimize_nullscan.q,\
@@ -160,7 +161,6 @@ minitez.query.files.shared=alter_merge_2_orc.q,\
   transform1.q,\
   transform2.q,\
   transform_ppr1.q,\
-  mergejoin.q,\
   transform_ppr2.q,\
   union2.q,\
   union3.q,\

http://git-wip-us.apache.org/repos/asf/hive/blob/26ec033c/ql/src/java/org/apache/hadoop/hive/ql/exec/CommonMergeJoinOperator.java
----------------------------------------------------------------------
diff --git 
a/ql/src/java/org/apache/hadoop/hive/ql/exec/CommonMergeJoinOperator.java 
b/ql/src/java/org/apache/hadoop/hive/ql/exec/CommonMergeJoinOperator.java
index cb0a5e7..d1d5e2b 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/CommonMergeJoinOperator.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/CommonMergeJoinOperator.java
@@ -20,10 +20,13 @@ package org.apache.hadoop.hive.ql.exec;
 
 import java.io.Serializable;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.Collection;
 import java.util.List;
 import java.util.Map;
 import java.util.Map.Entry;
+import java.util.Set;
+import java.util.TreeSet;
 import java.util.concurrent.Future;
 
 import org.apache.commons.logging.Log;
@@ -36,6 +39,7 @@ import org.apache.hadoop.hive.ql.exec.tez.TezContext;
 import org.apache.hadoop.hive.ql.metadata.HiveException;
 import org.apache.hadoop.hive.ql.plan.CommonMergeJoinDesc;
 import org.apache.hadoop.hive.ql.plan.ExprNodeDesc;
+import org.apache.hadoop.hive.ql.plan.JoinCondDesc;
 import org.apache.hadoop.hive.ql.plan.OperatorDesc;
 import org.apache.hadoop.hive.ql.plan.api.OperatorType;
 import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspectorUtils;
@@ -83,6 +87,7 @@ public class CommonMergeJoinOperator extends 
AbstractMapJoinOperator<CommonMerge
 
   transient List<Operator<? extends OperatorDesc>> originalParents =
       new ArrayList<Operator<? extends OperatorDesc>>();
+  transient Set<Integer> fetchInputAtClose;
 
   public CommonMergeJoinOperator() {
     super();
@@ -93,6 +98,7 @@ public class CommonMergeJoinOperator extends 
AbstractMapJoinOperator<CommonMerge
   public Collection<Future<?>> initializeOp(Configuration hconf) throws 
HiveException {
     Collection<Future<?>> result = super.initializeOp(hconf);
     firstFetchHappened = false;
+    fetchInputAtClose = getFetchInputAtCloseList();
 
     int maxAlias = 0;
     for (byte pos = 0; pos < order.length; pos++) {
@@ -145,6 +151,25 @@ public class CommonMergeJoinOperator extends 
AbstractMapJoinOperator<CommonMerge
     return result;
   }
 
+  /*
+   * In case of outer joins, we need to push records through even if one of 
the sides is done
+   * sending records. For e.g. In the case of full outer join, the right side 
needs to send in data
+   * for the join even after the left side has completed sending all the 
records on its side. This
+   * can be done once at initialize time and at close, these tags will still 
forward records until
+   * they have no more to send. Also, subsequent joins need to fetch their 
data as well since
+   * any join following the outer join could produce results with one of the 
outer sides depending on
+   * the join condition. We could optimize for the case of inner joins in the 
future here.
+   */
+  private Set<Integer> getFetchInputAtCloseList() {
+    Set<Integer> retval = new TreeSet<Integer>();
+    for (JoinCondDesc joinCondDesc : conf.getConds()) {
+      retval.add(joinCondDesc.getLeft());
+      retval.add(joinCondDesc.getRight());
+    }
+
+    return retval;
+  }
+
   @Override
   public void endGroup() throws HiveException {
     // we do not want the end group to cause a checkAndGenObject
@@ -173,7 +198,6 @@ public class CommonMergeJoinOperator extends 
AbstractMapJoinOperator<CommonMerge
     List<Object> value = getFilteredValue(alias, row);
     // compute keys and values as StandardObjects
     List<Object> key = mergeJoinComputeKeys(row, alias);
-
     if (!firstFetchHappened) {
       firstFetchHappened = true;
       // fetch the first group for all small table aliases
@@ -405,9 +429,37 @@ public class CommonMergeJoinOperator extends 
AbstractMapJoinOperator<CommonMerge
 
     while (!allFetchDone) {
       List<Byte> ret = joinOneGroup();
+      for (int i = 0; i < fetchDone.length; i++) {
+        // if the fetch is not completed for the big table
+        if (i == posBigTable) {
+          // if we are in close op phase, we have definitely exhausted the big 
table input
+          fetchDone[i] = true;
+          continue;
+        }
+
+        // in case of outer joins, we need to pull in records from the sides 
we still
+        // need to produce output for apart from the big table. for e.g. full 
outer join
+        if ((fetchInputAtClose.contains(i)) && (fetchDone[i] == false)) {
+          // if we have never fetched, we need to fetch before we can do the 
join
+          if (firstFetchHappened == false) {
+            // we need to fetch all the needed ones at least once to ensure 
bootstrapping
+            if (i == (fetchDone.length - 1)) {
+              firstFetchHappened = true;
+            }
+            // This is a bootstrap. The joinOneGroup automatically fetches the 
next rows.
+            fetchNextGroup((byte) i);
+          }
+          // Do the join. It does fetching of next row groups itself.
+          if (i == (fetchDone.length - 1)) {
+            ret = joinOneGroup();
+          }
+        }
+      }
+
       if (ret == null || ret.size() == 0) {
         break;
       }
+
       reportProgress();
       numMapRowsRead++;
       allFetchDone = allFetchDone();

http://git-wip-us.apache.org/repos/asf/hive/blob/26ec033c/ql/src/test/queries/clientpositive/mergejoin.q
----------------------------------------------------------------------
diff --git a/ql/src/test/queries/clientpositive/mergejoin.q 
b/ql/src/test/queries/clientpositive/mergejoin.q
index 257337a..59374ca 100644
--- a/ql/src/test/queries/clientpositive/mergejoin.q
+++ b/ql/src/test/queries/clientpositive/mergejoin.q
@@ -6,11 +6,14 @@ set hive.optimize.metadataonly=false;
 set hive.optimize.index.filter=true;
 set hive.vectorized.execution.enabled=true;
 
+-- SORT_QUERY_RESULTS
+
 explain
 select * from src a join src1 b on a.key = b.key;
 
 select * from src a join src1 b on a.key = b.key;
 
+
 CREATE TABLE srcbucket_mapjoin(key int, value string) partitioned by (ds 
string) CLUSTERED BY (key) INTO 2 BUCKETS STORED AS TEXTFILE;
 CREATE TABLE tab_part (key int, value string) PARTITIONED BY(ds STRING) 
CLUSTERED BY (key) SORTED BY (key) INTO 4 BUCKETS STORED AS ORCFILE;
 CREATE TABLE srcbucket_mapjoin_part (key int, value string) partitioned by (ds 
string) CLUSTERED BY (key) INTO 4 BUCKETS STORED AS TEXTFILE;
@@ -105,3 +108,17 @@ join
 (select t2.key as id, t2.value as od from tab_part t2 order by id, od) rt2) vt2
 where vt1.id=vt2.id;
 
+set mapred.reduce.tasks=18;
+select * from (select * from tab where tab.key = 0)a full outer join (select * 
from tab_part where tab_part.key = 98)b on a.key = b.key;
+select * from (select * from tab where tab.key = 0)a right outer join (select 
* from tab_part where tab_part.key = 98)b on a.key = b.key;
+
+select * from
+(select * from tab where tab.key = 0)a
+full outer join
+(select * from tab_part where tab_part.key = 98)b join tab_part c on a.key = 
b.key and b.key = c.key;
+
+select * from
+(select * from tab where tab.key = 0)a
+join
+(select * from tab_part where tab_part.key = 98)b full outer join tab_part c 
on a.key = b.key and b.key = c.key;
+

http://git-wip-us.apache.org/repos/asf/hive/blob/26ec033c/ql/src/test/results/clientpositive/mergejoin.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/mergejoin.q.out 
b/ql/src/test/results/clientpositive/mergejoin.q.out
index af3d7df..cb96ab3 100644
--- a/ql/src/test/results/clientpositive/mergejoin.q.out
+++ b/ql/src/test/results/clientpositive/mergejoin.q.out
@@ -1,7 +1,11 @@
-PREHOOK: query: explain
+PREHOOK: query: -- SORT_QUERY_RESULTS
+
+explain
 select * from src a join src1 b on a.key = b.key
 PREHOOK: type: QUERY
-POSTHOOK: query: explain
+POSTHOOK: query: -- SORT_QUERY_RESULTS
+
+explain
 select * from src a join src1 b on a.key = b.key
 POSTHOOK: type: QUERY
 STAGE DEPENDENCIES:
@@ -338,74 +342,12 @@ POSTHOOK: Input: default@tab_part@ds=2008-04-08
 0      val_0   2008-04-08      0       val_0   2008-04-08
 0      val_0   2008-04-08      0       val_0   2008-04-08
 0      val_0   2008-04-08      0       val_0   2008-04-08
-2      val_2   2008-04-08      2       val_2   2008-04-08
-4      val_4   2008-04-08      4       val_4   2008-04-08
-8      val_8   2008-04-08      8       val_8   2008-04-08
-11     val_11  2008-04-08      11      val_11  2008-04-08
-15     val_15  2008-04-08      15      val_15  2008-04-08
-15     val_15  2008-04-08      15      val_15  2008-04-08
-15     val_15  2008-04-08      15      val_15  2008-04-08
-15     val_15  2008-04-08      15      val_15  2008-04-08
-17     val_17  2008-04-08      17      val_17  2008-04-08
-19     val_19  2008-04-08      19      val_19  2008-04-08
-20     val_20  2008-04-08      20      val_20  2008-04-08
-24     val_24  2008-04-08      24      val_24  2008-04-08
-24     val_24  2008-04-08      24      val_24  2008-04-08
-24     val_24  2008-04-08      24      val_24  2008-04-08
-24     val_24  2008-04-08      24      val_24  2008-04-08
-26     val_26  2008-04-08      26      val_26  2008-04-08
-26     val_26  2008-04-08      26      val_26  2008-04-08
-26     val_26  2008-04-08      26      val_26  2008-04-08
-26     val_26  2008-04-08      26      val_26  2008-04-08
-28     val_28  2008-04-08      28      val_28  2008-04-08
-33     val_33  2008-04-08      33      val_33  2008-04-08
-35     val_35  2008-04-08      35      val_35  2008-04-08
-35     val_35  2008-04-08      35      val_35  2008-04-08
-35     val_35  2008-04-08      35      val_35  2008-04-08
-35     val_35  2008-04-08      35      val_35  2008-04-08
-35     val_35  2008-04-08      35      val_35  2008-04-08
-35     val_35  2008-04-08      35      val_35  2008-04-08
-35     val_35  2008-04-08      35      val_35  2008-04-08
-35     val_35  2008-04-08      35      val_35  2008-04-08
-35     val_35  2008-04-08      35      val_35  2008-04-08
-37     val_37  2008-04-08      37      val_37  2008-04-08
-37     val_37  2008-04-08      37      val_37  2008-04-08
-37     val_37  2008-04-08      37      val_37  2008-04-08
-37     val_37  2008-04-08      37      val_37  2008-04-08
-42     val_42  2008-04-08      42      val_42  2008-04-08
-42     val_42  2008-04-08      42      val_42  2008-04-08
-42     val_42  2008-04-08      42      val_42  2008-04-08
-42     val_42  2008-04-08      42      val_42  2008-04-08
-44     val_44  2008-04-08      44      val_44  2008-04-08
-51     val_51  2008-04-08      51      val_51  2008-04-08
-51     val_51  2008-04-08      51      val_51  2008-04-08
-51     val_51  2008-04-08      51      val_51  2008-04-08
-51     val_51  2008-04-08      51      val_51  2008-04-08
-53     val_53  2008-04-08      53      val_53  2008-04-08
-57     val_57  2008-04-08      57      val_57  2008-04-08
-64     val_64  2008-04-08      64      val_64  2008-04-08
-66     val_66  2008-04-08      66      val_66  2008-04-08
-77     val_77  2008-04-08      77      val_77  2008-04-08
-80     val_80  2008-04-08      80      val_80  2008-04-08
-82     val_82  2008-04-08      82      val_82  2008-04-08
-84     val_84  2008-04-08      84      val_84  2008-04-08
-84     val_84  2008-04-08      84      val_84  2008-04-08
-84     val_84  2008-04-08      84      val_84  2008-04-08
-84     val_84  2008-04-08      84      val_84  2008-04-08
-86     val_86  2008-04-08      86      val_86  2008-04-08
-95     val_95  2008-04-08      95      val_95  2008-04-08
-95     val_95  2008-04-08      95      val_95  2008-04-08
-95     val_95  2008-04-08      95      val_95  2008-04-08
-95     val_95  2008-04-08      95      val_95  2008-04-08
-97     val_97  2008-04-08      97      val_97  2008-04-08
-97     val_97  2008-04-08      97      val_97  2008-04-08
-97     val_97  2008-04-08      97      val_97  2008-04-08
-97     val_97  2008-04-08      97      val_97  2008-04-08
 103    val_103 2008-04-08      103     val_103 2008-04-08
 103    val_103 2008-04-08      103     val_103 2008-04-08
 103    val_103 2008-04-08      103     val_103 2008-04-08
 103    val_103 2008-04-08      103     val_103 2008-04-08
 105    val_105 2008-04-08      105     val_105 2008-04-08
+11     val_11  2008-04-08      11      val_11  2008-04-08
 114    val_114 2008-04-08      114     val_114 2008-04-08
 116    val_116 2008-04-08      116     val_116 2008-04-08
 118    val_118 2008-04-08      118     val_118 2008-04-08
@@ -447,6 +389,10 @@ POSTHOOK: Input: default@tab_part@ds=2008-04-08
 149    val_149 2008-04-08      149     val_149 2008-04-08
 149    val_149 2008-04-08      149     val_149 2008-04-08
 149    val_149 2008-04-08      149     val_149 2008-04-08
+15     val_15  2008-04-08      15      val_15  2008-04-08
+15     val_15  2008-04-08      15      val_15  2008-04-08
+15     val_15  2008-04-08      15      val_15  2008-04-08
+15     val_15  2008-04-08      15      val_15  2008-04-08
 150    val_150 2008-04-08      150     val_150 2008-04-08
 152    val_152 2008-04-08      152     val_152 2008-04-08
 152    val_152 2008-04-08      152     val_152 2008-04-08
@@ -484,6 +430,7 @@ POSTHOOK: Input: default@tab_part@ds=2008-04-08
 169    val_169 2008-04-08      169     val_169 2008-04-08
 169    val_169 2008-04-08      169     val_169 2008-04-08
 169    val_169 2008-04-08      169     val_169 2008-04-08
+17     val_17  2008-04-08      17      val_17  2008-04-08
 170    val_170 2008-04-08      170     val_170 2008-04-08
 172    val_172 2008-04-08      172     val_172 2008-04-08
 172    val_172 2008-04-08      172     val_172 2008-04-08
@@ -510,10 +457,13 @@ POSTHOOK: Input: default@tab_part@ds=2008-04-08
 187    val_187 2008-04-08      187     val_187 2008-04-08
 187    val_187 2008-04-08      187     val_187 2008-04-08
 189    val_189 2008-04-08      189     val_189 2008-04-08
+19     val_19  2008-04-08      19      val_19  2008-04-08
 190    val_190 2008-04-08      190     val_190 2008-04-08
 192    val_192 2008-04-08      192     val_192 2008-04-08
 194    val_194 2008-04-08      194     val_194 2008-04-08
 196    val_196 2008-04-08      196     val_196 2008-04-08
+2      val_2   2008-04-08      2       val_2   2008-04-08
+20     val_20  2008-04-08      20      val_20  2008-04-08
 200    val_200 2008-04-08      200     val_200 2008-04-08
 200    val_200 2008-04-08      200     val_200 2008-04-08
 200    val_200 2008-04-08      200     val_200 2008-04-08
@@ -560,6 +510,10 @@ POSTHOOK: Input: default@tab_part@ds=2008-04-08
 239    val_239 2008-04-08      239     val_239 2008-04-08
 239    val_239 2008-04-08      239     val_239 2008-04-08
 239    val_239 2008-04-08      239     val_239 2008-04-08
+24     val_24  2008-04-08      24      val_24  2008-04-08
+24     val_24  2008-04-08      24      val_24  2008-04-08
+24     val_24  2008-04-08      24      val_24  2008-04-08
+24     val_24  2008-04-08      24      val_24  2008-04-08
 242    val_242 2008-04-08      242     val_242 2008-04-08
 242    val_242 2008-04-08      242     val_242 2008-04-08
 242    val_242 2008-04-08      242     val_242 2008-04-08
@@ -571,6 +525,10 @@ POSTHOOK: Input: default@tab_part@ds=2008-04-08
 255    val_255 2008-04-08      255     val_255 2008-04-08
 255    val_255 2008-04-08      255     val_255 2008-04-08
 257    val_257 2008-04-08      257     val_257 2008-04-08
+26     val_26  2008-04-08      26      val_26  2008-04-08
+26     val_26  2008-04-08      26      val_26  2008-04-08
+26     val_26  2008-04-08      26      val_26  2008-04-08
+26     val_26  2008-04-08      26      val_26  2008-04-08
 260    val_260 2008-04-08      260     val_260 2008-04-08
 262    val_262 2008-04-08      262     val_262 2008-04-08
 266    val_266 2008-04-08      266     val_266 2008-04-08
@@ -600,6 +558,7 @@ POSTHOOK: Input: default@tab_part@ds=2008-04-08
 277    val_277 2008-04-08      277     val_277 2008-04-08
 277    val_277 2008-04-08      277     val_277 2008-04-08
 277    val_277 2008-04-08      277     val_277 2008-04-08
+28     val_28  2008-04-08      28      val_28  2008-04-08
 280    val_280 2008-04-08      280     val_280 2008-04-08
 280    val_280 2008-04-08      280     val_280 2008-04-08
 280    val_280 2008-04-08      280     val_280 2008-04-08
@@ -661,11 +620,21 @@ POSTHOOK: Input: default@tab_part@ds=2008-04-08
 327    val_327 2008-04-08      327     val_327 2008-04-08
 327    val_327 2008-04-08      327     val_327 2008-04-08
 327    val_327 2008-04-08      327     val_327 2008-04-08
+33     val_33  2008-04-08      33      val_33  2008-04-08
 332    val_332 2008-04-08      332     val_332 2008-04-08
 336    val_336 2008-04-08      336     val_336 2008-04-08
 338    val_338 2008-04-08      338     val_338 2008-04-08
 341    val_341 2008-04-08      341     val_341 2008-04-08
 345    val_345 2008-04-08      345     val_345 2008-04-08
+35     val_35  2008-04-08      35      val_35  2008-04-08
+35     val_35  2008-04-08      35      val_35  2008-04-08
+35     val_35  2008-04-08      35      val_35  2008-04-08
+35     val_35  2008-04-08      35      val_35  2008-04-08
+35     val_35  2008-04-08      35      val_35  2008-04-08
+35     val_35  2008-04-08      35      val_35  2008-04-08
+35     val_35  2008-04-08      35      val_35  2008-04-08
+35     val_35  2008-04-08      35      val_35  2008-04-08
+35     val_35  2008-04-08      35      val_35  2008-04-08
 356    val_356 2008-04-08      356     val_356 2008-04-08
 365    val_365 2008-04-08      365     val_365 2008-04-08
 367    val_367 2008-04-08      367     val_367 2008-04-08
@@ -681,6 +650,10 @@ POSTHOOK: Input: default@tab_part@ds=2008-04-08
 369    val_369 2008-04-08      369     val_369 2008-04-08
 369    val_369 2008-04-08      369     val_369 2008-04-08
 369    val_369 2008-04-08      369     val_369 2008-04-08
+37     val_37  2008-04-08      37      val_37  2008-04-08
+37     val_37  2008-04-08      37      val_37  2008-04-08
+37     val_37  2008-04-08      37      val_37  2008-04-08
+37     val_37  2008-04-08      37      val_37  2008-04-08
 374    val_374 2008-04-08      374     val_374 2008-04-08
 378    val_378 2008-04-08      378     val_378 2008-04-08
 389    val_389 2008-04-08      389     val_389 2008-04-08
@@ -695,6 +668,7 @@ POSTHOOK: Input: default@tab_part@ds=2008-04-08
 396    val_396 2008-04-08      396     val_396 2008-04-08
 396    val_396 2008-04-08      396     val_396 2008-04-08
 396    val_396 2008-04-08      396     val_396 2008-04-08
+4      val_4   2008-04-08      4       val_4   2008-04-08
 400    val_400 2008-04-08      400     val_400 2008-04-08
 402    val_402 2008-04-08      402     val_402 2008-04-08
 404    val_404 2008-04-08      404     val_404 2008-04-08
@@ -732,6 +706,10 @@ POSTHOOK: Input: default@tab_part@ds=2008-04-08
 417    val_417 2008-04-08      417     val_417 2008-04-08
 417    val_417 2008-04-08      417     val_417 2008-04-08
 419    val_419 2008-04-08      419     val_419 2008-04-08
+42     val_42  2008-04-08      42      val_42  2008-04-08
+42     val_42  2008-04-08      42      val_42  2008-04-08
+42     val_42  2008-04-08      42      val_42  2008-04-08
+42     val_42  2008-04-08      42      val_42  2008-04-08
 424    val_424 2008-04-08      424     val_424 2008-04-08
 424    val_424 2008-04-08      424     val_424 2008-04-08
 424    val_424 2008-04-08      424     val_424 2008-04-08
@@ -751,6 +729,7 @@ POSTHOOK: Input: default@tab_part@ds=2008-04-08
 439    val_439 2008-04-08      439     val_439 2008-04-08
 439    val_439 2008-04-08      439     val_439 2008-04-08
 439    val_439 2008-04-08      439     val_439 2008-04-08
+44     val_44  2008-04-08      44      val_44  2008-04-08
 444    val_444 2008-04-08      444     val_444 2008-04-08
 446    val_446 2008-04-08      446     val_446 2008-04-08
 448    val_448 2008-04-08      448     val_448 2008-04-08
@@ -809,68 +788,6 @@ POSTHOOK: Input: default@tab_part@ds=2008-04-08
 493    val_493 2008-04-08      493     val_493 2008-04-08
 495    val_495 2008-04-08      495     val_495 2008-04-08
 497    val_497 2008-04-08      497     val_497 2008-04-08
-PREHOOK: query: select * from tab a join tab_part b on a.key = b.key
-PREHOOK: type: QUERY
-PREHOOK: Input: default@tab
-PREHOOK: Input: default@tab@ds=2008-04-08
-PREHOOK: Input: default@tab_part
-PREHOOK: Input: default@tab_part@ds=2008-04-08
-#### A masked pattern was here ####
-POSTHOOK: query: select * from tab a join tab_part b on a.key = b.key
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@tab
-POSTHOOK: Input: default@tab@ds=2008-04-08
-POSTHOOK: Input: default@tab_part
-POSTHOOK: Input: default@tab_part@ds=2008-04-08
-#### A masked pattern was here ####
-0      val_0   2008-04-08      0       val_0   2008-04-08
-0      val_0   2008-04-08      0       val_0   2008-04-08
-0      val_0   2008-04-08      0       val_0   2008-04-08
-0      val_0   2008-04-08      0       val_0   2008-04-08
-0      val_0   2008-04-08      0       val_0   2008-04-08
-0      val_0   2008-04-08      0       val_0   2008-04-08
-0      val_0   2008-04-08      0       val_0   2008-04-08
-0      val_0   2008-04-08      0       val_0   2008-04-08
-0      val_0   2008-04-08      0       val_0   2008-04-08
-2      val_2   2008-04-08      2       val_2   2008-04-08
-4      val_4   2008-04-08      4       val_4   2008-04-08
-8      val_8   2008-04-08      8       val_8   2008-04-08
-11     val_11  2008-04-08      11      val_11  2008-04-08
-15     val_15  2008-04-08      15      val_15  2008-04-08
-15     val_15  2008-04-08      15      val_15  2008-04-08
-15     val_15  2008-04-08      15      val_15  2008-04-08
-15     val_15  2008-04-08      15      val_15  2008-04-08
-17     val_17  2008-04-08      17      val_17  2008-04-08
-19     val_19  2008-04-08      19      val_19  2008-04-08
-20     val_20  2008-04-08      20      val_20  2008-04-08
-24     val_24  2008-04-08      24      val_24  2008-04-08
-24     val_24  2008-04-08      24      val_24  2008-04-08
-24     val_24  2008-04-08      24      val_24  2008-04-08
-24     val_24  2008-04-08      24      val_24  2008-04-08
-26     val_26  2008-04-08      26      val_26  2008-04-08
-26     val_26  2008-04-08      26      val_26  2008-04-08
-26     val_26  2008-04-08      26      val_26  2008-04-08
-26     val_26  2008-04-08      26      val_26  2008-04-08
-28     val_28  2008-04-08      28      val_28  2008-04-08
-33     val_33  2008-04-08      33      val_33  2008-04-08
-35     val_35  2008-04-08      35      val_35  2008-04-08
-35     val_35  2008-04-08      35      val_35  2008-04-08
-35     val_35  2008-04-08      35      val_35  2008-04-08
-35     val_35  2008-04-08      35      val_35  2008-04-08
-35     val_35  2008-04-08      35      val_35  2008-04-08
-35     val_35  2008-04-08      35      val_35  2008-04-08
-35     val_35  2008-04-08      35      val_35  2008-04-08
-35     val_35  2008-04-08      35      val_35  2008-04-08
-35     val_35  2008-04-08      35      val_35  2008-04-08
-37     val_37  2008-04-08      37      val_37  2008-04-08
-37     val_37  2008-04-08      37      val_37  2008-04-08
-37     val_37  2008-04-08      37      val_37  2008-04-08
-37     val_37  2008-04-08      37      val_37  2008-04-08
-42     val_42  2008-04-08      42      val_42  2008-04-08
-42     val_42  2008-04-08      42      val_42  2008-04-08
-42     val_42  2008-04-08      42      val_42  2008-04-08
-42     val_42  2008-04-08      42      val_42  2008-04-08
-44     val_44  2008-04-08      44      val_44  2008-04-08
 51     val_51  2008-04-08      51      val_51  2008-04-08
 51     val_51  2008-04-08      51      val_51  2008-04-08
 51     val_51  2008-04-08      51      val_51  2008-04-08
@@ -880,6 +797,7 @@ POSTHOOK: Input: default@tab_part@ds=2008-04-08
 64     val_64  2008-04-08      64      val_64  2008-04-08
 66     val_66  2008-04-08      66      val_66  2008-04-08
 77     val_77  2008-04-08      77      val_77  2008-04-08
+8      val_8   2008-04-08      8       val_8   2008-04-08
 80     val_80  2008-04-08      80      val_80  2008-04-08
 82     val_82  2008-04-08      82      val_82  2008-04-08
 84     val_84  2008-04-08      84      val_84  2008-04-08
@@ -895,11 +813,35 @@ POSTHOOK: Input: default@tab_part@ds=2008-04-08
 97     val_97  2008-04-08      97      val_97  2008-04-08
 97     val_97  2008-04-08      97      val_97  2008-04-08
 97     val_97  2008-04-08      97      val_97  2008-04-08
+PREHOOK: query: select * from tab a join tab_part b on a.key = b.key
+PREHOOK: type: QUERY
+PREHOOK: Input: default@tab
+PREHOOK: Input: default@tab@ds=2008-04-08
+PREHOOK: Input: default@tab_part
+PREHOOK: Input: default@tab_part@ds=2008-04-08
+#### A masked pattern was here ####
+POSTHOOK: query: select * from tab a join tab_part b on a.key = b.key
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@tab
+POSTHOOK: Input: default@tab@ds=2008-04-08
+POSTHOOK: Input: default@tab_part
+POSTHOOK: Input: default@tab_part@ds=2008-04-08
+#### A masked pattern was here ####
+0      val_0   2008-04-08      0       val_0   2008-04-08
+0      val_0   2008-04-08      0       val_0   2008-04-08
+0      val_0   2008-04-08      0       val_0   2008-04-08
+0      val_0   2008-04-08      0       val_0   2008-04-08
+0      val_0   2008-04-08      0       val_0   2008-04-08
+0      val_0   2008-04-08      0       val_0   2008-04-08
+0      val_0   2008-04-08      0       val_0   2008-04-08
+0      val_0   2008-04-08      0       val_0   2008-04-08
+0      val_0   2008-04-08      0       val_0   2008-04-08
 103    val_103 2008-04-08      103     val_103 2008-04-08
 103    val_103 2008-04-08      103     val_103 2008-04-08
 103    val_103 2008-04-08      103     val_103 2008-04-08
 103    val_103 2008-04-08      103     val_103 2008-04-08
 105    val_105 2008-04-08      105     val_105 2008-04-08
+11     val_11  2008-04-08      11      val_11  2008-04-08
 114    val_114 2008-04-08      114     val_114 2008-04-08
 116    val_116 2008-04-08      116     val_116 2008-04-08
 118    val_118 2008-04-08      118     val_118 2008-04-08
@@ -941,6 +883,10 @@ POSTHOOK: Input: default@tab_part@ds=2008-04-08
 149    val_149 2008-04-08      149     val_149 2008-04-08
 149    val_149 2008-04-08      149     val_149 2008-04-08
 149    val_149 2008-04-08      149     val_149 2008-04-08
+15     val_15  2008-04-08      15      val_15  2008-04-08
+15     val_15  2008-04-08      15      val_15  2008-04-08
+15     val_15  2008-04-08      15      val_15  2008-04-08
+15     val_15  2008-04-08      15      val_15  2008-04-08
 150    val_150 2008-04-08      150     val_150 2008-04-08
 152    val_152 2008-04-08      152     val_152 2008-04-08
 152    val_152 2008-04-08      152     val_152 2008-04-08
@@ -978,6 +924,7 @@ POSTHOOK: Input: default@tab_part@ds=2008-04-08
 169    val_169 2008-04-08      169     val_169 2008-04-08
 169    val_169 2008-04-08      169     val_169 2008-04-08
 169    val_169 2008-04-08      169     val_169 2008-04-08
+17     val_17  2008-04-08      17      val_17  2008-04-08
 170    val_170 2008-04-08      170     val_170 2008-04-08
 172    val_172 2008-04-08      172     val_172 2008-04-08
 172    val_172 2008-04-08      172     val_172 2008-04-08
@@ -1004,10 +951,13 @@ POSTHOOK: Input: default@tab_part@ds=2008-04-08
 187    val_187 2008-04-08      187     val_187 2008-04-08
 187    val_187 2008-04-08      187     val_187 2008-04-08
 189    val_189 2008-04-08      189     val_189 2008-04-08
+19     val_19  2008-04-08      19      val_19  2008-04-08
 190    val_190 2008-04-08      190     val_190 2008-04-08
 192    val_192 2008-04-08      192     val_192 2008-04-08
 194    val_194 2008-04-08      194     val_194 2008-04-08
 196    val_196 2008-04-08      196     val_196 2008-04-08
+2      val_2   2008-04-08      2       val_2   2008-04-08
+20     val_20  2008-04-08      20      val_20  2008-04-08
 200    val_200 2008-04-08      200     val_200 2008-04-08
 200    val_200 2008-04-08      200     val_200 2008-04-08
 200    val_200 2008-04-08      200     val_200 2008-04-08
@@ -1054,6 +1004,10 @@ POSTHOOK: Input: default@tab_part@ds=2008-04-08
 239    val_239 2008-04-08      239     val_239 2008-04-08
 239    val_239 2008-04-08      239     val_239 2008-04-08
 239    val_239 2008-04-08      239     val_239 2008-04-08
+24     val_24  2008-04-08      24      val_24  2008-04-08
+24     val_24  2008-04-08      24      val_24  2008-04-08
+24     val_24  2008-04-08      24      val_24  2008-04-08
+24     val_24  2008-04-08      24      val_24  2008-04-08
 242    val_242 2008-04-08      242     val_242 2008-04-08
 242    val_242 2008-04-08      242     val_242 2008-04-08
 242    val_242 2008-04-08      242     val_242 2008-04-08
@@ -1065,6 +1019,10 @@ POSTHOOK: Input: default@tab_part@ds=2008-04-08
 255    val_255 2008-04-08      255     val_255 2008-04-08
 255    val_255 2008-04-08      255     val_255 2008-04-08
 257    val_257 2008-04-08      257     val_257 2008-04-08
+26     val_26  2008-04-08      26      val_26  2008-04-08
+26     val_26  2008-04-08      26      val_26  2008-04-08
+26     val_26  2008-04-08      26      val_26  2008-04-08
+26     val_26  2008-04-08      26      val_26  2008-04-08
 260    val_260 2008-04-08      260     val_260 2008-04-08
 262    val_262 2008-04-08      262     val_262 2008-04-08
 266    val_266 2008-04-08      266     val_266 2008-04-08
@@ -1094,6 +1052,7 @@ POSTHOOK: Input: default@tab_part@ds=2008-04-08
 277    val_277 2008-04-08      277     val_277 2008-04-08
 277    val_277 2008-04-08      277     val_277 2008-04-08
 277    val_277 2008-04-08      277     val_277 2008-04-08
+28     val_28  2008-04-08      28      val_28  2008-04-08
 280    val_280 2008-04-08      280     val_280 2008-04-08
 280    val_280 2008-04-08      280     val_280 2008-04-08
 280    val_280 2008-04-08      280     val_280 2008-04-08
@@ -1155,11 +1114,21 @@ POSTHOOK: Input: default@tab_part@ds=2008-04-08
 327    val_327 2008-04-08      327     val_327 2008-04-08
 327    val_327 2008-04-08      327     val_327 2008-04-08
 327    val_327 2008-04-08      327     val_327 2008-04-08
+33     val_33  2008-04-08      33      val_33  2008-04-08
 332    val_332 2008-04-08      332     val_332 2008-04-08
 336    val_336 2008-04-08      336     val_336 2008-04-08
 338    val_338 2008-04-08      338     val_338 2008-04-08
 341    val_341 2008-04-08      341     val_341 2008-04-08
 345    val_345 2008-04-08      345     val_345 2008-04-08
+35     val_35  2008-04-08      35      val_35  2008-04-08
+35     val_35  2008-04-08      35      val_35  2008-04-08
+35     val_35  2008-04-08      35      val_35  2008-04-08
+35     val_35  2008-04-08      35      val_35  2008-04-08
+35     val_35  2008-04-08      35      val_35  2008-04-08
+35     val_35  2008-04-08      35      val_35  2008-04-08
+35     val_35  2008-04-08      35      val_35  2008-04-08
+35     val_35  2008-04-08      35      val_35  2008-04-08
+35     val_35  2008-04-08      35      val_35  2008-04-08
 356    val_356 2008-04-08      356     val_356 2008-04-08
 365    val_365 2008-04-08      365     val_365 2008-04-08
 367    val_367 2008-04-08      367     val_367 2008-04-08
@@ -1175,6 +1144,10 @@ POSTHOOK: Input: default@tab_part@ds=2008-04-08
 369    val_369 2008-04-08      369     val_369 2008-04-08
 369    val_369 2008-04-08      369     val_369 2008-04-08
 369    val_369 2008-04-08      369     val_369 2008-04-08
+37     val_37  2008-04-08      37      val_37  2008-04-08
+37     val_37  2008-04-08      37      val_37  2008-04-08
+37     val_37  2008-04-08      37      val_37  2008-04-08
+37     val_37  2008-04-08      37      val_37  2008-04-08
 374    val_374 2008-04-08      374     val_374 2008-04-08
 378    val_378 2008-04-08      378     val_378 2008-04-08
 389    val_389 2008-04-08      389     val_389 2008-04-08
@@ -1189,6 +1162,7 @@ POSTHOOK: Input: default@tab_part@ds=2008-04-08
 396    val_396 2008-04-08      396     val_396 2008-04-08
 396    val_396 2008-04-08      396     val_396 2008-04-08
 396    val_396 2008-04-08      396     val_396 2008-04-08
+4      val_4   2008-04-08      4       val_4   2008-04-08
 400    val_400 2008-04-08      400     val_400 2008-04-08
 402    val_402 2008-04-08      402     val_402 2008-04-08
 404    val_404 2008-04-08      404     val_404 2008-04-08
@@ -1226,6 +1200,10 @@ POSTHOOK: Input: default@tab_part@ds=2008-04-08
 417    val_417 2008-04-08      417     val_417 2008-04-08
 417    val_417 2008-04-08      417     val_417 2008-04-08
 419    val_419 2008-04-08      419     val_419 2008-04-08
+42     val_42  2008-04-08      42      val_42  2008-04-08
+42     val_42  2008-04-08      42      val_42  2008-04-08
+42     val_42  2008-04-08      42      val_42  2008-04-08
+42     val_42  2008-04-08      42      val_42  2008-04-08
 424    val_424 2008-04-08      424     val_424 2008-04-08
 424    val_424 2008-04-08      424     val_424 2008-04-08
 424    val_424 2008-04-08      424     val_424 2008-04-08
@@ -1245,6 +1223,7 @@ POSTHOOK: Input: default@tab_part@ds=2008-04-08
 439    val_439 2008-04-08      439     val_439 2008-04-08
 439    val_439 2008-04-08      439     val_439 2008-04-08
 439    val_439 2008-04-08      439     val_439 2008-04-08
+44     val_44  2008-04-08      44      val_44  2008-04-08
 444    val_444 2008-04-08      444     val_444 2008-04-08
 446    val_446 2008-04-08      446     val_446 2008-04-08
 448    val_448 2008-04-08      448     val_448 2008-04-08
@@ -1303,6 +1282,31 @@ POSTHOOK: Input: default@tab_part@ds=2008-04-08
 493    val_493 2008-04-08      493     val_493 2008-04-08
 495    val_495 2008-04-08      495     val_495 2008-04-08
 497    val_497 2008-04-08      497     val_497 2008-04-08
+51     val_51  2008-04-08      51      val_51  2008-04-08
+51     val_51  2008-04-08      51      val_51  2008-04-08
+51     val_51  2008-04-08      51      val_51  2008-04-08
+51     val_51  2008-04-08      51      val_51  2008-04-08
+53     val_53  2008-04-08      53      val_53  2008-04-08
+57     val_57  2008-04-08      57      val_57  2008-04-08
+64     val_64  2008-04-08      64      val_64  2008-04-08
+66     val_66  2008-04-08      66      val_66  2008-04-08
+77     val_77  2008-04-08      77      val_77  2008-04-08
+8      val_8   2008-04-08      8       val_8   2008-04-08
+80     val_80  2008-04-08      80      val_80  2008-04-08
+82     val_82  2008-04-08      82      val_82  2008-04-08
+84     val_84  2008-04-08      84      val_84  2008-04-08
+84     val_84  2008-04-08      84      val_84  2008-04-08
+84     val_84  2008-04-08      84      val_84  2008-04-08
+84     val_84  2008-04-08      84      val_84  2008-04-08
+86     val_86  2008-04-08      86      val_86  2008-04-08
+95     val_95  2008-04-08      95      val_95  2008-04-08
+95     val_95  2008-04-08      95      val_95  2008-04-08
+95     val_95  2008-04-08      95      val_95  2008-04-08
+95     val_95  2008-04-08      95      val_95  2008-04-08
+97     val_97  2008-04-08      97      val_97  2008-04-08
+97     val_97  2008-04-08      97      val_97  2008-04-08
+97     val_97  2008-04-08      97      val_97  2008-04-08
+97     val_97  2008-04-08      97      val_97  2008-04-08
 PREHOOK: query: explain
 select count(*)
 from tab a left outer join tab_part b on a.key = b.key
@@ -2565,3 +2569,589 @@ POSTHOOK: Input: default@tab_part
 POSTHOOK: Input: default@tab_part@ds=2008-04-08
 #### A masked pattern was here ####
 480
+PREHOOK: query: select * from (select * from tab where tab.key = 0)a full 
outer join (select * from tab_part where tab_part.key = 98)b on a.key = b.key
+PREHOOK: type: QUERY
+PREHOOK: Input: default@tab
+PREHOOK: Input: default@tab@ds=2008-04-08
+PREHOOK: Input: default@tab_part
+PREHOOK: Input: default@tab_part@ds=2008-04-08
+#### A masked pattern was here ####
+POSTHOOK: query: select * from (select * from tab where tab.key = 0)a full 
outer join (select * from tab_part where tab_part.key = 98)b on a.key = b.key
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@tab
+POSTHOOK: Input: default@tab@ds=2008-04-08
+POSTHOOK: Input: default@tab_part
+POSTHOOK: Input: default@tab_part@ds=2008-04-08
+#### A masked pattern was here ####
+0      val_0   2008-04-08      NULL    NULL    NULL
+0      val_0   2008-04-08      NULL    NULL    NULL
+0      val_0   2008-04-08      NULL    NULL    NULL
+NULL   NULL    NULL    98      val_98  2008-04-08
+NULL   NULL    NULL    98      val_98  2008-04-08
+PREHOOK: query: select * from (select * from tab where tab.key = 0)a right 
outer join (select * from tab_part where tab_part.key = 98)b on a.key = b.key
+PREHOOK: type: QUERY
+PREHOOK: Input: default@tab
+PREHOOK: Input: default@tab@ds=2008-04-08
+PREHOOK: Input: default@tab_part
+PREHOOK: Input: default@tab_part@ds=2008-04-08
+#### A masked pattern was here ####
+POSTHOOK: query: select * from (select * from tab where tab.key = 0)a right 
outer join (select * from tab_part where tab_part.key = 98)b on a.key = b.key
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@tab
+POSTHOOK: Input: default@tab@ds=2008-04-08
+POSTHOOK: Input: default@tab_part
+POSTHOOK: Input: default@tab_part@ds=2008-04-08
+#### A masked pattern was here ####
+NULL   NULL    NULL    98      val_98  2008-04-08
+NULL   NULL    NULL    98      val_98  2008-04-08
+PREHOOK: query: select * from
+(select * from tab where tab.key = 0)a
+full outer join
+(select * from tab_part where tab_part.key = 98)b join tab_part c on a.key = 
b.key and b.key = c.key
+PREHOOK: type: QUERY
+PREHOOK: Input: default@tab
+PREHOOK: Input: default@tab@ds=2008-04-08
+PREHOOK: Input: default@tab_part
+PREHOOK: Input: default@tab_part@ds=2008-04-08
+#### A masked pattern was here ####
+POSTHOOK: query: select * from
+(select * from tab where tab.key = 0)a
+full outer join
+(select * from tab_part where tab_part.key = 98)b join tab_part c on a.key = 
b.key and b.key = c.key
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@tab
+POSTHOOK: Input: default@tab@ds=2008-04-08
+POSTHOOK: Input: default@tab_part
+POSTHOOK: Input: default@tab_part@ds=2008-04-08
+#### A masked pattern was here ####
+NULL   NULL    NULL    98      val_98  2008-04-08      98      val_98  
2008-04-08
+NULL   NULL    NULL    98      val_98  2008-04-08      98      val_98  
2008-04-08
+NULL   NULL    NULL    98      val_98  2008-04-08      98      val_98  
2008-04-08
+NULL   NULL    NULL    98      val_98  2008-04-08      98      val_98  
2008-04-08
+Warning: Shuffle Join JOIN[9][tables = [a, b]] in Stage 'Stage-1:MAPRED' is a 
cross product
+PREHOOK: query: select * from
+(select * from tab where tab.key = 0)a
+join
+(select * from tab_part where tab_part.key = 98)b full outer join tab_part c 
on a.key = b.key and b.key = c.key
+PREHOOK: type: QUERY
+PREHOOK: Input: default@tab
+PREHOOK: Input: default@tab@ds=2008-04-08
+PREHOOK: Input: default@tab_part
+PREHOOK: Input: default@tab_part@ds=2008-04-08
+#### A masked pattern was here ####
+POSTHOOK: query: select * from
+(select * from tab where tab.key = 0)a
+join
+(select * from tab_part where tab_part.key = 98)b full outer join tab_part c 
on a.key = b.key and b.key = c.key
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@tab
+POSTHOOK: Input: default@tab@ds=2008-04-08
+POSTHOOK: Input: default@tab_part
+POSTHOOK: Input: default@tab_part@ds=2008-04-08
+#### A masked pattern was here ####
+0      val_0   2008-04-08      98      val_98  2008-04-08      NULL    NULL    
NULL
+0      val_0   2008-04-08      98      val_98  2008-04-08      NULL    NULL    
NULL
+0      val_0   2008-04-08      98      val_98  2008-04-08      NULL    NULL    
NULL
+0      val_0   2008-04-08      98      val_98  2008-04-08      NULL    NULL    
NULL
+0      val_0   2008-04-08      98      val_98  2008-04-08      NULL    NULL    
NULL
+0      val_0   2008-04-08      98      val_98  2008-04-08      NULL    NULL    
NULL
+NULL   NULL    NULL    NULL    NULL    NULL    0       val_0   2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    0       val_0   2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    0       val_0   2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    10      val_10  2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    100     val_100 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    100     val_100 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    103     val_103 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    103     val_103 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    104     val_104 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    104     val_104 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    105     val_105 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    11      val_11  2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    111     val_111 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    113     val_113 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    113     val_113 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    114     val_114 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    116     val_116 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    118     val_118 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    118     val_118 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    119     val_119 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    119     val_119 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    119     val_119 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    12      val_12  2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    12      val_12  2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    120     val_120 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    120     val_120 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    125     val_125 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    125     val_125 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    126     val_126 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    128     val_128 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    128     val_128 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    128     val_128 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    129     val_129 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    129     val_129 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    131     val_131 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    133     val_133 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    134     val_134 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    134     val_134 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    136     val_136 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    137     val_137 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    137     val_137 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    138     val_138 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    138     val_138 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    138     val_138 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    138     val_138 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    143     val_143 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    145     val_145 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    146     val_146 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    146     val_146 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    149     val_149 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    149     val_149 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    15      val_15  2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    15      val_15  2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    150     val_150 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    152     val_152 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    152     val_152 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    153     val_153 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    155     val_155 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    156     val_156 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    157     val_157 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    158     val_158 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    160     val_160 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    162     val_162 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    163     val_163 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    164     val_164 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    164     val_164 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    165     val_165 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    165     val_165 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    166     val_166 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    167     val_167 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    167     val_167 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    167     val_167 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    168     val_168 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    169     val_169 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    169     val_169 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    169     val_169 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    169     val_169 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    17      val_17  2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    170     val_170 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    172     val_172 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    172     val_172 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    174     val_174 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    174     val_174 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    175     val_175 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    175     val_175 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    176     val_176 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    176     val_176 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    177     val_177 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    178     val_178 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    179     val_179 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    179     val_179 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    18      val_18  2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    18      val_18  2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    180     val_180 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    181     val_181 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    183     val_183 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    186     val_186 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    187     val_187 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    187     val_187 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    187     val_187 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    189     val_189 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    19      val_19  2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    190     val_190 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    191     val_191 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    191     val_191 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    192     val_192 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    193     val_193 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    193     val_193 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    193     val_193 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    194     val_194 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    195     val_195 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    195     val_195 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    196     val_196 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    197     val_197 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    197     val_197 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    199     val_199 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    199     val_199 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    199     val_199 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    2       val_2   2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    20      val_20  2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    200     val_200 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    200     val_200 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    201     val_201 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    202     val_202 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    203     val_203 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    203     val_203 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    205     val_205 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    205     val_205 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    207     val_207 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    207     val_207 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    208     val_208 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    208     val_208 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    208     val_208 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    209     val_209 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    209     val_209 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    213     val_213 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    213     val_213 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    214     val_214 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    216     val_216 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    216     val_216 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    217     val_217 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    217     val_217 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    218     val_218 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    219     val_219 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    219     val_219 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    221     val_221 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    221     val_221 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    222     val_222 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    223     val_223 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    223     val_223 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    224     val_224 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    224     val_224 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    226     val_226 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    228     val_228 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    229     val_229 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    229     val_229 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    230     val_230 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    230     val_230 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    230     val_230 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    230     val_230 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    230     val_230 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    233     val_233 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    233     val_233 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    235     val_235 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    237     val_237 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    237     val_237 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    238     val_238 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    238     val_238 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    239     val_239 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    239     val_239 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    24      val_24  2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    24      val_24  2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    241     val_241 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    242     val_242 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    242     val_242 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    244     val_244 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    247     val_247 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    248     val_248 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    249     val_249 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    252     val_252 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    255     val_255 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    255     val_255 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    256     val_256 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    256     val_256 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    257     val_257 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    258     val_258 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    26      val_26  2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    26      val_26  2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    260     val_260 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    262     val_262 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    263     val_263 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    265     val_265 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    265     val_265 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    266     val_266 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    27      val_27  2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    272     val_272 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    272     val_272 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    273     val_273 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    273     val_273 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    273     val_273 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    274     val_274 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    275     val_275 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    277     val_277 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    277     val_277 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    277     val_277 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    277     val_277 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    278     val_278 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    278     val_278 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    28      val_28  2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    280     val_280 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    280     val_280 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    281     val_281 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    281     val_281 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    282     val_282 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    282     val_282 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    283     val_283 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    284     val_284 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    285     val_285 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    286     val_286 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    287     val_287 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    288     val_288 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    288     val_288 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    289     val_289 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    291     val_291 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    292     val_292 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    296     val_296 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    298     val_298 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    298     val_298 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    298     val_298 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    30      val_30  2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    302     val_302 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    305     val_305 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    306     val_306 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    307     val_307 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    307     val_307 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    308     val_308 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    309     val_309 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    309     val_309 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    310     val_310 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    311     val_311 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    311     val_311 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    311     val_311 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    315     val_315 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    316     val_316 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    316     val_316 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    316     val_316 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    317     val_317 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    317     val_317 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    318     val_318 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    318     val_318 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    318     val_318 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    321     val_321 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    321     val_321 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    322     val_322 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    322     val_322 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    323     val_323 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    325     val_325 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    325     val_325 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    327     val_327 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    327     val_327 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    327     val_327 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    33      val_33  2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    331     val_331 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    331     val_331 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    332     val_332 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    333     val_333 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    333     val_333 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    335     val_335 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    336     val_336 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    338     val_338 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    339     val_339 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    34      val_34  2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    341     val_341 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    342     val_342 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    342     val_342 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    344     val_344 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    344     val_344 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    345     val_345 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    348     val_348 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    348     val_348 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    348     val_348 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    348     val_348 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    348     val_348 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    35      val_35  2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    35      val_35  2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    35      val_35  2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    351     val_351 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    353     val_353 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    353     val_353 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    356     val_356 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    360     val_360 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    362     val_362 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    364     val_364 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    365     val_365 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    366     val_366 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    367     val_367 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    367     val_367 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    368     val_368 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    369     val_369 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    369     val_369 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    369     val_369 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    37      val_37  2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    37      val_37  2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    373     val_373 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    374     val_374 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    375     val_375 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    377     val_377 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    378     val_378 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    379     val_379 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    382     val_382 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    382     val_382 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    384     val_384 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    384     val_384 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    384     val_384 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    386     val_386 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    389     val_389 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    392     val_392 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    393     val_393 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    394     val_394 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    395     val_395 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    395     val_395 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    396     val_396 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    396     val_396 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    396     val_396 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    397     val_397 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    397     val_397 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    399     val_399 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    399     val_399 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    4       val_4   2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    400     val_400 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    401     val_401 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    401     val_401 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    401     val_401 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    401     val_401 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    401     val_401 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    402     val_402 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    403     val_403 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    403     val_403 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    403     val_403 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    404     val_404 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    404     val_404 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    406     val_406 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    406     val_406 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    406     val_406 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    406     val_406 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    407     val_407 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    409     val_409 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    409     val_409 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    409     val_409 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    41      val_41  2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    411     val_411 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    413     val_413 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    413     val_413 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    414     val_414 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    414     val_414 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    417     val_417 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    417     val_417 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    417     val_417 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    418     val_418 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    419     val_419 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    42      val_42  2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    42      val_42  2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    421     val_421 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    424     val_424 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    424     val_424 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    427     val_427 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    429     val_429 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    429     val_429 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    43      val_43  2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    430     val_430 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    430     val_430 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    430     val_430 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    431     val_431 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    431     val_431 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    431     val_431 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    432     val_432 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    435     val_435 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    436     val_436 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    437     val_437 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    438     val_438 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    438     val_438 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    438     val_438 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    439     val_439 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    439     val_439 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    44      val_44  2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    443     val_443 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    444     val_444 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    446     val_446 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    448     val_448 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    449     val_449 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    452     val_452 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    453     val_453 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    454     val_454 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    454     val_454 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    454     val_454 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    455     val_455 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    457     val_457 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    458     val_458 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    458     val_458 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    459     val_459 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    459     val_459 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    460     val_460 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    462     val_462 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    462     val_462 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    463     val_463 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    463     val_463 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    466     val_466 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    466     val_466 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    466     val_466 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    467     val_467 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    468     val_468 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    468     val_468 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    468     val_468 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    468     val_468 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    469     val_469 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    469     val_469 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    469     val_469 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    469     val_469 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    469     val_469 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    47      val_47  2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    470     val_470 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    472     val_472 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    475     val_475 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    477     val_477 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    478     val_478 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    478     val_478 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    479     val_479 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    480     val_480 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    480     val_480 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    480     val_480 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    481     val_481 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    482     val_482 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    483     val_483 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    484     val_484 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    485     val_485 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    487     val_487 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    489     val_489 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    489     val_489 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    489     val_489 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    489     val_489 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    490     val_490 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    491     val_491 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    492     val_492 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    492     val_492 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    493     val_493 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    494     val_494 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    495     val_495 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    496     val_496 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    497     val_497 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    498     val_498 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    498     val_498 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    498     val_498 2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    5       val_5   2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    5       val_5   2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    5       val_5   2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    51      val_51  2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    51      val_51  2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    53      val_53  2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    54      val_54  2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    57      val_57  2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    58      val_58  2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    58      val_58  2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    64      val_64  2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    65      val_65  2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    66      val_66  2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    67      val_67  2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    67      val_67  2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    69      val_69  2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    70      val_70  2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    70      val_70  2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    70      val_70  2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    72      val_72  2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    72      val_72  2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    74      val_74  2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    76      val_76  2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    76      val_76  2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    77      val_77  2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    78      val_78  2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    8       val_8   2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    80      val_80  2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    82      val_82  2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    83      val_83  2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    83      val_83  2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    84      val_84  2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    84      val_84  2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    85      val_85  2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    86      val_86  2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    87      val_87  2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    9       val_9   2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    90      val_90  2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    90      val_90  2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    90      val_90  2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    92      val_92  2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    95      val_95  2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    95      val_95  2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    96      val_96  2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    97      val_97  2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    97      val_97  2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    98      val_98  2008-04-08
+NULL   NULL    NULL    NULL    NULL    NULL    98      val_98  2008-04-08

http://git-wip-us.apache.org/repos/asf/hive/blob/26ec033c/ql/src/test/results/clientpositive/tez/auto_join29.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/tez/auto_join29.q.out 
b/ql/src/test/results/clientpositive/tez/auto_join29.q.out
index 2cab06e..18c07d9 100644
--- a/ql/src/test/results/clientpositive/tez/auto_join29.q.out
+++ b/ql/src/test/results/clientpositive/tez/auto_join29.q.out
@@ -2673,6 +2673,506 @@ POSTHOOK: query: SELECT * FROM src src1 JOIN src src2 
ON (src1.key = src2.key AN
 POSTHOOK: type: QUERY
 POSTHOOK: Input: default@src
 #### A masked pattern was here ####
+NULL   NULL    NULL    NULL    0       val_0
+NULL   NULL    NULL    NULL    0       val_0
+NULL   NULL    NULL    NULL    0       val_0
+NULL   NULL    NULL    NULL    10      val_10
+NULL   NULL    NULL    NULL    100     val_100
+NULL   NULL    NULL    NULL    100     val_100
+NULL   NULL    NULL    NULL    103     val_103
+NULL   NULL    NULL    NULL    103     val_103
+NULL   NULL    NULL    NULL    104     val_104
+NULL   NULL    NULL    NULL    104     val_104
+NULL   NULL    NULL    NULL    105     val_105
+NULL   NULL    NULL    NULL    11      val_11
+NULL   NULL    NULL    NULL    111     val_111
+NULL   NULL    NULL    NULL    113     val_113
+NULL   NULL    NULL    NULL    113     val_113
+NULL   NULL    NULL    NULL    114     val_114
+NULL   NULL    NULL    NULL    116     val_116
+NULL   NULL    NULL    NULL    118     val_118
+NULL   NULL    NULL    NULL    118     val_118
+NULL   NULL    NULL    NULL    119     val_119
+NULL   NULL    NULL    NULL    119     val_119
+NULL   NULL    NULL    NULL    119     val_119
+NULL   NULL    NULL    NULL    12      val_12
+NULL   NULL    NULL    NULL    12      val_12
+NULL   NULL    NULL    NULL    120     val_120
+NULL   NULL    NULL    NULL    120     val_120
+NULL   NULL    NULL    NULL    125     val_125
+NULL   NULL    NULL    NULL    125     val_125
+NULL   NULL    NULL    NULL    126     val_126
+NULL   NULL    NULL    NULL    128     val_128
+NULL   NULL    NULL    NULL    128     val_128
+NULL   NULL    NULL    NULL    128     val_128
+NULL   NULL    NULL    NULL    129     val_129
+NULL   NULL    NULL    NULL    129     val_129
+NULL   NULL    NULL    NULL    131     val_131
+NULL   NULL    NULL    NULL    133     val_133
+NULL   NULL    NULL    NULL    134     val_134
+NULL   NULL    NULL    NULL    134     val_134
+NULL   NULL    NULL    NULL    136     val_136
+NULL   NULL    NULL    NULL    137     val_137
+NULL   NULL    NULL    NULL    137     val_137
+NULL   NULL    NULL    NULL    138     val_138
+NULL   NULL    NULL    NULL    138     val_138
+NULL   NULL    NULL    NULL    138     val_138
+NULL   NULL    NULL    NULL    138     val_138
+NULL   NULL    NULL    NULL    143     val_143
+NULL   NULL    NULL    NULL    145     val_145
+NULL   NULL    NULL    NULL    146     val_146
+NULL   NULL    NULL    NULL    146     val_146
+NULL   NULL    NULL    NULL    149     val_149
+NULL   NULL    NULL    NULL    149     val_149
+NULL   NULL    NULL    NULL    15      val_15
+NULL   NULL    NULL    NULL    15      val_15
+NULL   NULL    NULL    NULL    150     val_150
+NULL   NULL    NULL    NULL    152     val_152
+NULL   NULL    NULL    NULL    152     val_152
+NULL   NULL    NULL    NULL    153     val_153
+NULL   NULL    NULL    NULL    155     val_155
+NULL   NULL    NULL    NULL    156     val_156
+NULL   NULL    NULL    NULL    157     val_157
+NULL   NULL    NULL    NULL    158     val_158
+NULL   NULL    NULL    NULL    160     val_160
+NULL   NULL    NULL    NULL    162     val_162
+NULL   NULL    NULL    NULL    163     val_163
+NULL   NULL    NULL    NULL    164     val_164
+NULL   NULL    NULL    NULL    164     val_164
+NULL   NULL    NULL    NULL    165     val_165
+NULL   NULL    NULL    NULL    165     val_165
+NULL   NULL    NULL    NULL    166     val_166
+NULL   NULL    NULL    NULL    167     val_167
+NULL   NULL    NULL    NULL    167     val_167
+NULL   NULL    NULL    NULL    167     val_167
+NULL   NULL    NULL    NULL    168     val_168
+NULL   NULL    NULL    NULL    169     val_169
+NULL   NULL    NULL    NULL    169     val_169
+NULL   NULL    NULL    NULL    169     val_169
+NULL   NULL    NULL    NULL    169     val_169
+NULL   NULL    NULL    NULL    17      val_17
+NULL   NULL    NULL    NULL    170     val_170
+NULL   NULL    NULL    NULL    172     val_172
+NULL   NULL    NULL    NULL    172     val_172
+NULL   NULL    NULL    NULL    174     val_174
+NULL   NULL    NULL    NULL    174     val_174
+NULL   NULL    NULL    NULL    175     val_175
+NULL   NULL    NULL    NULL    175     val_175
+NULL   NULL    NULL    NULL    176     val_176
+NULL   NULL    NULL    NULL    176     val_176
+NULL   NULL    NULL    NULL    177     val_177
+NULL   NULL    NULL    NULL    178     val_178
+NULL   NULL    NULL    NULL    179     val_179
+NULL   NULL    NULL    NULL    179     val_179
+NULL   NULL    NULL    NULL    18      val_18
+NULL   NULL    NULL    NULL    18      val_18
+NULL   NULL    NULL    NULL    180     val_180
+NULL   NULL    NULL    NULL    181     val_181
+NULL   NULL    NULL    NULL    183     val_183
+NULL   NULL    NULL    NULL    186     val_186
+NULL   NULL    NULL    NULL    187     val_187
+NULL   NULL    NULL    NULL    187     val_187
+NULL   NULL    NULL    NULL    187     val_187
+NULL   NULL    NULL    NULL    189     val_189
+NULL   NULL    NULL    NULL    19      val_19
+NULL   NULL    NULL    NULL    190     val_190
+NULL   NULL    NULL    NULL    191     val_191
+NULL   NULL    NULL    NULL    191     val_191
+NULL   NULL    NULL    NULL    192     val_192
+NULL   NULL    NULL    NULL    193     val_193
+NULL   NULL    NULL    NULL    193     val_193
+NULL   NULL    NULL    NULL    193     val_193
+NULL   NULL    NULL    NULL    194     val_194
+NULL   NULL    NULL    NULL    195     val_195
+NULL   NULL    NULL    NULL    195     val_195
+NULL   NULL    NULL    NULL    196     val_196
+NULL   NULL    NULL    NULL    197     val_197
+NULL   NULL    NULL    NULL    197     val_197
+NULL   NULL    NULL    NULL    199     val_199
+NULL   NULL    NULL    NULL    199     val_199
+NULL   NULL    NULL    NULL    199     val_199
+NULL   NULL    NULL    NULL    2       val_2
+NULL   NULL    NULL    NULL    20      val_20
+NULL   NULL    NULL    NULL    200     val_200
+NULL   NULL    NULL    NULL    200     val_200
+NULL   NULL    NULL    NULL    201     val_201
+NULL   NULL    NULL    NULL    202     val_202
+NULL   NULL    NULL    NULL    203     val_203
+NULL   NULL    NULL    NULL    203     val_203
+NULL   NULL    NULL    NULL    205     val_205
+NULL   NULL    NULL    NULL    205     val_205
+NULL   NULL    NULL    NULL    207     val_207
+NULL   NULL    NULL    NULL    207     val_207
+NULL   NULL    NULL    NULL    208     val_208
+NULL   NULL    NULL    NULL    208     val_208
+NULL   NULL    NULL    NULL    208     val_208
+NULL   NULL    NULL    NULL    209     val_209
+NULL   NULL    NULL    NULL    209     val_209
+NULL   NULL    NULL    NULL    213     val_213
+NULL   NULL    NULL    NULL    213     val_213
+NULL   NULL    NULL    NULL    214     val_214
+NULL   NULL    NULL    NULL    216     val_216
+NULL   NULL    NULL    NULL    216     val_216
+NULL   NULL    NULL    NULL    217     val_217
+NULL   NULL    NULL    NULL    217     val_217
+NULL   NULL    NULL    NULL    218     val_218
+NULL   NULL    NULL    NULL    219     val_219
+NULL   NULL    NULL    NULL    219     val_219
+NULL   NULL    NULL    NULL    221     val_221
+NULL   NULL    NULL    NULL    221     val_221
+NULL   NULL    NULL    NULL    222     val_222
+NULL   NULL    NULL    NULL    223     val_223
+NULL   NULL    NULL    NULL    223     val_223
+NULL   NULL    NULL    NULL    224     val_224
+NULL   NULL    NULL    NULL    224     val_224
+NULL   NULL    NULL    NULL    226     val_226
+NULL   NULL    NULL    NULL    228     val_228
+NULL   NULL    NULL    NULL    229     val_229
+NULL   NULL    NULL    NULL    229     val_229
+NULL   NULL    NULL    NULL    230     val_230
+NULL   NULL    NULL    NULL    230     val_230
+NULL   NULL    NULL    NULL    230     val_230
+NULL   NULL    NULL    NULL    230     val_230
+NULL   NULL    NULL    NULL    230     val_230
+NULL   NULL    NULL    NULL    233     val_233
+NULL   NULL    NULL    NULL    233     val_233
+NULL   NULL    NULL    NULL    235     val_235
+NULL   NULL    NULL    NULL    237     val_237
+NULL   NULL    NULL    NULL    237     val_237
+NULL   NULL    NULL    NULL    238     val_238
+NULL   NULL    NULL    NULL    238     val_238
+NULL   NULL    NULL    NULL    239     val_239
+NULL   NULL    NULL    NULL    239     val_239
+NULL   NULL    NULL    NULL    24      val_24
+NULL   NULL    NULL    NULL    24      val_24
+NULL   NULL    NULL    NULL    241     val_241
+NULL   NULL    NULL    NULL    242     val_242
+NULL   NULL    NULL    NULL    242     val_242
+NULL   NULL    NULL    NULL    244     val_244
+NULL   NULL    NULL    NULL    247     val_247
+NULL   NULL    NULL    NULL    248     val_248
+NULL   NULL    NULL    NULL    249     val_249
+NULL   NULL    NULL    NULL    252     val_252
+NULL   NULL    NULL    NULL    255     val_255
+NULL   NULL    NULL    NULL    255     val_255
+NULL   NULL    NULL    NULL    256     val_256
+NULL   NULL    NULL    NULL    256     val_256
+NULL   NULL    NULL    NULL    257     val_257
+NULL   NULL    NULL    NULL    258     val_258
+NULL   NULL    NULL    NULL    26      val_26
+NULL   NULL    NULL    NULL    26      val_26
+NULL   NULL    NULL    NULL    260     val_260
+NULL   NULL    NULL    NULL    262     val_262
+NULL   NULL    NULL    NULL    263     val_263
+NULL   NULL    NULL    NULL    265     val_265
+NULL   NULL    NULL    NULL    265     val_265
+NULL   NULL    NULL    NULL    266     val_266
+NULL   NULL    NULL    NULL    27      val_27
+NULL   NULL    NULL    NULL    272     val_272
+NULL   NULL    NULL    NULL    272     val_272
+NULL   NULL    NULL    NULL    273     val_273
+NULL   NULL    NULL    NULL    273     val_273
+NULL   NULL    NULL    NULL    273     val_273
+NULL   NULL    NULL    NULL    274     val_274
+NULL   NULL    NULL    NULL    275     val_275
+NULL   NULL    NULL    NULL    277     val_277
+NULL   NULL    NULL    NULL    277     val_277
+NULL   NULL    NULL    NULL    277     val_277
+NULL   NULL    NULL    NULL    277     val_277
+NULL   NULL    NULL    NULL    278     val_278
+NULL   NULL    NULL    NULL    278     val_278
+NULL   NULL    NULL    NULL    28      val_28
+NULL   NULL    NULL    NULL    280     val_280
+NULL   NULL    NULL    NULL    280     val_280
+NULL   NULL    NULL    NULL    281     val_281
+NULL   NULL    NULL    NULL    281     val_281
+NULL   NULL    NULL    NULL    282     val_282
+NULL   NULL    NULL    NULL    282     val_282
+NULL   NULL    NULL    NULL    283     val_283
+NULL   NULL    NULL    NULL    284     val_284
+NULL   NULL    NULL    NULL    285     val_285
+NULL   NULL    NULL    NULL    286     val_286
+NULL   NULL    NULL    NULL    287     val_287
+NULL   NULL    NULL    NULL    288     val_288
+NULL   NULL    NULL    NULL    288     val_288
+NULL   NULL    NULL    NULL    289     val_289
+NULL   NULL    NULL    NULL    291     val_291
+NULL   NULL    NULL    NULL    292     val_292
+NULL   NULL    NULL    NULL    296     val_296
+NULL   NULL    NULL    NULL    298     val_298
+NULL   NULL    NULL    NULL    298     val_298
+NULL   NULL    NULL    NULL    298     val_298
+NULL   NULL    NULL    NULL    30      val_30
+NULL   NULL    NULL    NULL    302     val_302
+NULL   NULL    NULL    NULL    305     val_305
+NULL   NULL    NULL    NULL    306     val_306
+NULL   NULL    NULL    NULL    307     val_307
+NULL   NULL    NULL    NULL    307     val_307
+NULL   NULL    NULL    NULL    308     val_308
+NULL   NULL    NULL    NULL    309     val_309
+NULL   NULL    NULL    NULL    309     val_309
+NULL   NULL    NULL    NULL    310     val_310
+NULL   NULL    NULL    NULL    311     val_311
+NULL   NULL    NULL    NULL    311     val_311
+NULL   NULL    NULL    NULL    311     val_311
+NULL   NULL    NULL    NULL    315     val_315
+NULL   NULL    NULL    NULL    316     val_316
+NULL   NULL    NULL    NULL    316     val_316
+NULL   NULL    NULL    NULL    316     val_316
+NULL   NULL    NULL    NULL    317     val_317
+NULL   NULL    NULL    NULL    317     val_317
+NULL   NULL    NULL    NULL    318     val_318
+NULL   NULL    NULL    NULL    318     val_318
+NULL   NULL    NULL    NULL    318     val_318
+NULL   NULL    NULL    NULL    321     val_321
+NULL   NULL    NULL    NULL    321     val_321
+NULL   NULL    NULL    NULL    322     val_322
+NULL   NULL    NULL    NULL    322     val_322
+NULL   NULL    NULL    NULL    323     val_323
+NULL   NULL    NULL    NULL    325     val_325
+NULL   NULL    NULL    NULL    325     val_325
+NULL   NULL    NULL    NULL    327     val_327
+NULL   NULL    NULL    NULL    327     val_327
+NULL   NULL    NULL    NULL    327     val_327
+NULL   NULL    NULL    NULL    33      val_33
+NULL   NULL    NULL    NULL    331     val_331
+NULL   NULL    NULL    NULL    331     val_331
+NULL   NULL    NULL    NULL    332     val_332
+NULL   NULL    NULL    NULL    333     val_333
+NULL   NULL    NULL    NULL    333     val_333
+NULL   NULL    NULL    NULL    335     val_335
+NULL   NULL    NULL    NULL    336     val_336
+NULL   NULL    NULL    NULL    338     val_338
+NULL   NULL    NULL    NULL    339     val_339
+NULL   NULL    NULL    NULL    34      val_34
+NULL   NULL    NULL    NULL    341     val_341
+NULL   NULL    NULL    NULL    342     val_342
+NULL   NULL    NULL    NULL    342     val_342
+NULL   NULL    NULL    NULL    344     val_344
+NULL   NULL    NULL    NULL    344     val_344
+NULL   NULL    NULL    NULL    345     val_345
+NULL   NULL    NULL    NULL    348     val_348
+NULL   NULL    NULL    NULL    348     val_348
+NULL   NULL    NULL    NULL    348     val_348
+NULL   NULL    NULL    NULL    348     val_348
+NULL   NULL    NULL    NULL    348     val_348
+NULL   NULL    NULL    NULL    35      val_35
+NULL   NULL    NULL    NULL    35      val_35
+NULL   NULL    NULL    NULL    35      val_35
+NULL   NULL    NULL    NULL    351     val_351
+NULL   NULL    NULL    NULL    353     val_353
+NULL   NULL    NULL    NULL    353     val_353
+NULL   NULL    NULL    NULL    356     val_356
+NULL   NULL    NULL    NULL    360     val_360
+NULL   NULL    NULL    NULL    362     val_362
+NULL   NULL    NULL    NULL    364     val_364
+NULL   NULL    NULL    NULL    365     val_365
+NULL   NULL    NULL    NULL    366     val_366
+NULL   NULL    NULL    NULL    367     val_367
+NULL   NULL    NULL    NULL    367     val_367
+NULL   NULL    NULL    NULL    368     val_368
+NULL   NULL    NULL    NULL    369     val_369
+NULL   NULL    NULL    NULL    369     val_369
+NULL   NULL    NULL    NULL    369     val_369
+NULL   NULL    NULL    NULL    37      val_37
+NULL   NULL    NULL    NULL    37      val_37
+NULL   NULL    NULL    NULL    373     val_373
+NULL   NULL    NULL    NULL    374     val_374
+NULL   NULL    NULL    NULL    375     val_375
+NULL   NULL    NULL    NULL    377     val_377
+NULL   NULL    NULL    NULL    378     val_378
+NULL   NULL    NULL    NULL    379     val_379
+NULL   NULL    NULL    NULL    382     val_382
+NULL   NULL    NULL    NULL    382     val_382
+NULL   NULL    NULL    NULL    384     val_384
+NULL   NULL    NULL    NULL    384     val_384
+NULL   NULL    NULL    NULL    384     val_384
+NULL   NULL    NULL    NULL    386     val_386
+NULL   NULL    NULL    NULL    389     val_389
+NULL   NULL    NULL    NULL    392     val_392
+NULL   NULL    NULL    NULL    393     val_393
+NULL   NULL    NULL    NULL    394     val_394
+NULL   NULL    NULL    NULL    395     val_395
+NULL   NULL    NULL    NULL    395     val_395
+NULL   NULL    NULL    NULL    396     val_396
+NULL   NULL    NULL    NULL    396     val_396
+NULL   NULL    NULL    NULL    396     val_396
+NULL   NULL    NULL    NULL    397     val_397
+NULL   NULL    NULL    NULL    397     val_397
+NULL   NULL    NULL    NULL    399     val_399
+NULL   NULL    NULL    NULL    399     val_399
+NULL   NULL    NULL    NULL    4       val_4
+NULL   NULL    NULL    NULL    400     val_400
+NULL   NULL    NULL    NULL    401     val_401
+NULL   NULL    NULL    NULL    401     val_401
+NULL   NULL    NULL    NULL    401     val_401
+NULL   NULL    NULL    NULL    401     val_401
+NULL   NULL    NULL    NULL    401     val_401
+NULL   NULL    NULL    NULL    402     val_402
+NULL   NULL    NULL    NULL    403     val_403
+NULL   NULL    NULL    NULL    403     val_403
+NULL   NULL    NULL    NULL    403     val_403
+NULL   NULL    NULL    NULL    404     val_404
+NULL   NULL    NULL    NULL    404     val_404
+NULL   NULL    NULL    NULL    406     val_406
+NULL   NULL    NULL    NULL    406     val_406
+NULL   NULL    NULL    NULL    406     val_406
+NULL   NULL    NULL    NULL    406     val_406
+NULL   NULL    NULL    NULL    407     val_407
+NULL   NULL    NULL    NULL    409     val_409
+NULL   NULL    NULL    NULL    409     val_409
+NULL   NULL    NULL    NULL    409     val_409
+NULL   NULL    NULL    NULL    41      val_41
+NULL   NULL    NULL    NULL    411     val_411
+NULL   NULL    NULL    NULL    413     val_413
+NULL   NULL    NULL    NULL    413     val_413
+NULL   NULL    NULL    NULL    414     val_414
+NULL   NULL    NULL    NULL    414     val_414
+NULL   NULL    NULL    NULL    417     val_417
+NULL   NULL    NULL    NULL    417     val_417
+NULL   NULL    NULL    NULL    417     val_417
+NULL   NULL    NULL    NULL    418     val_418
+NULL   NULL    NULL    NULL    419     val_419
+NULL   NULL    NULL    NULL    42      val_42
+NULL   NULL    NULL    NULL    42      val_42
+NULL   NULL    NULL    NULL    421     val_421
+NULL   NULL    NULL    NULL    424     val_424
+NULL   NULL    NULL    NULL    424     val_424
+NULL   NULL    NULL    NULL    427     val_427
+NULL   NULL    NULL    NULL    429     val_429
+NULL   NULL    NULL    NULL    429     val_429
+NULL   NULL    NULL    NULL    43      val_43
+NULL   NULL    NULL    NULL    430     val_430
+NULL   NULL    NULL    NULL    430     val_430
+NULL   NULL    NULL    NULL    430     val_430
+NULL   NULL    NULL    NULL    431     val_431
+NULL   NULL    NULL    NULL    431     val_431
+NULL   NULL    NULL    NULL    431     val_431
+NULL   NULL    NULL    NULL    432     val_432
+NULL   NULL    NULL    NULL    435     val_435
+NULL   NULL    NULL    NULL    436     val_436
+NULL   NULL    NULL    NULL    437     val_437
+NULL   NULL    NULL    NULL    438     val_438
+NULL   NULL    NULL    NULL    438     val_438
+NULL   NULL    NULL    NULL    438     val_438
+NULL   NULL    NULL    NULL    439     val_439
+NULL   NULL    NULL    NULL    439     val_439
+NULL   NULL    NULL    NULL    44      val_44
+NULL   NULL    NULL    NULL    443     val_443
+NULL   NULL    NULL    NULL    444     val_444
+NULL   NULL    NULL    NULL    446     val_446
+NULL   NULL    NULL    NULL    448     val_448
+NULL   NULL    NULL    NULL    449     val_449
+NULL   NULL    NULL    NULL    452     val_452
+NULL   NULL    NULL    NULL    453     val_453
+NULL   NULL    NULL    NULL    454     val_454
+NULL   NULL    NULL    NULL    454     val_454
+NULL   NULL    NULL    NULL    454     val_454
+NULL   NULL    NULL    NULL    455     val_455
+NULL   NULL    NULL    NULL    457     val_457
+NULL   NULL    NULL    NULL    458     val_458
+NULL   NULL    NULL    NULL    458     val_458
+NULL   NULL    NULL    NULL    459     val_459
+NULL   NULL    NULL    NULL    459     val_459
+NULL   NULL    NULL    NULL    460     val_460
+NULL   NULL    NULL    NULL    462     val_462
+NULL   NULL    NULL    NULL    462     val_462
+NULL   NULL    NULL    NULL    463     val_463
+NULL   NULL    NULL    NULL    463     val_463
+NULL   NULL    NULL    NULL    466     val_466
+NULL   NULL    NULL    NULL    466     val_466
+NULL   NULL    NULL    NULL    466     val_466
+NULL   NULL    NULL    NULL    467     val_467
+NULL   NULL    NULL    NULL    468     val_468
+NULL   NULL    NULL    NULL    468     val_468
+NULL   NULL    NULL    NULL    468     val_468
+NULL   NULL    NULL    NULL    468     val_468
+NULL   NULL    NULL    NULL    469     val_469
+NULL   NULL    NULL    NULL    469     val_469
+NULL   NULL    NULL    NULL    469     val_469
+NULL   NULL    NULL    NULL    469     val_469
+NULL   NULL    NULL    NULL    469     val_469
+NULL   NULL    NULL    NULL    47      val_47
+NULL   NULL    NULL    NULL    470     val_470
+NULL   NULL    NULL    NULL    472     val_472
+NULL   NULL    NULL    NULL    475     val_475
+NULL   NULL    NULL    NULL    477     val_477
+NULL   NULL    NULL    NULL    478     val_478
+NULL   NULL    NULL    NULL    478     val_478
+NULL   NULL    NULL    NULL    479     val_479
+NULL   NULL    NULL    NULL    480     val_480
+NULL   NULL    NULL    NULL    480     val_480
+NULL   NULL    NULL    NULL    480     val_480
+NULL   NULL    NULL    NULL    481     val_481
+NULL   NULL    NULL    NULL    482     val_482
+NULL   NULL    NULL    NULL    483     val_483
+NULL   NULL    NULL    NULL    484     val_484
+NULL   NULL    NULL    NULL    485     val_485
+NULL   NULL    NULL    NULL    487     val_487
+NULL   NULL    NULL    NULL    489     val_489
+NULL   NULL    NULL    NULL    489     val_489
+NULL   NULL    NULL    NULL    489     val_489
+NULL   NULL    NULL    NULL    489     val_489
+NULL   NULL    NULL    NULL    490     val_490
+NULL   NULL    NULL    NULL    491     val_491
+NULL   NULL    NULL    NULL    492     val_492
+NULL   NULL    NULL    NULL    492     val_492
+NULL   NULL    NULL    NULL    493     val_493
+NULL   NULL    NULL    NULL    494     val_494
+NULL   NULL    NULL    NULL    495     val_495
+NULL   NULL    NULL    NULL    496     val_496
+NULL   NULL    NULL    NULL    497     val_497
+NULL   NULL    NULL    NULL    498     val_498
+NULL   NULL    NULL    NULL    498     val_498
+NULL   NULL    NULL    NULL    498     val_498
+NULL   NULL    NULL    NULL    5       val_5
+NULL   NULL    NULL    NULL    5       val_5
+NULL   NULL    NULL    NULL    5       val_5
+NULL   NULL    NULL    NULL    51      val_51
+NULL   NULL    NULL    NULL    51      val_51
+NULL   NULL    NULL    NULL    53      val_53
+NULL   NULL    NULL    NULL    54      val_54
+NULL   NULL    NULL    NULL    57      val_57
+NULL   NULL    NULL    NULL    58      val_58
+NULL   NULL    NULL    NULL    58      val_58
+NULL   NULL    NULL    NULL    64      val_64
+NULL   NULL    NULL    NULL    65      val_65
+NULL   NULL    NULL    NULL    66      val_66
+NULL   NULL    NULL    NULL    67      val_67
+NULL   NULL    NULL    NULL    67      val_67
+NULL   NULL    NULL    NULL    69      val_69
+NULL   NULL    NULL    NULL    70      val_70
+NULL   NULL    NULL    NULL    70      val_70
+NULL   NULL    NULL    NULL    70      val_70
+NULL   NULL    NULL    NULL    72      val_72
+NULL   NULL    NULL    NULL    72      val_72
+NULL   NULL    NULL    NULL    74      val_74
+NULL   NULL    NULL    NULL    76      val_76
+NULL   NULL    NULL    NULL    76      val_76
+NULL   NULL    NULL    NULL    77      val_77
+NULL   NULL    NULL    NULL    78      val_78
+NULL   NULL    NULL    NULL    8       val_8
+NULL   NULL    NULL    NULL    80      val_80
+NULL   NULL    NULL    NULL    82      val_82
+NULL   NULL    NULL    NULL    83      val_83
+NULL   NULL    NULL    NULL    83      val_83
+NULL   NULL    NULL    NULL    84      val_84
+NULL   NULL    NULL    NULL    84      val_84
+NULL   NULL    NULL    NULL    85      val_85
+NULL   NULL    NULL    NULL    86      val_86
+NULL   NULL    NULL    NULL    87      val_87
+NULL   NULL    NULL    NULL    9       val_9
+NULL   NULL    NULL    NULL    90      val_90
+NULL   NULL    NULL    NULL    90      val_90
+NULL   NULL    NULL    NULL    90      val_90
+NULL   NULL    NULL    NULL    92      val_92
+NULL   NULL    NULL    NULL    95      val_95
+NULL   NULL    NULL    NULL    95      val_95
+NULL   NULL    NULL    NULL    96      val_96
+NULL   NULL    NULL    NULL    97      val_97
+NULL   NULL    NULL    NULL    97      val_97
+NULL   NULL    NULL    NULL    98      val_98
+NULL   NULL    NULL    NULL    98      val_98
 PREHOOK: query: explain
 SELECT * FROM src src1 LEFT OUTER JOIN src src2 ON (src1.key = src2.key AND 
src1.key < 10 AND src2.key > 10) JOIN src src3 ON (src2.key = src3.key AND 
src3.key < 10) SORT BY src1.key, src1.value, src2.key, src2.value, src3.key, 
src3.value
 PREHOOK: type: QUERY

Reply via email to