-C Code\sto\sauto-vacuum\sthe\sdatabase\sif\sall\sroot\spages\shappen\sto\sbe\sin\sthe\sright\splace.\sNot\sactive\sby\sdefault\sand\slargely\suntested.\s(CVS\s2037)
-D 2004-11-02T12:56:41
+C Require\sthat\sthe\spage\ssize\sbe\sa\spower\sof\s2.\s(CVS\s2038)
+D 2004-11-02T14:24:34
F Makefile.in 9e90c685d69f09039015a6b1f3b0a48e9738c9e5
F Makefile.linux-gcc a9e5a0d309fa7c38e7c14d3ecf7690879d3a5457
F README a01693e454a00cc117967e3f9fdab2d4d52e9bc1
F sqlite3.pc.in 985b9bf34192a549d7d370e0f0b6b34a4f61369a
F src/attach.c e49d09dad9f5f9fb10b4b0c1be5a70ae4c45e689
F src/auth.c 3b81f2a42f48a62c2c9c9b0eda31a157c681edea
-F src/btree.c 92713a104c11abe0826a33590f1d4147332fd9a5
+F src/btree.c 057e97744f4e9ca02d4815db554fd95fdabd60d5
F src/btree.h 94dfec0a1722d33359b23e7e310f2b64ffedf029
F src/build.c bb896c5f85ab749d17ae5d730235134c12c08033
F src/date.c 34bdb0082db7ec2a83ef00063f7b44e61ee19dad
F test/pager.test 394455707a079804e8a4e431d12edce831a065f0
F test/pager2.test c7e731ac56a2984a605b032ffd19b9deee820377
F test/pager3.test 16f546293bb751b8151dc17df613fca938bbec8b
-F test/pagesize.test 56d11f4d6df9949d646bf87da1d6d995ed37cd78
+F test/pagesize.test f4b97dc161c99f9712ffa8ebe6c0eb62c2209ee6
F test/pragma.test 66a66b7f3b273b93325c9a5794acb418f52fdcbf
F test/printf.test 92ba4c510b4fc61120ffa4a01820446ed917ae57
F test/progress.test 5ddba78cb6011fba36093973cfb3ac473b8fb96a x
F www/vdbe.tcl 59288db1ac5c0616296b26dce071c36cb611dfe9
F www/version3.tcl 092a01f5ef430d2c4acc0ae558d74c4bb89638a0
F www/whentouse.tcl fdacb0ba2d39831e8a6240d05a490026ad4c4e4c
-P 5515accee348c6364cd58903a19029519797e123
-R d09732475e8e7fd32816b925d21968c5
-U danielk1977
-Z 3ba6d76f77fb940670c05d63aad699f9
+P d12481f09cbe51c7ea499bc22afec5de3af14ad4
+R ce7547bdb8b99a29e1e65ec61753f1b6
+U drh
+Z ac7564dbdf799e2f506094e004f86e98
-d12481f09cbe51c7ea499bc22afec5de3af14ad4
\ No newline at end of file
+c33b34dbe9657b151b9ab00a6b50a255fae623f8
\ No newline at end of file
** May you share freely, never taking more than you give.
**
*************************************************************************
-** $Id: btree.c,v 1.196 2004/11/02 12:56:41 danielk1977 Exp $
+** $Id: btree.c,v 1.197 2004/11/02 14:24:34 drh Exp $
**
** This file implements a external (disk-based) database using BTrees.
** For a detailed discussion of BTrees, refer to
/*
** Change the default pages size and the number of reserved bytes per page.
+**
+** 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
+** changed.
+**
+** Page sizes are constrained to be a power of two so that the region
+** of the database file used for locking (beginning at PENDING_BYTE,
+** the first byte past the 1GB boundary, 0x40000000) needs to occur
+** at the beginning of a page.
*/
int sqlite3BtreeSetPageSize(Btree *pBt, int pageSize, int nReserve){
if( pBt->pageSizeFixed ){
if( nReserve<0 ){
nReserve = pBt->pageSize - pBt->usableSize;
}
- if( pageSize>=512 && pageSize<=SQLITE_MAX_PAGE_SIZE ){
+ if( pageSize>=512 && pageSize<=SQLITE_MAX_PAGE_SIZE &&
+ ((pageSize-1)&pageSize)==0 ){
pBt->pageSize = pageSize;
pBt->psAligned = FORCE_ALIGNMENT(pageSize);
sqlite3pager_set_pagesize(pBt->pPager, pageSize);
# This file implements regression tests for SQLite library.
# This file implements tests for the page_size PRAGMA.
#
-# $Id: pagesize.test,v 1.4 2004/10/22 16:22:59 drh Exp $
+# $Id: pagesize.test,v 1.5 2004/11/02 14:24:35 drh Exp $
set testdir [file dirname $argv0]
PRAGMA page_size;
}
} 8192
-
-
+do_test pagesize-1.8 {
+ execsql {
+ PRAGMA page_size=1234;
+ PRAGMA page_size
+ }
+} 8192
-foreach PGSZ {512 515 516 751 2000 2001 2002 2003 2004 2048 3000 4096} {
+foreach PGSZ {512 2048 4096 8192} {
do_test pagesize-2.$PGSZ.1 {
db close
file delete -force test.db