[ 
https://issues.apache.org/jira/browse/DERBY-6423?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Mike Matrigali resolved DERBY-6423.
-----------------------------------
       Resolution: Fixed
    Fix Version/s: 10.10.2.1
         Assignee: Knut Anders Hatlen  (was: Mike Matrigali)

backported to 10.10.  setting original owner and resolving.  Do not plan more 
backporting of this issue at this time.

> The expression syntax in CASE's THEN clause doesn't accept boolean value 
> expression
> -----------------------------------------------------------------------------------
>
>                 Key: DERBY-6423
>                 URL: https://issues.apache.org/jira/browse/DERBY-6423
>             Project: Derby
>          Issue Type: Bug
>          Components: SQL
>            Reporter: Dag H. Wanvik
>            Assignee: Knut Anders Hatlen
>             Fix For: 10.10.2.1, 10.11.1.1
>
>         Attachments: d6423-1a.diff
>
>
> This syntax gives an error:
> {noformat}
> > VALUES CASE WHEN 1=1 THEN (1=2) OR (3!=4) ELSE true END;
> ERROR 42X01: Syntax error: Encountered "OR" at line 1, column 33.
> {noformat}
> However, this works:
> {noformat}
> > VALUES CASE WHEN 1=1 THEN ((1=2) OR (3!=4)) ELSE true END;
> 1    
> -----
> true 
> 1 row selected
> {noformat}
> According to the standard, the syntax after THEN should be <result>:
> {noformat}
> <result> ::=
>    <result expression>
>    | NULL
> <result expression> ::=
>    <value expression>
> {noformat}
> which should give us the full value syntax. sqlgrammar.jj uses the 
> corresponding production "thenElseExpression" which allows NULL or 
> aditiveExpression. I believe it should be orExpression.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to