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)

Reply via email to