1
0
mirror of https://github.com/sqlite/sqlite.git synced 2025-08-08 14:02:16 +03:00

Tentative fix for ticket #1171. More research and testing needed. (CVS 2402)

FossilOrigin-Name: f0a39cee78472b93cce5304fc255285ddea7d2bf
This commit is contained in:
drh
2005-03-20 19:10:12 +00:00
parent c2cb4c10c8
commit 41712ef171
4 changed files with 128 additions and 12 deletions

View File

@@ -18,7 +18,7 @@
** file simultaneously, or one process from reading the database while
** another is writing.
**
** @(#) $Id: pager.c,v 1.194 2005/03/15 17:09:30 drh Exp $
** @(#) $Id: pager.c,v 1.195 2005/03/20 19:10:12 drh Exp $
*/
#include "sqliteInt.h"
#include "os.h"
@@ -973,7 +973,8 @@ static int pager_playback_one_page(Pager *pPager, OsFile *jfd, int useCksum){
pPg = pager_lookup(pPager, pgno);
assert( pPager->state>=PAGER_EXCLUSIVE || pPg );
TRACE3("PLAYBACK %d page %d\n", PAGERID(pPager), pgno);
if( pPager->state>=PAGER_EXCLUSIVE ){
assert( jfd == (useCksum ? &pPager->jfd : &pPager->stfd) );
if( pPager->state>=PAGER_EXCLUSIVE && (useCksum || !pPg || !pPg->needSync) ){
sqlite3OsSeek(&pPager->fd, (pgno-1)*(i64)pPager->pageSize);
rc = sqlite3OsWrite(&pPager->fd, aData, pPager->pageSize);
}