Omer van Kloeten created AVRO-3988:
--------------------------------------
Summary: Allow enum value aliasing
Key: AVRO-3988
URL: https://issues.apache.org/jira/browse/AVRO-3988
Project: Apache Avro
Issue Type: Improvement
Reporter: Omer van Kloeten
When providing an enum in a schema, it's an incompatible change to rename any
of its values. However, Avro can offer compatibility using aliases.
Let's take the example from the docs:
{{{}}
{{ "type": "enum",}}
{{ "name": "Suit",}}
{{ "symbols" : ["SPADES", "HEARTS", "DIAMONDS", "CLUBS"]}}
{{}}}
I want to change the name "CLUBS" to "CLOVERS". I can do that using the syntax:
{{{}}
{{ "type": "enum",}}
{{ "name": "Suit",}}
{{ "symbols" : ["SPADES", "HEARTS", "DIAMONDS", "CLOVERS"],}}
{{ "aliases": {}}
{{ "CLOVERS": [ "CLUBS" ]}}
{{ }}}
{{}}}
This change of name can be accommodated by the reader schema.
Another thing this opens up is the ability to consolidate values. For instance,
again based on the example schema (first one in this ticket):
{{{}}
{{ "type": "enum",}}
{{ "name": "Suit",}}
{{ "symbols" : ["SPADES", "HEARTS", "CLOVERS"],}}
{{ "aliases": {}}
{{{} "{}}}{{{}SPADES{}}}{{{}": [ "{}}}{{{}DIAMONDS{}}}{{{}" ]{}}}
{{ }}}
{{}}}
The above says that any DIAMONDS should be converted by the reader schema to
SPADES.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)