It seems I found answers on some quiestion (if anyone else interested):

--- In [email protected], "vklimov45" <vklimov45@...> wrote:
> 1. dtype_varying defined in fields.h with length, including 2 bytes with 
> length? From tests it seems exact data length 253 if there defined 255.

Yes, confirmed by some Firebird documents.

> 2. I got relations defs from relations.h for RDB$RELATIONS, but it fails to 
> extract properly from ODS 11 table (it seems there additional 4 bytes 
> something somewhere after first 3 blobs), but there is no ods11 defs (or at 
> least I was unable to find, if exists - where?) in sources. Is there really 
> additional field (where to search) or something different in ODS 11 with 
> extraction?
> 3. Some tables (at least 1) in ods 10 DB have no nullbits mask, and another 
> have this mask shifted at some point (first several fields have proper 
> relation to mask and near and mask bits related to fields as [f_no - 1]). 
> Isn't size of this mask exactly 4 bytes per every 32 fields? If not - is it 
> somewhere stored?

Null mask is 4 bytes per every 32 or less fields. Just some fields occupied 
empty spaces (probably deleted fields). ODS 11 blobs it seems aligned by 8 
bytes (anything else?) even if remains 4 bytes aligned in jrd/align.h for 
Firebird 3.0 snapshot. At least it works with such alignment.

> 4. I can't find in sources how to understand relation 8 (RDB$FORMATS) blobs 
> by RDB$DESCRIPTOR data. How to decode those bytes? Is it related to some file 
> in sources? Is this structure where rhd_format related?

Still have no idea what is it and how to use it, but I was able to avoid it for 
now.

Made simple tool to view database structure (tested with several Firebird db 
ODS v. 10 - 11 (Firebird 1.5 - 2.5)), if someone would like to use it - 
uploaded to http://wintarif.narod.ru/Download/Products/FbViewer.zip (picture at 
http://wintarif.narod.ru/products.htm but codepage win-1251).

Reply via email to