On 08/16/2010 11:34 AM, John Kristian wrote:
It seems tricky to add a nullable field with a default (for compatibility
with previous versions).  I find that the type of the default value must be
declared first in the union.  For example, this works:

{"name":"myField", "type":["int", "null"], "default": 3}

But this doesn't:

{"name":"myField", "type":["null", "int"], "default": 3}

When I resolve the latter from a writer's schema that doesn't declare the
field, I get the value null, not 3.  There's a similar problem with a null
default: the resolved value is zero, not null, if "int" comes first in the
union.

John,

That's the intended, specified behavior:

"Default values for union fields correspond to the first schema in the union."

http://avro.apache.org/docs/current/spec.html#schema_complex

Doug

Reply via email to