You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-dev@db.apache.org by "Dag H. Wanvik (JIRA)" <ji...@apache.org> on 2013/11/27 15:55:36 UTC

[jira] [Created] (DERBY-6423) The expression syntax in CASE's THEN clause doesn't accept boolean value expression

Dag H. Wanvik created DERBY-6423:
------------------------------------

             Summary: 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


This syntax gives an error:

> 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.

However, this works:

> VALUES CASE WHEN 1=1 THEN ((1=2) OR (3!=4)) ELSE true END;

According to the standard, the syntax after THEN should be <result>:

<result> ::=
   <result expression>
   | NULL

<result expression> ::=
   <value expression>

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.1#6144)