[ https://issues.apache.org/jira/browse/AVRO-530?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12861935#action_12861935 ]
Scott Carey commented on AVRO-530: ---------------------------------- Some of it was in this conversation: http://www.mail-archive.com/avro-dev@hadoop.apache.org/msg02397.html I agree the JSON could certainly be easier to use in several ways. But those are spec changes that are not backwards compatible. Maybe Avro 2.0? > 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. - You can reply to this email to add a comment to the issue online.