diff options
author | drh <drh@noemail.net> | 2019-12-29 00:52:41 +0000 |
---|---|---|
committer | drh <drh@noemail.net> | 2019-12-29 00:52:41 +0000 |
commit | be3da24134f53a0c8f10291611af758dc0ced611 (patch) | |
tree | a5ed589b142b6d9ab3230a9f85c106f2ee161788 /src/wherecode.c | |
parent | 997d7434b7688f9fbd48fdacdbf1769e2f4cccbe (diff) | |
download | sqlite-be3da24134f53a0c8f10291611af758dc0ced611.tar.gz sqlite-be3da24134f53a0c8f10291611af758dc0ced611.zip |
Add the OP_FinishSeek opcode which completes an OP_DeferredSeek if the seek
has not already completed. Also add the sqlite3WhereUsesDeferredSeek()
interface to the query planner. The UPDATE implementation adds an
OP_FinishSeek before running the final OP_Insert if one is needed.
Ticket [ec8abb025e78f40c] and also an assertion fault reported by Yongheng.
FossilOrigin-Name: 21ef6e99331210b80fa7c71b4f02e8f768a748d01aef884368af2f6b51a067e0
Diffstat (limited to 'src/wherecode.c')
-rw-r--r-- | src/wherecode.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/src/wherecode.c b/src/wherecode.c index 9c51b5669..96c2971a5 100644 --- a/src/wherecode.c +++ b/src/wherecode.c @@ -1045,6 +1045,7 @@ static void codeDeferredSeek( assert( iIdxCur>0 ); assert( pIdx->aiColumn[pIdx->nColumn-1]==-1 ); + pWInfo->bDeferredSeek = 1; sqlite3VdbeAddOp3(v, OP_DeferredSeek, iIdxCur, 0, iCur); if( (pWInfo->wctrlFlags & WHERE_OR_SUBCLAUSE) && DbMaskAllZero(sqlite3ParseToplevel(pParse)->writeMask) |