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
Compute method if_else seems to create an invalid Dictionary Array #47886
res.type shows ordered=True, while the internal chunks are unordered.
If internal chunks are unordered, should not the ChunkedArray (res) be marked as unordered as well?
It causes some internal issues in my application (I am using C++ interface: arrow::compute::CallFunction) aborting my program with: Array chunks must all be same type.
PS. I checked with nightly package and it seems to be there as well: pip install -i https://pypi.anaconda.org/scientific-python-nightly-wheels/simple pyarrow
Hi, I would like to report a bug in if_else when used on ordered dictionary ChunkedArrays.
Currently, the resulting ChunkedArray reports ordered=True at the top level,
but its internal chunks are ordered=False. This can cause C++ errors like
"Array chunks must all be same type" when using arrow::compute::CallFunction.
I suggest that if_else should either:
Preserve the ordered property for each internal chunk, or
If chunks cannot remain ordered, mark the top-level ChunkedArray as unordered.
I can help reproduce this in a minimal test and propose a fix.
Activity
goldigd05 commentedon Jan 4, 2026
Hi, I would like to report a bug in
if_elsewhen used on ordered dictionary ChunkedArrays.Currently, the resulting ChunkedArray reports
ordered=Trueat the top level,but its internal chunks are
ordered=False. This can cause C++ errors like"Array chunks must all be same type" when using
arrow::compute::CallFunction.I suggest that
if_elseshould either:orderedproperty for each internal chunk, orI can help reproduce this in a minimal test and propose a fix.
thisisnic commentedon Oct 20, 2026
This was fixed in #49937