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

Rick Hillegas updated DERBY-5488:
---------------------------------

    Attachment: derby-5488-05-ad-limitOffset.diff

Attaching derby-5488-05-ad-limitOffset.diff. This patch adds the JDBC 
LIMIT/OFFSET escape syntax, mapping it onto Derby's existing implementation of 
SQL Standard OFFSET/FETCH NEXT syntax. Ad-hoc experiments suggest that the 
patch works. The OffsetFetchNextTest passes cleanly. I will run full regression 
tests. Follow-on patches for tests will be needed.

Most of the files which were touched were changed because of a difference 
between SQL Standard and JDBC behaviors: In the SQL Standard, the FETCH FIRST 
clause only lets you specify a positive number of rows to be returned--a value 
of 0 is supposed to raise an exception. In contrast, the JDBC escape syntax 
allows a LIMIT value of 0. That special value means that all rows should be 
returned from the OFFSET onwards. Many files had to be touched in order to 
propagate whether we want SQL Standard or JDBC behavior.

Changes fall into 3 categories:

1) Parse/bind-time changes. Parser references to the existing OFFSET and FETCH 
NEXT productions were replaced with a call to a new production which handles 
both the SQL Standard and the JDBC syntax. In addition, the constructors for 
various ResultSet nodes were changed in order to propagate the distinction 
between SQL Standard and JDBC behaviors.

2) Code generator changes. Only one code generation method had to be touched.

3) Run-time changes. A couple changes were necessary in order to propagate the 
distinction between SQL Standard and JDBC behaviors.

Touches the following files:

--------------

M       java/engine/org/apache/derby/impl/sql/compile/sqlgrammar.jj

Parser changes to support the new JDBC escape syntax. 

--------------

M       java/engine/org/apache/derby/impl/sql/compile/ResultSetNode.java
M       java/engine/org/apache/derby/impl/sql/compile/FromSubquery.java
M       
java/engine/org/apache/derby/impl/sql/compile/NormalizeResultSetNode.java
M       java/engine/org/apache/derby/impl/sql/compile/SelectNode.java
M       java/engine/org/apache/derby/impl/sql/compile/SubqueryNode.java
M       java/engine/org/apache/derby/impl/sql/compile/RowCountNode.java
M       java/engine/org/apache/derby/impl/sql/compile/ProjectRestrictNode.java
M       java/engine/org/apache/derby/impl/sql/compile/CursorNode.java
M       java/engine/org/apache/derby/impl/sql/compile/UnionNode.java
M       java/engine/org/apache/derby/impl/sql/compile/RowResultSetNode.java
M       java/engine/org/apache/derby/impl/sql/compile/FromBaseTable.java
M       java/engine/org/apache/derby/impl/sql/compile/InsertNode.java
M       java/engine/org/apache/derby/impl/sql/compile/SetOperatorNode.java
M       java/engine/org/apache/derby/impl/sql/compile/CreateViewNode.java
M       java/engine/org/apache/derby/impl/sql/compile/IntersectOrExceptNode.java

Parse/bind-time changes to propagate the distinction between SQL Standard and 
JDBC behaviors.

In addition, the generate() method of RowCountNode was touched for the same 
reason.

--------------


M       
java/engine/org/apache/derby/impl/sql/execute/GenericResultSetFactory.java
M       java/engine/org/apache/derby/impl/sql/execute/RowCountResultSet.java
M       java/engine/org/apache/derby/iapi/sql/execute/ResultSetFactory.java
M       java/engine/org/apache/derby/loc/messages.xml

Run-time changes to handle the distinction between SQL Standard and JDBC 
behaviors.

                
> Add remaining JDBC 4.1 bits which did not appear in the Java 7 javadoc.
> -----------------------------------------------------------------------
>
>                 Key: DERBY-5488
>                 URL: https://issues.apache.org/jira/browse/DERBY-5488
>             Project: Derby
>          Issue Type: Improvement
>          Components: JDBC, SQL
>    Affects Versions: 10.9.0.0
>            Reporter: Rick Hillegas
>            Assignee: Rick Hillegas
>         Attachments: JDBC_4.1_Supplement.html, 
> derby-5488-01-aa-objectMappingAndConversion.diff, 
> derby-5488-02-aa-fixBigInteger.diff, 
> derby-5488-03-ac-moveDecimalSetterGetterAndTest.diff, 
> derby-5488-04-aa-fixBigIntegerDecimal.diff, 
> derby-5488-05-ad-limitOffset.diff, z.java
>
>
> In addition to the JDBC 4.1 bits which were visible in the Java 7 javadoc, a 
> couple other items appear in the JDBC 4.1 Maintenance Review spec. This spec 
> has been published on the JCP website at 
> http://download.oracle.com/otndocs/jcp/jdbc-4_1-mrel-eval-spec/index.html. I 
> will attach a functional spec for the remaining bits.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to