[ https://issues.apache.org/jira/browse/AVRO-1340?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16421841#comment-16421841 ]
Bridger Howell edited comment on AVRO-1340 at 4/1/18 11:06 PM: --------------------------------------------------------------- # The current PR looks like it has the parser treat anything that is not a textual value as if nothing were specified. So an enum schema with {{"default": null}} or {{"default": 2}} would be successfully parsed, but would have no effect. Otherwise, if the default is a string, it is only successfully parsed if it is contained in the enum symbols. Given that only string values make sense for an enum fallback, I could definitely see an argument for raising a parse error in those cases. # That seems correct according my understanding of schema resolution and reading how {{SchemaCompatibility}} and {{ResolvingGrammarGenerator}} are implemented. The idea that only the reader can add support for new writers makes sense to me, and it _should_ be preserved with the addition of enum defaults. (I'm not completely confident on that answer, however. Any correction or confirmation from somebody who has a more comprehensive understanding of schema resolution would be helpful.) was (Author: howellbridger): # The current PR looks like it has the parser treat anything that is not a textual value as if nothing were specified. So an enum schema with {{"default": null}} or {{"default": 2}} would be successfully parsed, but would have no effect. Otherwise, if the default is a string, it is only successfully parsed if it is contained in the enum symbols. Given that only string values make sense for an enum fallback, I could definitely see an argument for raising a parse error in those cases. # That seems correct according my understanding of schema resolution and reading how {{SchemaCompatibility}} and {{ResolvingGrammarGenerator}} are implemented. The idea that only the reader can add support for new writers makes sense to me, and it __ should be preserved with the addition of enum defaults. (I'm not completely confident on that answer, however. Any correction or confirmation from somebody who has a more comprehensive understanding of schema resolution would be helpful.) > 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)