Conversation
|
Auto-sync is disabled for draft pull requests in this repository. Workflows must be run manually. Contributors can view more details about this message here. |
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Enterprise Run ID: 📒 Files selected for processing (10)
🚧 Files skipped from review as they are similar to previous changes (2)
Included review availability: Your plan provides up to 12 included reviews per hour; 10 remain after this review. 📝 SummarySummary by CodeRabbit
WalkthroughAdds Java and JNI support for filtering join gather maps with compiled conditions. Reworks native FULL_JOIN filtering to preserve passing pairs and emit unmatched rows. Adds coverage for reusable maps, nulls, duplicates, empty inputs, ownership, output sizing, and JIT paths. ChangesFilter join gather maps
Priority: ➖ Normal Estimated code review effort: 4 (Complex) | ~60 minutes Change: Feature Suggested reviewers: Merge Risk: ⚪ Minimal · up to The Java/JNI contract and full-join behavior have broad targeted coverage, with no concrete issue requiring correction before merge. 🚥 Pre-merge checks | ✅ 6 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (6 passed)
Full details: Docstring CoverageExplanation Docstring coverage is 6.45% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 31 functions across 9 files. (2 skipped: 1 unsupported, 1 too large.)
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
Description
Adds a Java/JNI binding for
cudf::filter_join_indices, including Java join-kind selection and ownership-preserving conversion betweenGatherMapinputs and outputs. This lets Java callers compose reusableHashJoinequality gather maps with AST predicate filtering for inner, left, and full joins.The API documents matching-kind input maps, row correspondence, sentinel/null/empty behavior, and independent output ownership. Java tests cover reusable hash joins, duplicate and nullable candidates, empty inputs, and input/output lifetimes.
Closes #24096.
Native fix dependency
The libcudf FULL filtering bug is tracked in #24145 and fixed separately by #24146, targeting
release/26.10. This PR contains only Java/JNI changes. Its FULL regression tests require that native fix to be present onmainbefore this PR merges.Validation
Java/JNI built successfully with the native fix applied in a CUDA 13.3 conda devcontainer. All 13 filter tests passed; the full TableTest class had 351 passes and 2 existing Arrow-related skips. These results validate the Java changes with the native dependency; the standalone native fix is no longer included in this PR.
Checklist