mirror of
https://github.com/aljazceru/turso.git
synced 2026-01-08 02:34:20 +01:00
Merge 'Add support for offset in select queries' from Ben Li
#739 Started adding support for `LIMIT...OFFSET...` - New `OffsetLimit` opcode - `OFFSET` is now supported for: - `SELECT...LIMIT...OFFSET` - `SELECT...GROUP BY...LIMIT...OFFSET` - `SELECT...ORDER BY...LIMIT...OFFSET` - Subqueries for `SELECT` statements **In progress/todo** - [x] Testing - [x] Handle negative offset value - **(will make in separate PR)** Add support for `DELETE...LIMIT...OFFSET` - **(will make in separate PR)** Use `limit + offset` sum register from `OffsetLimit` to constrain number of records inserted into sorter Closes #779
This commit is contained in:
@@ -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
|
||||
|
||||
47
testing/offset.test
Normal file
47
testing/offset.test
Normal file
@@ -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}
|
||||
Reference in New Issue
Block a user