Re: First draft of PG 19 release notes

Bruce Momjian <bruce@momjian.us>

From: Bruce Momjian <bruce@momjian.us>
To: jian he <jian.universality@gmail.com>
Cc: PostgreSQL-development <pgsql-hackers@lists.postgresql.org>
Date: 2026-04-15T20:18:04Z
Lists: pgsql-hackers

Attachments

On Wed, Apr 15, 2026 at 10:59:13PM +0800, jian he wrote:
> On Wed, Apr 15, 2026 at 9:19 AM Bruce Momjian <bruce@momjian.us> wrote:
> >
> > I have completed the first draft of the PG 19 release notes:
> >
> >         https://www.postgresql.org/docs/devel/release-19.html
> >
> 
> https://git.postgresql.org/cgit/postgresql.git/commit/?id=ecd9288624a1582a732cf86ac5a01475a1ce7815

I don't usually mention test changes in the release notes.

> https://git.postgresql.org/cgit/postgresql.git/commit/?id=4edd6036d69ce42ac1af236f659f20daed65c8d4

Uh, the commit message is:

	commit 4edd6036d69
	Author: Tom Lane <tgl@sss.pgh.pa.us>
	Date:   Tue Apr 7 14:45:33 2026 -0400
	
	    Fix WITHOUT OVERLAPS' interaction with domains.
	
	    UNIQUE/PRIMARY KEY ... WITHOUT OVERLAPS requires the no-overlap
	    column to be a range or multirange, but it should allow a domain
	    over such a type too.  This requires minor adjustments in both
	    the parser and executor.
	
	    In passing, fix a nearby break-instead-of-continue thinko in
	    transformIndexConstraint.  This had the effect of disabling
	    parse-time validation of the no-overlap column's type in the context
	    of ALTER TABLE ADD CONSTRAINT, if it follows a dropped column.
	    We'd still complain appropriately at runtime though.
	
	    Author: Jian He <jian.universality@gmail.com>
	    Reviewed-by: Paul A Jungwirth <pj@illuminatedcomputing.com>
	    Reviewed-by: Tom Lane <tgl@sss.pgh.pa.us>
	    Discussion:	https://postgr.es/m/CACJufxGoAmN_0iJ=hjTG0vGpOSOyy-vYyfE+-q0AWxrq2_p5XQ@mail.gmail.com
-->	    Backpatch-through: 18

Since it is backpatched to PG 18, it shouldn't appear in the PG 19
release notes.

> """
> Allow COPY TO to output partitioned tables (Jian He, Ajin Cherian) § §
> Previously COPY (SELECT ...) has to be used to output partitioned tables.
> """
> The second commit uses this feature, so i guess the commit message
> needs a slight change.

Updated in attached patch.

> """
> Improve timing performance measurements (Lukas Fittl, Andres Freund,
> David Geier, Lukas Fittl, David Geier) § §
> This benefits EXPLAIN (ANALYZE, TIMING) and pg_test_timing, and is
> controlled via server variable timing_clock_source.
> """
> Duplicated name entry.

Fixed in attached patch.

> """
> Allow IS [NOT] DISTINCT FROM NULL to be converted to IS [NOT] NULL for
> proven null arguments (Richard Guo) §
> The latter form is more easily optimized.
> """
> Two optional ``[NOT]`` introduce ambiguity.

Uh, if the NOT is in the first, it is in the second.  Is that confusing?
Suggestions?

> """
> Add support for INSERT ... RETURNING ... ON CONFLICT DO SELECT
> (Andreas Karlsson, Marko Tiikkaja, Viktor Holmberg) §
> This allows conflicting rows to be returns, and optionally locked with
> FOR UPDATE/SHARE.
> """
> I think it's:
> INSERT... ON CONFLICT DO SELECT...RETURNING

Uh, went by the commit messsage which says:

	The INSERT statement must have a RETURNING clause, when DO SELECT
	is specified.

However, all the examples have the syntax as you specified, so I must
have interpreted it wrong.

Applied patch attached.

-- 
  Bruce Momjian  <bruce@momjian.us>        https://momjian.us
  EDB                                      https://enterprisedb.com

  Do not let urgent matters crowd out time for investment in the future.

Commits

Same data as JSON: GET /api/v1/messages/:b64id/commits the thread's linked commits as JSON, with link sources. API reference →
  1. doc PG 19 relnotes: remove VALIDATE CONSTRAINT lock item

  2. Fix ALTER DOMAIN VALIDATE CONSTRAINT locking

  3. Revert "Enable fast default for domains with non-volatile constraints"

  4. doc PG 19 relnotes: improve awkward or confusing wording

  5. doc PG 19 relnotes: more fixes

  6. doc PG 19 relnotes: various corrections

  7. doc PG 19 relnotes: adjust item to mention pg_replication_slots

  8. doc PG 19 relnotes: remove "Add fake LSN support to hash index"

  9. doc PG 19 relnotes: add two optimizer hooks

  10. doc PG 19 relnotes: remove "Optionally" for CPU optimizations

  11. doc PG 19 relnotes: adjustments/removal of items

  12. doc PG 19 relnotes: add UTF-8 case folding performance item

  13. doc PG 19 relnotes: correct two items

  14. doc PG 19 relnotes: add missing commits and details

  15. doc PG 19 relnotes: fix typo, "date" -> "data"

  16. doc PG 19 relnotes: add author and move items

  17. doc PG 19 relnotes: update author

  18. doc PG 19 relnotes: add free space map all-visible item

  19. doc PG 19 relnotes: remove "Lakshmi N" as author of checksums

  20. doc PG 19 relnotes: fix "now targets"

  21. doc PG 19 relnotes: adjust ShmemRequestStruct item

  22. Improve various new-to-v19 appendStringInfo calls

  23. doc: Fix data_checksums data type

  24. Fix WITHOUT OVERLAPS' interaction with domains.

  25. Online enabling and disabling of data checksums

  26. Doc: split functions-posix-regexp section into multiple subsections.

  27. make immutability tests in to_json and to_jsonb complete

  28. Optimize tuple deformation

  29. pgstattuple: Optimize pgstattuple_approx() with streaming read

  30. Use fake LSNs to improve nbtree dropPin behavior.

  31. Use streaming read for VACUUM cleanup of GIN

  32. Clean up ICU includes.

  33. ICU: use UTF8-optimized case conversion API

  34. Add the MODE option to the WAIT FOR LSN command

  35. Speedup tuple deformation with additional function inlining