You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-commits@db.apache.org by rh...@apache.org on 2011/11/11 21:07:21 UTC
svn commit: r1201041 -
/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/lang/OffsetFetchNextTest.java
Author: rhillegas
Date: Fri Nov 11 20:07:21 2011
New Revision: 1201041
URL: http://svn.apache.org/viewvc?rev=1201041&view=rev
Log:
DERBY-5488: Add a couple additional limit/offset tests.
Modified:
db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/lang/OffsetFetchNextTest.java
Modified: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/lang/OffsetFetchNextTest.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/lang/OffsetFetchNextTest.java?rev=1201041&r1=1201040&r2=1201041&view=diff
==============================================================================
--- db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/lang/OffsetFetchNextTest.java (original)
+++ db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/lang/OffsetFetchNextTest.java Fri Nov 11 20:07:21 2011
@@ -959,6 +959,46 @@ public class OffsetFetchNextTest extends
}
/**
+ * Test some additional corner cases in JDBC limit/offset syntax.
+ */
+ public void testJDBCLimitOffset() throws Exception
+ {
+ // LIMIT 0 is allowed. It means: everything from the OFFSET forward
+ PreparedStatement ps = prepareStatement( "select a from t2 order by a { limit ? }" );
+ ps.setInt( 1, 0 );
+ JDBC.assertFullResultSet
+ (
+ ps.executeQuery(),
+ new String[][] { { "1" }, { "2" }, { "3" }, { "4" }, { "5" } }
+ );
+ ps.close();
+
+ ps = prepareStatement( "select a from t2 order by a { limit ? offset 3 }" );
+ ps.setInt( 1, 0 );
+ JDBC.assertFullResultSet
+ (
+ ps.executeQuery(),
+ new String[][] { { "4" }, { "5" } }
+ );
+ ps.close();
+
+ // mix JDBC and SQL Standard syntax
+ ps = prepareStatement
+ (
+ "select t.a from\n" +
+ "( select * from t2 order by a { limit 3 offset 1 } ) t,\n" +
+ "( select * from t3 order by a offset 2 rows fetch next 10 rows only ) s\n" +
+ "where t.a = s.a order by t.a"
+ );
+ JDBC.assertFullResultSet
+ (
+ ps.executeQuery(),
+ new String[][] { { "3" }, { "4" } }
+ );
+ ps.close();
+ }
+
+ /**
* Run a statement with both SQL Standard and JDBC limit/offset syntax. Verify
* that we get the expected error or results. The statement has a % literal at the
* point where the offset/fetchFirst and limit/offset clauses are to be inserted.