mirror of
https://github.com/FirebirdSQL/firebird.git
synced 2025-01-25 00:03:03 +01:00
Fixed GBAK -kill dropping existing shadow.
This commit is contained in:
parent
8121bf4de9
commit
e296380ddf
@ -1373,21 +1373,23 @@ void VIO_erase(thread_db* tdbb, record_param* rpb, jrd_tra* transaction)
|
|||||||
{
|
{
|
||||||
const bool name_defined =
|
const bool name_defined =
|
||||||
EVL_field(0, rpb->rpb_record, f_file_name, &desc);
|
EVL_field(0, rpb->rpb_record, f_file_name, &desc);
|
||||||
USHORT rel_flags;
|
USHORT file_flags =
|
||||||
if (EVL_field(0, rpb->rpb_record, f_file_flags, &desc2) &&
|
EVL_field(0, rpb->rpb_record, f_file_flags, &desc2) ?
|
||||||
((rel_flags = MOV_get_long(&desc2, 0)) & FILE_difference))
|
MOV_get_long(&desc2, 0) : 0;
|
||||||
|
if (file_flags & FILE_difference)
|
||||||
{
|
{
|
||||||
if (rel_flags & FILE_backing_up)
|
if (file_flags & FILE_backing_up)
|
||||||
DFW_post_work(transaction, dfw_end_backup, &desc, 0);
|
DFW_post_work(transaction, dfw_end_backup, &desc, 0);
|
||||||
if (name_defined)
|
if (name_defined)
|
||||||
DFW_post_work(transaction, dfw_delete_difference, &desc, 0);
|
DFW_post_work(transaction, dfw_delete_difference, &desc, 0);
|
||||||
}
|
}
|
||||||
else
|
else if (EVL_field(0, rpb->rpb_record, f_file_shad_num, &desc2) &&
|
||||||
if (EVL_field(0, rpb->rpb_record, f_file_shad_num, &desc2) &&
|
(id = MOV_get_long(&desc2, 0)))
|
||||||
(id = MOV_get_long(&desc2, 0)))
|
{
|
||||||
{
|
if (!(file_flags & FILE_inactive)) {
|
||||||
DFW_post_work(transaction, dfw_delete_shadow, &desc, id);
|
DFW_post_work(transaction, dfw_delete_shadow, &desc, id);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user