# Configuration Parameters

> Added, modified, removed, and default-value changes for configuration parameters.

---

LLMS index: [llms.txt](/en/llms.txt)

---

<div class="feature-source-note"><span class="feature-edition-badge">GA</span><span><strong>Source pages:</strong> PDF 77-81</span><span><a href="https://github.com/nori-shinoda/documents/blob/1773200c5362476c4a549222b7d17fa91f546cae/postgresql17_ga_new_features_en_20240930-1.pdf">Original PDF on GitHub</a></span></div>

<p class="feature-page-marker" id="pgfeat-17-configuration-pdf-page-77">PDF page 77</p>

In PostgreSQL 17, the following parameters have been changed.

#### 3.3.1 Added parameters {#pg17-3-3-1-added-parameters}

The following parameters have been added. [[7750fef](https://git.postgresql.org/gitweb/?p=postgresql.git;a=commit;h=7750fefdb2b81e0ee09c523d0a21cbd37edaf4b2), [a14354c](https://git.postgresql.org/gitweb/?p=postgresql.git;a=commit;h=a14354cac0e32d5e169c1ea4225845f93922d483) ,[2cdf131](https://git.postgresql.org/gitweb/?p=postgresql.git;a=commit;h=2cdf131c46e631addfc386f6106e52a1b8cc3a70), [174c480](https://git.postgresql.org/gitweb/?p=postgresql.git;a=commit;h=174c480508ac25568561443e6d4a82d5c1103487), [0452b46](https://git.postgresql.org/gitweb/?p=postgresql.git;a=commit;h=0452b461bc405e6d35d8a14c02813c15e28ae516), [51efe38](https://git.postgresql.org/gitweb/?p=postgresql.git;a=commit;h=51efe38cb92f4b15b68811bcce9ab878fbc71ea5), [53c2a97](https://git.postgresql.org/gitweb/?p=postgresql.git;a=commit;h=53c2a97a92665be6bd7d70bd62ae6158fe4db96e), [bf279dd](https://git.postgresql.org/gitweb/?p=postgresql.git;a=commit;h=bf279ddd1c28ce0251446ee90043a4cb96e5db0f), [d3ae2a2](https://git.postgresql.org/gitweb/?p=postgresql.git;a=commit;h=d3ae2a24f265a028f4b9e8df79ea7b075c6cf016), [210622c](https://git.postgresql.org/gitweb/?p=postgresql.git;a=commit;h=210622c60e1a9db2e2730140b8106ab57d259d15), [705843d](https://git.postgresql.org/gitweb/?p=postgresql.git;a=commit;h=705843d294d5d3bc5cce4001596df4df5f1c8b59)]

**Table 30.** Added parameters

| Parameter name | Description (context) | Default value |
| --- | --- | --- |
| allow_alter_system | Allow execution of ALTER SYSTEM statement (sighup) | on |
| commit_timestamp_buffers | Commit timestamp cache size (postmaster) | 0 (auto) |
| enable_group_by_reordering | GROUP BY replacement optimization (user) | on |
| event_triggers | Enable event triggers (superuser) | on |
| huge_pages_status | Indicate whether Huge Pages are being used (internal) | - |
| io_combine_limit | Maximum number of Raad/Write blocks (user) | 128kB |
| max_notify_queue_pages | Maximum number of pages allocated to NOTIFY/LISTEN queue (postmaster) | 1048576 |
| multixact_member_buffers | Member cache size for multi-transaction (postmaster) | 32 |
| multixact_offset_buffers | Multi-transaction offset cache size (postmaster) | 16 |
| notify_buffers | LISTEN/NOTIFY message cache size (postmaster) | 16 |
| restrict_nonsystem_relation_kind | The type of non-system relation to restrict use (user) |  |
| serializable_buffers | Serializable transaction cache size (postmaster) | 32 |
| synchronized_standby_slots | Replication slot name for standby database (sighup) | '' |
| subtransaction_buffers | Size of sub-transaction cache (postmaster) | 0 (auto) |
| summarize_wal | Output WAL summary (sighup) | off |
| sync_replication_slots | Whether replication slots are synchronized (sighup) | off |
| trace_connection_negotiation | Obtain SSL negotiation trace (postmaster) | off |
| transaction_buffers | Transaction status cache size (postmaster) | 0 (auto) |
| transaction_timeout | Transaction execution timeout (user) | 0 |
| wal_summary_keep_time | WAL summary retention duration (sighup) | 10d |

<p class="feature-page-marker" id="pgfeat-17-configuration-pdf-page-78">PDF page 78</p>

The restrict_nonsystem_relation_kind will be backported to older versions of PostgreSQL that are supported from PostgreSQL 12 onwards.

##### Allow_alter_system {#pg17-p78-allow-alter-system}

This parameter determines whether the ALTER SYSTEM statement is allowed to be executed. The default value is 'on', which allows the ALTER SYSTEM statement to be executed. This parameter itself cannot be changed by the ALTER SYSTEM statement.

<p class="feature-page-marker" id="pgfeat-17-configuration-pdf-page-79">PDF page 79</p>

**Example 84.** Permission to execute ALTER SYSTEM statement

```text
postgres=# SHOW allow_alter_system ;
-[ RECORD 1 ]------+----
allow_alter_system | off
postgres=# ALTER SYSTEM SET work_mem='16MB' ;
ERROR:  ALTER SYSTEM is not allowed in this environment
postgres=# SELECT pg_reload_conf() ;
-[ RECORD 1 ]--+--
pg_reload_conf | t
postgres=# SHOW allow_alter_system ;
-[ RECORD 1 ]------+---
allow_alter_system | on
postgres=# ALTER SYSTEM SET allow_alter_system = off ;
ERROR:  parameter "allow_alter_system" cannot be changed
```

##### Huge_pages_status {#pg17-p79-huge-pages-status}

If the parameter huge_pages has the default value (try), no log output will be generated even if the acquisition of Huge Pages fails. The parameter huge_pages_status can be checked to see if the cluster is using Huge Pages.

**Table 31.** Possible values

| Value | Description | Note |
| --- | --- | --- |
| on | Using Huge Pages |  |
| off | Not using Huge Pages |  |
| unknown Unknown | unknown Unknown | Only shown in special cases |

##### Transaction_timeout {#pg17-p79-transaction-timeout}

Specify the maximum transaction execution time in milliseconds. If a timeout occurs, the session is forcibly disconnected. The default value is 0, which means no timeout will occur.

<p class="feature-page-marker" id="pgfeat-17-configuration-pdf-page-80">PDF page 80</p>

**Example 85.** Transaction timeout

```text
postgres=> SET transaction_timeout = '10s' ;
SET
postgres=> BEGIN ;
BEGIN
postgres=*> SELECT pg_sleep(10) ;
FATAL:  terminating connection due to transaction timeout
server closed the connection unexpectedly
        This probably means the server terminated abnormally
        before or while processing the request.
The connection to the server was lost. Attempting reset: Succeeded.
```

#### 3.3.2 Modified Parameters {#pg17-3-3-2-modified-parameters}

The following parameters have been changed in terms of setting range and choices. [[d0c2860](https://git.postgresql.org/gitweb/?p=postgresql.git;a=commit;h=d0c28601efaa8b04f11a19506f3371bba8438acc), [e48b19c](https://git.postgresql.org/gitweb/?p=postgresql.git;a=commit;h=e48b19c5db3185e1868391176fc040df08a149fb), [7c3fb50](https://git.postgresql.org/gitweb/?p=postgresql.git;a=commit;h=7c3fb505b14e86581b6a052075a294c78c91b123)]

**Table 32.** Modified Parameters

| Parameter name | Changes |
| --- | --- |
| wal_sync_method | The configuration value fsync_writethrough is no longer available in Microsoft Windows environments. |
| log_connections | Information on trust connections is now output. |
| log_replication_commands | Replication slot addition information is now output. |
| maintenance_work_mem | The minimum has been changed from 1MB to 64kB. |

#### 3.3.3 Parameters with default values changed {#pg17-3-3-3-parameters-with-default-values-changed}

The following parameters have changed default values. [[98f320e](https://git.postgresql.org/gitweb/?p=postgresql.git;a=commit;h=98f320eb2ef05072b6fe67fcdcdc26c226e6cea4)]

**Table 33.** Parameters with default values changed

| Parameter name | PostgreSQL 15 | PostgreSQL 16 | Note |
| --- | --- | --- | --- |
| server_version | 16.4 | 17.0 |  |
| server_version_num | 160004 | 170000 |  |
| vacuum_buffer_usage_limit 256kB | vacuum_buffer_usage_limit 256kB | 2MB |  |

<p class="feature-page-marker" id="pgfeat-17-configuration-pdf-page-81">PDF page 81</p>

#### 3.3.4 Removed parameters {#pg17-3-3-4-removed-parameters}

The following parameters have been removed. [[884eee5](https://git.postgresql.org/gitweb/?p=postgresql.git;a=commit;h=884eee5bfb5ab902413dc00ccee5b3e3f1c505d0), [f691f5b](https://git.postgresql.org/gitweb/?p=postgresql.git;a=commit;h=f691f5b80a85c66d715b4340ffabb503eb19393e), [c7a3e6b](https://git.postgresql.org/gitweb/?p=postgresql.git;a=commit;h=c7a3e6b46d38f880f42642df003796b9bf99c1a8)]

**Table 34.** Removed parameters

| db_user_namespace | It was removed because it was determined that there were few users. |
| --- | --- |
| old_snapshot_threshold | Removed due to accuracy and performance issues. It is a desirable feature, and improved implementations may be available in the future. |
| trace_recovery_messages | Removed because it can be replaced by pg_waldump command, etc. |

Parameter name Reason
