aboutsummaryrefslogtreecommitdiff
path: root/src/insert.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/insert.c')
-rw-r--r--src/insert.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/insert.c b/src/insert.c
index 423087e37..d778e4b45 100644
--- a/src/insert.c
+++ b/src/insert.c
@@ -2129,9 +2129,15 @@ void sqlite3GenerateConstraintChecks(
sqlite3MultiWrite(pParse);
nReplaceTrig++;
}
+ if( pTrigger && isUpdate ){
+ sqlite3VdbeAddOp1(v, OP_CursorLock, iDataCur);
+ }
sqlite3GenerateRowDelete(pParse, pTab, pTrigger, iDataCur, iIdxCur,
regR, nPkField, 0, OE_Replace,
(pIdx==pPk ? ONEPASS_SINGLE : ONEPASS_OFF), iThisCur);
+ if( pTrigger && isUpdate ){
+ sqlite3VdbeAddOp1(v, OP_CursorUnlock, iDataCur);
+ }
if( regTrigCnt ){
int addrBypass; /* Jump destination to bypass recheck logic */