aboutsummaryrefslogtreecommitdiff
path: root/src/wherecode.c
diff options
context:
space:
mode:
authordrh <drh@noemail.net>2016-05-26 20:56:38 +0000
committerdrh <drh@noemail.net>2016-05-26 20:56:38 +0000
commiteeb9565a3e3397340a4dc79a8b693e35cdecfb7c (patch)
treea054e5793db17e2467c972bebaf97c3a7c72a3d8 /src/wherecode.c
parentce3c5011d9325adf3546505c45d40243db6e7eee (diff)
downloadsqlite-eeb9565a3e3397340a4dc79a8b693e35cdecfb7c.tar.gz
sqlite-eeb9565a3e3397340a4dc79a8b693e35cdecfb7c.zip
Add a new OP_SeekRowid opcode, that combines the functions of OP_MustBeInt
and OP_NotExists. This makes the code slightly smaller and faster. FossilOrigin-Name: ffe80a1bfa014943a614fc6993c1749b9bfec4c1
Diffstat (limited to 'src/wherecode.c')
-rw-r--r--src/wherecode.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/src/wherecode.c b/src/wherecode.c
index 054b1b107..83ee48ac6 100644
--- a/src/wherecode.c
+++ b/src/wherecode.c
@@ -971,8 +971,7 @@ Bitmask sqlite3WhereCodeOneLoopStart(
iRowidReg = codeEqualityTerm(pParse, pTerm, pLevel, 0, bRev, iReleaseReg);
if( iRowidReg!=iReleaseReg ) sqlite3ReleaseTempReg(pParse, iReleaseReg);
addrNxt = pLevel->addrNxt;
- sqlite3VdbeAddOp2(v, OP_MustBeInt, iRowidReg, addrNxt); VdbeCoverage(v);
- sqlite3VdbeAddOp3(v, OP_NotExists, iCur, addrNxt, iRowidReg);
+ sqlite3VdbeAddOp3(v, OP_SeekRowid, iCur, addrNxt, iRowidReg);
VdbeCoverage(v);
sqlite3ExprCacheAffinityChange(pParse, iRowidReg, 1);
sqlite3ExprCacheStore(pParse, iCur, -1, iRowidReg);