Gaurav,

This looks like a good change.  Can you please file an issue in Jira?

Thanks,

Doug

On 12/08/2011 06:07 AM, Gaurav wrote:
> Hi,
> 
> I was using following schema to encode some data and found that while python
> integers are written as double, which is not correct. Atleast it should
> respect the order in which union is written.
> {"type":"map","values":["int","long","float","double","string","boolean"]}
> 
> 
> A small change in io.py can fix this:
> 
>   def write_union(self, writers_schema, datum, encoder):
>     """
>     A union is encoded by first writing a long value indicating
>     the zero-based position within the union of the schema of its value.
>     The value is then encoded per the indicated schema within the union.
>     """
>     # resolve union
>     index_of_schema = -1
>     for i, candidate_schema in enumerate(writers_schema.schemas):
>       if validate(candidate_schema, datum):
>         index_of_schema = i
> *        break*
>     if index_of_schema < 0: raise AvroTypeException(writers_schema, datum)
> 
> Please include this, if it makes sense.
> 
> Thanks,
> Gaurav Nanda
> 
> --
> View this message in context: 
> http://apache-avro.679487.n3.nabble.com/Python-Union-Behavior-not-consistent-tp3570352p3570352.html
> Sent from the Avro - Users mailing list archive at Nabble.com.

Reply via email to