[
https://issues.apache.org/jira/browse/AVRO-680?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14066839#comment-14066839
]
Doug Cutting commented on AVRO-680:
-----------------------------------
We might use the names of the types in the pair to name it, e.g, PairAB and
PairCD, but, with packages those could get ugly.
Alternately we might use the hex of the schema fingerprint. We could:
# call SchemaNormalization#parsingFingerprint64 to get the key & value
fingerprints
# xor these to get the pair fingerprint
# use Pair<Hex> for the pair record name
This unfortunately has the problem that, if you add a field to a record that's
in the key or value then its fingerprint will change, the pair name would
change and schema evolution will be broken.
Maybe append the full names of the key and value schemas, then use
SchemaNormalization#fingerprint64 of that UTF-8 encoded string? That would be
stable through changes to the key and value schemas and also create a small,
valid record name.
> 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)