Compare commits

...

5 Commits

Author SHA1 Message Date
drh e811038fab Version 3.6.6.2 (CVS 5960)
FossilOrigin-Name: 30a20807770e9274ff98e0c4d8a5d44113c93f69
2008-11-26 18:01:49 +00:00
drh c0516f18f7 Version number to 3.6.6.2. (CVS 5959)
FossilOrigin-Name: 7e010be8e3dfa73db777d1733bd4da481105ad58
2008-11-26 17:52:37 +00:00
drh a8cb56f444 Port check-ins (5955) and (5956) into the 3.6.6 branch. (CVS 5958)
FossilOrigin-Name: 8c0edbef7e0f6393349c0157659434bf8498ad88
2008-11-26 14:55:02 +00:00
drh 4ebf07fafe Version 3.6.6.1 (CVS 5948)
FossilOrigin-Name: c2266aa094411346a73ab704c03ec919d6e5f46d
2008-11-22 15:51:27 +00:00
drh cef4deecd7 Port the corruption bug fix of check-in (5938) into a branch off of
version 3.6.6. (CVS 5947)

FossilOrigin-Name: 15d88edf7671822c57238c3f85adf0b40b13e3e2
2008-11-22 14:07:49 +00:00
5 changed files with 30 additions and 40 deletions
+1 -1
View File
@@ -1 +1 @@
3.6.6
3.6.6.2
+8 -8
View File
@@ -1,11 +1,11 @@
C When\sa\smemory\sallocation\sfails\son\sthe\s%Q\sconversion\sin\ssqlite3_mprintf(),\nmake\ssure\sthe\serror\sis\sreported\sback\sup\sthe\scall\sstack.\s(CVS\s5933)
D 2008-11-20T18:20:28
C Version\s3.6.6.2\s(CVS\s5960)
D 2008-11-26T18:01:49
F Makefile.arm-wince-mingw32ce-gcc fcd5e9cd67fe88836360bb4f9ef4cb7f8e2fb5a0
F Makefile.in 0aa7bbe3be6acc4045706e3bb3fd0b8f38f4a3b5
F Makefile.linux-gcc d53183f4aa6a9192d249731c90dbdffbd2c68654
F Makefile.vxwSH4 d53b4be86491060d498b22148951b6d765884cab
F README b974cdc3f9f12b87e851b04e75996d720ebf81ac
F VERSION 2373a66872324b856f4735e0b7f7885ae4847a68
F VERSION 475fa200831c9b5316f347ad08aabe383417bab8
F aclocal.m4 7d02b11fed45174e11156144227278deb6236eea
F addopcodes.awk 215333be9d99c260e076c3080a81dba3ae928c45
F art/2005osaward.gif 0d1851b2a7c1c9d0ccce545f3e14bca42d7fd248
@@ -100,7 +100,7 @@ F src/attach.c 85c6a3d0daf11965b47604190d7cf5597dc88382
F src/auth.c c8b2ab5c8bad4bd90ed7c294694f48269162c627
F src/bitvec.c 4300d311b17fb3c1476623fd895a8feac02a0b08
F src/btmutex.c 63c5cc4ad5715690767ffcb741e185d7bc35ec1a
F src/btree.c 76c1b09263b6f028b4f84bd6d811e9d017448216
F src/btree.c 1c46824970b85ddb109ef10eac2c60a180fe2361
F src/btree.h 179c3ea813780df78a289a8f5130db18e6d4616e
F src/btreeInt.h 8d21590c97b6a2c00cce1f78ed5dc5756e835108
F src/build.c a89e901ea24d8ec845286f9a1fbfd14572a7777e
@@ -139,7 +139,7 @@ F src/os_common.h 24525d8b7bce66c374dfc1810a6c9043f3359b60
F src/os_os2.c d12285d66df674c42f6f544a6f7c21bf1a954ee1
F src/os_unix.c 03c76b5269361adcd68cf9d6713181922535ac6e
F src/os_win.c 3dff41670fb9798a869c636626bb7d6d8b6a45bb
F src/pager.c db12a8333e54e7bbf62dc621ada5507adb3a6493
F src/pager.c 6d02bb9971f8a72c2f60d20f58fc4fbdc82cf712
F src/pager.h a02ef8e6cc7e78b54874166e5ce786c9d4c489bf
F src/parse.y 2c4758b4c5ead6de8cf7112f5a7cce7561d313fe
F src/pcache.c f3121a531745b20f5b824201eb63949a7e2959ac
@@ -659,7 +659,7 @@ F tool/speedtest16.c c8a9c793df96db7e4933f0852abb7a03d48f2e81
F tool/speedtest2.tcl ee2149167303ba8e95af97873c575c3e0fab58ff
F tool/speedtest8.c 2902c46588c40b55661e471d7a86e4dd71a18224
F tool/speedtest8inst1.c 293327bc76823f473684d589a8160bde1f52c14e
P 00b68a1e3164fbf04dabb480c2037be45612b4e4
R 38e4d91990d6f71d4806b7fd8231a0a6
P 7e010be8e3dfa73db777d1733bd4da481105ad58
R a4e255aa58a8d088ed7488917067790f
U drh
Z c8c595ff0394bbf0b4f1b46a403a8fd7
Z d4ed699a92c3d297f90b181b98be5987
+1 -1
View File
@@ -1 +1 @@
eebacbc9d7d0625dfbe6367046fa4a0ca9c04e74
30a20807770e9274ff98e0c4d8a5d44113c93f69
+12 -4
View File
@@ -9,7 +9,7 @@
** May you share freely, never taking more than you give.
**
*************************************************************************
** $Id: btree.c,v 1.539 2008/11/19 10:22:33 danielk1977 Exp $
** $Id: btree.c,v 1.539.2.2 2008/11/26 14:55:02 drh Exp $
**
** This file implements a external (disk-based) database using BTrees.
** See the header comment on "btreeInt.h" for additional information.
@@ -2927,6 +2927,7 @@ void sqlite3BtreeGetTempCursor(BtCursor *pCur, BtCursor *pTempCur){
for(i=0; i<=pTempCur->iPage; i++){
sqlite3PagerRef(pTempCur->apPage[i]->pDbPage);
}
assert( pTempCur->pKey==0 );
}
/*
@@ -2939,6 +2940,7 @@ void sqlite3BtreeReleaseTempCursor(BtCursor *pCur){
for(i=0; i<=pCur->iPage; i++){
sqlite3PagerUnref(pCur->apPage[i]->pDbPage);
}
sqlite3_free(pCur->pKey);
}
/*
@@ -4304,9 +4306,12 @@ static int allocateBtreePage(
end_allocate_page:
releasePage(pTrunk);
releasePage(pPrevTrunk);
if( rc==SQLITE_OK && sqlite3PagerPageRefcount((*ppPage)->pDbPage)>1 ){
releasePage(*ppPage);
return SQLITE_CORRUPT_BKPT;
if( rc==SQLITE_OK ){
if( sqlite3PagerPageRefcount((*ppPage)->pDbPage)>1 ){
releasePage(*ppPage);
return SQLITE_CORRUPT_BKPT;
}
(*ppPage)->isInit = 0;
}
return rc;
}
@@ -6055,6 +6060,9 @@ int sqlite3BtreeDelete(BtCursor *pCur){
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 );
+8 -26
View File
@@ -18,7 +18,7 @@
** file simultaneously, or one process from reading the database while
** another is writing.
**
** @(#) $Id: pager.c,v 1.506 2008/11/19 18:30:29 drh Exp $
** @(#) $Id: pager.c,v 1.506.2.1 2008/11/26 14:55:02 drh Exp $
*/
#ifndef SQLITE_OMIT_DISKIO
#include "sqliteInt.h"
@@ -1061,9 +1061,6 @@ static u32 pager_cksum(Pager *pPager, const u8 *aData){
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.
@@ -1173,7 +1170,9 @@ static int pager_playback_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
@@ -3094,23 +3093,6 @@ int sqlite3PagerBegin(DbPage *pPg, int exFlag){
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
@@ -3162,7 +3144,7 @@ static int pager_write(PgHdr *pPg){
/* 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;
@@ -4069,7 +4051,7 @@ int sqlite3PagerMovepage(Pager *pPager, DbPage *pPg, Pgno pgno, int isCommit){
*/
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 );
}
@@ -4091,7 +4073,7 @@ int sqlite3PagerMovepage(Pager *pPager, DbPage *pPg, Pgno pgno, int isCommit){
sqlite3PcacheDrop(pPgOld);
}
makeDirty(pPg);
sqlite3PcacheMakeDirty(pPg);
pPager->dirtyCache = 1;
pPager->dbModified = 1;
@@ -4126,7 +4108,7 @@ int sqlite3PagerMovepage(Pager *pPager, DbPage *pPg, Pgno pgno, int isCommit){
pPager->needSync = 1;
assert( pPager->noSync==0 && !MEMDB );
pPgHdr->flags |= PGHDR_NEED_SYNC;
makeDirty(pPgHdr);
sqlite3PcacheMakeDirty(pPgHdr);
sqlite3PagerUnref(pPgHdr);
}