mirror of
https://github.com/sqlite/sqlite.git
synced 2025-08-05 15:55:57 +03:00
When running the RETURNING trigger, if it is tagged as a DELETE trigger,
do not use it as INSERT or UPDATE. FossilOrigin-Name: 3c7a6e04ddde34961d8e9d0443913e572a80853cf14a8263cec19523c39ca744
This commit is contained in:
@@ -740,7 +740,7 @@ 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 ){
|
||||
}else if( p->bReturning && (p->op==TK_RETURNING || p->op!=TK_DELETE) ){
|
||||
p->op = op;
|
||||
mask |= TRIGGER_AFTER;
|
||||
}
|
||||
@@ -1217,7 +1217,7 @@ void sqlite3CodeRowTrigger(
|
||||
|| p->pSchema==pParse->db->aDb[1].pSchema );
|
||||
|
||||
/* Determine whether we should code this trigger */
|
||||
if( (p->op==op || p->bReturning)
|
||||
if( (p->op==op || (p->bReturning && p->op!=TK_DELETE))
|
||||
&& p->tr_tm==tr_tm
|
||||
&& checkColumnOverlap(p->pColumns, pChanges)
|
||||
){
|
||||
|
Reference in New Issue
Block a user