1
0
mirror of https://github.com/sqlite/sqlite.git synced 2025-11-14 00:22:38 +03:00

Change the OP_Rowid opcode so that a deferred OP_Seek is pending, it simply

pulls the rowid from the deferred seek target and does not actually move
the cursor or do a seek.  Other where.c cleanups. (CVS 6536)

FossilOrigin-Name: 1c508a99822caa383e7e24b5d09a9bddd2ee3a00
This commit is contained in:
drh
2009-04-22 15:32:59 +00:00
parent 1b26c7ccfa
commit 6149526c25
7 changed files with 65 additions and 70 deletions

View File

@@ -14,7 +14,7 @@
** to version 2.8.7, all this code was combined into the vdbe.c source file.
** But that file was getting too big so this subroutines were split out.
**
** $Id: vdbeaux.c,v 1.453 2009/04/22 02:15:48 drh Exp $
** $Id: vdbeaux.c,v 1.454 2009/04/22 15:32:59 drh Exp $
*/
#include "sqliteInt.h"
#include "vdbeInt.h"
@@ -2002,8 +2002,8 @@ int sqlite3VdbeCursorMoveto(VdbeCursor *p){
rc = sqlite3BtreeMovetoUnpacked(p->pCursor, 0, p->movetoTarget, 0, &res);
if( rc ) return rc;
p->lastRowid = keyToInt(p->movetoTarget);
p->rowidIsValid = res==0 ?1:0;
if( res<0 ){
p->rowidIsValid = ALWAYS(res==0) ?1:0;
if( NEVER(res<0) ){
rc = sqlite3BtreeNext(p->pCursor, &res);
if( rc ) return rc;
}