diff options
author | danielk1977 <danielk1977@noemail.net> | 2008-10-02 16:42:06 +0000 |
---|---|---|
committer | danielk1977 <danielk1977@noemail.net> | 2008-10-02 16:42:06 +0000 |
commit | 4e7f36a27f81a5c31096dfb8877892704a62f0ca (patch) | |
tree | 57c8bf87079fa71c3c0c4c16577b58738eed1493 /src | |
parent | a8b3018da41a1189f9262e1aa1e62a27bd54ac6a (diff) | |
download | sqlite-4e7f36a27f81a5c31096dfb8877892704a62f0ca.tar.gz sqlite-4e7f36a27f81a5c31096dfb8877892704a62f0ca.zip |
Change to reduce the number of OP_Null opcodes in "WHERE <rowid> IN (x,y,z)" queries. (CVS 5763)
FossilOrigin-Name: 33b59a3db0b1797663ae840ceaca1b23a9a9e3b0
Diffstat (limited to 'src')
-rw-r--r-- | src/expr.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/expr.c b/src/expr.c index 1925034dc..b13bb99e0 100644 --- a/src/expr.c +++ b/src/expr.c @@ -12,7 +12,7 @@ ** This file contains routines used for analyzing expressions and ** for generating VDBE code that evaluates expressions in SQLite. ** -** $Id: expr.c,v 1.395 2008/10/02 13:50:56 danielk1977 Exp $ +** $Id: expr.c,v 1.396 2008/10/02 16:42:07 danielk1977 Exp $ */ #include "sqliteInt.h" #include <ctype.h> @@ -1348,6 +1348,7 @@ void sqlite3CodeSubselect( /* Loop through each expression in <exprlist>. */ r1 = sqlite3GetTempReg(pParse); r2 = sqlite3GetTempReg(pParse); + sqlite3VdbeAddOp2(v, OP_Null, 0, r2); for(i=pList->nExpr, pItem=pList->a; i>0; i--, pItem++){ Expr *pE2 = pItem->pExpr; @@ -1368,7 +1369,6 @@ void sqlite3CodeSubselect( pParse->disableColCache--; if( isRowid ){ - sqlite3VdbeAddOp2(v, OP_Null, 0, r2); sqlite3VdbeAddOp2(v, OP_MustBeInt, r3, sqlite3VdbeCurrentAddr(v)+2); sqlite3VdbeAddOp3(v, OP_Insert, pExpr->iTable, r2, r3); }else{ |