mirror of
https://github.com/sqlite/sqlite.git
synced 2025-07-29 08:01:23 +03:00
Add tests for sort-by-index cases that use IN() and non-default NULL handling.
FossilOrigin-Name: 09d660ecde723fb30f3bb3684bbb7f95825d78da6a6f33ddf57846054cd563e0
This commit is contained in:
@ -119,6 +119,7 @@ do_execsql_test 3.2 {
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
ifcapable vtab {
|
||||
register_echo_module db
|
||||
do_execsql_test 4.0 {
|
||||
@ -147,4 +148,59 @@ ifcapable vtab {
|
||||
} {1 1 1 3 3 3 5 5 5 2 {} 2 4 {} 4}
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
do_execsql_test 5.0 {
|
||||
CREATE TABLE t4(a, b, c);
|
||||
INSERT INTO t4 VALUES(1, 1, 11);
|
||||
INSERT INTO t4 VALUES(1, 2, 12);
|
||||
INSERT INTO t4 VALUES(1, NULL, 1);
|
||||
|
||||
INSERT INTO t4 VALUES(2, NULL, 1);
|
||||
INSERT INTO t4 VALUES(2, 2, 12);
|
||||
INSERT INTO t4 VALUES(2, 1, 11);
|
||||
|
||||
INSERT INTO t4 VALUES(3, NULL, 1);
|
||||
INSERT INTO t4 VALUES(3, 2, 12);
|
||||
INSERT INTO t4 VALUES(3, NULL, 3);
|
||||
}
|
||||
|
||||
do_execsql_test 5.1 {
|
||||
SELECT * FROM t4 WHERE a IN (1, 2, 3) ORDER BY a, b NULLS LAST
|
||||
} {
|
||||
1 1 11 1 2 12 1 {} 1
|
||||
2 1 11 2 2 12 2 {} 1
|
||||
3 2 12 3 {} 1 3 {} 3
|
||||
}
|
||||
do_execsql_test 5.2 {
|
||||
CREATE INDEX t4ab ON t4(a, b);
|
||||
SELECT * FROM t4 WHERE a IN (1, 2, 3) ORDER BY a, b NULLS LAST
|
||||
} {
|
||||
1 1 11 1 2 12 1 {} 1
|
||||
2 1 11 2 2 12 2 {} 1
|
||||
3 2 12 3 {} 1 3 {} 3
|
||||
}
|
||||
do_eqp_test 5.3 {
|
||||
SELECT * FROM t4 WHERE a IN (1, 2, 3) ORDER BY a, b NULLS LAST
|
||||
} {
|
||||
QUERY PLAN
|
||||
`--SEARCH TABLE t4 USING INDEX t4ab (a=?)
|
||||
}
|
||||
|
||||
do_execsql_test 5.4 {
|
||||
SELECT * FROM t4 WHERE a IN (1, 2, 3) ORDER BY a DESC, b DESC NULLS FIRST
|
||||
} {
|
||||
3 {} 3 3 {} 1 3 2 12
|
||||
2 {} 1 2 2 12 2 1 11
|
||||
1 {} 1 1 2 12 1 1 11
|
||||
}
|
||||
do_eqp_test 5.5 {
|
||||
SELECT * FROM t4 WHERE a IN (1, 2, 3) ORDER BY a DESC, b DESC NULLS FIRST
|
||||
} {
|
||||
QUERY PLAN
|
||||
`--SEARCH TABLE t4 USING INDEX t4ab (a=?)
|
||||
}
|
||||
|
||||
finish_test
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user