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)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to