Re: PG 18 release notes draft committed
Atsushi Torikoshi <torikoshia.tech@gmail.com>
Commits
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
doc PG 18 relnotes: add AFTER trigger user change item
- 73e26cbeb592 18.0 landed
-
doc PG 18 relnotes: modify async I/O item for other improvements
- 03c53a73141a 18.0 landed
-
doc PG 18 relnotes: split apart log_connections item
- a1de1b0833b8 18.0 landed
-
doc PG 18 relnotes: move ANALYZE item,split ANALYZE/EXPLAIN item
- bf6034d00dd4 18.0 landed
-
doc PG 18 relnotes: clarify multiplication item
- c861092b0e0f 18.0 landed
-
doc PG 18 relnotes: add removal details to MD5 item
- 3e782ca32225 18.0 landed
-
doc PG 18 relnotes: fix markup
- 08b8aa174840 18.0 landed
-
doc PG 18 relnotes: clarify btree skip-scan item
- 44ce4e1593b1 18.0 landed
-
doc PG 18 relnotes: update to current
- 1ca583f6c0f9 18.0 landed
-
doc PG 18 relnotes: adjust CREATE SUBSCRIPTION attribution
- 883339c170d1 18.0 landed
-
doc PG 18 relnotes: clarify btree skip scan item
- 7ddfac79f2cd 18.0 landed
-
doc PG 18 relnotes: mv. hash joins and GROUP BY item to General
- 99ddf8615c21 18.0 landed
-
Add support for runtime arguments in injection points
- 371f2db8b05e 18.0 cited
-
doc PG 18 relnotes: fix missing parens for crc32c()
- 89372d0aaa4a 18.0 landed
-
PG 18 relnotes: adjust RETURNING new/old item
- 9d710a1ac091 18.0 landed
-
doc PG 18 relnotes: adjust pg_log_backend_memory_contexts()
- 9fef27a83b31 18.0 landed
-
doc PG 18 relnotes: add pg_log_backend_memory_contexts() mention
- f8d49aa130b2 18.0 landed
-
doc PG 18 relnotes: adjust pgbench per-script reporting item
- 69aca072ebf6 18.0 landed
-
doc PG 18 relnotes: mention GROUP SET fixes
- 3bd5271729c5 18.0 landed
-
doc PG 18 relnotes: adjust partition planning item
- b560ce7884a3 18.0 landed
-
doc PG 18 relnotes: small adjustments regarding options
- ada78f9bef2e 18.0 landed
-
doc PG 18 relnotes: move partition locking item to General Perf
- 575f6003eddb 18.0 landed
-
doc PG 18 relnotes: adjust partition items
- 45750c6cfe8d 18.0 landed
-
doc PG 18 relnotes: reword OAuth item
- c0e6aace02b6 18.0 landed
-
doc PG 18 relnotes: add mention of pg_stat_reset_backend_stats()
- 0de2e1c8b542 18.0 landed
-
doc PG 18 relnotes: adjust hash item
- 092e72a93023 18.0 landed
-
doc PG 18 relnotes: split partition optimizer item into two
- cf847d6340a6 18.0 landed
-
doc PG 18 relnotes: adjust COPY and REJECT_LIMIT items
- b3754dcc9ff7 18.0 landed
-
doc PG 18 relnotes: move and clarify constraint items
- d83981c24be7 18.0 landed
-
doc PG 18 relnotes: add commit for cancel key and protocol neg.
- 8c9eec540dc4 18.0 landed
-
doc PG 18 relnotes: fix libpq wording
- a675149e8770 18.0 landed
-
doc PG 18 relnotes: add GROUP BY column elimination item
- 24987c6f0687 18.0 landed
-
doc PG 18 relnotes: move protocol version item to "server"
- 04b269da56db 18.0 landed
-
doc PG 18 relnotes: adjust libpq trace & potocol version items
- 9f8fcadb2087 18.0 landed
-
doc PG 18 relnotes: reword and reorder items
- aa82ebdc2970 18.0 landed
-
doc: Fix memory context level in pg_log_backend_memory_contexts() example.
- 706cbed35103 18.0 cited
-
Make levels 1-based in pg_log_backend_memory_contexts()
- d9e03864b6b4 18.0 cited
-
Introduce file_copy_method setting.
- f78ca6f3ebbb 18.0 cited
-
libpq: Handle NegotiateProtocolVersion message differently
- 5070349102af 18.0 cited
-
Add timingsafe_bcmp(), for constant-time memory comparison
- 09be39112654 18.0 cited
-
Optimization for lower(), upper(), casefold() functions.
- 27bdec06841d 18.0 cited
-
Fix ALTER SUBSCRIPTION ... SET PUBLICATION ... command.
- 7c99dc587a01 18.0 cited
-
Add connection establishment duration logging
- 18cd15e706ac 18.0 cited
-
Modularize log_connections output
- 9219093cab26 18.0 cited
-
Ensure that AFTER triggers run as the instigating user.
- 01463e1cccd3 18.0 cited
-
Detect redundant GROUP BY columns using UNIQUE indexes
- bd10ec529796 18.0 cited
-
Move cancel key generation to after forking the backend
- 9d9b9d46f3c5 18.0 cited
Hi, On Fri, May 2, 2025 at 11:44 AM Bruce Momjian <bruce@momjian.us> wrote: > > I have committd the first draft of the PG 18 release notes. The item > count looks strong: > > release-7.4: 263 > release-8.0: 230 > release-8.1: 174 > release-8.2: 215 > release-8.3: 214 > release-8.4: 314 > release-9.0: 237 > release-9.1: 203 > release-9.2: 238 > release-9.3: 177 > release-9.4: 211 > release-9.5: 193 > release-9.6: 214 > release-10: 189 > release-11: 170 > release-12: 180 > release-13: 178 > release-14: 220 > release-15: 184 > release-16: 206 > release-17: 182 > release-18: 209 > > I will continue improving it until beta 1, and until the final release. > I will probably add markup in 1-3 weeks. Let the feedback begin. ;-) Thanks for your work! > Add REJECT_LIMIT to control the number of invalid rows COPY IN can ignore (Atsushi Torikoshi) Since REJECT_LIMIT cannot be used with COPY IN but can be used with COPY FROM, I think "IN" should be "FROM". =# COPY t1 TO '/tmp/a' WITH (REJECT_LIMIT 3); ERROR: COPY REJECT_LIMIT requires ON_ERROR to be set to IGNORE =# COPY t1 TO '/tmp/a' WITH ( ON_ERROR ignore, REJECT_LIMIT 3); ERROR: COPY ON_ERROR cannot be used with COPY TO LINE 1: COPY t1 to '/tmp/a' WITH (ON_ERROR ignore, REJECT_LIMIT 3); > This is active when ON_ERROR = 'ignore'. As a non-native English speaker, I may be misunderstanding this, but the word "active" might suggest that REJECT_LIMIT always takes effect by default, causing the COPY operation to stop after a certain number of errors. However, in reality, REJECT_LIMIT does not have any effect by default — unless explicitly set, there is no limit on the number of rows that can be skipped when ON_ERROR is set to ignore. To avoid this potential confusion, a phrasing like: This option must be used with ON_ERROR ignore. might be clearer. Also, in the v17 release notes, COPY option values are not enclosed in single quotes but written in <literal> tag. For consistency, it might be better to follow the same style in the v18 notes as well. -- https://www.postgresql.org/docs/current/release-17.html Add new COPY option ON_ERROR ignore to discard error rows The default behavior is ON_ERROR stop > Add COPY log_verbosity level "silent" to suppress all log output (Atsushi Torikoshi) Similarly, in the v17 release notes, the log_verbosity option was written in uppercase (LOG_VERBOSITY). For consistency, it may be preferable to use the same case formatting in this entry as well. -- https://www.postgresql.org/docs/current/release-17.html Add new COPY option LOG_VERBOSITY which reports COPY FROM ignored error rows Also, the phrase "suppress all log output" may be slightly misleading. Even with log_verbosity = 'silent', COPY still outputs logs — it only suppresses log messages related to skipped rows when ON_ERROR ignore is used. It might help to clarify this nuance to avoid confusion. For example, how about "Add COPY LOG_VERBOSITY silent to suppress logs related to skipped rows"? > Add on_error and log_verbosity options to file_fdw (Atsushi Torikoshi) > Add REJECT_LIMIT to control the number of invalid rows file_fdw can ignore (Atsushi Torikoshi) > This is active when ON_ERROR = 'ignore'. The case of option names for file_fdw is inconsistent — some are lowercase (on_error, log_verbosity), while others use uppercase (REJECT_LIMIT, ON_ERROR). For consistency, it might be better to standardize the option names throughout the release notes. Since the file_fdw documentation consistently uses lowercase for all options, using lowercase in the release notes as well might feel more natural. -- Regards, Atsushi Torikoshi