arrow-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Eric Erhardt (JIRA)" <j...@apache.org>
Subject [jira] [Created] (ARROW-5278) [C#] ArrowBuffer should either implement IEquatable correctly or not at all
Date Tue, 07 May 2019 16:11:00 GMT
Eric Erhardt created ARROW-5278:
-----------------------------------

             Summary: [C#] ArrowBuffer should either implement IEquatable correctly or not
at all
                 Key: ARROW-5278
                 URL: https://issues.apache.org/jira/browse/ARROW-5278
             Project: Apache Arrow
          Issue Type: Bug
            Reporter: Eric Erhardt


See the discussion [here|https://github.com/apache/arrow/pull/3925/#discussion_r281378027].

ArrowBuffer currently implement IEquatable, but doesn't override `GetHashCode`.

We should either implement IEquatable correctly by overriding Equals and GetHashCode, or remove
IEquatable all together.

Looking at ArrowBuffer's [Equals implementation|https://github.com/apache/arrow/blob/08829248fd540b7e3bd96b980e357f8a4db7970e/csharp/src/Apache.Arrow/ArrowBuffer.cs#L66-L69],
it compares each value in the buffer, which is not very efficient. Also, this implementation
is not consistent with how `Memory<T>` implements IEquatable - [https://source.dot.net/#System.Private.CoreLib/shared/System/Memory.cs,500].

If we continue implementing IEquatable on ArrowBuffer, we should consider implementing it
in the same fashion as Memory<T> does.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Mime
View raw message