[ https://issues.apache.org/jira/browse/AVRO-2862?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Cody updated AVRO-2862: ----------------------- Description: 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} Another somewhat related ticket: https://issues.apache.org/jira/browse/AVRO-1346 was: 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} > 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 > Priority: Major > > 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} > Another somewhat related ticket: > https://issues.apache.org/jira/browse/AVRO-1346 -- This message was sent by Atlassian Jira (v8.3.4#803005)