[
https://issues.apache.org/jira/browse/CALCITE-2257?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16438862#comment-16438862
]
Julian Hyde commented on CALCITE-2257:
--------------------------------------
For the expression {{x IS NOT NULL OR x IS NULL}} you will want to invoke
simplify on the right-hand expression {{x IS NULL}} having created predicates
for what you have learned from the left-hand expression. The RHS will only be
invoked if {{x IS NULL}} is true.
This is extremely similar to what is needed to solve CALCITE-2247 (except OR
rather than AND) so you should work with [~kgyrtkirk] and deliver a patch that
solves both problems.
> 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)