You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by vi...@apache.org on 2015/05/07 07:19:12 UTC

[2/2] hive git commit: HIVE-10542: Full outer joins in tez produce incorrect results in certain cases (Vikram Dixit K, reviewed by Gunther Hagleitner)

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/master
Commit: 26ec033c89a61fa0bf95b9b66da0842b22ec4c9b
Parents: 4b44408
Author: vikram <vi...@hortonworks.com>
Authored: Wed May 6 22:18:28 2015 -0700
Committer: vikram <vi...@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