avro-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Ramana Suvarapu (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (AVRO-1360) C++ Resolving decoder is not working when reader schema has more fields than writer schema
Date Wed, 04 Sep 2013 20:16:52 GMT

    [ https://issues.apache.org/jira/browse/AVRO-1360?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13758284#comment-13758284

Ramana Suvarapu commented on AVRO-1360:

Please use attached testreader-1, testwriter-2 versions to test the resolving decoder functionaliy.
reader schema as 2 addional fields with default types. 1) string type with default value and
2) union type [string, null] with default value null.

> C++ Resolving decoder is not working when reader schema has more fields than writer schema
> ------------------------------------------------------------------------------------------
>                 Key: AVRO-1360
>                 URL: https://issues.apache.org/jira/browse/AVRO-1360
>             Project: Avro
>          Issue Type: Bug
>          Components: c++
>    Affects Versions: 1.7.4
>            Reporter: Ramana Suvarapu
>            Assignee: Thiruvalluvan M. G.
>         Attachments: AVRO-1360-2.patch, AVRO-1360.patch, testreader, testreader.hh, testwriter,
> When reader schema has more number of fields than writer schema, C++ implementation of
resolving decoder is throwing exception "throwing exception "Don't know how to handle excess
fields for reader.” with out checking whether fields are optional or fields have default
> Attached are reader and writer schemas. Record in reader schema has 2 additional fields
than writer schema. One field is required field but it has default value and another one is
optional field (union of null and string). Since one has default value and another is optional
both reader and writer schemas are supposed to be compatible. 
> {"name": "defaultField", "type": "string", "default": "DEFAULT", "declared":"true"},
> {"name": "optionalField", "type": ["string", "null"],"declared":"true"},
> main()
> {
>   avro::ValidSchema readerSchema = load("reader.json");
>   avro::ValidSchema writerSchema = load("writer.json");
>   avro::DecoderPtr d = avro::resolvingDecoder(writerSchema, readerSchema,avro::binaryDecoder());
> }
> But when I tried to create resolving decoder, I am getting "Don't know how to handle
excess fields for reader.” But Java implementation works.  
> Can you please let us know if there are any other limitations with c++ implementation
of ResolvingDecoder? We are planning to use it in our project and we want to make sure it
works as per avro specification.

This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

View raw message