Commits


Rossi Sun authored and GitHub committed a53a77c9321
GH-45506: [C++][Acero] More overflow-safe Swiss table (#45515) ### Rationale for this change See #45506. ### What changes are included in this PR? 1. Abstract current overflow-prone block data access into functions that do proper type promotion to avoid overflow. Also remove the old block base address accessor. 2. Unify the data types used for various concepts as they naturally are (i.e., w/o explicit promotion): `uint32_t` for `block_id`, `int` for `num_xxx_bits/bytes`, `uint32_t` for `group_id`, `int` for `local_slot_id` and `uint32_t` for `global_slot_id`. 3. Abstract several constants and utility functions for readability and maintainability. ### Are these changes tested? Existing tests should suffice. It is really hard (gosh I did try) to create a concrete test case that fails w/o this change and passes w/ this change. ### Are there any user-facing changes? None. * GitHub Issue: #45506 Authored-by: Rossi Sun <zanmato1984@gmail.com> Signed-off-by: Antoine Pitrou <antoine@python.org>