-
Couldn't load subscription status.
- Fork 3.9k
Closed
Description
Describe the bug, including details regarding any error messages, version, and platform.
In #43389 I widened the offset within the row table to 64-bit and changed the references of row offset, but I seem to have missed two places:
arrow/cpp/src/arrow/acero/swiss_join.cc
Line 442 in ef00568
| target->rows_.mutable_offsets()[num_rows] = static_cast<uint32_t>(num_bytes); |
and
arrow/cpp/src/arrow/acero/swiss_join.cc
Line 446 in ef00568
| target->rows_.mutable_offsets()[num_rows] = static_cast<uint32_t>(num_bytes); |
(The
num_bytes is the accumulation of the sizes of each source row table and the static_cast here is apparently truncating the number which is possibly bigger than 4GB).
Unfortunately our existing test
arrow/cpp/src/arrow/acero/hash_join_node_test.cc
Line 3367 in ef00568
| TEST(HashJoin, LARGE_MEMORY_TEST(BuildSideOver4GBVarLength)) { |
DCHECK_LE(num_bytes, uint32_max).
Component(s)
C++