You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by rb...@apache.org on 2017/08/02 02:21:43 UTC

hive git commit: HIVE-17209: ObjectCacheFactory should return null when tez shared object registry is not setup (Rajesh Balamohan, reviewed by Sergey Shelukhin)

Repository: hive
Updated Branches:
  refs/heads/master 21481635f -> 5c147f0df


HIVE-17209: ObjectCacheFactory should return null when tez shared object registry is not setup (Rajesh Balamohan, reviewed by Sergey Shelukhin)


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

Branch: refs/heads/master
Commit: 5c147f0df840049374b9f87ca79688c6fc2ee705
Parents: 2148163
Author: Rajesh Balamohan <rb...@apache.org>
Authored: Wed Aug 2 07:51:09 2017 +0530
Committer: Rajesh Balamohan <rb...@apache.org>
Committed: Wed Aug 2 07:51:09 2017 +0530

----------------------------------------------------------------------
 .../org/apache/hadoop/hive/ql/exec/ObjectCacheFactory.java  | 9 +++++++--
 .../org/apache/hadoop/hive/ql/exec/tez/ObjectCache.java     | 5 +++++
 .../java/org/apache/hadoop/hive/ql/plan/DynamicValue.java   | 4 ++++
 .../apache/hadoop/hive/ql/io/sarg/SearchArgumentImpl.java   | 5 ++++-
 4 files changed, 20 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hive/blob/5c147f0d/ql/src/java/org/apache/hadoop/hive/ql/exec/ObjectCacheFactory.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/ObjectCacheFactory.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/ObjectCacheFactory.java
index 5a19030..ef5c9b1 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/ObjectCacheFactory.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/ObjectCacheFactory.java
@@ -56,8 +56,13 @@ public class ObjectCacheFactory {
               new org.apache.hadoop.hive.ql.exec.mr.ObjectCache(), queryId);
         }
       } else { // container
-        return new ObjectCacheWrapper(
-            new org.apache.hadoop.hive.ql.exec.tez.ObjectCache(), queryId);
+        if (org.apache.hadoop.hive.ql.exec.tez.ObjectCache.isObjectRegistryConfigured()) {
+          return new ObjectCacheWrapper(
+              new org.apache.hadoop.hive.ql.exec.tez.ObjectCache(), queryId);
+        } else {
+          // Tez processor needs to configure object registry first.
+          return null;
+        }
       }
     } else { // mr or spark
       return new ObjectCacheWrapper(

http://git-wip-us.apache.org/repos/asf/hive/blob/5c147f0d/ql/src/java/org/apache/hadoop/hive/ql/exec/tez/ObjectCache.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/tez/ObjectCache.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/tez/ObjectCache.java
index 72dcdd3..3b234ea 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/tez/ObjectCache.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/tez/ObjectCache.java
@@ -54,6 +54,11 @@ public class ObjectCache implements org.apache.hadoop.hive.ql.exec.ObjectCache {
     registry = staticRegistry;
   }
 
+  public static boolean isObjectRegistryConfigured() {
+    return (staticRegistry != null);
+  }
+
+
   public static void setupObjectRegistry(ObjectRegistry objectRegistry) {
     staticRegistry = objectRegistry;
     staticPool = Executors.newCachedThreadPool();

http://git-wip-us.apache.org/repos/asf/hive/blob/5c147f0d/ql/src/java/org/apache/hadoop/hive/ql/plan/DynamicValue.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/plan/DynamicValue.java b/ql/src/java/org/apache/hadoop/hive/ql/plan/DynamicValue.java
index 874c62b..613c607 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/plan/DynamicValue.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/plan/DynamicValue.java
@@ -115,6 +115,10 @@ public class DynamicValue implements LiteralDelegate, Serializable {
       String queryId = HiveConf.getVar(conf, HiveConf.ConfVars.HIVEQUERYID);
       ObjectCache cache = ObjectCacheFactory.getCache(conf, queryId, false);
 
+      if (cache == null) {
+        return null;
+      }
+
       // Get the registry
       DynamicValueRegistry valueRegistry = cache.retrieve(DYNAMIC_VALUE_REGISTRY_CACHE_KEY);
       if (valueRegistry == null) {

http://git-wip-us.apache.org/repos/asf/hive/blob/5c147f0d/storage-api/src/java/org/apache/hadoop/hive/ql/io/sarg/SearchArgumentImpl.java
----------------------------------------------------------------------
diff --git a/storage-api/src/java/org/apache/hadoop/hive/ql/io/sarg/SearchArgumentImpl.java b/storage-api/src/java/org/apache/hadoop/hive/ql/io/sarg/SearchArgumentImpl.java
index 6d8c83b..85273f9 100644
--- a/storage-api/src/java/org/apache/hadoop/hive/ql/io/sarg/SearchArgumentImpl.java
+++ b/storage-api/src/java/org/apache/hadoop/hive/ql/io/sarg/SearchArgumentImpl.java
@@ -117,7 +117,10 @@ public final class SearchArgumentImpl implements SearchArgument {
       if (literalList != null && literalList.size() > 0 && literalList.get(0) instanceof LiteralDelegate) {
         List<Object> newLiteraList = new ArrayList<Object>();
         for (Object litertalObj : literalList) {
-          newLiteraList.add(((LiteralDelegate) litertalObj).getLiteral());
+          Object literal = ((LiteralDelegate) litertalObj).getLiteral();
+          if (literal != null) {
+            newLiteraList.add(literal);
+          }
         }
         return newLiteraList;
       }