diff options
Diffstat (limited to 'src/insert.c')
-rw-r--r-- | src/insert.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/src/insert.c b/src/insert.c index 96e86c9fb..6908aff4a 100644 --- a/src/insert.c +++ b/src/insert.c @@ -2007,6 +2007,7 @@ void sqlite3GenerateConstraintChecks( if( onError==OE_Replace /* IPK rule is REPLACE */ && onError!=overrideError /* Rules for other constraints are different */ && pTab->pIndex /* There exist other constraints */ + && !upsertIpkDelay /* IPK check already deferred by UPSERT */ ){ ipkTop = sqlite3VdbeAddOp0(v, OP_Goto)+1; VdbeComment((v, "defer IPK REPLACE until last")); @@ -2415,6 +2416,7 @@ void sqlite3GenerateConstraintChecks( if( ipkTop ){ sqlite3VdbeGoto(v, ipkTop); VdbeComment((v, "Do IPK REPLACE")); + assert( ipkBottom>0 ); sqlite3VdbeJumpHere(v, ipkBottom); } |