postgresql-visibility-map · shipping · also PostgreSQL visibility map

Visibility map (PostgreSQL)

A PostgreSQL visibility map records all-visible and all-frozen status for each heap page in a separate relation fork.

Related Observatory article: Visibility map (PostgreSQL) on hesela.com

The all-visible bit supports skipping heap visibility checks during index-only scans. The all-frozen bit records that the page needs no further freezing until it changes. Indexes do not have their own visibility maps. [1] [2]

The map is conservative: a clear bit does not establish that the corresponding property is false. Ordinary data changes clear map bits, and vacuum establishes them. A tuple-header hint bit and the heap page's PD_ALL_VISIBLE flag are separate metadata, not alternative names for the map. [1] [2]

pg_visibility_map_summary counts marked pages from the map; it is not a comparison against every stored payload. Functions inspecting PD_ALL_VISIBLE also read heap pages. Choosing an inspection function therefore changes read coverage. Visibility metadata does not certify content integrity. [2]

Relations

related
Index-only scan (PostgreSQL), Hint bit, PostgreSQL TOAST, Checksum

Citations

  1. PostgreSQL 16: Visibility Map (accessed 2026-10-21)
  2. PostgreSQL 16: pg_visibility functions and page-level visibility (accessed 2026-10-21)
Sources & caveats
  • Describes PostgreSQL 16 visibility metadata. A count of marked pages is distinct from validation of the map or expected application content.

JSON: /data/terms/postgresql-visibility-map.json

Published by Hesela team · Updated

Report a correction · Editorial standards · Reuse guidance

Cite this page
Hesela team. Visibility map (PostgreSQL). Hesela. 2026-10-21. https://hesela.dev/terms/postgresql-visibility-map/