Re: PG 18 release notes draft committed

Bruce Momjian <bruce@momjian.us>

From: Bruce Momjian <bruce@momjian.us>
To: Álvaro Herrera <alvherre@kurilemu.de>
Cc: PostgreSQL-development <pgsql-hackers@lists.postgresql.org>
Date: 2025-05-05T02:06:38Z
Lists: pgsql-hackers

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 18 relnotes: add AFTER trigger user change item

  2. doc PG 18 relnotes: modify async I/O item for other improvements

  3. doc PG 18 relnotes: split apart log_connections item

  4. doc PG 18 relnotes: move ANALYZE item,split ANALYZE/EXPLAIN item

  5. doc PG 18 relnotes: clarify multiplication item

  6. doc PG 18 relnotes: add removal details to MD5 item

  7. doc PG 18 relnotes: fix markup

  8. doc PG 18 relnotes: clarify btree skip-scan item

  9. doc PG 18 relnotes: update to current

  10. doc PG 18 relnotes: adjust CREATE SUBSCRIPTION attribution

  11. doc PG 18 relnotes: clarify btree skip scan item

  12. doc PG 18 relnotes: mv. hash joins and GROUP BY item to General

  13. Add support for runtime arguments in injection points

  14. doc PG 18 relnotes: fix missing parens for crc32c()

  15. PG 18 relnotes: adjust RETURNING new/old item

  16. doc PG 18 relnotes: adjust pg_log_backend_memory_contexts()

  17. doc PG 18 relnotes: add pg_log_backend_memory_contexts() mention

  18. doc PG 18 relnotes: adjust pgbench per-script reporting item

  19. doc PG 18 relnotes: mention GROUP SET fixes

  20. doc PG 18 relnotes: adjust partition planning item

  21. doc PG 18 relnotes: small adjustments regarding options

  22. doc PG 18 relnotes: move partition locking item to General Perf

  23. doc PG 18 relnotes: adjust partition items

  24. doc PG 18 relnotes: reword OAuth item

  25. doc PG 18 relnotes: add mention of pg_stat_reset_backend_stats()

  26. doc PG 18 relnotes: adjust hash item

  27. doc PG 18 relnotes: split partition optimizer item into two

  28. doc PG 18 relnotes: adjust COPY and REJECT_LIMIT items

  29. doc PG 18 relnotes: move and clarify constraint items

  30. doc PG 18 relnotes: add commit for cancel key and protocol neg.

  31. doc PG 18 relnotes: fix libpq wording

  32. doc PG 18 relnotes: add GROUP BY column elimination item

  33. doc PG 18 relnotes: move protocol version item to "server"

  34. doc PG 18 relnotes: adjust libpq trace & potocol version items

  35. doc PG 18 relnotes: reword and reorder items

  36. doc: Fix memory context level in pg_log_backend_memory_contexts() example.

  37. Make levels 1-based in pg_log_backend_memory_contexts()

  38. Introduce file_copy_method setting.

  39. libpq: Handle NegotiateProtocolVersion message differently

  40. Add timingsafe_bcmp(), for constant-time memory comparison

  41. Optimization for lower(), upper(), casefold() functions.

  42. Fix ALTER SUBSCRIPTION ... SET PUBLICATION ... command.

  43. Add connection establishment duration logging

  44. Modularize log_connections output

  45. Ensure that AFTER triggers run as the instigating user.

  46. Detect redundant GROUP BY columns using UNIQUE indexes

  47. Move cancel key generation to after forking the backend

Attachments

On Sun, May  4, 2025 at 01:35:30PM +0200, Álvaro Herrera wrote:
> Regarding these items
> 
> * Allow ALTER TABLE to set the NOT VALID attribute of NOT NULL constraints
>   (Rushabh Lathia, Jian He)
> 
> * Allow NOT VALID foreign key constraints on partitioned tables (Amul Sul)
> 
> * Allow modification of the inheritability of constraints (Suraj Kharage, Álvaro Herrera)
> 
>   The syntax is ALTER TABLE ... ALTER CONSTRAINT ... [NO] INHERIT.
> 
> * Store column NOT NULL specifications in pg_constraint (Álvaro Herrera, Bernd Helmle)
> 
>   This allows names to be specified for NOT NULL constraint. This also adds NOT
>   NULL constraints to foreign tables and NOT NULL inheritance control to local
>   tables.
> 
> 
> I think the wording and order of them is a bit unclear.  I would put the
> last item first, immediately followed by the other two; alternatively we
> could merge them all into a single one:

I moved the last item to first in the group.

> * Store NOT NULL constraints in pg_constraint for better preservability
>   (Álvaro, Bernd, Suraj, Rushabh, Jian)
> 
>   The constraint names are well defined and are preserved across
>   dump/restore.  Also, the NOT VALID and NO INHERIT properties work
>   as expected and can be modified by users via ALTER TABLE.
> 
> Or something along those lines.

I think the merged text is too confusing.

> This one in particular:
>   Allow modification of the inheritability of constraints (Suraj Kharage, Álvaro Herrera)
> 
>   The syntax is ALTER TABLE ... ALTER CONSTRAINT ... [NO] INHERIT.
> 
> only works with not-null constraints, which is why I suggest to merge
> together with the above item.  Ideally, on the next release somebody
> would work to make that feature more general (work with other types of
> constraints).

Yes, I see that detail in the docs of the first commit, and in the second commit
text.  I modified to say NOT NULL.

> 
> I think this item
>   Allow CHECK and foreign key constraints to be specified as NOT ENFORCED
>   (Amul Sul)
> 
>   This also adds column pg_constraint.conenforced.
> 
> should come second or maybe even first in that section, as it is I think
> the most user-visible.

I made it second.

> These two items
>   Allow NOT VALID foreign key constraints on partitioned tables (Amul Sul)
> 
>   Allow dropping of constraints ONLY on partitioned tables (Álvaro Herrera)
> 
>   This was previously erroneously prohibited.
> 
> can mostly be considered bug-fixes, so they should be last in the
> section; they aren't new features, just making existing features work
> correctly.  The one I have second is I think of lesser importance.

Agreed, moved as you suggested.  I have trouble figuring out the
importance sometimes, and this section is very large.

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.