-
Notifications
You must be signed in to change notification settings - Fork 26
default values of null are removed from schema in encode_schema #77
Copy link
Copy link
Open
Labels
Description
Heyo 👋
Ran into an edge case today where a schema defined in JSON containing nullable unions would have the "default": null portion stripped out if it was run through a sequence of AvroEx.decode_schema -> AvroEx.encode_schema.
Example:
schema = AvroEx.decode_schema!(~S({
"type": "record",
"name": "Record",
"fields": [
{"type": ["null", "int"], "name": "nullable", "default": null}
]
}))AvroEx.encode_schema(schema)Output:
"{\"fields\":[{\"name\":\"nullable\",\"type\":[{\"type\":\"null\"},{\"type\":\"int\"}]}],\"name\":\"Record\",\"type\":\"record\"}"
I haven't dug too deep, but other primitives seem okay:
schema = AvroEx.decode_schema!(~S({
"type": "record",
"name": "Record",
"fields": [
{"type": ["null", "int"], "name": "nullable", "default": 5}
]
}))AvroEx.encode_schema(schema)"{\"fields\":[{\"default\":5,\"name\":\"nullable\",\"type\":[{\"type\":\"null\"},{\"type\":\"int\"}]}],\"name\":\"Record\",\"type\":\"record\"}"
Using v2.0.1
Reactions are currently unavailable