You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@avro.apache.org by "Cody (Jira)" <ji...@apache.org> on 2020/06/08 18:19:00 UTC

[jira] [Created] (AVRO-2862) C# Primitive Schema losing metadata

Cody created AVRO-2862:
--------------------------

             Summary: C# Primitive Schema losing metadata
                 Key: AVRO-2862
                 URL: https://issues.apache.org/jira/browse/AVRO-2862
             Project: Apache Avro
          Issue Type: Bug
          Components: csharp
    Affects Versions: 1.9.2
            Reporter: Cody


Using this ticket as a base reference: https://issues.apache.org/jira/browse/AVRO-1545
The same problem is happening in the C# version as well.

Given:

 
{code:java}
{
    "type" : "record",
    "name" : "BrokenRecord",
    "namespace" : "whatever",
    "fields" : [
        {
            "name" : "a_string",
            "type" : {
                "type" : "string",
                "foobar" : "some example here"
            }
        }
    ]
}
{code}
The property "foobar" will be lost when parsing the schema.

The fix that my team has implemented is modifying this line (file used from release 1.9.2)
[https://github.com/apache/avro/blob/bf20128ca6138a830b2ea13e0490f3df6b035639/lang/csharp/src/apache/main/Schema/PrimitiveSchema.cs#L85]

And replacing it with the following:

 
{code:java}
if(this.Props != null && this.Props.Count > 0)
{
    w.WriteStartObject();
    w.WritePropertyName("type");
    w.WriteValue(Name);
    foreach(var prop in Props)
    {
        w.WritePropertyName(prop.Key);
        w.WriteRawValue(prop.Value);
    }
    w.WriteEndObject();
}
else w.WriteValue(Name);{code}
 



--
This message was sent by Atlassian Jira
(v8.3.4#803005)