NVIDIA / NVIDIA/cudf

[BUG] Use size_t as extent type in joins instead of int32_t

Open
#20,584 0 comments 0 reactions 0 assignees View on GitHub
bug libcudf
Dominant language
C++
Stars
9.8k
Forks
1.1k
Avg merge
3d 6m
Merged PRs (30d)
278

Description

cuDF currently uses `cudf::size_type` (`int32_t`) as extent type for filtered-join and distinct-key-join.
Since a cudf::table can store a maximum of `2.1` Billion rows, and with the default load-factor of `0.5`, the hash-table size can exceed the maximum representable value of `int32_t`. We should instead use `size_t` as the extent type.

Moreover before 25.10, left-semi and left-anti join used [size_t as the extent-type](https://github.com/rapidsai/cudf/blob/branch-25.08/cpp/include/cudf/hashing/detail/helper_functions.cuh#L38), but this was changed when cudf moved to the new [filtered-join](https://github.com/rapidsai/cudf/blob/main/cpp/src/join/filtered_join.cu#L79C21-L79C48).
Also, hash-join uses `size_t` as the extent type.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.