aboutsummaryrefslogtreecommitdiff
path: root/src/expr.c
diff options
context:
space:
mode:
authordrh <drh@noemail.net>2020-05-08 19:02:21 +0000
committerdrh <drh@noemail.net>2020-05-08 19:02:21 +0000
commit9e5fdc41c1f46f92776ede52359900b41b2e3a82 (patch)
tree190ae5e18f24f999c5d7d6adf6f57978c7f7b5c0 /src/expr.c
parent98aa1d735eb80f90b4523f50c17fc965ce967c79 (diff)
downloadsqlite-9e5fdc41c1f46f92776ede52359900b41b2e3a82.tar.gz
sqlite-9e5fdc41c1f46f92776ede52359900b41b2e3a82.zip
Release some restrictions on columns added by ALTER TABLE so that they
only apply if the table contains one or more rows. FossilOrigin-Name: 3a16c0ce4d8851f79f670d94786032c8007619154ece44647dc9cc5b1f9654ff
Diffstat (limited to 'src/expr.c')
-rw-r--r--src/expr.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/expr.c b/src/expr.c
index 23e00db2e..528377c5d 100644
--- a/src/expr.c
+++ b/src/expr.c
@@ -4482,7 +4482,7 @@ expr_code_doover:
|| pExpr->affExpr==OE_Fail
|| pExpr->affExpr==OE_Ignore
);
- if( !pParse->pTriggerTab ){
+ if( !pParse->pTriggerTab && !pParse->nested ){
sqlite3ErrorMsg(pParse,
"RAISE() may only be used within a trigger-program");
return 0;
@@ -4496,8 +4496,9 @@ expr_code_doover:
v, OP_Halt, SQLITE_OK, OE_Ignore, 0, pExpr->u.zToken,0);
VdbeCoverage(v);
}else{
- sqlite3HaltConstraint(pParse, SQLITE_CONSTRAINT_TRIGGER,
- pExpr->affExpr, pExpr->u.zToken, 0, 0);
+ sqlite3HaltConstraint(pParse,
+ pParse->pTriggerTab ? SQLITE_CONSTRAINT_TRIGGER : SQLITE_ERROR,
+ pExpr->affExpr, pExpr->u.zToken, 0, 0);
}
break;