aboutsummaryrefslogtreecommitdiff
path: root/src/upsert.c
diff options
context:
space:
mode:
authordrh <drh@noemail.net>2019-12-26 23:40:33 +0000
committerdrh <drh@noemail.net>2019-12-26 23:40:33 +0000
commitfe2a3f1d241b21ce93c679b16c717a99f58c6cd7 (patch)
tree6dd5d8fdd319d73ae8c807816890ecc609bf6643 /src/upsert.c
parentd3ee3ad12fd53f0db78a2c07917fb4fc310ca72a (diff)
downloadsqlite-fe2a3f1d241b21ce93c679b16c717a99f58c6cd7.tar.gz
sqlite-fe2a3f1d241b21ce93c679b16c717a99f58c6cd7.zip
If an UPSERT can cause an Abort due to a constraint failure, make sure
the query planner knows this. Ticket [7c13db5c3bf74001]. FossilOrigin-Name: f14ce948662f3445a06d84d4f32d9b81143e0cffaf773d8aa4d3a609bfb9682b
Diffstat (limited to 'src/upsert.c')
-rw-r--r--src/upsert.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/upsert.c b/src/upsert.c
index 5db4f5fc9..9a33f75d0 100644
--- a/src/upsert.c
+++ b/src/upsert.c
@@ -236,6 +236,7 @@ void sqlite3UpsertDoUpdate(
VdbeCoverage(v);
sqlite3VdbeAddOp4(v, OP_Halt, SQLITE_CORRUPT, OE_Abort, 0,
"corrupt database", P4_STATIC);
+ sqlite3MayAbort(pParse);
sqlite3VdbeJumpHere(v, i);
}
}