[ https://issues.apache.org/jira/browse/AVRO-75?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12797926#action_12797926 ]
Philip Zeyliger commented on AVRO-75: ------------------------------------- bq. if writer's is a union, but reader's is not If the reader's schema matches the selected writer's schema, it is recursively resolved against it. If they do not match, an error is signalled. The quote above is from the union resolution, and I'm unsure what it means too. Does it mean that if you write with [int, string] and read with string, the error occurs only when you encounter an int? Anyway, I think "unset" should be "an error is signalled", though I could be convinced. I'd just like some guarantees that data is not null. (Or, if everything is optional, why bother having unions with nulls?) -- Philip > 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.