aboutsummaryrefslogtreecommitdiff
path: root/src/main.c
diff options
context:
space:
mode:
authordan <Dan Kennedy>2022-11-28 18:41:41 +0000
committerdan <Dan Kennedy>2022-11-28 18:41:41 +0000
commit1b3d13e65e125500d1034e889b37363baa8f1e38 (patch)
tree81840dd9a80fe5015dbd1ae798fe620876f38667 /src/main.c
parente862b5fe1d2bda6ef7d557471c150c82ec453455 (diff)
downloadsqlite-1b3d13e65e125500d1034e889b37363baa8f1e38.tar.gz
sqlite-1b3d13e65e125500d1034e889b37363baa8f1e38.zip
Add the SQLITE_FCNTL_RESET_CACHE verb. Use it to ensure that the page cache is purged before and after a the recovery extension is run.
FossilOrigin-Name: 6db0bc4bc0d272b610bef2aeeae43f539ed6e7cc0a9cc767d5af85ecb0019d5f
Diffstat (limited to 'src/main.c')
-rw-r--r--src/main.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/main.c b/src/main.c
index b0645efe6..67dd60ae7 100644
--- a/src/main.c
+++ b/src/main.c
@@ -3950,6 +3950,9 @@ int sqlite3_file_control(sqlite3 *db, const char *zDbName, int op, void *pArg){
sqlite3BtreeSetPageSize(pBtree, 0, iNew, 0);
}
rc = SQLITE_OK;
+ }else if( op==SQLITE_FCNTL_RESET_CACHE ){
+ sqlite3BtreeClearCache(pBtree);
+ rc = SQLITE_OK;
}else{
int nSave = db->busyHandler.nBusy;
rc = sqlite3OsFileControl(fd, op, pArg);