diff --git a/serde/src/java/org/apache/hadoop/hive/serde2/RegexSerDe.java b/serde/src/java/org/apache/hadoop/hive/serde2/RegexSerDe.java index 38e8b77..56c0537 100644 --- a/serde/src/java/org/apache/hadoop/hive/serde2/RegexSerDe.java +++ b/serde/src/java/org/apache/hadoop/hive/serde2/RegexSerDe.java @@ -148,8 +148,18 @@ public void initialize(Configuration conf, Properties tbl) } // StandardStruct uses ArrayList to store the row. + String columnComments = tbl.getProperty("columns.comments"); + if (columnComments == null) { + // split() needs to have list size matching number of columns + StringBuilder sb = new StringBuilder(); + for (int idx = 0; idx < columnNames.size() - 1; ++idx) { + sb.append('\0'); + } + columnComments = sb.toString(); + } + rowOI = ObjectInspectorFactory.getStandardStructObjectInspector( - columnNames,columnOIs,Lists.newArrayList(Splitter.on('\0').split(tbl.getProperty("columns.comments")))); + columnNames,columnOIs,Lists.newArrayList(Splitter.on('\0').split(columnComments))); row = new ArrayList(numColumns); // Constructing the row object, etc, which will be reused for all rows.