Skip to content

Remove obsolete distinct filtered join wrapper - #23520

Merged
rapids-bot[bot] merged 5 commits into
NVIDIA:mainfrom
PointKernel:cleanup-distinct-filtered-join
Aug 7, 2026
Merged

Remove obsolete distinct filtered join wrapper#23520
rapids-bot[bot] merged 5 commits into
NVIDIA:mainfrom
PointKernel:cleanup-distinct-filtered-join

Conversation

@PointKernel

Copy link
Copy Markdown
Member

Description

This PR removes the obsolete cudf::detail::distinct_filtered_join wrapper and moves its semi/anti join implementation into cudf::detail::filtered_join.

Since cudf::mark_join handles left-table reuse and cudf::filtered_join handles right-table reuse, filtered join has only one concrete implementation. This removes the unnecessary virtual hierarchy and keeps hash-table construction, insertion, and probing in one class without changing behavior.

Checklist

  • I am familiar with the Contributing Guidelines.
  • New or existing tests cover these changes.
  • The documentation is up to date with these changes.

@copy-pr-bot

copy-pr-bot Bot commented Aug 3, 2026

Copy link
Copy Markdown

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.

@github-actions github-actions Bot added the libcudf Affects libcudf (C++/CUDA) code. label Aug 3, 2026
@PointKernel PointKernel added improvement Improvement / enhancement to an existing function non-breaking Non-breaking change labels Aug 3, 2026
@PointKernel

Copy link
Copy Markdown
Member Author

/ok to test 810dddb

@PointKernel
PointKernel marked this pull request as ready for review August 4, 2026 20:33
@PointKernel
PointKernel requested a review from a team as a code owner August 4, 2026 20:33
@PointKernel PointKernel added the 3 - Ready for Review Ready for review by team label Aug 4, 2026
@coderabbitai

coderabbitai Bot commented Aug 4, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: e04910d9-4088-4cf0-ab86-fd35f8fff355

📥 Commits

Reviewing files that changed from the base of the PR and between 5ba02d1 and 810dddb.

📒 Files selected for processing (7)
  • cpp/include/cudf/detail/join/distinct_filtered_join.cuh
  • cpp/include/cudf/detail/join/filtered_join.cuh
  • cpp/src/join/filtered_join/filtered_join.cu
  • cpp/src/join/filtered_join/filtered_join_common.cuh
  • cpp/src/join/filtered_join/filtered_join_flat.cu
  • cpp/src/join/filtered_join/filtered_join_nested_query.cu
  • cpp/src/join/filtered_join/filtered_join_primitive.cu
💤 Files with no reviewable changes (1)
  • cpp/include/cudf/detail/join/distinct_filtered_join.cuh

📝 Walkthrough

Summary by CodeRabbit

  • Improvements
    • Streamlined filtered join processing by consolidating semi-join and anti-join execution.
    • Maintained support for primitive, flat, and nested table queries.
    • Improved handling of query-result storage for filtered joins.
    • Updated join operation reporting for clearer diagnostics.

Walkthrough

The PR removes distinct_filtered_join and consolidates its semi/anti join execution and probing helpers into filtered_join. The public wrapper now constructs filtered_join, which supports primitive, flat, and nested probing through shared helpers.

Changes

Filtered join consolidation

Layer / File(s) Summary
Filtered join contract and probing helpers
cpp/include/cudf/detail/join/filtered_join.cuh
filtered_join becomes concrete and declares shared semi/anti execution and probing helpers. Query match state uses cudf::device_span<bool>.
Filtered join execution and method ownership
cpp/src/join/filtered_join/*
Constructor, semi/anti methods, right-table queries, and wrapper construction move from distinct_filtered_join to filtered_join.

Estimated code review effort: 3 (Moderate) | ~20 minutes

Possibly related issues

Possibly related PRs

  • rapidsai/cudf#23012 — Refactors filtered and mixed join execution around shared filtered-join functionality.
  • rapidsai/cudf#23320 — Introduces filtered-join probing helpers that this PR moves into filtered_join.
  • rapidsai/cudf#23395 — Rewrites mixed joins using filtered joins and shared semi/anti infrastructure.

Suggested reviewers: vyasr, kingcrimsontianyu, ttnghia

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly summarizes the removal of the obsolete wrapper, which is the primary change in the pull request.
Description check ✅ Passed The description accurately explains the wrapper removal, implementation consolidation, and behavior preservation.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches 💡 1
🛠️ Fix failing CI checks 💡
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Comment @coderabbitai help to get the list of available commands.

@PointKernel

Copy link
Copy Markdown
Member Author

/merge

@rapids-bot
rapids-bot Bot merged commit d8fdbcc into NVIDIA:main Aug 7, 2026
250 of 257 checks passed
@PointKernel
PointKernel deleted the cleanup-distinct-filtered-join branch August 7, 2026 17:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

3 - Ready for Review Ready for review by team improvement Improvement / enhancement to an existing function libcudf Affects libcudf (C++/CUDA) code. non-breaking Non-breaking change

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants