You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@avro.apache.org by "Doug Cutting (JIRA)" <ji...@apache.org> on 2010/08/20 21:10:16 UTC

[jira] Updated: (AVRO-617) Catch mismatched default values

     [ https://issues.apache.org/jira/browse/AVRO-617?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Doug Cutting updated AVRO-617:
------------------------------

    Attachment: AVRO-617.patch

Here's a patch that fixes this, including unit tests.  Unless there are objections, I'll commit this soon.

> Catch mismatched default values
> -------------------------------
>
>                 Key: AVRO-617
>                 URL: https://issues.apache.org/jira/browse/AVRO-617
>             Project: Avro
>          Issue Type: Improvement
>          Components: java
>    Affects Versions: 1.3.3
>            Reporter: John Kristian
>             Fix For: 1.4.0
>
>         Attachments: AVRO-617.patch
>
>
> Please signal an error when a field's default value isn't permitted; that is when it doesn't match the field type.  In particular, when the type is a union, please signal an error if the default isn't a permitted value of the first schema in the union.
> For example, these field declarations are erroneous:
> {"name":"f1", "type":["null", "int"], "default": 3}
> {"name":"f2", "type":["int", "null"], "default": null}
> In the current Java implementation, schema resolution using these schemata will result in f1=null (not 3) and f2=0 (not null). This quiet choice of an unintended value is apt to cause trouble that's difficult to diagnose.
> I propose that schema parsing signal an error when attempting to parse such an erroneous schema.  Another option is for schema resolution to signal an error when the reader's schema is erroneous.  Schema parsing is better, I think, since it will help catch mistakes earlier, when they're cheaper to correct.  It wouldn't hurt for both schema parsing and resolution to check.

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