Alex Behm has posted comments on this change.

Change subject: IMPALA-3071: Fix assignment of On-clause predicates belonging 
to an inner join.
......................................................................


Patch Set 2:

(1 comment)

http://gerrit.cloudera.org:8080/#/c/2309/2/fe/src/main/java/com/cloudera/impala/analysis/Analyzer.java
File fe/src/main/java/com/cloudera/impala/analysis/Analyzer.java:

Line 1150:     if (tids.size() > 1 || isOuterJoined(tids.get(0))
> it looks like this would also capture b.x < 15 in
Let's talk f2f about how to proceed here. Notice how the existing function is 
also wrong in the sense that evalByJoin() may return true for predicates that 
do not have to be assigned to a join. Like you said isOjJoinConjunct(e) does 
not mean we need to assign at a join, and similarly isFullOuterJoined(tid) does 
not mean all predicates bound by tid must be evaluated at a join (the 
predicates could appear below the full outer join).

I tried correcting evalByJoin() to do exactly what it says, but it it difficult 
because we need to analyze the structure of the TableRefs more closely (which 
clause does the predicate come from, where are tuples outer joined first/tast, 
etc.). We basically need to do an analysis similar to my first patch set where 
we "simulate" a push down.


-- 
To view, visit http://gerrit.cloudera.org:8080/2309
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: Iffef7718679d48f866fa90fd3257f182cbb385ae
Gerrit-PatchSet: 2
Gerrit-Project: Impala
Gerrit-Branch: cdh5-2.5.0_5.7.0
Gerrit-Owner: Alex Behm <[email protected]>
Gerrit-Reviewer: Alex Behm <[email protected]>
Gerrit-Reviewer: Marcel Kornacker <[email protected]>
Gerrit-HasComments: Yes

Reply via email to