aboutsummaryrefslogtreecommitdiff
path: root/src/insert.c
diff options
context:
space:
mode:
authordrh <drh@noemail.net>2019-11-06 14:49:43 +0000
committerdrh <drh@noemail.net>2019-11-06 14:49:43 +0000
commitb1129c423f0cda7c76a3664dd91e84701f431cc5 (patch)
treee27e7256cf1f77420c9f1cfd57713f59a31b37eb /src/insert.c
parent06fc24555fd7fc826c68de4b85f2326ada87ea90 (diff)
downloadsqlite-b1129c423f0cda7c76a3664dd91e84701f431cc5.tar.gz
sqlite-b1129c423f0cda7c76a3664dd91e84701f431cc5.zip
Fix the handling of NOT NULL constraint violations for generated columns in
a REPLACE statement. Ticket [2399f5986134f79c] FossilOrigin-Name: 77b1c90add514050fe62f22751362fecacd99f9775346cffc60e09c326e64e10
Diffstat (limited to 'src/insert.c')
-rw-r--r--src/insert.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/insert.c b/src/insert.c
index 0711930fb..77edc5ea6 100644
--- a/src/insert.c
+++ b/src/insert.c
@@ -1518,9 +1518,11 @@ void sqlite3GenerateConstraintChecks(
addr1 = sqlite3VdbeMakeLabel(pParse);
sqlite3VdbeAddOp2(v, OP_NotNull, iReg, addr1);
VdbeCoverage(v);
- sqlite3ExprCode(pParse, pTab->aCol[i].pDflt, regNewData+1+i);
- sqlite3VdbeAddOp2(v, OP_NotNull, iReg, addr1);
- VdbeCoverage(v);
+ if( (pTab->aCol[i].colFlags & COLFLAG_GENERATED)==0 ){
+ sqlite3ExprCode(pParse, pTab->aCol[i].pDflt, regNewData+1+i);
+ sqlite3VdbeAddOp2(v, OP_NotNull, iReg, addr1);
+ VdbeCoverage(v);
+ }
onError = OE_Abort;
/* Fall through into the OE_Abort case to generate code that runs
** if both the input and the default value are NULL */