[
https://issues.apache.org/jira/browse/AVRO-680?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14098780#comment-14098780
]
Doug Cutting commented on AVRO-680:
-----------------------------------
We should not force every caller to work around a bug in the implementation of
isMap and isArray. Rather we should either fix the bug or not introduce it in
the first place.
If the size of the map is non-zero then we can probe it and see if the key is a
non-string. Then isMap/isArray could only be inconsistent with getSchema() for
empty non-string maps. I'm not sure whether that's acceptable.
> 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: AVRO-680.patch, isMap_Call_Hierarchy.png,
> non_string_map_keys.zip, non_string_map_keys2.zip, non_string_map_keys3.zip,
> non_string_map_keys4.patch, non_string_map_keys5.patch,
> non_string_map_keys6.patch
>
>
> 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)