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

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

Hello [~libenchao] 

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)


should be transformed to 

    SELECT 
      A.C0 AS L, 
      B.C1 AS R1, 
      B.C2 AS R2 
    FROM 
      A 
      *INNER* JOIN B

> FilterJoinRule not simplifying a case that can be simplified
> ------------------------------------------------------------
>
>                 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
>
> In this specific case:
> Table A
> Table B
> FILTER(OR (IS NOT NULL(B.C0), IS NOT NULL(B.C1)))
> A LEFT JOIN B
> ->
> A INNER JOIN B
> 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