[
https://issues.apache.org/jira/browse/AVRO-751?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12989671#comment-12989671
]
Douglas Creager commented on AVRO-751:
--------------------------------------
On the C side, we were keeping a strdup-ed copy of the type name for records,
enums, and fixeds. (And being inconsistent about whether we were also storing
the namespace.) This also reduces the memory footprint by only storing a
reference to the schema, and getting the names from that.
> Store schema reference in datum instances
> -----------------------------------------
>
> Key: AVRO-751
> URL: https://issues.apache.org/jira/browse/AVRO-751
> Project: Avro
> Issue Type: Improvement
> Components: c
> Reporter: Douglas Creager
> Assignee: Douglas Creager
> Attachments: 0001-Store-schema-reference-in-datum-instances.patch
>
>
> This is a patch that lets us keep track of which schema an avro_datum_t is an
> instance of. This is a breaking API change, but I think it makes the API
> simpler and more logical. From the commit message:
> We now keep track of which particular schema an avro_datum_t is an
> instance of. For primitive values, there's only one possible schema,
> and so we don't store an explicit reference. For compound values, the
> datum constructors now take in a schema parameter, which is stored in
> the avro_datum_t instance. For records, enums, and fixeds, this means
> that we don't need to store the name of the schema type anymore, since
> we can get this from the schema.
>
> There were also several functions, which operate on datum instances,
> which needed to take in a schema parameter — avro_datum_to_json, as an
> example. Those parameters aren't needed anymore, since the datum
> carries a reference to its own schema already.
--
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira