Further improvements to test coverage of fts5 code.
FossilOrigin-Name: d4331943dff259380c4025bb740d8aba6972d351
This commit is contained in:
@@ -158,8 +158,6 @@ do_faultsim_test 5.2 -faults oom-* -body {
|
||||
faultsim_test_result "0 {10-$::str {a b c}}"
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
# OOM errors within auxiliary functions.
|
||||
@@ -203,6 +201,64 @@ do_faultsim_test 6.2 -faults oom-t* -body {
|
||||
faultsim_test_result {0 {0 2 7}} {1 SQLITE_NOMEM}
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
# OOM error when querying for a phrase with many tokens.
|
||||
#
|
||||
reset_db
|
||||
do_execsql_test 7.0 {
|
||||
CREATE VIRTUAL TABLE tt USING fts5(x, y);
|
||||
INSERT INTO tt VALUES('f b g b c b', 'f a d c c b'); -- 1
|
||||
INSERT INTO tt VALUES('d a e f e d', 'f b b d e e'); -- 2
|
||||
INSERT INTO tt VALUES('f b g a d c', 'e f c f a d'); -- 3
|
||||
INSERT INTO tt VALUES('f f c d g f', 'f a e b g b'); -- 4
|
||||
INSERT INTO tt VALUES('a g b d a g', 'e g a e a c'); -- 5
|
||||
INSERT INTO tt VALUES('c d b d e f', 'f g e g e e'); -- 6
|
||||
INSERT INTO tt VALUES('e g f f b c', 'f c e f g f'); -- 7
|
||||
INSERT INTO tt VALUES('e g c f c e', 'f e e a f g'); -- 8
|
||||
INSERT INTO tt VALUES('e a e b e e', 'd c c f f f'); -- 9
|
||||
INSERT INTO tt VALUES('f a g g c c', 'e g d g c e'); -- 10
|
||||
INSERT INTO tt VALUES('c d b a e f', 'f g e h e e'); -- 11
|
||||
}
|
||||
|
||||
do_faultsim_test 7.2 -faults oom-* -body {
|
||||
db eval { SELECT rowid FROM tt WHERE tt MATCH 'f+g+e+g+e+e' }
|
||||
} -test {
|
||||
faultsim_test_result {0 6} {1 SQLITE_NOMEM}
|
||||
}
|
||||
|
||||
do_faultsim_test 7.3 -faults oom-* -body {
|
||||
db eval { SELECT rowid FROM tt WHERE tt MATCH 'NEAR(a b c d e f)' }
|
||||
} -test {
|
||||
faultsim_test_result {0 11} {1 SQLITE_NOMEM}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
reset_db
|
||||
do_execsql_test 8.0 {
|
||||
CREATE VIRTUAL TABLE tt USING fts5(x);
|
||||
INSERT INTO tt(tt, rank) VALUES('pgsz', 32);
|
||||
BEGIN;
|
||||
INSERT INTO tt(rowid, x) VALUES(1, 'a b c d x x');
|
||||
WITH ii(i) AS (SELECT 2 UNION ALL SELECT i+1 FROM ii WHERE i<99)
|
||||
INSERT INTO tt(rowid, x) SELECT i, 'a b c x x d' FROM ii;
|
||||
INSERT INTO tt(rowid, x) VALUES(100, 'a b c d x x');
|
||||
COMMIT;
|
||||
}
|
||||
|
||||
do_faultsim_test 8.1 -faults oom-t* -body {
|
||||
db eval { SELECT rowid FROM tt WHERE tt MATCH 'NEAR(a b c d, 2)' }
|
||||
} -test {
|
||||
faultsim_test_result {0 {1 100}} {1 SQLITE_NOMEM}
|
||||
}
|
||||
|
||||
do_faultsim_test 8.2 -faults oom-t* -body {
|
||||
db eval { SELECT count(*) FROM tt WHERE tt MATCH 'a OR d' }
|
||||
} -test {
|
||||
faultsim_test_result {0 100} {1 SQLITE_NOMEM}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user