[
https://issues.apache.org/jira/browse/CALCITE-2257?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16456082#comment-16456082
]
Zhong Yu edited comment on CALCITE-2257 at 4/27/18 7:55 AM:
------------------------------------------------------------
Wait a sec... these two are not always the opposite, right? SQL2003, 8.7 <null
predicate>
{quote}NOTE 191 — For all R, “R IS NOT NULL” has the same result as “NOT R IS
NULL” if and only if R is of degree 1.
{quote}
followed by a table showing the case when both can be FALSE
was (Author: zhong.j.yu):
Wait a sec... these two are not always the opposite, right? SQL2003, 8.7 <null
predicate>
{quote}NOTE 191 — For all R, “R IS NOT NULL” has the same result as “NOT R IS
NULL” if and only if R is of degree 1.
{quote}
> Combination of predicates can be proved to be always true
> ---------------------------------------------------------
>
> Key: CALCITE-2257
> URL: https://issues.apache.org/jira/browse/CALCITE-2257
> Project: Calcite
> Issue Type: Improvement
> Components: core
> Affects Versions: 1.16.0
> Reporter: Vitalii Diravka
> Assignee: Vitalii Diravka
> Priority: Major
> Labels: filter
> Fix For: 1.17.0
>
>
> I have found the case, when Filter operator is not necessary since filter
> condition is always true, but that is not detected by current version of
> Calcite.
> {code}
> select SAL from EMPNULLABLES_20 where SAL IS NOT NULL OR SAL is null
> {code}
> {code}
> LogicalProject(SAL=[$5])
> LogicalFilter(condition=[OR(IS NOT NULL($5), IS NULL($5))])
> LogicalProject(EMPNO=[$0], ENAME=[$1], JOB=[$2], MGR=[$3], HIREDATE=[$4],
> SAL=[$5], COMM=[$6], SLACKER=[$8])
> LogicalFilter(condition=[AND(=($7, 20), >($5, 1000))])
> LogicalTableScan(table=[[CATALOG, SALES, EMPNULLABLES]])
> {code}
> But filter condition _OR(IS NOT NULL($5), IS NULL($5))_ can be proved to be
> always true.
> I have tried _ReduceExpressionsRule_, but it doesn't give effect.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)