/******************************************************************************
** This file is an amalgamation of many separate C source files from SQLite
-** version 3.6.6.1. By combining all the individual C code files into this
+** version 3.6.6.2. By combining all the individual C code files into this
** single large file, the entire code can be compiled as a one translation
** unit. This allows many compilers to do optimizations that would not be
** possible if the files were compiled separately. Performance improvements
** is also in a separate file. This file contains only code for the core
** SQLite library.
**
-** This amalgamation was generated on 2008-11-22 14:31:32 UTC.
+** This amalgamation was generated on 2008-11-26 17:54:40 UTC.
*/
#define SQLITE_CORE 1
#define SQLITE_AMALGAMATION 1
** with the value (X*1000000 + Y*1000 + Z) where X, Y, and Z
** are the major version, minor version, and release number.
*/
-#define SQLITE_VERSION "3.6.6.1"
+#define SQLITE_VERSION "3.6.6.2"
#define SQLITE_VERSION_NUMBER 3006006
/*
return cksum;
}
-/* Forward declaration */
-static void makeClean(PgHdr*);
-
/*
** Read a single page from the journal file opened on file descriptor
** jfd. Playback this one page.
if( pPager->xReiniter ){
pPager->xReiniter(pPg);
}
- if( isMainJrnl ) makeClean(pPg);
+ if( isMainJrnl ){
+ sqlite3PcacheMakeClean(pPg);
+ }
#ifdef SQLITE_CHECK_PAGES
pPg->pageHash = pager_pagehash(pPg);
#endif
return rc;
}
-/*
-** Make a page dirty. Set its dirty flag and add it to the dirty
-** page list.
-*/
-static void makeDirty(PgHdr *pPg){
- sqlite3PcacheMakeDirty(pPg);
-}
-
-/*
-** Make a page clean. Clear its dirty bit and remove it from the
-** dirty page list.
-*/
-static void makeClean(PgHdr *pPg){
- sqlite3PcacheMakeClean(pPg);
-}
-
-
/*
** Mark a data page as writeable. The page is written into the journal
** if it is not there already. This routine must be called before making
/* Mark the page as dirty. If the page has already been written
** to the journal then we can return right away.
*/
- makeDirty(pPg);
+ sqlite3PcacheMakeDirty(pPg);
if( pageInJournal(pPg) && (pageInStatement(pPg) || pPager->stmtInUse==0) ){
pPager->dirtyCache = 1;
pPager->dbModified = 1;
*/
if( (pPg->flags&PGHDR_NEED_SYNC) && !isCommit ){
needSyncPgno = pPg->pgno;
- assert( pageInJournal(pPg) || pgno>pPager->origDbSize );
+ assert( pageInJournal(pPg) || pPg->pgno>pPager->origDbSize );
assert( pPg->flags&PGHDR_DIRTY );
assert( pPager->needSync );
}
sqlite3PcacheDrop(pPgOld);
}
- makeDirty(pPg);
+ sqlite3PcacheMakeDirty(pPg);
pPager->dirtyCache = 1;
pPager->dbModified = 1;
pPager->needSync = 1;
assert( pPager->noSync==0 && !MEMDB );
pPgHdr->flags |= PGHDR_NEED_SYNC;
- makeDirty(pPgHdr);
+ sqlite3PcacheMakeDirty(pPgHdr);
sqlite3PagerUnref(pPgHdr);
}
for(i=0; i<=pTempCur->iPage; i++){
sqlite3PagerRef(pTempCur->apPage[i]->pDbPage);
}
+ assert( pTempCur->pKey==0 );
}
/*
for(i=0; i<=pCur->iPage; i++){
sqlite3PagerUnref(pCur->apPage[i]->pDbPage);
}
+ sqlite3_free(pCur->pKey);
}
/*
assert( leafCur.aiIdx[leafCur.iPage]==0 );
}
+ if( rc==SQLITE_OK ){
+ rc = sqlite3PagerWrite(pLeafPage->pDbPage);
+ }
if( rc==SQLITE_OK ){
dropCell(pLeafPage, 0, szNext);
VVA_ONLY( leafCur.pagesShuffled = 0 );