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;
}