[
https://issues.apache.org/jira/browse/AVRO-3376?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
makoto nakano updated AVRO-3376:
--------------------------------
Release Note: Added support for Alias function in ReflectReader (was:
aliases support for C#)
> avro aliases support for C# ReflectReader
> ------------------------------------------
>
> Key: AVRO-3376
> URL: https://issues.apache.org/jira/browse/AVRO-3376
> Project: Apache Avro
> Issue Type: Improvement
> Components: csharp
> Affects Versions: 1.11.0
> Reporter: makoto nakano
> Priority: Major
> Attachments: AVRO-3379.patch, AvroReflectSample.zip
>
>
> Currently, AvroC # ReflectReader does not support avro aliases.
> {code:java}
> public class SampleOld
> {
> public string OldValue { set; get; }
> }
> public static string SampleOldSchema => "{" +
> " \"type\":\"record\"," +
> " \"name\":\"Sample\"," +
> " \"fields\":[" +
> " {" +
> "
> \"name\":\"OldValue\"," +
> "
> \"type\":\"string\"" +
> " }" +
> " ]" +
> "}";
> public class SampleNew
> {
> public string NewValue { set; get; } = "";
> }
> public static string SampleNewSchema => "{" +
> " \"type\":\"record\"," +
> " \"name\":\"Sample\"," +
> " \"fields\":[" +
> " {" +
> "
> \"name\":\"NewValue\"," +
> "
> \"aliases\":[\"OldValue\"]," +
> "
> \"type\":\"string\"" +
> " }" +
> " ]" +
> "}";
>
> static void Main(string[] args)
> {
> using var stream = new MemoryStream();
> var sample = new SampleOld()
> {
> OldValue = "TestValue"
> };
> var writerSchema = Schema.Parse(SampleOldSchema);
> var avroWriter = new ReflectWriter<SampleOld>(writerSchema);
> avroWriter.Write(sample, new BinaryEncoder(stream));
> stream.Position = 0;
> var readerSchema = Schema.Parse(SampleNewSchema);
> var avroReader = new ReflectReader<SampleNew>(writerSchema,
> readerSchema);
> var Result = avroReader.Read(new BinaryDecoder(stream));
>
>
> // Read Function is Success
> // NewValue does not contain the OldValue value
> Console.WriteLine($"Read Value = {Result.NewValue}");
> } {code}
--
This message was sent by Atlassian Jira
(v8.20.7#820007)