From 2900fdf723cbf186c384c6cbe8484d7af6216eab Mon Sep 17 00:00:00 2001 From: "Jonathan S. Katz" Date: Sat, 14 May 2022 14:46:20 -0400 Subject: [PATCH] First draft of PostgreSQL 15 Beta 1 announcement --- releases/15/15beta1.md | 211 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 211 insertions(+) create mode 100644 releases/15/15beta1.md diff --git a/releases/15/15beta1.md b/releases/15/15beta1.md new file mode 100644 index 0000000..ca536c4 --- /dev/null +++ b/releases/15/15beta1.md @@ -0,0 +1,211 @@ +The PostgreSQL Global Development Group announces that the first beta release of +PostgreSQL 15 is now [available for download](https://www.postgresql.org/download/). +This release contains previews of all features that will be available when +PostgreSQL 15 is made generally available, thouh some details of the release can +change during the beta period. + +You can find information about all of the features and changes found in +PostgreSQL 15 in the [release notes](https://www.postgresql.org/docs/15/release-15.html): + + [https://www.postgresql.org/docs/15/release-15.html](https://www.postgresql.org/docs/15/release-15.html) + +In the spirit of the open source PostgreSQL community, we strongly encourage you +to test the new features of PostgreSQL 15 in your systems to help us eliminate +bugs or other issues that may exist. While we do not advise you to run +PostgreSQL 15 Beta 1 in your production environments, we encourage you to find +ways to run your typical application workloads against this beta release. + +Your testing and feedback will help the community ensure that the PostgreSQL 15 +release 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 15 Feature Highlights +-------------------------------- + +### Developer Experience + +PostgreSQL 15 adds new features for simplifying and enhancing the developer +experience. + +This release introduces [`MERGE`](https://www.postgresql.org/docs/15/sql-merge.html), +a SQL standard command for conditionally perform write operations (`INSERT`, +`UPDATE`, or `DELETE`) on data. Prior to this release, the same behavior could +be accomplished either using stored procedures or, on a limited-basis, with +[`INSERT ... ON CONFLICT`](https://www.postgresql.org/docs/15/sql-insert.html). +With PostgreSQL 15, developers can write simple, expressive queries to choose +the appropriate data modification action to take. + +PostgreSQL added support for JSON in 2012 as part of the [9.2 release](https://www.postgresql.org/about/news/postgresql-92-released-1415/). The SQL/JSON standard, published five years +later, specified a variety of interfaces for accessing and manipulating JSON +data stored in relational databases. PostgreSQL 15 builds on its existing +support for the SQL/JSON path language by including more standard +[SQL/JSON functions](https://www.postgresql.org/docs/15/functions-json.html#FUNCTIONS-SQLJSON). +These include [SQL/JSON constructors](https://www.postgresql.org/docs/15/functions-json.html#FUNCTIONS-SQLJSON-PRODUCING), +[query / introspection functions](FUNCTIONS-SQLJSON-QUERYING), +and the ability to [convert JSON data into a table](https://www.postgresql.org/docs/15/functions-json.html#FUNCTIONS-JSONTABLE). + +PostgreSQL 15 adds [more regular expression functions](https://www.postgresql.org/docs/15/functions-matching.html#FUNCTIONS-POSIX-REGEXP), +including `regexp_count` , `regexp_instr`, `regexp_like`, and `regexp_substr`. +he [`range_agg`](https://www.postgresql.org/docs/15/functions-aggregate.html) +function, introduced in PostgreSQL 15 for aggregating +[`range` data types](https://www.postgresql.org/docs/15/rangetypes.html) into +`multirange` types, now supports aggregating `multirange` types too. + +### Performance + +PostgreSQL 15 continues to build on its performance gains over the past several +releases. This release includes a significant speedup for sorting data when +sorting over larger data sets. In particular, these are data sets that exceed +the `work_mem` parameter. Early benchmarks show that these sorts may see on +average an 2x speedup for these workloads on PostgreSQL 15. + +The performance gains of PostgreSQL 15 extend to a variety of query types. +This includes the introduction of parallelization for +[`SELECT DISTINCT`](https://www.postgresql.org/docs/15/queries-select-lists.html#QUERIES-DISTINCT) +statements and improvements in performance to +[window functions](https://www.postgresql.org/docs/15/functions-window.html) +that use `row_number()`, `rank()`, and `count()`. Applications that use the +[PostgreSQL foreign data wrapper](https://www.postgresql.org/docs/15/postgres-fdw.html) +[`postgres_fdw`](https://www.postgresql.org/docs/15/postgres-fdw.html) to manage +data on remote PostgreSQL servers can now enable +[transactions to be committed in parallel](https://www.postgresql.org/docs/15/postgres-fdw.html#id-1.11.7.47.11.7). There are also several performance enhancements for queries +involving tables with partitions. + +PostgreSQL system and [TOAST](https://www.postgresql.org/docs/15/storage-toast.html) +tables, used for storing data that is larger than a single page (8kB), can now +utilize +[index deduplication](https://www.postgresql.org/docs/15/btree-implementation.html#BTREE-DEDUPLICATION) +and benefit from smaller indexes and faster lookups. + +The psql `\copy` command, used to bulk load data, also has performance +improvements in PostgreSQL 15. + +### Backups, Archiving, and Compression + +Building on the previous release that introduced LZ4 compression, PostgreSQL 15 +adds support for Zstandard (zstd) compression to various components. + +[`pg_basebackup`](https://www.postgresql.org/docs/15/app-pgbasebackup.html), a +utility used to take full backups of a PostgreSQL cluster, now supports +server-side compression using Gzip, LZ4, or Zstandard compression. The +`pg_basebackup` client can now also decompress backups that use LZ4 an Zstandard +compression. + +Write-ahead log (WAL) files can now be compressed using both LZ4 an Zstandard +compression through the +[`wal_compression`](https://www.postgresql.org/docs/15/runtime-config-wal.html#GUC-WAL-COMPRESSION) +configuration parameter. Additionally, PostgreSQL 15 also adds the +[`recovery_prefetch`](https://www.postgresql.org/docs/15/runtime-config-wal.html#GUC-RECOVERY-PREFETCH) +that can help speed up all recovery operations by prefetching data blocks. This +release adds a new module called +[`pg_walinspect`](https://www.postgresql.org/docs/15/pgwalinspect.html) that +lets you inspect information about WAL files directly from SQL. + +PostgreSQL 15 lets you perform WAL archiving without running a shell command by +specifying an +[`archive_library`](https://www.postgresql.org/docs/15/runtime-config-wal.html#GUC-ARCHIVE-LIBRARY). +An example WAL archiving library can be found in the +[`basic_archive`](https://www.postgresql.org/docs/15/basic-archive.html) module. +Additionally, extensions can now define their own WAL resource managers that +lets them work with logical replication. + +### Logical Replication + +PostgreSQL 15 introduces both +[row filtering](https://www.postgresql.org/docs/15/logical-replication-row-filter.html) and +[column filtering](https://www.postgresql.org/docs/15/sql-createpublication.html) +for logical replication. Additionally, users can now conveniently specify to +publish all tables in a schema, where previously it was only possible to do this +for all tables in a database. + +This release also adds more support for handling +[conflicts](https://www.postgresql.org/docs/15/logical-replication-conflicts.html). +A subscriber can now specify `disable_on_error` to automatically stop logical +replication on an error. +PostgreSQL 15 makes it possible to skip applying changes using the +[`ALTER SUBSCRIPTION ... SKIP`](https://www.postgresql.org/docs/15/sql-altersubscription.html). + +### Administration + +PostgreSQL 15 introduces the +[`jsonlog` format for logging](https://www.postgresql.org/docs/15/runtime-config-logging.html#RUNTIME-CONFIG-LOGGING-JSONLOG). This allows PostgreSQL logs to be consumed by many programs +that perform structured logging aggregation and analysis. PostgreSQL 15 now by +default logs checkpoints and slow autovacuum operations. + +The [`psql`](https://www.postgresql.org/docs/15/app-psql.html) client now has a +command called `\dconfig` for inspecting the values of configuration parameters. +By default, `\dconfig` displays any configuration parameter that is not set to +its default value. + +PostgreSQL 15 now stores all server-level statistics in shared memory. The +server no longer runs a statistics collector process. + +The [`ALTER TABLE`](https://www.postgresql.org/docs/15/sql-altertable.html) +command can now modify a table's `ACCESS METHOD`, which is used to set the +storage system used by the table. + +### Security + +PostgreSQL 15 introduces new defaults when databases are created within a +PostgreSQL cluster. When a new database is created, users outside of the +database owner (represented by [`pg_database_owner`](https://www.postgresql.org/docs/15/predefined-roles.html)) +and superusers can no longer create objects in the default `public` schema. + +PostgreSQL 15 adds support for +"[security invoker views](https://www.postgresql.org/docs/15/sql-createview.html)", +which users the privileges of the user executing the query instead of the user +who created the view. + +Unprivileged users in PostgreSQL 15 can now be +[granted privileges](https://www.postgresql.org/docs/15/sql-grant.html) to +change server variables via `SET` and `ALTER SYSTEM`. + +Additional Features +------------------- + +Many other new features and improvements have been added to PostgreSQL 15. Many +of these may also be helpful for your use cases. Please see the +[release notes](https://www.postgresql.org/docs/15/release-15.html) for a +complete list of new and changed features: + + [https://www.postgresql.org/docs/15/release-15.html](https://www.postgresql.org/docs/15/release-15.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 in order to +find bugs and regressions before the general availability of PostgreSQL 15. 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_15_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 15. The PostgreSQL Project will +release additional betas as required for testing, followed by one or more +release candidates, until the final release in late 2022. 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 15 Beta Release Notes](https://www.postgresql.org/docs/15/release-15.html) +* [PostgreSQL 15 Open Issues](https://wiki.postgresql.org/wiki/PostgreSQL_15_Open_Items) +* [Submit a Bug](https://www.postgresql.org/account/submitbug/) -- 2.39.5