[FEA] Split primitive row equality and hashing into separate headers
- 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
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