PostgreSQL's `default_table_access_method` GUC controls which storage engine new tables use when no `USING` clause is specified. Introduced alongside the table access method (TAM) API in PostgreSQL 12, it enables pluggable storage engines via ~45 callback functions registered in `pg_am`. While heap remains the only built-in AM, notable alternatives include Citus columnar (compressed column-oriented storage), OrioleDB (an undo-log engine aiming to eventually replace heap), and tde_heap from Percona's pg_tde for transparent data encryption. The parameter's practical value is as a deployment mechanism: setting it cluster-wide or per-database enforces a storage policy (e.g., encryption by default) without relying on per-table DDL discipline. Per-session use is also valid for bulk migration scripts. The TID-based tuple addressing constraint in the API has historically limited alternative AM adoption, but OrioleDB's shrinking patch set suggests the landscape may shift in coming releases.

4m read timeFrom postgr.es
Post cover image
Table of contents
The doorWhat’s actually behind the door
272 Impressions