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

Jeff Hammerbacher commented on AVRO-75:
---------------------------------------

Two uses of "unset" that I see:
 * Reader's schema has a field with no default value and the writer's schema 
does not have that field.
 * The Reader's schema has an enum which matches the name of an enum in the 
Writer's schema, but the writer's schema has used a symbol not present in the 
Reader's schema.
In both cases, in the Python implementation, I'm raising a 
SchemaResolutionException.

> Clarify resolution for enums (and fix code)
> -------------------------------------------
>
>                 Key: AVRO-75
>                 URL: https://issues.apache.org/jira/browse/AVRO-75
>             Project: Avro
>          Issue Type: Bug
>          Components: spec
>            Reporter: Raymie Stata
>            Assignee: Doug Cutting
>             Fix For: 1.3.0
>
>
> The current resolution rule for enum's says: "if the writer's symbol is not 
> present in the reader's enum, then the enum value is unset."  This is the 
> only place the word "unset" is used in the doc, it's not clear what you mean. 
>  The code seems to be inconsistent: GenericDatumReader will happily return a 
> symbol the reader doesn't understand; ReflectDatumReader will probably throw 
> a class-not-found exception; ResolvingDecoder throws an error.
> I propose that we declare this case an error, i.e., rewrite the spec to "if 
> the writer's symbol is not listed in the reader's enum, an error is 
> signaled."  GenericDatumReader should be updated to throw an error in this 
> case.
> If we decide to stick with the "unset" language, we need to define what 
> "unset" means (and, if necessary, update ReflectDatumReader and 
> ResolvingDecoder).

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to