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/10/21 23:22:52 UTC

[1/2] hive git commit: HIVE-11829: Create test for HIVE-11216 (Vikram Dixit K, reviewed by Jason Dere)

Repository: hive
Updated Branches:
  refs/heads/branch-1.0 f1939cb5a -> 6acd7e8a9


HIVE-11829: Create test for HIVE-11216 (Vikram Dixit K, reviewed by Jason Dere)


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

Branch: refs/heads/branch-1.0
Commit: b8c57949d1b624c9416a4da9f790139e5c7bcbbb
Parents: f1939cb
Author: vikram <vi...@hortonworks.com>
Authored: Wed Oct 21 14:12:33 2015 -0700
Committer: vikram <vi...@hortonworks.com>
Committed: Wed Oct 21 14:14:01 2015 -0700

----------------------------------------------------------------------
 data/files/mapNull.txt                          |  1 +
 ql/src/test/queries/clientpositive/nullMap.q    | 14 ++++++
 .../test/results/clientpositive/nullMap.q.out   | 46 ++++++++++++++++++++
 3 files changed, 61 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hive/blob/b8c57949/data/files/mapNull.txt
----------------------------------------------------------------------
diff --git a/data/files/mapNull.txt b/data/files/mapNull.txt
new file mode 100644
index 0000000..dea2f13
--- /dev/null
+++ b/data/files/mapNull.txt
@@ -0,0 +1 @@
+1\N

http://git-wip-us.apache.org/repos/asf/hive/blob/b8c57949/ql/src/test/queries/clientpositive/nullMap.q
----------------------------------------------------------------------
diff --git a/ql/src/test/queries/clientpositive/nullMap.q b/ql/src/test/queries/clientpositive/nullMap.q
new file mode 100644
index 0000000..d2784b7
--- /dev/null
+++ b/ql/src/test/queries/clientpositive/nullMap.q
@@ -0,0 +1,14 @@
+create table map_txt (
+  id int,
+  content map<int,string>
+)
+row format delimited 
+null defined as '\\N'
+stored as textfile
+;
+
+LOAD DATA LOCAL INPATH '../../data/files/mapNull.txt' INTO TABLE map_txt;
+
+select * from map_txt;
+
+select id, map_keys(content) from map_txt;

http://git-wip-us.apache.org/repos/asf/hive/blob/b8c57949/ql/src/test/results/clientpositive/nullMap.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/nullMap.q.out b/ql/src/test/results/clientpositive/nullMap.q.out
new file mode 100644
index 0000000..af9b606
--- /dev/null
+++ b/ql/src/test/results/clientpositive/nullMap.q.out
@@ -0,0 +1,46 @@
+PREHOOK: query: create table map_txt (
+  id int,
+  content map<int,string>
+)
+row format delimited 
+null defined as '\\N'
+stored as textfile
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@map_txt
+POSTHOOK: query: create table map_txt (
+  id int,
+  content map<int,string>
+)
+row format delimited 
+null defined as '\\N'
+stored as textfile
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@map_txt
+PREHOOK: query: LOAD DATA LOCAL INPATH '../../data/files/mapNull.txt' INTO TABLE map_txt
+PREHOOK: type: LOAD
+#### A masked pattern was here ####
+PREHOOK: Output: default@map_txt
+POSTHOOK: query: LOAD DATA LOCAL INPATH '../../data/files/mapNull.txt' INTO TABLE map_txt
+POSTHOOK: type: LOAD
+#### A masked pattern was here ####
+POSTHOOK: Output: default@map_txt
+PREHOOK: query: select * from map_txt
+PREHOOK: type: QUERY
+PREHOOK: Input: default@map_txt
+#### A masked pattern was here ####
+POSTHOOK: query: select * from map_txt
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@map_txt
+#### A masked pattern was here ####
+1	NULL
+PREHOOK: query: select id, map_keys(content) from map_txt
+PREHOOK: type: QUERY
+PREHOOK: Input: default@map_txt
+#### A masked pattern was here ####
+POSTHOOK: query: select id, map_keys(content) from map_txt
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@map_txt
+#### A masked pattern was here ####
+1	[]


[2/2] hive git commit: HIVE-11216: UDF GenericUDFMapKeys throws NPE when a null map value is passed in (Yibing Shi via Chaoyu Tang, reviewed by Szehon Ho

Posted by vi...@apache.org.
HIVE-11216: UDF GenericUDFMapKeys throws NPE when a null map value is passed in (Yibing Shi via Chaoyu Tang, reviewed by Szehon Ho


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

Branch: refs/heads/branch-1.0
Commit: 6acd7e8a96d8b4164d1a08864ba9e08e14da7f70
Parents: b8c5794
Author: ctang <ct...@gmail.com>
Authored: Thu Jul 16 14:34:28 2015 -0400
Committer: vikram <vi...@hortonworks.com>
Committed: Wed Oct 21 14:19:28 2015 -0700

----------------------------------------------------------------------
 .../apache/hadoop/hive/ql/udf/generic/GenericUDFMapKeys.java   | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hive/blob/6acd7e8a/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFMapKeys.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFMapKeys.java b/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFMapKeys.java
index 1d4bcef..b3c8962 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFMapKeys.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFMapKeys.java
@@ -19,6 +19,7 @@
 package org.apache.hadoop.hive.ql.udf.generic;
 
 import java.util.ArrayList;
+import java.util.Map;
 
 import org.apache.hadoop.hive.ql.exec.Description;
 import org.apache.hadoop.hive.ql.exec.UDFArgumentException;
@@ -61,7 +62,10 @@ public class GenericUDFMapKeys extends GenericUDF {
   public Object evaluate(DeferredObject[] arguments) throws HiveException {
     retArray.clear();
     Object mapObj = arguments[0].get();
-    retArray.addAll(mapOI.getMap(mapObj).keySet());
+    Map<?,?> mapVal = mapOI.getMap(mapObj);
+    if (mapVal != null) {
+      retArray.addAll(mapVal.keySet());
+    }
     return retArray;
   }