mirror of
https://github.com/FirebirdSQL/firebird.git
synced 2025-01-24 06:43:03 +01:00
When GFIX is invoked with -MEND option it marks blobs and records with
inconsistencies as damaged (rhd_damaged). When later GBAK is invoked with -IGNORE option it instructs the engine to skip such marked blobs and records to be able to create backup of the database. However, for damaged BLOBs the engine returns inconsistent statistics via isc_blob_info call making GBAK to fail defeating the purpose of GFIX -MEND. This problem is present in all Firebird versions. This patch corrects the above behavior, and makes the engine return damaged blobs to GBAK with -IGNORE option as consistent zero-length blobs permitting database backup to succeed.
This commit is contained in:
parent
6249fcf17e
commit
b9571d48ee
@ -1360,7 +1360,11 @@ blb* BLB_open2(thread_db* tdbb,
|
||||
if (blob->blb_flags & BLB_damaged) {
|
||||
if (!(dbb->dbb_flags & DBB_damaged))
|
||||
IBERROR(194); // msg 194 blob not found
|
||||
|
||||
blob->blb_flags |= BLB_eof;
|
||||
blob->blb_count = 0;
|
||||
blob->blb_max_segment = 0;
|
||||
blob->blb_length = 0;
|
||||
return blob;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user