diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/backup.c | 2 | ||||
-rw-r--r-- | src/btree.c | 20 | ||||
-rw-r--r-- | src/btreeInt.h | 2 | ||||
-rw-r--r-- | src/build.c | 2 | ||||
-rw-r--r-- | src/main.c | 2 | ||||
-rw-r--r-- | src/pragma.c | 2 | ||||
-rw-r--r-- | src/vacuum.c | 2 |
7 files changed, 15 insertions, 17 deletions
diff --git a/src/backup.c b/src/backup.c index 233d0cee7..77e7ed950 100644 --- a/src/backup.c +++ b/src/backup.c @@ -112,7 +112,7 @@ static Btree *findBtree(sqlite3 *pErrorDb, sqlite3 *pDb, const char *zDb){ */ static int setDestPgsz(sqlite3_backup *p){ int rc; - rc = sqlite3BtreeSetPageSize(p->pDest,sqlite3BtreeGetPageSize(p->pSrc),-1,0); + rc = sqlite3BtreeSetPageSize(p->pDest,sqlite3BtreeGetPageSize(p->pSrc),0,0); return rc; } diff --git a/src/btree.c b/src/btree.c index 0e1f7a2dc..961de0ea4 100644 --- a/src/btree.c +++ b/src/btree.c @@ -2856,19 +2856,17 @@ int sqlite3BtreeSetPagerFlags( */ int sqlite3BtreeSetPageSize(Btree *p, int pageSize, int nReserve, int iFix){ int rc = SQLITE_OK; + int x; BtShared *pBt = p->pBt; - assert( nReserve>=-1 && nReserve<=254 ); + assert( nReserve>=0 && nReserve<=255 ); sqlite3BtreeEnter(p); - if( nReserve>=0 ){ - pBt->nReserveWanted = nReserve + 1; - } + pBt->nReserveWanted = nReserve; + x = pBt->pageSize - pBt->usableSize; + if( nReserve<x ) nReserve = x; if( pBt->btsFlags & BTS_PAGESIZE_FIXED ){ sqlite3BtreeLeave(p); return SQLITE_READONLY; } - if( nReserve<0 ){ - nReserve = pBt->pageSize - pBt->usableSize; - } assert( nReserve>=0 && nReserve<=255 ); if( pageSize>=512 && pageSize<=SQLITE_MAX_PAGE_SIZE && ((pageSize-1)&pageSize)==0 ){ @@ -2919,12 +2917,12 @@ int sqlite3BtreeGetReserveNoMutex(Btree *p){ ** The amount of reserve can only grow - never shrink. */ int sqlite3BtreeGetRequestedReserve(Btree *p){ - int n; + int n1, n2; sqlite3BtreeEnter(p); - n = ((int)p->pBt->nReserveWanted) - 1; - if( n<0 ) n = sqlite3BtreeGetReserveNoMutex(p); + n1 = (int)p->pBt->nReserveWanted; + n2 = sqlite3BtreeGetReserveNoMutex(p); sqlite3BtreeLeave(p); - return n; + return n1>n2 ? n1 : n2; } diff --git a/src/btreeInt.h b/src/btreeInt.h index 34b33096b..ec25b5466 100644 --- a/src/btreeInt.h +++ b/src/btreeInt.h @@ -417,7 +417,7 @@ struct BtShared { #endif u8 inTransaction; /* Transaction state */ u8 max1bytePayload; /* Maximum first byte of cell for a 1-byte payload */ - u8 nReserveWanted; /* 1 more than desired number of extra bytes per page */ + u8 nReserveWanted; /* Desired number of extra bytes per page */ u16 btsFlags; /* Boolean parameters. See BTS_* macros below */ u16 maxLocal; /* Maximum local payload in non-LEAFDATA tables */ u16 minLocal; /* Minimum local payload in non-LEAFDATA tables */ diff --git a/src/build.c b/src/build.c index cf36766ae..0b47e8e77 100644 --- a/src/build.c +++ b/src/build.c @@ -4630,7 +4630,7 @@ int sqlite3OpenTempDatabase(Parse *pParse){ } db->aDb[1].pBt = pBt; assert( db->aDb[1].pSchema ); - if( SQLITE_NOMEM==sqlite3BtreeSetPageSize(pBt, db->nextPagesize, -1, 0) ){ + if( SQLITE_NOMEM==sqlite3BtreeSetPageSize(pBt, db->nextPagesize, 0, 0) ){ sqlite3OomFault(db); return 1; } diff --git a/src/main.c b/src/main.c index 0d7011e7d..9e1a0e9da 100644 --- a/src/main.c +++ b/src/main.c @@ -3854,7 +3854,7 @@ int sqlite3_file_control(sqlite3 *db, const char *zDbName, int op, void *pArg){ }else if( op==SQLITE_FCNTL_RESERVE_BYTES ){ int iNew = *(int*)pArg; *(int*)pArg = sqlite3BtreeGetRequestedReserve(pBtree); - if( iNew>=0 && iNew<=254 ){ + if( iNew>=0 && iNew<=255 ){ sqlite3BtreeSetPageSize(pBtree, 0, iNew, 0); } rc = SQLITE_OK; diff --git a/src/pragma.c b/src/pragma.c index 7105f75a9..161a241ef 100644 --- a/src/pragma.c +++ b/src/pragma.c @@ -555,7 +555,7 @@ void sqlite3Pragma( ** buffer that the pager module resizes using sqlite3_realloc(). */ db->nextPagesize = sqlite3Atoi(zRight); - if( SQLITE_NOMEM==sqlite3BtreeSetPageSize(pBt, db->nextPagesize,-1,0) ){ + if( SQLITE_NOMEM==sqlite3BtreeSetPageSize(pBt, db->nextPagesize,0,0) ){ sqlite3OomFault(db); } } diff --git a/src/vacuum.c b/src/vacuum.c index 5c230fbe1..920a98e01 100644 --- a/src/vacuum.c +++ b/src/vacuum.c @@ -377,7 +377,7 @@ end_of_vacuum: db->nChange = saved_nChange; db->nTotalChange = saved_nTotalChange; db->mTrace = saved_mTrace; - sqlite3BtreeSetPageSize(pMain, -1, -1, 1); + sqlite3BtreeSetPageSize(pMain, -1, 0, 1); /* Currently there is an SQL level transaction open on the vacuum ** database. No locks are held on any other files (since the main file |