Thanks for writting this. Comments from my first read:
| This mode could cause server startup failure if the database server stopped abruptly while in this mode. This sentence both begins and ends with "this mode". | This allows query hash operations to use double the amount of work_mem memory as other operations. Should it say "node" ? | Allow tsvector_delete_arr() and tsvector_setweight_by_filter() accept empty array elements (Jean-Christophe Arnu) TO accept I don't think this should be in the "compatibility" section? | This accepts numeric formats like ".1" and "1.", and disallow trailing junk after numeric literals, like "1.type()". disallows with an ess | This will cause setseed() followed by random() to return a different value on older servers. *than* older servers | The Postgres default has always been to treat NULL indexed values as distinct, but this can now be changed by creating constraints and indexes using UNIQUE NULLS NOT DISTINCT. should not say default, since it wasn't previously configurable. "The previous behavior was ..." | Have extended statistics track statistics for a table's children separately (Tomas Vondra, Justin Pryzby) | Regular statistics already tracked child and non-child statistics separately. "separately" seems vague. Currently in v10-v13, extended stats are collected for partitioned tables, and collected for the "SELECT FROM ONLY"/parent case for inheritance parents. This changes to also collect stats for the "SELECT FROM tbl*" case. See also: 20220204214103.gt23...@telsasoft.com. | Allow members of the pg_checkpointer predefined role to run the CHECKPOINT command (Jeff Davis) | Previously these views could only be run by super users. | Allow members of the pg_read_all_stats predefined role to access the views pg_backend_memory_contexts and pg_shmem_allocations (Bharath Rupireddy) | Previously these views could only be run by super users. checkpoint is not a view (and views cannot be run) | Previously runtime-computed values data_checksums, wal_segment_size, and data_directory_mode would report values that would not be accurate on the running server. They also can only be be what ? | Add server variable allow_in_place_tablespaces for tablespace testing (Thomas Munro) This is a developer setting, so doesn't need to be mentioned ? | Add function pg_settings_get_flags() to get the flags of server-side variables (Justin Pryzby) IMO this is the same, but I think maybe Michael things about it differently... | Allow WAL full page writes to use LZ4 and ZSTD compression (Andrey Borodin, Justin Pryzby) | Add support for LZ4 and ZSTD compression of server-side base backups (Jeevan Ladhe, Robert Haas) | Allow pg_basebackup to decompress LZ4 and ZSTD compressed server-side base backups, and LZ4 and ZSTD compress output files (Dipesh Pandit, Jeevan Ladhe) | Add configure option --with-zstd to enable ZSTD build (Jeevan Ladhe, Robert Haas, Michael Paquier) Maybe these should say "Zstandard" ? See 586955dddecc95e0003262a3954ae83b68ce0372. | The new options causes the column names to be output, and optionally verified on input. option | Previous the actual schema name was used. Previously | When EXPLAIN references the temporary object schema, refer to it as "pg_temp" (Amul Sul) | When specifying fractional interval values in units greater than months, round to the nearest month (Bruce Momjian) | Limit support of psql to servers running PostgreSQL 9.2 and later (Tom Lane) | Limit support of pg_dump and pg_dumpall to servers running PostgreSQL 9.2 and later (Tom Lane) | Limit support of pg_upgrade to old servers running PostgreSQL 9.2 and later (Tom Lane) | Remove server support for old BASE_BACKUP command syntax and base backup protocol (Robert Haas) Do these need to be in the "compatibility" section ? | Fix inforcement of PL/pgSQL variable CONSTANT markings (Tom Lane) enforcement | Allow IP address matching against a server's certificate Subject Alternative Name (Jacob Champion) Should say "server certificate's" ? | Allow libpq's SSL private to be owned by the root user (David Steele) private *key* | Have psql output all output if multiple queries are passed to the server at once (Fabien Coelho) all *results* ? | This can be disabled setting SHOW_ALL_RESULTS. disabled *by* setting | Allow pg_basebackup's --compress option to control the compression method (Michael Paquier, Robert Haas) Should probably say "compression method and options" | Allow pg_basebackup to decompress LZ4 and ZSTD compressed server-side base backups, and LZ4 and ZSTD compress output files (Dipesh Pandit, Jeevan Ladhe) | Allow pg_basebackup to compress on the server slide and decompress on the client side before storage (Dipesh Pandit) Maybe these should be combined into one entry ? | Add the LZ4 compression method to pg_receivewal (Georgios Kokolatos) | This is enabled via --compression-method=lz4 and requires binaries to be built using --with-lz4. | Redesign pg_receivewal's compression options (Georgios Kokolatos) | The new --compression-method option controls the type of compression, rather than just relying on --compress. It's --compress since 042a923ad. | Previously, pg_receivewal would start based on the WAL file stored in the local archive directory, or at the sending server's current WAL flush location. With this change, if the sending server is running Postgres 15 or later, the local archive directory is empty, and a replication slot is specified, the replication slots restart point will be used. slot's restart point (with a >>'<<) | Add dump/restore option --no-table-access-method to force restore to use only the default table access method (Justin Pryzby) remove "only" ? | This is for portability in restoring from systems using non-default table access methods. I would remove part about "portability". The use-case I see for this is restoring something to a different table AM (not just heapam), in the same way as is possible for tablespaces: PGOPTIONS='-c default-table-access-method=foo' pg_restore --no-table-am ./dump | Previously only the first invalid connection setting database was reported. "only the first database with an invalid connection setting..." | Add new protocol message TARGET to specific a new COPY method to be for base backups (Robert Haas) specify | Automatically export server variables using PGDLLIMPORT on Windows (Robert Haas) I don't think it's "automatic" ? | Allow informational escape sequences to be used in postgres_fdw's application name (Hayato Kuroda, Fujii Masao) I don't think this should be a separate entry | This is enabled with the "parallel_commit" postgres_fdw option. It's an option to the SQL "SERVER" command.