You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@parquet.apache.org by nk...@apache.org on 2019/12/12 16:42:41 UTC
[parquet-mr] branch master updated: [PARQUET-1717] Convert i16
thrift to INT16 logical type instead (#706)
This is an automated email from the ASF dual-hosted git repository.
nkollar pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/parquet-mr.git
The following commit(s) were added to refs/heads/master by this push:
new 4ca29c7 [PARQUET-1717] Convert i16 thrift to INT16 logical type instead (#706)
4ca29c7 is described below
commit 4ca29c7114237d4bb039b7291fa2c8c182170109
Author: Emmanuel <em...@getyourguide.com>
AuthorDate: Thu Dec 12 17:42:31 2019 +0100
[PARQUET-1717] Convert i16 thrift to INT16 logical type instead (#706)
* [PARQUET-1717] Convert i16 thrift to INT16 logical type instead of INT32 primitive
* [Parquet-1717] Add unit test
Add unit test for i16 thrift type
---
.../apache/parquet/thrift/ThriftSchemaConvertVisitor.java | 2 +-
.../apache/parquet/thrift/TestThriftSchemaConverter.java | 13 +++++++++++++
parquet-thrift/src/test/thrift/test.thrift | 4 ++++
3 files changed, 18 insertions(+), 1 deletion(-)
diff --git a/parquet-thrift/src/main/java/org/apache/parquet/thrift/ThriftSchemaConvertVisitor.java b/parquet-thrift/src/main/java/org/apache/parquet/thrift/ThriftSchemaConvertVisitor.java
index 7bfcdb1..4cd3cf5 100644
--- a/parquet-thrift/src/main/java/org/apache/parquet/thrift/ThriftSchemaConvertVisitor.java
+++ b/parquet-thrift/src/main/java/org/apache/parquet/thrift/ThriftSchemaConvertVisitor.java
@@ -314,7 +314,7 @@ class ThriftSchemaConvertVisitor implements ThriftType.StateVisitor<ConvertedFie
@Override
public ConvertedField visit(I16Type i16Type, State state) {
- return visitPrimitiveType(INT32, state);
+ return visitPrimitiveType(INT32, LogicalTypeAnnotation.intType(16, true),state);
}
@Override
diff --git a/parquet-thrift/src/test/java/org/apache/parquet/thrift/TestThriftSchemaConverter.java b/parquet-thrift/src/test/java/org/apache/parquet/thrift/TestThriftSchemaConverter.java
index 2cde15b..5a7b209 100644
--- a/parquet-thrift/src/test/java/org/apache/parquet/thrift/TestThriftSchemaConverter.java
+++ b/parquet-thrift/src/test/java/org/apache/parquet/thrift/TestThriftSchemaConverter.java
@@ -28,6 +28,7 @@ import org.apache.parquet.thrift.struct.ThriftType;
import org.apache.parquet.thrift.struct.ThriftType.StructType;
import org.apache.parquet.thrift.test.compat.MapStructV2;
import org.apache.parquet.thrift.test.compat.SetStructV2;
+import org.apache.parquet.thrift.test.TestLogicalType;
import org.apache.thrift.TBase;
import org.junit.Test;
@@ -337,4 +338,16 @@ public class TestThriftSchemaConverter {
final ThriftType fromJSON = StructType.fromJSON(json);
assertEquals(json, fromJSON.toJSON());
}
+
+ @Test
+ public void testLogicalTypeConvertion() throws Exception {
+ String expected =
+ "message ParquetSchema {\n" +
+ " required int32 test_i16 (INTEGER(16,true)) = 1;" +
+ "}";
+ ThriftSchemaConverter schemaConverter = new ThriftSchemaConverter();
+ final MessageType converted = schemaConverter.convert(TestLogicalType.class);
+ assertEquals(MessageTypeParser.parseMessageType(expected), converted);
+ }
+
}
diff --git a/parquet-thrift/src/test/thrift/test.thrift b/parquet-thrift/src/test/thrift/test.thrift
index e759144..9b3ac85 100644
--- a/parquet-thrift/src/test/thrift/test.thrift
+++ b/parquet-thrift/src/test/thrift/test.thrift
@@ -95,3 +95,7 @@ struct StructWithExtraField {
3: required Phone extraPhone,
6: required Phone phone
}
+
+struct TestLogicalType {
+ 1: required i16 test_i16
+}