[ 
https://issues.apache.org/jira/browse/CALCITE-2586?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16626702#comment-16626702
 ] 

Julian Hyde commented on CALCITE-2586:
--------------------------------------

[~vladimirsitnikov] Does your question relate to the PR that you committed?

It seems to me that the PR simplifies the expression twice. That seems 
wasteful, and in fact could create an exponential running time in some cases.

Regarding transforming CASE to AND/OR. If it is defensive (i.e. checks that 
preceding conditions are false, and could not throw) then it would seem both 
safe and useful.

> RexSimplify: case with repeated branches results in assertion error
> -------------------------------------------------------------------
>
>                 Key: CALCITE-2586
>                 URL: https://issues.apache.org/jira/browse/CALCITE-2586
>             Project: Calcite
>          Issue Type: Bug
>          Components: core
>    Affects Versions: 1.17.0
>            Reporter: Vladimir Sitnikov
>            Assignee: Julian Hyde
>            Priority: Major
>              Labels: newbie
>             Fix For: 1.18.0
>
>
> {code:java}        case_(
>             eq(falseLiteral, falseLiteral), falseLiteral,
>             eq(falseLiteral, falseLiteral), isNotNull(trueLiteral),
>             isNull(trueLiteral)
>         );
> {code}
> {noformat}
> java.lang.AssertionError: result mismatch: when applied to {},
> CASE(=(false, false), false, =(false, false), IS NOT NULL(true), IS 
> NULL(true)) yielded false,
> and =(false, false) yielded true{noformat}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to