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 2018/05/07 21:19:23 UTC

hive git commit: HIVE-19388 : ClassCastException during VectorMapJoinCommonOperator initialization (Vihang Karajgaonkar, reviewed by Rui Li)

Repository: hive
Updated Branches:
  refs/heads/master 7ebcdeb95 -> d159f24f6


HIVE-19388 : ClassCastException during VectorMapJoinCommonOperator initialization (Vihang Karajgaonkar, reviewed by Rui Li)


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

Branch: refs/heads/master
Commit: d159f24f685c56fa9403649b6aa88247483880c8
Parents: 7ebcdeb
Author: Vihang Karajgaonkar <vi...@cloudera.com>
Authored: Mon May 7 13:55:11 2018 -0700
Committer: Vihang Karajgaonkar <vi...@cloudera.com>
Committed: Mon May 7 13:55:11 2018 -0700

----------------------------------------------------------------------
 .../exec/persistence/MapJoinTableContainerSerDe.java   | 13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hive/blob/d159f24f/ql/src/java/org/apache/hadoop/hive/ql/exec/persistence/MapJoinTableContainerSerDe.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/persistence/MapJoinTableContainerSerDe.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/persistence/MapJoinTableContainerSerDe.java
index feeefe6..24b8fea 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/persistence/MapJoinTableContainerSerDe.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/persistence/MapJoinTableContainerSerDe.java
@@ -110,14 +110,14 @@ public class MapJoinTableContainerSerDe {
     try {
 
       if (!fs.exists(folder)) {
-        return getDefaultEmptyContainer(keyContext, valueContext);
+        return getDefaultEmptyContainer(hconf, keyContext, valueContext);
       }
       if (!fs.isDirectory(folder)) {
         throw new HiveException("Error, not a directory: " + folder);
       }
       FileStatus[] fileStatuses = fs.listStatus(folder);
       if (fileStatuses == null || fileStatuses.length == 0) {
-        return getDefaultEmptyContainer(keyContext, valueContext);
+        return getDefaultEmptyContainer(hconf, keyContext, valueContext);
       }
 
       AbstractSerDe keySerDe = keyContext.getSerDe();
@@ -319,8 +319,13 @@ public class MapJoinTableContainerSerDe {
   }
 
   // Get an empty container when the small table is empty.
-  private static MapJoinTableContainer getDefaultEmptyContainer(MapJoinObjectSerDeContext keyCtx,
-      MapJoinObjectSerDeContext valCtx) throws SerDeException {
+  private static MapJoinTableContainer getDefaultEmptyContainer(Configuration hconf,
+      MapJoinObjectSerDeContext keyCtx, MapJoinObjectSerDeContext valCtx) throws SerDeException {
+    boolean useOptimizedContainer = HiveConf.getBoolVar(
+        hconf, HiveConf.ConfVars.HIVEMAPJOINUSEOPTIMIZEDTABLE);
+    if (useOptimizedContainer) {
+      return new MapJoinBytesTableContainer(hconf, valCtx, -1, 0);
+    }
     MapJoinTableContainer container = new HashMapWrapper();
     container.setSerde(keyCtx, valCtx);
     container.seal();