1 <!-- doc/src/sgml/release-16.sgml -->
2 <!-- See header comment in release.sgml about typical markup -->
4 <sect1 id=
"release-16">
5 <title>Release
16</title>
8 <title>Release date:
</title>
9 <para>2023-
09-
14</para>
12 <sect2 id=
"release-16-highlights">
13 <title>Overview
</title>
16 <productname>PostgreSQL
</productname> 16 contains many new features
17 and enhancements, including:
24 Allow parallelization of
<literal>FULL
</literal> and internal right
<literal>OUTER
</literal> hash joins
30 Allow logical replication from standby servers
36 Allow logical replication subscribers to apply large transactions in parallel
42 Allow monitoring of
<acronym>I/O
</acronym> statistics using the new
<structname>pg_stat_io
</structname> view
48 Add
<acronym>SQL/JSON
</acronym> constructors and identity functions
54 Improve performance of vacuum freezing
60 Add support for regular expression matching of user and database names in
<filename>pg_hba.conf
</filename>, and user names in
<filename>pg_ident.conf
</filename>
67 The above items and other new features of
68 <productname>PostgreSQL
</productname> 16 are explained in more detail
69 in the sections below.
74 <sect2 id=
"release-16-migration">
76 <title>Migration to Version
16</title>
79 A dump/restore using
<xref linkend=
"app-pg-dumpall"/> or use of
80 <xref linkend=
"pgupgrade"/> or logical replication is required for
81 those wishing to migrate data from any previous release. See
<xref
82 linkend=
"upgrading"/> for general information on migrating to new
87 Version
16 contains a number of changes that may affect compatibility
88 with previous releases. Observe the following incompatibilities:
94 Author: Tom Lane <tgl@sss.pgh.pa.us>
95 2023-01-01 [d747dc85a] In plpgsql, don't preassign portal names to bound cursor
100 Change assignment rules for
<link
101 linkend=
"plpgsql-open-bound-cursor"><application>PL/pgSQL
</application></link>
102 bound cursor variables (Tom Lane)
106 Previously, the string value of such variables
107 was set to match the variable name during cursor
108 assignment; now it will be assigned during
<link
109 linkend=
"plpgsql-cursor-opening"><command>OPEN
</command></link>,
110 and will not match the variable name. To restore the previous
111 behavior, assign the desired portal name to the cursor variable
112 before
<command>OPEN
</command>.
117 Author: Daniel Gustafsson <dgustafsson@postgresql.org>
118 2023-02-24 [d95952325] Disallow NULLS NOT DISTINCT indexes for primary keys
123 Disallow
<link linkend=
"sql-createindex"><literal>NULLS NOT
124 DISTINCT
</literal></link> indexes for primary keys (Daniel
130 Author: Michael Paquier <michael@paquier.xyz>
131 2022-07-19 [2cbc3c17a] Rework logic and simplify syntax of REINDEX DATABASE/SYS
132 Author: Michael Paquier <michael@paquier.xyz>
133 2022-07-26 [0a5f06b84] Fix a few issues with REINDEX grammar
138 Change
<link linkend=
"sql-reindex"><command>REINDEX
139 DATABASE
</command></link> and
<link
140 linkend=
"app-reindexdb"><application>reindexdb
</application></link>
141 to not process indexes on system catalogs (Simon Riggs)
145 Processing such indexes is still possible using
<command>REINDEX
146 SYSTEM
</command> and
<link linkend=
"app-reindexdb"><command>reindexdb
147 --system
</command></link>.
152 Author: Tom Lane <tgl@sss.pgh.pa.us>
153 2023-01-11 [8bf6ec3ba] Improve handling of inherited GENERATED expressions.
159 linkend=
"ddl-generated-columns"><literal>GENERATED
</literal></link>
160 expression restrictions on inherited and partitioned tables (Amit
165 Columns of parent/partitioned and child/partition tables must all
166 have the same generation status, though now the actual generation
167 expressions can be different.
172 Author: Michael Paquier <michael@paquier.xyz>
173 2023-03-14 [5c1b66280] Rework design of functions in pg_walinspect
179 linkend=
"pgwalinspect"><application>pg_walinspect
</application></link>
181 <function>pg_get_wal_records_info_till_end_of_wal()
</function>
182 and
<function>pg_get_wal_stats_till_end_of_wal()
</function>
188 Author: David Rowley <drowley@postgresql.org>
189 2023-02-15 [5352ca22e] Rename force_parallel_mode to debug_parallel_query
190 Author: David Rowley <drowley@postgresql.org>
191 2023-04-14 [0981846b9] Remove old GUC name mapping for "force_parallel_mode"
196 Rename server variable
197 <varname>force_parallel_mode
</varname> to
<link
198 linkend=
"guc-debug-parallel-query"><varname>debug_parallel_query
</varname></link>
204 Author: Tom Lane <tgl@sss.pgh.pa.us>
205 2022-12-02 [b23cd185f] Remove logic for converting a table to a view.
210 Remove the ability to
<link linkend=
"sql-createview">create
211 views
</link> manually with
<literal>ON SELECT
</literal> rules
217 Author: Andres Freund <andres@anarazel.de>
218 2023-04-24 [1118cd37e] Remove vacuum_defer_cleanup_age
223 Remove the server variable
224 <varname>vacuum_defer_cleanup_age
</varname> (Andres Freund)
228 This has been unnecessary since
<link
229 linkend=
"guc-hot-standby-feedback"><varname>hot_standby_feedback
</varname></link>
230 and
<link linkend=
"streaming-replication-slots">replication
231 slots
</link> were added.
236 Author: Thomas Munro <tmunro@postgresql.org>
237 2022-11-29 [cd4329d93] Remove promote_trigger_file.
242 Remove server variable
<varname>promote_trigger_file
</varname>
247 This was used to promote a standby to primary, but is now easier
248 accomplished with
<link linkend=
"app-pg-ctl"><literal>pg_ctl
249 promote
</literal></link> or
<link
250 linkend=
"functions-recovery-control-table"><function>pg_promote()
</function></link>.
255 Author: Peter Eisentraut <peter@eisentraut.org>
256 2023-06-07 [b0f6c4371] Remove read-only server settings lc_collate and lc_ctype
261 Remove read-only server variables
<varname>lc_collate
</varname>
262 and
<varname>lc_ctype
</varname> (Peter Eisentraut)
266 Collations and locales can vary between databases so having them
267 as read-only server variables was unhelpful.
272 Author: Robert Haas <rhaas@postgresql.org>
273 2022-08-25 [e3ce2de09] Allow grant-level control of role inheritance behavior.
278 Role inheritance now controls the default
279 inheritance status of member roles added during
<link
280 linkend=
"sql-grant"><command>GRANT
</command></link> (Robert Haas)
284 The role's default inheritance behavior can be overridden with the
285 new
<command>GRANT ... WITH INHERIT
</command> clause. This allows
286 inheritance of some roles and not others because the members'
287 inheritance status is set at
<command>GRANT
</command> time.
288 Previously the inheritance status of member roles was controlled
289 only by the role's inheritance status, and changes to a role's
290 inheritance status affected all previous and future member roles.
295 Author: Robert Haas <rhaas@postgresql.org>
296 2023-01-10 [cf5eb37c5] Restrict the privileges of CREATEROLE users.
297 Author: Robert Haas <rhaas@postgresql.org>
298 2023-01-24 [f1358ca52] Adjust interaction of CREATEROLE with role properties.
303 Restrict the privileges of
<link
304 linkend=
"sql-createrole"><literal>CREATEROLE
</literal></link>
305 and its ability to modify other roles (Robert Haas)
309 Previously roles with
<literal>CREATEROLE
</literal> privileges could
310 change many aspects of any non-superuser role. Such changes,
311 including adding members, now require the role requesting
312 the change to have
<literal>ADMIN OPTION
</literal> permission.
313 For example, they can now change the
<literal>CREATEDB
</literal>,
314 <literal>REPLICATION
</literal>, and
<literal>BYPASSRLS
</literal>
315 properties only if they also have those permissions.
320 Author: Peter Eisentraut <peter@eisentraut.org>
321 2023-01-26 [37e267335] Don't install postmaster symlink anymore
326 Remove symbolic links for the
<application>postmaster
</application>
327 binary (Peter Eisentraut)
335 <sect2 id=
"release-16-changes">
336 <title>Changes
</title>
339 Below you will find a detailed account of the changes between
340 <productname>PostgreSQL
</productname> 16 and the previous major
344 <sect3 id=
"release-16-server">
345 <title>Server
</title>
347 <sect4 id=
"release-16-optimizer">
348 <title>Optimizer
</title>
353 Author: David Rowley <drowley@postgresql.org>
354 2022-08-02 [b59242209] Relax overly strict rules in select_outer_pathkeys_for_m
355 Author: David Rowley <drowley@postgresql.org>
356 2023-01-11 [3c6fc5820] Have the planner consider Incremental Sort for DISTINCT
361 Allow incremental sorts in more cases, including
362 <literal>DISTINCT
</literal> (David Rowley)
367 Author: David Rowley <drowley@postgresql.org>
368 2022-08-02 [1349d2790] Improve performance of ORDER BY / DISTINCT aggregates
369 Author: David Rowley <drowley@postgresql.org>
370 2022-12-20 [3226f4728] Add enable_presorted_aggregate GUC
371 Author: David Rowley <drowley@postgresql.org>
372 2023-01-17 [da5800d5f] Don't presort ORDER BY/DISTINCT Aggrefs with volatile fu
377 Add the ability for aggregates having
<literal>ORDER BY
</literal>
378 or
<literal>DISTINCT
</literal> to use pre-sorted data (David
383 The new server variable
<link
384 linkend=
"guc-enable-presorted-aggregate"><varname>enable_presorted_aggregate
</varname></link>
385 can be used to disable this.
390 Author: Tom Lane <tgl@sss.pgh.pa.us>
391 2023-03-16 [9bfd2822b] Enable use of Memoize atop an Append that came from UNIO
396 Allow memoize atop a
<literal>UNION ALL
</literal> (Richard Guo)
401 Author: Tom Lane <tgl@sss.pgh.pa.us>
402 2023-04-05 [16dc2703c] Support "Right Anti Join" plan shapes.
407 Allow anti-joins to be performed with the non-nullable input as
408 the inner relation (Richard Guo)
413 Author: Thomas Munro <tmunro@postgresql.org>
414 2023-03-31 [11c2d6fdf] Parallel Hash Full Join.
419 Allow parallelization of
<link
420 linkend=
"queries-join"><literal>FULL
</literal></link> and internal
421 right
<literal>OUTER
</literal> hash joins (Melanie Plageman,
427 Author: Alexander Korotkov <akorotkov@postgresql.org>
428 2023-01-08 [cd9479af2] Improve GIN cost estimation
433 Improve the accuracy of
<link
434 linkend=
"gin"><literal>GIN
</literal></link> index access optimizer
435 costs (Ronan Dunklau)
443 <sect4 id=
"release-16-performance">
444 <title>General Performance
</title>
449 Author: Andres Freund <andres@anarazel.de>
450 2023-04-06 [00d1e02be] hio: Use ExtendBufferedRelBy() to extend tables more eff
451 Author: Andres Freund <andres@anarazel.de>
452 2023-04-06 [26158b852] Use ExtendBufferedRelTo() in XLogReadBufferExtended()
457 Allow more efficient addition of heap and index pages (Andres
463 Author: Peter Geoghegan <pg@bowt.ie>
464 2022-09-08 [d977ffd92] Instrument freezing in autovacuum log reports.
465 Author: Peter Geoghegan <pg@bowt.ie>
466 2022-11-15 [9e5405993] Deduplicate freeze plans in freeze WAL records.
467 Author: Peter Geoghegan <pg@bowt.ie>
468 2022-12-28 [1de58df4f] Add page-level freezing to VACUUM.
473 During non-freeze operations, perform page
<link
474 linkend=
"vacuum-for-wraparound">freezing
</link> where appropriate
479 This makes full-table freeze vacuums less necessary.
484 Author: David Rowley <drowley@postgresql.org>
485 2022-12-23 [ed1a88dda] Allow window functions to adjust their frameOptions
490 Allow window functions to use the faster
<link
491 linkend=
"syntax-window-functions"><literal>ROWS
</literal></link>
492 mode internally when
<literal>RANGE
</literal> mode is active but
493 unnecessary (David Rowley)
498 Author: David Rowley <drowley@postgresql.org>
499 2023-01-27 [456fa635a] Teach planner about more monotonic window functions
504 Allow optimization of always-increasing window functions
<link
505 linkend=
"functions-window-table"><function>ntile()
</function></link>,
506 <function>cume_dist()
</function> and
507 <function>percent_rank()
</function> (David Rowley)
512 Author: David Rowley <drowley@postgresql.org>
513 2023-01-23 [16fd03e95] Allow parallel aggregate on string_agg and array_agg
518 Allow aggregate functions
<link
519 linkend=
"functions-aggregate-table"><function>string_agg()
</function></link>
520 and
<function>array_agg()
</function> to be parallelized (David
526 Author: David Rowley <drowley@postgresql.org>
527 2022-08-02 [3592e0ff9] Have ExecFindPartition cache the last found partition
532 Improve performance by caching
<link
533 linkend=
"ddl-partitioning-overview"><literal>RANGE
</literal></link>
534 and
<literal>LIST
</literal> partition lookups (Amit Langote,
535 Hou Zhijie, David Rowley)
540 Author: David Rowley <drowley@postgresql.org>
541 2023-04-07 [1cbbee033] Add VACUUM/ANALYZE BUFFER_USAGE_LIMIT option
542 Author: David Rowley <drowley@postgresql.org>
543 2023-04-07 [ae78cae3b] Add - -buffer-usage-limit option to vacuumdb
544 Author: Masahiko Sawada <msawada@postgresql.org>
545 2023-04-28 [b72f564d8] Add unit to vacuum_buffer_usage_limit value in postgresq
550 Allow control of the shared buffer usage by vacuum and analyze
556 linkend=
"sql-vacuum"><command>VACUUM
</command></link>/
<link
557 linkend=
"sql-analyze"><command>ANALYZE
</command></link>
558 option is
<literal>BUFFER_USAGE_LIMIT
</literal>, and the
<link
559 linkend=
"app-vacuumdb"><application>vacuumdb
</application></link>
560 option is
<option>--buffer-usage-limit
</option>.
561 The default value is set by server variable
<link
562 linkend=
"guc-vacuum-buffer-usage-limit"><varname>vacuum_buffer_usage_limit
</varname></link>,
563 which also controls autovacuum.
568 Author: Thomas Munro <tmunro@postgresql.org>
569 2022-07-20 [9430fb407] Add wal_sync_method=fdatasync for Windows.
575 linkend=
"guc-wal-sync-method"><literal>wal_sync_method=fdatasync
</literal></link>
576 on
<systemitem class=
"osname">Windows
</systemitem> (Thomas Munro)
581 Author: Tomas Vondra <tomas.vondra@postgresql.org>
582 2023-03-20 [19d8e2308] Ignore BRIN indexes when checking for HOT updates
587 Allow
<link linkend=
"storage-hot"><acronym>HOT
</acronym></link>
588 updates if only
<literal>BRIN
</literal>-indexed columns are updated
589 (Matthias van de Meent, Josef Simanek, Tomas Vondra)
594 Author: David Rowley <drowley@postgresql.org>
595 2023-02-20 [2cb82e2ac] Speedup and increase usability of set proc title functio
600 Improve the speed of updating the
<link
601 linkend=
"guc-update-process-title">process title
</link> (David
607 Author: John Naylor <john.naylor@postgresql.org>
608 2022-08-11 [37a6e5df3] Optimize xid/subxid searches in XidInMVCCSnapshot().
609 Author: John Naylor <john.naylor@postgresql.org>
610 2022-08-26 [121d2d3d7] Use SSE2 in is_valid_ascii() where available.
611 Author: John Naylor <john.naylor@postgresql.org>
612 2022-08-10 [b6ef16756] Introduce optimized routine for linear searches of array
613 Author: John Naylor <john.naylor@postgresql.org>
614 2022-08-26 [e813e0e16] Add optimized functions for linear search within byte ar
619 Allow
<type>xid
</type>/
<type>subxid
</type> searches and
620 <acronym>ASCII
</acronym> string detection to use vector operations
621 (Nathan Bossart, John Naylor)
625 <acronym>ASCII
</acronym> detection is particularly useful for
626 <link linkend=
"sql-copy"><command>COPY FROM
</command></link>.
627 Vector operations are also used for some C array searches.
633 Author: David Rowley <drowley@postgresql.org>
634 2022-08-29 [c6e0fe1f2] Improve performance of and reduce overheads of memory ma
639 Reduce overhead of memory allocations (Andres Freund, David Rowley)
647 <sect4 id=
"release-16-monitoring">
648 <title>Monitoring
</title>
653 Author: Andres Freund <andres@anarazel.de>
654 2023-02-11 [a9c70b46d] Add pg_stat_io view, providing more detailed IO statisti
655 Author: Andres Freund <andres@anarazel.de>
656 2023-03-30 [8aaa04b32] Track shared buffer hits in pg_stat_io
657 Author: Andres Freund <andres@anarazel.de>
658 2023-04-07 [ac8d53dae] Track IO times in pg_stat_io
659 Author: Michael Paquier <michael@paquier.xyz>
660 2023-04-21 [0ecb87e1f] Remove io prefix from pg_stat_io columns
661 Author: Andres Freund <andres@anarazel.de>
662 2023-05-17 [093e5c57d] Add writeback to pg_stat_io
667 Add system view
<link
668 linkend=
"monitoring-pg-stat-io-view"><structname>pg_stat_io
</structname></link>
669 view to track
<acronym>I/O
</acronym> statistics (Melanie Plageman)
674 Author: Andres Freund <andres@anarazel.de>
675 2022-10-14 [c03747183] pgstat: Track time of the last scan of a relation
680 Record statistics on the last sequential and index scans on tables
685 This information appears in
<link
686 linkend=
"pg-stat-all-tables-view"><structname>pg_stat_*_tables
</structname></link>
688 linkend=
"monitoring-pg-stat-all-indexes-view"><structname>pg_stat_*_indexes
</structname></link>.
693 Author: Peter Geoghegan <pg@bowt.ie>
694 2023-03-23 [ae4fdde13] Count updates that move row to a new page.
699 Record statistics on the occurrence of updated rows moving to
700 new pages (Corey Huinker)
704 The
<literal>pg_stat_*_tables
</literal> column is
<link
705 linkend=
"monitoring-pg-stat-all-tables-view"><structfield>n_tup_newpage_upd
</structfield></link>.
710 Author: Amit Kapila <akapila@postgresql.org>
711 2023-01-10 [f74573969] Fix the display of lock information for specktoken.
716 Add speculative lock information to the
<link
717 linkend=
"view-pg-locks"><structname>pg_locks
</structname></link>
718 system view (Masahiko Sawada, Noriyoshi Shinoda)
722 The transaction id is displayed in the
723 <structfield>transactionid
</structfield> column and
724 the speculative insertion token is displayed in the
725 <structfield>objid
</structfield> column.
730 Author: Peter Eisentraut <peter@eisentraut.org>
731 2022-07-05 [84ad713cf] Add result_types column to pg_prepared_statements view
732 Author: Peter Eisentraut <peter@eisentraut.org>
733 2022-07-05 [6ffff0fd2] Fix pg_prepared_statements.result_types for DML statemen
738 Add the display of prepared statement result types to the
<link
739 linkend=
"view-pg-prepared-statements"><structname>pg_prepared_statements
</structname></link>
740 view (Dagfinn Ilmari Mannsåker)
745 Author: Andres Freund <andres@anarazel.de>
746 2022-10-06 [e0b014295] Create subscription stats entry at CREATE SUBSCRIPTION t
751 Create subscription statistics
752 entries at subscription creation time so
<link
753 linkend=
"pg-stat-database-view"><structfield>stats_reset
</structfield></link>
754 is accurate (Andres Freund)
758 Previously entries were created only when the first statistics
764 Author: Andres Freund <andres@anarazel.de>
765 2023-04-07 [704261ecc] Improve IO accounting for temp relation writes
770 Correct the
<acronym>I/O
</acronym>
771 accounting for temp relation writes shown in
<link
772 linkend=
"pg-stat-database-view"><structname>pg_stat_database
</structname></link>
778 Author: Robert Haas <rhaas@postgresql.org>
779 2022-12-19 [10ea0f924] Expose some information about backend subxact status.
785 linkend=
"monitoring-stats-backend-funcs-table"><function>pg_stat_get_backend_subxact()
</function></link>
786 to report on a session's subtransaction cache (Dilip Kumar)
791 Author: Tom Lane <tgl@sss.pgh.pa.us>
792 2022-09-29 [d7e39d72c] Use actual backend IDs in pg_stat_get_backend_idset() an
798 linkend=
"monitoring-stats-backend-funcs-table"><function>pg_stat_get_backend_idset()
</function></link>,
799 <function>pg_stat_get_backend_activity()
</function>, and related
800 functions use the unchanging backend id (Nathan Bossart)
804 Previously the index values might change during the lifetime of
810 Author: Andres Freund <andres@anarazel.de>
811 2022-08-22 [0c679464a] Add BackendType for standalone backends
816 Report stand-alone backends with a special backend type (Melanie
822 Author: Andres Freund <andres@anarazel.de>
823 2022-11-21 [92daeca45] Add wait event for pg_usleep() in perform_spin_delay()
829 linkend=
"wait-event-timeout-table"><literal>SpinDelay
</literal></link>
830 to report spinlock sleep delays (Andres Freund)
835 Author: Thomas Munro <tmunro@postgresql.org>
836 2022-07-14 [7bae3bbf6] Create a distinct wait event for POSIX DSM allocation.
841 Create new wait event
<link
842 linkend=
"wait-event-io-table"><literal>DSMAllocate
</literal></link>
843 to indicate waiting for dynamic shared memory allocation (Thomas
848 Previously this type of wait was reported as
849 <literal>DSMFillZeroWrite
</literal>, which was also used by
850 <function>mmap()
</function> allocations.
855 Author: Michael Paquier <michael@paquier.xyz>
856 2022-11-24 [af205152e] Add the database name to the ps display of logical WAL s
861 Add the database name to the
<link
862 linkend=
"guc-update-process-title">process title
</link> of logical
863 <acronym>WAL
</acronym> senders (Tatsuhiro Nakamori)
867 Physical
<acronym>WAL
</acronym> senders do not display a database
873 Author: Fujii Masao <fujii@postgresql.org>
874 2022-07-07 [62c46eee2] Add checkpoint and REDO LSN to log_checkpoints message.
879 Add checkpoint and
<literal>REDO LSN
</literal> information to
<link
880 linkend=
"guc-log-checkpoints"><varname>log_checkpoints
</varname></link>
881 messages (Bharath Rupireddy, Kyotaro Horiguchi)
886 Author: Peter Eisentraut <peter@eisentraut.org>
887 2022-07-15 [3a0e38504] Log details for client certificate failures
892 Provide additional details during client certificate failures
901 <sect4 id=
"release-16-privileges">
902 <title>Privileges
</title>
907 Author: Robert Haas <rhaas@postgresql.org>
908 2023-03-30 [c3afe8cf5] Add new predefined role pg_create_subscription.
913 Add predefined role
<link
914 linkend=
"predefined-roles"><literal>pg_create_subscription
</literal></link>
915 with permission to create subscriptions (Robert Haas)
920 Author: Robert Haas <rhaas@postgresql.org>
921 2023-03-30 [c3afe8cf5] Add new predefined role pg_create_subscription.
922 Author: Amit Kapila <akapila@postgresql.org>
923 2023-04-20 [c1cc4e688] Restart the apply worker if the 'password_required' opti
924 Author: Amit Kapila <akapila@postgresql.org>
925 2023-04-24 [19e65dff3] Display 'password_required' option for \dRs+ command.
930 Allow subscriptions to not require passwords (Robert Haas)
934 This is accomplished with the option
<link
935 linkend=
"sql-createsubscription"><literal>password_required=false
</literal></link>.
940 Author: Jeff Davis <jdavis@postgresql.org>
941 2023-01-13 [c44f6334c] Simplify permissions for LOCK TABLE.
946 Simplify permissions for
<link linkend=
"sql-lock"><command>LOCK
947 TABLE
</command></link> (Jeff Davis)
951 Previously a user's ability to perform
<command>LOCK
952 TABLE
</command> at various lock levels was limited to the
953 lock levels required by the commands they had permission
954 to execute on the table. For example, someone with
<link
955 linkend=
"sql-update"><command>UPDATE
</command></link>
956 permission could perform all lock levels except
<literal>ACCESS
957 SHARE
</literal>, even though it was a lesser lock level. Now users
958 can issue lesser lock levels if they already have permission for
964 Author: Robert Haas <rhaas@postgresql.org>
965 2022-08-22 [ce6b672e4] Make role grant system more consistent with other privil
970 Allow
<link linkend=
"sql-grant"><literal>GRANT group_name TO
971 user_name
</literal></link> to be performed with
<literal>ADMIN
972 OPTION
</literal> (Robert Haas)
976 Previously
<literal>CREATEROLE
</literal> permission was required.
981 Author: Robert Haas <rhaas@postgresql.org>
982 2022-08-25 [e3ce2de09] Allow grant-level control of role inheritance behavior.
987 Allow
<link linkend=
"sql-grant"><command>GRANT
</command></link>
988 to use
<literal>WITH ADMIN TRUE
</literal>/
<literal>FALSE
</literal>
993 Previously only the
<literal>WITH ADMIN OPTION
</literal> syntax
999 Author: Robert Haas <rhaas@postgresql.org>
1000 2023-01-10 [e5b8a4c09] Add new GUC createrole_self_grant.
1001 Author: Daniel Gustafsson <dgustafsson@postgresql.org>
1002 2023-02-22 [e00bc6c92] doc: Add default value of createrole_self_grant
1007 Allow roles that create other roles to automatically
1008 inherit the new role's rights or the ability to
<link
1009 linkend=
"sql-set-role"><command>SET ROLE
</command></link> to the
1010 new role (Robert Haas, Shi Yu)
1014 This is controlled by server variable
<link
1015 linkend=
"guc-createrole-self-grant"><varname>createrole_self_grant
</varname></link>.
1020 Author: Robert Haas <rhaas@postgresql.org>
1021 2022-09-19 [48a257d44] Make ALTER DEFAULT PRIVILEGES require privileges, not me
1026 Prevent users from changing the default privileges of non-inherited
1031 This is now only allowed for inherited roles.
1036 Author: Robert Haas <rhaas@postgresql.org>
1037 2022-08-22 [ce6b672e4] Make role grant system more consistent with other privil
1042 When granting role membership, require the granted-by role to be
1043 a role that has appropriate permissions (Robert Haas)
1047 This is a requirement even when a non-bootstrap superuser is
1048 granting role membership.
1053 Author: Robert Haas <rhaas@postgresql.org>
1054 2022-08-22 [ce6b672e4] Make role grant system more consistent with other privil
1059 Allow non-superusers to grant permissions using a granted-by user
1060 that is not the current user (Robert Haas)
1064 The current user still must have sufficient permissions given by
1065 the specified granted-by user.
1070 Author: Robert Haas <rhaas@postgresql.org>
1071 2022-11-18 [3d14e171e] Add a SET option to the GRANT command.
1076 Add
<link linkend=
"sql-grant"><command>GRANT
</command></link> to
1077 control permission to use
<link linkend=
"sql-set-role"><command>SET
1078 ROLE
</command></link> (Robert Haas)
1082 This is controlled by a new
<literal>GRANT ... SET
</literal>
1088 Author: Robert Haas <rhaas@postgresql.org>
1089 2022-08-22 [ce6b672e4] Make role grant system more consistent with other privil
1094 Add dependency tracking to roles which have granted privileges
1099 For example, removing
<literal>ADMIN OPTION
</literal> will fail if
1100 there are privileges using that option;
<literal>CASCADE
</literal>
1101 must be used to revoke dependent permissions.
1106 Author: Robert Haas <rhaas@postgresql.org>
1107 2022-08-18 [6566133c5] Ensure that pg_auth_members.grantor is always valid.
1112 Add dependency tracking of grantors for
<link
1113 linkend=
"sql-grant"><command>GRANT
</command></link> records
1118 This guarantees that
<link
1119 linkend=
"catalog-pg-auth-members"><structname>pg_auth_members
</structname></link>.
<structfield>grantor
</structfield>
1120 values are always valid.
1125 Author: Robert Haas <rhaas@postgresql.org>
1126 2022-08-22 [ce6b672e4] Make role grant system more consistent with other privil
1127 Author: Robert Haas <rhaas@postgresql.org>
1128 2022-08-31 [0101f770a] Fix a bug in roles_is_member_of.
1133 Allow multiple role membership records (Robert Haas)
1137 Previously a new membership grant would remove a previous matching
1138 membership grant, even if other aspects of the grant did not match.
1143 Author: Robert Haas <rhaas@postgresql.org>
1144 2022-07-26 [e530be2c5] Do not allow removal of superuser privileges from bootst
1149 Prevent removal of superuser privileges for the bootstrap user
1154 Restoring such users could lead to errors.
1159 Author: Tom Lane <tgl@sss.pgh.pa.us>
1160 2022-07-03 [b762bbde3] Allow makeaclitem() to accept multiple privilege names.
1166 linkend=
"functions-aclitem-fn-table"><function>makeaclitem()
</function></link>
1167 to accept multiple privilege names (Robins Tharakan)
1171 Previously only a single privilege name, like
<link
1172 linkend=
"sql-select"><command>SELECT
</command></link>, was
1181 <sect4 id=
"release-16-server-config">
1182 <title>Server Configuration
</title>
1187 Author: Stephen Frost <sfrost@snowman.net>
1188 2023-04-13 [6633cfb21] De-Revert "Add support for Kerberos credential delegatio
1189 Author: Bruce Momjian <bruce@momjian.us>
1190 2023-05-20 [9c0a0e2ed] rename "gss_accept_deleg" to "gss_accept_delegation".
1191 Author: Nathan Bossart <nathan@postgresql.org>
1192 2023-05-20 [f4001a553] Fix remaining references to gss_accept_deleg.
1193 Author: Tom Lane <tgl@sss.pgh.pa.us>
1194 2023-05-21 [a2eb99a01] Expand some more uses of "deleg" to "delegation" or "del
1199 Add support for
<productname>Kerberos
</productname> credential
1200 delegation (Stephen Frost)
1204 This is enabled with server variable
<link
1205 linkend=
"guc-gss-accept-delegation"><varname>gss_accept_delegation
</varname></link>
1206 and
<application>libpq
</application> connection parameter
<link
1207 linkend=
"libpq-connect-gssdelegation"><literal>gssdelegation
</literal></link>.
1212 Author: Daniel Gustafsson <dgustafsson@postgresql.org>
1213 2023-03-27 [b57774300] Make SCRAM iteration count configurable
1218 Allow the
<acronym>SCRAM
</acronym> iteration
1219 count to be set with server variable
<link
1220 linkend=
"guc-scram-iterations"><varname>scram_iterations
</varname></link>
1226 Author: Tom Lane <tgl@sss.pgh.pa.us>
1227 2022-10-14 [3057465ac] Replace the sorted array of GUC variables with a hash ta
1228 Author: Tom Lane <tgl@sss.pgh.pa.us>
1229 2022-10-14 [f13b2088f] Add auxiliary lists to GUC data structures for better pe
1234 Improve performance of server variable management (Tom Lane)
1239 Author: Tom Lane <tgl@sss.pgh.pa.us>
1240 2022-09-27 [385366426] Introduce GUC_NO_RESET flag.
1245 Tighten restrictions on which server variables can be reset
1250 Previously, while certain variables, like
<link
1251 linkend=
"guc-default-transaction-isolation"><varname>transaction_isolation
</varname></link>,
1252 were not affected by
<link linkend=
"sql-reset"><command>RESET
1253 ALL
</command></link>, they could be individually reset in
1254 inappropriate situations.
1259 Author: Michael Paquier <michael@paquier.xyz>
1260 2022-08-09 [0b039e3a8] Fix some inconsistencies with GUC categories
1266 linkend=
"config-setting-configuration-file"><filename>postgresql.conf
</filename></link>
1267 items into new categories (Shinya Kato)
1271 This also affects the categories displayed in the
<link
1272 linkend=
"view-pg-settings"><structname>pg_settings
</structname></link>
1278 Author: Michael Paquier <michael@paquier.xyz>
1279 2022-11-25 [d13b68411] Introduce variables for initial and max nesting depth on
1284 Prevent configuration file recursion beyond
10 levels (Julien
1290 Author: Daniel Gustafsson <dgustafsson@postgresql.org>
1291 2023-04-07 [7d71d3dd0] Refresh cost-based delay params more frequently in autov
1292 Author: Daniel Gustafsson <dgustafsson@postgresql.org>
1293 2023-04-20 [a9781ae11] Fix autovacuum cost debug logging
1298 Allow
<link linkend=
"autovacuum">autovacuum
</link> to more
1299 frequently honor changes to delay settings (Melanie Plageman)
1303 Rather than honor changes only at the start of each relation,
1304 honor them at the start of each block.
1309 Author: Fujii Masao <fujii@postgresql.org>
1310 2022-07-26 [756e221db] Reduce overhead of renaming archive status files.
1311 Author: Fujii Masao <fujii@postgresql.org>
1312 2022-07-26 [3cabe45a8] doc: Add note about re-archiving of same WAL files in do
1317 Remove restrictions that archive files be durably renamed
1323 linkend=
"guc-archive-command"><varname>archive_command
</varname></link>
1324 command is now more likely to be called with already-archived
1325 files after a crash.
1330 Author: Peter Eisentraut <peter@eisentraut.org>
1331 2022-11-15 [d627ce3b7] Disallow setting archive_library and archive_command at
1337 linkend=
"guc-archive-library"><varname>archive_library
</varname></link>
1339 linkend=
"guc-archive-command"><varname>archive_command
</varname></link>
1340 from being set at the same time (Nathan Bossart)
1344 Previously
<varname>archive_library
</varname> would override
1345 <varname>archive_command
</varname>.
1350 Author: Tom Lane <tgl@sss.pgh.pa.us>
1351 2022-11-21 [51b5834cd] Provide options for postmaster to kill child processes w
1356 Allow the postmaster to terminate children with an abort signal
1361 This allows collection of a core dump for a
1362 stuck child process. This is controlled by
<link
1363 linkend=
"guc-send-abort-for-crash"><varname>send_abort_for_crash
</varname></link>
1365 linkend=
"guc-send-abort-for-kill"><varname>send_abort_for_kill
</varname></link>.
1366 The postmaster's
<option>-T
</option> switch is now the same as
1367 setting
<varname>send_abort_for_crash
</varname>.
1372 Author: Tom Lane <tgl@sss.pgh.pa.us>
1373 2022-11-21 [51b5834cd] Provide options for postmaster to kill child processes w
1378 Remove the non-functional postmaster
<option>-n
</option> option
1384 Author: Robert Haas <rhaas@postgresql.org>
1385 2023-01-20 [6e2775e4d] Add new GUC reserved_connections.
1390 Allow the server to reserve backend slots for roles with
<link
1391 linkend=
"predefined-roles"><literal>pg_use_reserved_connections
</literal></link>
1392 membership (Nathan Bossart)
1396 The number of reserved slots is set by server variable
<link
1397 linkend=
"guc-reserved-connections"><varname>reserved_connections
</varname></link>.
1402 Author: Michael Paquier <michael@paquier.xyz>
1403 2022-09-17 [fdd8937c0] Fix huge_pages on Windows
1408 Allow
<link linkend=
"guc-huge-pages">huge pages
</link> to
1409 work on newer versions of
<systemitem class=
"osname">Windows
1410 10</systemitem> (Thomas Munro)
1414 This adds the special handling required to enable huge pages
1415 on newer versions of
<systemitem class=
"osname">Windows
1421 Author: Thomas Munro <tmunro@postgresql.org>
1422 2023-04-08 [d4e71df6d] Add io_direct setting (developer-only).
1423 Author: Thomas Munro <tmunro@postgresql.org>
1424 2023-05-15 [319bae9a8] Rename io_direct to debug_io_direct.
1430 linkend=
"guc-debug-io-direct"><varname>debug_io_direct
</varname></link>
1431 setting for developer usage (Thomas Munro, Andres Freund,
1436 While primarily for developers,
<link
1437 linkend=
"guc-wal-sync-method"><literal>wal_sync_method=open_sync
</literal></link>/
<literal>open_datasync
</literal>
1438 has been modified to not use direct
<acronym>I/O
</acronym> with
1439 <literal>wal_level=minimal
</literal>; this is now enabled with
1440 <literal>debug_io_direct=wal
</literal>.
1445 Author: Michael Paquier <michael@paquier.xyz>
1446 2022-12-20 [cca186348] Add pg_dissect_walfile_name()
1447 Author: Michael Paquier <michael@paquier.xyz>
1448 2022-12-23 [13e0d7a60] Rename pg_dissect_walfile_name() to pg_split_walfile_nam
1454 linkend=
"functions-admin-backup-table"><function>pg_split_walfile_name()
</function></link>
1455 to report the segment and timeline values of
<acronym>WAL
</acronym>
1456 file names (Bharath Rupireddy)
1464 <sect4 id=
"release-16-pg-hba">
1465 <title><link linkend=
"auth-pg-hba-conf">pg_hba.conf
</link></title>
1470 Author: Michael Paquier <michael@paquier.xyz>
1471 2022-10-24 [8fea86830] Add support for regexps on database and user entries in
1476 Add support for regular expression matching on database and role
1477 entries in
<filename>pg_hba.conf
</filename> (Bertrand Drouvot)
1481 Regular expression patterns are prefixed with a slash. Database
1482 and role names that begin with slashes need to be double-quoted
1483 if referenced in
<filename>pg_hba.conf
</filename>.
1488 Author: Michael Paquier <michael@paquier.xyz>
1489 2023-01-20 [efb6f4a4f] Support the same patterns for pg-user in pg_ident.conf a
1494 Improve user-column handling of
<link
1495 linkend=
"runtime-config-file-locations"><filename>pg_ident.conf
</filename></link>
1496 to match
<filename>pg_hba.conf
</filename> (Jelte Fennema)
1500 Specifically, add support for
<literal>all
</literal>, role
1501 membership with
<literal>+
</literal>, and regular expressions
1502 with a leading slash. Any user name that matches these patterns
1503 must be double-quoted.
1508 Author: Michael Paquier <michael@paquier.xyz>
1509 2022-11-24 [a54b658ce] Add support for file inclusions in HBA and ident configu
1514 Allow include files in
<filename>pg_hba.conf
</filename> and
1515 <filename>pg_ident.conf
</filename> (Julien Rouhaud)
1519 These are controlled by
<literal>include
</literal>,
1520 <literal>include_if_exists
</literal>, and
1521 <literal>include_dir
</literal>. System views
<link
1522 linkend=
"view-pg-hba-file-rules"><structname>pg_hba_file_rules
</structname></link>
1524 linkend=
"view-pg-ident-file-mappings"><structname>pg_ident_file_mappings
</structname></link>
1525 now display the file name.
1530 Author: Tom Lane <tgl@sss.pgh.pa.us>
1531 2023-07-27 [de3f0e3fe] Eliminate fixed token-length limit in hba.c.
1536 Allow
<filename>pg_hba.conf
</filename> tokens to be of unlimited
1542 Author: Michael Paquier <michael@paquier.xyz>
1543 2022-10-26 [c591300a8] Add rule_number to pg_hba_file_rules and map_number to p
1548 Add rule and map numbers to the system view
<link
1549 linkend=
"view-pg-hba-file-rules"><structname>pg_hba_file_rules
</structname></link>
1558 <sect4 id=
"release-16-localization">
1559 <title><link linkend=
"charset">Localization
</link></title>
1564 Author: Jeff Davis <jdavis@postgresql.org>
1565 2023-03-10 [c45dc7ffb] initdb: derive encoding from locale for ICU; similar to
1570 Determine the default encoding from the locale when using
1571 <acronym>ICU
</acronym> (Jeff Davis)
1575 Previously the default was always
<literal>UTF-
8</literal>.
1580 Author: Jeff Davis <jdavis@postgresql.org>
1581 Date: Fri Jun 16 10:27:32 2023 -0700
1586 Have
<link linkend=
"sql-createdatabase"><command>CREATE
1587 DATABASE
</command></link> and
<link
1588 linkend=
"sql-createcollation"><command>CREATE
1589 COLLATION
</command></link>'s
<literal>LOCALE
</literal> options, and
1590 <link linkend=
"app-initdb"><application>initdb
</application></link>
1592 linkend=
"app-createdb"><application>createdb
</application></link>
1593 <option>--locale
</option> options, control
1594 non-
<application>libc
</application> collation providers (Jeff
1599 Previously they only controlled
<application>libc
</application>
1605 Author: Peter Eisentraut <peter@eisentraut.org>
1606 2023-03-10 [0d21d4b9b] Add standard collation UNICODE
1611 Add predefined collations
<literal>unicode
</literal> and
1612 <literal>ucs_basic
</literal> (Peter Eisentraut)
1616 This only works if
<acronym>ICU
</acronym> support is enabled.
1621 Author: Peter Eisentraut <peter@eisentraut.org>
1622 2023-03-08 [30a53b792] Allow tailoring of ICU locales with custom rules
1627 Allow custom
<acronym>ICU
</acronym> collation rules to be created
1632 This is done using
<link
1633 linkend=
"sql-createcollation"><command>CREATE
1634 COLLATION
</command></link>'s new
<literal>RULES
</literal>
1635 clause, as well as new options for
<link
1636 linkend=
"sql-createdatabase"><command>CREATE
1637 DATABASE
</command></link>,
<link
1638 linkend=
"app-createdb"><application>createdb
</application></link>,
1640 linkend=
"app-initdb"><application>initdb
</application></link>.
1645 Author: Peter Eisentraut <peter@eisentraut.org>
1646 2023-01-03 [bf03cfd16] Windows support in pg_import_system_collations
1651 Allow
<systemitem class=
"osname">Windows
</systemitem> to import
1652 system locales automatically (Juan José Santamaría Flecha)
1656 Previously, only
<acronym>ICU
</acronym> locales could be imported
1657 on
<systemitem class=
"osname">Windows
</systemitem>.
1667 <sect3 id=
"release-16-logical">
1668 <title><link linkend=
"logical-replication">Logical Replication
</link></title>
1673 Author: Andres Freund <andres@anarazel.de>
1674 2023-04-08 [0fdab27ad] Allow logical decoding on standbys
1675 Author: Andres Freund <andres@anarazel.de>
1676 2023-04-07 [be87200ef] Support invalidating replication slots due to horizon an
1677 Author: Andres Freund <andres@anarazel.de>
1678 2023-04-08 [26669757b] Handle logical slot conflicts on standby
1683 Allow
<link linkend=
"logicaldecoding">logical decoding
</link>
1684 on standbys (Bertrand Drouvot, Andres Freund, Amit Khandekar)
1688 Snapshot
<acronym>WAL
</acronym> records are
1689 required for logical slot creation but cannot be
1690 created on standbys. To avoid delays, the new function
<link
1691 linkend=
"functions-snapshot-synchronization-table"><function>pg_log_standby_snapshot()
</function></link>
1692 allows creation of such records.
1697 Author: Amit Kapila <akapila@postgresql.org>
1698 2022-12-26 [5de94a041] Add 'logical_decoding_mode' GUC.
1699 Author: Amit Kapila <akapila@postgresql.org>
1700 2023-01-30 [1e8b61735] Rename GUC logical_decoding_mode to logical_replication_
1701 Author: Amit Kapila <akapila@postgresql.org>
1702 2023-02-02 [9f2213a7c] Allow the logical_replication_mode to be used on the sub
1707 Add server variable to control how logical decoding publishers
1708 transfer changes and how subscribers apply them (Shi Yu)
1712 The variable is
<link
1713 linkend=
"guc-debug-logical-replication-streaming"><varname>debug_logical_replication_streaming
</varname></link>.
1718 Author: Amit Kapila <akapila@postgresql.org>
1719 2023-03-23 [ecb696527] Allow logical replication to copy tables in binary forma
1724 Allow logical replication initial table synchronization to copy
1725 rows in binary format (Melih Mutlu)
1729 This is only possible for subscriptions marked as binary.
1734 Author: Amit Kapila <akapila@postgresql.org>
1735 2023-01-09 [216a78482] Perform apply of large transactions by parallel workers.
1736 Author: Amit Kapila <akapila@postgresql.org>
1737 2023-01-10 [cd06ccd78] Document the newly added wait events added by commit 216
1738 Author: Amit Kapila <akapila@postgresql.org>
1739 2023-02-16 [fce003cfd] Add a new wait state and use it when sending data in the
1744 Allow parallel application of logical replication (Hou Zhijie,
1745 Wang Wei, Amit Kapila)
1749 The
<link linkend=
"sql-createsubscription"><command>CREATE
1750 SUBSCRIPTION
</command></link> <option>STREAMING
</option>
1751 option now supports
<literal>parallel
</literal> to enable
1752 application of large transactions by parallel workers. The number
1753 of parallel workers is controlled by the new server variable
<link
1754 linkend=
"guc-max-parallel-apply-workers-per-subscription"><varname>max_parallel_apply_workers_per_subscription
</varname></link>.
1756 linkend=
"wait-event-activity-table"><literal>LogicalParallelApplyMain
</literal></link>,
1757 <literal>LogicalParallelApplyStateChange
</literal>, and
1758 <literal>LogicalApplySendData
</literal> were also added. Column
1759 <structfield>leader_pid
</structfield> was added to system view
<link
1760 linkend=
"monitoring-pg-stat-subscription"><structname>pg_stat_subscription
</structname></link>
1761 to track parallel activity.
1766 Author: Amit Kapila <akapila@postgresql.org>
1767 2023-03-15 [89e46da5e] Allow the use of indexes other than PK and REPLICA IDENT
1772 Improve performance for
<link
1773 linkend=
"logical-replication-architecture">logical replication
1774 apply
</link> without a primary key (Onder Kalaci, Amit Kapila)
1778 Specifically,
<literal>REPLICA IDENTITY FULL
</literal> can now
1779 use btree indexes rather than sequentially scanning the table to
1785 Author: Amit Kapila <akapila@postgresql.org>
1786 2022-07-21 [366283961] Allow users to skip logical replication of data having o
1787 Author: Amit Kapila <akapila@postgresql.org>
1788 2022-09-08 [875693019] Raise a warning if there is a possibility of data from m
1793 Allow logical replication subscribers to process only changes that
1794 have no origin (Vignesh C, Amit Kapila)
1798 This can be used to avoid replication loops. This is controlled
1799 by the new
<literal>CREATE SUBSCRIPTION ... ORIGIN
</literal> option.
1804 Author: Robert Haas <rhaas@postgresql.org>
1805 2023-04-04 [1e10d49b6] Perform logical replication actions as the table owner.
1806 Author: Robert Haas <rhaas@postgresql.org>
1807 2023-04-04 [482675987] Add a run_as_owner option to subscriptions.
1812 Perform logical replication
<link
1813 linkend=
"sql-select"><command>SELECT
</command></link> and
1814 <acronym>DML
</acronym> actions as the table owner (Robert Haas)
1818 This improves security and now requires subscription
1819 owners to be either superusers or to have
<link
1820 linkend=
"sql-set-role"><command>SET ROLE
</command></link>
1821 permission on all roles owning tables in the replication set.
1822 The previous behavior of performing all operations as the
1823 subscription owner can be enabled with the subscription
<link
1824 linkend=
"sql-createsubscription"><option>run_as_owner
</option></link>
1830 Author: Tom Lane <tgl@sss.pgh.pa.us>
1831 2023-01-22 [5a3a95385] Track logrep apply workers' last start times to avoid us
1837 linkend=
"guc-wal-retrieve-retry-interval"><varname>wal_retrieve_retry_interval
</varname></link>
1838 operate on a per-subscription basis (Nathan Bossart)
1842 Previously the retry time was applied
1843 globally. This also adds wait events
<link
1844 linkend=
"wait-event-lwlock-table">><literal>LogicalRepLauncherDSA
</literal></link>
1845 and
<literal>LogicalRepLauncherHash
</literal>.
1853 <sect3 id=
"release-16-utility">
1854 <title>Utility Commands
</title>
1859 Author: Tom Lane <tgl@sss.pgh.pa.us>
1860 2023-03-24 [3c05284d8] Invent GENERIC_PLAN option for EXPLAIN.
1865 Add
<link linkend=
"sql-explain"><command>EXPLAIN
</command></link>
1866 option
<literal>GENERIC_PLAN
</literal> to display the generic plan
1867 for a parameterized query (Laurenz Albe)
1872 Author: Andrew Dunstan <andrew@dunslane.net>
1873 2023-03-13 [9f8377f7a] Add a DEFAULT option to COPY FROM
1878 Allow a
<link linkend=
"sql-copy"><command>COPY FROM
</command></link>
1879 value to map to a column's
<literal>DEFAULT
</literal> (Israel
1885 Author: Etsuro Fujita <efujita@postgresql.org>
1886 2022-10-13 [97da48246] Allow batch insertion during COPY into a foreign table.
1891 Allow
<link linkend=
"sql-copy"><command>COPY
</command></link>
1892 into foreign tables to add rows in batches (Andrey Lepikhov,
1897 This is controlled by the
<link
1898 linkend=
"postgres-fdw"><application>postgres_fdw
</application></link>
1900 linkend=
"postgres-fdw-options-cost-estimation"><option>batch_size
</option></link>.
1905 Author: Peter Eisentraut <peter@eisentraut.org>
1906 2022-07-13 [784cedda0] Allow specifying STORAGE attribute for a new table
1907 Author: Tom Lane <tgl@sss.pgh.pa.us>
1908 2022-11-10 [b9424d014] Support writing "CREATE/ALTER TABLE ... SET STORAGE DEFA
1913 Allow the
<literal>STORAGE
</literal> type to be specified by
<link
1914 linkend=
"sql-createtable"><command>CREATE TABLE
</command></link>
1915 (Teodor Sigaev, Aleksander Alekseev)
1919 Previously only
<link linkend=
"sql-altertable"><command>ALTER
1920 TABLE
</command></link> could control this.
1925 Author: Fujii Masao <fujii@postgresql.org>
1926 2022-07-12 [3b00a944a] Support TRUNCATE triggers on foreign tables.
1931 Allow
<link linkend=
"sql-createtrigger">truncate triggers
</link>
1932 on foreign tables (Yugo Nagata)
1937 Author: Michael Paquier <michael@paquier.xyz>
1938 2023-03-06 [4211fbd84] Add PROCESS_MAIN to VACUUM
1944 linkend=
"sql-vacuum"><command>VACUUM
</command></link> and
<link
1945 linkend=
"app-vacuumdb"><application>vacuumdb
</application></link>
1946 to only process
<link
1947 linkend=
"storage-toast"><literal>TOAST
</literal></link> tables
1952 This is accomplished by having
<link
1953 linkend=
"sql-vacuum"><command>VACUUM
</command></link>
1954 turn off
<literal>PROCESS_MAIN
</literal> or by
<link
1955 linkend=
"app-vacuumdb"><application>vacuumdb
</application></link>
1956 using the
<option>--no-process-main
</option> option.
1961 Author: Tom Lane <tgl@sss.pgh.pa.us>
1962 2023-01-06 [a46a7011b] Add options to control whether VACUUM runs vac_update_da
1967 Add
<link linkend=
"sql-vacuum"><command>VACUUM
</command></link>
1968 options to skip or update all
<link
1969 linkend=
"vacuum-for-wraparound">frozen
</link> statistics (Tom Lane,
1974 The options are
<literal>SKIP_DATABASE_STATS
</literal> and
1975 <literal>ONLY_DATABASE_STATS
</literal>.
1980 Author: Michael Paquier <michael@paquier.xyz>
1981 2022-07-19 [2cbc3c17a] Rework logic and simplify syntax of REINDEX DATABASE/SYS
1982 Author: Michael Paquier <michael@paquier.xyz>
1983 2022-07-26 [0a5f06b84] Fix a few issues with REINDEX grammar
1988 Change
<link linkend=
"sql-reindex"><command>REINDEX
1989 DATABASE
</command></link> and
<link
1990 linkend=
"sql-reindex"><command>REINDEX SYSTEM
</command></link>
1991 to no longer require an argument (Simon Riggs)
1995 Previously the database name had to be specified.
2000 Author: Dean Rasheed <dean.a.rasheed@gmail.com>
2001 2022-07-21 [624aa2a13] Make the name optional in CREATE STATISTICS.
2006 Allow
<link linkend=
"sql-createstatistics"><command>CREATE
2007 STATISTICS
</command></link> to generate a statistics name if none
2008 is specified (Simon Riggs)
2016 <sect3 id=
"release-16-datatypes">
2017 <title>Data Types
</title>
2022 Author: Peter Eisentraut <peter@eisentraut.org>
2023 2022-12-14 [6fcda9aba] Non-decimal integer literals
2028 Allow non-decimal
<link linkend=
"sql-syntax-bit-strings">integer
2029 literals
</link> (Peter Eisentraut)
2033 For example,
<literal>0x42F</literal>,
<literal>0o273
</literal>,
2034 and
<literal>0b100101
</literal>.
2039 Author: Dean Rasheed <dean.a.rasheed@gmail.com>
2040 2023-01-23 [6dfacbf72] Add non-decimal integer support to type numeric.
2045 Allow
<link linkend=
"datatype-numeric"><type>NUMERIC
</type></link>
2046 to process hexadecimal, octal, and binary integers of any size
2051 Previously only unquoted eight-byte integers were supported with
2052 these non-decimal bases.
2057 Author: Dean Rasheed <dean.a.rasheed@gmail.com>
2058 2023-02-04 [faff8f8e4] Allow underscores in integer and numeric constants.
2063 Allow underscores in integer and numeric
<link
2064 linkend=
"sql-syntax-bit-strings">constants
</link> (Peter Eisentraut,
2069 This can improve readability for long strings of digits.
2074 Author: Tom Lane <tgl@sss.pgh.pa.us>
2075 2023-01-01 [2ceea5adb] Accept "+infinity" in date and timestamp[tz] input.
2080 Accept the spelling
<literal>+infinity
</literal> in datetime input
2086 Author: Tom Lane <tgl@sss.pgh.pa.us>
2087 2023-03-09 [bcc704b52] Reject combining "epoch" and "infinity" with other datet
2092 Prevent the specification of
<literal>epoch
</literal> and
2093 <literal>infinity
</literal> together with other fields in datetime
2094 strings (Joseph Koshakow)
2099 Author: Tom Lane <tgl@sss.pgh.pa.us>
2100 2023-03-16 [5b3c59535] Tighten error checks in datetime input, and remove bogus
2105 Remove undocumented support for date input in the form
2106 <literal>Y
<replaceable>year
</replaceable>M
<replaceable>month
</replaceable>D
<replaceable>day
</replaceable></literal>
2112 Author: Tom Lane <tgl@sss.pgh.pa.us>
2113 2022-12-09 [1939d2628] Add test scaffolding for soft error reporting from input
2114 Author: Michael Paquier <michael@paquier.xyz>
2115 2023-02-28 [b8da37b3a] Rework pg_input_error_message(), now renamed pg_input_er
2121 linkend=
"functions-info-validity-table"><function>pg_input_is_valid()
</function></link>
2122 and
<function>pg_input_error_info()
</function> to check for type
2123 conversion errors (Tom Lane)
2131 <sect3 id=
"release-16-general">
2132 <title>General Queries
</title>
2137 Author: Dean Rasheed <dean.a.rasheed@gmail.com>
2138 2022-07-20 [bcedd8f5f] Make subquery aliases optional in the FROM clause.
2143 Allow subqueries in the
<literal>FROM
</literal> clause to omit
2144 aliases (Dean Rasheed)
2149 Author: Peter Eisentraut <peter@eisentraut.org>
2150 2023-03-05 [102a5c164] SQL JSON path enhanced numeric literals
2155 Add support for enhanced numeric literals in
2156 <acronym>SQL/JSON
</acronym> paths (Peter Eisentraut)
2160 For example, allow hexadecimal, octal, and binary integers and
2161 underscores between digits.
2169 <sect3 id=
"release-16-functions">
2170 <title>Functions
</title>
2175 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
2176 2023-03-29 [7081ac46a] SQL/JSON: add standard JSON constructor functions
2181 Add
<acronym>SQL/JSON
</acronym> constructors (Nikita Glukhov,
2182 Teodor Sigaev, Oleg Bartunov, Alexander Korotkov, Amit Langote)
2186 The new functions
<link
2187 linkend=
"functions-json-creation-table"><function>JSON_ARRAY()
</function></link>,
2189 linkend=
"functions-aggregate-table"><function>JSON_ARRAYAGG()
</function></link>,
2190 <function>JSON_OBJECT()
</function>, and
2191 <function>JSON_OBJECTAGG()
</function> are part of the
2192 <acronym>SQL
</acronym> standard.
2197 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
2198 2023-03-31 [6ee30209a] SQL/JSON: support the IS JSON predicate
2203 Add
<acronym>SQL/JSON
</acronym> object checks (Nikita Glukhov,
2204 Teodor Sigaev, Oleg Bartunov, Alexander Korotkov, Amit Langote,
2209 The
<link linkend=
"functions-sqljson-misc"><literal>IS
2210 JSON
</literal></link> checks include checks for values, arrays,
2211 objects, scalars, and unique keys.
2216 Author: John Naylor <john.naylor@postgresql.org>
2217 2022-09-02 [0a8de93a4] Speed up lexing of long JSON strings
2222 Allow
<acronym>JSON
</acronym> string parsing to use vector
2223 operations (John Naylor)
2228 Author: Tom Lane <tgl@sss.pgh.pa.us>
2229 2023-01-19 [5a617d75d] Fix ts_headline() to handle ORs and phrase queries more
2234 Improve the handling of full text highlighting function
<link
2235 linkend=
"textsearch-functions-table"><function>ts_headline()
</function></link>
2236 for
<literal>OR
</literal> and
<literal>NOT
</literal> expressions
2242 Author: Tom Lane <tgl@sss.pgh.pa.us>
2243 2023-03-18 [75bd846b6] Add functions to do timestamptz arithmetic in a non-defa
2248 Add functions to add, subtract, and generate
2249 <type>timestamptz
</type> values in a specified time zone (Przemyslaw
2250 Sztoch, Gurjeet Singh)
2254 The functions are
<link
2255 linkend=
"functions-datetime-table"><function>date_add()
</function></link>,
2256 <function>date_subtract()
</function>, and
<link
2257 linkend=
"functions-srf-series"><function>generate_series()
</function></link>.
2262 Author: Tom Lane <tgl@sss.pgh.pa.us>
2263 2022-11-12 [533e02e92] Fix volatility marking of timestamptz_trunc_zone.
2269 linkend=
"functions-datetime-table"><function>date_trunc(unit,
2270 timestamptz, time_zone)
</function></link> to be an immutable
2271 function (Przemyslaw Sztoch)
2275 This allows the creation of expression indexes using this function.
2280 Author: Michael Paquier <michael@paquier.xyz>
2281 2022-09-29 [0823d061b] Introduce SYSTEM_USER
2286 Add server variable
<link
2287 linkend=
"functions-info-session-table"><literal>SYSTEM_USER
</literal></link>
2292 This reports the authentication method and its authenticated user.
2297 Author: Tom Lane <tgl@sss.pgh.pa.us>
2298 2023-04-07 [888f2ea0a] Add array_sample() and array_shuffle() functions.
2304 linkend=
"array-functions-table"><function>array_sample()
</function></link>
2305 and
<function>array_shuffle()
</function> (Martin Kalcher)
2310 Author: Peter Eisentraut <peter@eisentraut.org>
2311 2023-02-22 [2ddab010c] Implement ANY_VALUE aggregate
2316 Add aggregate function
<link
2317 linkend=
"functions-aggregate-table"><function>ANY_VALUE()
</function></link>
2318 which returns any value from a set (Vik Fearing)
2323 Author: Tom Lane <tgl@sss.pgh.pa.us>
2324 2023-01-09 [38d81760c] Invent random_normal() to provide normally-distributed r
2330 linkend=
"functions-math-random-table"><function>random_normal()
</function></link>
2331 to supply normally-distributed random numbers (Paul Ramsey)
2336 Author: Dean Rasheed <dean.a.rasheed@gmail.com>
2337 2023-03-14 [d5d574146] Add support for the error functions erf() and erfc().
2342 Add error function
<link
2343 linkend=
"functions-math-func-table"><function>erf()
</function></link>
2344 and its complement
<function>erfc()
</function> (Dean Rasheed)
2349 Author: Dean Rasheed <dean.a.rasheed@gmail.com>
2350 2022-10-20 [40c7fcbbe] Improve the accuracy of numeric power() for integer expo
2355 Improve the accuracy of numeric
<link
2356 linkend=
"functions-math-func-table"><function>power()
</function></link>
2357 for integer exponents (Dean Rasheed)
2362 Author: Tom Lane <tgl@sss.pgh.pa.us>
2363 2023-03-15 [483bdb2af] Support [NO] INDENT option in XMLSERIALIZE().
2369 linkend=
"datatype-xml-creating"><function>XMLSERIALIZE()
</function></link>
2370 option
<literal>INDENT
</literal> to pretty-print its output
2376 Author: Jeff Davis <jdavis@postgresql.org>
2377 2022-10-31 [10932ed5e] Enable pg_collation_actual_version() to work on the defa
2383 linkend=
"functions-admin-collation"><function>pg_collation_actual_version()
</function></link>
2384 to return a reasonable value for the default collation (Jeff Davis)
2388 Previously it returned
<literal>NULL
</literal>.
2393 Author: Tom Lane <tgl@sss.pgh.pa.us>
2394 2022-07-29 [283129e32] Support pg_read_[binary_]file (filename, missing_ok).
2400 linkend=
"functions-admin-genfile-table"><function>pg_read_file()
</function></link>
2401 and
<function>pg_read_binary_file()
</function> to ignore missing
2402 files (Kyotaro Horiguchi)
2407 Author: Peter Eisentraut <peter@eisentraut.org>
2408 2023-03-07 [ce1215d9b] Add support for unit "B" to pg_size_bytes()
2413 Add byte specification (
<literal>B
</literal>) to
<link
2414 linkend=
"functions-admin-dbsize"><function>pg_size_bytes()
</function></link>
2420 Author: Tom Lane <tgl@sss.pgh.pa.us>
2421 2022-12-27 [3ea7329c9] Simplify the implementations of the to_reg* functions.
2427 linkend=
"functions-info-catalog-table"><function>to_reg
</function></link>*
2428 functions to accept numeric
<acronym>OID
</acronym>s as input
2437 <sect3 id=
"release-16-plpgsql">
2438 <title><link linkend=
"plpgsql">PL/pgSQL
</link></title>
2443 Author: Tom Lane <tgl@sss.pgh.pa.us>
2444 2023-04-04 [d3d53f955] Add a way to get the current function's OID in pl/pgsql.
2449 Add the ability to get the current function's
<acronym>OID
</acronym>
2450 in
<application>PL/pgSQL
</application> (Pavel Stehule)
2454 This is accomplished with
<link
2455 linkend=
"plpgsql-statements-diagnostics"><command>GET DIAGNOSTICS
2456 variable = PG_ROUTINE_OID
</command></link>.
2464 <sect3 id=
"release-16-libpq">
2465 <title><link linkend=
"libpq">libpq
</link></title>
2470 Author: Michael Paquier <michael@paquier.xyz>
2471 2023-03-14 [3a465cc67] libpq: Add support for require_auth to control authorize
2476 Add
<application>libpq
</application> connection option
<link
2477 linkend=
"libpq-connect-require-auth"><option>require_auth
</option></link>
2478 to specify a list of acceptable authentication methods (Jacob
2483 This can also be used to disallow certain authentication methods.
2488 Author: Daniel Gustafsson <dgustafsson@postgresql.org>
2489 2023-03-29 [7f5b19817] Support connection load balancing in libpq
2490 Author: Fujii Masao <fujii@postgresql.org>
2491 2023-04-21 [0a16512d4] doc: Add documentation for PGLOADBALANCEHOSTS environmen
2496 Allow multiple
<application>libpq
</application>-specified hosts
2497 to be randomly selected (Jelte Fennema)
2501 This is enabled with
<link
2502 linkend=
"libpq-connect-load-balance-hosts"><literal>load_balance_hosts=random
</literal></link>
2503 and can be used for load balancing.
2508 Author: Michael Paquier <michael@paquier.xyz>
2509 2023-03-24 [36f40ce2d] libpq: Add sslcertmode option to control client certific
2514 Add
<application>libpq
</application> option
<link
2515 linkend=
"libpq-connect-sslcertmode"><option>sslcertmode
</option></link>
2516 to control transmission of the client certificate (Jacob Champion)
2520 The option values are
<literal>disable
</literal>,
2521 <literal>allow
</literal>, and
<literal>require
</literal>.
2526 Author: Daniel Gustafsson <dgustafsson@postgresql.org>
2527 2023-04-05 [8eda73146] Allow to use system CA pool for certificate verification
2532 Allow
<application>libpq
</application> to use the system certificate
2533 pool for certificate verification (Jacob Champion, Thomas Habets)
2537 This is enabled with
<link
2538 linkend=
"libpq-connect-sslrootcert"><literal>sslrootcert=system
</literal></link>,
2539 which also enables
<link
2540 linkend=
"libpq-connect-sslmode"><literal>sslmode=verify-full
</literal></link>.
2548 <sect3 id=
"release-16-client-apps">
2549 <title>Client Applications
</title>
2554 Author: Tom Lane <tgl@sss.pgh.pa.us>
2555 2022-07-12 [83f1c7b74] Fix ECPG's handling of type names that match SQL keyword
2560 Allow
<link linkend=
"ecpg"><command>ECPG
</command></link>
2561 variable declarations to use typedef names that match unreserved
2562 <acronym>SQL
</acronym> keywords (Tom Lane)
2566 This change does prevent keywords which match C typedef names from
2567 being processed as keywords in later
<command>EXEC SQL
</command>
2574 <sect4 id=
"release-16-psql">
2575 <title><xref linkend=
"app-psql"/></title>
2580 Author: Andrew Dunstan <andrew@dunslane.net>
2581 2022-07-25 [a45388d6e] Add xheader_width pset option to psql
2586 Allow
<application>psql
</application> to control the maximum
2587 width of header lines in expanded format (Platon Pronko)
2591 This is controlled by
<link
2592 linkend=
"app-psql-meta-command-pset-xheader-width"><option>xheader_width
</option></link>.
2597 Author: Dean Rasheed <dean.a.rasheed@gmail.com>
2598 2023-01-07 [d913928c9] psql: Add support for \dpS and \zS.
2599 Author: Tom Lane <tgl@sss.pgh.pa.us>
2600 2023-07-19 [d65ddaca9] Add psql \drg command to display role
2605 Add
<application>psql
</application> command
<link
2606 linkend=
"app-psql-meta-command-drg"><command>\drg
</command></link>
2607 to show role membership details (Pavel Luzanov)
2611 The
<literal>Member of
</literal> output column has been removed
2612 from
<command>\du
</command> and
<command>\dg
</command> because
2613 this new command displays this informaion in more detail.
2618 Author: Dean Rasheed <dean.a.rasheed@gmail.com>
2619 2023-01-07 [d913928c9] psql: Add support for \dpS and \zS.
2620 Author: Tom Lane <tgl@sss.pgh.pa.us>
2621 2023-07-19 [d65ddaca9] Add psql \drg command to display role
2626 Allow
<application>psql
</application>'s access privilege commands
2627 to show system objects (Nathan Bossart)
2631 The options are
<link
2632 linkend=
"app-psql-meta-command-dp-lc"><command>\dpS
</command></link>
2634 linkend=
"app-psql-meta-command-z"><command>\zS
</command></link>.
2639 Author: Michael Paquier <michael@paquier.xyz>
2640 2022-11-08 [bd95816f7] psql: Add information in \d+ about foreign partitions an
2645 Add
<literal>FOREIGN
</literal> designation
2646 to
<application>psql
</application> <link
2647 linkend=
"app-psql-meta-command-d"><command>\d+
</command></link>
2648 for foreign table children and partitions (Ian Lawrence Barwick)
2653 Author: Tom Lane <tgl@sss.pgh.pa.us>
2654 2023-03-02 [3dfae91f7] Show "internal name" not "source code" in psql's \df+ co
2660 linkend=
"app-psql-meta-command-df-uc"><command>\df+
</command></link>
2661 from showing function source code (Isaac Morland)
2665 Function bodies are more easily viewed with
<link
2666 linkend=
"app-psql-meta-command-sf"><command>\sf
</command></link>.
2671 Author: Peter Eisentraut <peter@eisentraut.org>
2672 2022-11-15 [5b66de343] psql: Add command to use extended query protocol
2677 Allow
<application>psql
</application> to submit queries using
2678 the extended query protocol (Peter Eisentraut)
2682 Passing arguments to such queries is done
2683 using the new
<application>psql
</application> <link
2684 linkend=
"app-psql-meta-command-bind"><command>\bind
</command></link>
2690 Author: Tom Lane <tgl@sss.pgh.pa.us>
2691 2023-04-06 [00beecfe8] psql: add an optional execution-count limit to \watch.
2696 Allow
<application>psql
</application> <link
2697 linkend=
"app-psql-meta-command-watch"><command>\watch
</command></link>
2698 to limit the number of executions (Andrey Borodin)
2702 The
<command>\watch
</command> options can now be named when
2708 Author: Michael Paquier <michael@paquier.xyz>
2709 2023-03-16 [6f9ee74d4] Improve handling of psql \watch's interval argument
2714 Detect invalid values for
<application>psql
</application> <link
2715 linkend=
"app-psql-meta-command-watch"><command>\watch
</command></link>,
2716 and allow zero to specify no delay (Andrey Borodin)
2721 Author: Tom Lane <tgl@sss.pgh.pa.us>
2722 2023-03-21 [b0d8f2d98] Add SHELL_ERROR and SHELL_EXIT_CODE magic variables to p
2723 Author: Tom Lane <tgl@sss.pgh.pa.us>
2724 2023-04-06 [31ae2aa9d] psql: set SHELL_ERROR and SHELL_EXIT_CODE in more places
2729 Allow
<application>psql
</application> scripts to obtain the exit
2730 status of shell commands and queries
2731 (Corey Huinker, Tom Lane)
2735 The new
<application>psql
</application> control variables are
<link
2736 linkend=
"app-psql-variables-shell-error"><literal>SHELL_ERROR
</literal></link>
2738 linkend=
"app-psql-variables-shell-exit-code"><literal>SHELL_EXIT_CODE
</literal></link>.
2743 Author: Michael Paquier <michael@paquier.xyz>
2744 2022-08-15 [f6c750d31] Improve tab completion of ALTER TYPE in psql
2745 Author: Michael Paquier <michael@paquier.xyz>
2746 2022-09-06 [4cbe57974] Add psql tab compression for SET COMPRESSION with ALTER
2747 Author: Michael Paquier <michael@paquier.xyz>
2748 2022-09-10 [6afcab6ac] Add psql tab compression for ALTER TABLE .. { OF | NOT O
2749 Author: Michael Paquier <michael@paquier.xyz>
2750 2022-10-05 [9aa58d48f] Add a few new patterns to the tab completion of psql
2751 Author: Michael Paquier <michael@paquier.xyz>
2752 2022-10-24 [3cf2f7af7] Improve tab completion for ALTER STATISTICS <name> SET i
2753 Author: Peter Eisentraut <peter@eisentraut.org>
2754 2022-11-01 [2ea5de296] psql: Improve tab completion for ALTER TABLE on identity
2755 Author: Michael Paquier <michael@paquier.xyz>
2756 2022-11-18 [07f7237c2] psql: Improve tab completion for GRANT/REVOKE
2757 Author: Michael Paquier <michael@paquier.xyz>
2758 2022-12-12 [9d0cf5749] Add support for GRANT SET in psql tab completion
2759 Author: Dean Rasheed <dean.a.rasheed@gmail.com>
2760 2023-01-06 [a3bc631ea] Improve tab completion for ALTER FUNCTION/PROCEDURE/ROUT
2761 Author: Michael Paquier <michael@paquier.xyz>
2762 2023-01-12 [2ff5ca86e] Add support for tab completion after ALTER EXTENSION ADD
2763 Author: Tom Lane <tgl@sss.pgh.pa.us>
2764 2023-04-19 [9e1e9d656] Add missed case for tab completion of GRANT/REVOKE MAINT
2765 Author: Amit Kapila <akapila@postgresql.org>
2766 2023-04-07 [96c498d2f] Add tab-completion for newly added SUBSCRIPTION options.
2771 Various
<application>psql
</application> tab completion improvements
2772 (Vignesh C, Aleksander Alekseev, Dagfinn Ilmari Mannsåker,
2773 Shi Yu, Michael Paquier, Ken Kato, Peter Smith)
2781 <sect4 id=
"release-16-pgdump">
2782 <title><link linkend=
"app-pgdump"><application>pg_dump
</application></link></title>
2787 Author: Tom Lane <tgl@sss.pgh.pa.us>
2788 2023-03-14 [a563c24c9] Allow pg_dump to include/exclude child tables automatica
2793 Add
<application>pg_dump
</application> control of dumping child
2794 tables and partitions (Gilles Darold)
2798 The new options are
<option>--table-and-children
</option>,
2799 <option>--exclude-table-and-children
</option>, and
2800 <option>--exclude-table-data-and-children
</option>.
2805 Author: Tomas Vondra <tomas.vondra@postgresql.org>
2806 2023-02-23 [0da243fed] Add LZ4 compression to pg_dump
2807 Author: Tomas Vondra <tomas.vondra@postgresql.org>
2808 2023-04-01 [0070b66fe] pg_dump: Use only LZ4 frame format for compression
2809 Author: Tomas Vondra <tomas.vondra@postgresql.org>
2810 2023-04-05 [84adc8e20] pg_dump: Add support for zstd compression-->
2814 Add
<application>LZ4
</application> and
2815 <application>Zstandard
</application> compression to
2816 <application>pg_dump
</application> (Georgios Kokolatos, Justin
2822 Author: Tomas Vondra <tomas.vondra@postgresql.org>
2823 2023-04-06 [2820adf77] Support long distance matching for zstd compression
2828 Allow
<application>pg_dump
</application> and
<link
2829 linkend=
"app-pgbasebackup"><application>pg_basebackup
</application></link>
2830 to use
<literal>long
</literal> mode for compression (Justin Pryzby)
2835 Author: Michael Paquier <michael@paquier.xyz>
2836 2022-12-02 [5e73a6048] Switch pg_dump to use compression specifications
2841 Improve
<application>pg_dump
</application> to accept a more
2842 consistent compression syntax (Georgios Kokolatos)
2846 Options like
<option>--compress=gzip:
5</option>.
2856 <sect3 id=
"release-16-server-apps">
2857 <title>Server Applications
</title>
2862 Author: Tom Lane <tgl@sss.pgh.pa.us> 2023-03-22
2863 [3e51b278d] Add "-c name=value" switch to initdb.
2869 linkend=
"app-initdb"><application>initdb
</application></link>
2870 option to set server variables for the duration of
2871 <application>initdb
</application> and all future server starts
2876 The option is
<option>-c name=value
</option>.
2881 Author: Michael Paquier <michael@paquier.xyz>
2882 2022-07-13 [08951a7c9] createuser: Add support for more clause types through ne
2883 Author: Nathan Bossart <nathan@postgresql.org>
2884 2023-05-21 [2dcd1578c] Rename some createuser options.
2889 Add options to
<link
2890 linkend=
"app-createuser"><application>createuser
</application></link>
2891 to control more user options (Shinya Kato)
2895 Specifically, the new options control the valid-until date,
2896 bypassing of row-level security, and role membership.
2901 Author: Nathan Bossart <nathan@postgresql.org>
2902 2023-05-21 [2dcd1578c] Rename some createuser options.
2903 Author: Nathan Bossart <nathan@postgresql.org>
2904 2023-05-23 [381d19b3e] Document deprecated createuser option.
2910 linkend=
"app-createuser"><application>createuser
</application></link>
2911 option
<option>--role
</option> (Nathan Bossart)
2915 This option could be easily confused with new
2916 <application>createuser
</application> role membership options,
2917 so option
<option>--member-of
</option> has been added with the
2918 same functionality. The
<option>--role
</option> option can still
2924 Author: Andrew Dunstan <andrew@dunslane.net>
2925 2022-07-31 [7781f4e3e] Add - -schema and - -exclude-schema options to vacuumdb.
2930 Allow control of
<link
2931 linkend=
"app-vacuumdb"><application>vacuumdb
</application></link>
2932 schema processing (Gilles Darold)
2936 These are controlled by options
<option>--schema
</option> and
2937 <option>--exclude-schema
</option>.
2942 Author: Tom Lane <tgl@sss.pgh.pa.us>
2943 2023-01-06 [a46a7011b] Add options to control whether VACUUM runs vac_update_da
2948 Use new
<link linkend=
"sql-vacuum"><command>VACUUM
</command></link>
2949 options to improve the performance of
<link
2950 linkend=
"app-vacuumdb"><application>vacuumdb
</application></link>
2951 (Tom Lane, Nathan Bossart)
2956 Author: Jeff Davis <jdavis@postgresql.org>
2957 2023-03-09 [9637badd9] pg_upgrade: copy locale and encoding information to new
2963 linkend=
"pgupgrade"><application>pg_upgrade
</application></link>
2964 set the new cluster's locale and encoding (Jeff Davis)
2968 This removes the requirement that the new cluster be created with
2969 the same locale and encoding settings.
2974 Author: Peter Eisentraut <peter@eisentraut.org>
2975 2022-12-16 [746915c68] pg_upgrade: Add - -copy option
2981 linkend=
"pgupgrade"><application>pg_upgrade
</application></link>
2982 option to specify the default transfer mode (Peter Eisentraut)
2986 The option is
<option>--copy
</option>.
2991 Author: Michael Paquier <michael@paquier.xyz>
2992 2022-11-30 [d18655cc0] Refactor code parsing compression option values (-Z/- -co
2998 linkend=
"app-pgbasebackup"><application>pg_basebackup
</application></link>
2999 to accept numeric compression options (Georgios Kokolatos,
3004 Options like
<option>--compress=server-
5</option> are now supported.
3009 Author: Robert Haas <rhaas@postgresql.org>
3010 2023-04-18 [363e8f911] Fix pg_basebackup with in-place tablespaces some more.
3016 linkend=
"app-pgbasebackup"><application>pg_basebackup
</application></link>
3017 to handle tablespaces stored in the
<envar>PGDATA
</envar> directory
3023 Author: Michael Paquier <michael@paquier.xyz>
3024 2022-12-27 [d497093cb] pg_waldump: Add - -save-fullpage=PATH to save full page i
3030 linkend=
"pgwaldump"><application>pg_waldump
</application></link>
3031 option
<option>--save-fullpage
</option> to dump full page images
3037 Author: Peter Eisentraut <peter@eisentraut.org>
3038 2023-03-21 [4c8044c04] pg_waldump: Allow hexadecimal values for -t/- -timeline o
3044 linkend=
"pgwaldump"><application>pg_waldump
</application></link>
3045 options
<option>-t
</option>/
<option>--timeline
</option> to accept
3046 hexadecimal values (Peter Eisentraut)
3051 Author: Michael Paquier <michael@paquier.xyz>
3052 2023-02-06 [d07c2948b] Add support for progress reporting to pg_verifybackup
3057 Add support for progress reporting to
<link
3058 linkend=
"app-pgverifybackup"><application>pg_verifybackup
</application></link>
3064 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
3065 2023-02-23 [009eeee74] pg_rewind: Fix determining TLI when server was just prom
3066 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
3067 2023-02-27 [0a0500207] pg_rewind: Remove notice in docs about running CHECKPOIN
3073 linkend=
"app-pgrewind"><application>pg_rewind
</application></link>
3074 to properly track timeline changes (Heikki Linnakangas)
3078 Previously if
<application>pg_rewind
</application> was run after
3079 a timeline switch but before a checkpoint was issued, it might
3080 incorrectly determine that a rewind was unnecessary.
3085 Author: Daniel Gustafsson <dgustafsson@postgresql.org>
3086 2022-09-14 [8b60db774] Handle SIGTERM in pg_receivewal and pg_recvlogical
3092 linkend=
"app-pgreceivewal"><application>pg_receivewal
</application></link>
3094 linkend=
"app-pgrecvlogical"><application>pg_recvlogical
</application></link>
3095 cleanly exit on
<literal>SIGTERM
</literal> (Christoph Berg)
3099 This signal is often used by
<application>systemd
</application>.
3107 <sect3 id=
"release-16-source-code">
3108 <title>Source Code
</title>
3113 Author: Jeff Davis <jdavis@postgresql.org>
3114 2023-04-18 [fcb21b3ac] Build ICU support by default.
3119 Build
<acronym>ICU
</acronym> support by default (Jeff Davis)
3123 This removes
<link linkend=
"installation">build
3124 flag
</link> <option>--with-icu
</option> and adds flag
3125 <option>--without-icu
</option>.
3130 Author: John Naylor <john.naylor@postgresql.org>
3131 2022-08-04 [56f2c7b58] Support SSE2 intrinsics where available
3136 Add support for SSE2 (Streaming
<acronym>SIMD
</acronym> Extensions
3137 2) vector operations on x86-
64 architectures (John Naylor)
3142 Author: John Naylor <john.naylor@postgresql.org>
3143 2022-08-29 [82739d4a8] Use ARM Advanced SIMD (NEON) intrinsics where available
3148 Add support for Advanced
<acronym>SIMD
</acronym> (Single
3149 Instruction Multiple Data) (
<acronym>NEON
</acronym>) instructions
3150 on
<acronym>ARM
</acronym> architectures (Nathan Bossart)
3155 Author: Michael Paquier <michael@paquier.xyz>
3156 2022-08-28 [36389a060] Enable RandomizedBaseAddress (ASLR) on Windows with MSVC
3161 Have
<systemitem class=
"osname">Windows
</systemitem>
3162 binaries built with
<productname>MSVC
</productname> use
3163 <literal>RandomizedBaseAddress
</literal> (
<acronym>ASLR
</acronym>)
3168 This was already enabled on
<productname>MinGW
</productname> builds.
3173 Author: Andres Freund <andres@anarazel.de>
3174 2022-07-17 [089480c07] Default to hidden visibility for extension libraries whe
3175 Author: Andres Freund <andres@anarazel.de>
3176 2022-07-17 [8cf64d35e] Mark all symbols exported from extension libraries PGDLL
3181 Prevent extension libraries from exporting their symbols by default
3182 (Andres Freund, Tom Lane)
3186 Functions that need to be called from the core backend
3187 or other extensions must now be explicitly marked
3188 <literal>PGDLLEXPORT
</literal>.
3193 Author: Michael Paquier <michael@paquier.xyz>
3194 2022-07-07 [495ed0ef2] Make Windows 10 the minimal runtime requirement for WIN3
3199 Require
<systemitem class=
"osname">Windows
10</systemitem> or
3200 newer versions (Michael Paquier, Juan José Santamaría Flecha)
3204 Previously
<systemitem class=
"osname">Windows Vista
</systemitem> and
3205 <systemitem class=
"osname">Windows XP
</systemitem> were supported.
3210 Author: John Naylor <john.naylor@postgresql.org>
3211 2022-09-14 [4c1532763] Bump minimum Perl version to 5.14
3216 Require
<productname>Perl
</productname> version
5.14 or later
3222 Author: John Naylor <john.naylor@postgresql.org>
3223 2022-09-09 [b086a47a2] Bump minimum version of Bison to 2.3
3228 Require
<productname>Bison
</productname> version
2.3 or later
3234 Author: John Naylor <john.naylor@postgresql.org>
3235 2022-09-09 [8b878bffa] Bump minimum version of Flex to 2.5.35
3240 Require
<productname>Flex
</productname> version
2.5.35 or later
3246 Author: Stephen Frost <sfrost@snowman.net>
3247 2023-04-13 [f7431bca8] Explicitly require MIT Kerberos for GSSAPI
3252 Require
<acronym>MIT
</acronym> Kerberos for
3253 <acronym>GSSAPI
</acronym> support (Stephen Frost)
3258 Author: Michael Paquier <michael@paquier.xyz>
3259 2022-07-14 [6203583b7] Remove support for Visual Studio 2013
3264 Remove support for
<productname>Visual Studio
2013</productname>
3270 Author: Thomas Munro <tmunro@postgresql.org>
3271 2022-07-08 [9db300ce6] Remove HP-UX port.
3276 Remove support for
<systemitem class=
"osname">HP-UX
</systemitem>
3282 Author: Thomas Munro <tmunro@postgresql.org>
3283 2022-07-08 [0ad5b48e5] Remove HP/Intel Itanium support.
3288 Remove support for
<productname>HP/Intel Itanium
</productname>
3294 Author: Thomas Munro <tmunro@postgresql.org>
3295 2022-07-12 [718aa43a4] Further tidy-up for old CPU architectures.
3296 Author: Thomas Munro <tmunro@postgresql.org>
3297 2022-07-12 [14168d3c6] Doc: Acknowledge historically supported CPUs and OSes.
3302 Remove support for
<productname>M68K
</productname>,
3303 <productname>M88K
</productname>,
<productname>M32R
</productname>,
3304 and
<productname>SuperH
</productname> <acronym>CPU
</acronym>
3305 architectures (Thomas Munro)
3310 Author: Michael Paquier <michael@paquier.xyz>
3311 2023-03-17 [98ae2c84a] libpq: Remove code for SCM credential authentication
3316 Remove
<link linkend=
"libpq"><application>libpq
</application></link>
3317 support for
<acronym>SCM
</acronym> credential authentication
3322 Backend support for this authentication method was removed in
3323 <productname>PostgresSQL
</productname> 9.1.
3328 Author: Andres Freund <andres@anarazel.de>
3329 2022-09-21 [e6927270c] meson: Add initial version of meson based build system
3335 linkend=
"install-meson"><application>meson
</application></link>
3336 build system (Andres Freund, Nazir Bilal Yavuz, Peter Eisentraut)
3340 This eventually will replace the
<productname>Autoconf
</productname>
3341 and
<systemitem class=
"osname">Windows
</systemitem>-based
3342 <productname>MSVC
</productname> build systems.
3347 Author: Peter Eisentraut <peter@eisentraut.org>
3348 2022-10-20 [c8e4030d1] Make finding openssl program a configure or meson option
3353 Allow control of the location of the
3354 <application>openssl
</application> binary used by the build system
3359 Make finding
<application>openssl
</application>
3360 program a
<application>configure
</application> or
3361 <application>meson
</application> option
3366 Author: Andres Freund <andres@anarazel.de>
3367 2022-12-07 [d3b111e32] Add option to specify segment size in blocks
3372 Add build option to allow testing of small
<acronym>WAL
</acronym>
3373 segment sizes (Andres Freund)
3377 The build options are
<link
3378 linkend=
"configure-option-with-segsize"><option>--with-segsize-blocks
</option></link>
3379 and
<option>-Dsegsize_blocks
</option>.
3384 Author: Andrew Dunstan <andrew@dunslane.net>
3385 2023-01-23 [b90f0b574] Add non-destructive modes to pgindent
3386 Author: Tom Lane <tgl@sss.pgh.pa.us>
3387 2023-01-23 [62e1e28bf] Fix pgindent - -show-diff option.
3388 Author: Andrew Dunstan <andrew@dunslane.net>
3389 2023-01-24 [124937163] Improve exclude pattern file processing in pgindent
3390 Author: Andrew Dunstan <andrew@dunslane.net>
3391 2023-01-27 [a1c4cd6f2] Allow multiple - -excludes options in pgindent
3392 Author: Andrew Dunstan <andrew@dunslane.net>
3393 2023-02-08 [068a243b7] pgindent: more ways to find files to indent
3394 Author: Andrew Dunstan <andrew@dunslane.net>
3395 2023-02-12 [dab07e8c6] pgindent: filter files for the - -commit option
3396 Author: Andrew Dunstan <andrew@dunslane.net>
3397 2023-02-13 [b16259b3c] Remove obsolete pgindent options - -code-base and - -build
3403 linkend=
"source"><application>pgindent
</application></link> options
3408 The new options are
<option>--show-diff
</option>,
3409 <option>--silent-diff
</option>,
<option>--commit
</option>,
3410 and
<option>--help
</option>, and allow multiple
3411 <option>--exclude
</option> options. Also require the typedef file
3412 to be explicitly specified. Options
<option>--code-base
</option>
3413 and
<option>--build
</option> were also removed.
3418 Author: Tom Lane <tgl@sss.pgh.pa.us>
3419 2023-02-12 [4e831f4ce] Import pg_bsd_indent sources.
3425 linkend=
"source"><application>pg_bsd_indent
</application></link>
3426 source code to the main tree (Tom Lane)
3431 Author: Tatsuo Ishii <ishii@postgresql.org>
3432 2022-10-19 [d1e2a380c] Enhance make_ctags and make_etags.
3437 Improve
<application>make_ctags
</application> and
3438 <application>make_etags
</application> (Yugo Nagata)
3443 Author: Peter Eisentraut <peter@eisentraut.org>
3444 2023-03-28 [90189eefc] Save a few bytes in pg_attribute
3450 linkend=
"catalog-pg-attribute"><structname>pg_attribute
</structname></link>
3451 columns for efficiency (Peter Eisentraut)
3459 <sect3 id=
"release-16-modules">
3460 <title>Additional Modules
</title>
3465 Author: Tom Lane <tgl@sss.pgh.pa.us>
3466 2022-09-02 [ff720a597] Fix planner to consider matches to boolean columns in ex
3471 Improve use of extension-based indexes on boolean columns (Zongliang
3477 Author: Tom Lane <tgl@sss.pgh.pa.us>
3478 2023-04-07 [a290378a3] Add support for Daitch-Mokotoff Soundex in contrib/fuzzy
3483 Add support for Daitch-Mokotoff Soundex to
<link
3484 linkend=
"fuzzystrmatch"><application>fuzzystrmatch
</application></link>
3490 Author: Michael Paquier <michael@paquier.xyz>
3491 2022-07-06 [d4bfe4128] autho_explain: Add GUC to log query parameters
3497 linkend=
"auto-explain"><application>auto_explain
</application></link>
3498 to log values passed to parameterized statements (Dagfinn Ilmari
3503 This affects queries using server-side
<link
3504 linkend=
"sql-prepare"><command>PREPARE
</command></link>/
<link
3505 linkend=
"sql-execute"><command>EXECUTE
</command></link>
3506 and client-side parse/bind. Logging is controlled by
<link
3507 linkend=
"auto-explain-configuration-parameters-log-parameter-max-length"><literal>auto_explain.log_parameter_max_length
</literal></link>;
3508 by default query parameters will be logged with no length
3514 Author: Michael Paquier <michael@paquier.xyz>
3515 2023-01-26 [9d2d9728b] Make auto_explain print the query identifier in verbose
3521 linkend=
"auto-explain"><application>auto_explain
</application></link>'s
3522 <option>log_verbose
</option> mode honor the value of
<link
3523 linkend=
"guc-compute-query-id"><varname>compute_query_id
</varname></link>
3529 <varname>compute_query_id
</varname> was enabled,
<link
3530 linkend=
"auto-explain-configuration-parameters-log-verbose"><option>log_verbose
</option></link>
3531 was not showing the query identifier.
3536 Author: Andrew Dunstan <andrew@dunslane.net>
3537 2023-01-06 [b1665bf01] Allow hyphens in ltree labels
3542 Change the maximum length of
<link
3543 linkend=
"ltree"><application>ltree
</application></link> labels
3544 from
256 to
1000 and allow hyphens (Garen Torikian)
3549 Author: Michael Paquier <michael@paquier.xyz>
3550 2023-03-08 [daa8365a9] Reflect normalization of query strings for utilities in
3556 linkend=
"pgstatstatements"><structname>pg_stat_statements
</structname></link>
3557 normalize constants used in utility commands (Michael Paquier)
3561 Previously constants appeared instead of placeholders, e.g.,
3562 <literal>$
1</literal>.
3567 Author: Michael Paquier <michael@paquier.xyz>
3568 2023-01-23 [c31cf1c03] pg_walinspect: Add pg_get_wal_fpi_info()
3569 Author: Michael Paquier <michael@paquier.xyz>
3570 2023-03-10 [9ecb134a9] pg_walinspect: pg_get_wal_fpi_info() -> pg_get_wal_block
3571 Author: Peter Geoghegan <pg@bowt.ie>
3572 2023-03-30 [122376f02] Show record information in pg_get_wal_block_info.
3573 Author: Peter Geoghegan <pg@bowt.ie>
3574 2023-03-31 [df4f3ab51] Add show_data option to pg_get_wal_block_info.
3580 linkend=
"pgwalinspect"><application>pg_walinspect
</application></link>
3582 linkend=
"pgwalinspect-funcs-pg-get-wal-block-info"><function>pg_get_wal_block_info()
</function></link>
3583 to report
<acronym>WAL
</acronym> block information (Michael Paquier,
3584 Melanie Plageman, Bharath Rupireddy)
3589 Author: Michael Paquier <michael@paquier.xyz>
3590 2023-03-14 [5c1b66280] Rework design of functions in pg_walinspect
3596 linkend=
"pgwalinspect"><application>pg_walinspect
</application></link>
3598 linkend=
"pgwalinspect-funcs-pg-get-wal-records-info"><function>pg_get_wal_records_info()
</function></link>
3600 linkend=
"pgwalinspect-funcs-pg-get-wal-stats"><function>pg_get_wal_stats()
</function></link>
3601 interpret ending
<acronym>LSN
</acronym>s (Bharath Rupireddy)
3605 Previously ending
<acronym>LSN
</acronym>s which represent
3606 nonexistent
<acronym>WAL
</acronym> locations would generate
3607 an error, while they will now be interpreted as the end of the
3608 <acronym>WAL
</acronym>.
3613 Author: Peter Geoghegan <pg@bowt.ie>
3614 2023-04-07 [7d8219a44] Show more detail in heapam rmgr descriptions.
3615 Author: Peter Geoghegan <pg@bowt.ie>
3616 2023-04-07 [1c453cfd8] Show more detail in nbtree rmgr descriptions.
3617 Author: Peter Geoghegan <pg@bowt.ie>
3618 2023-04-11 [96149a180] Fix Heap rmgr's desc output for infobits arrays.
3619 Author: Peter Geoghegan <pg@bowt.ie>
3620 2023-04-19 [50547a3fa] Fix wal_consistency_checking enhanced desc output.
3625 Add detailed descriptions of
<acronym>WAL
</acronym> records in
<link
3626 linkend=
"pgwalinspect"><application>pg_walinspect
</application></link>
3628 linkend=
"pgwaldump"><application>pg_waldump
</application></link>
3629 (Melanie Plageman, Peter Geoghegan)
3634 Author: Tom Lane <tgl@sss.pgh.pa.us>
3635 2023-01-02 [1fd3dd204] Add bt_multi_page_stats() function to contrib/pageinspec
3641 linkend=
"pageinspect"><application>pageinspect
</application></link>
3643 linkend=
"pageinspect-b-tree-funcs"><function>bt_multi_page_stats()
</function></link>
3644 to report statistics on multiple pages (Hamid Akhtar)
3648 This is similar to
<function>bt_page_stats()
</function> except it
3649 can report on a range of pages.
3654 Author: Tom Lane <tgl@sss.pgh.pa.us>
3655 2023-01-02 [1fd3dd204] Add bt_multi_page_stats() function to contrib/pageinspec
3660 Add empty range output column to
<link
3661 linkend=
"pageinspect"><application>pageinspect
</application></link>
3663 linkend=
"pageinspect-brin-funcs"><function>brin_page_items()
</function></link>
3669 Author: Michael Paquier <michael@paquier.xyz>
3670 2023-02-17 [35739b87d] Redesign archive modules
3675 Redesign archive modules to be more flexible (Nathan Bossart)
3679 Initialization changes will require modules written for older
3680 versions of Postgres to be updated.
3685 Author: Michael Paquier <michael@paquier.xyz>
3686 2023-04-06 [1d477a907] Fix row tracking in pg_stat_statements with extended que
3691 Correct inaccurate
<link
3692 linkend=
"pgstatstatements"><application>pg_stat_statements
</application></link>
3693 row tracking extended query protocol statements (Sami Imseih)
3698 Author: Tom Lane <tgl@sss.pgh.pa.us>
3699 2023-04-07 [f3fa31327] Add pg_buffercache_usage_counts() to contrib/pg_bufferca
3705 linkend=
"pgbuffercache"><application>pg_buffercache
</application></link>
3706 function
<function>pg_buffercache_usage_counts()
</function> to
3707 report usage totals (Nathan Bossart)
3712 Author: Andres Freund <andres@anarazel.de>
3713 2022-10-13 [2589434ae] pg_buffercache: Add pg_buffercache_summary()
3719 linkend=
"pgbuffercache"><application>pg_buffercache
</application></link>
3720 function
<function>pg_buffercache_summary()
</function> to report
3721 summarized buffer statistics (Melih Mutlu)
3726 Author: Tom Lane <tgl@sss.pgh.pa.us>
3727 2023-03-20 [72a5b1fc8] Add @extschema:name@ and no_relocate options to extensio
3732 Allow the schemas of required extensions to be
3733 referenced in extension scripts using the new syntax
3734 <literal>@extschema:referenced_extension_name@
</literal>
3740 Author: Tom Lane <tgl@sss.pgh.pa.us>
3741 2023-03-20 [72a5b1fc8] Add @extschema:name@ and no_relocate options to extensio
3746 Allow required extensions to
3747 be marked as non-relocatable using
<link
3748 linkend=
"extend-extensions-files-no-relocate"><literal>no_relocate
</literal></link>
3753 This allows
<literal>@extschema:referenced_extension_name@
</literal>
3754 to be treated as a constant for the lifetime of the extension.
3760 <sect4 id=
"release-16-pgfdw">
3761 <title><link linkend=
"postgres-fdw"><application>postgres_fdw
</application></link></title>
3766 Author: Etsuro Fujita <efujita@postgresql.org>
3767 2023-04-06 [983ec2300] postgres_fdw: Add support for parallel abort.
3772 Allow
<application>postgres_fdw
</application> to do aborts in
3773 parallel (Etsuro Fujita)
3777 This is enabled with
3778 <application>postgres_fdw
</application> option
<link
3779 linkend=
"postgres-fdw-options-transaction-management"><option>parallel_abort
</option></link>.
3784 Author: Tomas Vondra <tomas.vondra@postgresql.org>
3785 2022-12-30 [8ad51b5f4] Sample postgres_fdw tables remotely during ANALYZE
3790 Make
<link linkend=
"sql-analyze"><command>ANALYZE
</command></link>
3791 on foreign
<application>postgres_fdw
</application> tables more
3792 efficient (Tomas Vondra)
3796 The
<application>postgres_fdw
</application> option
<link
3797 linkend=
"postgres-fdw-options-cost-estimation"><option>analyze_sampling
</option></link>
3798 controls the sampling method.
3803 Author: Tom Lane <tgl@sss.pgh.pa.us>
3804 2022-07-17 [31e5b5029] postgres_fdw: be more wary about shippability of reg* co
3809 Restrict shipment of
<link
3810 linkend=
"datatype-oid"><type>reg
</type></link>* type constants
3811 in
<application>postgres_fdw
</application> to those referencing
3812 built-in objects or extensions marked as shippable (Tom Lane)
3817 Author: Andres Freund <andres@anarazel.de>
3818 2023-01-23 [e4602483e] dblink, postgres_fdw: Handle interrupts during connectio
3823 Have
<application>postgres_fdw
</application> and
<link
3824 linkend=
"dblink"><application>dblink
</application></link> handle
3825 interrupts during connection establishment (Andres Freund)
3837 <sect2 id=
"release-16-acknowledgements">
3838 <title>Acknowledgments
</title>
3841 The following individuals (in alphabetical order) have contributed
3842 to this release as patch authors, committers, reviewers, testers,
3843 or reporters of issues.
3847 <member>Abhijit Menon-Sen
</member>
3848 <member>Adam Mackler
</member>
3849 <member>Adrian Klaver
</member>
3850 <member>Ahsan Hadi
</member>
3851 <member>Ajin Cherian
</member>
3852 <member>Ajit Awekar
</member>
3853 <member>Alan Hodgson
</member>
3854 <member>Aleksander Alekseev
</member>
3855 <member>Alex Denman
</member>
3856 <member>Alex Kozhemyakin
</member>
3857 <member>Alexander Korolev
</member>
3858 <member>Alexander Korotkov
</member>
3859 <member>Alexander Lakhin
</member>
3860 <member>Alexander Pyhalov
</member>
3861 <member>Alexey Borzov
</member>
3862 <member>Alexey Ermakov
</member>
3863 <member>Alexey Makhmutov
</member>
3864 <member>Álvaro Herrera
</member>
3865 <member>Amit Kapila
</member>
3866 <member>Amit Khandekar
</member>
3867 <member>Amit Langote
</member>
3868 <member>Amul Sul
</member>
3869 <member>Anastasia Lubennikova
</member>
3870 <member>Anban Company
</member>
3871 <member>Andreas Dijkman
</member>
3872 <member>Andreas Karlsson
</member>
3873 <member>Andreas Scherbaum
</member>
3874 <member>Andrei Zubkov
</member>
3875 <member>Andres Freund
</member>
3876 <member>Andrew Alsup
</member>
3877 <member>Andrew Bille
</member>
3878 <member>Andrew Dunstan
</member>
3879 <member>Andrew Gierth
</member>
3880 <member>Andrew Kesper
</member>
3881 <member>Andrey Borodin
</member>
3882 <member>Andrey Lepikhov
</member>
3883 <member>Andrey Sokolov
</member>
3884 <member>Ankit Kumar Pandey
</member>
3885 <member>Ante Kresic
</member>
3886 <member>Anton Melnikov
</member>
3887 <member>Anton Sidyakin
</member>
3888 <member>Anton Voloshin
</member>
3889 <member>Antonin Houska
</member>
3890 <member>Arne Roland
</member>
3891 <member>Artem Anisimov
</member>
3892 <member>Arthur Zakirov
</member>
3893 <member>Ashutosh Bapat
</member>
3894 <member>Ashutosh Sharma
</member>
3895 <member>Asim Praveen
</member>
3896 <member>Atsushi Torikoshi
</member>
3897 <member>Ayaki Tachikake
</member>
3898 <member>Balazs Szilfai
</member>
3899 <member>Benoit Lobréau
</member>
3900 <member>Bernd Helmle
</member>
3901 <member>Bertrand Drouvot
</member>
3902 <member>Bharath Rupireddy
</member>
3903 <member>Bilva Sanaba
</member>
3904 <member>Bob Krier
</member>
3905 <member>Boris Zentner
</member>
3906 <member>Brad Nicholson
</member>
3907 <member>Brar Piening
</member>
3908 <member>Bruce Momjian
</member>
3909 <member>Bruno da Silva
</member>
3910 <member>Carl Sopchak
</member>
3911 <member>Cary Huang
</member>
3912 <member>Changhong Fei
</member>
3913 <member>Chris Travers
</member>
3914 <member>Christoph Berg
</member>
3915 <member>Christophe Pettus
</member>
3916 <member>Corey Huinker
</member>
3917 <member>Craig Ringer
</member>
3918 <member>Curt Kolovson
</member>
3919 <member>Dag Lem
</member>
3920 <member>Dagfinn Ilmari Mannsåker
</member>
3921 <member>Daniel Gustafsson
</member>
3922 <member>Daniel Vérité
</member>
3923 <member>Daniel Watzinger
</member>
3924 <member>Daniel Westermann
</member>
3925 <member>Daniele Varrazzo
</member>
3926 <member>Daniil Anisimov
</member>
3927 <member>Danny Shemesh
</member>
3928 <member>Dave Page
</member>
3929 <member>David Christensen
</member>
3930 <member>David G. Johnston
</member>
3931 <member>David Geier
</member>
3932 <member>David Gilman
</member>
3933 <member>David Kimura
</member>
3934 <member>David Rowley
</member>
3935 <member>David Steele
</member>
3936 <member>David Turon
</member>
3937 <member>David Zhang
</member>
3938 <member>Davinder Singh
</member>
3939 <member>Dean Rasheed
</member>
3940 <member>Denis Laxalde
</member>
3941 <member>Dilip Kumar
</member>
3942 <member>Dimos Stamatakis
</member>
3943 <member>Dmitriy Kuzmin
</member>
3944 <member>Dmitry Astapov
</member>
3945 <member>Dmitry Dolgov
</member>
3946 <member>Dmitry Koval
</member>
3947 <member>Dong Wook Lee
</member>
3948 <member>Dongming Liu
</member>
3949 <member>Drew DeVault
</member>
3950 <member>Duncan Sands
</member>
3951 <member>Ed Maste
</member>
3952 <member>Egor Chindyaskin
</member>
3953 <member>Ekaterina Kiryanova
</member>
3954 <member>Elena Indrupskaya
</member>
3955 <member>Emmanuel Quincerot
</member>
3956 <member>Eric Mutta
</member>
3957 <member>Erik Rijkers
</member>
3958 <member>Erki Eessaar
</member>
3959 <member>Erwin Brandstetter
</member>
3960 <member>Etsuro Fujita
</member>
3961 <member>Eugeny Zhuzhnev
</member>
3962 <member>Euler Taveira
</member>
3963 <member>Evan Jones
</member>
3964 <member>Evgeny Morozov
</member>
3965 <member>Fabrízio de Royes Mello
</member>
3966 <member>Farias de Oliveira
</member>
3967 <member>Florin Irion
</member>
3968 <member>Franz-Josef Färber
</member>
3969 <member>Garen Torikian
</member>
3970 <member>Georgios Kokolatos
</member>
3971 <member>Gilles Darold
</member>
3972 <member>Greg Stark
</member>
3973 <member>Guillaume Lelarge
</member>
3974 <member>Gunnar Bluth
</member>
3975 <member>Gunnar Morling
</member>
3976 <member>Gurjeet Singh
</member>
3977 <member>Haiyang Wang
</member>
3978 <member>Haiying Tang
</member>
3979 <member>Hamid Akhtar
</member>
3980 <member>Hans Buschmann
</member>
3981 <member>Hao Wu
</member>
3982 <member>Hayato Kuroda
</member>
3983 <member>Heath Lord
</member>
3984 <member>Heikki Linnakangas
</member>
3985 <member>Himanshu Upadhyaya
</member>
3986 <member>Hisahiro Kauchi
</member>
3987 <member>Hongyu Song
</member>
3988 <member>Hubert Lubaczewski
</member>
3989 <member>Hung Nguyen
</member>
3990 <member>Ian Barwick
</member>
3991 <member>Ibrar Ahmed
</member>
3992 <member>Ilya Gladyshev
</member>
3993 <member>Ilya Nenashev
</member>
3994 <member>Isaac Morland
</member>
3995 <member>Israel Barth Rubio
</member>
3996 <member>Jacob Champion
</member>
3997 <member>Jacob Speidel
</member>
3998 <member>Jaime Casanova
</member>
3999 <member>Jakub Wartak
</member>
4000 <member>James Coleman
</member>
4001 <member>James Inform
</member>
4002 <member>James Vanns
</member>
4003 <member>Jan Wieck
</member>
4004 <member>Japin Li
</member>
4005 <member>Jeevan Ladhe
</member>
4006 <member>Jeff Davis
</member>
4007 <member>Jeff Janes
</member>
4008 <member>Jehan-Guillaume de Rorthais
</member>
4009 <member>Jelte Fennema
</member>
4010 <member>Jian He
</member>
4011 <member>Jim Jones
</member>
4012 <member>Jinbao Chen
</member>
4013 <member>Joe Conway
</member>
4014 <member>Joel Jacobson
</member>
4015 <member>John Naylor
</member>
4016 <member>Jonathan Katz
</member>
4017 <member>Josef Simanek
</member>
4018 <member>Joseph Koshakow
</member>
4019 <member>Juan José Santamaría Flecha
</member>
4020 <member>Julien Rouhaud
</member>
4021 <member>Julien Roze
</member>
4022 <member>Junwang Zhao
</member>
4023 <member>Justin Pryzby
</member>
4024 <member>Justin Zhang
</member>
4025 <member>Karina Litskevich
</member>
4026 <member>Karl O. Pinc
</member>
4027 <member>Keisuke Kuroda
</member>
4028 <member>Ken Kato
</member>
4029 <member>Kevin McKibbin
</member>
4030 <member>Kieran McCusker
</member>
4031 <member>Kirk Wolak
</member>
4032 <member>Konstantin Knizhnik
</member>
4033 <member>Koshi Shibagaki
</member>
4034 <member>Kotaro Kawamoto
</member>
4035 <member>Kui Liu
</member>
4036 <member>Kyotaro Horiguchi
</member>
4037 <member>Lakshmi Narayanan Sreethar
</member>
4038 <member>Laurence Parry
</member>
4039 <member>Laurenz Albe
</member>
4040 <member>Luca Ferrari
</member>
4041 <member>Lukas Fittl
</member>
4042 <member>Maciek Sakrejda
</member>
4043 <member>Magnus Hagander
</member>
4044 <member>Maja Zaloznik
</member>
4045 <member>Marcel Hofstetter
</member>
4046 <member>Marina Polyakova
</member>
4047 <member>Mark Dilger
</member>
4048 <member>Marko Tiikkaja
</member>
4049 <member>Markus Winand
</member>
4050 <member>Martijn van Oosterhout
</member>
4051 <member>Martin Jurca
</member>
4052 <member>Martin Kalcher
</member>
4053 <member>Mary Xu
</member>
4054 <member>Masahiko Sawada
</member>
4055 <member>Masahiro Ikeda
</member>
4056 <member>Masao Fujii
</member>
4057 <member>Mason Sharp
</member>
4058 <member>Matheus Alcantara
</member>
4059 <member>Mats Kindahl
</member>
4060 <member>Matthias van de Meent
</member>
4061 <member>Matthijs van der Vleuten
</member>
4062 <member>Maxim Orlov
</member>
4063 <member>Maxim Yablokov
</member>
4064 <member>Mehmet Emin Karakas
</member>
4065 <member>Melanie Plageman
</member>
4066 <member>Melih Mutlu
</member>
4067 <member>Micah Gate
</member>
4068 <member>Michael Banck
</member>
4069 <member>Michael Paquier
</member>
4070 <member>Michail Nikolaev
</member>
4071 <member>Michel Pelletier
</member>
4072 <member>Mike Oh
</member>
4073 <member>Mikhail Gribkov
</member>
4074 <member>Mingli Zhang
</member>
4075 <member>Miroslav Bendik
</member>
4076 <member>Mitsuru Hinata
</member>
4077 <member>Myo Wai Thant
</member>
4078 <member>Naeem Akhter
</member>
4079 <member>Naoki Okano
</member>
4080 <member>Nathan Bossart
</member>
4081 <member>Nazir Bilal Yavuz
</member>
4082 <member>Neha Sharma
</member>
4083 <member>Nick Babadzhanian
</member>
4084 <member>Nicola Contu
</member>
4085 <member>Nikhil Shetty
</member>
4086 <member>Nikita Glukhov
</member>
4087 <member>Nikolay Samokhvalov
</member>
4088 <member>Nikolay Shaplov
</member>
4089 <member>Nishant Sharma
</member>
4090 <member>Nitin Jadhav
</member>
4091 <member>Noah Misch
</member>
4092 <member>Noboru Saito
</member>
4093 <member>Noriyoshi Shinoda
</member>
4094 <member>Nuko Yokohama
</member>
4095 <member>Oleg Bartunov
</member>
4096 <member>Oleg Tselebrovskiy
</member>
4097 <member>Olly Betts
</member>
4098 <member>Onder Kalaci
</member>
4099 <member>Onur Tirtir
</member>
4100 <member>Pablo Federico
</member>
4101 <member>Palle Girgensohn
</member>
4102 <member>Paul Guo
</member>
4103 <member>Paul Jungwirth
</member>
4104 <member>Paul Ramsey
</member>
4105 <member>Pavel Borisov
</member>
4106 <member>Pavel Kulakov
</member>
4107 <member>Pavel Luzanov
</member>
4108 <member>Pavel Stehule
</member>
4109 <member>Peifeng Qiu
</member>
4110 <member>Peter Eisentraut
</member>
4111 <member>Peter Geoghegan
</member>
4112 <member>Peter Smith
</member>
4113 <member>Phil Florent
</member>
4114 <member>Philippe Godfrin
</member>
4115 <member>Platon Pronko
</member>
4116 <member>Przemyslaw Sztoch
</member>
4117 <member>Rachel Heaton
</member>
4118 <member>Ranier Vilela
</member>
4119 <member>Regina Obe
</member>
4120 <member>Reid Thompson
</member>
4121 <member>Reiner Peterke
</member>
4122 <member>Richard Guo
</member>
4123 <member>Riivo Kolka
</member>
4124 <member>Rishu Bagga
</member>
4125 <member>Robert Haas
</member>
4126 <member>Robert Sjöblom
</member>
4127 <member>Robert Treat
</member>
4128 <member>Roberto Mello
</member>
4129 <member>Robins Tharakan
</member>
4130 <member>Roman Zharkov
</member>
4131 <member>Ronan Dunklau
</member>
4132 <member>Rushabh Lathia
</member>
4133 <member>Ryo Matsumura
</member>
4134 <member>Samay Sharma
</member>
4135 <member>Sami Imseih
</member>
4136 <member>Sandeep Thakkar
</member>
4137 <member>Sandro Santilli
</member>
4138 <member>Sebastien Flaesch
</member>
4139 <member>Sébastien Lardière
</member>
4140 <member>Sehrope Sarkuni
</member>
4141 <member>Sergey Belyashov
</member>
4142 <member>Sergey Pankov
</member>
4143 <member>Sergey Shinderuk
</member>
4144 <member>Shi Yu
</member>
4145 <member>Shinya Kato
</member>
4146 <member>Sho Kato
</member>
4147 <member>Shruthi Gowda
</member>
4148 <member>Shveta Mallik
</member>
4149 <member>Simon Riggs
</member>
4150 <member>Sindy Senorita
</member>
4151 <member>Sirisha Chamarthi
</member>
4152 <member>Sravan Kumar
</member>
4153 <member>Stéphane Tachoires
</member>
4154 <member>Stephen Frost
</member>
4155 <member>Steve Chavez
</member>
4156 <member>Stone Tickle
</member>
4157 <member>Sven Klemm
</member>
4158 <member>Takamichi Osumi
</member>
4159 <member>Takeshi Ideriha
</member>
4160 <member>Tatsuhiro Nakamori
</member>
4161 <member>Tatsuo Ishii
</member>
4162 <member>Ted Yu
</member>
4163 <member>Teja Mupparti
</member>
4164 <member>Tender Wang
</member>
4165 <member>Teodor Sigaev
</member>
4166 <member>Thiago Nunes
</member>
4167 <member>Thom Brown
</member>
4168 <member>Thomas Habets
</member>
4169 <member>Thomas Mc Kay
</member>
4170 <member>Thomas Munro
</member>
4171 <member>Tim Carey-Smith
</member>
4172 <member>Tim Field
</member>
4173 <member>Timo Stolz
</member>
4174 <member>Tom Lane
</member>
4175 <member>Tomas Vondra
</member>
4176 <member>Tor Erik Linnerud
</member>
4177 <member>Torsten Förtsch
</member>
4178 <member>Tristan Partin
</member>
4179 <member>Troy Frericks
</member>
4180 <member>Tushar Ahuja
</member>
4181 <member>Valerie Woolard
</member>
4182 <member>Vibhor Kumar
</member>
4183 <member>Victor Spirin
</member>
4184 <member>Victoria Shepard
</member>
4185 <member>Vignesh C
</member>
4186 <member>Vik Fearing
</member>
4187 <member>Vitaly Burovoy
</member>
4188 <member>Vitaly Davydov
</member>
4189 <member>Wang Wei
</member>
4190 <member>Wenjing Zeng
</member>
4191 <member>Whale Song
</member>
4192 <member>Will Mortensen
</member>
4193 <member>Wolfgang Walther
</member>
4194 <member>Xin Wen
</member>
4195 <member>Xing Guo
</member>
4196 <member>Xingwang Xu
</member>
4197 <member>XueJing Zhao
</member>
4198 <member>Yanliang Lei
</member>
4199 <member>Youmiu Mo
</member>
4200 <member>Yugo Nagata
</member>
4201 <member>Yura Sokolov
</member>
4202 <member>Yuta Katsuragi
</member>
4203 <member>Zhen Mingyang
</member>
4204 <member>Zheng Li
</member>
4205 <member>Zhihong Yu
</member>
4206 <member>Zhijie Hou
</member>
4207 <member>Zongliang Quan
</member>
4208 <member>Zuming Jiang
</member>