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

Doug Cutting commented on AVRO-1340:
------------------------------------

I'm not overly concerned about that compatibility change.  But if we want to 
avoid it, we could use the field default only when the writer did not contain 
the field (1, above) and the enum's default only when the enum is missing the 
symbol (2, above).  I think that's what you're assuming in the first 
spreadsheet.

A few clarifications about the first spreadsheet: In rows 11, 12 & 13, I think 
you mean that the enum symbols are "A,B,bar", not just "A,B", right?  But "foo" 
is never in the enum, right?  And your "Violates Rules" are things that should 
be caught at schema-parse time, not while reading data, right?

> use default to allow old readers to specify default enum value when 
> encountering new enum symbols
> -------------------------------------------------------------------------------------------------
>
>                 Key: AVRO-1340
>                 URL: https://issues.apache.org/jira/browse/AVRO-1340
>             Project: Avro
>          Issue Type: Improvement
>          Components: spec
>         Environment: N/A
>            Reporter: Jim Donofrio
>            Priority: Minor
>
> The schema resolution page says:
> > if both are enums:
> > if the writer's symbol is not present in the reader's enum, then an
> error is signalled.
> This makes it difficult to use enum's because you can never add a enum value 
> and keep old reader's compatible. Why not use the default option to refer to 
> one of enum values so that when a old reader encounters a enum ordinal it 
> does not recognize, 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.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to