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 <[email protected]>
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) {