diff options
author | drh <drh@noemail.net> | 2020-05-08 19:02:21 +0000 |
---|---|---|
committer | drh <drh@noemail.net> | 2020-05-08 19:02:21 +0000 |
commit | 9e5fdc41c1f46f92776ede52359900b41b2e3a82 (patch) | |
tree | 190ae5e18f24f999c5d7d6adf6f57978c7f7b5c0 /src/expr.c | |
parent | 98aa1d735eb80f90b4523f50c17fc965ce967c79 (diff) | |
download | sqlite-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.c | 7 |
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; |