Hi,
I do understand that this is not a NOT a user support forum, however I hope to 
find some support by being pointed out in a direction by you devs about the IB 
and FB file format.
I have an Interbase XE3 database with 'Blob not found' errors.I did retrieve 
the raw bytes of the original record on the data page (0x05), did a RLE-decode 
(https://firebirdsql.org/manual/fbint-page-5.html) and found out that the 
BlobId in that case is e.g.:
4C 01 00 00|EC F0 AF 00 

In which 4C 01 00 00 is the RDB$RELATION_ID (332 in decimal, verified) and EC 
F0 AF 00 the BlobId referencing the blob stored on the blob data page.The blobs 
from surrounding records, that can be found, are on the same page (page type 
0x0C, not a known type in FB, I know).
There's also a page type 0x0B that seems to be a pointer page for the different 
0x0C pages that can exist.
I did scan the 0x0C page and this page exists of:- a header- for each blob an 
offset (2 bytes) and a length (2 bytes) reference at the upper part of the 
page- the real blob data and the bottom part of the page.
I do understand the inner working of the 0x0C page, but can you help me out how 
to get from the BlobId (e.g. EC F0 AF 00) to the correct (0x0C) page?I guess FB 
uses some mechanism that works the same.
I did check the https://firebirdsql.org/manual/fbint-page-8.html (also an other 
blob data page, a type used by FB) but that seems unfinished to me, 

Kind regards,Bert


  
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel

Reply via email to