You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@parquet.apache.org by zi...@apache.org on 2018/06/04 16:49:20 UTC

[parquet-mr] branch master updated: PARQUET-1317: Fix ParquetMetadataConverter throw NPE (#491)

This is an automated email from the ASF dual-hosted git repository.

zivanfi 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 a918c49  PARQUET-1317: Fix ParquetMetadataConverter throw NPE (#491)
a918c49 is described below

commit a918c493296c88da94b36600213c7c188f2589b4
Author: nandorKollar <na...@users.noreply.github.com>
AuthorDate: Mon Jun 4 18:49:17 2018 +0200

    PARQUET-1317: Fix ParquetMetadataConverter throw NPE (#491)
    
    New test case in TestParquetMetadataConverter to reproduce NPE and ensure backward compatibility
---
 .../format/converter/TestParquetMetadataConverter.java   | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/parquet-hadoop/src/test/java/org/apache/parquet/format/converter/TestParquetMetadataConverter.java b/parquet-hadoop/src/test/java/org/apache/parquet/format/converter/TestParquetMetadataConverter.java
index 4fc4035..b3eebd6 100644
--- a/parquet-hadoop/src/test/java/org/apache/parquet/format/converter/TestParquetMetadataConverter.java
+++ b/parquet-hadoop/src/test/java/org/apache/parquet/format/converter/TestParquetMetadataConverter.java
@@ -147,6 +147,22 @@ public class TestParquetMetadataConverter {
   }
 
   @Test
+  public void testLogicalTypesBackwardCompatibleWithConvertedTypes() {
+    ParquetMetadataConverter parquetMetadataConverter = new ParquetMetadataConverter();
+    MessageType expected = Types.buildMessage()
+      .required(PrimitiveTypeName.BINARY)
+      .as(OriginalType.DECIMAL).precision(9).scale(2)
+      .named("aBinaryDecimal")
+      .named("Message");
+    List<SchemaElement> parquetSchema = parquetMetadataConverter.toParquetSchema(expected);
+    // Set logical type field to null to test backward compatibility with files written by older API,
+    // where converted_types are written to the metadata, but logicalType is missing
+    parquetSchema.get(1).setLogicalType(null);
+    MessageType schema = parquetMetadataConverter.fromParquetSchema(parquetSchema, null);
+    assertEquals(expected, schema);
+  }
+
+  @Test
   public void testEnumEquivalence() {
     ParquetMetadataConverter parquetMetadataConverter = new ParquetMetadataConverter();
     for (org.apache.parquet.column.Encoding encoding : org.apache.parquet.column.Encoding.values()) {

-- 
To stop receiving notification emails like this one, please contact
zivanfi@apache.org.