[ https://issues.apache.org/jira/browse/DERBY-3634?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12760490#action_12760490 ]
Micky Li commented on DERBY-3634: --------------------------------- Dear Bryan, After apply the patch and use it as you said "pass -Dderby.database.allowPreReleaseUpgrade=true" to run, there is syntax error as following, "語法錯誤:Encountered "(" at line 1, column 41。" (in chinese) the error may be translated to "Syntax error: Encountered "(" at line 1, column 41." in english. the SQL query string is --- SELECT * FROM ( SELECT ROW_NUMBER() OVER() AS rownum, event_log.* FROM event_log WHERE event_log.id<=2147483647) AS TR WHERE rownum >= 2189 AND rownum <= 2288 --- Notice that the SQL query string just doesn't include the "ORDER BY" clause and cause error. Before apply the patch, the SQL query string works well. The trunk revision I checkout is 819006. How to solve this? Thanks your help in advance. > Cannot use row_number() in ORDER BY clause > ------------------------------------------ > > Key: DERBY-3634 > URL: https://issues.apache.org/jira/browse/DERBY-3634 > Project: Derby > Issue Type: Bug > Components: SQL > Affects Versions: 10.4.1.3 > Reporter: Rick Hillegas > Assignee: Dag H. Wanvik > Attachments: derby-3634-a.diff, derby-3634-a.stat, derby-3634-a.txt, > derby-3634-b.diff, derby-3634-b.stat, derby-3634-remove.diff, > derby-3634-remove.stat > > > The following query works correctly: > select abs(a), row_number() over () > from t > where a > 100 and a < 111 > order by abs(a) > I expected the following query to also work, but it raised an exception: > select abs(a), row_number() over () > from t > where a > 100 and a < 111 > order by row_number() over () > This is the error I saw: "ERROR 42X01: Syntax error: Encountered "over" at > line 5, column 23". > Here are the reasons why I think that this syntax is supposed to be supported: > According to my reading of the 2003 SQL spec, the ORDER BY clause should be > able to sort on any expression in the SELECT list. That includes OLAP > expressions. I believe this is so because, according to part 2, section 10.10 > (<sort specification>), a <sort key> can be any <value expression> and if you > follow the grammar for <value expression>, it can resolve to be a <value > expression primary> (see section 6.3), which can in turn resolve to be a > <window function>. This reasoning is supported by tracing the hotlinks on the > following page which lays out the SQL 2003 BNF: > http://savage.net.au/SQL/sql-2003-2.bnf.html This interpretation is further > supported by the example of an ORDER BY clause referencing an OLAP expression > which is provided on page 23 of the introduction to OLAP written by Fred > Zemke, Krishna Kulkarni, Andy Witkowski, and Bob Lyle: > www.cse.iitb.ac.in/dbms/Data/Papers-Other/SQL1999/OLAP-99-154r2.pdf -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.