mithuncy opened a new pull request, #22104:
URL: https://github.com/apache/datafusion/pull/22104
## Summary
Closes #22065.
`null_aware` was missing from `JoinNode` in the logical proto
(it was added to the physical `HashJoinExecNode` in #19635). The
encoder dropped it via `..` destructuring and the decoder had no
field to restore it from, so any `to_proto` -> `from_proto` round
trip silently downgraded a null-aware LeftAnti (NOT IN semantics)
to a plain LeftAnti and returned wrong rows.
## Changes
- Add `bool null_aware = 9;` to `JoinNode` (backward compatible).
- Encoder: write `null_aware` to the proto.
- Decoder: builder paths hardcode `null_aware = false`, so
restore it on the built `Join` from the proto.
- Regression test reproducing the issue's NOT-IN-with-NULL case.
## Related (not fixed here)
`null_equality` has the same bug on the same decoder path:
`from_proto` ignores `join.null_equality` even though the proto
carries it. Out of scope; follow-up issue to come.
## Test plan
- `cargo test -p datafusion-proto --test proto_integration
cases::roundtrip_logical_plan` passes (incl. new `roundtrip_join_null_aware`).
- Clippy clean.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]