HIVE-10428 : NPE in RegexSerDe using HCat (Jason Dere via Ashutosh Chauhan)

Signed-off-by: Ashutosh Chauhan <hashut...@apache.org>


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

Branch: refs/heads/master
Commit: 31591bf1833fb3858c599addbe53aa57ac381ba4
Parents: aaa112d
Author: Jason Dere <jd...@apache.org>
Authored: Tue Apr 28 13:05:00 2015 -0700
Committer: Ashutosh Chauhan <hashut...@apache.org>
Committed: Wed Apr 29 13:05:48 2015 -0700

----------------------------------------------------------------------
 .../org/apache/hive/hcatalog/mapreduce/InternalUtil.java |  2 ++
 .../org/apache/hadoop/hive/metastore/MetaStoreUtils.java | 11 +++++++++++
 .../java/org/apache/hadoop/hive/serde2/SerDeUtils.java   |  1 +
 3 files changed, 14 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hive/blob/31591bf1/hcatalog/core/src/main/java/org/apache/hive/hcatalog/mapreduce/InternalUtil.java
----------------------------------------------------------------------
diff --git 
a/hcatalog/core/src/main/java/org/apache/hive/hcatalog/mapreduce/InternalUtil.java
 
b/hcatalog/core/src/main/java/org/apache/hive/hcatalog/mapreduce/InternalUtil.java
index 9b97939..3100181 100644
--- 
a/hcatalog/core/src/main/java/org/apache/hive/hcatalog/mapreduce/InternalUtil.java
+++ 
b/hcatalog/core/src/main/java/org/apache/hive/hcatalog/mapreduce/InternalUtil.java
@@ -164,6 +164,8 @@ class InternalUtil {
       MetaStoreUtils.getColumnNamesFromFieldSchema(fields));
     
props.setProperty(org.apache.hadoop.hive.serde.serdeConstants.LIST_COLUMN_TYPES,
       MetaStoreUtils.getColumnTypesFromFieldSchema(fields));
+    props.setProperty("columns.comments",
+      MetaStoreUtils.getColumnCommentsFromFieldSchema(fields));
 
     // setting these props to match LazySimpleSerde
     
props.setProperty(org.apache.hadoop.hive.serde.serdeConstants.SERIALIZATION_NULL_FORMAT,
 "\\N");

http://git-wip-us.apache.org/repos/asf/hive/blob/31591bf1/metastore/src/java/org/apache/hadoop/hive/metastore/MetaStoreUtils.java
----------------------------------------------------------------------
diff --git 
a/metastore/src/java/org/apache/hadoop/hive/metastore/MetaStoreUtils.java 
b/metastore/src/java/org/apache/hadoop/hive/metastore/MetaStoreUtils.java
index b89b07a..38dc406 100644
--- a/metastore/src/java/org/apache/hadoop/hive/metastore/MetaStoreUtils.java
+++ b/metastore/src/java/org/apache/hadoop/hive/metastore/MetaStoreUtils.java
@@ -1115,6 +1115,17 @@ public class MetaStoreUtils {
     return sb.toString();
   }
 
+  public static String getColumnCommentsFromFieldSchema(List<FieldSchema> 
fieldSchemas) {
+    StringBuilder sb = new StringBuilder();
+    for (int i = 0; i < fieldSchemas.size(); i++) {
+      if (i > 0) {
+        sb.append(SerDeUtils.COLUMN_COMMENTS_DELIMITER);
+      }
+      sb.append(fieldSchemas.get(i).getComment());
+    }
+    return sb.toString();
+  }
+
   public static void makeDir(Path path, HiveConf hiveConf) throws 
MetaException {
     FileSystem fs;
     try {

http://git-wip-us.apache.org/repos/asf/hive/blob/31591bf1/serde/src/java/org/apache/hadoop/hive/serde2/SerDeUtils.java
----------------------------------------------------------------------
diff --git a/serde/src/java/org/apache/hadoop/hive/serde2/SerDeUtils.java 
b/serde/src/java/org/apache/hadoop/hive/serde2/SerDeUtils.java
index c2649b4..8dada5a 100644
--- a/serde/src/java/org/apache/hadoop/hive/serde2/SerDeUtils.java
+++ b/serde/src/java/org/apache/hadoop/hive/serde2/SerDeUtils.java
@@ -62,6 +62,7 @@ public final class SerDeUtils {
   public static final char QUOTE = '"';
   public static final char COLON = ':';
   public static final char COMMA = ',';
+  public static final char COLUMN_COMMENTS_DELIMITER = '\0';
   public static final String LBRACKET = "[";
   public static final String RBRACKET = "]";
   public static final String LBRACE = "{";

Reply via email to