[ 
https://issues.apache.org/jira/browse/CALCITE-5247?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17586083#comment-17586083
 ] 

Ali Mansour commented on CALCITE-5247:
--------------------------------------

[~libenchao] 
PR created: https://github.com/apache/calcite/pull/2887

> FilterJoinRule cannot simplify left join to inner join for `WHERE RHS.C1 IS 
> NOT NULL OR RHS.C2 IS NOT NULL`
> -----------------------------------------------------------------------------------------------------------
>
>                 Key: CALCITE-5247
>                 URL: https://issues.apache.org/jira/browse/CALCITE-5247
>             Project: Calcite
>          Issue Type: Improvement
>          Components: core
>    Affects Versions: 1.25.0, 1.31.0
>            Reporter: Ali Mansour
>            Priority: Major
>
> For the following query:
> {code:sql}
> SELECT 
>   * 
> FROM 
>   (
>     SELECT 
>       A.C0 AS L, 
>       B.C1 AS R1, 
>       B.C2 AS R2 
>     FROM 
>       A 
>       LEFT JOIN B
>   ) 
> WHERE 
>   (R1 IS NOT NULL) 
>   OR (R2 IS NOT NULL)
> {code}
> it should be optimized to
> {code:sql}
>    SELECT 
>       A.C0 AS L, 
>       B.C1 AS R1, 
>       B.C2 AS R2 
>     FROM 
>       A 
>       INNER JOIN B
> {code}
>  but it didn't.
> The FilterJoinRule fails to simplify this specific case, however if we have 
> only 1 IS_NOT_NULL in the filter condition, it is able to do so.
> I think the problem is in the Strong class.



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

Reply via email to