[
https://issues.apache.org/jira/browse/CALCITE-1413?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Jesus Camacho Rodriguez updated CALCITE-1413:
---------------------------------------------
Description:
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 and e1...en cannot be nullable.
was:
Another possible simplification for CASE statements.
{code:sql}
CASE
WHEN p1 THEN x
WHEN p2 THEN y
ELSE TRUE
END
{code}
can be rewritten into:
{code:sql}
(p1 and x) or (p2 and y and not(p1)) or (not(p1) and not(p2))
{code}
if p1...pn cannot be nullable.
> 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
>
> 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 and e1...en cannot be nullable.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)