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]
