Hello Aleksandr Efimov, Steve Carlin, Michael Smith, Impala Public Jenkins,
I'd like you to reexamine a change. Please visit
http://gerrit.cloudera.org:8080/23962
to look at the new patch set (#4).
Change subject: IMPALA-14714: Fix incorrect results for anti-join with constant
ON clause predicates
......................................................................
IMPALA-14714: Fix incorrect results for anti-join with constant ON clause
predicates
This patch fixes incorrect query results when using LEFT/RIGHT ANTI JOIN
with constant predicates in the ON clause (e.g., ON FALSE, ON NULL or ON TRUE).
Previously, constant anti-join predicates were incorrectly handled:
- They were marking the entire query as having an empty result set
- They were being assigned to scan nodes instead of join nodes
- They were being migrated into inline views incorrectly
- They were being pushed into the operands of a UNION/VALUES inline view
on the preserved side of the anti-join, which emptied that input
The fix adds special handling for anti-join conjuncts to:
1. Skip them in markConstantConjunct() to avoid marking query as empty
2. Route constant ON clause predicates to canEvalOnClauseConjunct()
3. Ensure constant anti-join predicates are evaluated at join nodes
4. Prevent migration of anti-join predicates into inline views
5. Exclude anti-join conjuncts from the union-operand push-down in
SingleNodePlanner.createUnionPlan(), so they stay unassigned and are
evaluated at the anti-join node
Testing:
- Added test cases covering ON FALSE, ON TRUE, and mixed predicates for
both LEFT and RIGHT ANTI JOIN
- Added test cases for constant UNION ALL inline views on the preserved
side, covering ON FALSE, ON NULL, RIGHT ANTI JOIN and mixed predicates
Change-Id: I0e0f4a69263bb0ff11f421a1a340dffb904c6842
---
M fe/src/main/java/org/apache/impala/analysis/Analyzer.java
M fe/src/main/java/org/apache/impala/planner/SingleNodePlanner.java
M
testdata/workloads/functional-planner/queries/PlannerTest/subquery-rewrite.test
M testdata/workloads/functional-query/queries/QueryTest/semi-joins.test
4 files changed, 284 insertions(+), 8 deletions(-)
git pull ssh://gerrit.cloudera.org:29418/Impala-ASF refs/changes/62/23962/4
--
To view, visit http://gerrit.cloudera.org:8080/23962
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings
Gerrit-Project: Impala-ASF
Gerrit-Branch: master
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: I0e0f4a69263bb0ff11f421a1a340dffb904c6842
Gerrit-Change-Number: 23962
Gerrit-PatchSet: 4
Gerrit-Owner: Yifan Zhang <[email protected]>
Gerrit-Reviewer: Aleksandr Efimov <[email protected]>
Gerrit-Reviewer: Impala Public Jenkins <[email protected]>
Gerrit-Reviewer: Michael Smith <[email protected]>
Gerrit-Reviewer: Steve Carlin <[email protected]>
Gerrit-Reviewer: Yifan Zhang <[email protected]>