If you use Record builders you will currently get this behavior in the java
implementation[1].

AFAICT, there's no builder equivalent in the python implementation yet.

In python maybe we can skip having a builder because we can distinguish
between "key maps to None" from "Dict does not contain key".

Does that sound reasonable? Care to file a ticket and maybe propose a patch?


[1]:
http://avro.apache.org/docs/1.7.7/api/java/org/apache/avro/data/RecordBuilder.html

or more likely the generic implementation:

http://avro.apache.org/docs/1.7.7/api/java/org/apache/avro/generic/GenericRecordBuilder.html

or an example of the builder in generated specific code:

http://avro.apache.org/docs/current/gettingstartedjava.html#Creating+Users



On Mon, Aug 11, 2014 at 2:33 PM, Jeno I. Hajdu <[email protected]>
wrote:

> Hi,
>
> my understanding of the field default values (based on the spec) is that it
> is solely for filling in fields present in the reader schema, but missing
> in the writer schema, thus defaults only make sense in reader schemas.
>
> In addition to that couldn't defaults be used on the writer side (defined
> in the writer schema) to fill in fields with missing values? So if I have a
> record schema with 100 fields, all having defaults, I could specify only 5
> field values for a record to be serialized and the Avro lib would fill in
> the rest. This does not impact the serialization (format) itself, the spec
> would only allow using defaults for this purpose (and for example adding
> this support to the python implementation takes 2 extra lines based on a
> quick trial).
>
> What do you think? Would this go against Avro's philosophy?
>
> Thanks and Regards,
> Jeno
>



-- 
Sean

Reply via email to