diff --git a/testing/all.test b/testing/all.test index d70fb3f56..05cd2d196 100755 --- a/testing/all.test +++ b/testing/all.test @@ -22,3 +22,4 @@ source $testdir/where.test source $testdir/compare.test source $testdir/changes.test source $testdir/total-changes.test +source $testdir/offset.test diff --git a/testing/offset.test b/testing/offset.test new file mode 100644 index 000000000..2f5be091b --- /dev/null +++ b/testing/offset.test @@ -0,0 +1,47 @@ +#!/usr/bin/env tclsh + +set testdir [file dirname $argv0] +source $testdir/tester.tcl + +do_execsql_test select-offset-0 { + SELECT id FROM users ORDER BY id LIMIT 1 OFFSET 0; +} {1} + +do_execsql_test select-offset-1 { + SELECT id FROM users ORDER BY id LIMIT 1 OFFSET 1; +} {2} + +do_execsql_test select-offset-negative { + SELECT id FROM users ORDER BY id LIMIT 1 OFFSET -1; +} {1} + +do_execsql_test select-offset-0-groupby { + SELECT COUNT(*) FROM users GROUP BY STATE ORDER BY STATE LIMIT 5 OFFSET 0; +} {168 +166 +162 +153 +166} + +do_execsql_test select-offset-1-groupby { + SELECT COUNT(*) FROM users GROUP BY STATE ORDER BY STATE LIMIT 5 OFFSET 1; +} {166 +162 +153 +166 +170} + +do_execsql_test select-offset-subquery { + SELECT id, first_name, age + FROM ( + SELECT id, first_name, age + FROM users + ORDER BY id ASC + LIMIT 5 OFFSET 2 + ) + ORDER BY id DESC; +} {7|Aimee|24 +6|Nicholas|89 +5|Edward|15 +4|Jennifer|33 +3|Tommy|18} \ No newline at end of file