diff options
author | dan <Dan Kennedy> | 2022-10-06 14:10:11 +0000 |
---|---|---|
committer | dan <Dan Kennedy> | 2022-10-06 14:10:11 +0000 |
commit | 73ac958c749a383208f78af79e637ecc2f593f5a (patch) | |
tree | c8011a440baffb4dd86f4f16fe969df4b8c760d9 /src/wherecode.c | |
parent | 2eca06141feae3d241776e59b798b4aa1ce128b6 (diff) | |
download | sqlite-73ac958c749a383208f78af79e637ecc2f593f5a.tar.gz sqlite-73ac958c749a383208f78af79e637ecc2f593f5a.zip |
Fix a problem that occurred when using a bloom filter to optimize an (ipk = ?) lookup in the case where the RHS of the expression is a TEXT value. First reported by [forum:/forumpost/f61a8b7053|forum post f61a8b7053].
FossilOrigin-Name: 8e14c351b29bb434ac4e2510681e95716424a73e340d39feff4919f0431c2e00
Diffstat (limited to 'src/wherecode.c')
-rw-r--r-- | src/wherecode.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/wherecode.c b/src/wherecode.c index 4c34ea0dc..67df73c66 100644 --- a/src/wherecode.c +++ b/src/wherecode.c @@ -1422,6 +1422,8 @@ static SQLITE_NOINLINE void filterPullDown( testcase( pTerm->wtFlags & TERM_VIRTUAL ); regRowid = sqlite3GetTempReg(pParse); regRowid = codeEqualityTerm(pParse, pTerm, pLevel, 0, 0, regRowid); + sqlite3VdbeAddOp2(pParse->pVdbe, OP_MustBeInt, regRowid, addrNxt); + VdbeCoverage(pParse->pVdbe); sqlite3VdbeAddOp4Int(pParse->pVdbe, OP_Filter, pLevel->regFilter, addrNxt, regRowid, 1); VdbeCoverage(pParse->pVdbe); @@ -1683,6 +1685,8 @@ Bitmask sqlite3WhereCodeOneLoopStart( if( iRowidReg!=iReleaseReg ) sqlite3ReleaseTempReg(pParse, iReleaseReg); addrNxt = pLevel->addrNxt; if( pLevel->regFilter ){ + sqlite3VdbeAddOp2(v, OP_MustBeInt, iRowidReg, addrNxt); + VdbeCoverage(v); sqlite3VdbeAddOp4Int(v, OP_Filter, pLevel->regFilter, addrNxt, iRowidReg, 1); VdbeCoverage(v); |