Hello!  For context, I've been looking to brush up on my python, and
picked a simple-looking JIRA for practice :D  Nothing is as simple as
it seems!

AVRO-2429 asks to not throw exceptions when a LogicalType is unknown,
falling back to the primitive type.  The spec adds that an invalid
logical type should also fall back (e.g. a decimal with badly
configured precision).

The Java implementation ignores unknown and invalid types (tested with
the SpecificCompiler.

The Python implementation currently throws an exception when an
invalid logical type is encountered.  I wrote a PR to change the
behaviour to fall back to the primitive type:
https://github.com/apache/avro/pull/687

Although this conforms to the spec, it's probably not *ideal* for
python: unlike Java code using a specific record, an expected datum
due to a bad logical type in the schema won't be detected at compile
time...

Michael A. Smith suggested making this a configurable warning so the
user can control whether the misconfiguration is shown, ignored or
causes failure -- sound fine to everyone?

Best regards, Ryan

Reply via email to