diff options
author | dan <Dan Kennedy> | 2022-11-28 18:41:41 +0000 |
---|---|---|
committer | dan <Dan Kennedy> | 2022-11-28 18:41:41 +0000 |
commit | 1b3d13e65e125500d1034e889b37363baa8f1e38 (patch) | |
tree | 81840dd9a80fe5015dbd1ae798fe620876f38667 /src/btree.c | |
parent | e862b5fe1d2bda6ef7d557471c150c82ec453455 (diff) | |
download | sqlite-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/btree.c')
-rw-r--r-- | src/btree.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/btree.c b/src/btree.c index cabcf675e..c949001b8 100644 --- a/src/btree.c +++ b/src/btree.c @@ -11083,6 +11083,17 @@ int sqlite3BtreeIsReadonly(Btree *p){ */ int sqlite3HeaderSizeBtree(void){ return ROUND8(sizeof(MemPage)); } +/* +** If no transaction is active and the database is not a temp-db, clear +** the in-memory pager cache. +*/ +void sqlite3BtreeClearCache(Btree *p){ + BtShared *pBt = p->pBt; + if( pBt->inTransaction==TRANS_NONE ){ + sqlite3PagerClearCache(pBt->pPager); + } +} + #if !defined(SQLITE_OMIT_SHARED_CACHE) /* ** Return true if the Btree passed as the only argument is sharable. |