avro-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Gaurav Nanda (Created) (JIRA)" <j...@apache.org>
Subject [jira] [Created] (AVRO-973) Union behavior not consistent
Date Sun, 11 Dec 2011 07:53:42 GMT
Union behavior not consistent

                 Key: AVRO-973
                 URL: https://issues.apache.org/jira/browse/AVRO-973
             Project: Avro
          Issue Type: Bug
          Components: python
            Reporter: Gaurav Nanda

Python's union does not respect the order in which type is specified.

For following schema: {"type":"map","values":["int","long","float","double","string","boolean"]},
an integer value is written as double, but it should respect the order in which types have
been specified.

Fixed Code (io.py):

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 // XXX Add break statement here XXX//
   if index_of_schema < 0: raise AvroTypeException(writers_schema, datum)

This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira


View raw message