mirror of
https://github.com/sqlite/sqlite.git
synced 2025-11-11 01:42:22 +03:00
Ensure foreign key related processing takes place when rows are deleted from the database by REPLACE conflict handling.
FossilOrigin-Name: 3f40c142c8526c1572020bd4d945c03a72019135
This commit is contained in:
@@ -1271,14 +1271,14 @@ void sqlite3GenerateConstraintChecks(
|
||||
if( pParse->db->flags&SQLITE_RecTriggers ){
|
||||
pTrigger = sqlite3TriggersExist(pParse, pTab, TK_DELETE, 0, 0);
|
||||
}
|
||||
if( pTrigger ){
|
||||
sqlite3MultiWrite(pParse);
|
||||
if( pTrigger || sqlite3FkRequired(pParse, pTab, 0) ){
|
||||
sqlite3GenerateRowDelete(
|
||||
pParse, pTab, baseCur, regRowid, 0, pTrigger, OE_Replace
|
||||
);
|
||||
}else{
|
||||
sqlite3GenerateRowIndexDelete(pParse, pTab, baseCur, 0);
|
||||
}
|
||||
sqlite3MultiWrite(pParse);
|
||||
seenReplace = 1;
|
||||
break;
|
||||
}
|
||||
@@ -1380,13 +1380,13 @@ void sqlite3GenerateConstraintChecks(
|
||||
default: {
|
||||
Trigger *pTrigger = 0;
|
||||
assert( onError==OE_Replace );
|
||||
sqlite3MultiWrite(pParse);
|
||||
if( pParse->db->flags&SQLITE_RecTriggers ){
|
||||
pTrigger = sqlite3TriggersExist(pParse, pTab, TK_DELETE, 0, 0);
|
||||
}
|
||||
sqlite3GenerateRowDelete(
|
||||
pParse, pTab, baseCur, regR, 0, pTrigger, OE_Replace
|
||||
);
|
||||
sqlite3MultiWrite(pParse);
|
||||
seenReplace = 1;
|
||||
break;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user