diff options
author | dan <dan@noemail.net> | 2020-05-07 14:05:08 +0000 |
---|---|---|
committer | dan <dan@noemail.net> | 2020-05-07 14:05:08 +0000 |
commit | 4cbe5d3588f671f96e917dab6c90d1e80707770a (patch) | |
tree | c77fbae3c74fb1e5633005c18d716cc470411e3c /src/btree.c | |
parent | a8aae52391afb2b1d5eac44c45e8de994642e228 (diff) | |
parent | e937df81f0b7993f1bfa2aaffeaeca0227cf0f7d (diff) | |
download | sqlite-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.c | 20 |
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; } |