aboutsummaryrefslogtreecommitdiff
path: root/src/insert.c
diff options
context:
space:
mode:
authordrh <drh@noemail.net>2018-06-11 18:06:48 +0000
committerdrh <drh@noemail.net>2018-06-11 18:06:48 +0000
commitea64715976cfe3a047e5ae9d0b990faf7076e99c (patch)
treeeed745e2fdec1f0a1136b6bd7a02e6c11ee4dc80 /src/insert.c
parent299bf7c2f0193e2d39dd96ad4ccbe673ae9e21be (diff)
downloadsqlite-ea64715976cfe3a047e5ae9d0b990faf7076e99c.tar.gz
sqlite-ea64715976cfe3a047e5ae9d0b990faf7076e99c.zip
Fix the column cache invalidation logic in the code for ROWID uniqueness
constraint checking in the INSERT command. This fixes ticket [c2432ef9089ee73bd]. FossilOrigin-Name: 0b485a571c805a5bc431a231a196ff6034342c6548d92b09c52814dd57c89c75
Diffstat (limited to 'src/insert.c')
-rw-r--r--src/insert.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/insert.c b/src/insert.c
index 3d5164283..78b07a025 100644
--- a/src/insert.c
+++ b/src/insert.c
@@ -1533,6 +1533,7 @@ void sqlite3GenerateConstraintChecks(
sqlite3VdbeVerifyAbortable(v, onError);
sqlite3VdbeAddOp3(v, OP_NotExists, iDataCur, addrRowidOk, regNewData);
VdbeCoverage(v);
+ sqlite3ExprCachePush(pParse);
switch( onError ){
default: {
@@ -1609,6 +1610,7 @@ void sqlite3GenerateConstraintChecks(
break;
}
}
+ sqlite3ExprCachePop(pParse);
sqlite3VdbeResolveLabel(v, addrRowidOk);
if( sAddr.ipkTop ){
sAddr.ipkBtm = sqlite3VdbeAddOp0(v, OP_Goto);