[
https://issues.apache.org/jira/browse/CALCITE-4910?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17450845#comment-17450845
]
Julian Hyde commented on CALCITE-4910:
--------------------------------------
I believe we can already simplify "a and (a or d) and (a or c) and b" to "a and
b", or something similar. After we have processed "a and ..." we know that "a"
is true, and therefore "(a or d)" can be simplified to true. Similarly the "(a
or c)" term.
Maybe simplify needs to re-order the "and" list in your case.
> Enhance simplify to reduce ((a or d) and (a or c) and a and b) to (a and b)
> ---------------------------------------------------------------------------
>
> Key: CALCITE-4910
> URL: https://issues.apache.org/jira/browse/CALCITE-4910
> Project: Calcite
> Issue Type: Improvement
> Reporter: Ziwei Liu
> Assignee: Ziwei Liu
> Priority: Major
>
> Considering this condition, (a or d) and (a or c) and a and b. This condition
> can be simplified to a and b, but now simplify can not do this.
> This case is found out by materialized view test:
> materialized view: select 'a',\"empid\",\"deptno\",\"salary\" as s from
> \"emps\" where (replace(\"name\",'\\2','a') is not null or
> replace(\"name\",'a[[:alpha:]]{5}','c') is not null) and
> (replace(\"name\",'[[:blank:]][[:alnum:]]*','b') is not null or
> replace(\"name\",'(.*)(.)$','d') is not null)
> query: select \"salary\" +1 as s,\"deptno\" from \"emps\" where
> replace(\"name\",'[[:blank:]][[:alnum:]]*','b' ) is not null and
> replace(\"name\",'a[[:alpha:]]{5}','c') is not null and \"salary\">10
--
This message was sent by Atlassian Jira
(v8.20.1#820001)