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)

Reply via email to