Zoltan Farkas created AVRO-2412:
-----------------------------------

             Summary: Improved default value reading
                 Key: AVRO-2412
                 URL: https://issues.apache.org/jira/browse/AVRO-2412
             Project: Apache Avro
          Issue Type: Improvement
    Affects Versions: 1.9.0
            Reporter: Zoltan Farkas


at GenericData.getDefaultValue

https://github.com/apache/avro/blob/master/lang/java/avro/src/main/java/org/apache/avro/generic/GenericData.java#L1164

instead of:

{code}
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        BinaryEncoder encoder = EncoderFactory.get().binaryEncoder(baos, null);
        Accessor.encode(encoder, field.schema(), json);
        encoder.flush();
        BinaryDecoder decoder = 
DecoderFactory.get().binaryDecoder(baos.toByteArray(), null);
        defaultValue = createDatumReader(field.schema()).read(null, decoder);
{code}

wouldn't it be better to do?: 

{code}
          Schema schema = field.schema();
          if (schema.getType() == Type.UNION) {
            schema = schema.getTypes().get(0);
          }
          JsonDecoder decoder = new JsonDecoder(schema, 
json.traverse(Schema.MAPPER));
          defaultValue = createDatumReader(schema).read(null, decoder);
{code}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to