aboutsummaryrefslogtreecommitdiff
path: root/src/wherecode.c
diff options
context:
space:
mode:
authordrh <drh@noemail.net>2019-12-29 00:52:41 +0000
committerdrh <drh@noemail.net>2019-12-29 00:52:41 +0000
commitbe3da24134f53a0c8f10291611af758dc0ced611 (patch)
treea5ed589b142b6d9ab3230a9f85c106f2ee161788 /src/wherecode.c
parent997d7434b7688f9fbd48fdacdbf1769e2f4cccbe (diff)
downloadsqlite-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.c1
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)