Details
Description
The Avro specification does not include examples on how to apply the "decimal" or "duration" logical type to a "fixed" type. The implementations disagree on what the correct JSON structure is.
The C++, Java, Python, and Ruby libraries expect the properties of the "fixed" type to be in the same JSON object as the properties of the logical type:
{ "type": "fixed", "name": "test.FixedDecimal", "size": 8, "logicalType": "decimal", "precision": 18, "scale": 4 }
The C# and Rust libraries instead expect a nested JSON object for the "fixed" type:
{ "type": { "type": "fixed", "name": "test.Fixed8", "size": 8 }, "logicalType": "decimal", "precision": 18, "scale": 4 }
Schemas using types like this are then not interoperable between languages.