[
https://issues.apache.org/jira/browse/ARROW-13312?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Todd Farmer reassigned ARROW-13312:
-----------------------------------
Assignee: (was: Niranda Perera)
This issue was last updated over 90 days ago, which may be an indication it is
no longer being actively worked. To better reflect the current state, the issue
is being unassigned. Please feel free to re-take assignment of the issue if it
is being actively worked, or if you plan to start that work soon.
> [C++] Bitmap::VisitWordAndWrite epilogue needs to work on Words (not bytes)
> ---------------------------------------------------------------------------
>
> Key: ARROW-13312
> URL: https://issues.apache.org/jira/browse/ARROW-13312
> Project: Apache Arrow
> Issue Type: Bug
> Components: C++
> Reporter: Niranda Perera
> Priority: Major
>
> In recently added `Bitmap::VisitWordAndWrite` method, translates the
> `visitor` lambda (that works on a `Word`) to a byte-visitor while handling
> the epilogue.
> This could lead to incorrect results in the client code.
> ex:
> {code:java}
> // code placeholder
> // N readers, M writers
> int64_t bits_written = 0;
> auto visitor = [&](std::array<Word, N> in, std::array<Word, M>* out){
> ...
> bits_written += (sizeof(Word) * 8);
> }{code}
> At the end of the Visit, bits_written would have an incorrect sum because in
> the prologue, it adds 64 to bits_written for each trailing byte, whereas it
> should've been 8.
>
> Possible solution:
> Needs to add ReadTrailingWord and WriteTrailingWord functionality to
> BitmapWordReader and BitmapWordWriter respectively and call visitor with the
> words in the epilogue.
>
>
--
This message was sent by Atlassian Jira
(v8.20.10#820010)