bvolpato opened a new pull request, #5242:
URL: https://github.com/apache/calcite/pull/5242

   ## Jira Link
   
   Pending issue creation and linkage. This PR is a draft.
   
   ## Changes Proposed
   
   Enumerable merge ANTI joins currently stop processing left rows when they 
reach a NULL join key. Under strict equality, NULL keys do not match and those 
left rows must survive the ANTI join.
   
   Preserve left NULL keys in all three merge-join advancement paths. Correct 
the existing ANTI test expectations and add repeated-NULL coverage. The tests 
also cover empty inputs, NULL keys on the right, and the overload with an 
additional predicate.
   
   ## Reproduction
   
   With ascending, NULLS LAST inputs, an equality ANTI join of left `[1, 2, 
NULL]` and right `[1]` returns `[2]`. The correct result is `[2, NULL]`.
   
   ```sh
   ./gradlew :core:test --tests 'org.apache.calcite.runtime.EnumerablesTest'
   ```
   
   ## Validation
   
   - The updated test class fails in four methods against the baseline runtime.
   - Compiling the changed runtime and running the complete `EnumerablesTest` 
class directly passes all 53 enabled tests; one existing test is disabled.
   - Generated EnumerableMergeJoin execution returns `[2, NULL]` after the fix.
   - `./gradlew autostyleApply` and `git diff --check` pass.
   - Focused runs used freshly compiled changed classes with cached supporting 
artifacts. Native Gradle test-class compilation on pristine `main` was blocked 
by `java.io.IOException: No space left on device`; the full Gradle build has 
not been validated locally.
   


-- 
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]

Reply via email to