PostgreSQL 18 Released - What's New?
Written by Nikos Vaggalis   
Monday, 13 October 2025

PostgreSQL 18 was released on September 25, boosting a
many great features. If you check out the official release statement you'll find that there's a lot to digest, so we'll focus on just a few key features.




Of course, the top of the list is occupied by the asynchronous I/O (AIO) subsystem, which

can improve performance of sequential scans, bitmap heap scans, vacuums, and other operations.

In simple terms, reading (sequential and bitmap scans) will be done async and as such will be much faster than before,
since programs now can issue multiple read requests concurrently, without blocking and waiting. However, writes will remain synchronous for reasons of consistency.

For developers, allow CHECK and foreign key constraints to be specified as NOT ENFORCED

An FK is checked in instances when trying to delete rows from the parent table and there's rows in the child table referering to the parent table,  or when doing updates the referenced rows must be locked. In both cases performance takes a hit and
as well as rendering migrations a tough endeavor. But now with NOT ENFORCED you can create foreign keys which are not checked. The idea here is to use the FK for following the relations i.e from tools, but not enforcing it in order to avoid performance degradation.

Enhancements to the COPY command - REJECT_LIMIT.

The COPY command is the default utility that loads textual data as in CSV files into PostgreSQL tables. When the file contains type incompatibilities with the table's columns, errors would be fired and the rows in question are getting discarded. Now with the new clause, it becomes more fail safe as you can set a limit on the errors emitted that when crossed the full loading operation fails and everything is discarded, hence enforcing much better data quality and easing administrative pains.

uuidv7() SQL function.

PostgreSQL before version 18 was using UUID4. UUIDs are of course random strings which can be used as unique primary keys, and especially fit in distributed environments. However they were difficult to index since they're long random hexadedimal strings. UUID7 strings as specified in RFC 9652, begin with a time-based identifier with millisecond precision combining a Unix Epoch timestamp, followed with random bytes, to ensure uniqueness and sortability. Now since the first part is the timestamp, it means that timestamps that are close to each other are better clustered hence lead to better indexing.

OAuth 2.0 support

Now PostgreSQL becomes a resource server too, which can validate bearer tokens from external identity providers.
This means that you don't need to store passwords in the database anymore and instead let your users connect to it using your identity infrastructure. OAuth client support has to be enabled when PostgreSQL is built.

Of course, these are just a select few. There's many more goodies to check out. You'll find all of then on the official release delta page. Link below.

 

More Information

PostgreSQL 18 Release Notes

Related Articles

PostgreSQL Conferences In 2025

 

To be informed about new articles on I Programmer, sign up for our weekly newsletter, subscribe to the RSS feed and follow us on Twitter, Facebook or Linkedin.

Banner


Anthropic Says Claude Sonnet 4.5 Is World's Best Coding Model
06/10/2025

Anthropic has released Claude Sonnet 4.5, describing it as the best coding model in the world. Anthropic says this is the strongest model for building complex agents, the best model at using computers [ ... ]



Prevent The Next Log4Shell - A Call To Action
15/09/2025

Open Source Economy is a new nonprofit organization formed by maintainers of several critical Java libraries to build a safer, stronger Java ecosystem and avert incidents such as Log4Shell. What makes [ ... ]


More News

pico book

 

Comments




or email your comment to: comments@i-programmer.info

Last Updated ( Monday, 13 October 2025 )