# PostgreSQL 11 → 12 GUC diff

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

> [!NOTE]
> **Fact.** The measured inventory changes from 292 to 317 settings: 26 added, 6 boot-default changes, and 1 removed.

## Added parameters {#added}

| Parameter | Type | Context | Boot default | Category |
| --- | --- | --- | --- | --- |
| [`archive_cleanup_command`](/parameters/archive-cleanup-command/) | `string` | `sighup` | `""` (empty string) | Write-Ahead Log / Archive Recovery |
| [`default_table_access_method`](/parameters/default-table-access-method/) | `string` | `user` | `heap` | Client Connection Defaults / Statement Behavior |
| [`log_transaction_sample_rate`](/parameters/log-transaction-sample-rate/) | `real` | `superuser` | `0` | Reporting and Logging / When to Log |
| [`plan_cache_mode`](/parameters/plan-cache-mode/) | `enum` | `user` | `auto` | Query Tuning / Other Planner Options |
| [`primary_conninfo`](/parameters/primary-conninfo/) | `string` | `postmaster` | `""` (empty string) | Replication / Standby Servers |
| [`primary_slot_name`](/parameters/primary-slot-name/) | `string` | `postmaster` | `""` (empty string) | Replication / Standby Servers |
| [`promote_trigger_file`](/parameters/promote-trigger-file/) | `string` | `sighup` | `""` (empty string) | Replication / Standby Servers |
| [`recovery_end_command`](/parameters/recovery-end-command/) | `string` | `sighup` | `""` (empty string) | Write-Ahead Log / Archive Recovery |
| [`recovery_min_apply_delay`](/parameters/recovery-min-apply-delay/) | `integer` | `sighup` | `0 ms` | Replication / Standby Servers |
| [`recovery_target`](/parameters/recovery-target/) | `string` | `postmaster` | `""` (empty string) | Write-Ahead Log / Recovery Target |
| [`recovery_target_action`](/parameters/recovery-target-action/) | `enum` | `postmaster` | `pause` | Write-Ahead Log / Recovery Target |
| [`recovery_target_inclusive`](/parameters/recovery-target-inclusive/) | `bool` | `postmaster` | `on` | Write-Ahead Log / Recovery Target |
| [`recovery_target_lsn`](/parameters/recovery-target-lsn/) | `string` | `postmaster` | `""` (empty string) | Write-Ahead Log / Recovery Target |
| [`recovery_target_name`](/parameters/recovery-target-name/) | `string` | `postmaster` | `""` (empty string) | Write-Ahead Log / Recovery Target |
| [`recovery_target_time`](/parameters/recovery-target-time/) | `string` | `postmaster` | `""` (empty string) | Write-Ahead Log / Recovery Target |
| [`recovery_target_timeline`](/parameters/recovery-target-timeline/) | `string` | `postmaster` | `latest` | Write-Ahead Log / Recovery Target |
| [`recovery_target_xid`](/parameters/recovery-target-xid/) | `string` | `postmaster` | `""` (empty string) | Write-Ahead Log / Recovery Target |
| [`restore_command`](/parameters/restore-command/) | `string` | `postmaster` | `""` (empty string) | Write-Ahead Log / Archive Recovery |
| [`restrict_nonsystem_relation_kind`](/parameters/restrict-nonsystem-relation-kind/) | `string` | `user` | `""` (empty string) | Client Connection Defaults / Statement Behavior |
| [`shared_memory_type`](/parameters/shared-memory-type/) | `enum` | `postmaster` | `mmap` | Resource Usage / Memory |
| [`ssl_library`](/parameters/ssl-library/) | `string` | `internal` | `OpenSSL` | Preset Options |
| [`ssl_max_protocol_version`](/parameters/ssl-max-protocol-version/) | `enum` | `sighup` | `""` (empty string) | Connections and Authentication / SSL |
| [`ssl_min_protocol_version`](/parameters/ssl-min-protocol-version/) | `enum` | `sighup` | `TLSv1` | Connections and Authentication / SSL |
| [`tcp_user_timeout`](/parameters/tcp-user-timeout/) | `integer` | `user` | `0 ms` | Client Connection Defaults / Other Defaults |
| [`wal_init_zero`](/parameters/wal-init-zero/) | `bool` | `superuser` | `on` | Write-Ahead Log / Settings |
| [`wal_recycle`](/parameters/wal-recycle/) | `bool` | `superuser` | `on` | Write-Ahead Log / Settings |
{.full-width}

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

| Parameter | PG11 | PG12 | Category |
| --- | --- | --- | --- |
| [`autovacuum_vacuum_cost_delay`](/parameters/autovacuum-vacuum-cost-delay/) | `20 ms` | `2 ms` | Autovacuum |
| [`extra_float_digits`](/parameters/extra-float-digits/) | `0` | `1` | Client Connection Defaults / Locale and Formatting |
| [`jit`](/parameters/jit/) | `off` | `on` | Query Tuning / Other Planner Options |
| [`server_version`](/parameters/server-version/) | `11.22 (Debian 11.22-1.pgdg120+1)` | `12.22 (Debian 12.22-1.pgdg120+1)` | Preset Options |
| [`server_version_num`](/parameters/server-version-num/) | `110022` | `120022` | Preset Options |
| [`transaction_isolation`](/parameters/transaction-isolation/) | `default` | `read committed` | Client Connection Defaults / Statement Behavior |
{.full-width}

## Removed parameters {#removed}

| Parameter | Last type | Context | Last boot default | Category |
| --- | --- | --- | --- | --- |
| [`default_with_oids`](/parameters/default-with-oids/) | `bool` | `user` | `off` | Version and Platform Compatibility / Previous PostgreSQL Versions |
{.full-width}

## Method {#method}

The three lists compare the pinned PG11 and PG12 `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)
