[FEA] Align HashJoin and DistinctHashJoin Java/JNI conventions
- 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.**
`HashJoin` and `DistinctHashJoin` expose equivalent concepts but differ in Java accessor naming and ordering, Javadocs, leak logging, superficial JNI implementation details, diagnostics, and test coverage.
**Describe the solution you would like**
- Add `HashJoin.getCompareNullsEqual()`, retaining and deprecating `getCompareNulls()` for compatibility.
- Fix the `HashJoin.getNumberOfColumns()` Javadoc typo.
- Align accessor ordering and leak-log formatting, including equivalent formatting in `KeyRemapping` and `ast/CompiledExpression`.
- Normalize superficial JNI differences such as local naming, allocation style, load-factor spelling, null checks, and formatting.
- Normalize column-count mismatch messages in the reusable join APIs, including labels, spacing, and capitalization.
- Add focused coverage for:
- reusing one `DistinctHashJoin` across multiple inner-join probe tables;
- column-count mismatch guards across the reusable `HashJoin` and `DistinctHashJoin` Table overloads.
**Describe alternatives you have considered**
Leave the differences and coverage gaps in place and address them opportunistically, at the cost of some inconsistency and weaker regression protection.
**Additional context**
Follow-up to NVIDIA/cudf#22392, particularly the review discussions about [JNI symmetry](https://github.com/NVIDIA/cudf/pull/22392#discussion_r3906208404), [Java API symmetry](https://github.com/NVIDIA/cudf/pull/22392#discussion_r3906398053), [join diagnostics](https://github.com/NVIDIA/cudf/pull/22392#discussion_r3917373855), [inner-join reuse coverage](https://github.com/NVIDIA/cudf/pull/22392#discussion_r3917414358), and [column-count guard coverage](https://github.com/NVIDIA/cudf/pull/22392#discussion_r3917385811).
Contributor guide
Research direction
Read the linked follow-up discussions first, then compare the HashJoin and DistinctHashJoin Java accessors and JNI entry points. Review KeyRemapping and ast/CompiledExpression for the stated formatting symmetry, and inspect existing coverage for reusable join APIs and Table overloads. Done means the conventions, diagnostics, compatibility behavior, and requested reuse and mismatch coverage are aligned.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp, java
- Domain
- backend-api-design, databases
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100