[
https://issues.apache.org/jira/browse/CALCITE-1413?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15770675#comment-15770675
]
Julian Hyde commented on CALCITE-1413:
--------------------------------------
I'd remove the "if p1...pn cannot be nullable" restriction and wrap each with
"... is true" or "... is false" as appropriate. If "p" is not null, then "p is
true" will quickly simplify to "p" and "p is false" will simplify to "not p".
> New CASE statement simplification
> ---------------------------------
>
> Key: CALCITE-1413
> URL: https://issues.apache.org/jira/browse/CALCITE-1413
> Project: Calcite
> Issue Type: Improvement
> Components: core
> Affects Versions: 1.9.0
> Reporter: Jesus Camacho Rodriguez
> Assignee: Jesus Camacho Rodriguez
> Fix For: 1.11.0
>
>
> Another possible simplification for CASE statements that return boolean
> values.
> {code:sql}
> CASE
> WHEN p1 THEN e1
> WHEN p2 THEN e2
> ELSE TRUE
> END
> {code}
> where e1...en are boolean expressions, can be rewritten into:
> {code:sql}
> (p1 and e1) or (p2 and e2 and not(p1)) or (not(p1) and not(p2))
> {code}
> if p1...pn cannot be nullable.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)