<!-- doc/src/sgml/release-18.sgml -->
<!-- See header comment in release.sgml about typical markup -->
<sect1 id="release-18">
<title>Release 18</title>
<formalpara>
<title>Release date:</title>
<para>2025-??-??, CURRENT AS OF 2025-05-23</para>
</formalpara>
<sect2 id="release-18-highlights">
<title>Overview</title>
<para>
<productname>PostgreSQL</productname> 18 contains many new features
and enhancements, including:
</para>
<itemizedlist>
<listitem>
<para>
(to be completed)
</para>
</listitem>
</itemizedlist>
<para>
The above items and other new features of
<productname>PostgreSQL</productname> 18 are explained in more detail
in the sections below.
</para>
</sect2>
<sect2 id="release-18-migration">
<title>Migration to Version 18</title>
<para>
A dump/restore using <xref linkend="app-pg-dumpall"/> or use of
<xref linkend="pgupgrade"/> or logical replication is required for
those wishing to migrate data from any previous release. See <xref
linkend="upgrading"/> for general information on migrating to new
major releases.
</para>
<para>
Version 18 contains a number of changes that may affect compatibility
with previous releases. Observe the following incompatibilities:
</para>
<itemizedlist>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
2025-01-16 [d7674c9fa] Seek zone abbreviations in the IANA data before timezone
-->
<listitem>
<para>
Change time zone abbreviation handling (Tom Lane)
<ulink url="&commit_baseurl;d7674c9fa">§</ulink>
</para>
<para>
The system will now favor the current session's time zone abbreviations before checking the server variable timezone_abbreviations. Previously timezone_abbreviations was
checked first.
</para>
</listitem>
<!--
Author: Nathan Bossart <nathan@postgresql.org>
2024-12-02 [db6a4a985] Deprecate MD5 passwords.
-->
<listitem>
<para>
Deprecate MD5 password authentication (Nathan Bossart)
<ulink url="&commit_baseurl;db6a4a985">§</ulink>
</para>
<para>
Support for MD5 passwords will be removed in a future major version release. CREATE ROLE and ALTER ROLE now emit deprecation warnings when setting MD5 passwords.
These warnings can be disabled by setting the md5_password_warnings parameter to "off".
</para>
</listitem>
<!--
Author: David Rowley <drowley@postgresql.org>
2024-09-24 [62ddf7ee9] Add ONLY support for VACUUM and ANALYZE
-->
<listitem>
<para>
Change VACUUM and ANALYZE to process the inheritance children of a parent (Michael Harris)
<ulink url="&commit_baseurl;62ddf7ee9">§</ulink>
</para>
<para>
The previous behavior can be performed by using the new ONLY option.
</para>
</listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
2024-09-30 [770233748] Do not treat \. as an EOF marker in CSV mode for COPY IN
Author: Tom Lane <tgl@sss.pgh.pa.us>
2024-10-01 [da8a4c166] Reject a copy EOF marker that has data ahead of it on th
-->
<listitem>
<para>
Prevent COPY FROM from treating \. as an end-of-file marker when reading CSV files (Daniel Vérité, Tom Lane)
<ulink url="&commit_baseurl;770233748">§</ulink>
<ulink url="&commit_baseurl;da8a4c166">§</ulink>
</para>
<para>
psql will still treat \. as an end-of-file marker when reading CSV files from STDIN. Older psql clients connecting to Postgres 18 servers might experience \copy problems. This
release also enforces that \. must appear alone on a line.
</para>
</listitem>
<!--
Author: Michael Paquier <michael@paquier.xyz>
2024-10-03 [e2bab2d79] Remove support for unlogged on partitioned tables
-->
<listitem>
<para>
Disallow unlogged partitioned tables (Michael Paquier)
<ulink url="&commit_baseurl;e2bab2d79">§</ulink>
</para>
<para>
Previously ALTER TABLE SET [UN]LOGGED did nothing, and the creation of an unlogged partitioned table did not cause its children to be unlogged.
</para>
</listitem>
<!--
Author: Fujii Masao <fujii@postgresql.org>
2024-09-12 [fefa76f70] Remove