You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@impala.apache.org by "Xianqing He (Jira)" <ji...@apache.org> on 2022/08/25 06:46:00 UTC

[jira] [Created] (IMPALA-11536) Invalid push down predicates in outer join simplification

Xianqing He created IMPALA-11536:
------------------------------------

             Summary: Invalid push down predicates in outer join simplification
                 Key: IMPALA-11536
                 URL: https://issues.apache.org/jira/browse/IMPALA-11536
             Project: IMPALA
          Issue Type: Bug
          Components: Frontend
    Affects Versions: Impala 4.1.0, Impala 4.0.0
            Reporter: Xianqing He
            Assignee: Xianqing He
             Fix For: Impala 4.2.0


When set ENABLE_OUTER_JOIN_TO_INNER_TRANSFORMATION = true;

It may invalid push down the predicate  that is not null rejecting in outer join simplification.

e.g.

 
{code:java}
explain SELECT COALESCE(jointbl.test_id, testtbl.id, dimtbl.id) AS id, test_zip,testtbl.zip                              FROM functional.jointbl                                                                                                         FULL OUTER JOIN                                                                                                                 functional.testtbl                                                                                                              ON jointbl.test_id = testtbl.id                                                                                                 FULL OUTER JOIN                                                                                                                 functional.dimtbl                                                                                                               ON coalesce(jointbl.test_id, testtbl.id) = dimtbl.id                                                                            WHERE                                                                                                                           `jointbl`.`test_zip` = 94611 and coalesce(`testtbl`.`zip`, 0) = 0                                                               Max Per-Host Resource Reservation: Memory=7.89MB Threads=6                                                                      Per-Host Resource Estimates: Memory=72MB                                                                                        WARNING: The following tables are missing relevant table and/or column statistics.                                              functional.testtbl                                                                                                              ""                                                                                                                              PLAN-ROOT SINK                                                                                                                  |                                                                                                                               07:EXCHANGE [UNPARTITIONED]                                                                                                     |                                                                                                                               04:HASH JOIN [LEFT OUTER JOIN, BROADCAST]                                                                                       |  hash predicates: coalesce(jointbl.test_id, testtbl.id) = dimtbl.id                                                           |  row-size=32B cardinality=6                                                                                                   |                                                                                                                               |--06:EXCHANGE [BROADCAST]                                                                                                      |  |                                                                                                                            |  02:SCAN HDFS [functional.dimtbl]                                                                                             |     HDFS partitions=1/1 files=1 size=171B                                                                                     |     row-size=8B cardinality=10                                                                                                |                                                                                                                               03:HASH JOIN [LEFT OUTER JOIN, BROADCAST]                                                                                       |  hash predicates: jointbl.test_id = testtbl.id                                                                                |  row-size=24B cardinality=6                                                                                                   |                                                                                                                               |--05:EXCHANGE [BROADCAST]                                                                                                      |  |                                                                                                                            |  01:SCAN HDFS [functional.testtbl]                                                                                            |     HDFS partitions=1/1 files=0 size=0B                                                                                       |     predicates: coalesce(testtbl.zip, 0) = 0                                                                                  |     row-size=12B cardinality=0                                                                                                |                                                                                                                               00:SCAN HDFS [functional.jointbl]                                                                                                  HDFS partitions=1/1 files=1 size=433B                                                                                           predicates: jointbl.test_zip = 94611                                                                                            row-size=12B cardinality=6{code}
We can't push down the predicate 'coalesce(testtbl.zip, 0) = 0' to ScanNode since it is not null rejecting

 

 



--
This message was sent by Atlassian Jira
(v8.20.10#820010)