Adam Szmigin created ARROW-8886:
-----------------------------------
Summary: [C#] Decide and implement appropriate behaviour for Array
builder resize to negative size
Key: ARROW-8886
URL: https://issues.apache.org/jira/browse/ARROW-8886
Project: Apache Arrow
Issue Type: Improvement
Components: C#
Affects Versions: 0.17.1
Reporter: Adam Szmigin
h1. Summary
Currently, the {{ArrowBuffer.Builder}} class accepts a negative value to the
{{Resize()}} method, and treats it as though the caller passed zero. This was
implemented deliberately, as there is an explicit unit test to verify the
behaviour.
However, it is also unusual. By way of comparison:
* The {{System.Array.Resize<T>()}} method throws
{{ArgumentOutOfRangeException}} if a negative value is passed:
https://docs.microsoft.com/en-us/dotnet/api/system.array.resize?view=netcore-3.1
* The Arrow C++ implementation will refuse to accept a negative length:
https://github.com/apache/arrow/blob/master/cpp/src/arrow/array/builder_base.h#L194
h1. Acceptance Criteria
* The behaviour when receiving a negative length to a {{Resize()}} method
_must_ be agreed upon.
* Appropriate changes _must_ be made to the codebase in accordance with the
outcome of the above agreement.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)