diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/vdbe.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/src/vdbe.c b/src/vdbe.c index 9e696d0c3..0020b52bf 100644 --- a/src/vdbe.c +++ b/src/vdbe.c @@ -8269,7 +8269,14 @@ case OP_VOpen: { /* ncycle */ const sqlite3_module *pModule; assert( p->bIsReader ); - pCur = 0; + pCur = p->apCsr[pOp->p1]; + if( pCur!=0 + && ALWAYS( pCur->eCurType==CURTYPE_VTAB ) + && ALWAYS( pCur->uc.pVCur->pVtab==pOp->p4.pVtab->pVtab ) + ){ + /* This opcode is a no-op if the cursor is already open */ + break; + } pVCur = 0; pVtab = pOp->p4.pVtab->pVtab; if( pVtab==0 || NEVER(pVtab->pModule==0) ){ |