Skip to content

[AURON #2541] Support residual conditions in native broadcast nested loop joins - #2553

Merged
richox merged 1 commit into
apache:masterfrom
Deegue:auron_#2541_support_rc_in_bnlj
Sep 30, 2026
Merged

richox merged 1 commit into
apache:masterfrom
Deegue:auron_#2541_support_rc_in_bnlj

Conversation

@Deegue

@Deegue Deegue commented Sep 30, 2026

Copy link
Copy Markdown
Contributor

Which issue does this PR close?

Closes #2541

Rationale for this change

Native broadcast nested loop joins currently reject join conditions. Queries without equality keys, such as l.value < r.value, therefore fall back to Spark.

This PR extends native BNLJ to evaluate these conditions during matching, enabling native execution for supported join types and build orientations.

What changes are included in this PR?

  • Pass BNLJ conditions through Spark conversion to the native broadcast join engine.
  • Enable native BNLJ by default.
  • Make native sort-merge fallback handle joins without equality keys while preserving residual conditions and output projections.
  • Correct ordering metadata for keyless joins and broadcast hash joins with SMJ fallback enabled.
  • Add Rust and Spark regression tests covering multiple probe partitions, build orientations, nulls, count-only projections, forced fallback, ordering, and configuration switches.

Are there any user-facing changes?

No.

How was this patch tested?

UTs.

@richox
richox merged commit aa76510 into apache:master Sep 30, 2026
134 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Support and extend conditions in native broadcast nested loop joins

2 participants