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 15:59:20 UTC
[jira] [Created] (AVRO-1931) SchemaCompatibility fails to recognize
reader compatible with all branches of a union
Anders Sundelin created AVRO-1931:
-------------------------------------
Summary: 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
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)