You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@avro.apache.org by "Anders Sundelin (JIRA)" <ji...@apache.org> on 2016/10/07 16:01:20 UTC

[jira] [Updated] (AVRO-1931) SchemaCompatibility fails to recognize reader compatible with all branches of a union

     [ https://issues.apache.org/jira/browse/AVRO-1931?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Anders Sundelin updated AVRO-1931:
----------------------------------
    Attachment: AVRO-1931.patch

> SchemaCompatibility fails to recognize reader compatible with all branches of a union
> -------------------------------------------------------------------------------------
>
>                 Key: AVRO-1931
>                 URL: https://issues.apache.org/jira/browse/AVRO-1931
>             Project: Avro
>          Issue Type: Bug
>          Components: java
>    Affects Versions: 1.8.1
>         Environment: Java
>            Reporter: Anders Sundelin
>            Priority: Minor
>         Attachments: AVRO-1931.patch
>
>   Original Estimate: 1h
>  Remaining Estimate: 1h
>
> It is stated in the Avro spec
> "if writer's is a union, but reader's is not:
> If the reader's schema matches the selected writer's schema, it is recursively resolved against it. If they do not match, an error is signalled."
> In case a the chosen reader is compatible with all branches of the union in the writer, then the class SchemaCompatibility should reflect this. Currently it does not.
> The submitted patch corrects this (also added tests showing this behaviour in Avro)
> The new tests, in the class TestReadingWritingDataInEvolvedSchemas, could be redundant, but they were very useful when exploring how Avro actually works during de-/serialization
> I will try to continue working a little bit on the SchemaCompatibility class, adding more user-friendly error messages (suitable for deeper structures than todays error message). Feel free to contact me if you have any ideas or pointers to existing work.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)