Home Explore Blog CI



postgresql

13th chunk of `doc/src/sgml/release-18.sgml`
dfa84bec9c0077287990ad31bbcdaa5b50558e77ecad0de20000000100000fa4

2025-02-05 [306dc520b] Introduce autovacuum_vacuum_max_threshold.
-->

<listitem>
<para>
Allow specification of the fixed number of dead tuples that will trigger an autovacuum (Nathan Bossart, Frédéric Yhuel)
<ulink url="&commit_baseurl;306dc520b">&sect;</ulink>
</para>

<para>
The server variable is autovacuum_vacuum_max_threshold.  Percentages are still used for triggering.
</para>
</listitem>

<!--
Author: Andres Freund <andres@anarazel.de>
2025-03-24 [adb5f85fa] Redefine max_files_per_process to control additionally o
-->

<listitem>
<para>
Change server variable max_files_per_process to limit only files opened by a backend (Andres Freund)
<ulink url="&commit_baseurl;adb5f85fa">&sect;</ulink>
</para>

<para>
Previously files opened by the postmaster were also counted toward this limit.
</para>
</listitem>

<!--
Author: Nathan Bossart <nathan@postgresql.org>
2024-07-26 [0dcaea569] Introduce num_os_semaphores GUC.
-->

<listitem>
<para>
Add server variable num_os_semaphores to report the required number of semaphores (Nathan Bossart)
<ulink url="&commit_baseurl;0dcaea569">&sect;</ulink>
</para>

<para>
This is useful for operating system configuration.
</para>
</listitem>

<!--
Author: Peter Eisentraut <peter@eisentraut.org>
2025-03-19 [4f7f7b037] extension_control_path
Author: Peter Eisentraut <peter@eisentraut.org>
2025-05-02 [81eaaa2c4] Make "directory" setting work with extension_control_pat
-->

<listitem>
<para>
Add server variable extension_control_path to specify the location of extension control files (Peter Eisentraut, Matheus Alcantara)
<ulink url="&commit_baseurl;4f7f7b037">&sect;</ulink>
<ulink url="&commit_baseurl;81eaaa2c4">&sect;</ulink>
</para>
</listitem>

    </itemizedlist>

    </sect4>

    <sect4 id="release-18-replication">
     <title>Streaming Replication and Recovery</title>

     <itemizedlist>

<!--
Author: Amit Kapila <akapila@postgresql.org>
2025-02-19 [ac0e33136] Invalidate inactive replication slots.
-->

<listitem>
<para>
Allow inactive replication slots to be automatically invalided using server variable idle_replication_slot_timeout (Nisha Moond, Bharath Rupireddy)
<ulink url="&commit_baseurl;ac0e33136">&sect;</ulink>
</para>
</listitem>

<!--
Author: Masahiko Sawada <msawada@postgresql.org>
2025-03-21 [04ff636cb] Add GUC option to control maximum active replication ori
-->

<listitem>
<para>
Add server variable max_active_replication_origins to control the maximum active replication origins (Euler Taveira)
<ulink url="&commit_baseurl;04ff636cb">&sect;</ulink>
</para>

<para>
This was previously controlled by max_replication_slots, but this new setting allows a higher origin count in cases where fewer slots are required.
</para>
</listitem>

     </itemizedlist>

    </sect4>

    <sect4 id="release-18-logical">
     <title><link linkend="logical-replication">Logical Replication</link></title>

     <itemizedlist>

<!--
Author: Amit Kapila <akapila@postgresql.org>
2024-10-30 [745217a05] Replicate generated columns when specified in the column
Author: Amit Kapila <akapila@postgresql.org>
2024-11-07 [7054186c4] Replicate generated columns when 'publish_generated_colu
Author: Amit Kapila <akapila@postgresql.org>
2024-12-04 [87ce27de6] Ensure stored generated columns must be published when r
Author: Amit Kapila <akapila@postgresql.org>
2025-01-30 [6252b1eaf] Doc: Generated column replication.
-->

<listitem>
<para>
Allow the values of generated columns to be logically replicated (Shubham Khanna, Vignesh C, Zhijie Hou, Shlok Kyal, Peter Smith)
<ulink url="&commit_baseurl;745217a05">&sect;</ulink>
<ulink url="&commit_baseurl;7054186c4">&sect;</ulink>
<ulink url="&commit_baseurl;87ce27de6">&sect;</ulink>
<ulink url="&commit_baseurl;6252b1eaf">&sect;</ulink>
</para>

<para>
If the publication specifies a column list, all specified columns, generated and non-generated, are published.  Without a specified column list, publication option publish_generated_columns
controls whether generated columns are

Title: PostgreSQL 18: Server Variables, Replication, and Logical Replication Enhancements
Summary
This section covers updates in PostgreSQL 18 relating to server variables, replication, and logical replication. It details the addition of num_os_semaphores to report the required number of semaphores, and extension_control_path to specify the location of extension control files. For replication, inactive replication slots can be automatically invalidated using idle_replication_slot_timeout, and max_active_replication_origins is introduced to control the maximum active replication origins. Finally, logical replication now supports replicating the values of generated columns.