diff options
author | drh <> | 2022-05-03 14:01:48 +0000 |
---|---|---|
committer | drh <> | 2022-05-03 14:01:48 +0000 |
commit | 8aa7f4d8130fe6a8517c6e136ee929dbe2bf2bcf (patch) | |
tree | d7278f8b3e41bf0d72d6ee68f312d6a9df9d53a9 /src/wherecode.c | |
parent | 207f6263569835b649b1f472e12dacba8ee6a21b (diff) | |
download | sqlite-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.c | 3 |
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; } } |