I have (maybe silly) question about NULL mask. I write a Delphi program 
(for my study) related to Firebird 2.1.3 ODS.
After examining Firebird internals and some posts on firebird-devel, 
i've done some tests. I have a table named TEST with two fields
TEST1 char(10) and
TEST2 char(10).
I've inserted following data into table TEST:
('abc', 'def')
('aaaAAA', NULL)
(NULL, NULL).

On the bottom of the Data page, there are following hex values:
...
000A4FA0 | 00 00 00 00 00 00 00 00 00 00 00 00 80 01 00 00 | 
............€...
000A4FB0 | 00 00 00 00 00 00 00 00 01 01 FF E9 00 00 00 00 | 
..........ÿé....
000A4FC0 | 00 00 00 00 48 01 00 00 00 00 00 00 00 00 00 00 | 
....H...........
000A4FD0 | 01 01 FE FD 00 FD 61 FD 41 FC 20 F6 00 00 00 00 | ..þý.ýaýAü 
ö....
000A4FE0 | 41 01 00 00 00 00 00 00 00 00 00 00 01 01 FC FD | 
A.............üý
000A4FF0 | 00 03 61 62 63 F9 20 03 64 65 66 F9 20 00 00 00 | ..abcù 
.defù ...

First record NULL mask:
01 FC FD 00 (FC 00 00 00) - OK,
Second record NULL mask:
01 FE FD 00 (FE 00 00 00) - OK
Third record NULL mask:
01 FF E9 00 -??? - this part I do not understand.

If I understand correctly, there is E9 (23) bytes with zeros in NULL 
mask? NULL nask should occupy 4 or 8 or 12 etc bytes. What am I missing?

Thanks in advance and sorry for my English.
Boris.

------------------------------------------------------------------------------
Benefiting from Server Virtualization: Beyond Initial Workload 
Consolidation -- Increasing the use of server virtualization is a top
priority.Virtualization can reduce costs, simplify management, and improve 
application availability and disaster protection. Learn more about boosting 
the value of server virtualization. http://p.sf.net/sfu/vmware-sfdev2dev
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel

Reply via email to