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">§</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">§</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">§</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">§</ulink>
<ulink url="&commit_baseurl;81eaaa2c4">§</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">§</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">§</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">§</ulink>
<ulink url="&commit_baseurl;7054186c4">§</ulink>
<ulink url="&commit_baseurl;87ce27de6">§</ulink>
<ulink url="&commit_baseurl;6252b1eaf">§</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