[
https://issues.apache.org/jira/browse/AVRO-1340?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16331452#comment-16331452
]
Doug Cutting commented on AVRO-1340:
------------------------------------
I don't understand your "None" column. I see two cases:
(1) A field with this name did not exist in the writer's schema. In the case
of an enum-valued field, a default value, whether in the enum definition or
field definition should be used. An error should be signalled if no default of
either sort is specified.
(2) The symbol written does not exist in the reader's schema. In this case
also, a specified default should be used. If both are specifiable, the field's
default should have priority over the enum's. We cannot require that the
reader know of unknown symbols, that would defeat the purpose. We want to
permit folks to be able to add & remove new symbols. An error should again
only be thrown if no default is specified.
So I don't see a significant difference in the semantics of a field default or
an enum default. Permitting both allows more powerful scoping of defaults but
adds complexity. Do folks need that power enough to justify the complexity?
> 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)