diff --git contrib/src/java/org/apache/hadoop/hive/contrib/serde2/TypedBytesSerDe.java contrib/src/java/org/apache/hadoop/hive/contrib/serde2/TypedBytesSerDe.java index e46dbef..6d53aab 100644 --- contrib/src/java/org/apache/hadoop/hive/contrib/serde2/TypedBytesSerDe.java +++ contrib/src/java/org/apache/hadoop/hive/contrib/serde2/TypedBytesSerDe.java @@ -65,7 +65,7 @@ import org.apache.hadoop.io.Writable; /** * TypedBytesSerDe uses typed bytes to serialize/deserialize. - * + * * More info on the typedbytes stuff that Dumbo uses. * http://issues.apache.org/jira/browse/HADOOP-1722 A fast python decoder for * this, which is apparently 25% faster than the python version is available at @@ -107,11 +107,12 @@ public class TypedBytesSerDe implements SerDe { String columnTypeProperty = tbl.getProperty(Constants.LIST_COLUMN_TYPES); columnNames = Arrays.asList(columnNameProperty.split(",")); - columnTypes = new ArrayList(); - List columnTypeProps = Arrays.asList(columnTypeProperty.split(",")); - - for (String colType : columnTypeProps) { - columnTypes.add(TypeInfoUtils.getTypeInfoFromTypeString(colType)); + columnTypes = null; + if (columnTypeProperty.length() == 0) { + columnTypes = new ArrayList(); + } else { + columnTypes = TypeInfoUtils + .getTypeInfosFromTypeString(columnTypeProperty); } assert columnNames.size() == columnTypes.size(); diff --git contrib/src/test/queries/clientpositive/serde_typedbytes6.q contrib/src/test/queries/clientpositive/serde_typedbytes6.q new file mode 100644 index 0000000..a644a94 --- /dev/null +++ contrib/src/test/queries/clientpositive/serde_typedbytes6.q @@ -0,0 +1,11 @@ +DROP TABLE table1; +DROP TABLE table2; +DROP TABLE table3; + +CREATE TABLE table1 (a STRING) ROW FORMAT SERDE 'org.apache.hadoop.hive.contrib.serde2.TypedBytesSerDe'; +CREATE TABLE table2 (a STRING, b STRING) ROW FORMAT SERDE 'org.apache.hadoop.hive.contrib.serde2.TypedBytesSerDe'; +CREATE TABLE table3 (a STRING, b STRING, c STRING) ROW FORMAT SERDE 'org.apache.hadoop.hive.contrib.serde2.TypedBytesSerDe'; + +DROP TABLE table1; +DROP TABLE table2; +DROP TABLE table3; diff --git contrib/src/test/results/clientpositive/serde_typedbytes6.q.out contrib/src/test/results/clientpositive/serde_typedbytes6.q.out new file mode 100644 index 0000000..eb752f3 --- /dev/null +++ contrib/src/test/results/clientpositive/serde_typedbytes6.q.out @@ -0,0 +1,42 @@ +PREHOOK: query: DROP TABLE table1 +PREHOOK: type: DROPTABLE +POSTHOOK: query: DROP TABLE table1 +POSTHOOK: type: DROPTABLE +PREHOOK: query: DROP TABLE table2 +PREHOOK: type: DROPTABLE +POSTHOOK: query: DROP TABLE table2 +POSTHOOK: type: DROPTABLE +PREHOOK: query: DROP TABLE table3 +PREHOOK: type: DROPTABLE +POSTHOOK: query: DROP TABLE table3 +POSTHOOK: type: DROPTABLE +PREHOOK: query: CREATE TABLE table1 (a STRING) ROW FORMAT SERDE 'org.apache.hadoop.hive.contrib.serde2.TypedBytesSerDe' +PREHOOK: type: CREATETABLE +POSTHOOK: query: CREATE TABLE table1 (a STRING) ROW FORMAT SERDE 'org.apache.hadoop.hive.contrib.serde2.TypedBytesSerDe' +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: default@table1 +PREHOOK: query: CREATE TABLE table2 (a STRING, b STRING) ROW FORMAT SERDE 'org.apache.hadoop.hive.contrib.serde2.TypedBytesSerDe' +PREHOOK: type: CREATETABLE +POSTHOOK: query: CREATE TABLE table2 (a STRING, b STRING) ROW FORMAT SERDE 'org.apache.hadoop.hive.contrib.serde2.TypedBytesSerDe' +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: default@table2 +PREHOOK: query: CREATE TABLE table3 (a STRING, b STRING, c STRING) ROW FORMAT SERDE 'org.apache.hadoop.hive.contrib.serde2.TypedBytesSerDe' +PREHOOK: type: CREATETABLE +POSTHOOK: query: CREATE TABLE table3 (a STRING, b STRING, c STRING) ROW FORMAT SERDE 'org.apache.hadoop.hive.contrib.serde2.TypedBytesSerDe' +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: default@table3 +PREHOOK: query: DROP TABLE table1 +PREHOOK: type: DROPTABLE +POSTHOOK: query: DROP TABLE table1 +POSTHOOK: type: DROPTABLE +POSTHOOK: Output: default@table1 +PREHOOK: query: DROP TABLE table2 +PREHOOK: type: DROPTABLE +POSTHOOK: query: DROP TABLE table2 +POSTHOOK: type: DROPTABLE +POSTHOOK: Output: default@table2 +PREHOOK: query: DROP TABLE table3 +PREHOOK: type: DROPTABLE +POSTHOOK: query: DROP TABLE table3 +POSTHOOK: type: DROPTABLE +POSTHOOK: Output: default@table3