Chanzo Bryan created AVRO-3979: ---------------------------------- Summary: Python SchemaCompatibility doesn't set location properly for type mismatch with writer unions Key: AVRO-3979 URL: https://issues.apache.org/jira/browse/AVRO-3979 Project: Apache Avro Issue Type: Bug Components: python Affects Versions: 1.11.3, 1.12.0, 1.11.4 Reporter: Chanzo Bryan
When a reader schema has a type mismatch with a writer schema where the writer schema type is a union, the location information for the schema compatibility is lost in Python. This was fixed in Java as a part of AVRO-3612. Given a reader record schema with _int_ field {_}a{_}: {code:java} { "type": "record", "name": "Record1", "fields": [ { "name": "a", "type": "int" } ] }{code} and a writer record schema with an _optional int_ (union of _int_ and {_}null{_}) field {_}a{_}: {code:java} { "type": "record", "name": "Record1", "fields": [ { "name": "a", "type": ["null", "int"], "default": "null" } ] } {code} I would expect to get the follow message and location on invoking {_}get_compatibility(reader, writer){_}: {code:java} message: "reader type: int not compatible with writer type: null" location: "/fields/0/type/0" {code} Instead, we currently get: {code:java} message: "reader type: int not compatible with writer type: null" location: "/" {code} losing all location information. -- This message was sent by Atlassian Jira (v8.20.10#820010)