diff options
author | dan <dan@noemail.net> | 2019-07-13 09:55:33 +0000 |
---|---|---|
committer | dan <dan@noemail.net> | 2019-07-13 09:55:33 +0000 |
commit | 01fd42beef1c16b8998ca8dba0bbc43e97efe9fd (patch) | |
tree | 71f01b173f75ca9806a304f32d3fa7fbdd605e0b /src/btree.c | |
parent | 52d9a3c2137bac76a826a24d2c466d06f3ac49d4 (diff) | |
download | sqlite-01fd42beef1c16b8998ca8dba0bbc43e97efe9fd.tar.gz sqlite-01fd42beef1c16b8998ca8dba0bbc43e97efe9fd.zip |
Trivial performance improvement for balance().
FossilOrigin-Name: c7920f5569022f645ec4dbfce8c228880263785c708c2c0ac065e770c438b1d9
Diffstat (limited to 'src/btree.c')
-rw-r--r-- | src/btree.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/src/btree.c b/src/btree.c index 6c73a9422..5f82f1cc0 100644 --- a/src/btree.c +++ b/src/btree.c @@ -8307,11 +8307,13 @@ static int balance(BtCursor *pCur){ VVA_ONLY( int balance_deeper_called = 0 ); do { - int iPage = pCur->iPage; + int iPage; MemPage *pPage = pCur->pPage; if( NEVER(pPage->nFree<0) && btreeComputeFreeSpace(pPage) ) break; - if( iPage==0 ){ + if( pPage->nOverflow==0 && pPage->nFree<=nMin ){ + break; + }else if( (iPage = pCur->iPage)==0 ){ if( pPage->nOverflow ){ /* The root page of the b-tree is overfull. In this case call the ** balance_deeper() function to create a new child for the root-page @@ -8332,8 +8334,6 @@ static int balance(BtCursor *pCur){ }else{ break; } - }else if( pPage->nOverflow==0 && pPage->nFree<=nMin ){ - break; }else{ MemPage * const pParent = pCur->apPage[iPage-1]; int const iIdx = pCur->aiIdx[iPage-1]; |