aboutsummaryrefslogtreecommitdiff
path: root/src/wherecode.c
diff options
context:
space:
mode:
authordrh <>2022-05-03 14:01:48 +0000
committerdrh <>2022-05-03 14:01:48 +0000
commit8aa7f4d8130fe6a8517c6e136ee929dbe2bf2bcf (patch)
treed7278f8b3e41bf0d72d6ee68f312d6a9df9d53a9 /src/wherecode.c
parent207f6263569835b649b1f472e12dacba8ee6a21b (diff)
downloadsqlite-8aa7f4d8130fe6a8517c6e136ee929dbe2bf2bcf.tar.gz
sqlite-8aa7f4d8130fe6a8517c6e136ee929dbe2bf2bcf.zip
Fix the Bloom filter pull-down optimization so that it jumps to the correct
place if it encounters a NULL key. Fix for the bug described by [forum:/forumpost/2482b32700384a0f|forum thread 2482b32700384a0f]. FossilOrigin-Name: 6eda9b1a7784cf6d58c8876551f67ab98e78a08e726a0579d4def5ba881985bb
Diffstat (limited to 'src/wherecode.c')
-rw-r--r--src/wherecode.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/wherecode.c b/src/wherecode.c
index 6f5a85386..0a4a0019c 100644
--- a/src/wherecode.c
+++ b/src/wherecode.c
@@ -1412,6 +1412,8 @@ static SQLITE_NOINLINE void filterPullDown(
/* ,--- Because sqlite3ConstructBloomFilter() has will not have set
** vvvvv--' pLevel->regFilter if this were true. */
if( NEVER(pLoop->prereq & notReady) ) continue;
+ assert( pLevel->addrBrk==0 );
+ pLevel->addrBrk = addrNxt;
if( pLoop->wsFlags & WHERE_IPK ){
WhereTerm *pTerm = pLoop->aLTerm[0];
int regRowid;
@@ -1438,6 +1440,7 @@ static SQLITE_NOINLINE void filterPullDown(
VdbeCoverage(pParse->pVdbe);
}
pLevel->regFilter = 0;
+ pLevel->addrBrk = 0;
}
}