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.
+PostgreSQL 15 is made generally available, though 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
+to test the new features of PostgreSQL 15 on 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.
+PostgreSQL 15 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 will help the community ensure that the PostgreSQL 15
release upholds our standards of delivering a stable, reliable release of the
experience.
This release introduces [`MERGE`](https://www.postgresql.org/docs/15/sql-merge.html),
-a SQL standard command for conditionally perform write operations (`INSERT`,
+a SQL standard command for conditionally performing 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).
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)
+the [`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.
[`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.
+`pg_basebackup` client can now also decompress backups that use LZ4 and
+Zstandard compression.
-Write-ahead log (WAL) files can now be compressed using both LZ4 an Zstandard
+Write-ahead log (WAL) files can now be compressed using both LZ4 and 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.
+option that can help speed up 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
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).
+[`ALTER SUBSCRIPTION ... SKIP`](https://www.postgresql.org/docs/15/sql-altersubscription.html)
+command.
### 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
+that perform structured log 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
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
+which uses the privileges of the user executing the query instead of the user
who created the view.
Unprivileged users in PostgreSQL 15 can now be