You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@parquet.apache.org by fo...@apache.org on 2020/01/05 20:12:18 UTC

[parquet-mr] branch master updated: PARQUET-1730: Use switch Statement in AvroIndexedRecordConverter for Enums (#718)

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

fokko 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 c697d80  PARQUET-1730: Use switch Statement in AvroIndexedRecordConverter for Enums (#718)
c697d80 is described below

commit c697d80ec1f10b381d634a01b6dd9eda2ba125e2
Author: belugabehr <12...@users.noreply.github.com>
AuthorDate: Sun Jan 5 15:12:10 2020 -0500

    PARQUET-1730: Use switch Statement in AvroIndexedRecordConverter for Enums (#718)
---
 .../parquet/avro/AvroIndexedRecordConverter.java   | 49 ++++++++++++----------
 1 file changed, 26 insertions(+), 23 deletions(-)

diff --git a/parquet-avro/src/main/java/org/apache/parquet/avro/AvroIndexedRecordConverter.java b/parquet-avro/src/main/java/org/apache/parquet/avro/AvroIndexedRecordConverter.java
index 4bbf58a..aba562f 100644
--- a/parquet-avro/src/main/java/org/apache/parquet/avro/AvroIndexedRecordConverter.java
+++ b/parquet-avro/src/main/java/org/apache/parquet/avro/AvroIndexedRecordConverter.java
@@ -150,35 +150,38 @@ class AvroIndexedRecordConverter<T extends IndexedRecord> extends GroupConverter
     ParentValueContainer parent = ParentValueContainer
         .getConversionContainer(setter, conversion, schema);
 
-    if (schema.getType().equals(Schema.Type.BOOLEAN)) {
+    switch (schema.getType()) {
+    case ARRAY:
+      return new AvroArrayConverter(parent, type.asGroupType(), schema, model);
+    case BOOLEAN:
       return new AvroConverters.FieldBooleanConverter(parent);
-    } else if (schema.getType().equals(Schema.Type.INT)) {
-      return new AvroConverters.FieldIntegerConverter(parent);
-    } else if (schema.getType().equals(Schema.Type.LONG)) {
-      return new AvroConverters.FieldLongConverter(parent);
-    } else if (schema.getType().equals(Schema.Type.FLOAT)) {
-      return new AvroConverters.FieldFloatConverter(parent);
-    } else if (schema.getType().equals(Schema.Type.DOUBLE)) {
-      return new AvroConverters.FieldDoubleConverter(parent);
-    } else if (schema.getType().equals(Schema.Type.BYTES)) {
+    case BYTES:
       return new AvroConverters.FieldByteBufferConverter(parent);
-    } else if (schema.getType().equals(Schema.Type.STRING)) {
-      return new AvroConverters.FieldStringConverter(parent);
-    } else if (schema.getType().equals(Schema.Type.RECORD)) {
-      return new AvroIndexedRecordConverter(parent, type.asGroupType(), schema, model);
-    } else if (schema.getType().equals(Schema.Type.ENUM)) {
+    case DOUBLE:
+      return new AvroConverters.FieldDoubleConverter(parent);
+    case ENUM:
       return new FieldEnumConverter(parent, schema, model);
-    } else if (schema.getType().equals(Schema.Type.ARRAY)) {
-      return new AvroArrayConverter(parent, type.asGroupType(), schema, model);
-    } else if (schema.getType().equals(Schema.Type.MAP)) {
+    case FIXED:
+      return new FieldFixedConverter(parent, schema, model);
+    case FLOAT:
+      return new AvroConverters.FieldFloatConverter(parent);
+    case INT:
+      return new AvroConverters.FieldIntegerConverter(parent);
+    case LONG:
+      return new AvroConverters.FieldLongConverter(parent);
+    case MAP:
       return new MapConverter(parent, type.asGroupType(), schema, model);
-    } else if (schema.getType().equals(Schema.Type.UNION)) {
+    case RECORD:
+      return new AvroIndexedRecordConverter(parent, type.asGroupType(), schema, model);
+    case STRING:
+      return new AvroConverters.FieldStringConverter(parent);
+    case UNION:
       return new AvroUnionConverter(parent, type, schema, model);
-    } else if (schema.getType().equals(Schema.Type.FIXED)) {
-      return new FieldFixedConverter(parent, schema, model);
+    case NULL: // fall through
+    default:
+      throw new UnsupportedOperationException(String.format("Cannot convert Avro type: %s" +
+          " (Parquet type: %s) ", schema, type));
     }
-    throw new UnsupportedOperationException(String.format("Cannot convert Avro type: %s" +
-        " (Parquet type: %s) ", schema, type));
   }
 
   private void set(int index, Object value) {