Adam Szmigin created ARROW-8344: ----------------------------------- Summary: [C#] StringArray.Builder.Clear() corrupts subsequent array contents Key: ARROW-8344 URL: https://issues.apache.org/jira/browse/ARROW-8344 Project: Apache Arrow Issue Type: Bug Components: C# Affects Versions: 0.16.0 Environment: Windows 10 x64 Reporter: Adam Szmigin
h1. Summary Using the {{Clear()}} method on a {{StringArray.Builder}} class causes all subsequent built arrays to contain strings consisting solely of whitespace. The below minimal example illustrates: {code:java} namespace ArrowStringArrayBuilderBug { using Apache.Arrow; using Apache.Arrow.Memory; public class Program { private static readonly NativeMemoryAllocator Allocator = new NativeMemoryAllocator(); public static void Main() { var builder = new StringArray.Builder(); AppendBuildPrint(builder, "Hello", "World"); builder.Clear(); AppendBuildPrint(builder, "Foo", "Bar"); } private static void AppendBuildPrint( StringArray.Builder builder, params string[] strings) { foreach (var elem in strings) builder.Append(elem); var arr = builder.Build(Allocator); System.Console.Write("Array contents: ["); for (var i = 0; i < arr.Length; i++) { if (i > 0) System.Console.Write(", "); System.Console.Write($"'{arr.GetString(i)}'"); } System.Console.WriteLine("]"); } } {code} h2. Expected Output {noformat} Array contents: ['Hello', 'World'] Array contents: ['Foo', 'Bar'] {noformat} h2. Actual Output {noformat} Array contents: ['Hello', 'World'] Array contents: [' ', ' '] {noformat} h1. Workaround The bug can be trivially worked around by constructing a new {{StringArray.Builder}} instead of calling {{Clear()}}. The issue ARROW-7040 mentions other issues with string arrays in C#, but I'm not sure if this is related or not. -- This message was sent by Atlassian Jira (v8.3.4#803005)