Hi,Attached is the draft of the PostgreSQL 19 Beta 1 release announcement. Please review for accuracy (e.g. are features described correctly? Did I miss a revert), recommendations on additions or glaring omissions, structure, etc.
Please provide feedback no later than June 4, 2026 12:00 UTC (though preferably earlier!)
Thanks, Jonathan
The PostgreSQL Global Development Group announces that the first beta release of PostgreSQL 19 is now [available for download](https://www.postgresql.org/download/). This release contains previews of all features when PostgreSQL 19 is made generally available, though some details of the release can change during the beta period. You can find information about all of the PostgreSQL 19 features and changes in the [release notes](https://www.postgresql.org/docs/19/release-19.html): [https://www.postgresql.org/docs/19/release-19.html](https://www.postgresql.org/docs/19/release-19.html) In the spirit of the open source PostgreSQL community, we strongly encourage you to test the new features of PostgreSQL 19 on your systems to help us eliminate bugs and other issues. While we do not advise you to run PostgreSQL 19 Beta 1 in production environments, we encourage you to find ways to run your typical application workloads against this beta release. Your testing and feedback helps the community ensure that PostgreSQL 19 upholds our standards of delivering a stable, reliable release of the world's most advanced open source relational database. Please read more about our [beta testing process](https://www.postgresql.org/developer/beta/) and how you can contribute: [https://www.postgresql.org/developer/beta/](https://www.postgresql.org/developer/beta/) PostgreSQL 19 Feature Highlights -------------------------------- Below are some of the feature highlights that are planned for PostgreSQL 19. This list is not exhaustive; for the full list of planned features, please see the [release notes](https://www.postgresql.org/docs/19/release-19.html). ### Performance PostgreSQL 19 builds on the asynchronous I/O subsystem introduced in PostgreSQL 18. In this release, `io_method=worker` now automatically scales the number of workers based on the new `io_min_workers` and `io_max_workers` settings. This release brings improvements to vacuum and maintenance operations. Autovacuum can now use parallel workers, which can be configured with the new `autovacuum_max_parallel_workers` setting, and a new autovacuum scoring system helps prioritize tables to vacuum. PostgreSQL 19 further enhances vacuum, adding a new strategy that lets table scans mark pages as visible and reduce future vacuuming work. Additionally, this release adds the new `REPACK` and `REPACK CONCURRENTLY` commands, which allow rebuilding tables with less operational overhead. PostgreSQL 19 shows up to 2x better performance on inserts when foreign key checks are present. Additionally, this release improves several areas of the query planner and executor, including new anti-join optimizations, broader use of incremental sorts, faster reads from storage during parallel sequential scans, and simplification of `IS DISTINCT FROM` and `IS NOT DISTINCT FROM` to plain `<>` and `=` operators when the inputs are not nullable. This release also introduces the `pg_plan_advice` extension, which lets users stabilize and control planner decisions, along with `pg_stash_advice` to apply advice automatically using query identifiers. ### Developer Experience PostgreSQL 19 introduces support for SQL/PGQ, letting users execute property graph queries using SQL standard syntax. This release also expands temporal query capabilities with `UPDATE` and `DELETE` support for the `FOR PORTION OF` clause, complementing the temporal constraint support added in PostgreSQL 18. This release also adds `ALTER TABLE ... MERGE PARTITIONS` and `ALTER TABLE ... SPLIT PARTITIONS` to make it easier to reorganize partitioned tables in place. PostgreSQL 19 makes it easier to adopt "read-your-writes" query patterns when working with replicas using the new `WAIT FOR LSN` command. This lets a session wait until changes up to a specific log position (LSN) have been replayed on the replica before executing a `SELECT` query. This release extends jsonpath support with the addition of `lower()`, `upper()`, `initcap()`, `replace()`, `split_part()`, and several variants of `trim()` functions. PostgreSQL 19 also adds new SQL functions to retrieve the DDL statements needed to recreate roles, tablespaces, and databases, simplifying scripting and migration tasks. Additionally, the `random()` function now works with `date` and `timestamp` types, and PL/Python now supports event triggers. ### Security Features PostgreSQL 19 adds server-side support for Server Name Indication (SNI) through a new `pg_hosts.conf` file, allowing a single PostgreSQL server to present different TLS certificates based on the hostname requested by the client. Additionally, the OAuth authentication method added in PostgreSQL 18 has been extended with a new flow hook, `PQAUTHDATA_OAUTH_BEARER_TOKEN_V2`, which adds issuer identifiers and structured error message specification. The `GRANT` and `REVOKE` statements now support a `GRANTED BY` clause that lets the user select the role to issue the `GRANT`/`REVOKE` and have more control of the behavior. Additionally, PostgreSQL 19 also adds a new `password_expiration_warning_threshold` setting (defaulting to 7 days) to warn users in advance of upcoming password expirations. Further to the ongoing deprecation efforts of `md5` authentication, this release issues a warning after a successful `md5` authentication. This is controllable via the new `md5_password_warnings` setting. ### Monitoring and Observability PostgreSQL 19 introduces the `pg_stat_lock` view, which reports per-lock-type statistics, and `pg_stat_recovery`, which provides detailed visibility into the state of recovery operations. A `stats_reset` column has been added across many statistics views to make it easier to reason about when counters were last cleared. The `pg_stat_progress_vacuum` and `pg_stat_progress_analyze` views now include a `started_by` column that reports the initiator of the operation, along with a `mode` column that reports its level of aggressiveness. This release also allows `log_min_messages` levels to be specified per process type, giving operators finer control over what each part of the system logs. Additionally, WAL full page write byte counts are now reported in `VACUUM` and `ANALYZE` log output, helping identify maintenance operations that generate large amounts of WAL. Additionally, `EXPLAIN ANALYZE` now supports surfacing asynchronous I/O statistics through its `IO` option, providing better visibility into how queries are using the AIO subsystem. ### Logical Replication and query federation In PostgreSQL 19, logical replication now replicates sequence values, making it easier to use logical replication for use cases like upgrades. Additionally, the new `CREATE PUBLICATION ... EXCEPT` syntax allows you to publish all tables in a database except for a specified set, while `CREATE SUBSCRIPTION ... SERVER` allows subscriptions to be defined using a foreign server, simplifying credential management. PostgreSQL 19 makes it possible to enable logical replication without restarting a server. Logical replication can now be enabled on demand even when `wal_level` is set to `replica`, and the new read-only `effective_wal_level` parameter reports the WAL level currently in effect. This reduces the need to commit upfront to a higher WAL level for clusters that may only occasionally need it, and avoids disrupting an active workload. The PostgreSQL foreign data wrapper, `postgres_fdw`, used for query federation, includes several performance improvements, including pushing down array operations to the remote server, and retrieving and using statistics from foreign tables to support better local query planning. ### Other Highlights PostgreSQL 19 allows data checksums to be enabled or disabled online, without requiring a cluster restart or reinitialization. There are several notable changes to be aware of in PostgreSQL 19. JIT is now disabled by default, and the `default_toast_compression` setting now defaults to `lz4`, providing better compression and decompression performance out-of-the-box. Support for RADIUS authentication is now removed. Additionally, the `vacuumdb --analyze-only` command will now also analyze partitioned tables when no other options are specified. Additional Features ------------------- Many other new features and improvements have been added to PostgreSQL 19. Many of these may also be helpful for your use cases. Please see the [release notes](https://www.postgresql.org/docs/19/release-19.html) for a complete list of new and changed features: [https://www.postgresql.org/docs/19/release-19.html](https://www.postgresql.org/docs/19/release-19.html) Testing for Bugs & Compatibility -------------------------------- The stability of each PostgreSQL release greatly depends on you, the community, to test the upcoming version with your workloads and testing tools to find bugs and regressions before the general availability of PostgreSQL 19. As this is a Beta, minor changes to database behaviors, feature details, and APIs are still possible. Your feedback and testing will help determine the final tweaks on the new features, so please test in the near future. The quality of user testing helps determine when we can make a final release. A list of [open issues](https://wiki.postgresql.org/wiki/PostgreSQL_19_Open_Items) is publicly available in the PostgreSQL wiki. You can [report bugs](https://www.postgresql.org/account/submitbug/) using this form on the PostgreSQL website: [https://www.postgresql.org/account/submitbug/](https://www.postgresql.org/account/submitbug/) Beta Schedule ------------- This is the first beta release of version 19. The PostgreSQL Project will release additional betas as required for testing, followed by one or more release candidates, until the final release around September/October 2026. For further information please see the [Beta Testing](https://www.postgresql.org/developer/beta/) page. Links ----- * [Download](https://www.postgresql.org/download/) * [Beta Testing Information](https://www.postgresql.org/developer/beta/) * [PostgreSQL 19 Beta Release Notes](https://www.postgresql.org/docs/19/release-19.html) * [PostgreSQL 19 Open Issues](https://wiki.postgresql.org/wiki/PostgreSQL_19_Open_Items) * [Submit a Bug](https://www.postgresql.org/account/submitbug/) * [Donate](https://www.postgresql.org/about/donate/)
OpenPGP_signature.asc
Description: OpenPGP digital signature
