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

Bridger Howell commented on AVRO-1340:
--------------------------------------

I think it's worth noting that new syntax isn't strictly necessary in this 
case, since there's generic property setting provided by IDL through 
annotations. With a special enum default syntax, it's possible to run into a 
weird situation where there's an {{@default}} annotation and the new syntax.

I think there are two ways to go on this:
 * Add the new syntax, and makeĀ {{"default"}} be a reserved property for schema 
objects, so that the new syntax is the only way to use the feature. (This is 
how most things in IDL work - defaults, field names and schema names.)
 * Retain the annotation syntax, and let it have added meaning in the new 
version of the compiler, but still makeĀ {{"default"}} a reserved property so 
that accidents don't happen. (The way namespaces are handled in IDL is an 
example of this.)

With the second option, older versions of the IDL compiler would then have 
partial support for enum defaults already built in.

> 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