diff options
author | drh <> | 2024-05-08 17:42:13 +0000 |
---|---|---|
committer | drh <> | 2024-05-08 17:42:13 +0000 |
commit | 788ade3487252c4de2da94a2b8f9ec7ebdd83c95 (patch) | |
tree | c821b9cd566a89f4d32ea6288d7bd69a35e781ec /src/expr.c | |
parent | 538ad6ce58c47e48f2c85abfcb31c968e615fc40 (diff) | |
download | sqlite-788ade3487252c4de2da94a2b8f9ec7ebdd83c95.tar.gz sqlite-788ade3487252c4de2da94a2b8f9ec7ebdd83c95.zip |
Allow arbitrary expressions as the second argument to RAISE().
FossilOrigin-Name: 003e1c8c27824cb917b3869bdf9000f32ff0b6887a2aff8516712cfe865cf34d
Diffstat (limited to 'src/expr.c')
-rw-r--r-- | src/expr.c | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/src/expr.c b/src/expr.c index a5272df7c..2157cf4ed 100644 --- a/src/expr.c +++ b/src/expr.c @@ -5306,15 +5306,14 @@ expr_code_doover: } assert( !ExprHasProperty(pExpr, EP_IntValue) ); if( pExpr->affExpr==OE_Ignore ){ - sqlite3VdbeAddOp4( - v, OP_Halt, SQLITE_OK, OE_Ignore, 0, pExpr->u.zToken,0); + sqlite3VdbeAddOp2(v, OP_Halt, SQLITE_OK, OE_Ignore); VdbeCoverage(v); }else{ - sqlite3HaltConstraint(pParse, + r1 = sqlite3ExprCodeTemp(pParse, pExpr->pLeft, ®Free1); + sqlite3VdbeAddOp3(v, OP_Halt, pParse->pTriggerTab ? SQLITE_CONSTRAINT_TRIGGER : SQLITE_ERROR, - pExpr->affExpr, pExpr->u.zToken, 0, 0); + pExpr->affExpr, r1); } - break; } #endif |