mrhhsg opened a new pull request, #70230:
URL: https://github.com/apache/doris/pull/70230
### What problem does this PR solve?
Issue Number: None
Backport of #63767 to branch-4.2. In null-aware anti joins with additional
join conjuncts, a null probe key could be skipped before the existing
null-probe handler evaluated it. This could produce incorrect results for
nullable `NOT IN` subqueries.
### Changes
- Keep the probe index on a null key and reset the build-side scan state so
the existing null-probe handler processes that row.
- Retain the branch-4.2 compile-check include when applying the upstream
change.
- Extend regression coverage for nullable `NOT IN` with disjunctions and
nullable build keys.
### Testing
- `BUILD_TYPE=ASAN DISABLE_BE_JAVA_EXTENSIONS=OFF ./build.sh --be --fe -j
24` (passed, including FE Checkstyle).
- `./run-be-ut.sh --run
--filter='HashJoinProbeOperatorTest.NullAwareLeftAntiJoin*' -j 64` (6 tests
passed).
- `./run-regression-test.sh --conf
regression-test/conf/regression-conf.groovy --run -d correctness -s
test_subquery_in_disjunction` (1 suite passed).
- `build-support/clang-format.sh` and `build-support/check-format.sh`
(passed).
- `git diff --check` (passed).
### Release note
Fix incorrect results for nullable `NOT IN` subqueries using null-aware anti
joins.
### Check List (For Author)
- Test:
- [x] Regression test
- [x] Unit test
- Behavior changed:
- [x] Yes. Preserve nullable probe rows for null-aware anti join
evaluation.
- Does this need documentation?
- [x] No.
--
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]