aboutsummaryrefslogtreecommitdiff
path: root/src/btree.c
diff options
context:
space:
mode:
authordan <dan@noemail.net>2019-07-13 16:39:38 +0000
committerdan <dan@noemail.net>2019-07-13 16:39:38 +0000
commitdf9d32441a3d2abf62ecfec60f2605dc1630b76b (patch)
tree8f698360de0417d86e248a0c686b3e2aa7d87cf7 /src/btree.c
parent8616cff6c8541e2837ccb7a2bc5792de5aba962f (diff)
parent4f9adee289fcc8de83054332212c90f389609d4a (diff)
downloadsqlite-df9d32441a3d2abf62ecfec60f2605dc1630b76b.tar.gz
sqlite-df9d32441a3d2abf62ecfec60f2605dc1630b76b.zip
Add support for attaching a FILTER clause to an aggregate function.
FossilOrigin-Name: ee293e5aeac0b05a8b809095610fd8b4fdaf8e68cd368de90ec0d45e3582ffe5
Diffstat (limited to 'src/btree.c')
-rw-r--r--src/btree.c8
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];