db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Knut Anders Hatlen (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (DERBY-5972) Grammar doesn't accept OR operator without parentheses
Date Mon, 05 Nov 2012 15:42:12 GMT

    [ 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

Mime
View raw message