avro-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Doug Cutting (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (AVRO-530) allow for mutual recursion in type definitions
Date Mon, 01 Oct 2012 17:31:08 GMT

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

Doug Cutting commented on AVRO-530:

Yes, that's meant to work today.  Perhaps there's a bug when a record has no other fields
besides a self-reference.  Please file a separate issue for this bug.  Thanks!
> allow for mutual recursion in type definitions
> ----------------------------------------------
>                 Key: AVRO-530
>                 URL: https://issues.apache.org/jira/browse/AVRO-530
>             Project: Avro
>          Issue Type: Improvement
>          Components: spec
>    Affects Versions: 1.3.2
>            Reporter: Jeff Hodges
> Suppose you have these two types in your protocol:
> {code}
> {"name": "User", "type": "record", "fields": [{"name": "current_status", "type": "Status"}]}
> {"name": "Status", "type": "record", "fields": [{"name": "author", "type": "User"}]}
> {code}
> This will raise an error! The current workaround is to define one of them at their first
usage. Like:
> {code}
> {"name": "User", "type": "record", "fields": [{"name": "current_status", "type": {"name":
"Status", "type": "record", "fields": [.. lots of fields ...]}]}
> {code}
> But this is incredibly unwieldy. It would be really nice for the spec to require all
the parsers to allow for mutual recursion, instead. It could be done by implementing a two-pass
parser. One pass to acquire names referenced, and a second to fill in those names with their
appropriate references.

This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

View raw message