[14/15] hive git commit: HIVE-19156 : TestMiniLlapLocalCliDriver.vectorized_dynamic_semijoin_reduction.q is broken (Jason Dere via Deepak Jaiswal)
HIVE-19156 : TestMiniLlapLocalCliDriver.vectorized_dynamic_semijoin_reduction.q is broken (Jason Dere via Deepak Jaiswal) Signed-off-by: Ashutosh Chauhan Project: http://git-wip-us.apache.org/repos/asf/hive/repo Commit: http://git-wip-us.apache.org/repos/asf/hive/commit/5a95a826 Tree: http://git-wip-us.apache.org/repos/asf/hive/tree/5a95a826 Diff: http://git-wip-us.apache.org/repos/asf/hive/diff/5a95a826 Branch: refs/heads/branch-3 Commit: 5a95a826a1ce6db56a5a721ef99e3f76a9360abf Parents: 12a1784 Author: Jason Dere Authored: Thu Apr 12 08:47:25 2018 -0700 Committer: Vineet Garg Committed: Thu Apr 12 10:58:15 2018 -0700 -- .../ql/exec/tez/DynamicValueRegistryTez.java | 19 +-- 1 file changed, 17 insertions(+), 2 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hive/blob/5a95a826/ql/src/java/org/apache/hadoop/hive/ql/exec/tez/DynamicValueRegistryTez.java -- diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/tez/DynamicValueRegistryTez.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/tez/DynamicValueRegistryTez.java index ec1e84b..2d99f50 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/exec/tez/DynamicValueRegistryTez.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/tez/DynamicValueRegistryTez.java @@ -61,6 +61,11 @@ public class DynamicValueRegistryTez implements DynamicValueRegistry { } } + static class NullValue { + } + + static final NullValue NULL_VALUE = new NullValue(); + protected Map values = new ConcurrentHashMap<>(); public DynamicValueRegistryTez() { @@ -71,11 +76,21 @@ public class DynamicValueRegistryTez implements DynamicValueRegistry { if (!values.containsKey(key)) { throw new NoDynamicValuesException("Value does not exist in registry: " + key); } -return values.get(key); +Object val = values.get(key); + +if (val == NULL_VALUE) { + return null; +} +return val; } protected void setValue(String key, Object value) { -values.put(key, value); +if (value == null) { + // ConcurrentHashMap does not allow null - use a substitute value. + values.put(key, NULL_VALUE); +} else { + values.put(key, value); +} } @Override
hive git commit: HIVE-19156 : TestMiniLlapLocalCliDriver.vectorized_dynamic_semijoin_reduction.q is broken (Jason Dere via Deepak Jaiswal)
Repository: hive Updated Branches: refs/heads/master 2e027cff7 -> a2dd09f86 HIVE-19156 : TestMiniLlapLocalCliDriver.vectorized_dynamic_semijoin_reduction.q is broken (Jason Dere via Deepak Jaiswal) Signed-off-by: Ashutosh Chauhan Project: http://git-wip-us.apache.org/repos/asf/hive/repo Commit: http://git-wip-us.apache.org/repos/asf/hive/commit/a2dd09f8 Tree: http://git-wip-us.apache.org/repos/asf/hive/tree/a2dd09f8 Diff: http://git-wip-us.apache.org/repos/asf/hive/diff/a2dd09f8 Branch: refs/heads/master Commit: a2dd09f86386ca3f51eca90948d6ec1963ece982 Parents: 2e027cf Author: Jason Dere Authored: Thu Apr 12 08:47:25 2018 -0700 Committer: Ashutosh Chauhan Committed: Thu Apr 12 08:47:25 2018 -0700 -- .../ql/exec/tez/DynamicValueRegistryTez.java | 19 +-- 1 file changed, 17 insertions(+), 2 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hive/blob/a2dd09f8/ql/src/java/org/apache/hadoop/hive/ql/exec/tez/DynamicValueRegistryTez.java -- diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/tez/DynamicValueRegistryTez.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/tez/DynamicValueRegistryTez.java index ec1e84b..2d99f50 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/exec/tez/DynamicValueRegistryTez.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/tez/DynamicValueRegistryTez.java @@ -61,6 +61,11 @@ public class DynamicValueRegistryTez implements DynamicValueRegistry { } } + static class NullValue { + } + + static final NullValue NULL_VALUE = new NullValue(); + protected Map values = new ConcurrentHashMap<>(); public DynamicValueRegistryTez() { @@ -71,11 +76,21 @@ public class DynamicValueRegistryTez implements DynamicValueRegistry { if (!values.containsKey(key)) { throw new NoDynamicValuesException("Value does not exist in registry: " + key); } -return values.get(key); +Object val = values.get(key); + +if (val == NULL_VALUE) { + return null; +} +return val; } protected void setValue(String key, Object value) { -values.put(key, value); +if (value == null) { + // ConcurrentHashMap does not allow null - use a substitute value. + values.put(key, NULL_VALUE); +} else { + values.put(key, value); +} } @Override