[prev] 45 [next]

PostgreSQL Page Representation

Functions: src/backend/storage/page/*.c

Definitions: src/include/storage/bufpage.h

Each page is 8KB (default BLCKSZ) and contains:

  • header (free space pointers, flags, xact data)
  • array of (offset,length) pairs for tuples in page
  • free space region (between array and tuple data)
  • actual tuples themselves (inserted from end towards start)
  • (optionally) region for special data (e.g. index data)
Large data items are stored in separate (TOAST) files   (implicit)

Also supports ~SQL-standard BLOBs   (explicit large data items)