Hello, Thanks for putting this together! It's quite the monster. I read through and found the following points worth mentioning:
I think almost all of the non-stock section titles Are Lacking Case Title. > The new > [`io_method`](https://www.postgresql.org/docs/18/runtime-config-resource.html#GUC-IO-METHOD) > setting lets you toggle between the AIO methods, including `worker` and > `io_uring` (when built with PostgreSQL, available on certain Linux systems), > or you can choose to maintain the current PostgreSQL behavior with the `sync` > setting. There are now more parameters to consider tuning with AIO, which you > can [learn more about in the > documentation](https://www.postgresql.org/docs/18/runtime-config-resource.html#RUNTIME-CONFIG-RESOURCE-IO). I don't understand the "when built with PostgreSQL". Did you mean to reference something else here? > PostgreSQL 18 further accelerates query performance with features that > automatically make your workloads faster. This release introduces "skip scan" > lookups on [multicolumn B-tree > indexes](https://www.postgresql.org/docs/18/indexes-multicolumn.html), which > improves execution time for queries that omit an `=` condition on one or more > prefix index columns. It can also optimize queries that use `OR` conditions > in a `WHERE` to use an index, leading to significantly faster execution. > There are also numerous improvements for how PostgreSQL plans and executes > table joins, from boosting the performance of hash joins to allowing merge > joins to use incremental sorts. introduces "skip scan" lookups ..., which improve (remove ending 's') > PostgreSQL 18 now supports parallel builds for [GIN > indexes](https://www.postgresql.org/docs/18/gin.html), joining B-tree and > [BRIN indexes](https://www.postgresql.org/docs/current/brin.html) in > supporting this capability. Additionally, [materialized > views](https://www.postgresql.org/docs/18/rules-materializedviews.html) can > now use unique indexes that aren't B-trees as partition keys, expanding how > you can construct materialized views. Materialized views can use non-btree indexes as partition keys? Sounds cool, but the linked-to matview page doesn't talk about partitioning at all. I think there's something wrong with the way this has been written. [trawls the release notes] Hmm, the release notes have this text: "Allow non-btree unique indexes to be used as partition keys and in materialized views" I think the confusion stems from having missed the "and" there. Actually I wonder if these two items (commits f278e1fe3 and 9d6db8bec) are actually worthy of being in the press release. They are about using unique indexes that aren't btrees, but as I understand, in stock Postgres there isn't any other way to build unique indexes, so this is about allowing out-of-core index AMs to be used in these contexts. > PostgreSQL 18 makes text processing easier and faster with several new > enhancements. This release adds the > [`PG_UNICODE_FAST`](https://www.postgresql.org/docs/18/locale.html#LOCALE-PROVIDERS), > which accelerates lookups using the `upper` and `lower` string comparison > functions, and helps speed up the new > [`casefold`](https://www.postgresql.org/docs/18/functions-string.html#FUNCTIONS-STRING-OTHER) > function for case-insensitive comparisons. Additionally, PostgreSQL 18 now > supports making `LIKE` comparisons over text that uses a [nondeterministic > collation](https://www.postgresql.org/docs/18/collation.html#COLLATION-NONDETERMINISTIC), > simplifying how you can perform more complex pattern matching. This release > also changes [full text > search](https://www.postgresql.org/docs/18/textsearch.html) to use the > default collation provider of a cluster instead of always using libc, which > may require you to reindex all [full text > search](https://www.postgresql.org/docs/18/textsearch-tables.html#TEXTSEARCH-TABLES-INDEX) > and [`pg_trgm`](https://www.postgresql.org/docs/18/pgtrgm.html#PGTRGM-INDEX) > indexes after running > [`pg_upgrade`](https://www.postgresql.org/docs/18/pgupgrade.html). I think this should say "This release adds the PG_UNICODE_FAST local provider", or something like that, because ending in just "PG_UNICODE_FAST" seems to be unintelligible. > ### Authentication and security features In this section I would also mention that pgcrypto gained SHA-2 cipher for passwords (commit 749a9e20c979). > PostgreSQL 18 now supports reporting logical replication write conflicts in > logs and in the > [`pg_stat_subscription_stats`](https://www.postgresql.org/docs/18/monitoring-stats.html#MONITORING-PG-STAT-SUBSCRIPTION-STATS) > view. Additionally, [`CREATE > SUBSCRIPTION`](https://www.postgresql.org/docs/18/sql-createsubscription.html) > now defaults to use parallel streaming for applying transactions, which can > help improve performance. The > [`pg_createsubscriber`](https://www.postgresql.org/docs/18/app-pgcreatesubscriber.html) > now has an `--all` flag so you can create logical replicas for all databases > in an instance with a single command. PostgreSQL 18 also lets you > automatically [drop idle replication > slots](https://www.postgresql.org/docs/18/runtime-config-replication.html#GUC-IDLE-REPLICATION-SLOT-TIMEOUT) > to help prevent storing too many write-ahead log files on a publisher. My English grammar fails me here. I would say "... now defaults to using", but maybe your "now defaults to use" is correct. "The pg_createsubscriber **utility**" ? > Databases initialized with PostgreSQL 18 > [`initdb`](https://www.postgresql.org/docs/18/app-initdb.html) now have page > checksums enabled by default. This can affect upgrades from non-checksum > enabled clusters, which would require you to create a new PostgreSQL 18 > cluster with the `--no-data-checksums` option when using > [`pg_upgrade`](https://www.postgresql.org/docs/18/pgupgrade.html). I'm not sure that the relnotes really need to explain how to use pg_upgrade. To me it seems enough to say that initdb now creates checksum-enabled clusters by default. Thanks! -- Álvaro Herrera 48°01'N 7°57'E — https://www.EnterpriseDB.com/ "La fuerza no está en los medios físicos sino que reside en una voluntad indomable" (Gandhi)