Mark Perris created AVRO-1714:
---------------------------------

             Summary: Nullable Named Schema definition in IDL fails.
                 Key: AVRO-1714
                 URL: https://issues.apache.org/jira/browse/AVRO-1714
             Project: Avro
          Issue Type: Bug
    Affects Versions: 1.7.6
            Reporter: Mark Perris


According to Section 7.2 of the Avro IDL, named schemata may be treated as 
primitive types.

As such, I believe it should be possible to create a nullable schema reference:
{code}
   record coordinate {
      string type;
   }

   record tweet {
      union {null, coordinate} coordinate;
   }
{code}
to accommodate
{code}
{  
   "coordinate":{  
      "type":"point"
   }
}
{code} and {code}
{  
   "coordinate":null
}
{code}

however, any attempt to store data against that schema results in
{code}
Exception in thread "main" org.apache.avro.AvroTypeException: Unknown union 
branch type
        at org.apache.avro.io.JsonDecoder.readIndex(JsonDecoder.java:445)
        at 
org.apache.avro.io.ResolvingDecoder.doAction(ResolvingDecoder.java:290)
        at org.apache.avro.io.parsing.Parser.advance(Parser.java:88)
        at 
org.apache.avro.io.ResolvingDecoder.readIndex(ResolvingDecoder.java:267)
        at 
org.apache.avro.generic.GenericDatumReader.read(GenericDatumReader.java:155)
        at 
org.apache.avro.generic.GenericDatumReader.readField(GenericDatumReader.java:193)
        at 
org.apache.avro.generic.GenericDatumReader.readRecord(GenericDatumReader.java:183)
        at 
org.apache.avro.generic.GenericDatumReader.read(GenericDatumReader.java:151)
        at 
org.apache.avro.generic.GenericDatumReader.read(GenericDatumReader.java:142)
        at org.apache.avro.tool.DataFileWriteTool.run(DataFileWriteTool.java:99)
        at org.apache.avro.tool.Main.run(Main.java:85)
        at org.apache.avro.tool.Main.main(Main.java:74)
{code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to