1
0
mirror of https://github.com/sqlite/sqlite.git synced 2026-01-06 08:01:16 +03:00

Avoid dropping the error code following an OOM in fts5 when using 'secure-delete' mode.

FossilOrigin-Name: 9ee24a499c7b4a048f269f1c03c7c0b22b2898a3c23ea3e2511c2ba0342afa30
This commit is contained in:
dan
2023-04-15 19:13:51 +00:00
parent a8e9a7763d
commit e45317a50a
4 changed files with 41 additions and 10 deletions

View File

@@ -5000,7 +5000,7 @@ static void fts5FlushOneHash(Fts5Index *p){
}
}
if( bTermWritten==0 ){
if( p->rc==SQLITE_OK && bTermWritten==0 ){
fts5WriteAppendTerm(p, &writer, nTerm, (const u8*)zTerm);
bTermWritten = 1;
assert( writer.bFirstRowidInPage==0 );

View File

@@ -167,5 +167,36 @@ do_faultsim_test 5.1 -faults oom* -prep {
faultsim_test_result {0 {}}
}
#-------------------------------------------------------------------------
#
reset_db
do_test 6.0 {
execsql {
CREATE VIRTUAL TABLE t1 USING fts5(ab);
INSERT INTO t1(t1, rank) VALUES('pgsz', 64);
BEGIN;
INSERT INTO t1(rowid, ab) VALUES(1, 'abcdefg');
INSERT INTO t1(rowid, ab) VALUES(2, 'abcdefg');
INSERT INTO t1(rowid, ab) VALUES(3, 'abcdefg');
COMMIT;
}
} {}
faultsim_save_and_close
do_faultsim_test 6.1 -faults oom* -prep {
faultsim_restore_and_reopen
execsql {
INSERT INTO t1(t1, rank) VALUES('secure-delete', 1);
}
} -body {
execsql {
BEGIN;
UPDATE t1 SET ab='abcdefg' WHERE rowid=2;
COMMIT;
}
} -test {
faultsim_test_result {0 {}}
}
finish_test