For this example, I used Borland's TDUMP again, as I did for the earlier chapter on Record Format. This is what a page looked like:
Address Values in Hexadecimal
Values in ASCII
Let's skip past the first 38 bytes, which are Fil Header. The
bytes of the Page Header start at location
There are 5 directory slots.
There are 18 (hexadecimal 12) records in the page.
There are zero free (deleted) records.
There are zero bytes in deleted records.
The last record was inserted at location
A glance at page0page.h will tell you that 2 is the
#defined value for
The last 15 (hexadecimal 0F) inserts were all done "to the right" because I was inserting in ascending order.
There are 16 (hexadecimal 10) user records. Notice
Zero because this is a leaf page.
This is index number 20.
Immediately after the page header are the infimum and supremum records. Looking at the "Values In ASCII" column in the hexadecimal dump, you will see that the contents are in fact the words "infimum" and "supremum" respectively.
Skipping past the User Records and the Free Space, many bytes later, is the end of the 16KB page. The values shown there are the two trailers.
The first trailer (
00 74, 02 47, 01 AA, 01 0A, 00 65) is the page directory. It has 5 entries, because the header field
PAGE_N_DIR_SLOTSsays there are 5.
The next trailer (
3A E0 AA 71, 00 00 E2 64) is the fil trailer. Notice that the last four bytes,
00 00 E2 64, appeared before in the fil header.