8
0
mirror of https://github.com/FirebirdSQL/firebird.git synced 2025-01-23 18:03:04 +01:00

Delete deferred work when savepoint is cleaned up after failure even if no records was modified. Else DFW task will be repeated at commit making system tables logically inconsistent.

This commit is contained in:
hvlad 2011-06-24 12:03:32 +00:00
parent 82fc475600
commit 7c68e15a0f

View File

@ -3292,7 +3292,7 @@ void VIO_verb_cleanup(thread_db* tdbb, jrd_tra* transaction)
// Cleanup/merge deferred work/event post
if (sav_point->sav_verb_actions || (sav_point->sav_flags & SAV_force_dfw))
if (sav_point->sav_verb_actions || sav_point->sav_verb_count || (sav_point->sav_flags & SAV_force_dfw))
{
if (sav_point->sav_verb_count) {
DFW_delete_deferred(transaction, sav_point->sav_number);