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]

Reply via email to