The PostgreSQL [vacuum](https://www.postgresql.org/docs/17/routine-vacuuming.html)
process is critical for healthy operations, requiring server instance resources
to operate. PostgreSQL 17 introduces a new internal memory structure for vacuum
-was used that consumes up to 20x less memory. This improves vacuum speed and
+that consumes up to 20x less memory. This improves vacuum speed and
also reduces the use of shared resources, making more available for your
workload.
### Further expansion of a robust developer experience
PostgreSQL was the [first relational database to add JSON support (2012)](https://www.postgresql.org/about/news/postgresql-92-released-1415/),
-and PostgreSQL 17 adds to its implementation SQL/JSON standard.
+and PostgreSQL 17 adds to its implementation of the SQL/JSON standard.
[`JSON_TABLE`](https://www.postgresql.org/docs/17/functions-json.html#FUNCTIONS-SQLJSON-TABLE)
is now available in PostgreSQL 17, letting developers convert JSON data into a
standard PostgreSQL table. PostgreSQL 17 now supports [SQL/JSON constructors](https://www.postgresql.org/docs/17/functions-json.html#FUNCTIONS-JSON-CREATION-TABLE)
which is used for conditional updates, including a `RETURNING` clause and the
ability to update [views](https://www.postgresql.org/docs/17/sql-createview.html).
Additionally, PostgreSQL 17 has new capabilities for bulk loading and data
-exporting,including up to a 2x performance improvement when exporting large rows
+exporting, including up to a 2x performance improvement when exporting large rows
using the [`COPY`](https://www.postgresql.org/docs/17/sql-copy.html) command.
`COPY` performance also has improvements when the source and destination
encodings match, and includes a new option, `ON_ERROR`, that allows an import to
continue even if there is an insert error.
-This release expands on functionality for managing data in partitions or
-federated on remote PostgreSQL instances. PostgreSQL 17 supports using identity
-columns and exclusion constraints on [partitioned tables](https://www.postgresql.org/docs/17/ddl-partitioning.html).
+This release expands on functionality both for managing data in partitions and
+data distributed across remote PostgreSQL instances. PostgreSQL 17 supports
+using identity columns and exclusion constraints on
+[partitioned tables](https://www.postgresql.org/docs/17/ddl-partitioning.html).
With this release, the [PostgreSQL foreign data wrapper](https://www.postgresql.org/docs/17/postgres-fdw.html)
([`postgres_fdw`](https://www.postgresql.org/docs/17/postgres-fdw.html)), used
to execute queries on remote PostgreSQL instances, can now push `EXISTS` and
more resilient when deployed in high availability environments. Additionally,
PostgreSQL 17 introduces the
[`pg_createsubscriber`](https://www.postgresql.org/docs/17/app-pgcreatesubscriber.html)
-command-line tool for adding logical replication on a replica using physical
-replication.
+command-line tool for converting a physical replica into a new logical replica.
### More options for managing security and operations
[ALPN](https://en.wikipedia.org/wiki/Application-Layer_Protocol_Negotiation)
(registered as `postgresql` in the ALPN directory). PostgreSQL 17 also adds the
`pg_maintain` [predefined role](https://www.postgresql.org/docs/17/predefined-roles.html),
-which allows you to give users permission to execute maintenance operations.
+which gives users permission to perform maintenance operations.
[`pg_basebackup`](https://www.postgresql.org/docs/17/app-pgbasebackup.html), the
backup utility included in PostgreSQL, now supports incremental backups and adds
the [`pg_combinebackup`](https://www.postgresql.org/docs/17/app-pgcombinebackup.html)
-or the backup restoration process. Additionally,
+utility to reconstruct a full backup. Additionally,
[`pg_dump`](https://www.postgresql.org/docs/17/app-pgdump.html) includes a new
option called `--filter` that lets you select what objects to include when
generating a dump file.
PostgreSQL 17 also includes enhancements to monitoring and analysis features.
[`EXPLAIN`](https://www.postgresql.org/docs/17/sql-explain.html) now shows the
-time spent for I/O block reads and writes, and includes two new options:
+time spent for local I/O block reads and writes, and includes two new options:
`SERIALIZE` and `MEMORY`, useful for seeing the time spent in data conversion
for network transmission, and how much memory was used. PostgreSQL 17 now
reports the [progress of vacuuming indexes](https://www.postgresql.org/docs/17/progress-reporting.html#VACUUM-PROGRESS-REPORTING),
and adds the [`pg_wait_events`](https://www.postgresql.org/docs/17/view-pg-wait-events.html)
-that, when combined with [`pg_stat_activity`](https://www.postgresql.org/docs/17/monitoring-stats.html#MONITORING-PG-STAT-ACTIVITY-VIEW),
+system view that, when combined with [`pg_stat_activity`](https://www.postgresql.org/docs/17/monitoring-stats.html#MONITORING-PG-STAT-ACTIVITY-VIEW),
gives more insight into why an active session is waiting.
### Additional Features
-Many other new features and improvements have been added to PostgreSQL 17. Many
-of these may also be helpful for your use cases. Please see the
+Many other new features and improvements have been added to PostgreSQL 17 that
+may also be helpful for your use cases. Please see the
[release notes](https://www.postgresql.org/docs/17/release-17.html) for a
complete list of new and changed features.