[
https://issues.apache.org/jira/browse/IMPALA-10902?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
pengdou1990 closed IMPALA-10902.
--------------------------------
Resolution: Abandoned
> In the case of outer join connections, skip unnecessary BE check
> ----------------------------------------------------------------
>
> Key: IMPALA-10902
> URL: https://issues.apache.org/jira/browse/IMPALA-10902
> Project: IMPALA
> Issue Type: Improvement
> Reporter: pengdou1990
> Assignee: pengdou1990
> Priority: Minor
>
> It is incorrect to propagate predicates into a plan subtree that is on the
> nullable side of an outer join if the predicate evaluates to true when all
> its referenced tuples are NULL. For example:
> {code:java}
> select * from (select A.a, B.b, B.col from A left join B on A.a=B.b) v
> where v.col is null{code}
> In this query (v.col is null) should not be evaluated at the scanner of B.
> To Resolve the problem, outer join child nodes has to ensure the predicate
> response true if all related slots are null by call the following function.
> {code:java}
> org.apache.impala.analysis.Analyzer#isTrueWithNullSlots
> {code}
> the function finally call expensive BE Native function.
> {code:java}
> org.apache.impala.service.FeSupport#NativeEvalExprsWithoutRow
> {code}
> if the sql contains hundreds of outer join and the predicate is instance of
> inPredicate and in predicate has thousands of literal, the BE Native
> function will be called hundreds time, cause create single node quite slow,
> as long as several seconds.
> As some predicate can check is True With Null Slots in FE, so it needn't to
> check at BE, if we avoid unnecessary BE check, the creation of single node
> plan create procedure may be accelerated.
>
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]