Skip to content

Commit

Permalink
Merge pull request #7920 from FirebirdSQL/work/gh_7899
Browse files Browse the repository at this point in the history
FIxed bug #7899 : Inconsistent state of master-detail occurs after RE-connect + 'SET AUTODDL OFF' + 'drop <FK>' which is ROLLED BACK
  • Loading branch information
hvlad committed Dec 19, 2023
2 parents 2feea10 + 24e3d46 commit c1a02ae
Showing 1 changed file with 16 additions and 1 deletion.
17 changes: 16 additions & 1 deletion src/jrd/vio.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2042,7 +2042,6 @@ bool VIO_erase(thread_db* tdbb, record_param* rpb, jrd_tra* transaction)
case rel_pages:
case rel_formats:
case rel_trans:
case rel_rcon:
case rel_refc:
case rel_ccon:
case rel_msgs:
Expand Down Expand Up @@ -2309,6 +2308,22 @@ bool VIO_erase(thread_db* tdbb, record_param* rpb, jrd_tra* transaction)
DFW_post_work(transaction, dfw_grant, &desc, id);
break;

case rel_rcon:
protect_system_table_delupd(tdbb, relation, "DELETE");

// ensure relation partners is known
EVL_field(0, rpb->rpb_record, f_rcon_rname, &desc);
{
MetaName relation_name;
MOV_get_metaname(tdbb, &desc, relation_name);
r2 = MET_lookup_relation(tdbb, relation_name);
fb_assert(r2);

if (r2)
MET_scan_partners(tdbb, r2);
}
break;

case rel_backup_history:
if (!tdbb->getAttachment()->locksmith(tdbb, USE_NBACKUP_UTILITY))
protect_system_table_delupd(tdbb, relation, "DELETE", true);
Expand Down

0 comments on commit c1a02ae

Please sign in to comment.