I view this as a current implementation limitation…
which we eliminated in our avro fork by adding the ability to map a arbitrary
string value to a symbol like:
@stringSymbols({“MY_SYMB”: “MY NON ID COMPLIANT VALUE"})
enum MyEnum {
A, B, MY_SYMB
}
there is probably other ways to “resolve’ this...
—Z
> On May 30, 2018, at 9:53 AM, Michael A. Smith <[email protected]> wrote:
>
> Hi, we recently ran into AVRO-2174 in the sense that we were using Python,
> and had enums with spaces in some symbols. Now have to do an integration with
> a Java avro system, and have to make some hard choices because Java won't
> accept our enums.
>
> It would help me make some of these choices if I understood if there is a
> technical motivation for not allowing enum symbols to be more arbitrary
> strings. I have read AVRO-1725, but IIUC the decision was made to have the
> spec follow the Java behavior (introducing this break with other
> implementations) starting in 1.8.0.
>
> So, digging deeper, does the data or encoding need this behavior? I'm
> thinking along these lines:
>
> - Are we expected to only use the enum symbols to refer to other names
> defined in the schema?
> - Do spaceless strings lend themselves to a more compact binary encoding?
>