[ https://issues.apache.org/jira/browse/AVRO-3568?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17597829#comment-17597829 ]
ASF subversion and git services commented on AVRO-3568: ------------------------------------------------------- Commit a60b748c1694dcf3fd2b617e75fcc9c1634fd150 in avro's branch refs/heads/branch-1.11 from Martin Tzvetanov Grigorov [ https://gitbox.apache.org/repos/asf?p=avro.git;h=a60b748c1 ] AVRO-3001 AVRO-3274 AVRO-3568 AVRO-3613: Add JSON encoder/decoder for C# Remove Encoder#Flush() method for backward compatibility Signed-off-by: Martin Tzvetanov Grigorov <mgrigo...@apache.org> > C# ToParsingForm normalizes logical type to "logical" rather than base type > --------------------------------------------------------------------------- > > Key: AVRO-3568 > URL: https://issues.apache.org/jira/browse/AVRO-3568 > Project: Apache Avro > Issue Type: Bug > Components: csharp, logical types > Affects Versions: 1.11.0 > Reporter: Kalle Niemitalo > Assignee: Robert Yokota > Priority: Major > Labels: pull-request-available > Fix For: 1.12.0 > > > In the Avro C# library, if Avro.SchemaNormalization.ToParsingForm(Schema) is > given a schema that includes a logical type, then it normalizes that just to > "logical" and not to the base type. The resulting JSON cannot even be parsed > by Avro.Schema.Parse(string). This also makes > SchemaNormalization.ParsingFingerprint return an incorrect fingerprint for > schemas that include logical types. > h2. To reproduce > {code:C#} > using System; > class Program > { > static void Main() > { > var schema = Avro.Schema.Parse( > @"[""int"", {""type"": ""string"", ""logicalType"": ""uuid""}]"); > string pcf = Avro.SchemaNormalization.ToParsingForm(schema); > Console.WriteLine(pcf); > Avro.Schema.Parse(pcf); > } > } > {code} > h2. Expected result > {noformat} > ["int","string"] > {noformat} > h2. Actual result > {noformat} > ["int","logical"] > Unhandled exception. Avro.SchemaParseException: Undefined name: logical at > '[1]' > at Avro.Schema.ParseJson(JToken jtok, SchemaNames names, String encspace) > at Avro.UnionSchema.NewInstance(JArray jarr, PropertyMap props, > SchemaNames names, String encspace) > at Avro.Schema.ParseJson(JToken jtok, SchemaNames names, String encspace) > at Avro.Schema.Parse(String json, SchemaNames names, String encspace) > at Avro.Schema.Parse(String json) > at Program.Main() > {noformat} -- This message was sent by Atlassian Jira (v8.20.10#820010)