# 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 52-55</span><span><a href="https://github.com/nori-shinoda/documents/blob/1773200c5362476c4a549222b7d17fa91f546cae/postgresql15_ga_new_features_en_20221014-1.pdf">Original PDF on GitHub</a></span></div>

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

In PostgreSQL 15 the following parameters have been changed.

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

The following parameters have been added.

**Table 17.** Added parameters

| Parameter name | Description (context) | Default value |
| --- | --- | --- |
| allow_in_place_tablespaces | Developer parameters to create a tablespace in the pg_tblspc directory (superuser) | off |
| archive_library | WAL archive library name (sighup) | - |
| log_startup_progress_interval | Time before startup process outputs log if the long-running process occurs (sighup) | 10s |
| recovery_prefetch | Whether WAL prefetching is performed during recovery (sighup) | try |
| recursive_worktable_factor | Multiplier to determine work table size for recursive queries (user) | 10 |
| shared_memory_size | The calculated size of main shared memory (internal) | - |
| shared_memory_size_in_huge_pages | Number of Huge Pages pages used for shared memory (internal) | - |
| stats_fetch_consistency | Determines the behavior when cumulative statistics are accessed multiple times (user) | cache |
| wal_decode_buffer_size | Buffer size for WAL decoding (postmaster) | 512kB |

##### allow_in_place_tablespaces {#pg15-p52-allow-in-place-tablespaces}

Tablespaces can be created in a database cluster by setting this parameter to on and specifying an empty string ('') in the LOCATION clause of the CREATE TABLESPACE statement.

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

**Example 64.** Create In place tablespace

```text
postgres=# SET allow_in_place_tablespaces = on ;
SET
postgres=# CREATE TABLESPACE ts1 LOCATION '' ;
CREATE TABLESPACE
postgres=# \! ls -l data/pg_tblspc/
total 0
drwx------. 3 postgres 29 Oct 14 14:16 17153
```

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

The following parameters have been changed in terms of setting range and choices.

**Table 18.** Modified Parameters

| Parameter name | Changes |
| --- | --- |
| compute_query_id | Regress can now be specified as a configuration value. This is used to facilitate regression testing. |
| dynamic_shared_memory_type The default value on Solaris has changed to "sysv". | dynamic_shared_memory_type The default value on Solaris has changed to "sysv". |
| log_destination | Jsonlog can now be specified as a configuration value to output logs in JSON format. This change will also be backported to PostgreSQL 14.3 and later. |
| wal_compression | Pglz, lz4, and zstd compression methods can now be specified. The configuration value on is assumed to be pglz. |
| shared_preload_libraries | Now also processed in single user mode. |

##### JSON format log file {#pg15-p53-json-format-log-file}

If jsonlog is specified for the parameter log_destination, the log file will be output in JSON format. The file extension is .json. A file with a .log extension is also created that outputs only some information.

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

**Example 65.** JSON format log file

```text
postgres=> SHOW log_destination ;
 log_destination
-----------------
 jsonlog
(1 row)
postgres=> \! cat postgresql-2022-10-14_141810.json
"timestamp":"2022-10-14
14:18:10.657
JST","pid":14876,"session_id":"6348f112.3a1c","line_num":1,"session_start":"20
22-10-14 14:18:10 JST","txid":0,"error_severity":"LOG","message":"ending log
output to stderr","hint":"Future log output will go to log destination
\"jsonlog\".","backend_type":"postmaster","query_id":0}
{"timestamp":"2022-10-14
14:18:10.657
JST","pid":14876,"session_id":"6348f112.3a1c","line_num":2,"session_start":"20
22-10-14
14:18:10
JST","txid":0,"error_severity":"LOG","message":"starting
PostgreSQL 15.0 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 8.5.0 20210514
(Red Hat 8.5.0-10), 64-bit","backend_type":"postmaster","query_id":0}
```

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

The following parameters have changed default values.

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

| Parametername | PostgreSQL14 | PostgreSQL15 | Note |
| --- | --- | --- | --- |
| hash_mem_multiplier | 1.0 | 2.0 |  |
| log_autovacuum_min_durationlog_checkpoints | -1 | 10min |  |
|  | off | on |  |
| server_version | 14.5 | 15.0 |  |
| server_version_num | 140005 | 150000 |  |

#### 3.3.4 Removed parameter {#pg15-3-3-4-removed-parameter}

The following parameter have been removed.

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

**Table 20.** Removed parameter

| Parameter name | Reason |
| --- | --- |
| stats_temp_directory | It was removed due to the shared memory of statistics. |

#### 3.3.5 Error when changing parameters {#pg15-3-3-5-error-when-changing-parameters}

Some extension modules (auto_explain, pg_prewarm, pg_stat_statements, plperl, plpgsql) now generate errors when attempting to set parameters that do not exist after loading the module.

**Example 66.** Output error

```text
postgres=> CREATE FUNCTION getwork() RETURNS TEXT AS $$
BEGIN
  RETURN current_setting('work_mem') ;
END ;
$$ LANGUAGE plpgsql ;
CREATE FUNCTION
postgres=> SET plpgsql.bad_parameter_name TO false ;
ERROR:  invalid configuration parameter name "plpgsql.bad_parameter_name"
DETAIL:  "plpgsql" is a reserved prefix.
```
