hi Atri,

You're pushing one buffer for each element in the left array:

https://github.com/atris/arrow/commit/1dcce9b2f34818760df29fdf8767fc1619257ea9#diff-4459cb59122bbce0553230b6638f6d5eR100

(gdb) p out->buffers.size()
$23 = 3

The first buffer in out->buffers is the validity bitmap, which is
being set to all zeros, which indicates to other code that the values
are all null

Unfortunately, this is not the preferred approach to implementing a
"match" function. It needs to use a hash table like Unique and
DictionaryEncode -- otherwise you have an O(n * m) algorithm instead
of O(n). You can see a commented out API placeholder in kernels/hash.h

Hope this helps
Wes
On Sun, Sep 23, 2018 at 2:13 PM Atri Sharma <atri.j...@gmail.com> wrote:
>
> Hi All,
>
> While adding a new test, I am facing an issue where a Datum of Array
> type returned by a function in compute layer does not match the
> expected value. I manually checked the buffers of the returned Datum's
> Array's contained ArrayData, and they look to be the correct values,
> but on printing this ArrayData, all values are shown as null.
>
> Could someone please tell me what I am missing here? Is there an other
> way to do the comparison?
>
> The WIP code is at:
>
> https://github.com/atris/arrow/commit/1dcce9b2f34818760df29fdf8767fc1619257ea9#diff-0c513f55830e5334d28c08b1a07c6215R1441
>
> Regards,
>
> Atri

Reply via email to