1
0
mirror of https://github.com/sqlite/sqlite.git synced 2025-08-05 15:55:57 +03:00

Add experimental API sqlite3_db_cacheflush().

FossilOrigin-Name: 65b86dc1fa4a57cc3cde86a820d9f848aa288a15
This commit is contained in:
dan
2015-10-28 19:46:57 +00:00
parent 9109b7f8e1
commit 6fa255fd5c
9 changed files with 391 additions and 12 deletions

View File

@@ -4473,6 +4473,23 @@ static int pagerStress(void *p, PgHdr *pPg){
return pager_error(pPager, rc);
}
/*
** Flush all unreferenced dirty pages to disk.
*/
int sqlite3PagerFlush(Pager *pPager){
int rc = SQLITE_OK;
PgHdr *pList = sqlite3PcacheDirtyList(pPager->pPCache);
while( rc==SQLITE_OK && pList ){
PgHdr *pNext = pList->pDirty;
if( pList->nRef==0 ){
rc = pagerStress((void*)pPager, pList);
}
pList = pNext;
}
return rc;
}
/*
** Allocate and initialize a new Pager object and put a pointer to it