[ 
https://issues.apache.org/jira/browse/IMPALA-11536?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Xianqing He updated IMPALA-11536:
---------------------------------
    Description: 
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.
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;
 
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
We can't push down the predicate 'coalesce(testtbl.zip, 0) = 0' to ScanNode 
since it is not null rejecting

 

 

 

 

  was:
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

 

 


> 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.0.0, Impala 4.1.0
>            Reporter: Xianqing He
>            Assignee: Xianqing He
>            Priority: Major
>             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.
> 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;
>  
> 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
> 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