mirror of
https://github.com/sqlite/sqlite.git
synced 2025-08-07 02:42:48 +03:00
Modify the OP_IfNotOpen opcode so that the jump is taken if the cursor is open
but was previously set to a NULL row using OP_NullRow. FossilOrigin-Name: 1292d68caa7086610ddda343f3852e63de8da1eb66536ee4716b6529f5a31bc6
This commit is contained in:
10
src/vdbe.c
10
src/vdbe.c
@@ -4897,12 +4897,16 @@ case OP_SeekHit: {
|
||||
/* Opcode: IfNotOpen P1 P2 * * *
|
||||
** Synopsis: if( !csr[P1] ) goto P2
|
||||
**
|
||||
** If cursor P1 is not open, jump to instruction P2. Otherwise, fall through.
|
||||
** If cursor P1 is not open or if P1 is set to a NULL row using the
|
||||
** OP_NullRow opcode, then jump to instruction P2. Otherwise, fall through.
|
||||
*/
|
||||
case OP_IfNotOpen: { /* jump */
|
||||
VdbeCursor *pCur;
|
||||
|
||||
assert( pOp->p1>=0 && pOp->p1<p->nCursor );
|
||||
VdbeBranchTaken(p->apCsr[pOp->p1]==0, 2);
|
||||
if( !p->apCsr[pOp->p1] ){
|
||||
pCur = p->apCsr[pOp->p1];
|
||||
VdbeBranchTaken(pCur==0 || pCur->nullRow, 2);
|
||||
if( pCur==0 || pCur->nullRow ){
|
||||
goto jump_to_p2_and_check_for_interrupt;
|
||||
}
|
||||
break;
|
||||
|
Reference in New Issue
Block a user