1
0
mirror of https://github.com/sqlite/sqlite.git synced 2025-08-05 15:55:57 +03:00

Another attempt to get trigger selection correct for RETURNING triggers.

FossilOrigin-Name: 1b8ed52275a54800df90682d694b482f55f26c6c4a420659f9a3b7bfc61e8abe
This commit is contained in:
drh
2021-01-30 02:34:47 +00:00
parent 16d861ffc2
commit 343256b9b0
3 changed files with 10 additions and 8 deletions

View File

@@ -740,7 +740,8 @@ Trigger *sqlite3TriggersExist(
for(p=pList; p; p=p->pNext){
if( p->op==op && checkColumnOverlap(p->pColumns, pChanges) ){
mask |= p->tr_tm;
}else if( p->bReturning && (p->op==TK_RETURNING || p->op!=TK_DELETE) ){
}else if( p->bReturning
&& (p->op==TK_RETURNING || (p->op!=TK_DELETE && op!=TK_DELETE)) ){
p->op = op;
mask |= TRIGGER_AFTER;
}
@@ -1221,6 +1222,7 @@ void sqlite3CodeRowTrigger(
&& p->tr_tm==tr_tm
&& checkColumnOverlap(p->pColumns, pChanges)
){
p->op = op;
sqlite3CodeRowTriggerDirect(pParse, p, pTab, reg, orconf, ignoreJump);
}
}