aboutsummaryrefslogtreecommitdiff
path: root/src/btree.c
diff options
context:
space:
mode:
authordan <dan@noemail.net>2020-05-07 14:05:08 +0000
committerdan <dan@noemail.net>2020-05-07 14:05:08 +0000
commit4cbe5d3588f671f96e917dab6c90d1e80707770a (patch)
treec77fbae3c74fb1e5633005c18d716cc470411e3c /src/btree.c
parenta8aae52391afb2b1d5eac44c45e8de994642e228 (diff)
parente937df81f0b7993f1bfa2aaffeaeca0227cf0f7d (diff)
downloadsqlite-4cbe5d3588f671f96e917dab6c90d1e80707770a.tar.gz
sqlite-4cbe5d3588f671f96e917dab6c90d1e80707770a.zip
Merge trunk changes into this branch.
FossilOrigin-Name: ac4ee69664278a828e0a64c5be3b96fdb6eb6acc95646a9425c667aea328791c
Diffstat (limited to 'src/btree.c')
-rw-r--r--src/btree.c20
1 files changed, 9 insertions, 11 deletions
diff --git a/src/btree.c b/src/btree.c
index 972063bfa..3fe0e1c3c 100644
--- a/src/btree.c
+++ b/src/btree.c
@@ -2855,19 +2855,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 ){
@@ -2918,12 +2916,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;
}