db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Dag H. Wanvik (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (DERBY-6378) OFFSET/FETCH NEXT ignored when query is enclosed in parentheses
Date Tue, 22 Oct 2013 17:24:43 GMT

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

Dag H. Wanvik updated DERBY-6378:
---------------------------------

    Attachment: derby-6378-2.diff
                derby-6378-2.status

Uploading a second patch for this issue, which introduced a stack mechanism for order by and
offset/fetch clauses, factored out into ResultSetNode#QueryExpressionClause (nested class).
From the javadoc for that class
{panel}
For ease of handling order by clause, offset clause and fetch first/next clauses in subclasses.
Clauses on the same nesting level have the same index in the lists, so at any level, any of
the lists' elements may be empty. For example, (select * from t order by a fetch next 5 rows
only) order by b would have
{noformat}
            obl[0] = "order by a",
            offset[0] = null,
            fetchFirst[0] = "next 5 rows"
{noformat} 
and
{noformat}
            obl[0} = "order by b",
            offset[1] = null
            fetchFirst[1] = null
{noformat}
When starting a new level, always remember to do a push() before adding clauses via setOffset(org.apache.derby.impl.sql.compile.ValueNode),
setFetchFirst(org.apache.derby.impl.sql.compile.ValueNode), setOrderByList(org.apache.derby.impl.sql.compile.OrderByList)
and setHasJDBCLimitClause(java.lang.Boolean).
{panel}

Added tests to OrderByAndOffsetFetchInSubqueries in #testDerby6378, running regressions.


> OFFSET/FETCH NEXT ignored when query is enclosed in parentheses
> ---------------------------------------------------------------
>
>                 Key: DERBY-6378
>                 URL: https://issues.apache.org/jira/browse/DERBY-6378
>             Project: Derby
>          Issue Type: Bug
>          Components: SQL
>    Affects Versions: 10.10.1.1
>            Reporter: Knut Anders Hatlen
>            Assignee: Dag H. Wanvik
>         Attachments: derby-6378-1.diff, derby-6378-2.diff, derby-6378-2.status
>
>
> ij version 10.10
> ij> connect 'jdbc:derby:memory:db;create=true';
> ij> create table t(x int);
> 0 rows inserted/updated/deleted
> ij> insert into t values 1,2,3;
> 3 rows inserted/updated/deleted
> ij> select * from t offset 1 row fetch first 1 row only;
> X          
> -----------
> 2          
> 1 row selected
> ij> (select * from t offset 1 row fetch first 1 row only);
> X          
> -----------
> 1          
> 2          
> 3          
> 3 rows selected
> I would have expected that both of the queries had returned a single row.



--
This message was sent by Atlassian JIRA
(v6.1#6144)

Mime
View raw message