Chris Hutchinson created ARROW-4545:
---------------------------------------
Summary: [C#] Extend Append/AppendRange in BinaryArray to support
building rows
Key: ARROW-4545
URL: https://issues.apache.org/jira/browse/ARROW-4545
Project: Apache Arrow
Issue Type: Improvement
Components: C#
Reporter: Chris Hutchinson
Fix For: 0.13.0
This is a proposal to extend BinaryArray to provide the ability to call
Append/AppendRange to grow individual rows during array building, and to expose
values in ArrowBuffer.Builder<T> through a property to facilitate algorithms
that require introspecting the buffer data (sorting, filtering) when building
an array.
*Example:*
{code:java}
var builder = new BinaryArray.Builder()
.Append(10, false)
.Append(20, false)
.Mark();
builder.Append(builder.Values[0], true);
var array = builder.Build();
// General idea:
//
// 1. Append byte (10) to current element (0)
// 2. Append byte (20) to current element (0)
// 3. Mark end of the row
// 4. Append byte (10) to current element (1)
// Constructs a binary array with 2 elements:
//
// [0] 10, 20
// [1] 10{code}
This proposed change would add the concept of "current element" to the builder,
which in the specification are separated by recording the value offset.
Append(true) appends one or more bytes to the current element and then marks
the element as completed. Append(false) appends one or more bytes to the
current element; Mark is required to signal to the builder that the current
element is complete.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)