-C Fix\sthe\ssqlite3_prepare()\sfamily\sof\sinterfaces\sso\sthat\sthey\szero\sthe\s*ppStmt\nvalue\seven\son\san\sSQLITE_MISUSE\sreturn.\s\sMake\sit\sclear\sin\sthe\sdocumentation\nthat\sthe\sppStmt\sparameter\scannot\sbe\szero.\s(CVS\s6441)
-D 2009-04-02T18:32:27
+C Make\ssure\sthe\sVACUUM\sstatement\slocks\sdown\sthe\spage_size\sand\sauto_vacuum\nmodes\safter\sit\sruns.\s\sOtherwise,\spragmas\smight\schange\sthese\ssettings\son\na\spopulated\sdatabase,\sresulting\sin\sproblems.\s(CVS\s6442)
+D 2009-04-02T20:16:59
F Makefile.arm-wince-mingw32ce-gcc fcd5e9cd67fe88836360bb4f9ef4cb7f8e2fb5a0
F Makefile.in 583e87706abc3026960ed759aff6371faf84c211
F Makefile.linux-gcc d53183f4aa6a9192d249731c90dbdffbd2c68654
F src/backup.c 0082d0e5a63f04e88faee0dff0a7d63d3e92a78d
F src/bitvec.c ef370407e03440b0852d05024fb016b14a471d3d
F src/btmutex.c 341502bc496dc0840dcb00cde65680fb0e85c3ab
-F src/btree.c 7d51b2ef5c09ebc05bce9a1a1f2f5b9e1b93d9e0
-F src/btree.h e302c5747494067cd4f5763000fbe7bca767d816
+F src/btree.c f4fdf5359f910dd9ac8d7bd92a67dae072b75f81
+F src/btree.h 8007018c1753944790c39610280894ab280210b8
F src/btreeInt.h df64030d632f8c8ac217ed52e8b6b3eacacb33a5
F src/build.c 72357fd75ef036d0afbf1756edab6d62c56fcf4b
F src/callback.c 73016376d6848ba987709e8c9048d4f0e0776036
F src/pcache.c 395f752a13574120bd7513a400ba02a265aaa76d
F src/pcache.h 9b927ccc5a538e31b4c3bc7eec4f976db42a1324
F src/pcache1.c f587565f4ba0fd1772067eaa96814dce761b7a4c
-F src/pragma.c 22ed04836aab8ce134c53be1ca896f3ad20fabdb
+F src/pragma.c 32a967b5fc314ffed08a7778945592d536b64826
F src/prepare.c 0ad1ba3290e0626aa4e7589ed6ab6af2572875b0
F src/printf.c 9866a9a9c4a90f6d4147407f373df3fd5d5f9b6f
F src/random.c 676b9d7ac820fe81e6fb2394ac8c10cff7f38628
F src/update.c 8ededddcde6f7b6da981dd0429a5d34518a475b7
F src/utf.c 9541d28f40441812c0b40f00334372a0542c00ff
F src/util.c 469d74f5bf09ed6398702c7da2ef8a34e979a1c1
-F src/vacuum.c 4929a585ef0fb1dfaf46302f8a9c4aa30c2d9cf5
+F src/vacuum.c 07121a727beeee88f27d704a00313ad6a7c9bef0
F src/vdbe.c 624922027b8b5fe203bd89e204aaed447e8b7ce7
F src/vdbe.h d70a68bee196ab228914a3902c79dbd24342a0f2
F src/vdbeInt.h 53a2f4696871712646c77351904576cca6ad9752
F tool/speedtest2.tcl ee2149167303ba8e95af97873c575c3e0fab58ff
F tool/speedtest8.c 2902c46588c40b55661e471d7a86e4dd71a18224
F tool/speedtest8inst1.c 293327bc76823f473684d589a8160bde1f52c14e
-P 8f1423445b29a5f52ed907de6db82128a96ebfe2
-R d66b51a142fefca07584ceedbb6d0a07
+P 23bf9f266559603e37b2703715eaf8ef5af6bb17
+R e0d218115c45629c5885d4b4b4658168
U drh
-Z 86a6d740a23a4566ad36f5b8a9a6d901
+Z 1702788136b089e50c945192dcad3cc4
-23bf9f266559603e37b2703715eaf8ef5af6bb17
\ No newline at end of file
+85e6a4740d6db731c8c35a331031c346e9189c27
\ No newline at end of file
** May you share freely, never taking more than you give.
**
*************************************************************************
-** $Id: btree.c,v 1.588 2009/04/02 18:28:08 danielk1977 Exp $
+** $Id: btree.c,v 1.589 2009/04/02 20:16:59 drh Exp $
**
** This file implements a external (disk-based) database using BTrees.
** See the header comment on "btreeInt.h" for additional information.
#if !defined(SQLITE_OMIT_PAGER_PRAGMAS) || !defined(SQLITE_OMIT_VACUUM)
/*
** Change the default pages size and the number of reserved bytes per page.
+** Or, if the page size has already been fixed, return SQLITE_READONLY
+** without changing anything.
**
** The page size must be a power of 2 between 512 and 65536. If the page
** size supplied does not meet this constraint then the page size is not
**
** If parameter nReserve is less than zero, then the number of reserved
** bytes per page is left unchanged.
+**
+** If the iFix!=0 then the pageSizeFixed flag is set so that the page size
+** and autovacuum mode can no longer be changed.
*/
-int sqlite3BtreeSetPageSize(Btree *p, int pageSize, int nReserve){
+int sqlite3BtreeSetPageSize(Btree *p, int pageSize, int nReserve, int iFix){
int rc = SQLITE_OK;
BtShared *pBt = p->pBt;
assert( nReserve>=-1 && nReserve<=255 );
rc = sqlite3PagerSetPagesize(pBt->pPager, &pBt->pageSize);
}
pBt->usableSize = pBt->pageSize - (u16)nReserve;
+ if( iFix ) pBt->pageSizeFixed = 1;
sqlite3BtreeLeave(p);
return rc;
}
** subsystem. See comments in the source code for a detailed description
** of what each interface routine does.
**
-** @(#) $Id: btree.h,v 1.111 2009/03/18 10:33:01 danielk1977 Exp $
+** @(#) $Id: btree.h,v 1.112 2009/04/02 20:16:59 drh Exp $
*/
#ifndef _BTREE_H_
#define _BTREE_H_
int sqlite3BtreeSetCacheSize(Btree*,int);
int sqlite3BtreeSetSafetyLevel(Btree*,int,int);
int sqlite3BtreeSyncDisabled(Btree*);
-int sqlite3BtreeSetPageSize(Btree*,int,int);
+int sqlite3BtreeSetPageSize(Btree*,int,int,int);
int sqlite3BtreeGetPageSize(Btree*);
int sqlite3BtreeMaxPageCount(Btree*,int);
int sqlite3BtreeGetReserve(Btree*);
*************************************************************************
** This file contains code used to implement the PRAGMA command.
**
-** $Id: pragma.c,v 1.204 2009/02/23 16:52:08 drh Exp $
+** $Id: pragma.c,v 1.205 2009/04/02 20:16:59 drh Exp $
*/
#include "sqliteInt.h"
** buffer that the pager module resizes using sqlite3_realloc().
*/
db->nextPagesize = atoi(zRight);
- if( SQLITE_NOMEM==sqlite3BtreeSetPageSize(pBt, db->nextPagesize, -1) ){
+ if( SQLITE_NOMEM==sqlite3BtreeSetPageSize(pBt, db->nextPagesize, -1, 0) ){
db->mallocFailed = 1;
}
}
** Most of the code in this file may be omitted by defining the
** SQLITE_OMIT_VACUUM macro.
**
-** $Id: vacuum.c,v 1.86 2009/02/03 16:51:25 danielk1977 Exp $
+** $Id: vacuum.c,v 1.87 2009/04/02 20:16:59 drh Exp $
*/
#include "sqliteInt.h"
#include "vdbeInt.h"
}
#endif
- if( sqlite3BtreeSetPageSize(pTemp, sqlite3BtreeGetPageSize(pMain), nRes)
- || (!isMemDb && sqlite3BtreeSetPageSize(pTemp, db->nextPagesize, nRes))
+ if( sqlite3BtreeSetPageSize(pTemp, sqlite3BtreeGetPageSize(pMain), nRes, 0)
+ || (!isMemDb && sqlite3BtreeSetPageSize(pTemp, db->nextPagesize, nRes, 0))
|| db->mallocFailed
){
rc = SQLITE_NOMEM;
}
if( rc==SQLITE_OK ){
- rc = sqlite3BtreeSetPageSize(pMain, sqlite3BtreeGetPageSize(pTemp), nRes);
+ rc = sqlite3BtreeSetPageSize(pMain, sqlite3BtreeGetPageSize(pTemp), nRes,1);
}
end_of_vacuum: