Elliot West created AVRO-2895:
---------------------------------

             Summary: Use default to allow old readers to specify default union 
value when encountering new union branches
                 Key: AVRO-2895
                 URL: https://issues.apache.org/jira/browse/AVRO-2895
             Project: Apache Avro
          Issue Type: Improvement
          Components: spec
            Reporter: Elliot West


The schema resolution page says:
{quote}*if both are unions:*
 The first schema in the reader's union that matches the selected writer's 
union schema is recursively resolved against it. if none match, an error is 
signalled.
{quote}
This makes it difficult to use unions because you can never add a new type to a 
union and keep old reader's compatible. Can we not follow the approach provided 
by other Avro extensible types ({{record}}, {{enum}}) and use a default value 
so that when an old reader encounters a union branch it does not recognise, it 
can default to the optional schema provided one. If the old schema does not 
provide a default then the older reader can continue to fail as it does today.

Clearly, the provided default value must be valid with respect to one of the 
types declared in the reader's union schema.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to