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-680) Allow for non-string keys
Date Fri, 18 Jul 2014 20:20:05 GMT

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

Doug Cutting commented on AVRO-680:
-----------------------------------

This is looking good!

I am still concerned about the potential for name conflicts.  If you have two different non-string
maps in two classes that reference each other then if you get the schema for one record first
the pairs will be named differently than if you get the second first.  Consider:

{code}
class R1 { 
  map<A,B> 
  @Nullable R2 r2;
}
class R2 {
   map<C,D>
   @Nullable R1 r1;
}
{code}

Also, the logic to create the non-string-key map schema might be moved to a separate method
rather than nested in the (already too large) getClass() method.

> Allow for non-string keys
> -------------------------
>
>                 Key: AVRO-680
>                 URL: https://issues.apache.org/jira/browse/AVRO-680
>             Project: Avro
>          Issue Type: Improvement
>    Affects Versions: 1.7.6, 1.7.7
>            Reporter: Jeremy Hanna
>         Attachments: non_string_map_keys.zip, non_string_map_keys2.zip
>
>
> Based on an email thread back in April, Doug Cutting proposed a possible solution for
having non-string keys:
> Stu Hood wrote:
> > I can understand the reasoning behind AVRO-9, but now I need to look for an alternative
to a 'map' that will allow me to store an association of bytes keys to values.
> A map of Foo has the same binary format as an array of records, each
> with a string field and a Foo field.  So an application can use an array
> schema similar to this to represent map-like structures with, e.g.,
> non-string keys.
> Perhaps we could establish standard properties that indicate that a
> given array of records should be represented in a map-like way if
> possible?  E.g.,:
> {"type": "array", "isMap": true, "items": {"type":"record", ...}}
> Doug



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Mime
View raw message