linkedin / goavro

Apache License 2.0
971 stars 216 forks source link

Converting default value string of null to nil breaks legitimate schema. #280

Open mokobrosli opened 10 months ago

mokobrosli commented 10 months ago

https://github.com/linkedin/goavro/blob/8eb9f0e2d756cea165f593f80c6780f4b0b4dbb6/record.go#L112

This line treats "null" and null as equivalent for default values, however that is not the case. Having a default value that is actually the string "null" will fail when creating a new Codec.

To reproduce simply try goavro.NewCodec(sample) where sample is :

{ "name": "test_str", "type": [ "string", "null" ], "default": "null" }

The above would pass if the union was defined with null type as its first element but that's a different case. This would fail as well if it was a simple string type.