Blob Data Page - type 0x08

<< Index B-tree Page - type 0x07 | Firebird Internals | Generator Page - type 0x09 >>

TO DO

Blob Data Page - type 0x08

The C code representation of a blob data page is:

 struct blob_page
 {
     pag blp_header;
     SLONG blp_lead_page;
     SLONG blp_sequence;
     USHORT blp_length;
     USHORT blp_pad;
     SLONG blp_page[1];
 };

Blp_header: The blob page starts off with a standard page header.

Blp_lead_page: Four bytes, signed. Bytes 0x10 - 0x13. This field holds the page number for the first page for this blob.

Blp_sequence: Four bytes, signed. Bytes 0x14 - 0x17. The sequence number of this page within the page range for this blob.

Blp_length: Two bytes, unsigned. Bytes 0x18 and 0x19. The length of the blob data on this page, in bytes.

Blp_pad: Two bytes, unsigned. Bytes 0x1a and 0x1b. Not used for any data, used as padding.

Blp_page: This location in the page is at byte 0x1c. It has two purposes:

  • An array of four byte, signed page numbers representing all the pages in this blob; or
  • An array of bytes making up the blob data on this page.

If the flag byte in the standard page header (pag_flags) is set to 1, this blob page contains no data but acts as a pointer page to all the other blob pages for this particular blob.

back to top of page
<< Index B-tree Page - type 0x07 | Firebird Internals | Generator Page - type 0x09 >>