# PostgreSQL 15 → 16 GUC diff

> Core configuration parameters added, removed, or changed in boot default between PostgreSQL 15 and 16.
---

> [!NOTE]
> **Fact.** The measured inventory changes from 355 to 364 settings: 14 added, 2 boot-default changes, and 5 removed.

## Added parameters {#added}

| Parameter | Type | Context | Boot default | Category |
| --- | --- | --- | --- | --- |
| [`createrole_self_grant`](/parameters/createrole-self-grant/) | `string` | `user` | `""` (empty string) | Client Connection Defaults / Statement Behavior |
| [`debug_io_direct`](/parameters/debug-io-direct/) | `string` | `postmaster` | `""` (empty string) | Developer Options |
| [`debug_logical_replication_streaming`](/parameters/debug-logical-replication-streaming/) | `enum` | `user` | `buffered` | Developer Options |
| [`debug_parallel_query`](/parameters/debug-parallel-query/) | `enum` | `user` | `off` | Developer Options |
| [`enable_presorted_aggregate`](/parameters/enable-presorted-aggregate/) | `bool` | `user` | `on` | Query Tuning / Planner Method Configuration |
| [`file_extend_method`](/parameters/file-extend-method/) | `enum` | `sighup` | `posix_fallocate` | Resource Usage / Disk |
| [`gss_accept_delegation`](/parameters/gss-accept-delegation/) | `bool` | `sighup` | `off` | Connections and Authentication / Authentication |
| [`icu_validation_level`](/parameters/icu-validation-level/) | `enum` | `user` | `warning` | Client Connection Defaults / Locale and Formatting |
| [`max_parallel_apply_workers_per_subscription`](/parameters/max-parallel-apply-workers-per-subscription/) | `integer` | `sighup` | `2` | Replication / Subscribers |
| [`reserved_connections`](/parameters/reserved-connections/) | `integer` | `postmaster` | `0` | Connections and Authentication / Connection Settings |
| [`scram_iterations`](/parameters/scram-iterations/) | `integer` | `user` | `4096` | Connections and Authentication / Authentication |
| [`send_abort_for_crash`](/parameters/send-abort-for-crash/) | `bool` | `sighup` | `off` | Developer Options |
| [`send_abort_for_kill`](/parameters/send-abort-for-kill/) | `bool` | `sighup` | `off` | Developer Options |
| [`vacuum_buffer_usage_limit`](/parameters/vacuum-buffer-usage-limit/) | `integer` | `user` | `256 kB` (256 KiB) | Resource Usage / Memory |
{.full-width}

## Boot-default changes {#default-changes}

| Parameter | PG15 | PG16 | Category |
| --- | --- | --- | --- |
| [`server_version`](/parameters/server-version/) | `15.19 (Debian 15.19-1.pgdg13+2)` | `16.15 (Debian 16.15-1.pgdg13+2)` | Preset Options |
| [`server_version_num`](/parameters/server-version-num/) | `150019` | `160015` | Preset Options |
{.full-width}

## Removed parameters {#removed}

| Parameter | Last type | Context | Last boot default | Category |
| --- | --- | --- | --- | --- |
| [`force_parallel_mode`](/parameters/force-parallel-mode/) | `enum` | `user` | `off` | Developer Options |
| [`lc_collate`](/parameters/lc-collate/) | `string` | `internal` | `C` | Preset Options |
| [`lc_ctype`](/parameters/lc-ctype/) | `string` | `internal` | `C` | Preset Options |
| [`promote_trigger_file`](/parameters/promote-trigger-file/) | `string` | `sighup` | `""` (empty string) | Replication / Standby Servers |
| [`vacuum_defer_cleanup_age`](/parameters/vacuum-defer-cleanup-age/) | `integer` | `sighup` | `0` | Replication / Primary Server |
{.full-width}

## Method {#method}

The three lists compare the pinned PG15 and PG16 `pg_settings` snapshots directly. A default change is a change in the `boot_val` plus `unit` pair; `setting` is excluded so an `initdb`-generated value is not mistaken for the compiled boot default.

- [Machine-readable diff data](/data/diffs.json)
- [Complete GUC JSONL](/data/guc.jsonl)
