Author: brock
Date: Fri Jan 30 20:48:52 2015
New Revision: 1656114
URL: http://svn.apache.org/r1656114
Log:
HIVE-9502 - Parquet cannot read Map types from files written with Hive <= 0.12
(Sergio Pena via Brock)
Added:
hive/trunk/data/files/alltypesparquet (with props)
hive/trunk/ql/src/test/queries/clientpositive/parquet_read_backward_compatible_files.q
hive/trunk/ql/src/test/results/clientpositive/parquet_read_backward_compatible_files.q.out
Modified:
hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/io/parquet/convert/HiveGroupConverter.java
Added: hive/trunk/data/files/alltypesparquet
URL:
http://svn.apache.org/viewvc/hive/trunk/data/files/alltypesparquet?rev=1656114&view=auto
==============================================================================
Binary file - no diff available.
Propchange: hive/trunk/data/files/alltypesparquet
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Modified:
hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/io/parquet/convert/HiveGroupConverter.java
URL:
http://svn.apache.org/viewvc/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/io/parquet/convert/HiveGroupConverter.java?rev=1656114&r1=1656113&r2=1656114&view=diff
==============================================================================
---
hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/io/parquet/convert/HiveGroupConverter.java
(original)
+++
hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/io/parquet/convert/HiveGroupConverter.java
Fri Jan 30 20:48:52 2015
@@ -53,7 +53,7 @@ public abstract class HiveGroupConverter
OriginalType annotation = type.getOriginalType();
if (annotation == OriginalType.LIST) {
return HiveCollectionConverter.forList(type, parent, index);
- } else if (annotation == OriginalType.MAP) {
+ } else if (annotation == OriginalType.MAP || annotation ==
OriginalType.MAP_KEY_VALUE) {
return HiveCollectionConverter.forMap(type, parent, index);
}
Added:
hive/trunk/ql/src/test/queries/clientpositive/parquet_read_backward_compatible_files.q
URL:
http://svn.apache.org/viewvc/hive/trunk/ql/src/test/queries/clientpositive/parquet_read_backward_compatible_files.q?rev=1656114&view=auto
==============================================================================
---
hive/trunk/ql/src/test/queries/clientpositive/parquet_read_backward_compatible_files.q
(added)
+++
hive/trunk/ql/src/test/queries/clientpositive/parquet_read_backward_compatible_files.q
Fri Jan 30 20:48:52 2015
@@ -0,0 +1,20 @@
+-- This test makes sure that parquet can read older parquet files written by
Hive <= 0.12
+-- alltypesparquet is a files written by older version of Hive
+
+CREATE TABLE alltypesparquet (
+ bo1 boolean,
+ ti1 tinyint,
+ si1 smallint,
+ i1 int,
+ bi1 bigint,
+ f1 float,
+ d1 double,
+ s1 string,
+ m1 map<string,string>,
+ l1 array<int>,
+ st1 struct<c1:int,c2:string>
+) STORED AS PARQUET;
+
+LOAD DATA LOCAL INPATH '../../data/files/alltypesparquet' OVERWRITE INTO TABLE
alltypesparquet;
+
+SELECT * FROM alltypesparquet;
\ No newline at end of file
Added:
hive/trunk/ql/src/test/results/clientpositive/parquet_read_backward_compatible_files.q.out
URL:
http://svn.apache.org/viewvc/hive/trunk/ql/src/test/results/clientpositive/parquet_read_backward_compatible_files.q.out?rev=1656114&view=auto
==============================================================================
---
hive/trunk/ql/src/test/results/clientpositive/parquet_read_backward_compatible_files.q.out
(added)
+++
hive/trunk/ql/src/test/results/clientpositive/parquet_read_backward_compatible_files.q.out
Fri Jan 30 20:48:52 2015
@@ -0,0 +1,55 @@
+PREHOOK: query: -- This test makes sure that parquet can read older parquet
files written by Hive <= 0.12
+-- alltypesparquet is a files written by older version of Hive
+
+CREATE TABLE alltypesparquet (
+ bo1 boolean,
+ ti1 tinyint,
+ si1 smallint,
+ i1 int,
+ bi1 bigint,
+ f1 float,
+ d1 double,
+ s1 string,
+ m1 map<string,string>,
+ l1 array<int>,
+ st1 struct<c1:int,c2:string>
+) STORED AS PARQUET
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@alltypesparquet
+POSTHOOK: query: -- This test makes sure that parquet can read older parquet
files written by Hive <= 0.12
+-- alltypesparquet is a files written by older version of Hive
+
+CREATE TABLE alltypesparquet (
+ bo1 boolean,
+ ti1 tinyint,
+ si1 smallint,
+ i1 int,
+ bi1 bigint,
+ f1 float,
+ d1 double,
+ s1 string,
+ m1 map<string,string>,
+ l1 array<int>,
+ st1 struct<c1:int,c2:string>
+) STORED AS PARQUET
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@alltypesparquet
+PREHOOK: query: LOAD DATA LOCAL INPATH '../../data/files/alltypesparquet'
OVERWRITE INTO TABLE alltypesparquet
+PREHOOK: type: LOAD
+#### A masked pattern was here ####
+PREHOOK: Output: default@alltypesparquet
+POSTHOOK: query: LOAD DATA LOCAL INPATH '../../data/files/alltypesparquet'
OVERWRITE INTO TABLE alltypesparquet
+POSTHOOK: type: LOAD
+#### A masked pattern was here ####
+POSTHOOK: Output: default@alltypesparquet
+PREHOOK: query: SELECT * FROM alltypesparquet
+PREHOOK: type: QUERY
+PREHOOK: Input: default@alltypesparquet
+#### A masked pattern was here ####
+POSTHOOK: query: SELECT * FROM alltypesparquet
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@alltypesparquet
+#### A masked pattern was here ####
+true 10 100 1000 10000 4.0 20.0 hello {"k1":"v1"}
[100,200] {"c1":10,"c2":"foo"}