Re: PostgreSQL 18 GA press release draft - Mailing list pgsql-hackers

From Álvaro Herrera
Subject Re: PostgreSQL 18 GA press release draft
Date
Msg-id 202509121846.xgt5moxcgoj6@alvherre.pgsql
Whole thread Raw
In response to Re: PostgreSQL 18 GA press release draft  ("Jonathan S. Katz" <jkatz@postgresql.org>)
List pgsql-hackers
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
togglebetween the AIO methods, including `worker` and `io_uring` (when built with PostgreSQL, available on certain
Linuxsystems), or you can choose to maintain the current PostgreSQL behavior with the `sync` setting. There are now
moreparameters 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
releaseintroduces "skip scan" lookups on [multicolumn B-tree
indexes](https://www.postgresql.org/docs/18/indexes-multicolumn.html),which improves execution time for queries that
omitan `=` 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
PostgreSQLplans and executes table joins, from boosting the performance of hash joins to allowing merge joins to use
incrementalsorts. 

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-treeand [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
indexesthat 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-insensitivecomparisons. Additionally, PostgreSQL 18 now supports making `LIKE` comparisons over text that uses a
[nondeterministiccollation](https://www.postgresql.org/docs/18/collation.html#COLLATION-NONDETERMINISTIC), simplifying
howyou 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
ofalways 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
touse 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
cancreate 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
preventstoring 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
checksumsenabled by default. This can affect upgrades from non-checksum enabled clusters, which would require you to
createa 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)



pgsql-hackers by date:

Previous
From: Jeff Davis
Date:
Subject: Re: PostgreSQL 18 GA press release draft
Next
From: Noah Misch
Date:
Subject: Re: race condition in pg_class