[
https://issues.apache.org/jira/browse/DERBY-5972?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13490690#comment-13490690
]
Knut Anders Hatlen commented on DERBY-5972:
-------------------------------------------
It looks to me as if sqlgrammar.jj uses orExpression() in some production rules
where it should have used valueExpression(), for example in the derivedColumn()
rule used by selectSublist(). Since orExpression() is not actually an
expression involving OR, as one might expect from its name. It's the expression
that represents one of the operands in an OR expression.
> Grammar doesn't accept OR operator without parentheses
> ------------------------------------------------------
>
> Key: DERBY-5972
> URL: https://issues.apache.org/jira/browse/DERBY-5972
> Project: Derby
> Issue Type: Bug
> Components: SQL
> Affects Versions: 10.10.0.0
> Reporter: Knut Anders Hatlen
>
> The grammar doesn't accept the OR operator without parentheses in some
> constructs.
> For example, in a select list:
> ij> create table t(b1 boolean, b2 boolean);
> 0 rows inserted/updated/deleted
> ij> select b1 or b2 from t;
> ERROR 42X01: Syntax error: Encountered "or" at line 1, column 11. (errorCode
> = 30000)
> Issue the 'help' command for general information on IJ command syntax.
> Any unrecognized commands are treated as potential SQL commands and executed
> directly.
> Consult your DBMS server reference documentation for details of the SQL
> syntax supported by your server.
> However, it does not fail if OR is replaced by AND, or if parentheses are
> used around the OR expression:
> ij> select (b1 or b2) from t;
> 1
> -----
> 0 rows selected
> ij> select b1 and b2 from t;
> 1
> -----
> 0 rows selected
> Similar behaviour is seen in VALUES statements:
> ij> values true or false;
> ERROR 42X01: Syntax error: Encountered "or" at line 1, column 13. (errorCode
> = 30000)
> Issue the 'help' command for general information on IJ command syntax.
> Any unrecognized commands are treated as potential SQL commands and executed
> directly.
> Consult your DBMS server reference documentation for details of the SQL
> syntax supported by your server.
> ij> values (true or false);
> 1
> -----
> true
> 1 row selected
> ij> values true and false;
> 1
> -----
> false
> 1 row selected
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira