NVIDIA / NVIDIA/cudf

[FEA] Split primitive row equality and hashing into separate headers

Open
#24,140 0 comments 0 reactions 0 assignees View on GitHub
? - Needs Triage feature request
Dominant language
C++
Stars
9.8k
Forks
1.1k
Avg merge
3d 6m
Merged PRs (30d)
278

Description

**Is your feature request related to a problem? Please describe.**

`primitive_row_operators.cuh` contains both primitive row equality and hashing, along with their shared type dispatch. The new `primitive_lexicographic.cuh` also includes it just to reuse the primitive type map.

**Describe the solution you'd like**

Split the operators into their own headers:

- `primitive_equality.cuh` for the equality comparators.
- `primitive_hashing.cuh` for the hashers.
- `primitive_common.cuh` for the shared primitive type map and compatibility declaration.

Update callers, including `primitive_lexicographic.cuh`, to include the headers they use. Keep the existing APIs and behavior.

**Describe alternatives you've considered**

Keep the combined header, which makes lexicographic comparison pull in equality and hashing just to use the shared dispatch.

**Additional context**

Follow-up after [#24138](https://github.com/NVIDIA/cudf/pull/24138) is merged.

Contributor guide

Open the contributing guide

Research direction

Start by reading primitive_row_operators.cuh and primitive_lexicographic.cuh to identify the shared primitive type map, compatibility declaration, equality comparators, and hashers. Create primitive_common.cuh, primitive_equality.cuh, and primitive_hashing.cuh, then update callers to include only what they use. Done means existing APIs and behavior remain unchanged, including primitive_lexicographic.cuh no longer pulling in unrelated operators.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
backend
Issue type
Refactor
Difficulty
3/5
Estimated time
1-2 days
Activity status
Active
Clarity
Clearly specified
Newbie friendliness
68/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.