Skip to content

Include null_aware status in the relevant Join node display implementations#22913

Merged
2010YOUY01 merged 3 commits into
apache:mainfrom
AdamGS:adamg/null-aware-hash-join-display
Jun 16, 2026
Merged

Include null_aware status in the relevant Join node display implementations#22913
2010YOUY01 merged 3 commits into
apache:mainfrom
AdamGS:adamg/null-aware-hash-join-display

Conversation

@AdamGS

@AdamGS AdamGS commented Jun 11, 2026

Copy link
Copy Markdown
Contributor

Which issue does this PR close?

Rationale for this change

This change makes testing null_aware behavior easier, and also makes the performance of various joins clearer - null_aware joins do extra work.

This was originally part #21585, but it seems like there is a bunch of activity around null-aware joins, so I figured its worth splitting out.

What changes are included in this PR?

Add a null_aware indication to relevant Display implementations when appropriate.

Are these changes tested?

SLT tests

Are there any user-facing changes?

Display only

@github-actions github-actions Bot added logical-expr Logical plan and expressions sqllogictest SQL Logic Tests (.slt) physical-plan Changes to the physical-plan crate labels Jun 11, 2026
@AdamGS AdamGS force-pushed the adamg/null-aware-hash-join-display branch from 0ed8e88 to ed0b9d1 Compare June 11, 2026 17:58

@2010YOUY01 2010YOUY01 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, thank you! Left one minor suggestion for extra test.

writeln!(f, "NullsEqual: true")?;
}

if self.null_aware {

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's add test for this

-- in slt
explain format tree
select...

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done, put it in explain_tree.slt.

@github-actions github-actions Bot added the auto detected api change Auto detected API change label Jun 12, 2026
@AdamGS

AdamGS commented Jun 12, 2026

Copy link
Copy Markdown
Contributor Author

semver check failure is a false positive, see #22933

AdamGS added 3 commits June 15, 2026 16:15
Signed-off-by: Adam Gutglick <adamgsal@gmail.com>
Signed-off-by: Adam Gutglick <adamgsal@gmail.com>
@AdamGS AdamGS force-pushed the adamg/null-aware-hash-join-display branch from 46e0288 to e4e7bf3 Compare June 15, 2026 15:15
@github-actions github-actions Bot removed the auto detected api change Auto detected API change label Jun 15, 2026
@2010YOUY01 2010YOUY01 added this pull request to the merge queue Jun 16, 2026
Merged via the queue into apache:main with commit 127731b Jun 16, 2026
38 checks passed
viirya added a commit to viirya/arrow-datafusion that referenced this pull request Jun 21, 2026
Upstream apache#22913 added the `null_aware` status to Join node display.
The correlated multi-column NOT IN case was already producing a
null-aware LeftAnti join (verified: it returns standard-SQL three-valued
results — empty correlated subquery keeps the row, NULL-bearing subquery
excludes it); only the EXPLAIN output now surfaces the flag. Update the
expected logical and physical plans accordingly.

Co-authored-by: Claude Code
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

logical-expr Logical plan and expressions physical-plan Changes to the physical-plan crate sqllogictest SQL Logic Tests (.slt)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Null-aware joins don't display that property

2 participants