mirror of
https://github.com/sqlite/sqlite.git
synced 2025-07-30 19:03:16 +03:00
Experimental attempt to make better use of covering indexes within OR queries.
FossilOrigin-Name: a323ac3a9d42bd5cb38d724c7e1180584b91054c
This commit is contained in:
@ -156,7 +156,7 @@ do_searchcount_test 3.4.4 {
|
||||
|
||||
do_searchcount_test 3.5.1 {
|
||||
SELECT a, b FROM t3 WHERE (a=1 AND b='one') OR rowid=4
|
||||
} {1 one 2 two search 3}
|
||||
} {1 one 2 two search 2}
|
||||
do_searchcount_test 3.5.2 {
|
||||
SELECT a, c FROM t3 WHERE (a=1 AND b='one') OR rowid=4
|
||||
} {1 i 2 ii search 3}
|
||||
@ -271,5 +271,34 @@ do_execsql_test 5.3 {
|
||||
c16=1 or c17=1;
|
||||
} {1 {} {} {} {} {} {} {} {} {} {} {} {} {} {} 1 {} {}}
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
do_execsql_test 6.1 {
|
||||
CREATE TABLE x1(a, b, c, d, e);
|
||||
CREATE INDEX x1a ON x1(a);
|
||||
CREATE INDEX x1bc ON x1(b, c);
|
||||
CREATE INDEX x1cd ON x1(c, d);
|
||||
|
||||
INSERT INTO x1 VALUES(1, 2, 3, 4, 'A');
|
||||
INSERT INTO x1 VALUES(5, 6, 7, 8, 'B');
|
||||
INSERT INTO x1 VALUES(9, 10, 11, 12, 'C');
|
||||
INSERT INTO x1 VALUES(13, 14, 15, 16, 'D');
|
||||
}
|
||||
|
||||
do_searchcount_test 6.2.1 {
|
||||
SELECT e FROM x1 WHERE b=2 OR c=7;
|
||||
} {A B search 6}
|
||||
do_searchcount_test 6.2.2 {
|
||||
SELECT c FROM x1 WHERE b=2 OR c=7;
|
||||
} {3 7 search 4}
|
||||
|
||||
do_searchcount_test 6.3.1 {
|
||||
SELECT e FROM x1 WHERE a=1 OR b=10;
|
||||
} {A C search 6}
|
||||
do_searchcount_test 6.3.2 {
|
||||
SELECT c FROM x1 WHERE a=1 OR b=10;
|
||||
} {3 11 search 5}
|
||||
do_searchcount_test 6.3.3 {
|
||||
SELECT rowid FROM x1 WHERE a=1 OR b=10;
|
||||
} {1 3 search 4}
|
||||
|
||||
finish_test
|
||||
|
Reference in New Issue
Block a user