{
  "slug": "hint-bit",
  "term": "Hint bit",
  "aliases": [
    "PostgreSQL hint bit",
    "tuple hint bits"
  ],
  "definition": "A PostgreSQL hint bit is a tuple-header flag caching transaction-status information used to determine row visibility.",
  "note": "Visibility checks can set hint bits and dirty a page during a read, without changing application row values. SetHintBits in REL_18_0 also checks persistence ordering before recording committed status. [pg-hint-code]\n\nwal_log_hints controls WAL protection for hint-only changes, not the use of hint bits. Data checksums require that protection regardless of the setting. [pg-settings]",
  "status": "shipping",
  "advantages": [],
  "limitations": [],
  "supersedes": [],
  "supersededBy": [],
  "firstSeen": null,
  "lastSeen": null,
  "related": [
    "full-page-write",
    "write-ahead-log",
    "database-checkpoint"
  ],
  "citations": [
    {
      "id": "pg-hint-code",
      "title": "PostgreSQL REL_18_0: heapam_visibility.c, SetHintBits and visibility checks",
      "url": "https://github.com/postgres/postgres/blob/REL_18_0/src/backend/access/heap/heapam_visibility.c",
      "accessed": "2026-10-16"
    },
    {
      "id": "pg-settings",
      "title": "PostgreSQL 18: WAL settings, hint logging and image compression",
      "url": "https://www.postgresql.org/docs/18/runtime-config-wal.html",
      "accessed": "2026-10-16"
    },
    {
      "id": "hesela-wal",
      "title": "Hesela: WAL page images, hint-bit changes and measurement boundaries",
      "url": "https://hesela.com/analyses/wal-checkpoints-torn-pages/#pg-page-images",
      "accessed": "2026-10-16"
    }
  ],
  "provenance": [
    "Scoped to PostgreSQL 18 documentation and the REL_18_0 implementation; no workload or power-loss experiment."
  ],
  "updated": "2026-10-16"
}
