You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[C++] fill_null_forward, fill_null_backward and replace_with_mask read the wrong bits on a sliced boolean array #51223
On a boolean array with a non-zero offset (a slice), fill_null_forward, fill_null_backward and replace_with_mask return values that belong to other positions of the parent array: the value
bitmap is read without the slice's offset. A materialised copy of the same slice gives the right
answer, and an int64 slice is handled correctly, so it is specific to the bit-packed boolean path.
pyarrow 25.0.1, Python 3.13.9, macOS 26.6 (arm64), wheel from PyPI.
In every "sliced" line the second element is False, which is full[1], not full[4] (True):
the untouched positions are copied from bit index i of the parent bitmap instead of offset + i.
Expected behavior
The "sliced" and "copy" lines agree, as they do for int64.
This looks distinct from #45086 (an allocation crash on a boolean ChunkedArray, fixed on main by #50843 and not in a release yet): the values here are wrong, not the allocation.
Activity
Upstream tracker: sliced boolean fill_null/replace_with_mask filed as a…
A-makarim commentedon Sep 8, 2026
take
apacheGH-51223: [C++] Fix copying sliced boolean arrays
apacheGH-51223: Move chunked fill regression comment
apacheGH-51223: [C++] Fix copying sliced boolean arrays
apacheGH-51223: Move chunked fill regression comment
GH-51223: [C++] Fix copying sliced boolean arrays (#51240)
pitrou commentedon Sep 23, 2026
Issue resolved by pull request 51240
#51240
Upstream tracker: apache/arrow#51223 fixed on main by the contributor…