{"format": 1, "mode": "release", "from_release": null, "to_release": {"date": "2023-09-14", "build": "16.0", "major": "16", "minor": 0, "manual": "16", "status": "stable", "doc_git": "", "version": "16.0", "eol_date": "2028-11-09", "date_text": "2023-09-14", "supported": true, "manual_url": "/docs/16/release-16.html", "source_url": "/docs/release/16.0/", "entry_count": 206, "placeholder": false, "content_hash": "8f16c4a6e531769e2a3762b986661a94410a012aaf315001ce1e70dbfd22f36a", "manual_build": "16.15", "source_as_of": "", "changes_count": 193, "doc_loaded_at": "2026-09-25T02:22:44.760693", "migration_html": "<p>A dump/restore using <a href=\"/docs/16/app-pg-dumpall.html\" title=\"pg_dumpall\"><span><span>pg_dumpall</span></span></a> or use of <a href=\"/docs/16/pgupgrade.html\" title=\"pg_upgrade\"><span><span>pg_upgrade</span></span></a> or logical replication is required for those wishing to migrate data from any previous release. See <a href=\"/docs/16/upgrading.html\" title=\"19.6. Upgrading a PostgreSQL Cluster\">Section 19.6</a> for general information on migrating to new major releases.</p>\n<p>Version 16 contains a number of changes that may affect compatibility with previous releases. Observe the following incompatibilities:</p>\n<div>\n</div>", "compatibility_count": 13, "label": "16.0", "status_label": "Supported", "eol": "2028-11-09", "age_days": 1111, "support_days": 772}, "groups": [{"date": "2023-09-14", "build": "16.0", "major": "16", "minor": 0, "manual": "16", "status": "stable", "doc_git": "", "version": "16.0", "eol_date": "2028-11-09", "date_text": "2023-09-14", "supported": true, "manual_url": "/docs/16/release-16.html", "source_url": "/docs/release/16.0/", "entry_count": 206, "placeholder": false, "content_hash": "8f16c4a6e531769e2a3762b986661a94410a012aaf315001ce1e70dbfd22f36a", "manual_build": "16.15", "source_as_of": "", "changes_count": 193, "doc_loaded_at": "2026-09-25T02:22:44.760693", "migration_html": "<p>A dump/restore using <a href=\"/docs/16/app-pg-dumpall.html\" title=\"pg_dumpall\"><span><span>pg_dumpall</span></span></a> or use of <a href=\"/docs/16/pgupgrade.html\" title=\"pg_upgrade\"><span><span>pg_upgrade</span></span></a> or logical replication is required for those wishing to migrate data from any previous release. See <a href=\"/docs/16/upgrading.html\" title=\"19.6. Upgrading a PostgreSQL Cluster\">Section 19.6</a> for general information on migrating to new major releases.</p>\n<p>Version 16 contains a number of changes that may affect compatibility with previous releases. Observe the following incompatibilities:</p>\n<div>\n</div>", "compatibility_count": 13, "label": "16.0", "status_label": "Supported", "eol": "2028-11-09", "age_days": 1111, "support_days": 772, "entries": [{"id": "16.0-c2006d3e0efb852e", "cves": [], "html": "<p>Change assignment rules for <a href=\"/docs/16/plpgsql-cursors.html#PLPGSQL-OPEN-BOUND-CURSOR\" title=\"43.7.2.3. Opening a Bound Cursor\"><span>PL/pgSQL</span></a> bound cursor variables (Tom Lane) <a href=\"https://postgr.es/c/d747dc85a\">§</a></p>\n<p>Previously, the string value of such variables was set to match the variable name during cursor assignment; now it will be assigned during <a href=\"/docs/16/plpgsql-cursors.html#PLPGSQL-CURSOR-OPENING\" title=\"43.7.2. Opening Cursors\"><code>OPEN</code></a>, and will not match the variable name. To restore the previous behavior, assign the desired portal name to the cursor variable before <code>OPEN</code>.</p>", "text": "Change assignment rules for PL/pgSQL bound cursor variables (Tom Lane) § Previously, the string value of such variables was set to match the variable name during cursor assignment; now it will be assigned during OPEN, and will not match the variable name. To restore the previous behavior, assign the desired portal name to the cursor variable before OPEN.", "title": "Change assignment rules for PL/pgSQL bound cursor variables", "commits": ["d747dc85a"], "section": "Compatibility", "category": "compatibility", "source_url": "/docs/release/16.0/#RELEASE-16-MIGRATION", "source_hash": "ff03d3d4fa400bc39cbf48f43e3bb5242c501683f7de47ae3cabe8c2104fbf52", "section_path": ["Compatibility"], "commit_groups": [["d747dc85a"]], "identity_text": "Change assignment rules for PL/pgSQL bound cursor variables (Tom Lane) Previously, the string value of such variables was set to match the variable name during cursor assignment; now it will be assigned during OPEN, and will not match the variable name. To restore the previous behavior, assign the desired portal name to the cursor variable before OPEN.", "commit_aliases": ["d747dc85a"], "source_commits": ["d747dc85a"], "source_entry_id": "16.0/migration/001", "db_id": "f826f81b9d803af44e93dedd76984421", "patch_ids": ["d1a2fdd858b6ec333c4665adcce4cb24"], "statement_hash": "0e8528d22765959188d56fd3d1531633f788410337873665b08edc7a382233b5", "relations": [], "version": "16.0", "category_label": "Compatibility", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-f6d52ac27d098459", "cves": [], "html": "<p>Disallow <a href=\"/docs/16/sql-createindex.html\" title=\"CREATE INDEX\"><code>NULLS NOT DISTINCT</code></a> indexes for primary keys (Daniel Gustafsson) <a href=\"https://postgr.es/c/d95952325\">§</a></p>", "text": "Disallow NULLS NOT DISTINCT indexes for primary keys (Daniel Gustafsson) §", "title": "Disallow NULLS NOT DISTINCT indexes for primary keys", "commits": ["d95952325"], "section": "Compatibility", "category": "compatibility", "source_url": "/docs/release/16.0/#RELEASE-16-MIGRATION", "source_hash": "731f7601bc98a32d4d05282cd59864ab58125822858c44f88eefa5de760cc855", "section_path": ["Compatibility"], "commit_groups": [["d95952325"]], "identity_text": "Disallow NULLS NOT DISTINCT indexes for primary keys (Daniel Gustafsson)", "commit_aliases": ["d95952325"], "source_commits": ["d95952325"], "source_entry_id": "16.0/migration/002", "db_id": "525a59c36fe299ecc3424dfc207afed2", "patch_ids": ["96f3f4331acacff0a7615eaf0e2b2f11"], "statement_hash": "e838b8ebf82f6e95a82fc1d6cf1183d0b91f30b3f7f2658bfccfacb8e6943ade", "relations": [], "version": "16.0", "category_label": "Compatibility", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-c55edd8a8feeef53", "cves": [], "html": "<p>Change <a href=\"/docs/16/sql-reindex.html\" title=\"REINDEX\"><code>REINDEX DATABASE</code></a> and <a href=\"/docs/16/app-reindexdb.html\" title=\"reindexdb\"><span>reindexdb</span></a> to not process indexes on system catalogs (Simon Riggs) <a href=\"https://postgr.es/c/2cbc3c17a\">§</a> <a href=\"https://postgr.es/c/0a5f06b84\">§</a></p>\n<p>Processing such indexes is still possible using <code>REINDEX SYSTEM</code> and <a href=\"/docs/16/app-reindexdb.html\" title=\"reindexdb\"><code>reindexdb --system</code></a>.</p>", "text": "Change REINDEX DATABASE and reindexdb to not process indexes on system catalogs (Simon Riggs) § § Processing such indexes is still possible using REINDEX SYSTEM and reindexdb --system.", "title": "Change REINDEX DATABASE and reindexdb to not process indexes on system catalogs", "commits": ["0a5f06b84", "2cbc3c17a"], "section": "Compatibility", "category": "compatibility", "source_url": "/docs/release/16.0/#RELEASE-16-MIGRATION", "source_hash": "44b2cbd5236ebc0b910d06ca508ef5acd96bd3592d54476f485ca5709607dd85", "section_path": ["Compatibility"], "commit_groups": [["0a5f06b84"], ["2cbc3c17a"]], "identity_text": "Change REINDEX DATABASE and reindexdb to not process indexes on system catalogs (Simon Riggs) Processing such indexes is still possible using REINDEX SYSTEM and reindexdb --system.", "commit_aliases": ["0a5f06b84", "2cbc3c17a"], "source_commits": ["0a5f06b84", "2cbc3c17a"], "source_entry_id": "16.0/migration/003", "db_id": "c7098ee16ce798a7dcd85cd97890fc70", "patch_ids": ["92844ce33747d7e2426d82ea02840c62", "e53caa2334bbd1e5befcc0bdae91cb58"], "statement_hash": "2e13605c2696202578ef3581c270e4fada4bd8120390bbd4e18763bc2eb7d409", "relations": [{"rule": 2, "type": "related", "target": "cb5715aa1fddf34ed43b90514b03bc21", "evidence": {"same_day": true, "patch_ids": ["92844ce33747d7e2426d82ea02840c62", "e53caa2334bbd1e5befcc0bdae91cb58"]}}], "version": "16.0", "category_label": "Compatibility", "also_in": [], "variants": [], "related_changes": [{"db_id": "cb5715aa1fddf34ed43b90514b03bc21", "kind": "related", "version": "16.0", "label": "16.0", "title": "Change REINDEX DATABASE and REINDEX SYSTEM to no longer require an argument", "evidence": {"same_day": true, "patch_ids": ["92844ce33747d7e2426d82ea02840c62", "e53caa2334bbd1e5befcc0bdae91cb58"]}, "url": "/docs/compare/?release=16.0#16.0-7d8ce5f7ef6c52d0", "source_url": "/docs/release/16.0/#RELEASE-16-UTILITY"}]}, {"id": "16.0-dda8925a6b01733d", "cves": [], "html": "<p>Tighten <a href=\"/docs/16/ddl-generated-columns.html\" title=\"5.3. Generated Columns\"><code>GENERATED</code></a> expression restrictions on inherited and partitioned tables (Amit Langote, Tom Lane) <a href=\"https://postgr.es/c/8bf6ec3ba\">§</a></p>\n<p>Columns of parent/partitioned and child/partition tables must all have the same generation status, though now the actual generation expressions can be different.</p>", "text": "Tighten GENERATED expression restrictions on inherited and partitioned tables (Amit Langote, Tom Lane) § Columns of parent/partitioned and child/partition tables must all have the same generation status, though now the actual generation expressions can be different.", "title": "Tighten GENERATED expression restrictions on inherited and partitioned tables", "commits": ["8bf6ec3ba"], "section": "Compatibility", "category": "compatibility", "source_url": "/docs/release/16.0/#RELEASE-16-MIGRATION", "source_hash": "2f4d4a22c5c5fa0712b58944dab99662aed475eb7a373d393020034f4fd8bd45", "section_path": ["Compatibility"], "commit_groups": [["8bf6ec3ba"]], "identity_text": "Tighten GENERATED expression restrictions on inherited and partitioned tables (Amit Langote, Tom Lane) Columns of parent/partitioned and child/partition tables must all have the same generation status, though now the actual generation expressions can be different.", "commit_aliases": ["8bf6ec3ba"], "source_commits": ["8bf6ec3ba"], "source_entry_id": "16.0/migration/004", "db_id": "21dabc3401e19db3c3edc0511f7b9664", "patch_ids": ["8f6de277fb37227b85a8719ec2c051ed"], "statement_hash": "b12095fa0feb00d8de6353bbc3e87ff460b6318f64cb13a5fc5b6867115a2a68", "relations": [], "version": "16.0", "category_label": "Compatibility", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-cb0959e990d03453", "cves": [], "html": "<p>Remove <a href=\"/docs/16/pgwalinspect.html\" title=\"F.37. pg_walinspect — low-level WAL inspection\"><span>pg_walinspect</span></a> functions <code>pg_get_wal_records_info_till_end_of_wal()</code> and <code>pg_get_wal_stats_till_end_of_wal()</code> (Bharath Rupireddy) <a href=\"https://postgr.es/c/5c1b66280\">§</a></p>", "text": "Remove pg_walinspect functions pg_get_wal_records_info_till_end_of_wal() and pg_get_wal_stats_till_end_of_wal() (Bharath Rupireddy) §", "title": "Remove pg_walinspect functions pg_get_wal_records_info_till_end_of_wal() and pg_get_wal_stats_till_end_of_wal()", "commits": ["5c1b66280"], "section": "Compatibility", "category": "compatibility", "source_url": "/docs/release/16.0/#RELEASE-16-MIGRATION", "source_hash": "aaeb51531781db78e24693218237c4d5d7749c912d4240bd5496f3d6f1f38857", "section_path": ["Compatibility"], "commit_groups": [["5c1b66280"]], "identity_text": "Remove pg_walinspect functions pg_get_wal_records_info_till_end_of_wal() and pg_get_wal_stats_till_end_of_wal() (Bharath Rupireddy)", "commit_aliases": ["5c1b66280"], "source_commits": ["5c1b66280"], "source_entry_id": "16.0/migration/005", "db_id": "41a03866a7fb689d27c47b605f7199e1", "patch_ids": ["c5d8dc1de10576f0de896e9cd38e3777"], "statement_hash": "56731df48bcccdc5a1f93f2efb1731ac75a73d869946f1fe10480d6c3c9ff392", "relations": [{"rule": 2, "type": "related", "target": "95ce3c27034083611423b540747ddc44", "evidence": {"same_day": true, "patch_ids": ["c5d8dc1de10576f0de896e9cd38e3777"]}}], "version": "16.0", "category_label": "Compatibility", "also_in": [], "variants": [], "related_changes": [{"db_id": "95ce3c27034083611423b540747ddc44", "kind": "related", "version": "16.0", "label": "16.0", "title": "Change how pg_walinspect functions pg_get_wal_records_info() and pg_get_wal_stats() interpret ending LSNs", "evidence": {"same_day": true, "patch_ids": ["c5d8dc1de10576f0de896e9cd38e3777"]}, "url": "/docs/compare/?release=16.0#16.0-68251bab0ef9ada7", "source_url": "/docs/release/16.0/#RELEASE-16-MODULES"}]}, {"id": "16.0-1470f115194dedd6", "cves": [], "html": "<p>Rename server variable <code>force_parallel_mode</code> to <a href=\"/docs/16/runtime-config-developer.html#GUC-DEBUG-PARALLEL-QUERY\"><code>debug_parallel_query</code></a> (David Rowley) <a href=\"https://postgr.es/c/5352ca22e\">§</a> <a href=\"https://postgr.es/c/0981846b9\">§</a></p>", "text": "Rename server variable force_parallel_mode to debug_parallel_query (David Rowley) § §", "title": "Rename server variable force_parallel_mode to debug_parallel_query", "commits": ["0981846b9", "5352ca22e"], "section": "Compatibility", "category": "compatibility", "source_url": "/docs/release/16.0/#RELEASE-16-MIGRATION", "source_hash": "1d2f7fc57ae0ad9f83c49d6682a7733273a18369d18c925e11d0ce276f67f495", "section_path": ["Compatibility"], "commit_groups": [["0981846b9"], ["5352ca22e"]], "identity_text": "Rename server variable force_parallel_mode to debug_parallel_query (David Rowley)", "commit_aliases": ["0981846b9", "5352ca22e"], "source_commits": ["0981846b9", "5352ca22e"], "source_entry_id": "16.0/migration/006", "db_id": "0021b32ec9b29347bc76cd59068adcf5", "patch_ids": ["60c35f96ee550b3fe84228c3753b8802", "a8d467ec39eabd48bdb6da03f502e553"], "statement_hash": "e470c3eef394351072c19760938a6219036b231d5a3557fce594ecc3a716b219", "relations": [], "version": "16.0", "category_label": "Compatibility", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-934f312ead07017b", "cves": [], "html": "<p>Remove the ability to <a href=\"/docs/16/sql-createview.html\" title=\"CREATE VIEW\">create views</a> manually with <code>ON SELECT</code> rules (Tom Lane) <a href=\"https://postgr.es/c/b23cd185f\">§</a></p>", "text": "Remove the ability to create views manually with ON SELECT rules (Tom Lane) §", "title": "Remove the ability to create views manually with ON SELECT rules", "commits": ["b23cd185f"], "section": "Compatibility", "category": "compatibility", "source_url": "/docs/release/16.0/#RELEASE-16-MIGRATION", "source_hash": "39c582283841cd5ef7096d0d0ecdc495207fb4e659c7f4f58517f0e0afdf3044", "section_path": ["Compatibility"], "commit_groups": [["b23cd185f"]], "identity_text": "Remove the ability to create views manually with ON SELECT rules (Tom Lane)", "commit_aliases": ["b23cd185f"], "source_commits": ["b23cd185f"], "source_entry_id": "16.0/migration/007", "db_id": "1146c5c188d37db16f418bfc4d0a0188", "patch_ids": ["26c1e01147ea110f7e1341afb99685b2"], "statement_hash": "91b3da9ee1d9bb132010f131375167c6569cbd63af7afa8e6eda60ec48fbd16b", "relations": [], "version": "16.0", "category_label": "Compatibility", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-3f2e92d8f4b3042f", "cves": [], "html": "<p>Remove the server variable <code>vacuum_defer_cleanup_age</code> (Andres Freund) <a href=\"https://postgr.es/c/1118cd37e\">§</a></p>\n<p>This has been unnecessary since <a href=\"/docs/16/runtime-config-replication.html#GUC-HOT-STANDBY-FEEDBACK\"><code>hot_standby_feedback</code></a> and <a href=\"/docs/16/warm-standby.html#STREAMING-REPLICATION-SLOTS\" title=\"27.2.6. Replication Slots\">replication slots</a> were added.</p>", "text": "Remove the server variable vacuum_defer_cleanup_age (Andres Freund) § This has been unnecessary since hot_standby_feedback and replication slots were added.", "title": "Remove the server variable vacuum_defer_cleanup_age", "commits": ["1118cd37e"], "section": "Compatibility", "category": "compatibility", "source_url": "/docs/release/16.0/#RELEASE-16-MIGRATION", "source_hash": "4b882cef80529f8bc7a1480c34a44e9b647ce681f841778ad9a3d6c2eca70933", "section_path": ["Compatibility"], "commit_groups": [["1118cd37e"]], "identity_text": "Remove the server variable vacuum_defer_cleanup_age (Andres Freund) This has been unnecessary since hot_standby_feedback and replication slots were added.", "commit_aliases": ["1118cd37e"], "source_commits": ["1118cd37e"], "source_entry_id": "16.0/migration/008", "db_id": "6580ec13be6935ed2310abd7e881bf33", "patch_ids": ["98a0667069dfaddded4b53f187b36b07"], "statement_hash": "373eb79c6499823724b4d0d654d05956e00c45cf4a3c1703d580d7d6c23ed1b2", "relations": [], "version": "16.0", "category_label": "Compatibility", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-98ebe1a151945b3a", "cves": [], "html": "<p>Remove server variable <code>promote_trigger_file</code> (Simon Riggs) <a href=\"https://postgr.es/c/cd4329d93\">§</a></p>\n<p>This was used to promote a standby to primary, but is now more easily accomplished with <a href=\"/docs/16/app-pg-ctl.html\" title=\"pg_ctl\"><code>pg_ctl promote</code></a> or <a href=\"/docs/16/functions-admin.html#FUNCTIONS-RECOVERY-CONTROL-TABLE\" title=\"Table 9.93. Recovery Control Functions\"><code>pg_promote()</code></a>.</p>", "text": "Remove server variable promote_trigger_file (Simon Riggs) § This was used to promote a standby to primary, but is now more easily accomplished with pg_ctl promote or pg_promote().", "title": "Remove server variable promote_trigger_file", "commits": ["cd4329d93"], "section": "Compatibility", "category": "compatibility", "source_url": "/docs/release/16.0/#RELEASE-16-MIGRATION", "source_hash": "a27e853a9e7b5212948b9d281d6cf8f872e30ee49581231570ebea01ad783932", "section_path": ["Compatibility"], "commit_groups": [["cd4329d93"]], "identity_text": "Remove server variable promote_trigger_file (Simon Riggs) This was used to promote a standby to primary, but is now more easily accomplished with pg_ctl promote or pg_promote().", "commit_aliases": ["cd4329d93"], "source_commits": ["cd4329d93"], "source_entry_id": "16.0/migration/009", "db_id": "5405598362068aa04a2b45cf48e59cb3", "patch_ids": ["9c19cf3afb987af2b70233ec3dfd21ce"], "statement_hash": "822587dcef0a14f39b233170796e2ebfb78782fb2878a60bb48f7cd4e5a89331", "relations": [], "version": "16.0", "category_label": "Compatibility", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-5d7b6a3dbc288d82", "cves": [], "html": "<p>Remove read-only server variables <code>lc_collate</code> and <code>lc_ctype</code> (Peter Eisentraut) <a href=\"https://postgr.es/c/b0f6c4371\">§</a></p>\n<p>Collations and locales can vary between databases so having them as read-only server variables was unhelpful.</p>", "text": "Remove read-only server variables lc_collate and lc_ctype (Peter Eisentraut) § Collations and locales can vary between databases so having them as read-only server variables was unhelpful.", "title": "Remove read-only server variables lc_collate and lc_ctype", "commits": ["b0f6c4371"], "section": "Compatibility", "category": "compatibility", "source_url": "/docs/release/16.0/#RELEASE-16-MIGRATION", "source_hash": "b34eee366af5aab8bce4e159774ad21b67e949cafca3f48a82056b4b21398d80", "section_path": ["Compatibility"], "commit_groups": [["b0f6c4371"]], "identity_text": "Remove read-only server variables lc_collate and lc_ctype (Peter Eisentraut) Collations and locales can vary between databases so having them as read-only server variables was unhelpful.", "commit_aliases": ["b0f6c4371"], "source_commits": ["b0f6c4371"], "source_entry_id": "16.0/migration/010", "db_id": "118b79aa4bd23937ad8a0d257a494e71", "patch_ids": ["f2dbea8b8cfad834ac1df4cba3499a6b"], "statement_hash": "7a964152e16996abe66d5ca141d0faaba7cf517ed8c3bff06dfb4d22790bdc30", "relations": [], "version": "16.0", "category_label": "Compatibility", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-008a75f47f428d6f", "cves": [], "html": "<p>Role inheritance now controls the default inheritance status of member roles added during <a href=\"/docs/16/sql-grant.html\" title=\"GRANT\"><code>GRANT</code></a> (Robert Haas) <a href=\"https://postgr.es/c/e3ce2de09\">§</a></p>\n<p>The role's default inheritance behavior can be overridden with the new <code>GRANT ... WITH INHERIT</code> clause. This allows inheritance of some roles and not others because the members' inheritance status is set at <code>GRANT</code> time. Previously the inheritance status of member roles was controlled only by the role's inheritance status, and changes to a role's inheritance status affected all previous and future member roles.</p>", "text": "Role inheritance now controls the default inheritance status of member roles added during GRANT (Robert Haas) § The role's default inheritance behavior can be overridden with the new GRANT ... WITH INHERIT clause. This allows inheritance of some roles and not others because the members' inheritance status is set at GRANT time. Previously the inheritance status of member roles was controlled only by the role's inheritance status, and changes to a role's inheritance status affected all previous and future member roles.", "title": "Role inheritance now controls the default inheritance status of member roles added during GRANT", "commits": ["e3ce2de09"], "section": "Compatibility", "category": "compatibility", "source_url": "/docs/release/16.0/#RELEASE-16-MIGRATION", "source_hash": "9cdaaa326cf3582563c3e6cf2693c6ef5598aef12a532f4fa7c096d1be3dd1c1", "section_path": ["Compatibility"], "commit_groups": [["e3ce2de09"]], "identity_text": "Role inheritance now controls the default inheritance status of member roles added during GRANT (Robert Haas) The role's default inheritance behavior can be overridden with the new GRANT ... WITH INHERIT clause. This allows inheritance of some roles and not others because the members' inheritance status is set at GRANT time. Previously the inheritance status of member roles was controlled only by the role's inheritance status, and changes to a role's inheritance status affected all previous and future member roles.", "commit_aliases": ["e3ce2de09"], "source_commits": ["e3ce2de09"], "source_entry_id": "16.0/migration/011", "db_id": "0737ce1c20636caccfeb102fc4eee993", "patch_ids": ["504c427340a3e4db6513b1d1bf5f39f8"], "statement_hash": "7e3c516fd032c0acb9352886c0adf824360ec7df5fcea6a22f5fae4019efeb06", "relations": [{"rule": 2, "type": "related", "target": "16b0c20f5aecf71bf2b84e46d17b8a37", "evidence": {"same_day": true, "patch_ids": ["504c427340a3e4db6513b1d1bf5f39f8"]}}], "version": "16.0", "category_label": "Compatibility", "also_in": [], "variants": [], "related_changes": [{"db_id": "16b0c20f5aecf71bf2b84e46d17b8a37", "kind": "related", "version": "16.0", "label": "16.0", "title": "Allow GRANT to use WITH ADMIN TRUE/FALSE syntax", "evidence": {"same_day": true, "patch_ids": ["504c427340a3e4db6513b1d1bf5f39f8"]}, "url": "/docs/compare/?release=16.0#16.0-85fcfae397e13587", "source_url": "/docs/release/16.0/#RELEASE-16-PRIVILEGES"}]}, {"id": "16.0-b301820db97ba0b9", "cves": [], "html": "<p>Restrict the privileges of <a href=\"/docs/16/sql-createrole.html\" title=\"CREATE ROLE\"><code>CREATEROLE</code></a> and its ability to modify other roles (Robert Haas) <a href=\"https://postgr.es/c/cf5eb37c5\">§</a> <a href=\"https://postgr.es/c/f1358ca52\">§</a></p>\n<p>Previously roles with <code>CREATEROLE</code> privileges could change many aspects of any non-superuser role. Such changes, including adding members, now require the role requesting the change to have <code>ADMIN OPTION</code> permission. For example, they can now change the <code>CREATEDB</code>, <code>REPLICATION</code>, and <code>BYPASSRLS</code> properties only if they also have those permissions.</p>", "text": "Restrict the privileges of CREATEROLE and its ability to modify other roles (Robert Haas) § § Previously roles with CREATEROLE privileges could change many aspects of any non-superuser role. Such changes, including adding members, now require the role requesting the change to have ADMIN OPTION permission. For example, they can now change the CREATEDB, REPLICATION, and BYPASSRLS properties only if they also have those permissions.", "title": "Restrict the privileges of CREATEROLE and its ability to modify other roles", "commits": ["cf5eb37c5", "f1358ca52"], "section": "Compatibility", "category": "compatibility", "source_url": "/docs/release/16.0/#RELEASE-16-MIGRATION", "source_hash": "dfc88d3ace03803791618a29fcd3a417d796512d8b22c6a6d81526e5b6295f13", "section_path": ["Compatibility"], "commit_groups": [["cf5eb37c5"], ["f1358ca52"]], "identity_text": "Restrict the privileges of CREATEROLE and its ability to modify other roles (Robert Haas) Previously roles with CREATEROLE privileges could change many aspects of any non-superuser role. Such changes, including adding members, now require the role requesting the change to have ADMIN OPTION permission. For example, they can now change the CREATEDB, REPLICATION, and BYPASSRLS properties only if they also have those permissions.", "commit_aliases": ["cf5eb37c5", "f1358ca52"], "source_commits": ["cf5eb37c5", "f1358ca52"], "source_entry_id": "16.0/migration/012", "db_id": "64bbb04d5e374e8a6abc967258877f67", "patch_ids": ["8f5ea59ca418b4dacde9858b76586085", "bf6ecd70dacc4fb0b20a61a6f6613c10"], "statement_hash": "cf1865a09fad199806b80e0a2506306fe6e6d63498f94a9deebf83a45e4ecbdb", "relations": [], "version": "16.0", "category_label": "Compatibility", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-122c477b05fd7f8b", "cves": [], "html": "<p>Remove symbolic links for the <span>postmaster</span> binary (Peter Eisentraut) <a href=\"https://postgr.es/c/37e267335\">§</a></p>", "text": "Remove symbolic links for the postmaster binary (Peter Eisentraut) §", "title": "Remove symbolic links for the postmaster binary", "commits": ["37e267335"], "section": "Compatibility", "category": "compatibility", "source_url": "/docs/release/16.0/#RELEASE-16-MIGRATION", "source_hash": "643f5c387a00bd79512076ba9ae1aa47de37a7ce495aa2b068d793ade64c51d0", "section_path": ["Compatibility"], "commit_groups": [["37e267335"]], "identity_text": "Remove symbolic links for the postmaster binary (Peter Eisentraut)", "commit_aliases": ["37e267335"], "source_commits": ["37e267335"], "source_entry_id": "16.0/migration/013", "db_id": "e60f91bcc7efa985b20c2b610e0405fa", "patch_ids": ["c11cfac0a884a301d3709f054ec4b403"], "statement_hash": "98f455b809af3b1897db450f8744b05f94841f1a0c961582f8387c318304d160", "relations": [], "version": "16.0", "category_label": "Compatibility", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-4b68db34c6da3880", "cves": [], "html": "<p>Allow incremental sorts in more cases, including <code>DISTINCT</code> (David Rowley) <a href=\"https://postgr.es/c/b59242209\">§</a> <a href=\"https://postgr.es/c/3c6fc5820\">§</a></p>", "text": "Allow incremental sorts in more cases, including DISTINCT (David Rowley) § §", "title": "Allow incremental sorts in more cases, including DISTINCT", "commits": ["3c6fc5820", "b59242209"], "section": "Server / Optimizer", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-OPTIMIZER", "source_hash": "87fd2e3cb5027c2f430d8e93b2be44e29b1631d6982db36e6c5b91589043f26d", "section_path": ["Server", "Optimizer"], "commit_groups": [["3c6fc5820"], ["b59242209"]], "identity_text": "Allow incremental sorts in more cases, including DISTINCT (David Rowley)", "commit_aliases": ["3c6fc5820", "b59242209"], "source_commits": ["3c6fc5820", "b59242209"], "source_entry_id": "16.0/changes/001", "db_id": "1e706dcdd440720f01c0d6229703951f", "patch_ids": ["3a70331f68a0f244d7d214beb8d2fbe3", "ac6897c21cbfd815556a7eaa75ee2cb9"], "statement_hash": "639e4372242875fb6f6a8b2f2c2929526c96183c540f41976b34985a92d84707", "relations": [], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-ccb37fa53cd5a5cf", "cves": [], "html": "<p>Add the ability for aggregates having <code>ORDER BY</code> or <code>DISTINCT</code> to use pre-sorted data (David Rowley) <a href=\"https://postgr.es/c/1349d2790\">§</a> <a href=\"https://postgr.es/c/3226f4728\">§</a> <a href=\"https://postgr.es/c/da5800d5f\">§</a></p>\n<p>The new server variable <a href=\"/docs/16/runtime-config-query.html#GUC-ENABLE-PRESORTED-AGGREGATE\"><code>enable_presorted_aggregate</code></a> can be used to disable this.</p>", "text": "Add the ability for aggregates having ORDER BY or DISTINCT to use pre-sorted data (David Rowley) § § § The new server variable enable_presorted_aggregate can be used to disable this.", "title": "Add the ability for aggregates having ORDER BY or DISTINCT to use pre-sorted data", "commits": ["1349d2790", "3226f4728", "da5800d5f"], "section": "Server / Optimizer", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-OPTIMIZER", "source_hash": "caf0e5a9e2dca7fe484115802160b63eba78c788a3c3531fb77a778342ff4c41", "section_path": ["Server", "Optimizer"], "commit_groups": [["1349d2790"], ["3226f4728"], ["da5800d5f"]], "identity_text": "Add the ability for aggregates having ORDER BY or DISTINCT to use pre-sorted data (David Rowley) The new server variable enable_presorted_aggregate can be used to disable this.", "commit_aliases": ["1349d2790", "3226f4728", "da5800d5f"], "source_commits": ["1349d2790", "3226f4728", "da5800d5f"], "source_entry_id": "16.0/changes/002", "db_id": "0d5a2fcf13f747fc52b1c998f40d422c", "patch_ids": ["7fd96d657eacf34bf76fa6e0d1f2339d", "b5b7218c5b4a8c205bd2986e5c33aec9", "cb0f00174c6bac33a77d5a098a5b91f6"], "statement_hash": "ecac102bb3b6f7cd109331c9b1e95b672a827505e6aa84622018cf4c47ae2ab3", "relations": [], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-c4cc071007aed746", "cves": [], "html": "<p>Allow memoize atop a <code>UNION ALL</code> (Richard Guo) <a href=\"https://postgr.es/c/9bfd2822b\">§</a></p>", "text": "Allow memoize atop a UNION ALL (Richard Guo) §", "title": "Allow memoize atop a UNION ALL", "commits": ["9bfd2822b"], "section": "Server / Optimizer", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-OPTIMIZER", "source_hash": "abaa90036110511cf537bcea7444eb4aa37e817b44e05dd13ae0243ad1650f72", "section_path": ["Server", "Optimizer"], "commit_groups": [["9bfd2822b"]], "identity_text": "Allow memoize atop a UNION ALL (Richard Guo)", "commit_aliases": ["9bfd2822b"], "source_commits": ["9bfd2822b"], "source_entry_id": "16.0/changes/003", "db_id": "bc7c129b1a1d4973368f9455650b45a2", "patch_ids": ["40176dbda5c321673003c992ddb6d8f0"], "statement_hash": "421b4a2115e46a5792388fb796991e556711d5f1ea1de3ece8767252b918e14b", "relations": [], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-c8c541e6340014db", "cves": [], "html": "<p>Allow anti-joins to be performed with the non-nullable input as the inner relation (Richard Guo) <a href=\"https://postgr.es/c/16dc2703c\">§</a></p>", "text": "Allow anti-joins to be performed with the non-nullable input as the inner relation (Richard Guo) §", "title": "Allow anti-joins to be performed with the non-nullable input as the inner relation", "commits": ["16dc2703c"], "section": "Server / Optimizer", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-OPTIMIZER", "source_hash": "03f667b58e10fd267a76952dfc62dd99b5ad53fe3417512445e4f476c5a38838", "section_path": ["Server", "Optimizer"], "commit_groups": [["16dc2703c"]], "identity_text": "Allow anti-joins to be performed with the non-nullable input as the inner relation (Richard Guo)", "commit_aliases": ["16dc2703c"], "source_commits": ["16dc2703c"], "source_entry_id": "16.0/changes/004", "db_id": "18d7c2e6a18612b48189bd164f622c2c", "patch_ids": ["58b439a932f5376668d066e992208d2f"], "statement_hash": "e4142cc313fa88e0383a8b16d8027f170cd9fa03ad88b68b2a658e1eef029f39", "relations": [], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-dfa88d43156ada21", "cves": [], "html": "<p>Allow parallelization of <a href=\"/docs/16/queries-table-expressions.html#QUERIES-JOIN\" title=\"7.2.1.1. Joined Tables\"><code>FULL</code></a> and internal right <code>OUTER</code> hash joins (Melanie Plageman, Thomas Munro) <a href=\"https://postgr.es/c/11c2d6fdf\">§</a></p>", "text": "Allow parallelization of FULL and internal right OUTER hash joins (Melanie Plageman, Thomas Munro) §", "title": "Allow parallelization of FULL and internal right OUTER hash joins", "commits": ["11c2d6fdf"], "section": "Server / Optimizer", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-OPTIMIZER", "source_hash": "7eea820c346a793135a50d4c23be8e003d6735c69b612acab145d345adfe6d00", "section_path": ["Server", "Optimizer"], "commit_groups": [["11c2d6fdf"]], "identity_text": "Allow parallelization of FULL and internal right OUTER hash joins (Melanie Plageman, Thomas Munro)", "commit_aliases": ["11c2d6fdf"], "source_commits": ["11c2d6fdf"], "source_entry_id": "16.0/changes/005", "db_id": "e7ff1ec7dfc9788a15f477032b7e3e7a", "patch_ids": ["99c4bf8b2d9f4c9ecb1ca61e18b5b58d"], "statement_hash": "f896139272e70452c67dec9355b6cf2ccba33213c1f156761c694a158c8cc7f0", "relations": [], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-a910e476976ee277", "cves": [], "html": "<p>Improve the accuracy of <a href=\"/docs/16/gin.html\" title=\"Chapter 70. GIN Indexes\"><code>GIN</code></a> index access optimizer costs (Ronan Dunklau) <a href=\"https://postgr.es/c/cd9479af2\">§</a></p>", "text": "Improve the accuracy of GIN index access optimizer costs (Ronan Dunklau) §", "title": "Improve the accuracy of GIN index access optimizer costs", "commits": ["cd9479af2"], "section": "Server / Optimizer", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-OPTIMIZER", "source_hash": "abbe897bf2490d120a2f9c36cba82bf8fb96aa3233742b0323c187752ae1f068", "section_path": ["Server", "Optimizer"], "commit_groups": [["cd9479af2"]], "identity_text": "Improve the accuracy of GIN index access optimizer costs (Ronan Dunklau)", "commit_aliases": ["cd9479af2"], "source_commits": ["cd9479af2"], "source_entry_id": "16.0/changes/006", "db_id": "59afbd9edeb6be19e6661be891fc2164", "patch_ids": ["996c0760f0c07fc02cb0b372e70616f3"], "statement_hash": "824d03c8b1ac10096b50ec51f378e8992ecd20190f4e9558efac5f24a8877df2", "relations": [], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-7a4b29522bf99176", "cves": [], "html": "<p>Allow more efficient addition of heap and index pages (Andres Freund) <a href=\"https://postgr.es/c/00d1e02be\">§</a> <a href=\"https://postgr.es/c/26158b852\">§</a></p>", "text": "Allow more efficient addition of heap and index pages (Andres Freund) § §", "title": "Allow more efficient addition of heap and index pages", "commits": ["00d1e02be", "26158b852"], "section": "Server / General Performance", "category": "performance", "source_url": "/docs/release/16.0/#RELEASE-16-PERFORMANCE", "source_hash": "9089920a8e54d4aaba9394b50119ba1ff3b08a3ec633dd0643e4ecb1a56985cb", "section_path": ["Server", "General Performance"], "commit_groups": [["00d1e02be"], ["26158b852"]], "identity_text": "Allow more efficient addition of heap and index pages (Andres Freund)", "commit_aliases": ["00d1e02be", "26158b852"], "source_commits": ["00d1e02be", "26158b852"], "source_entry_id": "16.0/changes/007", "db_id": "23b41453c411a0359ff71c525a8c1cdf", "patch_ids": ["adc1b8a52fc2741e959ed0d9c000945a", "dc242f345df4d2d3dc5bb69ce77eb583"], "statement_hash": "aa71c3bded149294de742dfec85b4648abcacaf12009c6bf5ccb5a919527f6b7", "relations": [], "version": "16.0", "category_label": "Performance", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-ddec4d3d0728a75b", "cves": [], "html": "<p>During non-freeze operations, perform page <a href=\"/docs/16/routine-vacuuming.html#VACUUM-FOR-WRAPAROUND\" title=\"25.1.5. Preventing Transaction ID Wraparound Failures\">freezing</a> where appropriate (Peter Geoghegan) <a href=\"https://postgr.es/c/d977ffd92\">§</a> <a href=\"https://postgr.es/c/9e5405993\">§</a> <a href=\"https://postgr.es/c/1de58df4f\">§</a></p>\n<p>This makes full-table freeze vacuums less necessary.</p>", "text": "During non-freeze operations, perform page freezing where appropriate (Peter Geoghegan) § § § This makes full-table freeze vacuums less necessary.", "title": "During non-freeze operations, perform page freezing where appropriate", "commits": ["1de58df4f", "9e5405993", "d977ffd92"], "section": "Server / General Performance", "category": "performance", "source_url": "/docs/release/16.0/#RELEASE-16-PERFORMANCE", "source_hash": "d32cc0679aaee55830366aaf6ce0ed598157f205ffcd31a98d588da63094d20e", "section_path": ["Server", "General Performance"], "commit_groups": [["1de58df4f"], ["9e5405993"], ["d977ffd92"]], "identity_text": "During non-freeze operations, perform page freezing where appropriate (Peter Geoghegan) This makes full-table freeze vacuums less necessary.", "commit_aliases": ["1de58df4f", "9e5405993", "d977ffd92"], "source_commits": ["1de58df4f", "9e5405993", "d977ffd92"], "source_entry_id": "16.0/changes/008", "db_id": "3e0b5f3cd6329916be78c1ea521cbf5d", "patch_ids": ["bebbe66730267e2db642c5c4d083b7c4", "bf9fc376d7111e89a0767ad9e7fbf56c", "d2db854c94ed6f6147811b5fe0a1f1da"], "statement_hash": "a938aff62510da30d6b5d8481d311c5646e9e0fcb644d857e62b6e674f5f06a6", "relations": [], "version": "16.0", "category_label": "Performance", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-50cb72ab59eb0e2b", "cves": [], "html": "<p>Allow window functions to use the faster <a href=\"/docs/16/sql-expressions.html#SYNTAX-WINDOW-FUNCTIONS\" title=\"4.2.8. Window Function Calls\"><code>ROWS</code></a> mode internally when <code>RANGE</code> mode is active but unnecessary (David Rowley) <a href=\"https://postgr.es/c/ed1a88dda\">§</a></p>", "text": "Allow window functions to use the faster ROWS mode internally when RANGE mode is active but unnecessary (David Rowley) §", "title": "Allow window functions to use the faster ROWS mode internally when RANGE mode is active but unnecessary", "commits": ["ed1a88dda"], "section": "Server / General Performance", "category": "performance", "source_url": "/docs/release/16.0/#RELEASE-16-PERFORMANCE", "source_hash": "4efc715ebb949ec72a1ae418e1a9598103b06c125a1001ed4f9b4370060e45e6", "section_path": ["Server", "General Performance"], "commit_groups": [["ed1a88dda"]], "identity_text": "Allow window functions to use the faster ROWS mode internally when RANGE mode is active but unnecessary (David Rowley)", "commit_aliases": ["ed1a88dda"], "source_commits": ["ed1a88dda"], "source_entry_id": "16.0/changes/009", "db_id": "d587bba33797f8d0797e90249ed2c97a", "patch_ids": ["a7edfee197b04d8a2b2913ce63dbaf79"], "statement_hash": "32517d0bb4e5a0c4ec0f5fc198a97bb3f282e04741fcdd34374da0dc60d29cdd", "relations": [], "version": "16.0", "category_label": "Performance", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-10be18d903d223f5", "cves": [], "html": "<p>Allow optimization of always-increasing window functions <a href=\"/docs/16/functions-window.html#FUNCTIONS-WINDOW-TABLE\" title=\"Table 9.64. General-Purpose Window Functions\"><code>ntile()</code></a>, <code>cume_dist()</code> and <code>percent_rank()</code> (David Rowley) <a href=\"https://postgr.es/c/456fa635a\">§</a></p>", "text": "Allow optimization of always-increasing window functions ntile(), cume_dist() and percent_rank() (David Rowley) §", "title": "Allow optimization of always-increasing window functions ntile(), cume_dist() and percent_rank()", "commits": ["456fa635a"], "section": "Server / General Performance", "category": "performance", "source_url": "/docs/release/16.0/#RELEASE-16-PERFORMANCE", "source_hash": "0bc963fc9a4c22587f59d89d8a2fe0efe2aef82b07f2065d97bc8f3a976c8988", "section_path": ["Server", "General Performance"], "commit_groups": [["456fa635a"]], "identity_text": "Allow optimization of always-increasing window functions ntile(), cume_dist() and percent_rank() (David Rowley)", "commit_aliases": ["456fa635a"], "source_commits": ["456fa635a"], "source_entry_id": "16.0/changes/010", "db_id": "6692a77c509f1c1e74743156ecf91eee", "patch_ids": ["9d4f4e5c11e9a1e1ac2a9d958d22926a"], "statement_hash": "7b89b3d9b702edbb46afaa3c860a31d7f7d80072e8ab54c9e2c945ae69de2de9", "relations": [], "version": "16.0", "category_label": "Performance", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-cb1f9d4c1638da6d", "cves": [], "html": "<p>Allow aggregate functions <a href=\"/docs/16/functions-aggregate.html#FUNCTIONS-AGGREGATE-TABLE\" title=\"Table 9.59. General-Purpose Aggregate Functions\"><code>string_agg()</code></a> and <code>array_agg()</code> to be parallelized (David Rowley) <a href=\"https://postgr.es/c/16fd03e95\">§</a></p>", "text": "Allow aggregate functions string_agg() and array_agg() to be parallelized (David Rowley) §", "title": "Allow aggregate functions string_agg() and array_agg() to be parallelized", "commits": ["16fd03e95"], "section": "Server / General Performance", "category": "performance", "source_url": "/docs/release/16.0/#RELEASE-16-PERFORMANCE", "source_hash": "bc9226ce936cc2bda5ce8eb1791d738cf120db9d7615bf7a6a28af192ebf96a8", "section_path": ["Server", "General Performance"], "commit_groups": [["16fd03e95"]], "identity_text": "Allow aggregate functions string_agg() and array_agg() to be parallelized (David Rowley)", "commit_aliases": ["16fd03e95"], "source_commits": ["16fd03e95"], "source_entry_id": "16.0/changes/011", "db_id": "f1acba6ee1c2af3c89806a26b66b89df", "patch_ids": ["96e8551fb59feafb18841b83934b9f7f"], "statement_hash": "e1eae593c3e486450967daeffb7a34dada3d8e2f3d27c988946898a4120127ca", "relations": [], "version": "16.0", "category_label": "Performance", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-a06252dd9e540d13", "cves": [], "html": "<p>Improve performance by caching <a href=\"/docs/16/ddl-partitioning.html#DDL-PARTITIONING-OVERVIEW\" title=\"5.11.1. Overview\"><code>RANGE</code></a> and <code>LIST</code> partition lookups (Amit Langote, Hou Zhijie, David Rowley) <a href=\"https://postgr.es/c/3592e0ff9\">§</a></p>", "text": "Improve performance by caching RANGE and LIST partition lookups (Amit Langote, Hou Zhijie, David Rowley) §", "title": "Improve performance by caching RANGE and LIST partition lookups", "commits": ["3592e0ff9"], "section": "Server / General Performance", "category": "performance", "source_url": "/docs/release/16.0/#RELEASE-16-PERFORMANCE", "source_hash": "ff3b2cc1d5ea981784f3a6e7f4dad49606e4b28e29d62cd109f4551de0d9a63d", "section_path": ["Server", "General Performance"], "commit_groups": [["3592e0ff9"]], "identity_text": "Improve performance by caching RANGE and LIST partition lookups (Amit Langote, Hou Zhijie, David Rowley)", "commit_aliases": ["3592e0ff9"], "source_commits": ["3592e0ff9"], "source_entry_id": "16.0/changes/012", "db_id": "0c7fba4816dbd87c1f53a145f4403045", "patch_ids": ["043c0930ea75317dcb1eb795c75fc387"], "statement_hash": "9f4ca24bfe4609911d2ef8380c805f3002151ee945091eee3a63a843d3cc7a40", "relations": [], "version": "16.0", "category_label": "Performance", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-1604eaa0df37985d", "cves": [], "html": "<p>Allow control of the shared buffer usage by vacuum and analyze (Melanie Plageman) <a href=\"https://postgr.es/c/1cbbee033\">§</a> <a href=\"https://postgr.es/c/ae78cae3b\">§</a> <a href=\"https://postgr.es/c/b72f564d8\">§</a></p>\n<p>The <a href=\"/docs/16/sql-vacuum.html\" title=\"VACUUM\"><code>VACUUM</code></a>/<a href=\"/docs/16/sql-analyze.html\" title=\"ANALYZE\"><code>ANALYZE</code></a> option is <code>BUFFER_USAGE_LIMIT</code>, and the <a href=\"/docs/16/app-vacuumdb.html\" title=\"vacuumdb\"><span>vacuumdb</span></a> option is <code>--buffer-usage-limit</code>. The default value is set by server variable <a href=\"/docs/16/runtime-config-resource.html#GUC-VACUUM-BUFFER-USAGE-LIMIT\"><code>vacuum_buffer_usage_limit</code></a>, which also controls autovacuum.</p>", "text": "Allow control of the shared buffer usage by vacuum and analyze (Melanie Plageman) § § § The VACUUM/ANALYZE option is BUFFER_USAGE_LIMIT, and the vacuumdb option is --buffer-usage-limit. The default value is set by server variable vacuum_buffer_usage_limit, which also controls autovacuum.", "title": "Allow control of the shared buffer usage by vacuum and analyze", "commits": ["1cbbee033", "ae78cae3b", "b72f564d8"], "section": "Server / General Performance", "category": "performance", "source_url": "/docs/release/16.0/#RELEASE-16-PERFORMANCE", "source_hash": "61c9236f20808bb68fc24e69f4f22a8da0040192cf7311815fc43a7ca78f9915", "section_path": ["Server", "General Performance"], "commit_groups": [["1cbbee033"], ["ae78cae3b"], ["b72f564d8"]], "identity_text": "Allow control of the shared buffer usage by vacuum and analyze (Melanie Plageman) The VACUUM/ANALYZE option is BUFFER_USAGE_LIMIT, and the vacuumdb option is --buffer-usage-limit. The default value is set by server variable vacuum_buffer_usage_limit, which also controls autovacuum.", "commit_aliases": ["1cbbee033", "ae78cae3b", "b72f564d8"], "source_commits": ["1cbbee033", "ae78cae3b", "b72f564d8"], "source_entry_id": "16.0/changes/013", "db_id": "287b954ae68dc298282e73ec45edf342", "patch_ids": ["27310bfa7bc6d1a4497f808f7193bd28", "291417385e78d262ef3bce72966910b2", "92ab6a5cc447bc9881bdcd721b5c49b3"], "statement_hash": "4e4824271ca20a6ae700a13b6f7e064016385429c7f2a285faed1dd9e73e25a5", "relations": [], "version": "16.0", "category_label": "Performance", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-affe356761086068", "cves": [], "html": "<p>Support <a href=\"/docs/16/runtime-config-wal.html#GUC-WAL-SYNC-METHOD\"><code>wal_sync_method=fdatasync</code></a> on <span>Windows</span> (Thomas Munro) <a href=\"https://postgr.es/c/9430fb407\">§</a></p>", "text": "Support wal_sync_method=fdatasync on Windows (Thomas Munro) §", "title": "Support wal_sync_method=fdatasync on Windows", "commits": ["9430fb407"], "section": "Server / General Performance", "category": "performance", "source_url": "/docs/release/16.0/#RELEASE-16-PERFORMANCE", "source_hash": "e8dd08578e20646334a73356be64d947d39d56de9e5f7c06249549ae41fd3aec", "section_path": ["Server", "General Performance"], "commit_groups": [["9430fb407"]], "identity_text": "Support wal_sync_method=fdatasync on Windows (Thomas Munro)", "commit_aliases": ["9430fb407"], "source_commits": ["9430fb407"], "source_entry_id": "16.0/changes/014", "db_id": "0fdc46d4a055a3f11d16b1bf92b7d7fa", "patch_ids": ["ed06c5ee202939f7346d049f9758748e"], "statement_hash": "39347a5a080bedcf5312b9c2f5957ed6abb7b69b507e26abed4cf9c75d41812f", "relations": [], "version": "16.0", "category_label": "Performance", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-82816d2a62d0256b", "cves": [], "html": "<p>Allow <a href=\"/docs/16/storage-hot.html\" title=\"73.7. Heap-Only Tuples (HOT)\"><acronym>HOT</acronym></a> updates if only <code>BRIN</code>-indexed columns are updated (Matthias van de Meent, Josef Simanek, Tomas Vondra) <a href=\"https://postgr.es/c/19d8e2308\">§</a></p>", "text": "Allow HOT updates if only BRIN-indexed columns are updated (Matthias van de Meent, Josef Simanek, Tomas Vondra) §", "title": "Allow HOT updates if only BRIN-indexed columns are updated", "commits": ["19d8e2308"], "section": "Server / General Performance", "category": "performance", "source_url": "/docs/release/16.0/#RELEASE-16-PERFORMANCE", "source_hash": "bfdeac6eac218d1ca1b0282f030135c9f8614ed9b612ad83f1506312fd8458cc", "section_path": ["Server", "General Performance"], "commit_groups": [["19d8e2308"]], "identity_text": "Allow HOT updates if only BRIN-indexed columns are updated (Matthias van de Meent, Josef Simanek, Tomas Vondra)", "commit_aliases": ["19d8e2308"], "source_commits": ["19d8e2308"], "source_entry_id": "16.0/changes/015", "db_id": "0f56847b6bd56972522c2308abc77fae", "patch_ids": ["30468c592b185ef9807038b885c18c24"], "statement_hash": "cb8c53057a736793b7bed93e2913773a472fe191dd8bddd9e863e698ec8bb622", "relations": [], "version": "16.0", "category_label": "Performance", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-c10a90aae2607316", "cves": [], "html": "<p>Improve the speed of updating the <a href=\"/docs/16/runtime-config-logging.html#GUC-UPDATE-PROCESS-TITLE\">process title</a> (David Rowley) <a href=\"https://postgr.es/c/2cb82e2ac\">§</a></p>", "text": "Improve the speed of updating the process title (David Rowley) §", "title": "Improve the speed of updating the process title", "commits": ["2cb82e2ac"], "section": "Server / General Performance", "category": "performance", "source_url": "/docs/release/16.0/#RELEASE-16-PERFORMANCE", "source_hash": "25f45e71660eb76e32bfbb8791b92e02c359ac7ae8381abf41b96a8c23d76927", "section_path": ["Server", "General Performance"], "commit_groups": [["2cb82e2ac"]], "identity_text": "Improve the speed of updating the process title (David Rowley)", "commit_aliases": ["2cb82e2ac"], "source_commits": ["2cb82e2ac"], "source_entry_id": "16.0/changes/016", "db_id": "780f6379ebccc595c720ee9fcaefe263", "patch_ids": ["727be6c1117ce62f16f3ac6274c3c68f"], "statement_hash": "cc7447bc22129f36c50ba8b7bea9d753276de25a28aeee7304723c405fc40bae", "relations": [], "version": "16.0", "category_label": "Performance", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-91b351f3ed043528", "cves": [], "html": "<p>Allow <code>xid</code>/<code>subxid</code> searches and <acronym>ASCII</acronym> string detection to use vector operations (Nathan Bossart, John Naylor) <a href=\"https://postgr.es/c/37a6e5df3\">§</a> <a href=\"https://postgr.es/c/121d2d3d7\">§</a> <a href=\"https://postgr.es/c/b6ef16756\">§</a> <a href=\"https://postgr.es/c/e813e0e16\">§</a></p>\n<p><acronym>ASCII</acronym> detection is particularly useful for <a href=\"/docs/16/sql-copy.html\" title=\"COPY\"><code>COPY FROM</code></a>. Vector operations are also used for some C array searches.</p>", "text": "Allow xid/subxid searches and ASCII string detection to use vector operations (Nathan Bossart, John Naylor) § § § § ASCII detection is particularly useful for COPY FROM. Vector operations are also used for some C array searches.", "title": "Allow xid/subxid searches and ASCII string detection to use vector operations", "commits": ["121d2d3d7", "37a6e5df3", "b6ef16756", "e813e0e16"], "section": "Server / General Performance", "category": "performance", "source_url": "/docs/release/16.0/#RELEASE-16-PERFORMANCE", "source_hash": "7153292008e76e4b754a404764abbfe7ff04bdfeb01d5c220b9790f26c51c8c3", "section_path": ["Server", "General Performance"], "commit_groups": [["121d2d3d7"], ["37a6e5df3"], ["b6ef16756"], ["e813e0e16"]], "identity_text": "Allow xid/subxid searches and ASCII string detection to use vector operations (Nathan Bossart, John Naylor) ASCII detection is particularly useful for COPY FROM. Vector operations are also used for some C array searches.", "commit_aliases": ["121d2d3d7", "37a6e5df3", "b6ef16756", "e813e0e16"], "source_commits": ["121d2d3d7", "37a6e5df3", "b6ef16756", "e813e0e16"], "source_entry_id": "16.0/changes/017", "db_id": "76cebba9a0416be7e2d2a1bb1d590f4c", "patch_ids": ["55a79d906ac18e5e9b12fb286c664381", "8cd730de369aff3f35c4f07d6e8f8ac7", "9200c165c810bfc3a62002611abafee6", "98b5b393df942a15427f95e81db79f3c"], "statement_hash": "26ef46f74a3b690cb57334773c0d92c237442517c3d87d1f171fac153f88a06f", "relations": [], "version": "16.0", "category_label": "Performance", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-a7874a6a5a95944f", "cves": [], "html": "<p>Reduce overhead of memory allocations (Andres Freund, David Rowley) <a href=\"https://postgr.es/c/c6e0fe1f2\">§</a></p>", "text": "Reduce overhead of memory allocations (Andres Freund, David Rowley) §", "title": "Reduce overhead of memory allocations", "commits": ["c6e0fe1f2"], "section": "Server / General Performance", "category": "performance", "source_url": "/docs/release/16.0/#RELEASE-16-PERFORMANCE", "source_hash": "620b2a3949e3e7b8a118a8ef9a4c73064c67c2d0da2f86bf899ec7ccf09bba4c", "section_path": ["Server", "General Performance"], "commit_groups": [["c6e0fe1f2"]], "identity_text": "Reduce overhead of memory allocations (Andres Freund, David Rowley)", "commit_aliases": ["c6e0fe1f2"], "source_commits": ["c6e0fe1f2"], "source_entry_id": "16.0/changes/018", "db_id": "a1e378022a0e6d1c83b942d1f87f968b", "patch_ids": ["b83ab0346f913fc3be5d8a6b1e7e0b9f"], "statement_hash": "7e28360d239901d070b9c07d1ea9e67fecdfcc424217b969575d245684c199f7", "relations": [], "version": "16.0", "category_label": "Performance", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-d660ff1fad6a13b1", "cves": [], "html": "<p>Add system view <a href=\"/docs/16/monitoring-stats.html#MONITORING-PG-STAT-IO-VIEW\" title=\"28.2.13. pg_stat_io\"><code>pg_stat_io</code></a> view to track <acronym>I/O</acronym> statistics (Melanie Plageman) <a href=\"https://postgr.es/c/a9c70b46d\">§</a> <a href=\"https://postgr.es/c/8aaa04b32\">§</a> <a href=\"https://postgr.es/c/ac8d53dae\">§</a> <a href=\"https://postgr.es/c/0ecb87e1f\">§</a> <a href=\"https://postgr.es/c/093e5c57d\">§</a></p>", "text": "Add system view pg_stat_io view to track I/O statistics (Melanie Plageman) § § § § §", "title": "Add system view pg_stat_io view to track I/O statistics", "commits": ["093e5c57d", "0ecb87e1f", "8aaa04b32", "a9c70b46d", "ac8d53dae"], "section": "Server / Monitoring", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-MONITORING", "source_hash": "cfb4544e62ff06177cb7a15fd37650778f1a2f66668a92530977537d8fd6799f", "section_path": ["Server", "Monitoring"], "commit_groups": [["093e5c57d"], ["0ecb87e1f"], ["8aaa04b32"], ["a9c70b46d"], ["ac8d53dae"]], "identity_text": "Add system view pg_stat_io view to track I/O statistics (Melanie Plageman)", "commit_aliases": ["093e5c57d", "0ecb87e1f", "8aaa04b32", "a9c70b46d", "ac8d53dae"], "source_commits": ["093e5c57d", "0ecb87e1f", "8aaa04b32", "a9c70b46d", "ac8d53dae"], "source_entry_id": "16.0/changes/019", "db_id": "a2ad0b82efdec9aa9d94d5eb2a3a8405", "patch_ids": ["1c4ce2e3a0aa5cbed6629b19e3c4b40b", "5d68e42650e2bce9d845c2be7a6ae446", "74a638d90bff700b6f0aac4a0b229b0b", "d1986cdcf2de79eec5822be4c40de221", "e4c0725325231f50bd224199460931f4"], "statement_hash": "2606364de89f5d97a8b9764f26523a44d640ac74cc6c4e9b9fa0732839f9a99a", "relations": [], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-f21d8937b2657d48", "cves": [], "html": "<p>Record statistics on the last sequential and index scans on tables (Dave Page) <a href=\"https://postgr.es/c/c03747183\">§</a></p>\n<p>This information appears in <a href=\"/docs/16/monitoring-stats.html#PG-STAT-ALL-TABLES-VIEW\" title=\"Table 28.28. pg_stat_all_tables View\"><code>pg_stat_*_tables</code></a> and <a href=\"/docs/16/monitoring-stats.html#MONITORING-PG-STAT-ALL-INDEXES-VIEW\" title=\"28.2.19. pg_stat_all_indexes\"><code>pg_stat_*_indexes</code></a>.</p>", "text": "Record statistics on the last sequential and index scans on tables (Dave Page) § This information appears in pg_stat_*_tables and pg_stat_*_indexes.", "title": "Record statistics on the last sequential and index scans on tables", "commits": ["c03747183"], "section": "Server / Monitoring", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-MONITORING", "source_hash": "fa911a2a6a10197b11bf8cab66929d793882a8d63cf93e1ca36dc24901156d07", "section_path": ["Server", "Monitoring"], "commit_groups": [["c03747183"]], "identity_text": "Record statistics on the last sequential and index scans on tables (Dave Page) This information appears in pg_stat_*_tables and pg_stat_*_indexes.", "commit_aliases": ["c03747183"], "source_commits": ["c03747183"], "source_entry_id": "16.0/changes/020", "db_id": "ccadd1efd0969b05194eaec65727f7af", "patch_ids": ["c4ba190f0d91d4b4cfa7ce2f43980989"], "statement_hash": "ca898d673782c499c0c6f27bc88d6cb71528bf6980f5f5f7a594d87c4d525557", "relations": [], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-b8c01cd4134add51", "cves": [], "html": "<p>Record statistics on the occurrence of updated rows moving to new pages (Corey Huinker) <a href=\"https://postgr.es/c/ae4fdde13\">§</a></p>\n<p>The <code>pg_stat_*_tables</code> column is <a href=\"/docs/16/monitoring-stats.html#MONITORING-PG-STAT-ALL-TABLES-VIEW\" title=\"28.2.18. pg_stat_all_tables\"><code>n_tup_newpage_upd</code></a>.</p>", "text": "Record statistics on the occurrence of updated rows moving to new pages (Corey Huinker) § The pg_stat_*_tables column is n_tup_newpage_upd.", "title": "Record statistics on the occurrence of updated rows moving to new pages", "commits": ["ae4fdde13"], "section": "Server / Monitoring", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-MONITORING", "source_hash": "15d92a8f87e00eff5ee12816fc3fc4b5c922ba620ed82c54f1cf6b6a21f9c25c", "section_path": ["Server", "Monitoring"], "commit_groups": [["ae4fdde13"]], "identity_text": "Record statistics on the occurrence of updated rows moving to new pages (Corey Huinker) The pg_stat_*_tables column is n_tup_newpage_upd.", "commit_aliases": ["ae4fdde13"], "source_commits": ["ae4fdde13"], "source_entry_id": "16.0/changes/021", "db_id": "d978ff661068cc4a447a09387bf8eb66", "patch_ids": ["1e7bdf77023add4aeb523e9a777a62cd"], "statement_hash": "eb90460ee65d612b03af4d4571313a8cfe1aef0a42d76dcc18de09348ab48db9", "relations": [], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-4099e88e46c8457b", "cves": [], "html": "<p>Add speculative lock information to the <a href=\"/docs/16/view-pg-locks.html\" title=\"54.12. pg_locks\"><code>pg_locks</code></a> system view (Masahiko Sawada, Noriyoshi Shinoda) <a href=\"https://postgr.es/c/f74573969\">§</a></p>\n<p>The transaction id is displayed in the <code>transactionid</code> column and the speculative insertion token is displayed in the <code>objid</code> column.</p>", "text": "Add speculative lock information to the pg_locks system view (Masahiko Sawada, Noriyoshi Shinoda) § The transaction id is displayed in the transactionid column and the speculative insertion token is displayed in the objid column.", "title": "Add speculative lock information to the pg_locks system view", "commits": ["f74573969"], "section": "Server / Monitoring", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-MONITORING", "source_hash": "83431dde82d7d10807d0015bda97f652144d6b627de6c529921cf56ce0bc4eb7", "section_path": ["Server", "Monitoring"], "commit_groups": [["f74573969"]], "identity_text": "Add speculative lock information to the pg_locks system view (Masahiko Sawada, Noriyoshi Shinoda) The transaction id is displayed in the transactionid column and the speculative insertion token is displayed in the objid column.", "commit_aliases": ["f74573969"], "source_commits": ["f74573969"], "source_entry_id": "16.0/changes/022", "db_id": "144cb13a6b59a8bbcfe8210055d2c4fb", "patch_ids": ["4d832ebf7d13c3533e76b0116559e1e9"], "statement_hash": "75a357610b8c8b5e8a3ee91a48d315064675747a1f14bb7f66d05a19406bab43", "relations": [], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-d0dd3bc0012949a8", "cves": [], "html": "<p>Add the display of prepared statement result types to the <a href=\"/docs/16/view-pg-prepared-statements.html\" title=\"54.15. pg_prepared_statements\"><code>pg_prepared_statements</code></a> view (Dagfinn Ilmari Mannsåker) <a href=\"https://postgr.es/c/84ad713cf\">§</a> <a href=\"https://postgr.es/c/6ffff0fd2\">§</a></p>", "text": "Add the display of prepared statement result types to the pg_prepared_statements view (Dagfinn Ilmari Mannsåker) § §", "title": "Add the display of prepared statement result types to the pg_prepared_statements view", "commits": ["6ffff0fd2", "84ad713cf"], "section": "Server / Monitoring", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-MONITORING", "source_hash": "8e61f00e23518fa3a11e4f083a0d2af185c585ae07803f2dbe186c3dfbdcc4b1", "section_path": ["Server", "Monitoring"], "commit_groups": [["6ffff0fd2"], ["84ad713cf"]], "identity_text": "Add the display of prepared statement result types to the pg_prepared_statements view (Dagfinn Ilmari Mannsåker)", "commit_aliases": ["6ffff0fd2", "84ad713cf"], "source_commits": ["6ffff0fd2", "84ad713cf"], "source_entry_id": "16.0/changes/023", "db_id": "eb1ec79d2db2312703d6a4a6efa5ee58", "patch_ids": ["4aec479382e883c08b2a26c07c8f13a6", "8385af63f370093cedad91ff0b9d68d6"], "statement_hash": "e41ee27361a8b5453f53b62666511e666125fbdb31390ddee79429fa4c05da11", "relations": [], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-db414e3cb1e7b8c7", "cves": [], "html": "<p>Create subscription statistics entries at subscription creation time so <a href=\"/docs/16/monitoring-stats.html#PG-STAT-DATABASE-VIEW\" title=\"Table 28.26. pg_stat_database View\"><code>stats_reset</code></a> is accurate (Andres Freund) <a href=\"https://postgr.es/c/e0b014295\">§</a></p>\n<p>Previously entries were created only when the first statistics were reported.</p>", "text": "Create subscription statistics entries at subscription creation time so stats_reset is accurate (Andres Freund) § Previously entries were created only when the first statistics were reported.", "title": "Create subscription statistics entries at subscription creation time so stats_reset is accurate", "commits": ["e0b014295"], "section": "Server / Monitoring", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-MONITORING", "source_hash": "cf954e39877f1c018c3b4f770a8ccff1f6cf7bfadf6a6bb44b17193a515ee586", "section_path": ["Server", "Monitoring"], "commit_groups": [["e0b014295"]], "identity_text": "Create subscription statistics entries at subscription creation time so stats_reset is accurate (Andres Freund) Previously entries were created only when the first statistics were reported.", "commit_aliases": ["e0b014295"], "source_commits": ["e0b014295"], "source_entry_id": "16.0/changes/024", "db_id": "21430e43a8df90341adcb221cb993b06", "patch_ids": ["ca6dc6ad2dbe12cce60fe12b210ce4bf"], "statement_hash": "d3d18d1c12f696d8625d5c7084d48a27c3c180ce1e83f28e08fb4f5da83c65b6", "relations": [], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-488f039274062c68", "cves": [], "html": "<p>Correct the <acronym>I/O</acronym> accounting for temp relation writes shown in <a href=\"/docs/16/monitoring-stats.html#PG-STAT-DATABASE-VIEW\" title=\"Table 28.26. pg_stat_database View\"><code>pg_stat_database</code></a> (Melanie Plageman) <a href=\"https://postgr.es/c/704261ecc\">§</a></p>", "text": "Correct the I/O accounting for temp relation writes shown in pg_stat_database (Melanie Plageman) §", "title": "Correct the I/O accounting for temp relation writes shown in pg_stat_database", "commits": ["704261ecc"], "section": "Server / Monitoring", "category": "bugfix", "source_url": "/docs/release/16.0/#RELEASE-16-MONITORING", "source_hash": "c39ab887eecd8ba0e8c7563b97b512423b521262b476f2dbf92ee892cddd337b", "section_path": ["Server", "Monitoring"], "commit_groups": [["704261ecc"]], "identity_text": "Correct the I/O accounting for temp relation writes shown in pg_stat_database (Melanie Plageman)", "commit_aliases": ["704261ecc"], "source_commits": ["704261ecc"], "source_entry_id": "16.0/changes/025", "db_id": "7e641eaab02569d94507cf600be93795", "patch_ids": ["29ab54c9f4c9b71c24add143a41d18b2"], "statement_hash": "a931010081a12dc76fc749a66dd56c58329e703e01f20628f84d6a351226d9b3", "relations": [], "version": "16.0", "category_label": "Bug fixes", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-c8f908f8219e4e6f", "cves": [], "html": "<p>Add function <a href=\"/docs/16/monitoring-stats.html#MONITORING-STATS-BACKEND-FUNCS-TABLE\" title=\"Table 28.36. Per-Backend Statistics Functions\"><code>pg_stat_get_backend_subxact()</code></a> to report on a session's subtransaction cache (Dilip Kumar) <a href=\"https://postgr.es/c/10ea0f924\">§</a></p>", "text": "Add function pg_stat_get_backend_subxact() to report on a session's subtransaction cache (Dilip Kumar) §", "title": "Add function pg_stat_get_backend_subxact() to report on a session's subtransaction cache", "commits": ["10ea0f924"], "section": "Server / Monitoring", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-MONITORING", "source_hash": "d0b39a2acfa5afdeb106ac7f10479726ca15434e77969321799ce319bfce333b", "section_path": ["Server", "Monitoring"], "commit_groups": [["10ea0f924"]], "identity_text": "Add function pg_stat_get_backend_subxact() to report on a session's subtransaction cache (Dilip Kumar)", "commit_aliases": ["10ea0f924"], "source_commits": ["10ea0f924"], "source_entry_id": "16.0/changes/026", "db_id": "b21ff57da76e8f57ad828f44295babf6", "patch_ids": ["372fa21ad67b5f89547b42d5a53981cf"], "statement_hash": "65b8c2b77b490263991d4cc5f5338f874ab1b4d9b39039657bd5da33e4888ca8", "relations": [], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-f8c91168c1a3672d", "cves": [], "html": "<p>Have <a href=\"/docs/16/monitoring-stats.html#MONITORING-STATS-BACKEND-FUNCS-TABLE\" title=\"Table 28.36. Per-Backend Statistics Functions\"><code>pg_stat_get_backend_idset()</code></a>, <code>pg_stat_get_backend_activity()</code>, and related functions use the unchanging backend id (Nathan Bossart) <a href=\"https://postgr.es/c/d7e39d72c\">§</a></p>\n<p>Previously the index values might change during the lifetime of the session.</p>", "text": "Have pg_stat_get_backend_idset(), pg_stat_get_backend_activity(), and related functions use the unchanging backend id (Nathan Bossart) § Previously the index values might change during the lifetime of the session.", "title": "Have pg_stat_get_backend_idset(), pg_stat_get_backend_activity(), and related functions use the unchanging backend id", "commits": ["d7e39d72c"], "section": "Server / Monitoring", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-MONITORING", "source_hash": "f7cc8d702f3d2b5a061d4dd94366c8f2ad9dcc5718ff49a3a0691a2962615890", "section_path": ["Server", "Monitoring"], "commit_groups": [["d7e39d72c"]], "identity_text": "Have pg_stat_get_backend_idset(), pg_stat_get_backend_activity(), and related functions use the unchanging backend id (Nathan Bossart) Previously the index values might change during the lifetime of the session.", "commit_aliases": ["d7e39d72c"], "source_commits": ["d7e39d72c"], "source_entry_id": "16.0/changes/027", "db_id": "1371d92f4cb40808c3e5de69dfae7392", "patch_ids": ["f8cafab6edefef23fda3e8e195c5cc79"], "statement_hash": "64c217213dd4bbe198f05b3a28d19b6732ca8c68b2a59720946c5fc7fd39f465", "relations": [], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-2549f052a3117589", "cves": [], "html": "<p>Report stand-alone backends with a special backend type (Melanie Plageman) <a href=\"https://postgr.es/c/0c679464a\">§</a></p>", "text": "Report stand-alone backends with a special backend type (Melanie Plageman) §", "title": "Report stand-alone backends with a special backend type", "commits": ["0c679464a"], "section": "Server / Monitoring", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-MONITORING", "source_hash": "50518296140e8f9dedf8223338254057a8fd36c840ed3691352ad0891889aae7", "section_path": ["Server", "Monitoring"], "commit_groups": [["0c679464a"]], "identity_text": "Report stand-alone backends with a special backend type (Melanie Plageman)", "commit_aliases": ["0c679464a"], "source_commits": ["0c679464a"], "source_entry_id": "16.0/changes/028", "db_id": "53d6d2f6b779b477cb6e112097562a4c", "patch_ids": ["811e1d1439c998177ee8fce1a81021b0"], "statement_hash": "31bb59bfe5a801e3ca0a2c5426432aff8321eb48586cfc8e8291d08c599edf81", "relations": [], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-10d4408a62e48dd3", "cves": [], "html": "<p>Add wait event <a href=\"/docs/16/monitoring-stats.html#WAIT-EVENT-TIMEOUT-TABLE\" title=\"Table 28.13. Wait Events of Type Timeout\"><code>SpinDelay</code></a> to report spinlock sleep delays (Andres Freund) <a href=\"https://postgr.es/c/92daeca45\">§</a></p>", "text": "Add wait event SpinDelay to report spinlock sleep delays (Andres Freund) §", "title": "Add wait event SpinDelay to report spinlock sleep delays", "commits": ["92daeca45"], "section": "Server / Monitoring", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-MONITORING", "source_hash": "ecacb3449aab3b327ae72346b0d4f6eb53802ec4072468059c3e7f904544d026", "section_path": ["Server", "Monitoring"], "commit_groups": [["92daeca45"]], "identity_text": "Add wait event SpinDelay to report spinlock sleep delays (Andres Freund)", "commit_aliases": ["92daeca45"], "source_commits": ["92daeca45"], "source_entry_id": "16.0/changes/029", "db_id": "50bf18619fc1f653e80e9a706e4c70e9", "patch_ids": ["5ea5bed0f394cc42f64ae8b6c0de804e"], "statement_hash": "45ed921efe6eba090135c6aec54a486813262e7ba5e105ae89449fb21ccb7c74", "relations": [], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-e4d07440d5e8a690", "cves": [], "html": "<p>Create new wait event <a href=\"/docs/16/monitoring-stats.html#WAIT-EVENT-IO-TABLE\" title=\"Table 28.9. Wait Events of Type IO\"><code>DSMAllocate</code></a> to indicate waiting for dynamic shared memory allocation (Thomas Munro) <a href=\"https://postgr.es/c/7bae3bbf6\">§</a></p>\n<p>Previously this type of wait was reported as <code>DSMFillZeroWrite</code>, which was also used by <code>mmap()</code> allocations.</p>", "text": "Create new wait event DSMAllocate to indicate waiting for dynamic shared memory allocation (Thomas Munro) § Previously this type of wait was reported as DSMFillZeroWrite, which was also used by mmap() allocations.", "title": "Create new wait event DSMAllocate to indicate waiting for dynamic shared memory allocation", "commits": ["7bae3bbf6"], "section": "Server / Monitoring", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-MONITORING", "source_hash": "95777abf006397908960bb91fb5dca4205c095c05fb1c004bf88386a5e372bfb", "section_path": ["Server", "Monitoring"], "commit_groups": [["7bae3bbf6"]], "identity_text": "Create new wait event DSMAllocate to indicate waiting for dynamic shared memory allocation (Thomas Munro) Previously this type of wait was reported as DSMFillZeroWrite, which was also used by mmap() allocations.", "commit_aliases": ["7bae3bbf6"], "source_commits": ["7bae3bbf6"], "source_entry_id": "16.0/changes/030", "db_id": "4c58e72d4b609bc9390d841632bbaf14", "patch_ids": ["cb098b810bb6829ff8003f9744d63dc3"], "statement_hash": "4ef0c651cf300f619b958637e277d0fe1bc1f951f63b419bdb785b754b9cf874", "relations": [], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-a5960c7a3581b43e", "cves": [], "html": "<p>Add the database name to the <a href=\"/docs/16/runtime-config-logging.html#GUC-UPDATE-PROCESS-TITLE\">process title</a> of logical <acronym>WAL</acronym> senders (Tatsuhiro Nakamori) <a href=\"https://postgr.es/c/af205152e\">§</a></p>\n<p>Physical <acronym>WAL</acronym> senders do not display a database name.</p>", "text": "Add the database name to the process title of logical WAL senders (Tatsuhiro Nakamori) § Physical WAL senders do not display a database name.", "title": "Add the database name to the process title of logical WAL senders", "commits": ["af205152e"], "section": "Server / Monitoring", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-MONITORING", "source_hash": "d0de6d17ef6a64f43aa372cb1500fae473c66d86de26bdc6eef331d0ce4f5ecf", "section_path": ["Server", "Monitoring"], "commit_groups": [["af205152e"]], "identity_text": "Add the database name to the process title of logical WAL senders (Tatsuhiro Nakamori) Physical WAL senders do not display a database name.", "commit_aliases": ["af205152e"], "source_commits": ["af205152e"], "source_entry_id": "16.0/changes/031", "db_id": "7f1eb683be226d26b1ca30934fe374e6", "patch_ids": ["b76cfa49f69a819f02742df66c91bf1f"], "statement_hash": "51d418a4214815827ee028d5cf1d4b161f8eea015704fae6c82f6af57ce2b1c9", "relations": [], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-5236954d2b374442", "cves": [], "html": "<p>Add checkpoint and <code>REDO LSN</code> information to <a href=\"/docs/16/runtime-config-logging.html#GUC-LOG-CHECKPOINTS\"><code>log_checkpoints</code></a> messages (Bharath Rupireddy, Kyotaro Horiguchi) <a href=\"https://postgr.es/c/62c46eee2\">§</a></p>", "text": "Add checkpoint and REDO LSN information to log_checkpoints messages (Bharath Rupireddy, Kyotaro Horiguchi) §", "title": "Add checkpoint and REDO LSN information to log_checkpoints messages", "commits": ["62c46eee2"], "section": "Server / Monitoring", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-MONITORING", "source_hash": "18c2c38a50e7519cd2fdaa1a31163bda543c42e2b9c4b122615913009bafd8de", "section_path": ["Server", "Monitoring"], "commit_groups": [["62c46eee2"]], "identity_text": "Add checkpoint and REDO LSN information to log_checkpoints messages (Bharath Rupireddy, Kyotaro Horiguchi)", "commit_aliases": ["62c46eee2"], "source_commits": ["62c46eee2"], "source_entry_id": "16.0/changes/032", "db_id": "9976d6fa2083fc39a4d79168c61f8fd6", "patch_ids": ["2d2e45940e3391fb9a1bc3a921e96048"], "statement_hash": "1d14380b85d6937c025ce7b0618e098e6c0ee303f9ef9e2104413834c71fcc15", "relations": [], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-4f795a3a7351a6fe", "cves": [], "html": "<p>Provide additional details during client certificate failures (Jacob Champion) <a href=\"https://postgr.es/c/3a0e38504\">§</a></p>", "text": "Provide additional details during client certificate failures (Jacob Champion) §", "title": "Provide additional details during client certificate failures", "commits": ["3a0e38504"], "section": "Server / Monitoring", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-MONITORING", "source_hash": "8034f9b6e0b7a1f452d385398a46b58b691ffccbe8362f47f73dbb4e69b60fa6", "section_path": ["Server", "Monitoring"], "commit_groups": [["3a0e38504"]], "identity_text": "Provide additional details during client certificate failures (Jacob Champion)", "commit_aliases": ["3a0e38504"], "source_commits": ["3a0e38504"], "source_entry_id": "16.0/changes/033", "db_id": "109962e39cd38a26e56c069afacaad5b", "patch_ids": ["c30d9457d6b9b277a556009df2b65fe8"], "statement_hash": "87e65dc56ee8c106d24e33e33b7df8db2c8487e88deb6a0bab861dc6a069fdb8", "relations": [], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-4da84340f31e2ff5", "cves": [], "html": "<p>Add predefined role <a href=\"/docs/16/predefined-roles.html\" title=\"22.5. Predefined Roles\"><code>pg_create_subscription</code></a> with permission to create subscriptions (Robert Haas) <a href=\"https://postgr.es/c/c3afe8cf5\">§</a></p>", "text": "Add predefined role pg_create_subscription with permission to create subscriptions (Robert Haas) §", "title": "Add predefined role pg_create_subscription with permission to create subscriptions", "commits": ["c3afe8cf5"], "section": "Server / Privileges", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-PRIVILEGES", "source_hash": "0ca255b32d56b8bf60e2b6c8db3f6e571f3dd9a44da5f741689332354cbfb269", "section_path": ["Server", "Privileges"], "commit_groups": [["c3afe8cf5"]], "identity_text": "Add predefined role pg_create_subscription with permission to create subscriptions (Robert Haas)", "commit_aliases": ["c3afe8cf5"], "source_commits": ["c3afe8cf5"], "source_entry_id": "16.0/changes/034", "db_id": "333405cb0d257fc36ce99d779f85a196", "patch_ids": ["38efe5461c206e0e034559d4a91f45d0"], "statement_hash": "8d065e514f4d7eb8ca09fd33dcd28176833acd9d98640bedd44cdbd550616808", "relations": [{"rule": 2, "type": "related", "target": "418f288dc007fcb250d7b6ff611924ba", "evidence": {"same_day": true, "patch_ids": ["38efe5461c206e0e034559d4a91f45d0"], "ambiguous_patch_ids": ["38efe5461c206e0e034559d4a91f45d0"]}}], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": [{"db_id": "418f288dc007fcb250d7b6ff611924ba", "kind": "related", "version": "16.0", "label": "16.0", "title": "Allow subscriptions to not require passwords", "evidence": {"same_day": true, "patch_ids": ["38efe5461c206e0e034559d4a91f45d0"], "ambiguous_patch_ids": ["38efe5461c206e0e034559d4a91f45d0"]}, "url": "/docs/compare/?release=16.0#16.0-f9d3bf2f1ff8439f", "source_url": "/docs/release/16.0/#RELEASE-16-PRIVILEGES"}]}, {"id": "16.0-f9d3bf2f1ff8439f", "cves": [], "html": "<p>Allow subscriptions to not require passwords (Robert Haas) <a href=\"https://postgr.es/c/c3afe8cf5\">§</a> <a href=\"https://postgr.es/c/c1cc4e688\">§</a> <a href=\"https://postgr.es/c/19e65dff3\">§</a></p>\n<p>This is accomplished with the option <a href=\"/docs/16/sql-createsubscription.html\" title=\"CREATE SUBSCRIPTION\"><code>password_required=false</code></a>.</p>", "text": "Allow subscriptions to not require passwords (Robert Haas) § § § This is accomplished with the option password_required=false.", "title": "Allow subscriptions to not require passwords", "commits": ["19e65dff3", "c1cc4e688", "c3afe8cf5"], "section": "Server / Privileges", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-PRIVILEGES", "source_hash": "4e429a7a891597dddde63433790b4f3d2b4c549a0860684dc28751eff6efcbb8", "section_path": ["Server", "Privileges"], "commit_groups": [["19e65dff3"], ["c1cc4e688"], ["c3afe8cf5"]], "identity_text": "Allow subscriptions to not require passwords (Robert Haas) This is accomplished with the option password_required=false.", "commit_aliases": ["19e65dff3", "c1cc4e688", "c3afe8cf5"], "source_commits": ["19e65dff3", "c1cc4e688", "c3afe8cf5"], "source_entry_id": "16.0/changes/035", "db_id": "418f288dc007fcb250d7b6ff611924ba", "patch_ids": ["38efe5461c206e0e034559d4a91f45d0", "c224d8dd933626411fa49fb8d92e9e45", "e02a8cd02a74998c80f31f461bf7bacc"], "statement_hash": "307de52e405bebdef63ba4af4fe792ce32c7a67d4ce915eea0c603db4d8d5776", "relations": [{"rule": 2, "type": "related", "target": "333405cb0d257fc36ce99d779f85a196", "evidence": {"same_day": true, "patch_ids": ["38efe5461c206e0e034559d4a91f45d0"], "ambiguous_patch_ids": ["38efe5461c206e0e034559d4a91f45d0"]}}], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": [{"db_id": "333405cb0d257fc36ce99d779f85a196", "kind": "related", "version": "16.0", "label": "16.0", "title": "Add predefined role pg_create_subscription with permission to create subscriptions", "evidence": {"same_day": true, "patch_ids": ["38efe5461c206e0e034559d4a91f45d0"], "ambiguous_patch_ids": ["38efe5461c206e0e034559d4a91f45d0"]}, "url": "/docs/compare/?release=16.0#16.0-4da84340f31e2ff5", "source_url": "/docs/release/16.0/#RELEASE-16-PRIVILEGES"}]}, {"id": "16.0-a9d9eff458a8341f", "cves": [], "html": "<p>Simplify permissions for <a href=\"/docs/16/sql-lock.html\" title=\"LOCK\"><code>LOCK TABLE</code></a> (Jeff Davis) <a href=\"https://postgr.es/c/c44f6334c\">§</a></p>\n<p>Previously a user's ability to perform <code>LOCK TABLE</code> at various lock levels was limited to the lock levels required by the commands they had permission to execute on the table. For example, someone with <a href=\"/docs/16/sql-update.html\" title=\"UPDATE\"><code>UPDATE</code></a> permission could perform all lock levels except <code>ACCESS SHARE</code>, even though it was a lesser lock level. Now users can issue lesser lock levels if they already have permission for greater lock levels.</p>", "text": "Simplify permissions for LOCK TABLE (Jeff Davis) § Previously a user's ability to perform LOCK TABLE at various lock levels was limited to the lock levels required by the commands they had permission to execute on the table. For example, someone with UPDATE permission could perform all lock levels except ACCESS SHARE, even though it was a lesser lock level. Now users can issue lesser lock levels if they already have permission for greater lock levels.", "title": "Simplify permissions for LOCK TABLE", "commits": ["c44f6334c"], "section": "Server / Privileges", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-PRIVILEGES", "source_hash": "33a87e8108b41f113de32318f6e53e4ba352d1543722cf3a9cef1e2dbd27ba84", "section_path": ["Server", "Privileges"], "commit_groups": [["c44f6334c"]], "identity_text": "Simplify permissions for LOCK TABLE (Jeff Davis) Previously a user's ability to perform LOCK TABLE at various lock levels was limited to the lock levels required by the commands they had permission to execute on the table. For example, someone with UPDATE permission could perform all lock levels except ACCESS SHARE, even though it was a lesser lock level. Now users can issue lesser lock levels if they already have permission for greater lock levels.", "commit_aliases": ["c44f6334c"], "source_commits": ["c44f6334c"], "source_entry_id": "16.0/changes/036", "db_id": "fc527d8ebbe880a16e9882d89634afe2", "patch_ids": ["92cd8d6c24503a354f218c931c844e15"], "statement_hash": "f4aa154946307a5e841fbed6d6d106fc59b27599cb7af260229fdcb72506e922", "relations": [], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-c0aa1d8a5fe48392-1", "cves": [], "html": "<p>Allow <a href=\"/docs/16/sql-altergroup.html\" title=\"ALTER GROUP\"><code>ALTER GROUP group_name ADD USER user_name</code></a> to be performed with <code>ADMIN OPTION</code> (Robert Haas) <a href=\"https://postgr.es/c/ce6b672e4\">§</a></p>\n<p>Previously <code>CREATEROLE</code> permission was required.</p>", "text": "Allow ALTER GROUP group_name ADD USER user_name to be performed with ADMIN OPTION (Robert Haas) § Previously CREATEROLE permission was required.", "title": "Allow ALTER GROUP group_name ADD USER user_name to be performed with ADMIN OPTION", "commits": ["ce6b672e4"], "section": "Server / Privileges", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-PRIVILEGES", "source_hash": "2c694bab726063101865af00f9e776218d0acb93f66a345fcfbe4288e5e89d9f", "section_path": ["Server", "Privileges"], "commit_groups": [["ce6b672e4"]], "identity_text": "Allow ALTER GROUP group_name ADD USER user_name to be performed with ADMIN OPTION (Robert Haas) Previously CREATEROLE permission was required.", "commit_aliases": ["ce6b672e4"], "source_commits": ["ce6b672e4"], "source_entry_id": "16.0/changes/037", "db_id": "d8aeb6cda0f06bc0eae70ac8df9062cd", "patch_ids": ["9e03ed8fdc94bff9e3d4992c51b50fc5"], "statement_hash": "50f4b0a5e2a447f99b8831313b6b7c56eff52b047ed9ad71ac545f40804211e3", "relations": [{"rule": 2, "type": "related", "target": "46cf39dbbeb91c639c0ece997870da4c", "evidence": {"same_day": true, "patch_ids": ["9e03ed8fdc94bff9e3d4992c51b50fc5"], "ambiguous_patch_ids": ["9e03ed8fdc94bff9e3d4992c51b50fc5"]}}, {"rule": 2, "type": "related", "target": "add7e71eb5cbf6ad907b4f35f055974f", "evidence": {"same_day": true, "patch_ids": ["9e03ed8fdc94bff9e3d4992c51b50fc5"], "ambiguous_patch_ids": ["9e03ed8fdc94bff9e3d4992c51b50fc5"]}}, {"rule": 2, "type": "related", "target": "b51e0cd6c9c46c422491f6d043639fa1", "evidence": {"same_day": true, "patch_ids": ["9e03ed8fdc94bff9e3d4992c51b50fc5"], "ambiguous_patch_ids": ["9e03ed8fdc94bff9e3d4992c51b50fc5"]}}, {"rule": 2, "type": "related", "target": "e5549806f195ec72b3f07460973e0442", "evidence": {"same_day": true, "patch_ids": ["9e03ed8fdc94bff9e3d4992c51b50fc5"], "ambiguous_patch_ids": ["9e03ed8fdc94bff9e3d4992c51b50fc5"]}}], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": [{"db_id": "e5549806f195ec72b3f07460973e0442", "kind": "related", "version": "16.0", "label": "16.0", "title": "Allow multiple role membership records", "evidence": {"same_day": true, "patch_ids": ["9e03ed8fdc94bff9e3d4992c51b50fc5"], "ambiguous_patch_ids": ["9e03ed8fdc94bff9e3d4992c51b50fc5"]}, "url": "/docs/compare/?release=16.0#16.0-264c0672e63cd508", "source_url": "/docs/release/16.0/#RELEASE-16-PRIVILEGES"}, {"db_id": "b51e0cd6c9c46c422491f6d043639fa1", "kind": "related", "version": "16.0", "label": "16.0", "title": "When granting role membership, require the granted-by role to be a role that has appropriate permissions", "evidence": {"same_day": true, "patch_ids": ["9e03ed8fdc94bff9e3d4992c51b50fc5"], "ambiguous_patch_ids": ["9e03ed8fdc94bff9e3d4992c51b50fc5"]}, "url": "/docs/compare/?release=16.0#16.0-c0aa1d8a5fe48392-2", "source_url": "/docs/release/16.0/#RELEASE-16-PRIVILEGES"}, {"db_id": "add7e71eb5cbf6ad907b4f35f055974f", "kind": "related", "version": "16.0", "label": "16.0", "title": "Allow non-superusers to grant permissions using a granted-by user that is not the current user", "evidence": {"same_day": true, "patch_ids": ["9e03ed8fdc94bff9e3d4992c51b50fc5"], "ambiguous_patch_ids": ["9e03ed8fdc94bff9e3d4992c51b50fc5"]}, "url": "/docs/compare/?release=16.0#16.0-c0aa1d8a5fe48392-3", "source_url": "/docs/release/16.0/#RELEASE-16-PRIVILEGES"}, {"db_id": "46cf39dbbeb91c639c0ece997870da4c", "kind": "related", "version": "16.0", "label": "16.0", "title": "Add dependency tracking to roles which have granted privileges", "evidence": {"same_day": true, "patch_ids": ["9e03ed8fdc94bff9e3d4992c51b50fc5"], "ambiguous_patch_ids": ["9e03ed8fdc94bff9e3d4992c51b50fc5"]}, "url": "/docs/compare/?release=16.0#16.0-c0aa1d8a5fe48392-4", "source_url": "/docs/release/16.0/#RELEASE-16-PRIVILEGES"}]}, {"id": "16.0-85fcfae397e13587", "cves": [], "html": "<p>Allow <a href=\"/docs/16/sql-grant.html\" title=\"GRANT\"><code>GRANT</code></a> to use <code>WITH ADMIN TRUE</code>/<code>FALSE</code> syntax (Robert Haas) <a href=\"https://postgr.es/c/e3ce2de09\">§</a></p>\n<p>Previously only the <code>WITH ADMIN OPTION</code> syntax was supported.</p>", "text": "Allow GRANT to use WITH ADMIN TRUE/FALSE syntax (Robert Haas) § Previously only the WITH ADMIN OPTION syntax was supported.", "title": "Allow GRANT to use WITH ADMIN TRUE/FALSE syntax", "commits": ["e3ce2de09"], "section": "Server / Privileges", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-PRIVILEGES", "source_hash": "e8cfb393ebd2ac83f6ac415c289bc9e524a876fba51b7520a603b279de52ea50", "section_path": ["Server", "Privileges"], "commit_groups": [["e3ce2de09"]], "identity_text": "Allow GRANT to use WITH ADMIN TRUE/FALSE syntax (Robert Haas) Previously only the WITH ADMIN OPTION syntax was supported.", "commit_aliases": ["e3ce2de09"], "source_commits": ["e3ce2de09"], "source_entry_id": "16.0/changes/038", "db_id": "16b0c20f5aecf71bf2b84e46d17b8a37", "patch_ids": ["504c427340a3e4db6513b1d1bf5f39f8"], "statement_hash": "3dfb4357f5ce15df95907ea1410b89d43f98351cb1da0541bfa0598bbd8ee150", "relations": [{"rule": 2, "type": "related", "target": "0737ce1c20636caccfeb102fc4eee993", "evidence": {"same_day": true, "patch_ids": ["504c427340a3e4db6513b1d1bf5f39f8"]}}], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": [{"db_id": "0737ce1c20636caccfeb102fc4eee993", "kind": "related", "version": "16.0", "label": "16.0", "title": "Role inheritance now controls the default inheritance status of member roles added during GRANT", "evidence": {"same_day": true, "patch_ids": ["504c427340a3e4db6513b1d1bf5f39f8"]}, "url": "/docs/compare/?release=16.0#16.0-008a75f47f428d6f", "source_url": "/docs/release/16.0/#RELEASE-16-MIGRATION"}]}, {"id": "16.0-cb0eef97e7452520", "cves": [], "html": "<p>Allow roles that create other roles to automatically inherit the new role's rights or the ability to <a href=\"/docs/16/sql-set-role.html\" title=\"SET ROLE\"><code>SET ROLE</code></a> to the new role (Robert Haas, Shi Yu) <a href=\"https://postgr.es/c/e5b8a4c09\">§</a> <a href=\"https://postgr.es/c/e00bc6c92\">§</a></p>\n<p>This is controlled by server variable <a href=\"/docs/16/runtime-config-client.html#GUC-CREATEROLE-SELF-GRANT\"><code>createrole_self_grant</code></a>.</p>", "text": "Allow roles that create other roles to automatically inherit the new role's rights or the ability to SET ROLE to the new role (Robert Haas, Shi Yu) § § This is controlled by server variable createrole_self_grant.", "title": "Allow roles that create other roles to automatically inherit the new role's rights or the ability to SET ROLE to the new role", "commits": ["e00bc6c92", "e5b8a4c09"], "section": "Server / Privileges", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-PRIVILEGES", "source_hash": "edb2d903e6a8988421f7ea16618518c31ddb299a6199a5c42ec93c6cb589a80e", "section_path": ["Server", "Privileges"], "commit_groups": [["e00bc6c92"], ["e5b8a4c09"]], "identity_text": "Allow roles that create other roles to automatically inherit the new role's rights or the ability to SET ROLE to the new role (Robert Haas, Shi Yu) This is controlled by server variable createrole_self_grant.", "commit_aliases": ["e00bc6c92", "e5b8a4c09"], "source_commits": ["e00bc6c92", "e5b8a4c09"], "source_entry_id": "16.0/changes/039", "db_id": "5a2d20795043efe5d7ba54f500dcbc6d", "patch_ids": ["b92590f09690a1479e8cf6e76ae73370", "f3e253234013b8b0638ec48d781250ed"], "statement_hash": "36f019ebf0697c73c0967e90e08f7296a7f79f6c72ed1829e5a59b4b95c67316", "relations": [], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-2ad2315c975a7cf2", "cves": [], "html": "<p>Prevent users from changing the default privileges of non-inherited roles (Robert Haas) <a href=\"https://postgr.es/c/48a257d44\">§</a></p>\n<p>This is now only allowed for inherited roles.</p>", "text": "Prevent users from changing the default privileges of non-inherited roles (Robert Haas) § This is now only allowed for inherited roles.", "title": "Prevent users from changing the default privileges of non-inherited roles", "commits": ["48a257d44"], "section": "Server / Privileges", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-PRIVILEGES", "source_hash": "48658d108bfff7503c00f5095a11509669e187b6a0ddc5ae0566fa19e0307cd9", "section_path": ["Server", "Privileges"], "commit_groups": [["48a257d44"]], "identity_text": "Prevent users from changing the default privileges of non-inherited roles (Robert Haas) This is now only allowed for inherited roles.", "commit_aliases": ["48a257d44"], "source_commits": ["48a257d44"], "source_entry_id": "16.0/changes/040", "db_id": "70691e45c4a7d652db358ce6c6180e90", "patch_ids": ["3f4006baf1d5d262bcc1ddd93c6d2ad6"], "statement_hash": "f845cbe793227ba82041283cbf383f1385fda9ce031728a0ff53e00bc430ae48", "relations": [], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-c0aa1d8a5fe48392-2", "cves": [], "html": "<p>When granting role membership, require the granted-by role to be a role that has appropriate permissions (Robert Haas) <a href=\"https://postgr.es/c/ce6b672e4\">§</a></p>\n<p>This is a requirement even when a non-bootstrap superuser is granting role membership.</p>", "text": "When granting role membership, require the granted-by role to be a role that has appropriate permissions (Robert Haas) § This is a requirement even when a non-bootstrap superuser is granting role membership.", "title": "When granting role membership, require the granted-by role to be a role that has appropriate permissions", "commits": ["ce6b672e4"], "section": "Server / Privileges", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-PRIVILEGES", "source_hash": "4dc9847617336b76cce7779ef6636a52b9f0bc242bfd32d1065f8b48f5cdd78f", "section_path": ["Server", "Privileges"], "commit_groups": [["ce6b672e4"]], "identity_text": "When granting role membership, require the granted-by role to be a role that has appropriate permissions (Robert Haas) This is a requirement even when a non-bootstrap superuser is granting role membership.", "commit_aliases": ["ce6b672e4"], "source_commits": ["ce6b672e4"], "source_entry_id": "16.0/changes/041", "db_id": "b51e0cd6c9c46c422491f6d043639fa1", "patch_ids": ["9e03ed8fdc94bff9e3d4992c51b50fc5"], "statement_hash": "9536c9bdef83a54f482fc98b946bb8e0b77c53bf35c15a7e0ef07b2e1bc79259", "relations": [{"rule": 2, "type": "related", "target": "46cf39dbbeb91c639c0ece997870da4c", "evidence": {"same_day": true, "patch_ids": ["9e03ed8fdc94bff9e3d4992c51b50fc5"], "ambiguous_patch_ids": ["9e03ed8fdc94bff9e3d4992c51b50fc5"]}}, {"rule": 2, "type": "related", "target": "add7e71eb5cbf6ad907b4f35f055974f", "evidence": {"same_day": true, "patch_ids": ["9e03ed8fdc94bff9e3d4992c51b50fc5"], "ambiguous_patch_ids": ["9e03ed8fdc94bff9e3d4992c51b50fc5"]}}, {"rule": 2, "type": "related", "target": "d8aeb6cda0f06bc0eae70ac8df9062cd", "evidence": {"same_day": true, "patch_ids": ["9e03ed8fdc94bff9e3d4992c51b50fc5"], "ambiguous_patch_ids": ["9e03ed8fdc94bff9e3d4992c51b50fc5"]}}, {"rule": 2, "type": "related", "target": "e5549806f195ec72b3f07460973e0442", "evidence": {"same_day": true, "patch_ids": ["9e03ed8fdc94bff9e3d4992c51b50fc5"], "ambiguous_patch_ids": ["9e03ed8fdc94bff9e3d4992c51b50fc5"]}}], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": [{"db_id": "e5549806f195ec72b3f07460973e0442", "kind": "related", "version": "16.0", "label": "16.0", "title": "Allow multiple role membership records", "evidence": {"same_day": true, "patch_ids": ["9e03ed8fdc94bff9e3d4992c51b50fc5"], "ambiguous_patch_ids": ["9e03ed8fdc94bff9e3d4992c51b50fc5"]}, "url": "/docs/compare/?release=16.0#16.0-264c0672e63cd508", "source_url": "/docs/release/16.0/#RELEASE-16-PRIVILEGES"}, {"db_id": "d8aeb6cda0f06bc0eae70ac8df9062cd", "kind": "related", "version": "16.0", "label": "16.0", "title": "Allow ALTER GROUP group_name ADD USER user_name to be performed with ADMIN OPTION", "evidence": {"same_day": true, "patch_ids": ["9e03ed8fdc94bff9e3d4992c51b50fc5"], "ambiguous_patch_ids": ["9e03ed8fdc94bff9e3d4992c51b50fc5"]}, "url": "/docs/compare/?release=16.0#16.0-c0aa1d8a5fe48392-1", "source_url": "/docs/release/16.0/#RELEASE-16-PRIVILEGES"}, {"db_id": "add7e71eb5cbf6ad907b4f35f055974f", "kind": "related", "version": "16.0", "label": "16.0", "title": "Allow non-superusers to grant permissions using a granted-by user that is not the current user", "evidence": {"same_day": true, "patch_ids": ["9e03ed8fdc94bff9e3d4992c51b50fc5"], "ambiguous_patch_ids": ["9e03ed8fdc94bff9e3d4992c51b50fc5"]}, "url": "/docs/compare/?release=16.0#16.0-c0aa1d8a5fe48392-3", "source_url": "/docs/release/16.0/#RELEASE-16-PRIVILEGES"}, {"db_id": "46cf39dbbeb91c639c0ece997870da4c", "kind": "related", "version": "16.0", "label": "16.0", "title": "Add dependency tracking to roles which have granted privileges", "evidence": {"same_day": true, "patch_ids": ["9e03ed8fdc94bff9e3d4992c51b50fc5"], "ambiguous_patch_ids": ["9e03ed8fdc94bff9e3d4992c51b50fc5"]}, "url": "/docs/compare/?release=16.0#16.0-c0aa1d8a5fe48392-4", "source_url": "/docs/release/16.0/#RELEASE-16-PRIVILEGES"}]}, {"id": "16.0-c0aa1d8a5fe48392-3", "cves": [], "html": "<p>Allow non-superusers to grant permissions using a granted-by user that is not the current user (Robert Haas) <a href=\"https://postgr.es/c/ce6b672e4\">§</a></p>\n<p>The current user still must have sufficient permissions given by the specified granted-by user.</p>", "text": "Allow non-superusers to grant permissions using a granted-by user that is not the current user (Robert Haas) § The current user still must have sufficient permissions given by the specified granted-by user.", "title": "Allow non-superusers to grant permissions using a granted-by user that is not the current user", "commits": ["ce6b672e4"], "section": "Server / Privileges", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-PRIVILEGES", "source_hash": "7086d12bf2dfcc59428971f4486c9b4dd24aa404100ea3308de428deacf9ae37", "section_path": ["Server", "Privileges"], "commit_groups": [["ce6b672e4"]], "identity_text": "Allow non-superusers to grant permissions using a granted-by user that is not the current user (Robert Haas) The current user still must have sufficient permissions given by the specified granted-by user.", "commit_aliases": ["ce6b672e4"], "source_commits": ["ce6b672e4"], "source_entry_id": "16.0/changes/042", "db_id": "add7e71eb5cbf6ad907b4f35f055974f", "patch_ids": ["9e03ed8fdc94bff9e3d4992c51b50fc5"], "statement_hash": "2732be0989fa829429d0b31ee46cd13307f395ef4dbc72e4d93186868981dc25", "relations": [{"rule": 2, "type": "related", "target": "46cf39dbbeb91c639c0ece997870da4c", "evidence": {"same_day": true, "patch_ids": ["9e03ed8fdc94bff9e3d4992c51b50fc5"], "ambiguous_patch_ids": ["9e03ed8fdc94bff9e3d4992c51b50fc5"]}}, {"rule": 2, "type": "related", "target": "b51e0cd6c9c46c422491f6d043639fa1", "evidence": {"same_day": true, "patch_ids": ["9e03ed8fdc94bff9e3d4992c51b50fc5"], "ambiguous_patch_ids": ["9e03ed8fdc94bff9e3d4992c51b50fc5"]}}, {"rule": 2, "type": "related", "target": "d8aeb6cda0f06bc0eae70ac8df9062cd", "evidence": {"same_day": true, "patch_ids": ["9e03ed8fdc94bff9e3d4992c51b50fc5"], "ambiguous_patch_ids": ["9e03ed8fdc94bff9e3d4992c51b50fc5"]}}, {"rule": 2, "type": "related", "target": "e5549806f195ec72b3f07460973e0442", "evidence": {"same_day": true, "patch_ids": ["9e03ed8fdc94bff9e3d4992c51b50fc5"], "ambiguous_patch_ids": ["9e03ed8fdc94bff9e3d4992c51b50fc5"]}}], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": [{"db_id": "e5549806f195ec72b3f07460973e0442", "kind": "related", "version": "16.0", "label": "16.0", "title": "Allow multiple role membership records", "evidence": {"same_day": true, "patch_ids": ["9e03ed8fdc94bff9e3d4992c51b50fc5"], "ambiguous_patch_ids": ["9e03ed8fdc94bff9e3d4992c51b50fc5"]}, "url": "/docs/compare/?release=16.0#16.0-264c0672e63cd508", "source_url": "/docs/release/16.0/#RELEASE-16-PRIVILEGES"}, {"db_id": "d8aeb6cda0f06bc0eae70ac8df9062cd", "kind": "related", "version": "16.0", "label": "16.0", "title": "Allow ALTER GROUP group_name ADD USER user_name to be performed with ADMIN OPTION", "evidence": {"same_day": true, "patch_ids": ["9e03ed8fdc94bff9e3d4992c51b50fc5"], "ambiguous_patch_ids": ["9e03ed8fdc94bff9e3d4992c51b50fc5"]}, "url": "/docs/compare/?release=16.0#16.0-c0aa1d8a5fe48392-1", "source_url": "/docs/release/16.0/#RELEASE-16-PRIVILEGES"}, {"db_id": "b51e0cd6c9c46c422491f6d043639fa1", "kind": "related", "version": "16.0", "label": "16.0", "title": "When granting role membership, require the granted-by role to be a role that has appropriate permissions", "evidence": {"same_day": true, "patch_ids": ["9e03ed8fdc94bff9e3d4992c51b50fc5"], "ambiguous_patch_ids": ["9e03ed8fdc94bff9e3d4992c51b50fc5"]}, "url": "/docs/compare/?release=16.0#16.0-c0aa1d8a5fe48392-2", "source_url": "/docs/release/16.0/#RELEASE-16-PRIVILEGES"}, {"db_id": "46cf39dbbeb91c639c0ece997870da4c", "kind": "related", "version": "16.0", "label": "16.0", "title": "Add dependency tracking to roles which have granted privileges", "evidence": {"same_day": true, "patch_ids": ["9e03ed8fdc94bff9e3d4992c51b50fc5"], "ambiguous_patch_ids": ["9e03ed8fdc94bff9e3d4992c51b50fc5"]}, "url": "/docs/compare/?release=16.0#16.0-c0aa1d8a5fe48392-4", "source_url": "/docs/release/16.0/#RELEASE-16-PRIVILEGES"}]}, {"id": "16.0-e774b37b032be639", "cves": [], "html": "<p>Add <a href=\"/docs/16/sql-grant.html\" title=\"GRANT\"><code>GRANT</code></a> to control permission to use <a href=\"/docs/16/sql-set-role.html\" title=\"SET ROLE\"><code>SET ROLE</code></a> (Robert Haas) <a href=\"https://postgr.es/c/3d14e171e\">§</a></p>\n<p>This is controlled by a new <code>GRANT ... SET</code> option.</p>", "text": "Add GRANT to control permission to use SET ROLE (Robert Haas) § This is controlled by a new GRANT ... SET option.", "title": "Add GRANT to control permission to use SET ROLE", "commits": ["3d14e171e"], "section": "Server / Privileges", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-PRIVILEGES", "source_hash": "e7c6fa9c6602b4721c729e3ddb69001509bd8620feacbace6c3604c3818ca42a", "section_path": ["Server", "Privileges"], "commit_groups": [["3d14e171e"]], "identity_text": "Add GRANT to control permission to use SET ROLE (Robert Haas) This is controlled by a new GRANT ... SET option.", "commit_aliases": ["3d14e171e"], "source_commits": ["3d14e171e"], "source_entry_id": "16.0/changes/043", "db_id": "8f8bb884d7b5c618234e127c71784178", "patch_ids": ["c33f7bfe8a9672e2d613614c2a68fbce"], "statement_hash": "0c57e087aa12879cf26314a9e9e7d74bb74b6e57dbd3c6acf4d644d7a4ce4dc3", "relations": [], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-c0aa1d8a5fe48392-4", "cves": [], "html": "<p>Add dependency tracking to roles which have granted privileges (Robert Haas) <a href=\"https://postgr.es/c/ce6b672e4\">§</a></p>\n<p>For example, removing <code>ADMIN OPTION</code> will fail if there are privileges using that option; <code>CASCADE</code> must be used to revoke dependent permissions.</p>", "text": "Add dependency tracking to roles which have granted privileges (Robert Haas) § For example, removing ADMIN OPTION will fail if there are privileges using that option; CASCADE must be used to revoke dependent permissions.", "title": "Add dependency tracking to roles which have granted privileges", "commits": ["ce6b672e4"], "section": "Server / Privileges", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-PRIVILEGES", "source_hash": "cb7c1ff728cfae933345c7639283714645e90dd795f28400eba52e62435423f4", "section_path": ["Server", "Privileges"], "commit_groups": [["ce6b672e4"]], "identity_text": "Add dependency tracking to roles which have granted privileges (Robert Haas) For example, removing ADMIN OPTION will fail if there are privileges using that option; CASCADE must be used to revoke dependent permissions.", "commit_aliases": ["ce6b672e4"], "source_commits": ["ce6b672e4"], "source_entry_id": "16.0/changes/044", "db_id": "46cf39dbbeb91c639c0ece997870da4c", "patch_ids": ["9e03ed8fdc94bff9e3d4992c51b50fc5"], "statement_hash": "0453d91c7a1a281aa1fd4a77eedd82810d6846abf6c77e4254ef43e390a283d5", "relations": [{"rule": 2, "type": "related", "target": "add7e71eb5cbf6ad907b4f35f055974f", "evidence": {"same_day": true, "patch_ids": ["9e03ed8fdc94bff9e3d4992c51b50fc5"], "ambiguous_patch_ids": ["9e03ed8fdc94bff9e3d4992c51b50fc5"]}}, {"rule": 2, "type": "related", "target": "b51e0cd6c9c46c422491f6d043639fa1", "evidence": {"same_day": true, "patch_ids": ["9e03ed8fdc94bff9e3d4992c51b50fc5"], "ambiguous_patch_ids": ["9e03ed8fdc94bff9e3d4992c51b50fc5"]}}, {"rule": 2, "type": "related", "target": "d8aeb6cda0f06bc0eae70ac8df9062cd", "evidence": {"same_day": true, "patch_ids": ["9e03ed8fdc94bff9e3d4992c51b50fc5"], "ambiguous_patch_ids": ["9e03ed8fdc94bff9e3d4992c51b50fc5"]}}, {"rule": 2, "type": "related", "target": "e5549806f195ec72b3f07460973e0442", "evidence": {"same_day": true, "patch_ids": ["9e03ed8fdc94bff9e3d4992c51b50fc5"], "ambiguous_patch_ids": ["9e03ed8fdc94bff9e3d4992c51b50fc5"]}}], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": [{"db_id": "e5549806f195ec72b3f07460973e0442", "kind": "related", "version": "16.0", "label": "16.0", "title": "Allow multiple role membership records", "evidence": {"same_day": true, "patch_ids": ["9e03ed8fdc94bff9e3d4992c51b50fc5"], "ambiguous_patch_ids": ["9e03ed8fdc94bff9e3d4992c51b50fc5"]}, "url": "/docs/compare/?release=16.0#16.0-264c0672e63cd508", "source_url": "/docs/release/16.0/#RELEASE-16-PRIVILEGES"}, {"db_id": "d8aeb6cda0f06bc0eae70ac8df9062cd", "kind": "related", "version": "16.0", "label": "16.0", "title": "Allow ALTER GROUP group_name ADD USER user_name to be performed with ADMIN OPTION", "evidence": {"same_day": true, "patch_ids": ["9e03ed8fdc94bff9e3d4992c51b50fc5"], "ambiguous_patch_ids": ["9e03ed8fdc94bff9e3d4992c51b50fc5"]}, "url": "/docs/compare/?release=16.0#16.0-c0aa1d8a5fe48392-1", "source_url": "/docs/release/16.0/#RELEASE-16-PRIVILEGES"}, {"db_id": "b51e0cd6c9c46c422491f6d043639fa1", "kind": "related", "version": "16.0", "label": "16.0", "title": "When granting role membership, require the granted-by role to be a role that has appropriate permissions", "evidence": {"same_day": true, "patch_ids": ["9e03ed8fdc94bff9e3d4992c51b50fc5"], "ambiguous_patch_ids": ["9e03ed8fdc94bff9e3d4992c51b50fc5"]}, "url": "/docs/compare/?release=16.0#16.0-c0aa1d8a5fe48392-2", "source_url": "/docs/release/16.0/#RELEASE-16-PRIVILEGES"}, {"db_id": "add7e71eb5cbf6ad907b4f35f055974f", "kind": "related", "version": "16.0", "label": "16.0", "title": "Allow non-superusers to grant permissions using a granted-by user that is not the current user", "evidence": {"same_day": true, "patch_ids": ["9e03ed8fdc94bff9e3d4992c51b50fc5"], "ambiguous_patch_ids": ["9e03ed8fdc94bff9e3d4992c51b50fc5"]}, "url": "/docs/compare/?release=16.0#16.0-c0aa1d8a5fe48392-3", "source_url": "/docs/release/16.0/#RELEASE-16-PRIVILEGES"}]}, {"id": "16.0-2f63b6b645bb797d", "cves": [], "html": "<p>Add dependency tracking of grantors for <a href=\"/docs/16/sql-grant.html\" title=\"GRANT\"><code>GRANT</code></a> records (Robert Haas) <a href=\"https://postgr.es/c/6566133c5\">§</a></p>\n<p>This guarantees that <a href=\"/docs/16/catalog-pg-auth-members.html\" title=\"53.9. pg_auth_members\"><code>pg_auth_members</code></a>.<code>grantor</code> values are always valid.</p>", "text": "Add dependency tracking of grantors for GRANT records (Robert Haas) § This guarantees that pg_auth_members.grantor values are always valid.", "title": "Add dependency tracking of grantors for GRANT records", "commits": ["6566133c5"], "section": "Server / Privileges", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-PRIVILEGES", "source_hash": "1145c2d8f897e10f1fe3d3dab39929ab99e853ab34a5adf15fd8ff94e2eb4b0f", "section_path": ["Server", "Privileges"], "commit_groups": [["6566133c5"]], "identity_text": "Add dependency tracking of grantors for GRANT records (Robert Haas) This guarantees that pg_auth_members.grantor values are always valid.", "commit_aliases": ["6566133c5"], "source_commits": ["6566133c5"], "source_entry_id": "16.0/changes/045", "db_id": "52efd571f0ee8e32038ae683a496bd22", "patch_ids": ["59aa033cf476f9a4b2129145ab39e4a8"], "statement_hash": "03037fe0a26a0b06363106af277e98bd82ebb323583dcd1de997c24f58b777fd", "relations": [], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-264c0672e63cd508", "cves": [], "html": "<p>Allow multiple role membership records (Robert Haas) <a href=\"https://postgr.es/c/ce6b672e4\">§</a> <a href=\"https://postgr.es/c/0101f770a\">§</a></p>\n<p>Previously a new membership grant would remove a previous matching membership grant, even if other aspects of the grant did not match.</p>", "text": "Allow multiple role membership records (Robert Haas) § § Previously a new membership grant would remove a previous matching membership grant, even if other aspects of the grant did not match.", "title": "Allow multiple role membership records", "commits": ["0101f770a", "ce6b672e4"], "section": "Server / Privileges", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-PRIVILEGES", "source_hash": "49a4cff66517454ef299ee39e3eb8265aab5c13a579743fd5acc16f01492baff", "section_path": ["Server", "Privileges"], "commit_groups": [["0101f770a"], ["ce6b672e4"]], "identity_text": "Allow multiple role membership records (Robert Haas) Previously a new membership grant would remove a previous matching membership grant, even if other aspects of the grant did not match.", "commit_aliases": ["0101f770a", "ce6b672e4"], "source_commits": ["0101f770a", "ce6b672e4"], "source_entry_id": "16.0/changes/046", "db_id": "e5549806f195ec72b3f07460973e0442", "patch_ids": ["5823850ecf50580450f3b6a6264b5424", "9e03ed8fdc94bff9e3d4992c51b50fc5"], "statement_hash": "b08c1cdb28f81efd659cdf33495f344f12cdbc0d6ad4d69047d63559167b1c50", "relations": [{"rule": 2, "type": "related", "target": "46cf39dbbeb91c639c0ece997870da4c", "evidence": {"same_day": true, "patch_ids": ["9e03ed8fdc94bff9e3d4992c51b50fc5"], "ambiguous_patch_ids": ["9e03ed8fdc94bff9e3d4992c51b50fc5"]}}, {"rule": 2, "type": "related", "target": "add7e71eb5cbf6ad907b4f35f055974f", "evidence": {"same_day": true, "patch_ids": ["9e03ed8fdc94bff9e3d4992c51b50fc5"], "ambiguous_patch_ids": ["9e03ed8fdc94bff9e3d4992c51b50fc5"]}}, {"rule": 2, "type": "related", "target": "b51e0cd6c9c46c422491f6d043639fa1", "evidence": {"same_day": true, "patch_ids": ["9e03ed8fdc94bff9e3d4992c51b50fc5"], "ambiguous_patch_ids": ["9e03ed8fdc94bff9e3d4992c51b50fc5"]}}, {"rule": 2, "type": "related", "target": "d8aeb6cda0f06bc0eae70ac8df9062cd", "evidence": {"same_day": true, "patch_ids": ["9e03ed8fdc94bff9e3d4992c51b50fc5"], "ambiguous_patch_ids": ["9e03ed8fdc94bff9e3d4992c51b50fc5"]}}], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": [{"db_id": "d8aeb6cda0f06bc0eae70ac8df9062cd", "kind": "related", "version": "16.0", "label": "16.0", "title": "Allow ALTER GROUP group_name ADD USER user_name to be performed with ADMIN OPTION", "evidence": {"same_day": true, "patch_ids": ["9e03ed8fdc94bff9e3d4992c51b50fc5"], "ambiguous_patch_ids": ["9e03ed8fdc94bff9e3d4992c51b50fc5"]}, "url": "/docs/compare/?release=16.0#16.0-c0aa1d8a5fe48392-1", "source_url": "/docs/release/16.0/#RELEASE-16-PRIVILEGES"}, {"db_id": "b51e0cd6c9c46c422491f6d043639fa1", "kind": "related", "version": "16.0", "label": "16.0", "title": "When granting role membership, require the granted-by role to be a role that has appropriate permissions", "evidence": {"same_day": true, "patch_ids": ["9e03ed8fdc94bff9e3d4992c51b50fc5"], "ambiguous_patch_ids": ["9e03ed8fdc94bff9e3d4992c51b50fc5"]}, "url": "/docs/compare/?release=16.0#16.0-c0aa1d8a5fe48392-2", "source_url": "/docs/release/16.0/#RELEASE-16-PRIVILEGES"}, {"db_id": "add7e71eb5cbf6ad907b4f35f055974f", "kind": "related", "version": "16.0", "label": "16.0", "title": "Allow non-superusers to grant permissions using a granted-by user that is not the current user", "evidence": {"same_day": true, "patch_ids": ["9e03ed8fdc94bff9e3d4992c51b50fc5"], "ambiguous_patch_ids": ["9e03ed8fdc94bff9e3d4992c51b50fc5"]}, "url": "/docs/compare/?release=16.0#16.0-c0aa1d8a5fe48392-3", "source_url": "/docs/release/16.0/#RELEASE-16-PRIVILEGES"}, {"db_id": "46cf39dbbeb91c639c0ece997870da4c", "kind": "related", "version": "16.0", "label": "16.0", "title": "Add dependency tracking to roles which have granted privileges", "evidence": {"same_day": true, "patch_ids": ["9e03ed8fdc94bff9e3d4992c51b50fc5"], "ambiguous_patch_ids": ["9e03ed8fdc94bff9e3d4992c51b50fc5"]}, "url": "/docs/compare/?release=16.0#16.0-c0aa1d8a5fe48392-4", "source_url": "/docs/release/16.0/#RELEASE-16-PRIVILEGES"}]}, {"id": "16.0-bcbd5ca316bdb3a7", "cves": [], "html": "<p>Prevent removal of superuser privileges for the bootstrap user (Robert Haas) <a href=\"https://postgr.es/c/e530be2c5\">§</a></p>\n<p>Restoring such users could lead to errors.</p>", "text": "Prevent removal of superuser privileges for the bootstrap user (Robert Haas) § Restoring such users could lead to errors.", "title": "Prevent removal of superuser privileges for the bootstrap user", "commits": ["e530be2c5"], "section": "Server / Privileges", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-PRIVILEGES", "source_hash": "c230ed9871388a6779e329f412b60aa113dec94d9faaa518e22bef6d76c8d69f", "section_path": ["Server", "Privileges"], "commit_groups": [["e530be2c5"]], "identity_text": "Prevent removal of superuser privileges for the bootstrap user (Robert Haas) Restoring such users could lead to errors.", "commit_aliases": ["e530be2c5"], "source_commits": ["e530be2c5"], "source_entry_id": "16.0/changes/047", "db_id": "5e71b967c11394fe2bde1f8969897aea", "patch_ids": ["b96a542d2c0ed68a09668d883c837407"], "statement_hash": "85c1c5797e5867ef59b1173281b9ca1231c458047b2e1cb07c7609b11745aa24", "relations": [], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-f965438ce5df9eed", "cves": [], "html": "<p>Allow <a href=\"/docs/16/functions-info.html#FUNCTIONS-ACLITEM-FN-TABLE\" title=\"Table 9.70. aclitem Functions\"><code>makeaclitem()</code></a> to accept multiple privilege names (Robins Tharakan) <a href=\"https://postgr.es/c/b762bbde3\">§</a></p>\n<p>Previously only a single privilege name, like <a href=\"/docs/16/sql-select.html\" title=\"SELECT\"><code>SELECT</code></a>, was accepted.</p>", "text": "Allow makeaclitem() to accept multiple privilege names (Robins Tharakan) § Previously only a single privilege name, like SELECT, was accepted.", "title": "Allow makeaclitem() to accept multiple privilege names", "commits": ["b762bbde3"], "section": "Server / Privileges", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-PRIVILEGES", "source_hash": "7805006273fc53fce8a0b39dbc88e99289e76383ef717e6e6859364f8f051b5c", "section_path": ["Server", "Privileges"], "commit_groups": [["b762bbde3"]], "identity_text": "Allow makeaclitem() to accept multiple privilege names (Robins Tharakan) Previously only a single privilege name, like SELECT, was accepted.", "commit_aliases": ["b762bbde3"], "source_commits": ["b762bbde3"], "source_entry_id": "16.0/changes/048", "db_id": "f265b7e845ebbdbdebc6a1a2e4113a11", "patch_ids": ["ef4aa9680eadb09acd78e4250b621f41"], "statement_hash": "38a381ebb31955cdae1621635b97c81906bbecceb794d0a41a96959f71d51862", "relations": [], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-facd9ac304d87117", "cves": [], "html": "<p>Add support for <span>Kerberos</span> credential delegation (Stephen Frost) <a href=\"https://postgr.es/c/6633cfb21\">§</a> <a href=\"https://postgr.es/c/9c0a0e2ed\">§</a> <a href=\"https://postgr.es/c/f4001a553\">§</a> <a href=\"https://postgr.es/c/a2eb99a01\">§</a></p>\n<p>This is enabled with server variable <a href=\"/docs/16/runtime-config-connection.html#GUC-GSS-ACCEPT-DELEGATION\"><code>gss_accept_delegation</code></a> and <span>libpq</span> connection parameter <a href=\"/docs/16/libpq-connect.html#LIBPQ-CONNECT-GSSDELEGATION\"><code>gssdelegation</code></a>.</p>", "text": "Add support for Kerberos credential delegation (Stephen Frost) § § § § This is enabled with server variable gss_accept_delegation and libpq connection parameter gssdelegation.", "title": "Add support for Kerberos credential delegation", "commits": ["6633cfb21", "9c0a0e2ed", "a2eb99a01", "f4001a553"], "section": "Server / Server Configuration", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-SERVER-CONFIG", "source_hash": "21b03ac48150547a37557607859f6e583245937a4d894519e347e3b0adba1f98", "section_path": ["Server", "Server Configuration"], "commit_groups": [["6633cfb21"], ["9c0a0e2ed"], ["a2eb99a01"], ["f4001a553"]], "identity_text": "Add support for Kerberos credential delegation (Stephen Frost) This is enabled with server variable gss_accept_delegation and libpq connection parameter gssdelegation.", "commit_aliases": ["6633cfb21", "9c0a0e2ed", "a2eb99a01", "f4001a553"], "source_commits": ["6633cfb21", "9c0a0e2ed", "a2eb99a01", "f4001a553"], "source_entry_id": "16.0/changes/049", "db_id": "dcbadd54b20e0d114716d2113a30a8de", "patch_ids": ["01c7b4f4adb2512faa0fa9c36a532a20", "2bcdb90738956868491da46a7918447f", "2e518c09694cc61b96385ca890acc6aa", "af56ccf50a0ab7b4ad6a4612fdfac910"], "statement_hash": "41547c48699ee81f69db888ddbb9f73bc474452c2b10fad41d18f5e48eeab40a", "relations": [], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-bdedbdfabe86ecf9", "cves": [], "html": "<p>Allow the <acronym>SCRAM</acronym> iteration count to be set with server variable <a href=\"/docs/16/runtime-config-connection.html#GUC-SCRAM-ITERATIONS\"><code>scram_iterations</code></a> (Daniel Gustafsson) <a href=\"https://postgr.es/c/b57774300\">§</a></p>", "text": "Allow the SCRAM iteration count to be set with server variable scram_iterations (Daniel Gustafsson) §", "title": "Allow the SCRAM iteration count to be set with server variable scram_iterations", "commits": ["b57774300"], "section": "Server / Server Configuration", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-SERVER-CONFIG", "source_hash": "26599be42fc3b2e765602598b097694d12762f2ae846a037f1b8b58e52c87a8e", "section_path": ["Server", "Server Configuration"], "commit_groups": [["b57774300"]], "identity_text": "Allow the SCRAM iteration count to be set with server variable scram_iterations (Daniel Gustafsson)", "commit_aliases": ["b57774300"], "source_commits": ["b57774300"], "source_entry_id": "16.0/changes/050", "db_id": "d02cb7bdd4e93a2f40be0c5b25704e41", "patch_ids": ["caa5db0607f2728632c236b059325eb6"], "statement_hash": "00a51a09426bc9f3e209a9f07dd58edd99703ef5888e561ec3d9308820f613d9", "relations": [], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-703ac3232a96fb54", "cves": [], "html": "<p>Improve performance of server variable management (Tom Lane) <a href=\"https://postgr.es/c/3057465ac\">§</a> <a href=\"https://postgr.es/c/f13b2088f\">§</a></p>", "text": "Improve performance of server variable management (Tom Lane) § §", "title": "Improve performance of server variable management", "commits": ["3057465ac", "f13b2088f"], "section": "Server / Server Configuration", "category": "performance", "source_url": "/docs/release/16.0/#RELEASE-16-SERVER-CONFIG", "source_hash": "5b947899546cce942c483232289fc7d98d6b20941250299d36aba858bc8db5be", "section_path": ["Server", "Server Configuration"], "commit_groups": [["3057465ac"], ["f13b2088f"]], "identity_text": "Improve performance of server variable management (Tom Lane)", "commit_aliases": ["3057465ac", "f13b2088f"], "source_commits": ["3057465ac", "f13b2088f"], "source_entry_id": "16.0/changes/051", "db_id": "72456f3edbba53b83d3d3ba5105e4086", "patch_ids": ["82b79513baeefb90e5b74454642a75f5", "d48327561a477724c4ea8b19e227c0ee"], "statement_hash": "9b71d3e1baf5efe3a8947e03b65e980b6a3f8639cff86542308d8d3a1364a2a2", "relations": [], "version": "16.0", "category_label": "Performance", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-f869eefd12f4b8b2", "cves": [], "html": "<p>Tighten restrictions on which server variables can be reset (Masahiko Sawada) <a href=\"https://postgr.es/c/385366426\">§</a></p>\n<p>Previously, while certain variables, like <a href=\"/docs/16/runtime-config-client.html#GUC-DEFAULT-TRANSACTION-ISOLATION\"><code>transaction_isolation</code></a>, were not affected by <a href=\"/docs/16/sql-reset.html\" title=\"RESET\"><code>RESET ALL</code></a>, they could be individually reset in inappropriate situations.</p>", "text": "Tighten restrictions on which server variables can be reset (Masahiko Sawada) § Previously, while certain variables, like transaction_isolation, were not affected by RESET ALL, they could be individually reset in inappropriate situations.", "title": "Tighten restrictions on which server variables can be reset", "commits": ["385366426"], "section": "Server / Server Configuration", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-SERVER-CONFIG", "source_hash": "baebc4661882fc15c56fba10bede57fd70f6e92364f6cf66bcc10946abd5339b", "section_path": ["Server", "Server Configuration"], "commit_groups": [["385366426"]], "identity_text": "Tighten restrictions on which server variables can be reset (Masahiko Sawada) Previously, while certain variables, like transaction_isolation, were not affected by RESET ALL, they could be individually reset in inappropriate situations.", "commit_aliases": ["385366426"], "source_commits": ["385366426"], "source_entry_id": "16.0/changes/052", "db_id": "069a189709e773965316678f36c3c950", "patch_ids": ["4682f4c5535186a0fc23921a53137ac4"], "statement_hash": "b9c949b6b48d5600a854b46d9a50f35ec85b5fdd353a564b7c1dd0738a1b83b7", "relations": [], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-15fcf7e5bd9c3585", "cves": [], "html": "<p>Move various <a href=\"/docs/16/config-setting.html#CONFIG-SETTING-CONFIGURATION-FILE\" title=\"20.1.2. Parameter Interaction via the Configuration File\"><code>postgresql.conf</code></a> items into new categories (Shinya Kato) <a href=\"https://postgr.es/c/0b039e3a8\">§</a></p>\n<p>This also affects the categories displayed in the <a href=\"/docs/16/view-pg-settings.html\" title=\"54.24. pg_settings\"><code>pg_settings</code></a> view.</p>", "text": "Move various postgresql.conf items into new categories (Shinya Kato) § This also affects the categories displayed in the pg_settings view.", "title": "Move various postgresql.conf items into new categories", "commits": ["0b039e3a8"], "section": "Server / Server Configuration", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-SERVER-CONFIG", "source_hash": "c0ead218910ca0038dbf5cf71ae9dfec0c9cbdcd7d7d0806444e35825e75454d", "section_path": ["Server", "Server Configuration"], "commit_groups": [["0b039e3a8"]], "identity_text": "Move various postgresql.conf items into new categories (Shinya Kato) This also affects the categories displayed in the pg_settings view.", "commit_aliases": ["0b039e3a8"], "source_commits": ["0b039e3a8"], "source_entry_id": "16.0/changes/053", "db_id": "52293c1ffe8c2f4c0b1ccf3b3e7d7944", "patch_ids": ["032d48614395b562d30cdc258a29cdad"], "statement_hash": "3ced1b20f610b1960ee88bcca6c62caeab5aa398a2de7ec5e70aeb10c755c5c2", "relations": [], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-a676f6b7433fa507", "cves": [], "html": "<p>Prevent configuration file recursion beyond 10 levels (Julien Rouhaud) <a href=\"https://postgr.es/c/d13b68411\">§</a></p>", "text": "Prevent configuration file recursion beyond 10 levels (Julien Rouhaud) §", "title": "Prevent configuration file recursion beyond 10 levels", "commits": ["d13b68411"], "section": "Server / Server Configuration", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-SERVER-CONFIG", "source_hash": "a54a2c962ab64b3e05504313b6e026053696f03bd807705e788c2a536d685f60", "section_path": ["Server", "Server Configuration"], "commit_groups": [["d13b68411"]], "identity_text": "Prevent configuration file recursion beyond 10 levels (Julien Rouhaud)", "commit_aliases": ["d13b68411"], "source_commits": ["d13b68411"], "source_entry_id": "16.0/changes/054", "db_id": "adc61829793667f5200602f7e8b8baf3", "patch_ids": ["1be57ff0d37324066ec62472bd95aac6"], "statement_hash": "189ebb0a7be5cee5449427ba2063bf623a05c75a8fcb20da9c6093100ac5ce29", "relations": [], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-85dfb76c25b3dfef", "cves": [], "html": "<p>Allow <a href=\"/docs/16/routine-vacuuming.html#AUTOVACUUM\" title=\"25.1.6. The Autovacuum Daemon\">autovacuum</a> to more frequently honor changes to delay settings (Melanie Plageman) <a href=\"https://postgr.es/c/7d71d3dd0\">§</a> <a href=\"https://postgr.es/c/a9781ae11\">§</a></p>\n<p>Rather than honor changes only at the start of each relation, honor them at the start of each block.</p>", "text": "Allow autovacuum to more frequently honor changes to delay settings (Melanie Plageman) § § Rather than honor changes only at the start of each relation, honor them at the start of each block.", "title": "Allow autovacuum to more frequently honor changes to delay settings", "commits": ["7d71d3dd0", "a9781ae11"], "section": "Server / Server Configuration", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-SERVER-CONFIG", "source_hash": "b215f7135f886bfd05ac0445870dfa6fb0927682739a56e7c956484b8e9e6dab", "section_path": ["Server", "Server Configuration"], "commit_groups": [["7d71d3dd0"], ["a9781ae11"]], "identity_text": "Allow autovacuum to more frequently honor changes to delay settings (Melanie Plageman) Rather than honor changes only at the start of each relation, honor them at the start of each block.", "commit_aliases": ["7d71d3dd0", "a9781ae11"], "source_commits": ["7d71d3dd0", "a9781ae11"], "source_entry_id": "16.0/changes/055", "db_id": "bbfb2744048c0b38b6d39763ff3738ed", "patch_ids": ["40926f87825db16b1cdd8e643727cb03", "80f3452643f837b520778d921549516a"], "statement_hash": "0ed61549eef266287afb3daee82e5cbe22033b0552202d11b6360977e19f76f6", "relations": [], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-65ef7323c463aba8", "cves": [], "html": "<p>Remove restrictions that archive files be durably renamed (Nathan Bossart) <a href=\"https://postgr.es/c/756e221db\">§</a> <a href=\"https://postgr.es/c/3cabe45a8\">§</a></p>\n<p>The <a href=\"/docs/16/runtime-config-wal.html#GUC-ARCHIVE-COMMAND\"><code>archive_command</code></a> command is now more likely to be called with already-archived files after a crash.</p>", "text": "Remove restrictions that archive files be durably renamed (Nathan Bossart) § § The archive_command command is now more likely to be called with already-archived files after a crash.", "title": "Remove restrictions that archive files be durably renamed", "commits": ["3cabe45a8", "756e221db"], "section": "Server / Server Configuration", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-SERVER-CONFIG", "source_hash": "aa717a027da1b0b1d07b3f5e8316292735b27ee8944cb37bde331816e872cbb4", "section_path": ["Server", "Server Configuration"], "commit_groups": [["3cabe45a8"], ["756e221db"]], "identity_text": "Remove restrictions that archive files be durably renamed (Nathan Bossart) The archive_command command is now more likely to be called with already-archived files after a crash.", "commit_aliases": ["3cabe45a8", "756e221db"], "source_commits": ["3cabe45a8", "756e221db"], "source_entry_id": "16.0/changes/056", "db_id": "ae728e9901d610f4a4062ec168fdcc8d", "patch_ids": ["3adc366fd644d4de925ee04d294996b1", "494e83215081bb9269ec840c6c9fb437"], "statement_hash": "172ddc2abcde54028745ed89ca41713c513f80b853ad97904e7b5594fa04f98e", "relations": [], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-ab7485e1847106d7", "cves": [], "html": "<p>Prevent <a href=\"/docs/16/runtime-config-wal.html#GUC-ARCHIVE-LIBRARY\"><code>archive_library</code></a> and <a href=\"/docs/16/runtime-config-wal.html#GUC-ARCHIVE-COMMAND\"><code>archive_command</code></a> from being set at the same time (Nathan Bossart) <a href=\"https://postgr.es/c/d627ce3b7\">§</a></p>\n<p>Previously <code>archive_library</code> would override <code>archive_command</code>.</p>", "text": "Prevent archive_library and archive_command from being set at the same time (Nathan Bossart) § Previously archive_library would override archive_command.", "title": "Prevent archive_library and archive_command from being set at the same time", "commits": ["d627ce3b7"], "section": "Server / Server Configuration", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-SERVER-CONFIG", "source_hash": "85be49c20a6c8c5720b58f8b223387a798772fcba0d08e49afa207cb9d4cd413", "section_path": ["Server", "Server Configuration"], "commit_groups": [["d627ce3b7"]], "identity_text": "Prevent archive_library and archive_command from being set at the same time (Nathan Bossart) Previously archive_library would override archive_command.", "commit_aliases": ["d627ce3b7"], "source_commits": ["d627ce3b7"], "source_entry_id": "16.0/changes/057", "db_id": "bd285d14fa2dd18bff3bfd9d4aca971f", "patch_ids": ["9e199fa6e71a83bb906836152aad67b2"], "statement_hash": "3c1301f6373b304786fe4a267212c2d3f32a6db521e67fa11e711a12e8e61ce0", "relations": [], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-8ac8002a48397824-1", "cves": [], "html": "<p>Allow the postmaster to terminate children with an abort signal (Tom Lane) <a href=\"https://postgr.es/c/51b5834cd\">§</a></p>\n<p>This allows collection of a core dump for a stuck child process. This is controlled by <a href=\"/docs/16/runtime-config-developer.html#GUC-SEND-ABORT-FOR-CRASH\"><code>send_abort_for_crash</code></a> and <a href=\"/docs/16/runtime-config-developer.html#GUC-SEND-ABORT-FOR-KILL\"><code>send_abort_for_kill</code></a>. The postmaster's <code>-T</code> switch is now the same as setting <code>send_abort_for_crash</code>.</p>", "text": "Allow the postmaster to terminate children with an abort signal (Tom Lane) § This allows collection of a core dump for a stuck child process. This is controlled by send_abort_for_crash and send_abort_for_kill. The postmaster's -T switch is now the same as setting send_abort_for_crash.", "title": "Allow the postmaster to terminate children with an abort signal", "commits": ["51b5834cd"], "section": "Server / Server Configuration", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-SERVER-CONFIG", "source_hash": "63fad43e4bf12b2034b24b727e0ee183cd87f3447c4deb0a4362dca6027adb11", "section_path": ["Server", "Server Configuration"], "commit_groups": [["51b5834cd"]], "identity_text": "Allow the postmaster to terminate children with an abort signal (Tom Lane) This allows collection of a core dump for a stuck child process. This is controlled by send_abort_for_crash and send_abort_for_kill. The postmaster's -T switch is now the same as setting send_abort_for_crash.", "commit_aliases": ["51b5834cd"], "source_commits": ["51b5834cd"], "source_entry_id": "16.0/changes/058", "db_id": "f2eb46938ff9e93ea2686da06878253b", "patch_ids": ["a4fef756bfd4fd9f378e3e0ed20ab82b"], "statement_hash": "4afb0bf1b7f089b1b55ee7968e1425161a2a7dc0a4eb643695e6f8214c9a5526", "relations": [{"rule": 2, "type": "related", "target": "59a0c46d329c68323a069318e496d443", "evidence": {"same_day": true, "patch_ids": ["a4fef756bfd4fd9f378e3e0ed20ab82b"], "ambiguous_patch_ids": ["a4fef756bfd4fd9f378e3e0ed20ab82b"]}}], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": [{"db_id": "59a0c46d329c68323a069318e496d443", "kind": "related", "version": "16.0", "label": "16.0", "title": "Remove the non-functional postmaster -n option", "evidence": {"same_day": true, "patch_ids": ["a4fef756bfd4fd9f378e3e0ed20ab82b"], "ambiguous_patch_ids": ["a4fef756bfd4fd9f378e3e0ed20ab82b"]}, "url": "/docs/compare/?release=16.0#16.0-8ac8002a48397824-2", "source_url": "/docs/release/16.0/#RELEASE-16-SERVER-CONFIG"}]}, {"id": "16.0-8ac8002a48397824-2", "cves": [], "html": "<p>Remove the non-functional postmaster <code>-n</code> option (Tom Lane) <a href=\"https://postgr.es/c/51b5834cd\">§</a></p>", "text": "Remove the non-functional postmaster -n option (Tom Lane) §", "title": "Remove the non-functional postmaster -n option", "commits": ["51b5834cd"], "section": "Server / Server Configuration", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-SERVER-CONFIG", "source_hash": "cb971a2237c1fb3b6ff998c3d997789027dbcb1d681286ca7b7667f8fe326ded", "section_path": ["Server", "Server Configuration"], "commit_groups": [["51b5834cd"]], "identity_text": "Remove the non-functional postmaster -n option (Tom Lane)", "commit_aliases": ["51b5834cd"], "source_commits": ["51b5834cd"], "source_entry_id": "16.0/changes/059", "db_id": "59a0c46d329c68323a069318e496d443", "patch_ids": ["a4fef756bfd4fd9f378e3e0ed20ab82b"], "statement_hash": "adc170c024b3bb0575cbaf08cfcdbf458639d26adf98bd98fdae07158f198b48", "relations": [{"rule": 2, "type": "related", "target": "f2eb46938ff9e93ea2686da06878253b", "evidence": {"same_day": true, "patch_ids": ["a4fef756bfd4fd9f378e3e0ed20ab82b"], "ambiguous_patch_ids": ["a4fef756bfd4fd9f378e3e0ed20ab82b"]}}], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": [{"db_id": "f2eb46938ff9e93ea2686da06878253b", "kind": "related", "version": "16.0", "label": "16.0", "title": "Allow the postmaster to terminate children with an abort signal", "evidence": {"same_day": true, "patch_ids": ["a4fef756bfd4fd9f378e3e0ed20ab82b"], "ambiguous_patch_ids": ["a4fef756bfd4fd9f378e3e0ed20ab82b"]}, "url": "/docs/compare/?release=16.0#16.0-8ac8002a48397824-1", "source_url": "/docs/release/16.0/#RELEASE-16-SERVER-CONFIG"}]}, {"id": "16.0-f6b0bbe9a17183d8", "cves": [], "html": "<p>Allow the server to reserve backend slots for roles with <a href=\"/docs/16/predefined-roles.html\" title=\"22.5. Predefined Roles\"><code>pg_use_reserved_connections</code></a> membership (Nathan Bossart) <a href=\"https://postgr.es/c/6e2775e4d\">§</a></p>\n<p>The number of reserved slots is set by server variable <a href=\"/docs/16/runtime-config-connection.html#GUC-RESERVED-CONNECTIONS\"><code>reserved_connections</code></a>.</p>", "text": "Allow the server to reserve backend slots for roles with pg_use_reserved_connections membership (Nathan Bossart) § The number of reserved slots is set by server variable reserved_connections.", "title": "Allow the server to reserve backend slots for roles with pg_use_reserved_connections membership", "commits": ["6e2775e4d"], "section": "Server / Server Configuration", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-SERVER-CONFIG", "source_hash": "7cd4241598e20ba2a6aab72176b427eb5cf2bc2f4e958ae93c26ee0f747c7f3d", "section_path": ["Server", "Server Configuration"], "commit_groups": [["6e2775e4d"]], "identity_text": "Allow the server to reserve backend slots for roles with pg_use_reserved_connections membership (Nathan Bossart) The number of reserved slots is set by server variable reserved_connections.", "commit_aliases": ["6e2775e4d"], "source_commits": ["6e2775e4d"], "source_entry_id": "16.0/changes/060", "db_id": "9ba0c9b1c130e3dfefa0d23528067f59", "patch_ids": ["d641e1537268a21e9c60ba96744d45ac"], "statement_hash": "01e5834b8e1f377c4fef1981e4804ff30e595249ffdbdc533dbe1a471b362056", "relations": [], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-b781e56df94180c6", "cves": [], "html": "<p>Allow <a href=\"/docs/16/runtime-config-resource.html#GUC-HUGE-PAGES\">huge pages</a> to work on newer versions of <span>Windows 10</span> (Thomas Munro) <a href=\"https://postgr.es/c/fdd8937c0\">§</a></p>\n<p>This adds the special handling required to enable huge pages on newer versions of <span>Windows 10</span>.</p>", "text": "Allow huge pages to work on newer versions of Windows 10 (Thomas Munro) § This adds the special handling required to enable huge pages on newer versions of Windows 10.", "title": "Allow huge pages to work on newer versions of Windows 10", "commits": ["fdd8937c0"], "section": "Server / Server Configuration", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-SERVER-CONFIG", "source_hash": "bb9f039c87da32566a87e3f111fdb9c3937a5034e7884f98f14678a2efd710d7", "section_path": ["Server", "Server Configuration"], "commit_groups": [["fdd8937c0"]], "identity_text": "Allow huge pages to work on newer versions of Windows 10 (Thomas Munro) This adds the special handling required to enable huge pages on newer versions of Windows 10.", "commit_aliases": ["fdd8937c0"], "source_commits": ["fdd8937c0"], "source_entry_id": "16.0/changes/061", "db_id": "1b7f0031c8ad76239c5aaea4f4138c43", "patch_ids": ["82be8231494ede0171d51caecdd09120"], "statement_hash": "3670be9081bb11795641c4a7c703a1f93e9aed73b6969394574c461b9f69daea", "relations": [], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-dbe0610cde3c4d86", "cves": [], "html": "<p>Add <a href=\"/docs/16/runtime-config-developer.html#GUC-DEBUG-IO-DIRECT\"><code>debug_io_direct</code></a> setting for developer usage (Thomas Munro, Andres Freund, Bharath Rupireddy) <a href=\"https://postgr.es/c/d4e71df6d\">§</a> <a href=\"https://postgr.es/c/319bae9a8\">§</a></p>\n<p>While primarily for developers, <a href=\"/docs/16/runtime-config-wal.html#GUC-WAL-SYNC-METHOD\"><code>wal_sync_method=open_sync</code></a>/<code>open_datasync</code> has been modified to not use direct <acronym>I/O</acronym> with <code>wal_level=minimal</code>; this is now enabled with <code>debug_io_direct=wal</code>.</p>", "text": "Add debug_io_direct setting for developer usage (Thomas Munro, Andres Freund, Bharath Rupireddy) § § While primarily for developers, wal_sync_method=open_sync/open_datasync has been modified to not use direct I/O with wal_level=minimal; this is now enabled with debug_io_direct=wal.", "title": "Add debug_io_direct setting for developer usage", "commits": ["319bae9a8", "d4e71df6d"], "section": "Server / Server Configuration", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-SERVER-CONFIG", "source_hash": "1da16ee3212b0ae045e96a255ce2ad8ee43aa5f18913873d5fec263f6b9cdb89", "section_path": ["Server", "Server Configuration"], "commit_groups": [["319bae9a8"], ["d4e71df6d"]], "identity_text": "Add debug_io_direct setting for developer usage (Thomas Munro, Andres Freund, Bharath Rupireddy) While primarily for developers, wal_sync_method=open_sync/open_datasync has been modified to not use direct I/O with wal_level=minimal; this is now enabled with debug_io_direct=wal.", "commit_aliases": ["319bae9a8", "d4e71df6d"], "source_commits": ["319bae9a8", "d4e71df6d"], "source_entry_id": "16.0/changes/062", "db_id": "39765899c7b863b9ca3cc92fd29a31bf", "patch_ids": ["2ad68fcf6ba7b4eed5b8dbe982b6876f", "8e0bbbe6b65939536898f87c7a4830d7"], "statement_hash": "c2f5039feb0ee6a6e017e36244281712887d64d005b71fa17bece34a7905c860", "relations": [], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-2b0c26c7403724f9", "cves": [], "html": "<p>Add function <a href=\"/docs/16/functions-admin.html#FUNCTIONS-ADMIN-BACKUP-TABLE\" title=\"Table 9.91. Backup Control Functions\"><code>pg_split_walfile_name()</code></a> to report the segment and timeline values of <acronym>WAL</acronym> file names (Bharath Rupireddy) <a href=\"https://postgr.es/c/cca186348\">§</a> <a href=\"https://postgr.es/c/13e0d7a60\">§</a></p>", "text": "Add function pg_split_walfile_name() to report the segment and timeline values of WAL file names (Bharath Rupireddy) § §", "title": "Add function pg_split_walfile_name() to report the segment and timeline values of WAL file names", "commits": ["13e0d7a60", "cca186348"], "section": "Server / Server Configuration", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-SERVER-CONFIG", "source_hash": "225749adc42f248149e3e803a1e39dadde34a7273d1186390685af1fd581a36f", "section_path": ["Server", "Server Configuration"], "commit_groups": [["13e0d7a60"], ["cca186348"]], "identity_text": "Add function pg_split_walfile_name() to report the segment and timeline values of WAL file names (Bharath Rupireddy)", "commit_aliases": ["13e0d7a60", "cca186348"], "source_commits": ["13e0d7a60", "cca186348"], "source_entry_id": "16.0/changes/063", "db_id": "cc81c01a03a0b092511e2e55a733989a", "patch_ids": ["9b5a74bdb50fe9df755f568081bb609b", "ec4fee97406983395c717a40fd9a387b"], "statement_hash": "dac390ecfaf656a0261c893fff6ca26689a53b2c1e114831b9125abdaa3342d0", "relations": [], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-181e26bca7c590c3", "cves": [], "html": "<p>Add support for regular expression matching on database and role entries in <code>pg_hba.conf</code> (Bertrand Drouvot) <a href=\"https://postgr.es/c/8fea86830\">§</a></p>\n<p>Regular expression patterns are prefixed with a slash. Database and role names that begin with slashes need to be double-quoted if referenced in <code>pg_hba.conf</code>.</p>", "text": "Add support for regular expression matching on database and role entries in pg_hba.conf (Bertrand Drouvot) § Regular expression patterns are prefixed with a slash. Database and role names that begin with slashes need to be double-quoted if referenced in pg_hba.conf.", "title": "Add support for regular expression matching on database and role entries in pg_hba.conf", "commits": ["8fea86830"], "section": "Server / pg_hba.conf", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-PG-HBA", "source_hash": "dc4d3a0828c6e573249ddd9ce52ef099f4d4c6ec2e97180b8a6458470ed34205", "section_path": ["Server", "pg_hba.conf"], "commit_groups": [["8fea86830"]], "identity_text": "Add support for regular expression matching on database and role entries in pg_hba.conf (Bertrand Drouvot) Regular expression patterns are prefixed with a slash. Database and role names that begin with slashes need to be double-quoted if referenced in pg_hba.conf.", "commit_aliases": ["8fea86830"], "source_commits": ["8fea86830"], "source_entry_id": "16.0/changes/064", "db_id": "e54df047ded401e698c4ab96935c0ad4", "patch_ids": ["feef69fd7ed7ca80663bf99f4cf85ef8"], "statement_hash": "81d2e2184769de9d7ad8efbbb87f842fd74c7d1ecb5081552aff1814618909d9", "relations": [], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-4f3aadb99967737e", "cves": [], "html": "<p>Improve user-column handling of <a href=\"/docs/16/runtime-config-file-locations.html\" title=\"20.2. File Locations\"><code>pg_ident.conf</code></a> to match <code>pg_hba.conf</code> (Jelte Fennema) <a href=\"https://postgr.es/c/efb6f4a4f\">§</a></p>\n<p>Specifically, add support for <code>all</code>, role membership with <code>+</code>, and regular expressions with a leading slash. Any user name that matches these patterns must be double-quoted.</p>", "text": "Improve user-column handling of pg_ident.conf to match pg_hba.conf (Jelte Fennema) § Specifically, add support for all, role membership with +, and regular expressions with a leading slash. Any user name that matches these patterns must be double-quoted.", "title": "Improve user-column handling of pg_ident.conf to match pg_hba.conf", "commits": ["efb6f4a4f"], "section": "Server / pg_hba.conf", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-PG-HBA", "source_hash": "23f769962b5f55b00ee49e2057d2969494026a774bdc39aa06711f15bf6ff051", "section_path": ["Server", "pg_hba.conf"], "commit_groups": [["efb6f4a4f"]], "identity_text": "Improve user-column handling of pg_ident.conf to match pg_hba.conf (Jelte Fennema) Specifically, add support for all, role membership with +, and regular expressions with a leading slash. Any user name that matches these patterns must be double-quoted.", "commit_aliases": ["efb6f4a4f"], "source_commits": ["efb6f4a4f"], "source_entry_id": "16.0/changes/065", "db_id": "137bcd8f1995b9a3326cbf5bbccd4ebc", "patch_ids": ["422b09e4748267c101169bb10505cb19"], "statement_hash": "8987ebd67c5f4529f17d426c2eb7c3b7a331d9fe9fb84374a37ffb2b04b8da30", "relations": [], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-49d06242c7da3f0f", "cves": [], "html": "<p>Allow include files in <code>pg_hba.conf</code> and <code>pg_ident.conf</code> (Julien Rouhaud) <a href=\"https://postgr.es/c/a54b658ce\">§</a></p>\n<p>These are controlled by <code>include</code>, <code>include_if_exists</code>, and <code>include_dir</code>. System views <a href=\"/docs/16/view-pg-hba-file-rules.html\" title=\"54.9. pg_hba_file_rules\"><code>pg_hba_file_rules</code></a> and <a href=\"/docs/16/view-pg-ident-file-mappings.html\" title=\"54.10. pg_ident_file_mappings\"><code>pg_ident_file_mappings</code></a> now display the file name.</p>", "text": "Allow include files in pg_hba.conf and pg_ident.conf (Julien Rouhaud) § These are controlled by include, include_if_exists, and include_dir. System views pg_hba_file_rules and pg_ident_file_mappings now display the file name.", "title": "Allow include files in pg_hba.conf and pg_ident.conf", "commits": ["a54b658ce"], "section": "Server / pg_hba.conf", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-PG-HBA", "source_hash": "19029c46e021a58ed87811c9ad36bdfd200b032bd477cfba858ba6a99da33cf9", "section_path": ["Server", "pg_hba.conf"], "commit_groups": [["a54b658ce"]], "identity_text": "Allow include files in pg_hba.conf and pg_ident.conf (Julien Rouhaud) These are controlled by include, include_if_exists, and include_dir. System views pg_hba_file_rules and pg_ident_file_mappings now display the file name.", "commit_aliases": ["a54b658ce"], "source_commits": ["a54b658ce"], "source_entry_id": "16.0/changes/066", "db_id": "264b412ce1e720e0e69182f215f4a768", "patch_ids": ["bf35c94a0eaefa83c07fd24f2bd4441e"], "statement_hash": "3aed4557c9f1b6b340440dff60c048c10f425faa1e03439b3644957c6a76278e", "relations": [], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-5e33645ecdf297ca", "cves": [], "html": "<p>Allow <code>pg_hba.conf</code> tokens to be of unlimited length (Tom Lane) <a href=\"https://postgr.es/c/de3f0e3fe\">§</a></p>", "text": "Allow pg_hba.conf tokens to be of unlimited length (Tom Lane) §", "title": "Allow pg_hba.conf tokens to be of unlimited length", "commits": ["de3f0e3fe"], "section": "Server / pg_hba.conf", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-PG-HBA", "source_hash": "4553af9234d427b40cdaff7b68e0d76495063a6c60451a35289ad85ba5b21d6c", "section_path": ["Server", "pg_hba.conf"], "commit_groups": [["0660f74e8", "1d031ad54", "288b4288c", "313ceda2f", "341996248", "38df84c65", "de3f0e3fe"]], "identity_text": "Allow pg_hba.conf tokens to be of unlimited length (Tom Lane)", "commit_aliases": ["0660f74e8", "1d031ad54", "288b4288c", "313ceda2f", "341996248", "38df84c65", "de3f0e3fe"], "source_commits": ["de3f0e3fe"], "source_entry_id": "16.0/changes/067", "db_id": "c86f7037f349c6b765e98f879e584db3", "patch_ids": ["98d67cdf3c0ead6326a2a33b279fe8d7"], "statement_hash": "3c415fdcb54d1537a22e1cc3eeb5ec2be3b9cad0862beea3ad16eb0d2d7e3956", "relations": [{"rule": 2, "type": "related", "target": "5052cdce2ff501e8882fe7b5bd665ea7", "evidence": {"same_day": false, "patch_ids": ["98d67cdf3c0ead6326a2a33b279fe8d7"]}}, {"rule": 2, "type": "related", "target": "9f4d00733ec0b39cef55b609e58feb5e", "evidence": {"same_day": false, "patch_ids": ["98d67cdf3c0ead6326a2a33b279fe8d7"]}}, {"rule": 2, "type": "related", "target": "bb6d76438d51fc5fa20cf73c0a0b64a3", "evidence": {"same_day": false, "patch_ids": ["98d67cdf3c0ead6326a2a33b279fe8d7"]}}, {"rule": 2, "type": "related", "target": "c0284c475e03c7f703126c3dcc072f1b", "evidence": {"same_day": false, "patch_ids": ["98d67cdf3c0ead6326a2a33b279fe8d7"]}}, {"rule": 2, "type": "related", "target": "d12f6a5e5ec54da016372459d525434d", "evidence": {"same_day": false, "patch_ids": ["98d67cdf3c0ead6326a2a33b279fe8d7"]}}], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": [{"db_id": "bb6d76438d51fc5fa20cf73c0a0b64a3", "kind": "related", "version": "15.4", "label": "15.4", "title": "Allow tokens up to 10240 bytes long in pg_hba.conf and pg_ident.conf", "evidence": {"same_day": false, "patch_ids": ["98d67cdf3c0ead6326a2a33b279fe8d7"]}, "url": "/docs/compare/?release=15.4#15.4-7454c50b73348dca", "source_url": "/docs/release/15.4/#id-1.11.6.21.5"}, {"db_id": "5052cdce2ff501e8882fe7b5bd665ea7", "kind": "related", "version": "14.9", "label": "14.9", "title": "Allow tokens up to 10240 bytes long in pg_hba.conf and pg_ident.conf", "evidence": {"same_day": false, "patch_ids": ["98d67cdf3c0ead6326a2a33b279fe8d7"]}, "url": "/docs/compare/?release=14.9#14.9-5bb3aebe0a3a7f93", "source_url": "/docs/release/14.9/#id-1.11.6.21.5"}, {"db_id": "9f4d00733ec0b39cef55b609e58feb5e", "kind": "related", "version": "13.12", "label": "13.12", "title": "Allow tokens up to 10240 bytes long in pg_hba.conf and pg_ident.conf", "evidence": {"same_day": false, "patch_ids": ["98d67cdf3c0ead6326a2a33b279fe8d7"]}, "url": "/docs/compare/?release=13.12#13.12-973d3bc2dbc69d58", "source_url": "/docs/release/13.12/#id-1.11.6.17.5"}, {"db_id": "c0284c475e03c7f703126c3dcc072f1b", "kind": "related", "version": "12.16", "label": "12.16", "title": "Allow tokens up to 10240 bytes long in pg_hba.conf and pg_ident.conf", "evidence": {"same_day": false, "patch_ids": ["98d67cdf3c0ead6326a2a33b279fe8d7"]}, "url": "/docs/compare/?release=12.16#12.16-4587afce7e4f52c0", "source_url": "/docs/release/12.16/#id-1.11.6.12.5"}, {"db_id": "d12f6a5e5ec54da016372459d525434d", "kind": "related", "version": "11.21", "label": "11.21", "title": "Allow tokens up to 10240 bytes long in pg_hba.conf and pg_ident.conf", "evidence": {"same_day": false, "patch_ids": ["98d67cdf3c0ead6326a2a33b279fe8d7"]}, "url": "/docs/compare/?release=11.21#11.21-ad309aebae83af08", "source_url": "/docs/release/11.21/#id-1.11.6.6.6"}]}, {"id": "16.0-0eeb7a9cb6a333a4", "cves": [], "html": "<p>Add rule and map numbers to the system view <a href=\"/docs/16/view-pg-hba-file-rules.html\" title=\"54.9. pg_hba_file_rules\"><code>pg_hba_file_rules</code></a> (Julien Rouhaud) <a href=\"https://postgr.es/c/c591300a8\">§</a></p>", "text": "Add rule and map numbers to the system view pg_hba_file_rules (Julien Rouhaud) §", "title": "Add rule and map numbers to the system view pg_hba_file_rules", "commits": ["c591300a8"], "section": "Server / pg_hba.conf", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-PG-HBA", "source_hash": "afafe2198e7ac0a4f8a731ecbb05a6f605f11961bb714088e6d1742ef34df9e2", "section_path": ["Server", "pg_hba.conf"], "commit_groups": [["c591300a8"]], "identity_text": "Add rule and map numbers to the system view pg_hba_file_rules (Julien Rouhaud)", "commit_aliases": ["c591300a8"], "source_commits": ["c591300a8"], "source_entry_id": "16.0/changes/068", "db_id": "2229ae93b82d29c06736cfc141cc3273", "patch_ids": ["edfc5306db049f20dd92b7c004000d49"], "statement_hash": "791f0d243767c1d37565c7a63a761b94eb91e04be6b9a2da6313a5c720d5f374", "relations": [], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-f3ead59376bf0baf", "cves": [], "html": "<p>Determine the default encoding from the locale when using <acronym>ICU</acronym> (Jeff Davis) <a href=\"https://postgr.es/c/c45dc7ffb\">§</a></p>\n<p>Previously the default was always <code>UTF-8</code>.</p>", "text": "Determine the default encoding from the locale when using ICU (Jeff Davis) § Previously the default was always UTF-8.", "title": "Determine the default encoding from the locale when using ICU", "commits": ["c45dc7ffb"], "section": "Server / Localization", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-LOCALIZATION", "source_hash": "92d3830fbc65c6ced6923f47b174eb0096d0077afc92bdc1c130ec05ea83e458", "section_path": ["Server", "Localization"], "commit_groups": [["c45dc7ffb"]], "identity_text": "Determine the default encoding from the locale when using ICU (Jeff Davis) Previously the default was always UTF-8.", "commit_aliases": ["c45dc7ffb"], "source_commits": ["c45dc7ffb"], "source_entry_id": "16.0/changes/069", "db_id": "b4aa045a132f1c2459be405e31782c32", "patch_ids": ["514d304513414b1cc3a47e03f3e559ed"], "statement_hash": "61a3cfd3ef790ba0ec4ebc3076cd863ba4c853d535c46a680cb346105ee58652", "relations": [], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-a9fe50870377ac41", "cves": [], "html": "<p>Have <a href=\"/docs/16/sql-createdatabase.html\" title=\"CREATE DATABASE\"><code>CREATE DATABASE</code></a> and <a href=\"/docs/16/sql-createcollation.html\" title=\"CREATE COLLATION\"><code>CREATE COLLATION</code></a>'s <code>LOCALE</code> options, and <a href=\"/docs/16/app-initdb.html\" title=\"initdb\"><span>initdb</span></a> and <a href=\"/docs/16/app-createdb.html\" title=\"createdb\"><span>createdb</span></a> <code>--locale</code> options, control non-<span>libc</span> collation providers (Jeff Davis)</p>\n<p>Previously they only controlled <span>libc</span> providers.</p>", "text": "Have CREATE DATABASE and CREATE COLLATION's LOCALE options, and initdb and createdb --locale options, control non-libc collation providers (Jeff Davis) Previously they only controlled libc providers.", "title": "Have CREATE DATABASE and CREATE COLLATION's LOCALE options, and initdb and createdb --locale options, control non-libc collation providers", "commits": [], "section": "Server / Localization", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-LOCALIZATION", "source_hash": "ae6dbfb963d8b839311e5c8ab6a08b6eacb9134ef13d49e347ff5a4a866d40db", "section_path": ["Server", "Localization"], "commit_groups": [], "identity_text": "Have CREATE DATABASE and CREATE COLLATION's LOCALE options, and initdb and createdb --locale options, control non-libc collation providers (Jeff Davis) Previously they only controlled libc providers.", "commit_aliases": [], "source_commits": [], "source_entry_id": "16.0/changes/070", "db_id": "fc679045a7c09fb78e592e29084b7587", "patch_ids": [], "statement_hash": "5906b7758c17689a876321eff2da743d4d496232db4595ab3cb75bf2a57caeb2", "relations": [], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-02033c30b1ca4815", "cves": [], "html": "<p>Add predefined collations <code>unicode</code> and <code>ucs_basic</code> (Peter Eisentraut) <a href=\"https://postgr.es/c/0d21d4b9b\">§</a></p>\n<p>This only works if <acronym>ICU</acronym> support is enabled.</p>", "text": "Add predefined collations unicode and ucs_basic (Peter Eisentraut) § This only works if ICU support is enabled.", "title": "Add predefined collations unicode and ucs_basic", "commits": ["0d21d4b9b"], "section": "Server / Localization", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-LOCALIZATION", "source_hash": "20af604f4cb3bba822a972b921f8f752b7e2504aa65cc3d1bd49b9ee18683fac", "section_path": ["Server", "Localization"], "commit_groups": [["0d21d4b9b"]], "identity_text": "Add predefined collations unicode and ucs_basic (Peter Eisentraut) This only works if ICU support is enabled.", "commit_aliases": ["0d21d4b9b"], "source_commits": ["0d21d4b9b"], "source_entry_id": "16.0/changes/071", "db_id": "25981cdbbdb9e53cb6cb3779c545ed69", "patch_ids": ["9d964204c00a5c1f974a11e7efa90097"], "statement_hash": "c08d26f23d5728910817d1df6632a507b6f4646a6c5818b3ce2e359a81fbb8cd", "relations": [], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-18ac210b823541a5", "cves": [], "html": "<p>Allow custom <acronym>ICU</acronym> collation rules to be created (Peter Eisentraut) <a href=\"https://postgr.es/c/30a53b792\">§</a></p>\n<p>This is done using <a href=\"/docs/16/sql-createcollation.html\" title=\"CREATE COLLATION\"><code>CREATE COLLATION</code></a>'s new <code>RULES</code> clause, as well as new options for <a href=\"/docs/16/sql-createdatabase.html\" title=\"CREATE DATABASE\"><code>CREATE DATABASE</code></a>, <a href=\"/docs/16/app-createdb.html\" title=\"createdb\"><span>createdb</span></a>, and <a href=\"/docs/16/app-initdb.html\" title=\"initdb\"><span>initdb</span></a>.</p>", "text": "Allow custom ICU collation rules to be created (Peter Eisentraut) § This is done using CREATE COLLATION's new RULES clause, as well as new options for CREATE DATABASE, createdb, and initdb.", "title": "Allow custom ICU collation rules to be created", "commits": ["30a53b792"], "section": "Server / Localization", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-LOCALIZATION", "source_hash": "f311a03f0764c83aa9beca8262cb841bc11a16381281457ea76d3aaad32efe4d", "section_path": ["Server", "Localization"], "commit_groups": [["30a53b792"]], "identity_text": "Allow custom ICU collation rules to be created (Peter Eisentraut) This is done using CREATE COLLATION's new RULES clause, as well as new options for CREATE DATABASE, createdb, and initdb.", "commit_aliases": ["30a53b792"], "source_commits": ["30a53b792"], "source_entry_id": "16.0/changes/072", "db_id": "c67cad00884429cc4d56836dabbe102f", "patch_ids": ["3a2b95a9a06078db12276727ded48d28"], "statement_hash": "6df5d0a55103855f713f2b9b17e434b0ed1dddc693c836256511744e2d83b8c6", "relations": [], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-8ac14bb4b9ddfe49", "cves": [], "html": "<p>Allow <span>Windows</span> to import system locales automatically (Juan José Santamaría Flecha) <a href=\"https://postgr.es/c/bf03cfd16\">§</a></p>\n<p>Previously, only <acronym>ICU</acronym> locales could be imported on <span>Windows</span>.</p>", "text": "Allow Windows to import system locales automatically (Juan José Santamaría Flecha) § Previously, only ICU locales could be imported on Windows.", "title": "Allow Windows to import system locales automatically", "commits": ["bf03cfd16"], "section": "Server / Localization", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-LOCALIZATION", "source_hash": "1af265b5c212c3639cc13d73bf99759881266358877b5472bc7afcbc91a5c866", "section_path": ["Server", "Localization"], "commit_groups": [["bf03cfd16"]], "identity_text": "Allow Windows to import system locales automatically (Juan José Santamaría Flecha) Previously, only ICU locales could be imported on Windows.", "commit_aliases": ["bf03cfd16"], "source_commits": ["bf03cfd16"], "source_entry_id": "16.0/changes/073", "db_id": "d003ced989446842e7b5f952f47d1884", "patch_ids": ["3513d766bbda0e27f7a9978041280e18"], "statement_hash": "07a431408c036210010ad9935e35d07d3d169bf8cbcef8c8c5e0e02d1cbd2086", "relations": [], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-819668f5f15fb834", "cves": [], "html": "<p>Allow <a href=\"/docs/16/logicaldecoding.html\" title=\"Chapter 49. Logical Decoding\">logical decoding</a> on standbys (Bertrand Drouvot, Andres Freund, Amit Khandekar) <a href=\"https://postgr.es/c/0fdab27ad\">§</a> <a href=\"https://postgr.es/c/be87200ef\">§</a> <a href=\"https://postgr.es/c/26669757b\">§</a></p>\n<p>Snapshot <acronym>WAL</acronym> records are required for logical slot creation but cannot be created on standbys. To avoid delays, the new function <a href=\"/docs/16/functions-admin.html#FUNCTIONS-SNAPSHOT-SYNCHRONIZATION-TABLE\" title=\"Table 9.94. Snapshot Synchronization Functions\"><code>pg_log_standby_snapshot()</code></a> allows creation of such records.</p>", "text": "Allow logical decoding on standbys (Bertrand Drouvot, Andres Freund, Amit Khandekar) § § § Snapshot WAL records are required for logical slot creation but cannot be created on standbys. To avoid delays, the new function pg_log_standby_snapshot() allows creation of such records.", "title": "Allow logical decoding on standbys", "commits": ["0fdab27ad", "26669757b", "be87200ef"], "section": "Logical Replication", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-LOGICAL", "source_hash": "2e14b489dd6cd161f55a55bd46c52d35926e897a9b53f840aafcffb24299b9e6", "section_path": ["Logical Replication"], "commit_groups": [["0fdab27ad"], ["26669757b"], ["be87200ef"]], "identity_text": "Allow logical decoding on standbys (Bertrand Drouvot, Andres Freund, Amit Khandekar) Snapshot WAL records are required for logical slot creation but cannot be created on standbys. To avoid delays, the new function pg_log_standby_snapshot() allows creation of such records.", "commit_aliases": ["0fdab27ad", "26669757b", "be87200ef"], "source_commits": ["0fdab27ad", "26669757b", "be87200ef"], "source_entry_id": "16.0/changes/074", "db_id": "fc6fc79acd79ba127e063457520a6efb", "patch_ids": ["165303359ee16d78f9d7dc0e0f749128", "1ab890d18fed84cd3ca0dbafbdadeac2", "4362f9237d55a23b7bdc253af001957c"], "statement_hash": "d7fc290b42dfe95ffe8c6d70ee7f074b57a7b07ec93f74bf167ead8a0f929231", "relations": [], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-693ca48cf842fc06", "cves": [], "html": "<p>Add server variable to control how logical decoding publishers transfer changes and how subscribers apply them (Shi Yu) <a href=\"https://postgr.es/c/5de94a041\">§</a> <a href=\"https://postgr.es/c/1e8b61735\">§</a> <a href=\"https://postgr.es/c/9f2213a7c\">§</a></p>\n<p>The variable is <a href=\"/docs/16/runtime-config-developer.html#GUC-DEBUG-LOGICAL-REPLICATION-STREAMING\"><code>debug_logical_replication_streaming</code></a>.</p>", "text": "Add server variable to control how logical decoding publishers transfer changes and how subscribers apply them (Shi Yu) § § § The variable is debug_logical_replication_streaming.", "title": "Add server variable to control how logical decoding publishers transfer changes and how subscribers apply them", "commits": ["1e8b61735", "5de94a041", "9f2213a7c"], "section": "Logical Replication", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-LOGICAL", "source_hash": "b3d291fe7ea92b806f009a082b1f24e7cfbb26b410e9083a70e89e2ba77740d8", "section_path": ["Logical Replication"], "commit_groups": [["1e8b61735"], ["5de94a041"], ["9f2213a7c"]], "identity_text": "Add server variable to control how logical decoding publishers transfer changes and how subscribers apply them (Shi Yu) The variable is debug_logical_replication_streaming.", "commit_aliases": ["1e8b61735", "5de94a041", "9f2213a7c"], "source_commits": ["1e8b61735", "5de94a041", "9f2213a7c"], "source_entry_id": "16.0/changes/075", "db_id": "48268c87153d25920abd9410a6f4c6a4", "patch_ids": ["2910c13d662d029361683603c914c705", "301b4cc02ebb4ca1bb3d49f2f233bfc8", "c81f8e93859cfdcf760861ab87cfd24f"], "statement_hash": "8d0c95fe082aafe62f2dc9de107da8027e2f005c7d9ece5816adec2d8632e16f", "relations": [], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-64966e29f959ef15", "cves": [], "html": "<p>Allow logical replication initial table synchronization to copy rows in binary format (Melih Mutlu) <a href=\"https://postgr.es/c/ecb696527\">§</a></p>\n<p>This is only possible for subscriptions marked as binary.</p>", "text": "Allow logical replication initial table synchronization to copy rows in binary format (Melih Mutlu) § This is only possible for subscriptions marked as binary.", "title": "Allow logical replication initial table synchronization to copy rows in binary format", "commits": ["ecb696527"], "section": "Logical Replication", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-LOGICAL", "source_hash": "180167454b62cff42a55b4764041c0f3976cbff14a9aaa4512a6a6bab08efc26", "section_path": ["Logical Replication"], "commit_groups": [["ecb696527"]], "identity_text": "Allow logical replication initial table synchronization to copy rows in binary format (Melih Mutlu) This is only possible for subscriptions marked as binary.", "commit_aliases": ["ecb696527"], "source_commits": ["ecb696527"], "source_entry_id": "16.0/changes/076", "db_id": "2e40bd0cedd5d75513af5991297f2320", "patch_ids": ["0ff2ce3757263c87081e946022fd6107"], "statement_hash": "5c043ffd493ffb9998fc5b1200816cabc1fdfbb25c897608ea40c614df459069", "relations": [], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-0469c82ddaecaeb5", "cves": [], "html": "<p>Allow parallel application of logical replication (Hou Zhijie, Wang Wei, Amit Kapila) <a href=\"https://postgr.es/c/216a78482\">§</a> <a href=\"https://postgr.es/c/cd06ccd78\">§</a> <a href=\"https://postgr.es/c/fce003cfd\">§</a></p>\n<p>The <a href=\"/docs/16/sql-createsubscription.html\" title=\"CREATE SUBSCRIPTION\"><code>CREATE SUBSCRIPTION</code></a> <code>STREAMING</code> option now supports <code>parallel</code> to enable application of large transactions by parallel workers. The number of parallel workers is controlled by the new server variable <a href=\"/docs/16/runtime-config-replication.html#GUC-MAX-PARALLEL-APPLY-WORKERS-PER-SUBSCRIPTION\"><code>max_parallel_apply_workers_per_subscription</code></a>. Wait events <a href=\"/docs/16/monitoring-stats.html#WAIT-EVENT-ACTIVITY-TABLE\" title=\"Table 28.5. Wait Events of Type Activity\"><code>LogicalParallelApplyMain</code></a>, <code>LogicalParallelApplyStateChange</code>, and <code>LogicalApplySendData</code> were also added. Column <code>leader_pid</code> was added to system view <a href=\"/docs/16/monitoring-stats.html#MONITORING-PG-STAT-SUBSCRIPTION\" title=\"28.2.8. pg_stat_subscription\"><code>pg_stat_subscription</code></a> to track parallel activity.</p>", "text": "Allow parallel application of logical replication (Hou Zhijie, Wang Wei, Amit Kapila) § § § The CREATE SUBSCRIPTION STREAMING option now supports parallel to enable application of large transactions by parallel workers. The number of parallel workers is controlled by the new server variable max_parallel_apply_workers_per_subscription. Wait events LogicalParallelApplyMain, LogicalParallelApplyStateChange, and LogicalApplySendData were also added. Column leader_pid was added to system view pg_stat_subscription to track parallel activity.", "title": "Allow parallel application of logical replication", "commits": ["216a78482", "cd06ccd78", "fce003cfd"], "section": "Logical Replication", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-LOGICAL", "source_hash": "c2259e079b46334af3956fe847ba5634f1b9adaaab60f570791a6e66ad9e6219", "section_path": ["Logical Replication"], "commit_groups": [["216a78482"], ["cd06ccd78"], ["fce003cfd"]], "identity_text": "Allow parallel application of logical replication (Hou Zhijie, Wang Wei, Amit Kapila) The CREATE SUBSCRIPTION STREAMING option now supports parallel to enable application of large transactions by parallel workers. The number of parallel workers is controlled by the new server variable max_parallel_apply_workers_per_subscription. Wait events LogicalParallelApplyMain, LogicalParallelApplyStateChange, and LogicalApplySendData were also added. Column leader_pid was added to system view pg_stat_subscription to track parallel activity.", "commit_aliases": ["216a78482", "cd06ccd78", "fce003cfd"], "source_commits": ["216a78482", "cd06ccd78", "fce003cfd"], "source_entry_id": "16.0/changes/077", "db_id": "35241d393cd22ca1ec033d70cabd3d43", "patch_ids": ["5c66bffc2dea7be16c6d46585b4dcdf2", "83d89cca3d4f385b52c60c3cb0dac087", "cd9b24935e2d7cd28e46e082739d534d"], "statement_hash": "f5702dd5432b4c1384eb37c8ae2a8748641ebad237c390425917e3555eb18bb8", "relations": [], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-d6ddc2cb8c83ea80", "cves": [], "html": "<p>Improve performance for <a href=\"/docs/16/logical-replication-architecture.html\" title=\"31.7. Architecture\">logical replication apply</a> without a primary key (Onder Kalaci, Amit Kapila) <a href=\"https://postgr.es/c/89e46da5e\">§</a></p>\n<p>Specifically, <code>REPLICA IDENTITY FULL</code> can now use btree indexes rather than sequentially scanning the table to find matches.</p>", "text": "Improve performance for logical replication apply without a primary key (Onder Kalaci, Amit Kapila) § Specifically, REPLICA IDENTITY FULL can now use btree indexes rather than sequentially scanning the table to find matches.", "title": "Improve performance for logical replication apply without a primary key", "commits": ["89e46da5e"], "section": "Logical Replication", "category": "performance", "source_url": "/docs/release/16.0/#RELEASE-16-LOGICAL", "source_hash": "f5816a96704055b35a5e312cf30803ba5ad83ef50c43bf5cc7dd0e68d68736e3", "section_path": ["Logical Replication"], "commit_groups": [["89e46da5e"]], "identity_text": "Improve performance for logical replication apply without a primary key (Onder Kalaci, Amit Kapila) Specifically, REPLICA IDENTITY FULL can now use btree indexes rather than sequentially scanning the table to find matches.", "commit_aliases": ["89e46da5e"], "source_commits": ["89e46da5e"], "source_entry_id": "16.0/changes/078", "db_id": "8ba51f9147ee3d5127aaf713a1d0f31e", "patch_ids": ["aa702543a88bf9a97c7655547c27dae9"], "statement_hash": "96b7fe351c3004cbd8d667a06bfd726af45dcd49e5ab26f0d1d4905665b419f7", "relations": [], "version": "16.0", "category_label": "Performance", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-d5708255bfbe930d", "cves": [], "html": "<p>Allow logical replication subscribers to process only changes that have no origin (Vignesh C, Amit Kapila) <a href=\"https://postgr.es/c/366283961\">§</a> <a href=\"https://postgr.es/c/875693019\">§</a></p>\n<p>This can be used to avoid replication loops. This is controlled by the new <code>CREATE SUBSCRIPTION ... ORIGIN</code> option.</p>", "text": "Allow logical replication subscribers to process only changes that have no origin (Vignesh C, Amit Kapila) § § This can be used to avoid replication loops. This is controlled by the new CREATE SUBSCRIPTION ... ORIGIN option.", "title": "Allow logical replication subscribers to process only changes that have no origin", "commits": ["366283961", "875693019"], "section": "Logical Replication", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-LOGICAL", "source_hash": "ce360d4e0fb1e8f87a715bb80c24a8b10a816631dd997c4bf75d514be32fecbf", "section_path": ["Logical Replication"], "commit_groups": [["366283961"], ["875693019"]], "identity_text": "Allow logical replication subscribers to process only changes that have no origin (Vignesh C, Amit Kapila) This can be used to avoid replication loops. This is controlled by the new CREATE SUBSCRIPTION ... ORIGIN option.", "commit_aliases": ["366283961", "875693019"], "source_commits": ["366283961", "875693019"], "source_entry_id": "16.0/changes/079", "db_id": "8a43b73722220977bf930e94ea0af4e9", "patch_ids": ["71aada2d70b03056781b29646875974d", "bd9da86a24665b84d1b8e3abcc05ba60"], "statement_hash": "145dad94dd1d8c839f3e14150b6b484d9eadf80e590b245c2ac797a62a05f028", "relations": [], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-bda2b1d1dded7956", "cves": [], "html": "<p>Perform logical replication <a href=\"/docs/16/sql-select.html\" title=\"SELECT\"><code>SELECT</code></a> and <acronym>DML</acronym> actions as the table owner (Robert Haas) <a href=\"https://postgr.es/c/1e10d49b6\">§</a> <a href=\"https://postgr.es/c/482675987\">§</a></p>\n<p>This improves security and now requires subscription owners to be either superusers or to have <a href=\"/docs/16/sql-set-role.html\" title=\"SET ROLE\"><code>SET ROLE</code></a> permission on all roles owning tables in the replication set. The previous behavior of performing all operations as the subscription owner can be enabled with the subscription <a href=\"/docs/16/sql-createsubscription.html\" title=\"CREATE SUBSCRIPTION\"><code>run_as_owner</code></a> option.</p>", "text": "Perform logical replication SELECT and DML actions as the table owner (Robert Haas) § § This improves security and now requires subscription owners to be either superusers or to have SET ROLE permission on all roles owning tables in the replication set. The previous behavior of performing all operations as the subscription owner can be enabled with the subscription run_as_owner option.", "title": "Perform logical replication SELECT and DML actions as the table owner", "commits": ["1e10d49b6", "482675987"], "section": "Logical Replication", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-LOGICAL", "source_hash": "c1978a65d4122e6e826018e7eae82c66e241e9e360ffb803364f77b0e4cac6ef", "section_path": ["Logical Replication"], "commit_groups": [["1e10d49b6"], ["482675987"]], "identity_text": "Perform logical replication SELECT and DML actions as the table owner (Robert Haas) This improves security and now requires subscription owners to be either superusers or to have SET ROLE permission on all roles owning tables in the replication set. The previous behavior of performing all operations as the subscription owner can be enabled with the subscription run_as_owner option.", "commit_aliases": ["1e10d49b6", "482675987"], "source_commits": ["1e10d49b6", "482675987"], "source_entry_id": "16.0/changes/080", "db_id": "aa1ea3aebe0dac80a1e918a1c2847bca", "patch_ids": ["06e31a265f18d2aa8f0e146808441665", "852db09e88f98f1fbc8338148813c35b"], "statement_hash": "7698b1d0004c2161ed3c8098213803b645f072445e127ff38ec2b0e8b96d3759", "relations": [], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-b983a1ead04784a8", "cves": [], "html": "<p>Have <a href=\"/docs/16/runtime-config-replication.html#GUC-WAL-RETRIEVE-RETRY-INTERVAL\"><code>wal_retrieve_retry_interval</code></a> operate on a per-subscription basis (Nathan Bossart) <a href=\"https://postgr.es/c/5a3a95385\">§</a></p>\n<p>Previously the retry time was applied globally. This also adds wait events <a href=\"/docs/16/monitoring-stats.html#WAIT-EVENT-LWLOCK-TABLE\" title=\"Table 28.12. Wait Events of Type LWLock\">&gt;<code>LogicalRepLauncherDSA</code></a> and <code>LogicalRepLauncherHash</code>.</p>", "text": "Have wal_retrieve_retry_interval operate on a per-subscription basis (Nathan Bossart) § Previously the retry time was applied globally. This also adds wait events >LogicalRepLauncherDSA and LogicalRepLauncherHash.", "title": "Have wal_retrieve_retry_interval operate on a per-subscription basis", "commits": ["5a3a95385"], "section": "Logical Replication", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-LOGICAL", "source_hash": "e4cf8a8f891e46ab45b6c57cd7091ff37f71ba92019cf77df705274fcdb8dd9a", "section_path": ["Logical Replication"], "commit_groups": [["5a3a95385"]], "identity_text": "Have wal_retrieve_retry_interval operate on a per-subscription basis (Nathan Bossart) Previously the retry time was applied globally. This also adds wait events >LogicalRepLauncherDSA and LogicalRepLauncherHash.", "commit_aliases": ["5a3a95385"], "source_commits": ["5a3a95385"], "source_entry_id": "16.0/changes/081", "db_id": "c0d17db66fb8440e6c90578c2619ed26", "patch_ids": ["7b2740a79739093e6accbe2a534129ca"], "statement_hash": "2767fae0dffd49f214a489873ed6b73b310657a2db010de1928985e5cb631870", "relations": [], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-24be833834972350", "cves": [], "html": "<p>Add <a href=\"/docs/16/sql-explain.html\" title=\"EXPLAIN\"><code>EXPLAIN</code></a> option <code>GENERIC_PLAN</code> to display the generic plan for a parameterized query (Laurenz Albe) <a href=\"https://postgr.es/c/3c05284d8\">§</a></p>", "text": "Add EXPLAIN option GENERIC_PLAN to display the generic plan for a parameterized query (Laurenz Albe) §", "title": "Add EXPLAIN option GENERIC_PLAN to display the generic plan for a parameterized query", "commits": ["3c05284d8"], "section": "Utility Commands", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-UTILITY", "source_hash": "0e9504b699da3e3696922eb9f07124ecace8b3905a2b69c334344acd79f3542d", "section_path": ["Utility Commands"], "commit_groups": [["3c05284d8"]], "identity_text": "Add EXPLAIN option GENERIC_PLAN to display the generic plan for a parameterized query (Laurenz Albe)", "commit_aliases": ["3c05284d8"], "source_commits": ["3c05284d8"], "source_entry_id": "16.0/changes/082", "db_id": "b4a01fe5ffbbc906a764634d6009d2a5", "patch_ids": ["be35477f72bff094b94677b8cd683be1"], "statement_hash": "48d13d5c87cc1801eb449ed30d12f3a3437a11adbbd5620cf99e353a8151b83c", "relations": [], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-dbd0128320fb9fe7", "cves": [], "html": "<p>Allow a <a href=\"/docs/16/sql-copy.html\" title=\"COPY\"><code>COPY FROM</code></a> value to map to a column's <code>DEFAULT</code> (Israel Barth Rubio) <a href=\"https://postgr.es/c/9f8377f7a\">§</a></p>", "text": "Allow a COPY FROM value to map to a column's DEFAULT (Israel Barth Rubio) §", "title": "Allow a COPY FROM value to map to a column's DEFAULT", "commits": ["9f8377f7a"], "section": "Utility Commands", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-UTILITY", "source_hash": "10eeb5a25fe1332729eeccff10f21605d421c576b877ef36679c285456ecb896", "section_path": ["Utility Commands"], "commit_groups": [["9f8377f7a"]], "identity_text": "Allow a COPY FROM value to map to a column's DEFAULT (Israel Barth Rubio)", "commit_aliases": ["9f8377f7a"], "source_commits": ["9f8377f7a"], "source_entry_id": "16.0/changes/083", "db_id": "d27772796eb471693aeb43a76ae0585d", "patch_ids": ["83f2d72f33ab6b0c7ee1e77356024528"], "statement_hash": "368e2ee1df687962a3d662ce7aa68b41ef9fcd377023603bb8d7131e8ad6a8ff", "relations": [], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-4d1df2b604934fa0", "cves": [], "html": "<p>Allow <a href=\"/docs/16/sql-copy.html\" title=\"COPY\"><code>COPY</code></a> into foreign tables to add rows in batches (Andrey Lepikhov, Etsuro Fujita) <a href=\"https://postgr.es/c/97da48246\">§</a></p>\n<p>This is controlled by the <a href=\"/docs/16/postgres-fdw.html\" title=\"F.38. postgres_fdw — access data stored in external PostgreSQL servers\"><span>postgres_fdw</span></a> option <a href=\"/docs/16/postgres-fdw.html#POSTGRES-FDW-OPTIONS-COST-ESTIMATION\" title=\"F.38.1.3. Cost Estimation Options\"><code>batch_size</code></a>.</p>", "text": "Allow COPY into foreign tables to add rows in batches (Andrey Lepikhov, Etsuro Fujita) § This is controlled by the postgres_fdw option batch_size.", "title": "Allow COPY into foreign tables to add rows in batches", "commits": ["97da48246"], "section": "Utility Commands", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-UTILITY", "source_hash": "e82e65c036b39eb2bcbc911d147d723bd2ceea4facb37d0ee4ea8114ff7588c1", "section_path": ["Utility Commands"], "commit_groups": [["97da48246"]], "identity_text": "Allow COPY into foreign tables to add rows in batches (Andrey Lepikhov, Etsuro Fujita) This is controlled by the postgres_fdw option batch_size.", "commit_aliases": ["97da48246"], "source_commits": ["97da48246"], "source_entry_id": "16.0/changes/084", "db_id": "d95de3df464af40951a11e2ac403c964", "patch_ids": ["7e55f1877ed7124325748d313ae62487"], "statement_hash": "184b8039a6d4b92919728af177525e61b6abeeedd31224b39cc38ecbb9b7c523", "relations": [], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-d125c1afba8d7c5a", "cves": [], "html": "<p>Allow the <code>STORAGE</code> type to be specified by <a href=\"/docs/16/sql-createtable.html\" title=\"CREATE TABLE\"><code>CREATE TABLE</code></a> (Teodor Sigaev, Aleksander Alekseev) <a href=\"https://postgr.es/c/784cedda0\">§</a> <a href=\"https://postgr.es/c/b9424d014\">§</a></p>\n<p>Previously only <a href=\"/docs/16/sql-altertable.html\" title=\"ALTER TABLE\"><code>ALTER TABLE</code></a> could control this.</p>", "text": "Allow the STORAGE type to be specified by CREATE TABLE (Teodor Sigaev, Aleksander Alekseev) § § Previously only ALTER TABLE could control this.", "title": "Allow the STORAGE type to be specified by CREATE TABLE", "commits": ["784cedda0", "b9424d014"], "section": "Utility Commands", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-UTILITY", "source_hash": "da33fc43ebcb529218028cf38710f53f999ba791a627a0f948b767242554fe9f", "section_path": ["Utility Commands"], "commit_groups": [["784cedda0"], ["b9424d014"]], "identity_text": "Allow the STORAGE type to be specified by CREATE TABLE (Teodor Sigaev, Aleksander Alekseev) Previously only ALTER TABLE could control this.", "commit_aliases": ["784cedda0", "b9424d014"], "source_commits": ["784cedda0", "b9424d014"], "source_entry_id": "16.0/changes/085", "db_id": "6ca5c2476e02ff24249ab198b5c68c52", "patch_ids": ["5356c7349d9c510450b3104935cb41b9", "cadac9a6ec60fec7523d064a6884b6ff"], "statement_hash": "1ae8e7d7e80282d48eb7148194d5132f26e95fa570907e1812008924f6e509d3", "relations": [], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-5230a56b1200db63", "cves": [], "html": "<p>Allow <a href=\"/docs/16/sql-createtrigger.html\" title=\"CREATE TRIGGER\">truncate triggers</a> on foreign tables (Yugo Nagata) <a href=\"https://postgr.es/c/3b00a944a\">§</a></p>", "text": "Allow truncate triggers on foreign tables (Yugo Nagata) §", "title": "Allow truncate triggers on foreign tables", "commits": ["3b00a944a"], "section": "Utility Commands", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-UTILITY", "source_hash": "67a466dc9e07cd06b290c8b9c33aa1d85468dee8420d92b06dbd1d636cc94e4f", "section_path": ["Utility Commands"], "commit_groups": [["3b00a944a"]], "identity_text": "Allow truncate triggers on foreign tables (Yugo Nagata)", "commit_aliases": ["3b00a944a"], "source_commits": ["3b00a944a"], "source_entry_id": "16.0/changes/086", "db_id": "693b5ff7c3a180f56ffc9a8a6fb40aaf", "patch_ids": ["c704d229ce4595b4d27aa4db0c1c0f23"], "statement_hash": "f47f23c42bb3e6f146cb6956a37997c1376a309e13a324ea2c35ab101524a5b3", "relations": [], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-46a6cee75913a902", "cves": [], "html": "<p>Allow <a href=\"/docs/16/sql-vacuum.html\" title=\"VACUUM\"><code>VACUUM</code></a> and <a href=\"/docs/16/app-vacuumdb.html\" title=\"vacuumdb\"><span>vacuumdb</span></a> to only process <a href=\"/docs/16/storage-toast.html\" title=\"73.2. TOAST\"><code>TOAST</code></a> tables (Nathan Bossart) <a href=\"https://postgr.es/c/4211fbd84\">§</a></p>\n<p>This is accomplished by having <a href=\"/docs/16/sql-vacuum.html\" title=\"VACUUM\"><code>VACUUM</code></a> turn off <code>PROCESS_MAIN</code> or by <a href=\"/docs/16/app-vacuumdb.html\" title=\"vacuumdb\"><span>vacuumdb</span></a> using the <code>--no-process-main</code> option.</p>", "text": "Allow VACUUM and vacuumdb to only process TOAST tables (Nathan Bossart) § This is accomplished by having VACUUM turn off PROCESS_MAIN or by vacuumdb using the --no-process-main option.", "title": "Allow VACUUM and vacuumdb to only process TOAST tables", "commits": ["4211fbd84"], "section": "Utility Commands", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-UTILITY", "source_hash": "e4fc105e50a975660157205cd01b24fc508da246165330b7c5a1b2e607fd98a1", "section_path": ["Utility Commands"], "commit_groups": [["4211fbd84"]], "identity_text": "Allow VACUUM and vacuumdb to only process TOAST tables (Nathan Bossart) This is accomplished by having VACUUM turn off PROCESS_MAIN or by vacuumdb using the --no-process-main option.", "commit_aliases": ["4211fbd84"], "source_commits": ["4211fbd84"], "source_entry_id": "16.0/changes/087", "db_id": "373ca3287c1ded42d79d933db2353ce3", "patch_ids": ["5a9c00a57be8ab695142f015c7fdff59"], "statement_hash": "c2987dfaf72ae0e47e1668ff6a1a30860a4dea4c27debc090c792b153adbc4ef", "relations": [], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-1267728166d02d99", "cves": [], "html": "<p>Add <a href=\"/docs/16/sql-vacuum.html\" title=\"VACUUM\"><code>VACUUM</code></a> options to skip or update all <a href=\"/docs/16/routine-vacuuming.html#VACUUM-FOR-WRAPAROUND\" title=\"25.1.5. Preventing Transaction ID Wraparound Failures\">frozen</a> statistics (Tom Lane, Nathan Bossart) <a href=\"https://postgr.es/c/a46a7011b\">§</a></p>\n<p>The options are <code>SKIP_DATABASE_STATS</code> and <code>ONLY_DATABASE_STATS</code>.</p>", "text": "Add VACUUM options to skip or update all frozen statistics (Tom Lane, Nathan Bossart) § The options are SKIP_DATABASE_STATS and ONLY_DATABASE_STATS.", "title": "Add VACUUM options to skip or update all frozen statistics", "commits": ["a46a7011b"], "section": "Utility Commands", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-UTILITY", "source_hash": "114478504c527c58479419c581c463959e5127ce6fe68f6fb7b77bedeba900e5", "section_path": ["Utility Commands"], "commit_groups": [["a46a7011b"]], "identity_text": "Add VACUUM options to skip or update all frozen statistics (Tom Lane, Nathan Bossart) The options are SKIP_DATABASE_STATS and ONLY_DATABASE_STATS.", "commit_aliases": ["a46a7011b"], "source_commits": ["a46a7011b"], "source_entry_id": "16.0/changes/088", "db_id": "e136e43acbe4861285a36e1d2974b349", "patch_ids": ["7ef9b10294fcd9c5eaca0c87b7436e1a"], "statement_hash": "02713986409505385485caf1cbe9cc7c09ceeb4098cb4414e133d7659011f335", "relations": [{"rule": 2, "type": "related", "target": "14e919445c15a22f53716118595810d3", "evidence": {"same_day": true, "patch_ids": ["7ef9b10294fcd9c5eaca0c87b7436e1a"], "ambiguous_patch_ids": ["7ef9b10294fcd9c5eaca0c87b7436e1a"]}}], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": [{"db_id": "14e919445c15a22f53716118595810d3", "kind": "related", "version": "16.0", "label": "16.0", "title": "Use new VACUUM options to improve the performance of vacuumdb", "evidence": {"same_day": true, "patch_ids": ["7ef9b10294fcd9c5eaca0c87b7436e1a"], "ambiguous_patch_ids": ["7ef9b10294fcd9c5eaca0c87b7436e1a"]}, "url": "/docs/compare/?release=16.0#16.0-257e374fb0d63799", "source_url": "/docs/release/16.0/#RELEASE-16-SERVER-APPS"}]}, {"id": "16.0-7d8ce5f7ef6c52d0", "cves": [], "html": "<p>Change <a href=\"/docs/16/sql-reindex.html\" title=\"REINDEX\"><code>REINDEX DATABASE</code></a> and <a href=\"/docs/16/sql-reindex.html\" title=\"REINDEX\"><code>REINDEX SYSTEM</code></a> to no longer require an argument (Simon Riggs) <a href=\"https://postgr.es/c/2cbc3c17a\">§</a> <a href=\"https://postgr.es/c/0a5f06b84\">§</a></p>\n<p>Previously the database name had to be specified.</p>", "text": "Change REINDEX DATABASE and REINDEX SYSTEM to no longer require an argument (Simon Riggs) § § Previously the database name had to be specified.", "title": "Change REINDEX DATABASE and REINDEX SYSTEM to no longer require an argument", "commits": ["0a5f06b84", "2cbc3c17a"], "section": "Utility Commands", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-UTILITY", "source_hash": "e035b9e1e70809bff54527a7e3d70be9050011107eb7f150dde9386006ab18e6", "section_path": ["Utility Commands"], "commit_groups": [["0a5f06b84"], ["2cbc3c17a"]], "identity_text": "Change REINDEX DATABASE and REINDEX SYSTEM to no longer require an argument (Simon Riggs) Previously the database name had to be specified.", "commit_aliases": ["0a5f06b84", "2cbc3c17a"], "source_commits": ["0a5f06b84", "2cbc3c17a"], "source_entry_id": "16.0/changes/089", "db_id": "cb5715aa1fddf34ed43b90514b03bc21", "patch_ids": ["92844ce33747d7e2426d82ea02840c62", "e53caa2334bbd1e5befcc0bdae91cb58"], "statement_hash": "bfbe5b5c1384c5857431b2b2b3a46ced6aa74870b3ca9c9659d2f27a6005caee", "relations": [{"rule": 2, "type": "related", "target": "c7098ee16ce798a7dcd85cd97890fc70", "evidence": {"same_day": true, "patch_ids": ["92844ce33747d7e2426d82ea02840c62", "e53caa2334bbd1e5befcc0bdae91cb58"]}}], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": [{"db_id": "c7098ee16ce798a7dcd85cd97890fc70", "kind": "related", "version": "16.0", "label": "16.0", "title": "Change REINDEX DATABASE and reindexdb to not process indexes on system catalogs", "evidence": {"same_day": true, "patch_ids": ["92844ce33747d7e2426d82ea02840c62", "e53caa2334bbd1e5befcc0bdae91cb58"]}, "url": "/docs/compare/?release=16.0#16.0-c55edd8a8feeef53", "source_url": "/docs/release/16.0/#RELEASE-16-MIGRATION"}]}, {"id": "16.0-32a0b5199feb99e8", "cves": [], "html": "<p>Allow <a href=\"/docs/16/sql-createstatistics.html\" title=\"CREATE STATISTICS\"><code>CREATE STATISTICS</code></a> to generate a statistics name if none is specified (Simon Riggs) <a href=\"https://postgr.es/c/624aa2a13\">§</a></p>", "text": "Allow CREATE STATISTICS to generate a statistics name if none is specified (Simon Riggs) §", "title": "Allow CREATE STATISTICS to generate a statistics name if none is specified", "commits": ["624aa2a13"], "section": "Utility Commands", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-UTILITY", "source_hash": "4e27420dc8863b745b148996af99f89a99fe0c6152dc9d120cedf87f33da7ccb", "section_path": ["Utility Commands"], "commit_groups": [["624aa2a13"]], "identity_text": "Allow CREATE STATISTICS to generate a statistics name if none is specified (Simon Riggs)", "commit_aliases": ["624aa2a13"], "source_commits": ["624aa2a13"], "source_entry_id": "16.0/changes/090", "db_id": "f8f0ce9d49f0d5818d04768382f1524e", "patch_ids": ["1c380d8f89495e67440d3bb9a28c1e1a"], "statement_hash": "26fd60ed3dabf59fb1e12eb8a91833a45e5e0e6e2a6f14ff21ffa2f946e11501", "relations": [], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-1618d7f00ac3a60f", "cves": [], "html": "<p>Allow non-decimal <a href=\"/docs/16/sql-syntax-lexical.html#SQL-SYNTAX-BIT-STRINGS\" title=\"4.1.2.5. Bit-String Constants\">integer literals</a> (Peter Eisentraut) <a href=\"https://postgr.es/c/6fcda9aba\">§</a></p>\n<p>For example, <code>0x42F</code>, <code>0o273</code>, and <code>0b100101</code>.</p>", "text": "Allow non-decimal integer literals (Peter Eisentraut) § For example, 0x42F, 0o273, and 0b100101.", "title": "Allow non-decimal integer literals", "commits": ["6fcda9aba"], "section": "Data Types", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-DATATYPES", "source_hash": "1e8d0d6e21815f254a2963f1b2ad4691ba4900cc4eb7cc740c3dc3c249428ea1", "section_path": ["Data Types"], "commit_groups": [["6fcda9aba"]], "identity_text": "Allow non-decimal integer literals (Peter Eisentraut) For example, 0x42F, 0o273, and 0b100101.", "commit_aliases": ["6fcda9aba"], "source_commits": ["6fcda9aba"], "source_entry_id": "16.0/changes/091", "db_id": "80593abbc195599f9bff43cca073d7fa", "patch_ids": ["21be5cabd83c4ec7ff37efe369cca0d4"], "statement_hash": "d173030a69368131cda14ac16e5452c46055a914ecb75e343700fcc2e4571869", "relations": [], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-ea31ea395b3e7cba", "cves": [], "html": "<p>Allow <a href=\"/docs/16/datatype-numeric.html\" title=\"8.1. Numeric Types\"><code>NUMERIC</code></a> to process hexadecimal, octal, and binary integers of any size (Dean Rasheed) <a href=\"https://postgr.es/c/6dfacbf72\">§</a></p>\n<p>Previously only unquoted eight-byte integers were supported with these non-decimal bases.</p>", "text": "Allow NUMERIC to process hexadecimal, octal, and binary integers of any size (Dean Rasheed) § Previously only unquoted eight-byte integers were supported with these non-decimal bases.", "title": "Allow NUMERIC to process hexadecimal, octal, and binary integers of any size", "commits": ["6dfacbf72"], "section": "Data Types", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-DATATYPES", "source_hash": "f0916df08154e66510c0cedb912e3ab13c380bead5dfe82b9a0fd849365f7fb8", "section_path": ["Data Types"], "commit_groups": [["6dfacbf72"]], "identity_text": "Allow NUMERIC to process hexadecimal, octal, and binary integers of any size (Dean Rasheed) Previously only unquoted eight-byte integers were supported with these non-decimal bases.", "commit_aliases": ["6dfacbf72"], "source_commits": ["6dfacbf72"], "source_entry_id": "16.0/changes/092", "db_id": "7bb886e582680af9804b547b84f97599", "patch_ids": ["209c3a100a28e1974be2db481536f411"], "statement_hash": "93d6f0952a52f6f730637a82d5c981e4f7c8be1385eaa836e571159b5582b2d0", "relations": [], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-bc123cded4eb6d01", "cves": [], "html": "<p>Allow underscores in integer and numeric <a href=\"/docs/16/sql-syntax-lexical.html#SQL-SYNTAX-BIT-STRINGS\" title=\"4.1.2.5. Bit-String Constants\">constants</a> (Peter Eisentraut, Dean Rasheed) <a href=\"https://postgr.es/c/faff8f8e4\">§</a></p>\n<p>This can improve readability for long strings of digits.</p>", "text": "Allow underscores in integer and numeric constants (Peter Eisentraut, Dean Rasheed) § This can improve readability for long strings of digits.", "title": "Allow underscores in integer and numeric constants", "commits": ["faff8f8e4"], "section": "Data Types", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-DATATYPES", "source_hash": "398452e094762ba54012240eb995795e7f9a832bebc7062f3a5ca576e971ccb7", "section_path": ["Data Types"], "commit_groups": [["faff8f8e4"]], "identity_text": "Allow underscores in integer and numeric constants (Peter Eisentraut, Dean Rasheed) This can improve readability for long strings of digits.", "commit_aliases": ["faff8f8e4"], "source_commits": ["faff8f8e4"], "source_entry_id": "16.0/changes/093", "db_id": "f6c59a09d4f38841e49ea5f7b391be9e", "patch_ids": ["a13e0ad7973efa98d6a2de863d0d70af"], "statement_hash": "e81dc7c5fcd9e53d41eb054251984cd165ad6167b818edc2465fa40dec938be9", "relations": [], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-ac83d82f9b4111d6", "cves": [], "html": "<p>Accept the spelling <code>+infinity</code> in datetime input (Vik Fearing) <a href=\"https://postgr.es/c/2ceea5adb\">§</a></p>", "text": "Accept the spelling +infinity in datetime input (Vik Fearing) §", "title": "Accept the spelling +infinity in datetime input", "commits": ["2ceea5adb"], "section": "Data Types", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-DATATYPES", "source_hash": "69efe1836ca257eb2e3674bf6c167449b1b892d661974def00cc3e871bae6cac", "section_path": ["Data Types"], "commit_groups": [["2ceea5adb"]], "identity_text": "Accept the spelling +infinity in datetime input (Vik Fearing)", "commit_aliases": ["2ceea5adb"], "source_commits": ["2ceea5adb"], "source_entry_id": "16.0/changes/094", "db_id": "5e9e893e220f3528b26835ebe7190b77", "patch_ids": ["147d762e1d9a3a631a2c8af1c155febf"], "statement_hash": "9751567b09a48ae29555519796db176202791db77c6981249a7f3f1db7367d04", "relations": [], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-eb595288c347f218", "cves": [], "html": "<p>Prevent the specification of <code>epoch</code> and <code>infinity</code> together with other fields in datetime strings (Joseph Koshakow) <a href=\"https://postgr.es/c/bcc704b52\">§</a></p>", "text": "Prevent the specification of epoch and infinity together with other fields in datetime strings (Joseph Koshakow) §", "title": "Prevent the specification of epoch and infinity together with other fields in datetime strings", "commits": ["bcc704b52"], "section": "Data Types", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-DATATYPES", "source_hash": "92ec781ef767e457a8a17ff97bb716035d651047ba52b6b84d3e84e65127fc65", "section_path": ["Data Types"], "commit_groups": [["bcc704b52"]], "identity_text": "Prevent the specification of epoch and infinity together with other fields in datetime strings (Joseph Koshakow)", "commit_aliases": ["bcc704b52"], "source_commits": ["bcc704b52"], "source_entry_id": "16.0/changes/095", "db_id": "fb1f1c0d9d90b104655315ec8fab0fc6", "patch_ids": ["52e5a8889a2e3288f4361955d3aef717"], "statement_hash": "924d5768041a2a75bf83626e2f79fef49c5523615f649919bcdf966cd67cd86f", "relations": [], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-aa17db453cb6a72b", "cves": [], "html": "<p>Remove undocumented support for date input in the form <code>Y<em><code>year</code></em>M<em><code>month</code></em>D<em><code>day</code></em></code> (Joseph Koshakow) <a href=\"https://postgr.es/c/5b3c59535\">§</a></p>", "text": "Remove undocumented support for date input in the form YyearMmonthDday (Joseph Koshakow) §", "title": "Remove undocumented support for date input in the form YyearMmonthDday", "commits": ["5b3c59535"], "section": "Data Types", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-DATATYPES", "source_hash": "87dc3336651c991123ee0a7da605bc9aff9efb74bad4057d59681947973f171a", "section_path": ["Data Types"], "commit_groups": [["5b3c59535"]], "identity_text": "Remove undocumented support for date input in the form YyearMmonthDday (Joseph Koshakow)", "commit_aliases": ["5b3c59535"], "source_commits": ["5b3c59535"], "source_entry_id": "16.0/changes/096", "db_id": "0b99ad8f8291fb013eac9666b91d9d4f", "patch_ids": ["5a7bbdfa8898d69f50bc84032bfb5806"], "statement_hash": "9c67365aed67f840abe188e7907e69fa41f3db284baccbe9e9a35638daa42bb2", "relations": [], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-2f4b9260b6ee3414", "cves": [], "html": "<p>Add functions <a href=\"/docs/16/functions-info.html#FUNCTIONS-INFO-VALIDITY-TABLE\" title=\"Table 9.79. Data Validity Checking Functions\"><code>pg_input_is_valid()</code></a> and <code>pg_input_error_info()</code> to check for type conversion errors (Tom Lane) <a href=\"https://postgr.es/c/1939d2628\">§</a> <a href=\"https://postgr.es/c/b8da37b3a\">§</a></p>", "text": "Add functions pg_input_is_valid() and pg_input_error_info() to check for type conversion errors (Tom Lane) § §", "title": "Add functions pg_input_is_valid() and pg_input_error_info() to check for type conversion errors", "commits": ["1939d2628", "b8da37b3a"], "section": "Data Types", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-DATATYPES", "source_hash": "4ccac7d4201b0631ffa84a4cd20ddf0eb3feb942f62470be956a168c083875af", "section_path": ["Data Types"], "commit_groups": [["1939d2628"], ["b8da37b3a"]], "identity_text": "Add functions pg_input_is_valid() and pg_input_error_info() to check for type conversion errors (Tom Lane)", "commit_aliases": ["1939d2628", "b8da37b3a"], "source_commits": ["1939d2628", "b8da37b3a"], "source_entry_id": "16.0/changes/097", "db_id": "00a778d0511db37680e672751447a72f", "patch_ids": ["59c35b2ff5e23c49d7cdbe56833b2729", "7b3bce2b4ee6948d93cbff20b2ba977b"], "statement_hash": "9d8df082c27e221b2c4777a5514e0eef001e702dc918085b859e0b04dd0c7658", "relations": [], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-ca905714008256e8", "cves": [], "html": "<p>Allow subqueries in the <code>FROM</code> clause to omit aliases (Dean Rasheed) <a href=\"https://postgr.es/c/bcedd8f5f\">§</a></p>", "text": "Allow subqueries in the FROM clause to omit aliases (Dean Rasheed) §", "title": "Allow subqueries in the FROM clause to omit aliases", "commits": ["bcedd8f5f"], "section": "General Queries", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-GENERAL", "source_hash": "47811cb990427509a237fe98dc291e2c73f57f170e10e6a87113f0525c5a9972", "section_path": ["General Queries"], "commit_groups": [["bcedd8f5f"]], "identity_text": "Allow subqueries in the FROM clause to omit aliases (Dean Rasheed)", "commit_aliases": ["bcedd8f5f"], "source_commits": ["bcedd8f5f"], "source_entry_id": "16.0/changes/098", "db_id": "578b053cee16ee19a136dcc48f53b0cb", "patch_ids": ["b217c727dc70a9df5cc7c852a373f7b0"], "statement_hash": "a08ca8076ef9411b6bdf0ddce23e1286432bed1bc74eaf16046e199d6eb5aea0", "relations": [], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-ce2ae7b37a6a1a1e", "cves": [], "html": "<p>Add support for enhanced numeric literals in <acronym>SQL/JSON</acronym> paths (Peter Eisentraut) <a href=\"https://postgr.es/c/102a5c164\">§</a></p>\n<p>For example, allow hexadecimal, octal, and binary integers and underscores between digits.</p>", "text": "Add support for enhanced numeric literals in SQL/JSON paths (Peter Eisentraut) § For example, allow hexadecimal, octal, and binary integers and underscores between digits.", "title": "Add support for enhanced numeric literals in SQL/JSON paths", "commits": ["102a5c164"], "section": "General Queries", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-GENERAL", "source_hash": "69f4dd7fbb8a795af40315cebcd58b312f0387ce7cc96f8e438cac077e359c5f", "section_path": ["General Queries"], "commit_groups": [["102a5c164"]], "identity_text": "Add support for enhanced numeric literals in SQL/JSON paths (Peter Eisentraut) For example, allow hexadecimal, octal, and binary integers and underscores between digits.", "commit_aliases": ["102a5c164"], "source_commits": ["102a5c164"], "source_entry_id": "16.0/changes/099", "db_id": "6c06b2084490dc400316bec3d5b69607", "patch_ids": ["8776124c5c726ab99ed1d992ed6840d4"], "statement_hash": "aedfa96f43a7357f43b768e64c2cfba113c7b3890d2b14e9a02c3668450110d7", "relations": [], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-1520d060e09d685d", "cves": [], "html": "<p>Add <acronym>SQL/JSON</acronym> constructors (Nikita Glukhov, Teodor Sigaev, Oleg Bartunov, Alexander Korotkov, Amit Langote) <a href=\"https://postgr.es/c/7081ac46a\">§</a></p>\n<p>The new functions <a href=\"/docs/16/functions-json.html#FUNCTIONS-JSON-CREATION-TABLE\" title=\"Table 9.47. JSON Creation Functions\"><code>JSON_ARRAY()</code></a>, <a href=\"/docs/16/functions-aggregate.html#FUNCTIONS-AGGREGATE-TABLE\" title=\"Table 9.59. General-Purpose Aggregate Functions\"><code>JSON_ARRAYAGG()</code></a>, <code>JSON_OBJECT()</code>, and <code>JSON_OBJECTAGG()</code> are part of the <acronym>SQL</acronym> standard.</p>", "text": "Add SQL/JSON constructors (Nikita Glukhov, Teodor Sigaev, Oleg Bartunov, Alexander Korotkov, Amit Langote) § The new functions JSON_ARRAY(), JSON_ARRAYAGG(), JSON_OBJECT(), and JSON_OBJECTAGG() are part of the SQL standard.", "title": "Add SQL/JSON constructors", "commits": ["7081ac46a"], "section": "Functions", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-FUNCTIONS", "source_hash": "46700b0d8276d54c091e9a005b076d9751a6ed1eedf89d837f15f08fc08e208f", "section_path": ["Functions"], "commit_groups": [["7081ac46a"]], "identity_text": "Add SQL/JSON constructors (Nikita Glukhov, Teodor Sigaev, Oleg Bartunov, Alexander Korotkov, Amit Langote) The new functions JSON_ARRAY(), JSON_ARRAYAGG(), JSON_OBJECT(), and JSON_OBJECTAGG() are part of the SQL standard.", "commit_aliases": ["7081ac46a"], "source_commits": ["7081ac46a"], "source_entry_id": "16.0/changes/100", "db_id": "20326d9698cb5aed3cc175835394db13", "patch_ids": ["1d2941bc8d2c466a0937418083196848"], "statement_hash": "6a5f82417a33d0758f07e867deec6403274a2a7a55872bc463243e73fba9d0e6", "relations": [], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-7303d91134e1fc20", "cves": [], "html": "<p>Add <acronym>SQL/JSON</acronym> object checks (Nikita Glukhov, Teodor Sigaev, Oleg Bartunov, Alexander Korotkov, Amit Langote, Andrew Dunstan) <a href=\"https://postgr.es/c/6ee30209a\">§</a></p>\n<p>The <a href=\"/docs/16/functions-json.html#FUNCTIONS-SQLJSON-MISC\" title=\"Table 9.48. SQL/JSON Testing Functions\"><code>IS JSON</code></a> checks include checks for values, arrays, objects, scalars, and unique keys.</p>", "text": "Add SQL/JSON object checks (Nikita Glukhov, Teodor Sigaev, Oleg Bartunov, Alexander Korotkov, Amit Langote, Andrew Dunstan) § The IS JSON checks include checks for values, arrays, objects, scalars, and unique keys.", "title": "Add SQL/JSON object checks", "commits": ["6ee30209a"], "section": "Functions", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-FUNCTIONS", "source_hash": "1cc948bc507c1d0ee791bded713381aefa8b0eb6f84bb3f1ab6ed416fc9cd03d", "section_path": ["Functions"], "commit_groups": [["6ee30209a"]], "identity_text": "Add SQL/JSON object checks (Nikita Glukhov, Teodor Sigaev, Oleg Bartunov, Alexander Korotkov, Amit Langote, Andrew Dunstan) The IS JSON checks include checks for values, arrays, objects, scalars, and unique keys.", "commit_aliases": ["6ee30209a"], "source_commits": ["6ee30209a"], "source_entry_id": "16.0/changes/101", "db_id": "699bdd7fe40d0eec31e7491993e21517", "patch_ids": ["551f25024479eecbdc10e717f22857e8"], "statement_hash": "57b6bbd32f6fcbb0c5be2d2127a02d7521729e432e99a93704989e7e006ca6f4", "relations": [], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-a0d9d4c53aa9f4cd", "cves": [], "html": "<p>Allow <acronym>JSON</acronym> string parsing to use vector operations (John Naylor) <a href=\"https://postgr.es/c/0a8de93a4\">§</a></p>", "text": "Allow JSON string parsing to use vector operations (John Naylor) §", "title": "Allow JSON string parsing to use vector operations", "commits": ["0a8de93a4"], "section": "Functions", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-FUNCTIONS", "source_hash": "54e4075955ad7bce6624a741e105ebe930ff5686ecfdea0dbca61119660929d1", "section_path": ["Functions"], "commit_groups": [["0a8de93a4"]], "identity_text": "Allow JSON string parsing to use vector operations (John Naylor)", "commit_aliases": ["0a8de93a4"], "source_commits": ["0a8de93a4"], "source_entry_id": "16.0/changes/102", "db_id": "33ef85cec1ecfe967586468e013771fb", "patch_ids": ["ef92e77cd0ae486d81920b30b4c2620e"], "statement_hash": "9be7a99c90ae976c512c9b0fe9925e5d9eb9b81f39a7e80a9410493265daad3d", "relations": [], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-1b7755b0b904b98c", "cves": [], "html": "<p>Improve the handling of full text highlighting function <a href=\"/docs/16/functions-textsearch.html#TEXTSEARCH-FUNCTIONS-TABLE\" title=\"Table 9.43. Text Search Functions\"><code>ts_headline()</code></a> for <code>OR</code> and <code>NOT</code> expressions (Tom Lane) <a href=\"https://postgr.es/c/5a617d75d\">§</a></p>", "text": "Improve the handling of full text highlighting function ts_headline() for OR and NOT expressions (Tom Lane) §", "title": "Improve the handling of full text highlighting function ts_headline() for OR and NOT expressions", "commits": ["5a617d75d"], "section": "Functions", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-FUNCTIONS", "source_hash": "0e5dc0511502f67259971efce05aed30681f4e3f05d99568027b313c5823a944", "section_path": ["Functions"], "commit_groups": [["5a617d75d"]], "identity_text": "Improve the handling of full text highlighting function ts_headline() for OR and NOT expressions (Tom Lane)", "commit_aliases": ["5a617d75d"], "source_commits": ["5a617d75d"], "source_entry_id": "16.0/changes/103", "db_id": "4bc81c7596c44026a8c7b7bab64ea7d6", "patch_ids": ["e4eac6aba48c1df9887bb1b1112ad163"], "statement_hash": "56942dd3e2df7805a59b09e51ac3b7d5dd9d8c97551a4f3fe36f576c5562a00e", "relations": [], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-5c170a689f3144ac", "cves": [], "html": "<p>Add functions to add, subtract, and generate <code>timestamptz</code> values in a specified time zone (Przemyslaw Sztoch, Gurjeet Singh) <a href=\"https://postgr.es/c/75bd846b6\">§</a></p>\n<p>The functions are <a href=\"/docs/16/functions-datetime.html#FUNCTIONS-DATETIME-TABLE\" title=\"Table 9.33. Date/Time Functions\"><code>date_add()</code></a>, <code>date_subtract()</code>, and <a href=\"/docs/16/functions-srf.html#FUNCTIONS-SRF-SERIES\" title=\"Table 9.65. Series Generating Functions\"><code>generate_series()</code></a>.</p>", "text": "Add functions to add, subtract, and generate timestamptz values in a specified time zone (Przemyslaw Sztoch, Gurjeet Singh) § The functions are date_add(), date_subtract(), and generate_series().", "title": "Add functions to add, subtract, and generate timestamptz values in a specified time zone", "commits": ["75bd846b6"], "section": "Functions", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-FUNCTIONS", "source_hash": "bb01a1d76caa93f4b916f8ced73472dc0734ba851508620fcea91b4bfa4cc194", "section_path": ["Functions"], "commit_groups": [["75bd846b6"]], "identity_text": "Add functions to add, subtract, and generate timestamptz values in a specified time zone (Przemyslaw Sztoch, Gurjeet Singh) The functions are date_add(), date_subtract(), and generate_series().", "commit_aliases": ["75bd846b6"], "source_commits": ["75bd846b6"], "source_entry_id": "16.0/changes/104", "db_id": "c28bac373db57c7dd66aac77c3405020", "patch_ids": ["a30002cf2dadec1192bc9568cfd54da2"], "statement_hash": "45e8581d2540739f85bcb8815dfd7cd57f761d01eb9ca1a99c631981b80d16cd", "relations": [], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-edea5414a4258ceb", "cves": [], "html": "<p>Change <a href=\"/docs/16/functions-datetime.html#FUNCTIONS-DATETIME-TABLE\" title=\"Table 9.33. Date/Time Functions\"><code>date_trunc(unit, timestamptz, time_zone)</code></a> to be an immutable function (Przemyslaw Sztoch) <a href=\"https://postgr.es/c/533e02e92\">§</a></p>\n<p>This allows the creation of expression indexes using this function.</p>", "text": "Change date_trunc(unit, timestamptz, time_zone) to be an immutable function (Przemyslaw Sztoch) § This allows the creation of expression indexes using this function.", "title": "Change date_trunc(unit, timestamptz, time_zone) to be an immutable function", "commits": ["533e02e92"], "section": "Functions", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-FUNCTIONS", "source_hash": "5a48a89713a7623b999259e7e26597c649be2577cff3eb60b08f991264215a33", "section_path": ["Functions"], "commit_groups": [["533e02e92"]], "identity_text": "Change date_trunc(unit, timestamptz, time_zone) to be an immutable function (Przemyslaw Sztoch) This allows the creation of expression indexes using this function.", "commit_aliases": ["533e02e92"], "source_commits": ["533e02e92"], "source_entry_id": "16.0/changes/105", "db_id": "349b5bf1069668c2d9170487230d4e10", "patch_ids": ["66ebabb5d904527fa721903163f0f4f2"], "statement_hash": "fd7516d24b402751a2e6575d1a58270e83b97ff2b275cb03c4c9b718032e77ae", "relations": [], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-369176d32d19854f", "cves": [], "html": "<p>Add server variable <a href=\"/docs/16/functions-info.html#FUNCTIONS-INFO-SESSION-TABLE\" title=\"Table 9.67. Session Information Functions\"><code>SYSTEM_USER</code></a> (Bertrand Drouvot) <a href=\"https://postgr.es/c/0823d061b\">§</a></p>\n<p>This reports the authentication method and its authenticated user.</p>", "text": "Add server variable SYSTEM_USER (Bertrand Drouvot) § This reports the authentication method and its authenticated user.", "title": "Add server variable SYSTEM_USER", "commits": ["0823d061b"], "section": "Functions", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-FUNCTIONS", "source_hash": "3e532584493bd7cab5e49b4605c870cbc3e9ef9cca291cd4a3151f8d57ff9004", "section_path": ["Functions"], "commit_groups": [["0823d061b"]], "identity_text": "Add server variable SYSTEM_USER (Bertrand Drouvot) This reports the authentication method and its authenticated user.", "commit_aliases": ["0823d061b"], "source_commits": ["0823d061b"], "source_entry_id": "16.0/changes/106", "db_id": "135afabed066e907bf216dcbac0f7315", "patch_ids": ["84fe34ce3649263d604ff873140eb39f"], "statement_hash": "4e6fa6b3a3e98af1d197b0a6ad58f9ab083a84fb82afdb8a8c5e071b7a106b4b", "relations": [], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-231381d88fb725ae", "cves": [], "html": "<p>Add functions <a href=\"/docs/16/functions-array.html#ARRAY-FUNCTIONS-TABLE\" title=\"Table 9.54. Array Functions\"><code>array_sample()</code></a> and <code>array_shuffle()</code> (Martin Kalcher) <a href=\"https://postgr.es/c/888f2ea0a\">§</a></p>", "text": "Add functions array_sample() and array_shuffle() (Martin Kalcher) §", "title": "Add functions array_sample() and array_shuffle()", "commits": ["888f2ea0a"], "section": "Functions", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-FUNCTIONS", "source_hash": "ec84184c593ea473ee8dc58199d653d88d1d3a20ce585a00bfbf96fffcb2d245", "section_path": ["Functions"], "commit_groups": [["888f2ea0a"]], "identity_text": "Add functions array_sample() and array_shuffle() (Martin Kalcher)", "commit_aliases": ["888f2ea0a"], "source_commits": ["888f2ea0a"], "source_entry_id": "16.0/changes/107", "db_id": "c21328dce1fd0ed2ad46aa8fc9a43828", "patch_ids": ["a9ad857cf74bffc0494a175abe88b6ac"], "statement_hash": "c65e22b9fd65f892bf4673d877188b8c7ef96cbff9e33ff56820897ff8617cf1", "relations": [], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-7393159b06b90929", "cves": [], "html": "<p>Add aggregate function <a href=\"/docs/16/functions-aggregate.html#FUNCTIONS-AGGREGATE-TABLE\" title=\"Table 9.59. General-Purpose Aggregate Functions\"><code>ANY_VALUE()</code></a> which returns any value from a set (Vik Fearing) <a href=\"https://postgr.es/c/2ddab010c\">§</a></p>", "text": "Add aggregate function ANY_VALUE() which returns any value from a set (Vik Fearing) §", "title": "Add aggregate function ANY_VALUE() which returns any value from a set", "commits": ["2ddab010c"], "section": "Functions", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-FUNCTIONS", "source_hash": "940c88b09d6cf3c35e8ac178821123abaffd7173e5c2d2ab635f62a917b2ca3b", "section_path": ["Functions"], "commit_groups": [["2ddab010c"]], "identity_text": "Add aggregate function ANY_VALUE() which returns any value from a set (Vik Fearing)", "commit_aliases": ["2ddab010c"], "source_commits": ["2ddab010c"], "source_entry_id": "16.0/changes/108", "db_id": "7e2bec75b74667b8499da853f7c721ae", "patch_ids": ["209509f848d41dd44d99bdbd93a10dc4"], "statement_hash": "80922a8a7ae585a56c0f2973f49d05cee392e0f37f8851e6329fc2db5ac564eb", "relations": [], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-f07e8f4e5e8d8246", "cves": [], "html": "<p>Add function <a href=\"/docs/16/functions-math.html#FUNCTIONS-MATH-RANDOM-TABLE\" title=\"Table 9.6. Random Functions\"><code>random_normal()</code></a> to supply normally-distributed random numbers (Paul Ramsey) <a href=\"https://postgr.es/c/38d81760c\">§</a></p>", "text": "Add function random_normal() to supply normally-distributed random numbers (Paul Ramsey) §", "title": "Add function random_normal() to supply normally-distributed random numbers", "commits": ["38d81760c"], "section": "Functions", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-FUNCTIONS", "source_hash": "872fd075434e4ebc9c35fac3391a8b42a840c60c9e390404cacb2e32c99e9c42", "section_path": ["Functions"], "commit_groups": [["38d81760c"]], "identity_text": "Add function random_normal() to supply normally-distributed random numbers (Paul Ramsey)", "commit_aliases": ["38d81760c"], "source_commits": ["38d81760c"], "source_entry_id": "16.0/changes/109", "db_id": "318c6c5b7bbb1a35c2c776a2c263dde1", "patch_ids": ["007cf74b74d6e2b9d70d7e150ef80d3c"], "statement_hash": "a5a6746b47296f56a7627b4ff8819eeb2961b18f21a0b67d838857f72ea0b020", "relations": [], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-2adbcae2f8145ef4", "cves": [], "html": "<p>Add error function <a href=\"/docs/16/functions-math.html#FUNCTIONS-MATH-FUNC-TABLE\" title=\"Table 9.5. Mathematical Functions\"><code>erf()</code></a> and its complement <code>erfc()</code> (Dean Rasheed) <a href=\"https://postgr.es/c/d5d574146\">§</a></p>", "text": "Add error function erf() and its complement erfc() (Dean Rasheed) §", "title": "Add error function erf() and its complement erfc()", "commits": ["d5d574146"], "section": "Functions", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-FUNCTIONS", "source_hash": "9644ee23aae556b8d9b8a51ee2390b2e056b5282557c0c1ffd8f5218bb5ea6ea", "section_path": ["Functions"], "commit_groups": [["d5d574146"]], "identity_text": "Add error function erf() and its complement erfc() (Dean Rasheed)", "commit_aliases": ["d5d574146"], "source_commits": ["d5d574146"], "source_entry_id": "16.0/changes/110", "db_id": "cb08a0308823c1c0f144a64665e6ed90", "patch_ids": ["6685f91c313d72ef784a03c82f7c65ea"], "statement_hash": "f3c298f4055a27dd3faa6cb0c9afd4c922acfb860d9608115be90f59f00a65d9", "relations": [], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-83d6d02aecc86d14", "cves": [], "html": "<p>Improve the accuracy of numeric <a href=\"/docs/16/functions-math.html#FUNCTIONS-MATH-FUNC-TABLE\" title=\"Table 9.5. Mathematical Functions\"><code>power()</code></a> for integer exponents (Dean Rasheed) <a href=\"https://postgr.es/c/40c7fcbbe\">§</a></p>", "text": "Improve the accuracy of numeric power() for integer exponents (Dean Rasheed) §", "title": "Improve the accuracy of numeric power() for integer exponents", "commits": ["40c7fcbbe"], "section": "Functions", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-FUNCTIONS", "source_hash": "672d12c4b6397223902aa3a9894355b12f97c143770a0825d1a6082aec92d3db", "section_path": ["Functions"], "commit_groups": [["40c7fcbbe"]], "identity_text": "Improve the accuracy of numeric power() for integer exponents (Dean Rasheed)", "commit_aliases": ["40c7fcbbe"], "source_commits": ["40c7fcbbe"], "source_entry_id": "16.0/changes/111", "db_id": "54eee9ce53ba692493246709c78d808d", "patch_ids": ["66100beb58ced124cedb22466fdf1af6"], "statement_hash": "077e569e5af1989e6f0c9446fb8df356b47c96357b4cb7ec721d52fa35d09efe", "relations": [], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-e6f34abd8faee45c", "cves": [], "html": "<p>Add <a href=\"/docs/16/datatype-xml.html#DATATYPE-XML-CREATING\" title=\"8.13.1. Creating XML Values\"><code>XMLSERIALIZE()</code></a> option <code>INDENT</code> to pretty-print its output (Jim Jones) <a href=\"https://postgr.es/c/483bdb2af\">§</a></p>", "text": "Add XMLSERIALIZE() option INDENT to pretty-print its output (Jim Jones) §", "title": "Add XMLSERIALIZE() option INDENT to pretty-print its output", "commits": ["483bdb2af"], "section": "Functions", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-FUNCTIONS", "source_hash": "0057253bcd11806ce7b1e916ded61e54e074bf1d1375b11a853c37dcdff4d14d", "section_path": ["Functions"], "commit_groups": [["483bdb2af"]], "identity_text": "Add XMLSERIALIZE() option INDENT to pretty-print its output (Jim Jones)", "commit_aliases": ["483bdb2af"], "source_commits": ["483bdb2af"], "source_entry_id": "16.0/changes/112", "db_id": "4f7b10789a6595dbe8b4b01d0d97aaa0", "patch_ids": ["6381b3e1b87c9af9119593b8a8de2fd3"], "statement_hash": "b489e47026b4c9baafc863a71f1f5825c804455c34719d4153b1aaa8d8564ffd", "relations": [], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-7879f159fd1e4750", "cves": [], "html": "<p>Change <a href=\"/docs/16/functions-admin.html#FUNCTIONS-ADMIN-COLLATION\" title=\"Table 9.98. Collation Management Functions\"><code>pg_collation_actual_version()</code></a> to return a reasonable value for the default collation (Jeff Davis) <a href=\"https://postgr.es/c/10932ed5e\">§</a></p>\n<p>Previously it returned <code>NULL</code>.</p>", "text": "Change pg_collation_actual_version() to return a reasonable value for the default collation (Jeff Davis) § Previously it returned NULL.", "title": "Change pg_collation_actual_version() to return a reasonable value for the default collation", "commits": ["10932ed5e"], "section": "Functions", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-FUNCTIONS", "source_hash": "89df15ee5b45cc9ec04b3de618dd32a507aefa16686269ee3a0553be2e7b1531", "section_path": ["Functions"], "commit_groups": [["10932ed5e"]], "identity_text": "Change pg_collation_actual_version() to return a reasonable value for the default collation (Jeff Davis) Previously it returned NULL.", "commit_aliases": ["10932ed5e"], "source_commits": ["10932ed5e"], "source_entry_id": "16.0/changes/113", "db_id": "41a2a495f50281685d99ad323c360322", "patch_ids": ["b95d181667f8424754ea67d84d12fcd1"], "statement_hash": "849c8ed880dc614befb9fa3726f062801102df3bd34f1bd4a20d2c97366f874b", "relations": [], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-b30b8299466bf092", "cves": [], "html": "<p>Allow <a href=\"/docs/16/functions-admin.html#FUNCTIONS-ADMIN-GENFILE-TABLE\" title=\"Table 9.101. Generic File Access Functions\"><code>pg_read_file()</code></a> and <code>pg_read_binary_file()</code> to ignore missing files (Kyotaro Horiguchi) <a href=\"https://postgr.es/c/283129e32\">§</a></p>", "text": "Allow pg_read_file() and pg_read_binary_file() to ignore missing files (Kyotaro Horiguchi) §", "title": "Allow pg_read_file() and pg_read_binary_file() to ignore missing files", "commits": ["283129e32"], "section": "Functions", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-FUNCTIONS", "source_hash": "517e9cc15281471b29e29b20b66043c2cdc224b234218fc013b67b4d268d264d", "section_path": ["Functions"], "commit_groups": [["283129e32"]], "identity_text": "Allow pg_read_file() and pg_read_binary_file() to ignore missing files (Kyotaro Horiguchi)", "commit_aliases": ["283129e32"], "source_commits": ["283129e32"], "source_entry_id": "16.0/changes/114", "db_id": "3db0e1ae9d51dd005b37d2ada8b21ef6", "patch_ids": ["b134587681d1ba8d2853979e51de9186"], "statement_hash": "bf188c3de699ac0714539f81ce619f019db54f4a661ee67d014aed441192fe0c", "relations": [], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-caf4a4d4feefff7b", "cves": [], "html": "<p>Add byte specification (<code>B</code>) to <a href=\"/docs/16/functions-admin.html#FUNCTIONS-ADMIN-DBSIZE\" title=\"Table 9.96. Database Object Size Functions\"><code>pg_size_bytes()</code></a> (Peter Eisentraut) <a href=\"https://postgr.es/c/ce1215d9b\">§</a></p>", "text": "Add byte specification (B) to pg_size_bytes() (Peter Eisentraut) §", "title": "Add byte specification (B) to pg_size_bytes()", "commits": ["ce1215d9b"], "section": "Functions", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-FUNCTIONS", "source_hash": "10dcbcfcddd49a227c039e1241f2f0d2f9b5eb7349a315867ba0024d259cef10", "section_path": ["Functions"], "commit_groups": [["ce1215d9b"]], "identity_text": "Add byte specification (B) to pg_size_bytes() (Peter Eisentraut)", "commit_aliases": ["ce1215d9b"], "source_commits": ["ce1215d9b"], "source_entry_id": "16.0/changes/115", "db_id": "868756c43fb93e2c80ca4c4bc19677e4", "patch_ids": ["41517fc2dc3d8ce5b0f8b081e04f0ebd"], "statement_hash": "003f2dd9e25e20a59856aa541b48c1979779d932ee7568d354deda670aade984", "relations": [], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-ba4f98f4f3cdabee", "cves": [], "html": "<p>Allow <a href=\"/docs/16/functions-info.html#FUNCTIONS-INFO-CATALOG-TABLE\" title=\"Table 9.72. System Catalog Information Functions\"><code>to_reg</code></a>* functions to accept numeric <acronym>OID</acronym>s as input (Tom Lane) <a href=\"https://postgr.es/c/3ea7329c9\">§</a></p>", "text": "Allow to_reg* functions to accept numeric OIDs as input (Tom Lane) §", "title": "Allow to_reg* functions to accept numeric OIDs as input", "commits": ["3ea7329c9"], "section": "Functions", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-FUNCTIONS", "source_hash": "3d9d939516de19a150ba4bf947a3bff222ae673526b9094198505931742dc39d", "section_path": ["Functions"], "commit_groups": [["3ea7329c9"]], "identity_text": "Allow to_reg* functions to accept numeric OIDs as input (Tom Lane)", "commit_aliases": ["3ea7329c9"], "source_commits": ["3ea7329c9"], "source_entry_id": "16.0/changes/116", "db_id": "c7db3fb790a06d10ea3ca54de7c58633", "patch_ids": ["2178fd4447224097ed3c239d6042ef7a"], "statement_hash": "d92316f4314dd3bbc0435a68f53ccc266e2b7f83a75e60e010bf8d73f524de0c", "relations": [], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-d434fe6a56e059ad", "cves": [], "html": "<p>Add the ability to get the current function's <acronym>OID</acronym> in <span>PL/pgSQL</span> (Pavel Stehule) <a href=\"https://postgr.es/c/d3d53f955\">§</a></p>\n<p>This is accomplished with <a href=\"/docs/16/plpgsql-statements.html#PLPGSQL-STATEMENTS-DIAGNOSTICS\" title=\"43.5.5. Obtaining the Result Status\"><code>GET DIAGNOSTICS variable = PG_ROUTINE_OID</code></a>.</p>", "text": "Add the ability to get the current function's OID in PL/pgSQL (Pavel Stehule) § This is accomplished with GET DIAGNOSTICS variable = PG_ROUTINE_OID.", "title": "Add the ability to get the current function's OID in PL/pgSQL", "commits": ["d3d53f955"], "section": "PL/pgSQL", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-PLPGSQL", "source_hash": "56950d4dd29af764779f18a6aabb04dc5847ff3dbdc4c6a401f212b4273ff94a", "section_path": ["PL/pgSQL"], "commit_groups": [["d3d53f955"]], "identity_text": "Add the ability to get the current function's OID in PL/pgSQL (Pavel Stehule) This is accomplished with GET DIAGNOSTICS variable = PG_ROUTINE_OID.", "commit_aliases": ["d3d53f955"], "source_commits": ["d3d53f955"], "source_entry_id": "16.0/changes/117", "db_id": "a0b07140e69038a2343ab67906940aaf", "patch_ids": ["08d9a9d68b22bac1bbdfe0c0746ca523"], "statement_hash": "d0a5bac30e4eb6eaea9321f80e96c501b87b0c770df90133e77abec0e3bf3214", "relations": [], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-deb6ad896df2c831", "cves": [], "html": "<p>Add <span>libpq</span> connection option <a href=\"/docs/16/libpq-connect.html#LIBPQ-CONNECT-REQUIRE-AUTH\"><code>require_auth</code></a> to specify a list of acceptable authentication methods (Jacob Champion) <a href=\"https://postgr.es/c/3a465cc67\">§</a></p>\n<p>This can also be used to disallow certain authentication methods.</p>", "text": "Add libpq connection option require_auth to specify a list of acceptable authentication methods (Jacob Champion) § This can also be used to disallow certain authentication methods.", "title": "Add libpq connection option require_auth to specify a list of acceptable authentication methods", "commits": ["3a465cc67"], "section": "libpq", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-LIBPQ", "source_hash": "adf6433b4f99db13ef2bdb6cab0bc799f119576247271a5cb56994552f4e5bfb", "section_path": ["libpq"], "commit_groups": [["3a465cc67"]], "identity_text": "Add libpq connection option require_auth to specify a list of acceptable authentication methods (Jacob Champion) This can also be used to disallow certain authentication methods.", "commit_aliases": ["3a465cc67"], "source_commits": ["3a465cc67"], "source_entry_id": "16.0/changes/118", "db_id": "4c858bae325d824494991b29c7096b54", "patch_ids": ["f8268f5fea49d2462a659efb665976bd"], "statement_hash": "20ff871c05acfba16c44b4d7c2fa4c70987d6857a71f50d98c07ce7ce19d8004", "relations": [], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-2d62ba8897ceb580", "cves": [], "html": "<p>Allow multiple <span>libpq</span>-specified hosts to be randomly selected (Jelte Fennema) <a href=\"https://postgr.es/c/7f5b19817\">§</a> <a href=\"https://postgr.es/c/0a16512d4\">§</a></p>\n<p>This is enabled with <a href=\"/docs/16/libpq-connect.html#LIBPQ-CONNECT-LOAD-BALANCE-HOSTS\"><code>load_balance_hosts=random</code></a> and can be used for load balancing.</p>", "text": "Allow multiple libpq-specified hosts to be randomly selected (Jelte Fennema) § § This is enabled with load_balance_hosts=random and can be used for load balancing.", "title": "Allow multiple libpq-specified hosts to be randomly selected", "commits": ["0a16512d4", "7f5b19817"], "section": "libpq", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-LIBPQ", "source_hash": "92809fe848a353c04c28b50a9d0d615145087fde33846c8642eba957d022780e", "section_path": ["libpq"], "commit_groups": [["0a16512d4"], ["7f5b19817"]], "identity_text": "Allow multiple libpq-specified hosts to be randomly selected (Jelte Fennema) This is enabled with load_balance_hosts=random and can be used for load balancing.", "commit_aliases": ["0a16512d4", "7f5b19817"], "source_commits": ["0a16512d4", "7f5b19817"], "source_entry_id": "16.0/changes/119", "db_id": "f8ff87aaab449ca54bdc0cb144c8c9d9", "patch_ids": ["38cfae9ae7979d29f10b6932354bda3a", "dfe0f471539341ebda184943559365fd"], "statement_hash": "48e22957ef569bac092c26bc74fad4e31e7bef3cdce6550d6a2cadbc39a9f606", "relations": [], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-35f58d0abdbda17d", "cves": [], "html": "<p>Add <span>libpq</span> option <a href=\"/docs/16/libpq-connect.html#LIBPQ-CONNECT-SSLCERTMODE\"><code>sslcertmode</code></a> to control transmission of the client certificate (Jacob Champion) <a href=\"https://postgr.es/c/36f40ce2d\">§</a></p>\n<p>The option values are <code>disable</code>, <code>allow</code>, and <code>require</code>.</p>", "text": "Add libpq option sslcertmode to control transmission of the client certificate (Jacob Champion) § The option values are disable, allow, and require.", "title": "Add libpq option sslcertmode to control transmission of the client certificate", "commits": ["36f40ce2d"], "section": "libpq", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-LIBPQ", "source_hash": "009e3def375008397619b11fa43715424158bf0fc2f7c5674d3805cdca28af7d", "section_path": ["libpq"], "commit_groups": [["36f40ce2d"]], "identity_text": "Add libpq option sslcertmode to control transmission of the client certificate (Jacob Champion) The option values are disable, allow, and require.", "commit_aliases": ["36f40ce2d"], "source_commits": ["36f40ce2d"], "source_entry_id": "16.0/changes/120", "db_id": "cfcefe5d627c511474cfc47e3bb615a5", "patch_ids": ["283caeb061d9b81a8420896fbe4e6d8e"], "statement_hash": "099059b865c5f2cef339a1b38a41671ff75304c589f266cc995f4c2e74f797db", "relations": [], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-007e65fe7853fb77", "cves": [], "html": "<p>Allow <span>libpq</span> to use the system certificate pool for certificate verification (Jacob Champion, Thomas Habets) <a href=\"https://postgr.es/c/8eda73146\">§</a></p>\n<p>This is enabled with <a href=\"/docs/16/libpq-connect.html#LIBPQ-CONNECT-SSLROOTCERT\"><code>sslrootcert=system</code></a>, which also enables <a href=\"/docs/16/libpq-connect.html#LIBPQ-CONNECT-SSLMODE\"><code>sslmode=verify-full</code></a>.</p>", "text": "Allow libpq to use the system certificate pool for certificate verification (Jacob Champion, Thomas Habets) § This is enabled with sslrootcert=system, which also enables sslmode=verify-full.", "title": "Allow libpq to use the system certificate pool for certificate verification", "commits": ["8eda73146"], "section": "libpq", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-LIBPQ", "source_hash": "fbcf17ce6316ce2e2ec52578b6a4a2bc39cac33f3facd1d3d4b67ba75ccc2ed0", "section_path": ["libpq"], "commit_groups": [["8eda73146"]], "identity_text": "Allow libpq to use the system certificate pool for certificate verification (Jacob Champion, Thomas Habets) This is enabled with sslrootcert=system, which also enables sslmode=verify-full.", "commit_aliases": ["8eda73146"], "source_commits": ["8eda73146"], "source_entry_id": "16.0/changes/121", "db_id": "f914e809c1b088ed48f9b9caa9e7bc1b", "patch_ids": ["bf0cfa669afeb838d9ff3b99478484f9"], "statement_hash": "798b5cf593aa3249fc22c6072002fc807062a3a0bcba0d39fbeea939b7c8cb30", "relations": [], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-b24b919f8a6a4b4f", "cves": [], "html": "<p>Allow <a href=\"/docs/16/ecpg.html\" title=\"Chapter 36. ECPG — Embedded SQL in C\"><code>ECPG</code></a> variable declarations to use typedef names that match unreserved <acronym>SQL</acronym> keywords (Tom Lane) <a href=\"https://postgr.es/c/83f1c7b74\">§</a></p>\n<p>This change does prevent keywords which match C typedef names from being processed as keywords in later <code>EXEC SQL</code> blocks.</p>", "text": "Allow ECPG variable declarations to use typedef names that match unreserved SQL keywords (Tom Lane) § This change does prevent keywords which match C typedef names from being processed as keywords in later EXEC SQL blocks.", "title": "Allow ECPG variable declarations to use typedef names that match unreserved SQL keywords", "commits": ["83f1c7b74"], "section": "Client Applications", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-CLIENT-APPS", "source_hash": "63d04bb22bdc4067b6ef8b03559546074e84765c11e37d3e53873a50fac8e9a2", "section_path": ["Client Applications"], "commit_groups": [["83f1c7b74"]], "identity_text": "Allow ECPG variable declarations to use typedef names that match unreserved SQL keywords (Tom Lane) This change does prevent keywords which match C typedef names from being processed as keywords in later EXEC SQL blocks.", "commit_aliases": ["83f1c7b74"], "source_commits": ["83f1c7b74"], "source_entry_id": "16.0/changes/122", "db_id": "d6e492659da37b37b74d7f43d66c9ed1", "patch_ids": ["436b06ea61c363995bf435b967165d1f"], "statement_hash": "c05516733ba7afe4e5e9d11af7920209bdd2f76a81b147bd0759f05595855a4b", "relations": [], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-1d72e8f633b69522", "cves": [], "html": "<p>Allow <span>psql</span> to control the maximum width of header lines in expanded format (Platon Pronko) <a href=\"https://postgr.es/c/a45388d6e\">§</a></p>\n<p>This is controlled by <a href=\"/docs/16/app-psql.html#APP-PSQL-META-COMMAND-PSET-XHEADER-WIDTH\"><code>xheader_width</code></a>.</p>", "text": "Allow psql to control the maximum width of header lines in expanded format (Platon Pronko) § This is controlled by xheader_width.", "title": "Allow psql to control the maximum width of header lines in expanded format", "commits": ["a45388d6e"], "section": "Client Applications / psql", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-PSQL", "source_hash": "1541acf8eec9d410cafcec4097e2a6c02a8cac1ea48819bed8c99c6b3d846169", "section_path": ["Client Applications", "psql"], "commit_groups": [["a45388d6e"]], "identity_text": "Allow psql to control the maximum width of header lines in expanded format (Platon Pronko) This is controlled by xheader_width.", "commit_aliases": ["a45388d6e"], "source_commits": ["a45388d6e"], "source_entry_id": "16.0/changes/123", "db_id": "55c1b30958e3f5c698a9288f14a66890", "patch_ids": ["5fa6ea7e4acf52256ebdf8af5a0769d4"], "statement_hash": "5456bd63b761380a92c1cccee82ee083f5cf9ba2b61711ee7d789fc324a93d08", "relations": [], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-0bed90a169c7ddf4-1", "cves": [], "html": "<p>Add <span>psql</span> command <a href=\"/docs/16/app-psql.html#APP-PSQL-META-COMMAND-DRG\"><code>\\drg</code></a> to show role membership details (Pavel Luzanov) <a href=\"https://postgr.es/c/d913928c9\">§</a> <a href=\"https://postgr.es/c/d65ddaca9\">§</a></p>\n<p>The <code>Member of</code> output column has been removed from <code>\\du</code> and <code>\\dg</code> because this new command displays this information in more detail.</p>", "text": "Add psql command \\drg to show role membership details (Pavel Luzanov) § § The Member of output column has been removed from \\du and \\dg because this new command displays this information in more detail.", "title": "Add psql command \\drg to show role membership details", "commits": ["d65ddaca9", "d913928c9"], "section": "Client Applications / psql", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-PSQL", "source_hash": "4504b20d0892d04e8ef04ff85daefe200e92a0fb55c362afb9ea015bc3d9ef10", "section_path": ["Client Applications", "psql"], "commit_groups": [["d65ddaca9"], ["d913928c9"]], "identity_text": "Add psql command \\drg to show role membership details (Pavel Luzanov) The Member of output column has been removed from \\du and \\dg because this new command displays this information in more detail.", "commit_aliases": ["d65ddaca9", "d913928c9"], "source_commits": ["d65ddaca9", "d913928c9"], "source_entry_id": "16.0/changes/124", "db_id": "6f8780abecad883c8e311c1576d51c74", "patch_ids": ["4dba2a4b1e84b7a4e5395579e966b329", "a97e8a488724255218606080f9528811"], "statement_hash": "a31b10357b2e9c55efa7870b5275371ddbb0daac02e39a771f77aa2d9a217d32", "relations": [{"rule": 2, "type": "related", "target": "19360257dc0dbf33ef1970e329d4991e", "evidence": {"same_day": true, "patch_ids": ["4dba2a4b1e84b7a4e5395579e966b329", "a97e8a488724255218606080f9528811"], "ambiguous_patch_ids": ["4dba2a4b1e84b7a4e5395579e966b329", "a97e8a488724255218606080f9528811"]}}], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": [{"db_id": "19360257dc0dbf33ef1970e329d4991e", "kind": "related", "version": "16.0", "label": "16.0", "title": "Allow psql's access privilege commands to show system objects", "evidence": {"same_day": true, "patch_ids": ["4dba2a4b1e84b7a4e5395579e966b329", "a97e8a488724255218606080f9528811"], "ambiguous_patch_ids": ["4dba2a4b1e84b7a4e5395579e966b329", "a97e8a488724255218606080f9528811"]}, "url": "/docs/compare/?release=16.0#16.0-0bed90a169c7ddf4-2", "source_url": "/docs/release/16.0/#RELEASE-16-PSQL"}]}, {"id": "16.0-0bed90a169c7ddf4-2", "cves": [], "html": "<p>Allow <span>psql</span>'s access privilege commands to show system objects (Nathan Bossart) <a href=\"https://postgr.es/c/d913928c9\">§</a> <a href=\"https://postgr.es/c/d65ddaca9\">§</a></p>\n<p>The options are <a href=\"/docs/16/app-psql.html#APP-PSQL-META-COMMAND-DP-LC\"><code>\\dpS</code></a> and <a href=\"/docs/16/app-psql.html#APP-PSQL-META-COMMAND-Z\"><code>\\zS</code></a>.</p>", "text": "Allow psql's access privilege commands to show system objects (Nathan Bossart) § § The options are \\dpS and \\zS.", "title": "Allow psql's access privilege commands to show system objects", "commits": ["d65ddaca9", "d913928c9"], "section": "Client Applications / psql", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-PSQL", "source_hash": "126aeec0650536736eb2b95bfd958de2a948eda18471fdf66cbcfa04a8455b3f", "section_path": ["Client Applications", "psql"], "commit_groups": [["d65ddaca9"], ["d913928c9"]], "identity_text": "Allow psql's access privilege commands to show system objects (Nathan Bossart) The options are \\dpS and \\zS.", "commit_aliases": ["d65ddaca9", "d913928c9"], "source_commits": ["d65ddaca9", "d913928c9"], "source_entry_id": "16.0/changes/125", "db_id": "19360257dc0dbf33ef1970e329d4991e", "patch_ids": ["4dba2a4b1e84b7a4e5395579e966b329", "a97e8a488724255218606080f9528811"], "statement_hash": "828d84b911690b8a8fc0a49b108b6509da85f6d79f0868090b42086b64d7304c", "relations": [{"rule": 2, "type": "related", "target": "6f8780abecad883c8e311c1576d51c74", "evidence": {"same_day": true, "patch_ids": ["4dba2a4b1e84b7a4e5395579e966b329", "a97e8a488724255218606080f9528811"], "ambiguous_patch_ids": ["4dba2a4b1e84b7a4e5395579e966b329", "a97e8a488724255218606080f9528811"]}}], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": [{"db_id": "6f8780abecad883c8e311c1576d51c74", "kind": "related", "version": "16.0", "label": "16.0", "title": "Add psql command \\drg to show role membership details", "evidence": {"same_day": true, "patch_ids": ["4dba2a4b1e84b7a4e5395579e966b329", "a97e8a488724255218606080f9528811"], "ambiguous_patch_ids": ["4dba2a4b1e84b7a4e5395579e966b329", "a97e8a488724255218606080f9528811"]}, "url": "/docs/compare/?release=16.0#16.0-0bed90a169c7ddf4-1", "source_url": "/docs/release/16.0/#RELEASE-16-PSQL"}]}, {"id": "16.0-ce8cf42f2bcf418f", "cves": [], "html": "<p>Add <code>FOREIGN</code> designation to <span>psql</span> <a href=\"/docs/16/app-psql.html#APP-PSQL-META-COMMAND-D\"><code>\\d+</code></a> for foreign table children and partitions (Ian Lawrence Barwick) <a href=\"https://postgr.es/c/bd95816f7\">§</a></p>", "text": "Add FOREIGN designation to psql \\d+ for foreign table children and partitions (Ian Lawrence Barwick) §", "title": "Add FOREIGN designation to psql \\d+ for foreign table children and partitions", "commits": ["bd95816f7"], "section": "Client Applications / psql", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-PSQL", "source_hash": "3d3bff80a0644fa7ef8ac33e754e531ba30585025eeb63d1e0d5ffe6a4b5c272", "section_path": ["Client Applications", "psql"], "commit_groups": [["bd95816f7"]], "identity_text": "Add FOREIGN designation to psql \\d+ for foreign table children and partitions (Ian Lawrence Barwick)", "commit_aliases": ["bd95816f7"], "source_commits": ["bd95816f7"], "source_entry_id": "16.0/changes/126", "db_id": "943b200015d16c739a17767b9f889532", "patch_ids": ["2d24708d937b1236e53573ea374beb48"], "statement_hash": "d2fafa9ffc63f2be48f6b383db320eef16c976eba434ef928358c76f7dff6048", "relations": [], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-87034022f3f1a450", "cves": [], "html": "<p>Prevent <a href=\"/docs/16/app-psql.html#APP-PSQL-META-COMMAND-DF-UC\"><code>\\df+</code></a> from showing function source code (Isaac Morland) <a href=\"https://postgr.es/c/3dfae91f7\">§</a></p>\n<p>Function bodies are more easily viewed with <a href=\"/docs/16/app-psql.html#APP-PSQL-META-COMMAND-SF\"><code>\\sf</code></a>.</p>", "text": "Prevent \\df+ from showing function source code (Isaac Morland) § Function bodies are more easily viewed with \\sf.", "title": "Prevent \\df+ from showing function source code", "commits": ["3dfae91f7"], "section": "Client Applications / psql", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-PSQL", "source_hash": "d0db8ede8e4d6e76faee46314d2c6697a89fdd7238b588bb30a77262b395707d", "section_path": ["Client Applications", "psql"], "commit_groups": [["3dfae91f7"]], "identity_text": "Prevent \\df+ from showing function source code (Isaac Morland) Function bodies are more easily viewed with \\sf.", "commit_aliases": ["3dfae91f7"], "source_commits": ["3dfae91f7"], "source_entry_id": "16.0/changes/127", "db_id": "5173fa57441ea4049b6e5234ecf85753", "patch_ids": ["11d4ea555e3c74decc77402865cc4c80"], "statement_hash": "7469f1568a99bb22b65ba22695215a391b3c2b322b226a2699ab231a03f4f216", "relations": [], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-7d270e54c1a0f2a9", "cves": [], "html": "<p>Allow <span>psql</span> to submit queries using the extended query protocol (Peter Eisentraut) <a href=\"https://postgr.es/c/5b66de343\">§</a></p>\n<p>Passing arguments to such queries is done using the new <span>psql</span> <a href=\"/docs/16/app-psql.html#APP-PSQL-META-COMMAND-BIND\"><code>\\bind</code></a> command.</p>", "text": "Allow psql to submit queries using the extended query protocol (Peter Eisentraut) § Passing arguments to such queries is done using the new psql \\bind command.", "title": "Allow psql to submit queries using the extended query protocol", "commits": ["5b66de343"], "section": "Client Applications / psql", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-PSQL", "source_hash": "876cc1d8b3aaf2b62bf71765f0cfb0f9fea8d465233bfa2c5bb82d0f10c80b45", "section_path": ["Client Applications", "psql"], "commit_groups": [["5b66de343"]], "identity_text": "Allow psql to submit queries using the extended query protocol (Peter Eisentraut) Passing arguments to such queries is done using the new psql \\bind command.", "commit_aliases": ["5b66de343"], "source_commits": ["5b66de343"], "source_entry_id": "16.0/changes/128", "db_id": "d9a4add0bd8c95097e0fa71921fd1073", "patch_ids": ["d3485f846391b962f7ed75a948e11c07"], "statement_hash": "b98ca8c8eda51363d451a3e285f82699d8e3acea3161663b0f3553a283fad3bb", "relations": [], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-09151f7ab4f7db36", "cves": [], "html": "<p>Allow <span>psql</span> <a href=\"/docs/16/app-psql.html#APP-PSQL-META-COMMAND-WATCH\"><code>\\watch</code></a> to limit the number of executions (Andrey Borodin) <a href=\"https://postgr.es/c/00beecfe8\">§</a></p>\n<p>The <code>\\watch</code> options can now be named when specified.</p>", "text": "Allow psql \\watch to limit the number of executions (Andrey Borodin) § The \\watch options can now be named when specified.", "title": "Allow psql \\watch to limit the number of executions", "commits": ["00beecfe8"], "section": "Client Applications / psql", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-PSQL", "source_hash": "abdbc973415de7aae48a1e34b60d270cbb1d474664afe15c00f6aa3f078e8e34", "section_path": ["Client Applications", "psql"], "commit_groups": [["00beecfe8"]], "identity_text": "Allow psql \\watch to limit the number of executions (Andrey Borodin) The \\watch options can now be named when specified.", "commit_aliases": ["00beecfe8"], "source_commits": ["00beecfe8"], "source_entry_id": "16.0/changes/129", "db_id": "7b79146608c9c1559bd7f28c10fc3528", "patch_ids": ["71f616f8fc4a21b02fb3f1e748283a4b"], "statement_hash": "f46494be74c9de62f205f9ef429036ccb785ac67e453dbf8395f064d86ab976a", "relations": [], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-404e4a705fa0329a", "cves": [], "html": "<p>Detect invalid values for <span>psql</span> <a href=\"/docs/16/app-psql.html#APP-PSQL-META-COMMAND-WATCH\"><code>\\watch</code></a>, and allow zero to specify no delay (Andrey Borodin) <a href=\"https://postgr.es/c/6f9ee74d4\">§</a></p>", "text": "Detect invalid values for psql \\watch, and allow zero to specify no delay (Andrey Borodin) §", "title": "Detect invalid values for psql \\watch, and allow zero to specify no delay", "commits": ["6f9ee74d4"], "section": "Client Applications / psql", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-PSQL", "source_hash": "006424873ca93b70ee87cf1b83ef43c27a5e5ac4604d4109924ce4dca021c53a", "section_path": ["Client Applications", "psql"], "commit_groups": [["6f9ee74d4"]], "identity_text": "Detect invalid values for psql \\watch, and allow zero to specify no delay (Andrey Borodin)", "commit_aliases": ["6f9ee74d4"], "source_commits": ["6f9ee74d4"], "source_entry_id": "16.0/changes/130", "db_id": "ab24bb2c0458d4f82906c5b0aabaeedd", "patch_ids": ["64a46b322f1baf8f914453efb88937f6"], "statement_hash": "962c473bda4fc1e202802c83bdc210a43e4ac8f1d91fafe44e89d0c75d62f809", "relations": [], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-39a3faeaae02ee9c", "cves": [], "html": "<p>Allow <span>psql</span> scripts to obtain the exit status of shell commands and queries (Corey Huinker, Tom Lane) <a href=\"https://postgr.es/c/b0d8f2d98\">§</a> <a href=\"https://postgr.es/c/31ae2aa9d\">§</a></p>\n<p>The new <span>psql</span> control variables are <a href=\"/docs/16/app-psql.html#APP-PSQL-VARIABLES-SHELL-ERROR\"><code>SHELL_ERROR</code></a> and <a href=\"/docs/16/app-psql.html#APP-PSQL-VARIABLES-SHELL-EXIT-CODE\"><code>SHELL_EXIT_CODE</code></a>.</p>", "text": "Allow psql scripts to obtain the exit status of shell commands and queries (Corey Huinker, Tom Lane) § § The new psql control variables are SHELL_ERROR and SHELL_EXIT_CODE.", "title": "Allow psql scripts to obtain the exit status of shell commands and queries", "commits": ["31ae2aa9d", "b0d8f2d98"], "section": "Client Applications / psql", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-PSQL", "source_hash": "ca07464a0326ec6050304d2d83d3342b3aa9b6fc23ed9bfa6214ebcbf57e70a0", "section_path": ["Client Applications", "psql"], "commit_groups": [["31ae2aa9d"], ["b0d8f2d98"]], "identity_text": "Allow psql scripts to obtain the exit status of shell commands and queries (Corey Huinker, Tom Lane) The new psql control variables are SHELL_ERROR and SHELL_EXIT_CODE.", "commit_aliases": ["31ae2aa9d", "b0d8f2d98"], "source_commits": ["31ae2aa9d", "b0d8f2d98"], "source_entry_id": "16.0/changes/131", "db_id": "132afe4d1c35b8989364a05353e2dbe6", "patch_ids": ["76b35fb6abf559f4058807db6fbf4909", "82a5b4d4e10444acbfa39f83cf6c3357"], "statement_hash": "2e1ff17ff19e54971106df9f81da63c89e6a76beb57d9c82fd46dbae50e7a106", "relations": [], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-87aac06087eb5e85", "cves": [], "html": "<p>Various <span>psql</span> tab completion improvements (Vignesh C, Aleksander Alekseev, Dagfinn Ilmari Mannsåker, Shi Yu, Michael Paquier, Ken Kato, Peter Smith) <a href=\"https://postgr.es/c/f6c750d31\">§</a> <a href=\"https://postgr.es/c/4cbe57974\">§</a> <a href=\"https://postgr.es/c/6afcab6ac\">§</a> <a href=\"https://postgr.es/c/9aa58d48f\">§</a> <a href=\"https://postgr.es/c/3cf2f7af7\">§</a> <a href=\"https://postgr.es/c/2ea5de296\">§</a> <a href=\"https://postgr.es/c/07f7237c2\">§</a> <a href=\"https://postgr.es/c/9d0cf5749\">§</a> <a href=\"https://postgr.es/c/a3bc631ea\">§</a> <a href=\"https://postgr.es/c/2ff5ca86e\">§</a> <a href=\"https://postgr.es/c/9e1e9d656\">§</a> <a href=\"https://postgr.es/c/96c498d2f\">§</a></p>", "text": "Various psql tab completion improvements (Vignesh C, Aleksander Alekseev, Dagfinn Ilmari Mannsåker, Shi Yu, Michael Paquier, Ken Kato, Peter Smith) § § § § § § § § § § § §", "title": "Various psql tab completion improvements", "commits": ["07f7237c2", "2ea5de296", "2ff5ca86e", "3cf2f7af7", "4cbe57974", "6afcab6ac", "96c498d2f", "9aa58d48f", "9d0cf5749", "9e1e9d656", "a3bc631ea", "f6c750d31"], "section": "Client Applications / psql", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-PSQL", "source_hash": "ac371039fe5954c65919ceed4c7d2c85d02c3a068b1425f115ca792a53a75bb8", "section_path": ["Client Applications", "psql"], "commit_groups": [["07f7237c2"], ["2ea5de296"], ["2ff5ca86e"], ["3cf2f7af7"], ["4cbe57974"], ["6afcab6ac"], ["96c498d2f"], ["9aa58d48f"], ["9d0cf5749"], ["9e1e9d656"], ["a3bc631ea"], ["f6c750d31"]], "identity_text": "Various psql tab completion improvements (Vignesh C, Aleksander Alekseev, Dagfinn Ilmari Mannsåker, Shi Yu, Michael Paquier, Ken Kato, Peter Smith)", "commit_aliases": ["07f7237c2", "2ea5de296", "2ff5ca86e", "3cf2f7af7", "4cbe57974", "6afcab6ac", "96c498d2f", "9aa58d48f", "9d0cf5749", "9e1e9d656", "a3bc631ea", "f6c750d31"], "source_commits": ["07f7237c2", "2ea5de296", "2ff5ca86e", "3cf2f7af7", "4cbe57974", "6afcab6ac", "96c498d2f", "9aa58d48f", "9d0cf5749", "9e1e9d656", "a3bc631ea", "f6c750d31"], "source_entry_id": "16.0/changes/132", "db_id": "3d576628ea029e396fa86ede3bef3337", "patch_ids": ["04b7952aca52851a0d6621788d45f807", "0e964e888b37cc5d110e8719a7593047", "1db3d1cd73edd0b1b67bd393d6a1610c", "38f8cdc56dcf17978fe65f234a2bc213", "46963e2b85168bd97e58562630484d60", "59ca7436189c201e49eab14820a4d546", "5d8e2eba9fcbf454491b5238c4caea35", "875aa705c4f23f134ac780ae1075a1ef", "a6f8fb6bd45822d0d5bb7b484ea55939", "dfdccc01fec96aea225a32c648190056", "fce3413d74a6af96be6cb7995797c9aa", "fd3f729ca745872033f430d145aa644c"], "statement_hash": "20adba5277f994e7b2da52c532b74b5cc8696bde67220a4cdf71ffb75d663f16", "relations": [], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-a990abec61ceca14", "cves": [], "html": "<p>Add <span>pg_dump</span> control of dumping child tables and partitions (Gilles Darold) <a href=\"https://postgr.es/c/a563c24c9\">§</a></p>\n<p>The new options are <code>--table-and-children</code>, <code>--exclude-table-and-children</code>, and <code>--exclude-table-data-and-children</code>.</p>", "text": "Add pg_dump control of dumping child tables and partitions (Gilles Darold) § The new options are --table-and-children, --exclude-table-and-children, and --exclude-table-data-and-children.", "title": "Add pg_dump control of dumping child tables and partitions", "commits": ["a563c24c9"], "section": "Client Applications / pg_dump", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-PGDUMP", "source_hash": "7ea1bac08ce57f3b0ef1ee5d3cc9b8ad03f627885908b5798564622d99521a54", "section_path": ["Client Applications", "pg_dump"], "commit_groups": [["a563c24c9"]], "identity_text": "Add pg_dump control of dumping child tables and partitions (Gilles Darold) The new options are --table-and-children, --exclude-table-and-children, and --exclude-table-data-and-children.", "commit_aliases": ["a563c24c9"], "source_commits": ["a563c24c9"], "source_entry_id": "16.0/changes/133", "db_id": "2ad5044bb6a4ffcc989cd8ef18e54faf", "patch_ids": ["d220c97cde33db18f07c02212814de28"], "statement_hash": "6f4b3896a48f6f4699053ab4c3c2ff9b6a589082f792ed65de0ba93930bd6f91", "relations": [], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-118394dfd50329ca", "cves": [], "html": "<p>Add <span>LZ4</span> and <span>Zstandard</span> compression to <span>pg_dump</span> (Georgios Kokolatos, Justin Pryzby)</p>", "text": "Add LZ4 and Zstandard compression to pg_dump (Georgios Kokolatos, Justin Pryzby)", "title": "Add LZ4 and Zstandard compression to pg_dump", "commits": [], "section": "Client Applications / pg_dump", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-PGDUMP", "source_hash": "2ef01b305dc4447ac1b746904ed2ffbec8c4f8872705d33510a4d10aebfd2a1e", "section_path": ["Client Applications", "pg_dump"], "commit_groups": [["0070b66fe"], ["0da243fed"], ["84adc8e20"]], "identity_text": "Add LZ4 and Zstandard compression to pg_dump (Georgios Kokolatos, Justin Pryzby)", "commit_aliases": ["0070b66fe", "0da243fed", "84adc8e20"], "source_commits": ["0070b66fe", "0da243fed", "84adc8e20"], "source_entry_id": "16.0/changes/134", "db_id": "3f04b10bd05a220afec15a6ad0cc8ecf", "patch_ids": ["8d9f02f7db61d84652a090cb6aed0b46", "db2e7ee70689ec71246738bb3135e1bf", "e8460a2907fab52e04183d96532480db"], "statement_hash": "b93ac068114e762f91806aab884561c116866f84ded4eac0bdd2d2473b4197c7", "relations": [{"rule": 2, "type": "related", "target": "eac9ec616a833e4b3d13cdd02af08184", "evidence": {"same_day": true, "patch_ids": ["8d9f02f7db61d84652a090cb6aed0b46", "db2e7ee70689ec71246738bb3135e1bf", "e8460a2907fab52e04183d96532480db"], "ambiguous_patch_ids": ["8d9f02f7db61d84652a090cb6aed0b46", "db2e7ee70689ec71246738bb3135e1bf", "e8460a2907fab52e04183d96532480db"]}}], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": [{"db_id": "eac9ec616a833e4b3d13cdd02af08184", "kind": "related", "version": "16.0", "label": "16.0", "title": "Allow pg_dump and pg_basebackup to use long mode for compression", "evidence": {"same_day": true, "patch_ids": ["8d9f02f7db61d84652a090cb6aed0b46", "db2e7ee70689ec71246738bb3135e1bf", "e8460a2907fab52e04183d96532480db"], "ambiguous_patch_ids": ["8d9f02f7db61d84652a090cb6aed0b46", "db2e7ee70689ec71246738bb3135e1bf", "e8460a2907fab52e04183d96532480db"]}, "url": "/docs/compare/?release=16.0#16.0-6408c8295a65e13a", "source_url": "/docs/release/16.0/#RELEASE-16-PGDUMP"}]}, {"id": "16.0-6408c8295a65e13a", "cves": [], "html": "<p>Allow <span>pg_dump</span> and <a href=\"/docs/16/app-pgbasebackup.html\" title=\"pg_basebackup\"><span>pg_basebackup</span></a> to use <code>long</code> mode for compression (Justin Pryzby) <a href=\"https://postgr.es/c/0da243fed\">§</a> <a href=\"https://postgr.es/c/0070b66fe\">§</a> <a href=\"https://postgr.es/c/84adc8e20\">§</a> <a href=\"https://postgr.es/c/2820adf77\">§</a></p>", "text": "Allow pg_dump and pg_basebackup to use long mode for compression (Justin Pryzby) § § § §", "title": "Allow pg_dump and pg_basebackup to use long mode for compression", "commits": ["0070b66fe", "0da243fed", "2820adf77", "84adc8e20"], "section": "Client Applications / pg_dump", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-PGDUMP", "source_hash": "4145dbda5e98ac50bd2bc4342e00742813dbcbc626e30e6b3f3279197cf1b1e9", "section_path": ["Client Applications", "pg_dump"], "commit_groups": [["0070b66fe"], ["0da243fed"], ["2820adf77"], ["84adc8e20"]], "identity_text": "Allow pg_dump and pg_basebackup to use long mode for compression (Justin Pryzby)", "commit_aliases": ["0070b66fe", "0da243fed", "2820adf77", "84adc8e20"], "source_commits": ["0070b66fe", "0da243fed", "2820adf77", "84adc8e20"], "source_entry_id": "16.0/changes/135", "db_id": "eac9ec616a833e4b3d13cdd02af08184", "patch_ids": ["59c0786f525eef950d8b01a53d6a60b6", "8d9f02f7db61d84652a090cb6aed0b46", "db2e7ee70689ec71246738bb3135e1bf", "e8460a2907fab52e04183d96532480db"], "statement_hash": "d968b1e2060f40319900a09f02ec3beff2e5a4e1be955ac31a630072e852d663", "relations": [{"rule": 2, "type": "related", "target": "3f04b10bd05a220afec15a6ad0cc8ecf", "evidence": {"same_day": true, "patch_ids": ["8d9f02f7db61d84652a090cb6aed0b46", "db2e7ee70689ec71246738bb3135e1bf", "e8460a2907fab52e04183d96532480db"], "ambiguous_patch_ids": ["8d9f02f7db61d84652a090cb6aed0b46", "db2e7ee70689ec71246738bb3135e1bf", "e8460a2907fab52e04183d96532480db"]}}], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": [{"db_id": "3f04b10bd05a220afec15a6ad0cc8ecf", "kind": "related", "version": "16.0", "label": "16.0", "title": "Add LZ4 and Zstandard compression to pg_dump", "evidence": {"same_day": true, "patch_ids": ["8d9f02f7db61d84652a090cb6aed0b46", "db2e7ee70689ec71246738bb3135e1bf", "e8460a2907fab52e04183d96532480db"], "ambiguous_patch_ids": ["8d9f02f7db61d84652a090cb6aed0b46", "db2e7ee70689ec71246738bb3135e1bf", "e8460a2907fab52e04183d96532480db"]}, "url": "/docs/compare/?release=16.0#16.0-118394dfd50329ca", "source_url": "/docs/release/16.0/#RELEASE-16-PGDUMP"}]}, {"id": "16.0-05869a3754dc30d2", "cves": [], "html": "<p>Improve <span>pg_dump</span> to accept a more consistent compression syntax (Georgios Kokolatos) <a href=\"https://postgr.es/c/5e73a6048\">§</a></p>\n<p>Options like <code>--compress=gzip:5</code>.</p>", "text": "Improve pg_dump to accept a more consistent compression syntax (Georgios Kokolatos) § Options like --compress=gzip:5.", "title": "Improve pg_dump to accept a more consistent compression syntax", "commits": ["5e73a6048"], "section": "Client Applications / pg_dump", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-PGDUMP", "source_hash": "bda8f27a74c35436c3a105984a3ac54fbe9fab590bca619df198f34def4f1bd1", "section_path": ["Client Applications", "pg_dump"], "commit_groups": [["5e73a6048"]], "identity_text": "Improve pg_dump to accept a more consistent compression syntax (Georgios Kokolatos) Options like --compress=gzip:5.", "commit_aliases": ["5e73a6048"], "source_commits": ["5e73a6048"], "source_entry_id": "16.0/changes/136", "db_id": "2f0dd46f8fa992fc6e592092533e4b24", "patch_ids": ["9366ddab381d7edf0a70648e54752846"], "statement_hash": "79287fd918c3a945b93601212f136ca366d50129a2c442158a39df39c0373d94", "relations": [], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-faaac17d2df58e1d", "cves": [], "html": "<p>Add <a href=\"/docs/16/app-initdb.html\" title=\"initdb\"><span>initdb</span></a> option to set server variables for the duration of <span>initdb</span> and all future server starts (Tom Lane) <a href=\"https://postgr.es/c/3e51b278d\">§</a></p>\n<p>The option is <code>-c name=value</code>.</p>", "text": "Add initdb option to set server variables for the duration of initdb and all future server starts (Tom Lane) § The option is -c name=value.", "title": "Add initdb option to set server variables for the duration of initdb and all future server starts", "commits": ["3e51b278d"], "section": "Server Applications", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-SERVER-APPS", "source_hash": "da574249468409c50c4ef7fa4941c834c6140e75a9b6a0d5055eec82c1bb010b", "section_path": ["Server Applications"], "commit_groups": [["3e51b278d"]], "identity_text": "Add initdb option to set server variables for the duration of initdb and all future server starts (Tom Lane) The option is -c name=value.", "commit_aliases": ["3e51b278d"], "source_commits": ["3e51b278d"], "source_entry_id": "16.0/changes/137", "db_id": "7bb6d25c77b7d83e36f77a40f37d8bd8", "patch_ids": ["40d429c59da535f5b88d0212aa767c9a"], "statement_hash": "ebeded1ffe35fa19d03ea43bf818d3501d0896e6d6207cbafdfd2c54d85e2470", "relations": [], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-e52d79ef633c5073", "cves": [], "html": "<p>Add options to <a href=\"/docs/16/app-createuser.html\" title=\"createuser\"><span>createuser</span></a> to control more user options (Shinya Kato) <a href=\"https://postgr.es/c/08951a7c9\">§</a> <a href=\"https://postgr.es/c/2dcd1578c\">§</a></p>\n<p>Specifically, the new options control the valid-until date, bypassing of row-level security, and role membership.</p>", "text": "Add options to createuser to control more user options (Shinya Kato) § § Specifically, the new options control the valid-until date, bypassing of row-level security, and role membership.", "title": "Add options to createuser to control more user options", "commits": ["08951a7c9", "2dcd1578c"], "section": "Server Applications", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-SERVER-APPS", "source_hash": "a171cc2f9771e770d145f092bc9ca45719021497d9029832579a16558f5b22be", "section_path": ["Server Applications"], "commit_groups": [["08951a7c9"], ["2dcd1578c"]], "identity_text": "Add options to createuser to control more user options (Shinya Kato) Specifically, the new options control the valid-until date, bypassing of row-level security, and role membership.", "commit_aliases": ["08951a7c9", "2dcd1578c"], "source_commits": ["08951a7c9", "2dcd1578c"], "source_entry_id": "16.0/changes/138", "db_id": "99c81f49e15f25a9f65e8cd97c3071a8", "patch_ids": ["bd5fc3b9f01aba2c1a7e76657b16553f", "e79bd17eece393e7e478ee187416caf1"], "statement_hash": "8b3ad9ff7e92426270c3ba4ceaeb4875d08a8e5e879336b2c54a5f25b29c5510", "relations": [{"rule": 2, "type": "related", "target": "d1003ce42539905f287a47b3acb0a317", "evidence": {"same_day": true, "patch_ids": ["bd5fc3b9f01aba2c1a7e76657b16553f"], "ambiguous_patch_ids": ["bd5fc3b9f01aba2c1a7e76657b16553f"]}}], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": [{"db_id": "d1003ce42539905f287a47b3acb0a317", "kind": "related", "version": "16.0", "label": "16.0", "title": "Deprecate createuser option --role", "evidence": {"same_day": true, "patch_ids": ["bd5fc3b9f01aba2c1a7e76657b16553f"], "ambiguous_patch_ids": ["bd5fc3b9f01aba2c1a7e76657b16553f"]}, "url": "/docs/compare/?release=16.0#16.0-0edbd808eb80e792", "source_url": "/docs/release/16.0/#RELEASE-16-SERVER-APPS"}]}, {"id": "16.0-0edbd808eb80e792", "cves": [], "html": "<p>Deprecate <a href=\"/docs/16/app-createuser.html\" title=\"createuser\"><span>createuser</span></a> option <code>--role</code> (Nathan Bossart) <a href=\"https://postgr.es/c/2dcd1578c\">§</a> <a href=\"https://postgr.es/c/381d19b3e\">§</a></p>\n<p>This option could be easily confused with new <span>createuser</span> role membership options, so option <code>--member-of</code> has been added with the same functionality. The <code>--role</code> option can still be used.</p>", "text": "Deprecate createuser option --role (Nathan Bossart) § § This option could be easily confused with new createuser role membership options, so option --member-of has been added with the same functionality. The --role option can still be used.", "title": "Deprecate createuser option --role", "commits": ["2dcd1578c", "381d19b3e"], "section": "Server Applications", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-SERVER-APPS", "source_hash": "0a4f64fa91ac54ce439efb5e27dbbf6b5ebd44e3531a5c8b72e6d7afbd8cb907", "section_path": ["Server Applications"], "commit_groups": [["2dcd1578c"], ["381d19b3e"]], "identity_text": "Deprecate createuser option --role (Nathan Bossart) This option could be easily confused with new createuser role membership options, so option --member-of has been added with the same functionality. The --role option can still be used.", "commit_aliases": ["2dcd1578c", "381d19b3e"], "source_commits": ["2dcd1578c", "381d19b3e"], "source_entry_id": "16.0/changes/139", "db_id": "d1003ce42539905f287a47b3acb0a317", "patch_ids": ["0a348a0c1ce99b4bf9ca9bdb9f845c53", "bd5fc3b9f01aba2c1a7e76657b16553f"], "statement_hash": "708f65fec6a26dacae4a1a02258f52d1994135a445ce569e11bec304d60d6105", "relations": [{"rule": 2, "type": "related", "target": "99c81f49e15f25a9f65e8cd97c3071a8", "evidence": {"same_day": true, "patch_ids": ["bd5fc3b9f01aba2c1a7e76657b16553f"], "ambiguous_patch_ids": ["bd5fc3b9f01aba2c1a7e76657b16553f"]}}], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": [{"db_id": "99c81f49e15f25a9f65e8cd97c3071a8", "kind": "related", "version": "16.0", "label": "16.0", "title": "Add options to createuser to control more user options", "evidence": {"same_day": true, "patch_ids": ["bd5fc3b9f01aba2c1a7e76657b16553f"], "ambiguous_patch_ids": ["bd5fc3b9f01aba2c1a7e76657b16553f"]}, "url": "/docs/compare/?release=16.0#16.0-e52d79ef633c5073", "source_url": "/docs/release/16.0/#RELEASE-16-SERVER-APPS"}]}, {"id": "16.0-1e6775f3a413b164", "cves": [], "html": "<p>Allow control of <a href=\"/docs/16/app-vacuumdb.html\" title=\"vacuumdb\"><span>vacuumdb</span></a> schema processing (Gilles Darold) <a href=\"https://postgr.es/c/7781f4e3e\">§</a></p>\n<p>These are controlled by options <code>--schema</code> and <code>--exclude-schema</code>.</p>", "text": "Allow control of vacuumdb schema processing (Gilles Darold) § These are controlled by options --schema and --exclude-schema.", "title": "Allow control of vacuumdb schema processing", "commits": ["7781f4e3e"], "section": "Server Applications", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-SERVER-APPS", "source_hash": "e2ad62747da6f5d4b24879f974112656e926a90c1aa86c63baa53012358646ed", "section_path": ["Server Applications"], "commit_groups": [["7781f4e3e"]], "identity_text": "Allow control of vacuumdb schema processing (Gilles Darold) These are controlled by options --schema and --exclude-schema.", "commit_aliases": ["7781f4e3e"], "source_commits": ["7781f4e3e"], "source_entry_id": "16.0/changes/140", "db_id": "15505ca8f0ce7c90af7c4781b0431f27", "patch_ids": ["817290b3e2239aa059dac5053fcdedb7"], "statement_hash": "49fe4409ad908530b457a12b70e5c140d0f1485663dfd9dd48b3516b5edb1bf2", "relations": [], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-257e374fb0d63799", "cves": [], "html": "<p>Use new <a href=\"/docs/16/sql-vacuum.html\" title=\"VACUUM\"><code>VACUUM</code></a> options to improve the performance of <a href=\"/docs/16/app-vacuumdb.html\" title=\"vacuumdb\"><span>vacuumdb</span></a> (Tom Lane, Nathan Bossart) <a href=\"https://postgr.es/c/a46a7011b\">§</a></p>", "text": "Use new VACUUM options to improve the performance of vacuumdb (Tom Lane, Nathan Bossart) §", "title": "Use new VACUUM options to improve the performance of vacuumdb", "commits": ["a46a7011b"], "section": "Server Applications", "category": "performance", "source_url": "/docs/release/16.0/#RELEASE-16-SERVER-APPS", "source_hash": "4ed1cada8b9488800f9de3bc1490724191d4b78643e030cbccb56811bdf254f9", "section_path": ["Server Applications"], "commit_groups": [["a46a7011b"]], "identity_text": "Use new VACUUM options to improve the performance of vacuumdb (Tom Lane, Nathan Bossart)", "commit_aliases": ["a46a7011b"], "source_commits": ["a46a7011b"], "source_entry_id": "16.0/changes/141", "db_id": "14e919445c15a22f53716118595810d3", "patch_ids": ["7ef9b10294fcd9c5eaca0c87b7436e1a"], "statement_hash": "41df18fa569a6502e8059a6c14ebb4d1574a80fc8025bc0d57001ab6b5328ef0", "relations": [{"rule": 2, "type": "related", "target": "e136e43acbe4861285a36e1d2974b349", "evidence": {"same_day": true, "patch_ids": ["7ef9b10294fcd9c5eaca0c87b7436e1a"], "ambiguous_patch_ids": ["7ef9b10294fcd9c5eaca0c87b7436e1a"]}}], "version": "16.0", "category_label": "Performance", "also_in": [], "variants": [], "related_changes": [{"db_id": "e136e43acbe4861285a36e1d2974b349", "kind": "related", "version": "16.0", "label": "16.0", "title": "Add VACUUM options to skip or update all frozen statistics", "evidence": {"same_day": true, "patch_ids": ["7ef9b10294fcd9c5eaca0c87b7436e1a"], "ambiguous_patch_ids": ["7ef9b10294fcd9c5eaca0c87b7436e1a"]}, "url": "/docs/compare/?release=16.0#16.0-1267728166d02d99", "source_url": "/docs/release/16.0/#RELEASE-16-UTILITY"}]}, {"id": "16.0-d33d412624af5325", "cves": [], "html": "<p>Have <a href=\"/docs/16/pgupgrade.html\" title=\"pg_upgrade\"><span>pg_upgrade</span></a> set the new cluster's locale and encoding (Jeff Davis) <a href=\"https://postgr.es/c/9637badd9\">§</a></p>\n<p>This removes the requirement that the new cluster be created with the same locale and encoding settings.</p>", "text": "Have pg_upgrade set the new cluster's locale and encoding (Jeff Davis) § This removes the requirement that the new cluster be created with the same locale and encoding settings.", "title": "Have pg_upgrade set the new cluster's locale and encoding", "commits": ["9637badd9"], "section": "Server Applications", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-SERVER-APPS", "source_hash": "f7096f78cdad72be1d54a6d8573a6397800ecf6ee40c7131d2bf53e38d655b00", "section_path": ["Server Applications"], "commit_groups": [["9637badd9"]], "identity_text": "Have pg_upgrade set the new cluster's locale and encoding (Jeff Davis) This removes the requirement that the new cluster be created with the same locale and encoding settings.", "commit_aliases": ["9637badd9"], "source_commits": ["9637badd9"], "source_entry_id": "16.0/changes/142", "db_id": "92dc17d3e35679b8c6be4cb93ca20752", "patch_ids": ["c9231b99b4507bb89a3c41de12df7ecf"], "statement_hash": "79a94f211f413112a4b5fd4194e529d532502fb3005acded087ed4b55ef858c3", "relations": [], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-496ace7cad9c3401", "cves": [], "html": "<p>Add <a href=\"/docs/16/pgupgrade.html\" title=\"pg_upgrade\"><span>pg_upgrade</span></a> option to specify the default transfer mode (Peter Eisentraut) <a href=\"https://postgr.es/c/746915c68\">§</a></p>\n<p>The option is <code>--copy</code>.</p>", "text": "Add pg_upgrade option to specify the default transfer mode (Peter Eisentraut) § The option is --copy.", "title": "Add pg_upgrade option to specify the default transfer mode", "commits": ["746915c68"], "section": "Server Applications", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-SERVER-APPS", "source_hash": "49ab81d1d74190ccd77c69f93a33619bf82e98318b6e90fdd93c7e9a7734186e", "section_path": ["Server Applications"], "commit_groups": [["746915c68"]], "identity_text": "Add pg_upgrade option to specify the default transfer mode (Peter Eisentraut) The option is --copy.", "commit_aliases": ["746915c68"], "source_commits": ["746915c68"], "source_entry_id": "16.0/changes/143", "db_id": "bb817ef76e9a0ab4ffa1ec3cc9a278b0", "patch_ids": ["fa28ecf37e18e77d91c89c1ef8221a74"], "statement_hash": "2a0f7178bdf2c5926e6663501d45ac6b9e1b44239aa772b6a8c0288bf4fb3043", "relations": [], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-3a553a0639d24059", "cves": [], "html": "<p>Improve <a href=\"/docs/16/app-pgbasebackup.html\" title=\"pg_basebackup\"><span>pg_basebackup</span></a> to accept numeric compression options (Georgios Kokolatos, Michael Paquier) <a href=\"https://postgr.es/c/d18655cc0\">§</a></p>\n<p>Options like <code>--compress=server-5</code> are now supported.</p>", "text": "Improve pg_basebackup to accept numeric compression options (Georgios Kokolatos, Michael Paquier) § Options like --compress=server-5 are now supported.", "title": "Improve pg_basebackup to accept numeric compression options", "commits": ["d18655cc0"], "section": "Server Applications", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-SERVER-APPS", "source_hash": "9397eec752384450805e2adc78e5184d058e519fa90d63b2703c6050d09ed779", "section_path": ["Server Applications"], "commit_groups": [["d18655cc0"]], "identity_text": "Improve pg_basebackup to accept numeric compression options (Georgios Kokolatos, Michael Paquier) Options like --compress=server-5 are now supported.", "commit_aliases": ["d18655cc0"], "source_commits": ["d18655cc0"], "source_entry_id": "16.0/changes/144", "db_id": "52ab016a9ea93c50f7effa2169f262b1", "patch_ids": ["6c9232a52825594823341f8b1007d5aa"], "statement_hash": "328acb54b8bed6974b49853da7c1664eae1f6b50bc4f74509e34ff226450473d", "relations": [], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-6f065255c0c60022", "cves": [], "html": "<p>Fix <a href=\"/docs/16/app-pgbasebackup.html\" title=\"pg_basebackup\"><span>pg_basebackup</span></a> to handle tablespaces stored in the <code>PGDATA</code> directory (Robert Haas) <a href=\"https://postgr.es/c/363e8f911\">§</a></p>", "text": "Fix pg_basebackup to handle tablespaces stored in the PGDATA directory (Robert Haas) §", "title": "Fix pg_basebackup to handle tablespaces stored in the PGDATA directory", "commits": ["363e8f911"], "section": "Server Applications", "category": "bugfix", "source_url": "/docs/release/16.0/#RELEASE-16-SERVER-APPS", "source_hash": "677c22a8c7b224d7d3455ecf6d2c9bbfff99754d848c427d78575df90a6af0cd", "section_path": ["Server Applications"], "commit_groups": [["363e8f911"]], "identity_text": "Fix pg_basebackup to handle tablespaces stored in the PGDATA directory (Robert Haas)", "commit_aliases": ["363e8f911"], "source_commits": ["363e8f911"], "source_entry_id": "16.0/changes/145", "db_id": "be8db36699f55508bd67a4285c759fc6", "patch_ids": ["bacc78f6ab1c43509f54d240b3a0589d"], "statement_hash": "05a43a081aa469b4347379edae2e25d89a1a390b4a50b7f3e71fbbe7ad4cc7fc", "relations": [], "version": "16.0", "category_label": "Bug fixes", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-0c8fc03eb561b2b6", "cves": [], "html": "<p>Add <a href=\"/docs/16/pgwaldump.html\" title=\"pg_waldump\"><span>pg_waldump</span></a> option <code>--save-fullpage</code> to dump full page images (David Christensen) <a href=\"https://postgr.es/c/d497093cb\">§</a></p>", "text": "Add pg_waldump option --save-fullpage to dump full page images (David Christensen) §", "title": "Add pg_waldump option --save-fullpage to dump full page images", "commits": ["d497093cb"], "section": "Server Applications", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-SERVER-APPS", "source_hash": "887b611fa1736c52e5c7f7cec37e1457756d8f3c9813c27ef5f485e7b66b30e7", "section_path": ["Server Applications"], "commit_groups": [["d497093cb"]], "identity_text": "Add pg_waldump option --save-fullpage to dump full page images (David Christensen)", "commit_aliases": ["d497093cb"], "source_commits": ["d497093cb"], "source_entry_id": "16.0/changes/146", "db_id": "867554d293b83e0ea8bda7109f32c10c", "patch_ids": ["ede0174696cad9b69771bb2599904159"], "statement_hash": "012d79aad22ed295d0d27d5e678d7686182acfddb3ca3da132da430a4eab8a7e", "relations": [], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-117c475668ca0347", "cves": [], "html": "<p>Allow <a href=\"/docs/16/pgwaldump.html\" title=\"pg_waldump\"><span>pg_waldump</span></a> options <code>-t</code>/<code>--timeline</code> to accept hexadecimal values (Peter Eisentraut) <a href=\"https://postgr.es/c/4c8044c04\">§</a></p>", "text": "Allow pg_waldump options -t/--timeline to accept hexadecimal values (Peter Eisentraut) §", "title": "Allow pg_waldump options -t/--timeline to accept hexadecimal values", "commits": ["4c8044c04"], "section": "Server Applications", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-SERVER-APPS", "source_hash": "6c64ea2e79ec608078b03b57ccac778ee59be942e8abf3574cd9155de631b2d0", "section_path": ["Server Applications"], "commit_groups": [["4c8044c04"]], "identity_text": "Allow pg_waldump options -t/--timeline to accept hexadecimal values (Peter Eisentraut)", "commit_aliases": ["4c8044c04"], "source_commits": ["4c8044c04"], "source_entry_id": "16.0/changes/147", "db_id": "0ad4fd2a44450651a56431933770c806", "patch_ids": ["a149985975fbac511584d3b8fba8798e"], "statement_hash": "10dbd0dd45f78560af9aec3d224a587379004cfc2ffe7a7a3b05fb775d4d1eb2", "relations": [], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-ecc7f26d0777cf48", "cves": [], "html": "<p>Add support for progress reporting to <a href=\"/docs/16/app-pgverifybackup.html\" title=\"pg_verifybackup\"><span>pg_verifybackup</span></a> (Masahiko Sawada) <a href=\"https://postgr.es/c/d07c2948b\">§</a></p>", "text": "Add support for progress reporting to pg_verifybackup (Masahiko Sawada) §", "title": "Add support for progress reporting to pg_verifybackup", "commits": ["d07c2948b"], "section": "Server Applications", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-SERVER-APPS", "source_hash": "2993895060cdfb74a6a78b9fba1091dbf6932137527d16809ef679bc820fd9fc", "section_path": ["Server Applications"], "commit_groups": [["d07c2948b"]], "identity_text": "Add support for progress reporting to pg_verifybackup (Masahiko Sawada)", "commit_aliases": ["d07c2948b"], "source_commits": ["d07c2948b"], "source_entry_id": "16.0/changes/148", "db_id": "7933db2c3a45b895c9c48eca47d9f4ec", "patch_ids": ["3661760a3d6e3c83dec1d31ea427f684"], "statement_hash": "dc379f4f1aa550eeff3a2abe13e4e059dce598ae6a075aaabed21003b133846b", "relations": [], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-17f56e42d0ea0a5d", "cves": [], "html": "<p>Allow <a href=\"/docs/16/app-pgrewind.html\" title=\"pg_rewind\"><span>pg_rewind</span></a> to properly track timeline changes (Heikki Linnakangas) <a href=\"https://postgr.es/c/009eeee74\">§</a> <a href=\"https://postgr.es/c/0a0500207\">§</a></p>\n<p>Previously if <span>pg_rewind</span> was run after a timeline switch but before a checkpoint was issued, it might incorrectly determine that a rewind was unnecessary.</p>", "text": "Allow pg_rewind to properly track timeline changes (Heikki Linnakangas) § § Previously if pg_rewind was run after a timeline switch but before a checkpoint was issued, it might incorrectly determine that a rewind was unnecessary.", "title": "Allow pg_rewind to properly track timeline changes", "commits": ["009eeee74", "0a0500207"], "section": "Server Applications", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-SERVER-APPS", "source_hash": "fff9ae8a96b654d32cd65355fca0b4b5f41ddd46e3b452035b667024906d08cf", "section_path": ["Server Applications"], "commit_groups": [["009eeee74"], ["0a0500207"]], "identity_text": "Allow pg_rewind to properly track timeline changes (Heikki Linnakangas) Previously if pg_rewind was run after a timeline switch but before a checkpoint was issued, it might incorrectly determine that a rewind was unnecessary.", "commit_aliases": ["009eeee74", "0a0500207"], "source_commits": ["009eeee74", "0a0500207"], "source_entry_id": "16.0/changes/149", "db_id": "5bee3a75ff058f1224ff3004977a76c7", "patch_ids": ["0dbb099aad2ac26448f33ef34aeb5f0d", "fe9b6f49cb807dedf6ab9783b0cddc84"], "statement_hash": "a9039415ef158b62da396a747657f1c9ae993539b8cc41e669c28744d7cb205c", "relations": [], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-b3f29b5a52633251", "cves": [], "html": "<p>Have <a href=\"/docs/16/app-pgreceivewal.html\" title=\"pg_receivewal\"><span>pg_receivewal</span></a> and <a href=\"/docs/16/app-pgrecvlogical.html\" title=\"pg_recvlogical\"><span>pg_recvlogical</span></a> cleanly exit on <code>SIGTERM</code> (Christoph Berg) <a href=\"https://postgr.es/c/8b60db774\">§</a></p>\n<p>This signal is often used by <span>systemd</span>.</p>", "text": "Have pg_receivewal and pg_recvlogical cleanly exit on SIGTERM (Christoph Berg) § This signal is often used by systemd.", "title": "Have pg_receivewal and pg_recvlogical cleanly exit on SIGTERM", "commits": ["8b60db774"], "section": "Server Applications", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-SERVER-APPS", "source_hash": "9212ee37d24c56e4a527edf564a9cd22be611535d9d06c9b32aade75bb1ead41", "section_path": ["Server Applications"], "commit_groups": [["8b60db774"]], "identity_text": "Have pg_receivewal and pg_recvlogical cleanly exit on SIGTERM (Christoph Berg) This signal is often used by systemd.", "commit_aliases": ["8b60db774"], "source_commits": ["8b60db774"], "source_entry_id": "16.0/changes/150", "db_id": "1b57aefc5a97e130754f9ea9cb8c1a93", "patch_ids": ["f5030682639d4cac3228de5f045cc0b0"], "statement_hash": "1ad67d6082c8643ed47ec712daabc198f8e31d250359fb01cc34a456bc4f34e4", "relations": [], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-42aea270a49e2240", "cves": [], "html": "<p>Build <acronym>ICU</acronym> support by default (Jeff Davis) <a href=\"https://postgr.es/c/fcb21b3ac\">§</a></p>\n<p>This removes <a href=\"/docs/16/installation.html\" title=\"Chapter 17. Installation from Source Code\">build flag</a> <code>--with-icu</code> and adds flag <code>--without-icu</code>.</p>", "text": "Build ICU support by default (Jeff Davis) § This removes build flag --with-icu and adds flag --without-icu.", "title": "Build ICU support by default", "commits": ["fcb21b3ac"], "section": "Source Code", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-SOURCE-CODE", "source_hash": "9e694e6de72bef737bf338f219192c75eceffd7f5cf56c3db11fe6f1eff2174e", "section_path": ["Source Code"], "commit_groups": [["fcb21b3ac"]], "identity_text": "Build ICU support by default (Jeff Davis) This removes build flag --with-icu and adds flag --without-icu.", "commit_aliases": ["fcb21b3ac"], "source_commits": ["fcb21b3ac"], "source_entry_id": "16.0/changes/151", "db_id": "eccf368746a3b9e291e0319807fa104f", "patch_ids": ["cca80f802db967c81e65101b547cd0ad"], "statement_hash": "3c010ba98431dbe915477fbcbfe51bcbf39bcb51f1bfd778ddf20533b04e9e30", "relations": [], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-eb5479104982aa03", "cves": [], "html": "<p>Add support for SSE2 (Streaming <acronym>SIMD</acronym> Extensions 2) vector operations on x86-64 architectures (John Naylor) <a href=\"https://postgr.es/c/56f2c7b58\">§</a></p>", "text": "Add support for SSE2 (Streaming SIMD Extensions 2) vector operations on x86-64 architectures (John Naylor) §", "title": "Add support for SSE2 (Streaming SIMD Extensions 2) vector operations on x86-64 architectures", "commits": ["56f2c7b58"], "section": "Source Code", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-SOURCE-CODE", "source_hash": "abec9132ca310773bf9fd089cd2ecbe565d237d74eeff88938580d457ad6f453", "section_path": ["Source Code"], "commit_groups": [["56f2c7b58"]], "identity_text": "Add support for SSE2 (Streaming SIMD Extensions 2) vector operations on x86-64 architectures (John Naylor)", "commit_aliases": ["56f2c7b58"], "source_commits": ["56f2c7b58"], "source_entry_id": "16.0/changes/152", "db_id": "2d794d4b6c0f344e0a77bc63563c7ba3", "patch_ids": ["200445439e2a00405d3d8e1d775e36d4"], "statement_hash": "341d661486147a312fad287ae56d5b4739c9d5e953fe4e906a134707cb462210", "relations": [], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-aac7ff76696cc669", "cves": [], "html": "<p>Add support for Advanced <acronym>SIMD</acronym> (Single Instruction Multiple Data) (<acronym>NEON</acronym>) instructions on <acronym>ARM</acronym> architectures (Nathan Bossart) <a href=\"https://postgr.es/c/82739d4a8\">§</a></p>", "text": "Add support for Advanced SIMD (Single Instruction Multiple Data) (NEON) instructions on ARM architectures (Nathan Bossart) §", "title": "Add support for Advanced SIMD (Single Instruction Multiple Data) (NEON) instructions on ARM architectures", "commits": ["82739d4a8"], "section": "Source Code", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-SOURCE-CODE", "source_hash": "dd327c6dffb18cbbec92bb336a1bf279617868d8ee5d831c2b15cb8d2256a3da", "section_path": ["Source Code"], "commit_groups": [["82739d4a8"]], "identity_text": "Add support for Advanced SIMD (Single Instruction Multiple Data) (NEON) instructions on ARM architectures (Nathan Bossart)", "commit_aliases": ["82739d4a8"], "source_commits": ["82739d4a8"], "source_entry_id": "16.0/changes/153", "db_id": "4b0644b33e3730c26742bffd99b748bf", "patch_ids": ["bc9e666a11819a60a1468049f05cd69b"], "statement_hash": "a12959cb90be5ce3a287d69217c02ed77e59ab9ff8294e69f504ba3a597e0cbb", "relations": [], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-0bb652e3936b8714", "cves": [], "html": "<p>Have <span>Windows</span> binaries built with <span>MSVC</span> use <code>RandomizedBaseAddress</code> (<acronym>ASLR</acronym>) (Michael Paquier) <a href=\"https://postgr.es/c/36389a060\">§</a></p>\n<p>This was already enabled on <span>MinGW</span> builds.</p>", "text": "Have Windows binaries built with MSVC use RandomizedBaseAddress (ASLR) (Michael Paquier) § This was already enabled on MinGW builds.", "title": "Have Windows binaries built with MSVC use RandomizedBaseAddress (ASLR)", "commits": ["36389a060"], "section": "Source Code", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-SOURCE-CODE", "source_hash": "da2513a12c645eb94fbca37ece030af801fcdd511344e45a7fca0f8629620151", "section_path": ["Source Code"], "commit_groups": [["36389a060"]], "identity_text": "Have Windows binaries built with MSVC use RandomizedBaseAddress (ASLR) (Michael Paquier) This was already enabled on MinGW builds.", "commit_aliases": ["36389a060"], "source_commits": ["36389a060"], "source_entry_id": "16.0/changes/154", "db_id": "ac79867824dc5d8492a706a6336316fc", "patch_ids": ["e7d0ee43b3a34f62f48b94c175419604"], "statement_hash": "06b407e9a1af6cf6ecffcc37d0c1176543b657fec0c50e6d89e97010c7418a4e", "relations": [], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-e71020df67825e2c", "cves": [], "html": "<p>Prevent extension libraries from exporting their symbols by default (Andres Freund, Tom Lane) <a href=\"https://postgr.es/c/089480c07\">§</a> <a href=\"https://postgr.es/c/8cf64d35e\">§</a></p>\n<p>Functions that need to be called from the core backend or other extensions must now be explicitly marked <code>PGDLLEXPORT</code>.</p>", "text": "Prevent extension libraries from exporting their symbols by default (Andres Freund, Tom Lane) § § Functions that need to be called from the core backend or other extensions must now be explicitly marked PGDLLEXPORT.", "title": "Prevent extension libraries from exporting their symbols by default", "commits": ["089480c07", "8cf64d35e"], "section": "Source Code", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-SOURCE-CODE", "source_hash": "c2b749e5de93f1ed76c58612d55c414e8cb3c42ac7b76c7eb168369bc6bda8ee", "section_path": ["Source Code"], "commit_groups": [["089480c07"], ["8cf64d35e"]], "identity_text": "Prevent extension libraries from exporting their symbols by default (Andres Freund, Tom Lane) Functions that need to be called from the core backend or other extensions must now be explicitly marked PGDLLEXPORT.", "commit_aliases": ["089480c07", "8cf64d35e"], "source_commits": ["089480c07", "8cf64d35e"], "source_entry_id": "16.0/changes/155", "db_id": "612685809e6a30180a5d762db83d5a3a", "patch_ids": ["127303795d4b7ee358e134a13055cb7d", "284a8161c7511c69feaca80ca5fa5373"], "statement_hash": "821e8c4a87f48299f8640cbc1e915fa065b27f42c97fc1ae67bbf8574b9978e4", "relations": [], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-941f6b5913900e51", "cves": [], "html": "<p>Require <span>Windows 10</span> or newer versions (Michael Paquier, Juan José Santamaría Flecha) <a href=\"https://postgr.es/c/495ed0ef2\">§</a></p>\n<p>Previously <span>Windows Vista</span> and <span>Windows XP</span> were supported.</p>", "text": "Require Windows 10 or newer versions (Michael Paquier, Juan José Santamaría Flecha) § Previously Windows Vista and Windows XP were supported.", "title": "Require Windows 10 or newer versions", "commits": ["495ed0ef2"], "section": "Source Code", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-SOURCE-CODE", "source_hash": "51804cb9cad0e581920fe3bb675ecd4707186e90e28c9afabe8a572945e9993a", "section_path": ["Source Code"], "commit_groups": [["495ed0ef2"]], "identity_text": "Require Windows 10 or newer versions (Michael Paquier, Juan José Santamaría Flecha) Previously Windows Vista and Windows XP were supported.", "commit_aliases": ["495ed0ef2"], "source_commits": ["495ed0ef2"], "source_entry_id": "16.0/changes/156", "db_id": "0516cb65c04e151eeaf2beb3559450d8", "patch_ids": ["30b05c0d61d90be04a05fb62fbbb0ca0"], "statement_hash": "d7b241f5a49becc8c354a0ee530cf2fda4861d6766f37bd3a5faac8a0521cdd7", "relations": [], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-da95d2ab300e177b", "cves": [], "html": "<p>Require <span>Perl</span> version 5.14 or later (John Naylor) <a href=\"https://postgr.es/c/4c1532763\">§</a></p>", "text": "Require Perl version 5.14 or later (John Naylor) §", "title": "Require Perl version 5.14 or later", "commits": ["4c1532763"], "section": "Source Code", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-SOURCE-CODE", "source_hash": "87eddd05681a145a5282b774bf3c5d0fb1c27c4550bb31a5f6ddea8a2919b55f", "section_path": ["Source Code"], "commit_groups": [["4c1532763"]], "identity_text": "Require Perl version 5.14 or later (John Naylor)", "commit_aliases": ["4c1532763"], "source_commits": ["4c1532763"], "source_entry_id": "16.0/changes/157", "db_id": "a12f3cb06b58b43e5c9b14bd26df3637", "patch_ids": ["b1230b02833cbb4274a4f77ca2fea184"], "statement_hash": "1b8874e2e6a93edb071e2cd88fe0425be5e5a3a5fb9481c6b0bfe44c7a998b6c", "relations": [], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-15ef21edbc9f7f9d", "cves": [], "html": "<p>Require <span>Bison</span> version 2.3 or later (John Naylor) <a href=\"https://postgr.es/c/b086a47a2\">§</a></p>", "text": "Require Bison version 2.3 or later (John Naylor) §", "title": "Require Bison version 2.3 or later", "commits": ["b086a47a2"], "section": "Source Code", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-SOURCE-CODE", "source_hash": "da0b6085d373f22fbf120da87214a24ed9c8c4bc6f27dd2484179882ae63c582", "section_path": ["Source Code"], "commit_groups": [["b086a47a2"]], "identity_text": "Require Bison version 2.3 or later (John Naylor)", "commit_aliases": ["b086a47a2"], "source_commits": ["b086a47a2"], "source_entry_id": "16.0/changes/158", "db_id": "8207e643f8230be7a96a57c6eeacdd06", "patch_ids": ["39d7931ab87f3fd54087758b02d5d4f0"], "statement_hash": "ae923f9fbc1bca1bb3526f9dd2eb9a46d0a649cd5dc8b2f0f14efeca891af394", "relations": [], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-594cc0d20a258e2d", "cves": [], "html": "<p>Require <span>Flex</span> version 2.5.35 or later (John Naylor) <a href=\"https://postgr.es/c/8b878bffa\">§</a></p>", "text": "Require Flex version 2.5.35 or later (John Naylor) §", "title": "Require Flex version 2.5.35 or later", "commits": ["8b878bffa"], "section": "Source Code", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-SOURCE-CODE", "source_hash": "6bd8b0623d611736f454e5df095b08eb2f8dfe3fa7da5af7444230f3f60a1b4d", "section_path": ["Source Code"], "commit_groups": [["8b878bffa"]], "identity_text": "Require Flex version 2.5.35 or later (John Naylor)", "commit_aliases": ["8b878bffa"], "source_commits": ["8b878bffa"], "source_entry_id": "16.0/changes/159", "db_id": "ff47389343f90fb960ad3513580a9d32", "patch_ids": ["d4322292f5f1face9c09387b85e2f87a"], "statement_hash": "cd21d230ceeceb6fe7fc5e72e87ed2ee512dd65e9fab92a96a7d0798ce995a17", "relations": [], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-2ab134e78e717352", "cves": [], "html": "<p>Require <acronym>MIT</acronym> Kerberos for <acronym>GSSAPI</acronym> support (Stephen Frost) <a href=\"https://postgr.es/c/f7431bca8\">§</a></p>", "text": "Require MIT Kerberos for GSSAPI support (Stephen Frost) §", "title": "Require MIT Kerberos for GSSAPI support", "commits": ["f7431bca8"], "section": "Source Code", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-SOURCE-CODE", "source_hash": "5e74d9e1ac08ff2ee0d0c77014d149564fd9ee6f3017789eb235cd798659f83c", "section_path": ["Source Code"], "commit_groups": [["f7431bca8"]], "identity_text": "Require MIT Kerberos for GSSAPI support (Stephen Frost)", "commit_aliases": ["f7431bca8"], "source_commits": ["f7431bca8"], "source_entry_id": "16.0/changes/160", "db_id": "0a3494d8fcbb274b7ea09961b992fab7", "patch_ids": ["1ef21a835f5aed40e7fc57949d3497bc"], "statement_hash": "8a44c49ecb563b52bf978b633aaf4638b7be8fab401ef42d647ccc81d743a6b6", "relations": [], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-98166502810a2aa3", "cves": [], "html": "<p>Remove support for <span>Visual Studio 2013</span> (Michael Paquier) <a href=\"https://postgr.es/c/6203583b7\">§</a></p>", "text": "Remove support for Visual Studio 2013 (Michael Paquier) §", "title": "Remove support for Visual Studio 2013", "commits": ["6203583b7"], "section": "Source Code", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-SOURCE-CODE", "source_hash": "fd11fe89b57ac23ab9ade372b581f476f5b2a088d29f18af4c6579a7ebb6f3fe", "section_path": ["Source Code"], "commit_groups": [["6203583b7"]], "identity_text": "Remove support for Visual Studio 2013 (Michael Paquier)", "commit_aliases": ["6203583b7"], "source_commits": ["6203583b7"], "source_entry_id": "16.0/changes/161", "db_id": "19302fd3f5cd2b989207192111cd6a79", "patch_ids": ["e9d173f380ca26792a17b546efdc65e5"], "statement_hash": "4724de50c0f212ce5c9c03594e248b4f7d9f723dee37f33a9d2e494ece0b7f01", "relations": [], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-0cde3f22d094f7e1", "cves": [], "html": "<p>Remove support for <span>HP-UX</span> (Thomas Munro) <a href=\"https://postgr.es/c/9db300ce6\">§</a></p>", "text": "Remove support for HP-UX (Thomas Munro) §", "title": "Remove support for HP-UX", "commits": ["9db300ce6"], "section": "Source Code", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-SOURCE-CODE", "source_hash": "2ed256216a33254a3891d427777d69d02c4bcb4445d641a586ca15fc950af266", "section_path": ["Source Code"], "commit_groups": [["9db300ce6"]], "identity_text": "Remove support for HP-UX (Thomas Munro)", "commit_aliases": ["9db300ce6"], "source_commits": ["9db300ce6"], "source_entry_id": "16.0/changes/162", "db_id": "f3456808e5c44ad6c8de74bec81b4a17", "patch_ids": ["1727a53e90e69c303a72ee8a4600bb7a"], "statement_hash": "3041824c77d9201cced85c2e1866ef82a4d36d76bc97b71e7243522c74fc46b9", "relations": [], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-db01b80df8a3a3f1", "cves": [], "html": "<p>Remove support for <span>HP/Intel Itanium</span> (Thomas Munro) <a href=\"https://postgr.es/c/0ad5b48e5\">§</a></p>", "text": "Remove support for HP/Intel Itanium (Thomas Munro) §", "title": "Remove support for HP/Intel Itanium", "commits": ["0ad5b48e5"], "section": "Source Code", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-SOURCE-CODE", "source_hash": "ae62778e785e87ea92471bacc6e76ec7a556f3e8fc8fb64389cd61d73c152962", "section_path": ["Source Code"], "commit_groups": [["0ad5b48e5"]], "identity_text": "Remove support for HP/Intel Itanium (Thomas Munro)", "commit_aliases": ["0ad5b48e5"], "source_commits": ["0ad5b48e5"], "source_entry_id": "16.0/changes/163", "db_id": "382377acd3a82adb1baae69e7638cb37", "patch_ids": ["3e73f6857310cdb47f88aed5552acf70"], "statement_hash": "ade8ee28dc6e075a884d679afefcbbb6a03b24e8619f07691075dd947aff12f2", "relations": [], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-621a4dcd33df509c", "cves": [], "html": "<p>Remove support for <span>M68K</span>, <span>M88K</span>, <span>M32R</span>, and <span>SuperH</span> <acronym>CPU</acronym> architectures (Thomas Munro) <a href=\"https://postgr.es/c/718aa43a4\">§</a> <a href=\"https://postgr.es/c/14168d3c6\">§</a></p>", "text": "Remove support for M68K, M88K, M32R, and SuperH CPU architectures (Thomas Munro) § §", "title": "Remove support for M68K, M88K, M32R, and SuperH CPU architectures", "commits": ["14168d3c6", "718aa43a4"], "section": "Source Code", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-SOURCE-CODE", "source_hash": "d4a3e51f1774276ad256108490cf19e5224c930cdcecb31a953d879aba7fabeb", "section_path": ["Source Code"], "commit_groups": [["14168d3c6"], ["718aa43a4"]], "identity_text": "Remove support for M68K, M88K, M32R, and SuperH CPU architectures (Thomas Munro)", "commit_aliases": ["14168d3c6", "718aa43a4"], "source_commits": ["14168d3c6", "718aa43a4"], "source_entry_id": "16.0/changes/164", "db_id": "9b6135150f2d258877aa4a5100739546", "patch_ids": ["0f043e336cef2c861e2654859f3f288a", "a9e3891b4b58a20ade993da981252310"], "statement_hash": "2f0ac03cc2f44cc7a6f9399aa1ef425aa4a94c3367cf1188e16f67f3022e7176", "relations": [], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-fd2337e11e1e4dca", "cves": [], "html": "<p>Remove <a href=\"/docs/16/libpq.html\" title=\"Chapter 34. libpq — C Library\"><span>libpq</span></a> support for <acronym>SCM</acronym> credential authentication (Michael Paquier) <a href=\"https://postgr.es/c/98ae2c84a\">§</a></p>\n<p>Backend support for this authentication method was removed in <span>PostgresSQL</span> 9.1.</p>", "text": "Remove libpq support for SCM credential authentication (Michael Paquier) § Backend support for this authentication method was removed in PostgresSQL 9.1.", "title": "Remove libpq support for SCM credential authentication", "commits": ["98ae2c84a"], "section": "Source Code", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-SOURCE-CODE", "source_hash": "02ba607fdc9fcb0eb30d93d1dfc4c30718952b971750c08f00de3518e0469d09", "section_path": ["Source Code"], "commit_groups": [["98ae2c84a"]], "identity_text": "Remove libpq support for SCM credential authentication (Michael Paquier) Backend support for this authentication method was removed in PostgresSQL 9.1.", "commit_aliases": ["98ae2c84a"], "source_commits": ["98ae2c84a"], "source_entry_id": "16.0/changes/165", "db_id": "50bd97d9b98a119d37434155e273e58b", "patch_ids": ["81e6b7fbf5237ee93ffb9425c2ca599a"], "statement_hash": "402d1b8bf70e2fea40d64ed5ac1672f579f8839de17a3022ee6084993cb09bf5", "relations": [], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-d72e83ddb84d89e7", "cves": [], "html": "<p>Add <a href=\"/docs/16/install-meson.html\" title=\"17.4. Building and Installation with Meson\"><span>meson</span></a> build system (Andres Freund, Nazir Bilal Yavuz, Peter Eisentraut) <a href=\"https://postgr.es/c/e6927270c\">§</a></p>\n<p>This eventually will replace the <span>Autoconf</span> and <span>Windows</span>-based <span>MSVC</span> build systems.</p>", "text": "Add meson build system (Andres Freund, Nazir Bilal Yavuz, Peter Eisentraut) § This eventually will replace the Autoconf and Windows-based MSVC build systems.", "title": "Add meson build system", "commits": ["e6927270c"], "section": "Source Code", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-SOURCE-CODE", "source_hash": "bdb646773dfd004240b32c3cad76021b455c4e8f98757df6286d66e5a50faf8b", "section_path": ["Source Code"], "commit_groups": [["e6927270c"]], "identity_text": "Add meson build system (Andres Freund, Nazir Bilal Yavuz, Peter Eisentraut) This eventually will replace the Autoconf and Windows-based MSVC build systems.", "commit_aliases": ["e6927270c"], "source_commits": ["e6927270c"], "source_entry_id": "16.0/changes/166", "db_id": "6637643f9018877718bb4b08cc1ab82b", "patch_ids": ["d7733b15b35adf96c5abeec5387df9ec"], "statement_hash": "0e2fd1db9fa7dff681d0c85dbfff38068f191c606a302372e53f5631c09cb0f1", "relations": [], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-5d8cc8dfed5c67f6", "cves": [], "html": "<p>Allow control of the location of the <span>openssl</span> binary used by the build system (Peter Eisentraut) <a href=\"https://postgr.es/c/c8e4030d1\">§</a></p>\n<p>Make finding <span>openssl</span> program a <span>configure</span> or <span>meson</span> option</p>", "text": "Allow control of the location of the openssl binary used by the build system (Peter Eisentraut) § Make finding openssl program a configure or meson option", "title": "Allow control of the location of the openssl binary used by the build system", "commits": ["c8e4030d1"], "section": "Source Code", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-SOURCE-CODE", "source_hash": "f47952ee198a9d0df00a98ea78c2f7a0e68815207c3d4d25a1c8e97ce1d059d0", "section_path": ["Source Code"], "commit_groups": [["c8e4030d1"]], "identity_text": "Allow control of the location of the openssl binary used by the build system (Peter Eisentraut) Make finding openssl program a configure or meson option", "commit_aliases": ["c8e4030d1"], "source_commits": ["c8e4030d1"], "source_entry_id": "16.0/changes/167", "db_id": "ac7777ca261142bd3dc932d66a62228d", "patch_ids": ["3e32dfad634c75269d6f33d5f93d79df"], "statement_hash": "7dde45d0c95f902e8f20472399a234f78a6948f4190b6ff3852c893dc098cfdd", "relations": [], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-041bebab13e800d1", "cves": [], "html": "<p>Add build option to allow testing of small table segment sizes (Andres Freund) <a href=\"https://postgr.es/c/d3b111e32\">§</a></p>\n<p>The build options are <a href=\"/docs/16/install-make.html#CONFIGURE-OPTION-WITH-SEGSIZE\"><code>--with-segsize-blocks</code></a> and <code>-Dsegsize_blocks</code>.</p>", "text": "Add build option to allow testing of small table segment sizes (Andres Freund) § The build options are --with-segsize-blocks and -Dsegsize_blocks.", "title": "Add build option to allow testing of small table segment sizes", "commits": ["d3b111e32"], "section": "Source Code", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-SOURCE-CODE", "source_hash": "4f4635c21cfa7f17d34b8b3a3c31501fc033dc41e3b02f253ade97e2365f054c", "section_path": ["Source Code"], "commit_groups": [["d3b111e32"]], "identity_text": "Add build option to allow testing of small table segment sizes (Andres Freund) The build options are --with-segsize-blocks and -Dsegsize_blocks.", "commit_aliases": ["d3b111e32"], "source_commits": ["d3b111e32"], "source_entry_id": "16.0/changes/168", "db_id": "c15f4443f3fe5dba9bfffdd79f109406", "patch_ids": ["27dc3a24c4ad8216ff8e6c2d81058bc6"], "statement_hash": "d300f2ad7753f7e6681020bcdbed9669c3847adbf02cc581df393bca2dee46cb", "relations": [], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-e5450fec9790d461", "cves": [], "html": "<p>Add <a href=\"/docs/16/source.html\" title=\"Chapter 56. PostgreSQL Coding Conventions\"><span>pgindent</span></a> options (Andrew Dunstan) <a href=\"https://postgr.es/c/b90f0b574\">§</a> <a href=\"https://postgr.es/c/62e1e28bf\">§</a> <a href=\"https://postgr.es/c/124937163\">§</a> <a href=\"https://postgr.es/c/a1c4cd6f2\">§</a> <a href=\"https://postgr.es/c/068a243b7\">§</a> <a href=\"https://postgr.es/c/dab07e8c6\">§</a> <a href=\"https://postgr.es/c/b16259b3c\">§</a></p>\n<p>The new options are <code>--show-diff</code>, <code>--silent-diff</code>, <code>--commit</code>, and <code>--help</code>, and allow multiple <code>--exclude</code> options. Also require the typedef file to be explicitly specified. Options <code>--code-base</code> and <code>--build</code> were also removed.</p>", "text": "Add pgindent options (Andrew Dunstan) § § § § § § § The new options are --show-diff, --silent-diff, --commit, and --help, and allow multiple --exclude options. Also require the typedef file to be explicitly specified. Options --code-base and --build were also removed.", "title": "Add pgindent options", "commits": ["068a243b7", "124937163", "62e1e28bf", "a1c4cd6f2", "b16259b3c", "b90f0b574", "dab07e8c6"], "section": "Source Code", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-SOURCE-CODE", "source_hash": "e28af1938d3bb831ceafe09135f8a6d3207bbf32e6e6316cab2de1f844413b1d", "section_path": ["Source Code"], "commit_groups": [["068a243b7"], ["124937163"], ["62e1e28bf"], ["a1c4cd6f2"], ["b16259b3c"], ["b90f0b574"], ["dab07e8c6"]], "identity_text": "Add pgindent options (Andrew Dunstan) The new options are --show-diff, --silent-diff, --commit, and --help, and allow multiple --exclude options. Also require the typedef file to be explicitly specified. Options --code-base and --build were also removed.", "commit_aliases": ["068a243b7", "124937163", "62e1e28bf", "a1c4cd6f2", "b16259b3c", "b90f0b574", "dab07e8c6"], "source_commits": ["068a243b7", "124937163", "62e1e28bf", "a1c4cd6f2", "b16259b3c", "b90f0b574", "dab07e8c6"], "source_entry_id": "16.0/changes/169", "db_id": "ee802106c37e5abe96e705481457eaff", "patch_ids": ["4f6da09484b6dc2c7b05f98f0f117536", "84f50fc593dd7ebe18b71a624124a019", "aa902872d27c5a56ac5cd80ab654ceb0", "c13e8b2573e58c7ebf02df740d6a4379", "d7173bc03a6f7ca0422d90bfcde79702", "ef34a7a4ddfd432627d7ec39810e9414", "fc513af979c33475c48903545a8a9de0"], "statement_hash": "87faeee6ab41e1518467ce4c537075d550d998fd692d9c04e2034e266e2bb7a1", "relations": [], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-36c4435c3e641162", "cves": [], "html": "<p>Add <a href=\"/docs/16/source.html\" title=\"Chapter 56. PostgreSQL Coding Conventions\"><span>pg_bsd_indent</span></a> source code to the main tree (Tom Lane) <a href=\"https://postgr.es/c/4e831f4ce\">§</a></p>", "text": "Add pg_bsd_indent source code to the main tree (Tom Lane) §", "title": "Add pg_bsd_indent source code to the main tree", "commits": ["4e831f4ce"], "section": "Source Code", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-SOURCE-CODE", "source_hash": "8e82502c226b09e51bc70e1562bb5faba3fa3e72d742e34844e77bdae8e3a92a", "section_path": ["Source Code"], "commit_groups": [["4e831f4ce"]], "identity_text": "Add pg_bsd_indent source code to the main tree (Tom Lane)", "commit_aliases": ["4e831f4ce"], "source_commits": ["4e831f4ce"], "source_entry_id": "16.0/changes/170", "db_id": "07e9fd22578a6a7228cad7e5c9121673", "patch_ids": ["d839508c44b1f7cca4578431ad97f2d2"], "statement_hash": "e2234dcde0d27dbcc053d62e963006473597622033d0dd68992771b2c1361e31", "relations": [], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-143b1bb9d983bc0c", "cves": [], "html": "<p>Improve <span>make_ctags</span> and <span>make_etags</span> (Yugo Nagata) <a href=\"https://postgr.es/c/d1e2a380c\">§</a></p>", "text": "Improve make_ctags and make_etags (Yugo Nagata) §", "title": "Improve make_ctags and make_etags", "commits": ["d1e2a380c"], "section": "Source Code", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-SOURCE-CODE", "source_hash": "50ec0f1a888802dd7e7e243feb97d38bd2027b9879d65c5528c44a4107e16caf", "section_path": ["Source Code"], "commit_groups": [["d1e2a380c"]], "identity_text": "Improve make_ctags and make_etags (Yugo Nagata)", "commit_aliases": ["d1e2a380c"], "source_commits": ["d1e2a380c"], "source_entry_id": "16.0/changes/171", "db_id": "432f2be2ee13ad4a8605d2b9b21fdda2", "patch_ids": ["aa40a42a11d4d96bcc9078797a03b21b"], "statement_hash": "d5c80cdc7b7dbcd6cfd8b5222667b32663b0d18744ff2d4a9ff8dfdc200d50a1", "relations": [], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-c1d567b6748f49f7", "cves": [], "html": "<p>Adjust <a href=\"/docs/16/catalog-pg-attribute.html\" title=\"53.7. pg_attribute\"><code>pg_attribute</code></a> columns for efficiency (Peter Eisentraut) <a href=\"https://postgr.es/c/90189eefc\">§</a></p>", "text": "Adjust pg_attribute columns for efficiency (Peter Eisentraut) §", "title": "Adjust pg_attribute columns for efficiency", "commits": ["90189eefc"], "section": "Source Code", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-SOURCE-CODE", "source_hash": "5d91d743c9da7d2928da7d212016b8454a1fe6f0dd642d690f8cff84961e5ae8", "section_path": ["Source Code"], "commit_groups": [["90189eefc"]], "identity_text": "Adjust pg_attribute columns for efficiency (Peter Eisentraut)", "commit_aliases": ["90189eefc"], "source_commits": ["90189eefc"], "source_entry_id": "16.0/changes/172", "db_id": "3d738d036aea5b6bd5bf67efa919e030", "patch_ids": ["b0383189fa398b253b6ac5a602efee25"], "statement_hash": "d389d890844426bb6016b655d1ee16ad1cd1d357d31f61667b5e8f93efec8b30", "relations": [], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-ec3fedea35c77c40", "cves": [], "html": "<p>Improve use of extension-based indexes on boolean columns (Zongliang Quan, Tom Lane) <a href=\"https://postgr.es/c/ff720a597\">§</a></p>", "text": "Improve use of extension-based indexes on boolean columns (Zongliang Quan, Tom Lane) §", "title": "Improve use of extension-based indexes on boolean columns", "commits": ["ff720a597"], "section": "Additional Modules", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-MODULES", "source_hash": "dea62a1a85bf03855fe0befbc467c83be98d8bbcd077b3012bfd6bbb11af72a7", "section_path": ["Additional Modules"], "commit_groups": [["ff720a597"]], "identity_text": "Improve use of extension-based indexes on boolean columns (Zongliang Quan, Tom Lane)", "commit_aliases": ["ff720a597"], "source_commits": ["ff720a597"], "source_entry_id": "16.0/changes/173", "db_id": "31f7afdafbe88e548de15afd1969656f", "patch_ids": ["ababd6c74d64b5250021d34418dacb9c"], "statement_hash": "8c9ae64c886a90a141bfe63321e204b6ff996c91a05b24d5304fed18f5cb7c2e", "relations": [], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-48f6970cde3f3fc3", "cves": [], "html": "<p>Add support for Daitch-Mokotoff Soundex to <a href=\"/docs/16/fuzzystrmatch.html\" title=\"F.17. fuzzystrmatch — determine string similarities and distance\"><span>fuzzystrmatch</span></a> (Dag Lem) <a href=\"https://postgr.es/c/a290378a3\">§</a></p>", "text": "Add support for Daitch-Mokotoff Soundex to fuzzystrmatch (Dag Lem) §", "title": "Add support for Daitch-Mokotoff Soundex to fuzzystrmatch", "commits": ["a290378a3"], "section": "Additional Modules", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-MODULES", "source_hash": "5b8a63597eccc10bfad2a35b33e6651b9963fdbcc9bd6ec5f5eb1e1c0f559507", "section_path": ["Additional Modules"], "commit_groups": [["a290378a3"]], "identity_text": "Add support for Daitch-Mokotoff Soundex to fuzzystrmatch (Dag Lem)", "commit_aliases": ["a290378a3"], "source_commits": ["a290378a3"], "source_entry_id": "16.0/changes/174", "db_id": "254a1cf73e2bdd0335f3f941bd9245d4", "patch_ids": ["7d6f4c4cd42290ef25dc47ddafac0cf3"], "statement_hash": "14ff2cdcf41c500e25861a7be8da3118f8cd1e1b68ede9cd359bcc49a8ef7428", "relations": [], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-7373e088d4714a6a", "cves": [], "html": "<p>Allow <a href=\"/docs/16/auto-explain.html\" title=\"F.4. auto_explain — log execution plans of slow queries\"><span>auto_explain</span></a> to log values passed to parameterized statements (Dagfinn Ilmari Mannsåker) <a href=\"https://postgr.es/c/d4bfe4128\">§</a></p>\n<p>This affects queries using server-side <a href=\"/docs/16/sql-prepare.html\" title=\"PREPARE\"><code>PREPARE</code></a>/<a href=\"/docs/16/sql-execute.html\" title=\"EXECUTE\"><code>EXECUTE</code></a> and client-side parse/bind. Logging is controlled by <a href=\"/docs/16/auto-explain.html#AUTO-EXPLAIN-CONFIGURATION-PARAMETERS-LOG-PARAMETER-MAX-LENGTH\"><code>auto_explain.log_parameter_max_length</code></a>; by default query parameters will be logged with no length restriction.</p>", "text": "Allow auto_explain to log values passed to parameterized statements (Dagfinn Ilmari Mannsåker) § This affects queries using server-side PREPARE/EXECUTE and client-side parse/bind. Logging is controlled by auto_explain.log_parameter_max_length; by default query parameters will be logged with no length restriction.", "title": "Allow auto_explain to log values passed to parameterized statements", "commits": ["d4bfe4128"], "section": "Additional Modules", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-MODULES", "source_hash": "48b77b080a3f9377a78a4b75df9f53d42725d9d3fe2536837078caf3b0e9fc9c", "section_path": ["Additional Modules"], "commit_groups": [["d4bfe4128"]], "identity_text": "Allow auto_explain to log values passed to parameterized statements (Dagfinn Ilmari Mannsåker) This affects queries using server-side PREPARE/EXECUTE and client-side parse/bind. Logging is controlled by auto_explain.log_parameter_max_length; by default query parameters will be logged with no length restriction.", "commit_aliases": ["d4bfe4128"], "source_commits": ["d4bfe4128"], "source_entry_id": "16.0/changes/175", "db_id": "633896429b6e29feaf172908a0955446", "patch_ids": ["d4e8ce0efd4537ed99bd43cb1b84f6bc"], "statement_hash": "0d9b8c1482c2191ee63dc99d9625e5b811086ceac810cdd3dedab92fdb38ede2", "relations": [], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-3a461557f8a93a26", "cves": [], "html": "<p>Have <a href=\"/docs/16/auto-explain.html\" title=\"F.4. auto_explain — log execution plans of slow queries\"><span>auto_explain</span></a>'s <code>log_verbose</code> mode honor the value of <a href=\"/docs/16/runtime-config-statistics.html#GUC-COMPUTE-QUERY-ID\"><code>compute_query_id</code></a> (Atsushi Torikoshi) <a href=\"https://postgr.es/c/9d2d9728b\">§</a></p>\n<p>Previously even if <code>compute_query_id</code> was enabled, <a href=\"/docs/16/auto-explain.html#AUTO-EXPLAIN-CONFIGURATION-PARAMETERS-LOG-VERBOSE\"><code>log_verbose</code></a> was not showing the query identifier.</p>", "text": "Have auto_explain's log_verbose mode honor the value of compute_query_id (Atsushi Torikoshi) § Previously even if compute_query_id was enabled, log_verbose was not showing the query identifier.", "title": "Have auto_explain's log_verbose mode honor the value of compute_query_id", "commits": ["9d2d9728b"], "section": "Additional Modules", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-MODULES", "source_hash": "39383b73ebd2fe5454f0e6a8c3900baff7b847adf2d4840c2641c7ddbb6f465a", "section_path": ["Additional Modules"], "commit_groups": [["9d2d9728b"]], "identity_text": "Have auto_explain's log_verbose mode honor the value of compute_query_id (Atsushi Torikoshi) Previously even if compute_query_id was enabled, log_verbose was not showing the query identifier.", "commit_aliases": ["9d2d9728b"], "source_commits": ["9d2d9728b"], "source_entry_id": "16.0/changes/176", "db_id": "f46aed7f1cc334819da73d6d6002a150", "patch_ids": ["ad75e920b0464af86592ee7143b058d8"], "statement_hash": "eb624388b8da96d2fd4403997354a45b87375c99dbfc5e946d93e18d8f8cf5b7", "relations": [], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-9b81c60591c32b21", "cves": [], "html": "<p>Change the maximum length of <a href=\"/docs/16/ltree.html\" title=\"F.23. ltree — hierarchical tree-like data type\"><span>ltree</span></a> labels from 256 to 1000 and allow hyphens (Garen Torikian) <a href=\"https://postgr.es/c/b1665bf01\">§</a></p>", "text": "Change the maximum length of ltree labels from 256 to 1000 and allow hyphens (Garen Torikian) §", "title": "Change the maximum length of ltree labels from 256 to 1000 and allow hyphens", "commits": ["b1665bf01"], "section": "Additional Modules", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-MODULES", "source_hash": "a4f68c9c92632f55e49d81bcf3f0e73610718eb1883554b61007882cf31db42b", "section_path": ["Additional Modules"], "commit_groups": [["b1665bf01"]], "identity_text": "Change the maximum length of ltree labels from 256 to 1000 and allow hyphens (Garen Torikian)", "commit_aliases": ["b1665bf01"], "source_commits": ["b1665bf01"], "source_entry_id": "16.0/changes/177", "db_id": "44267ad930560070eb40e286ef515cf3", "patch_ids": ["ca89d73aa823643f3ec8ed479a669315"], "statement_hash": "c327fb5ff064d4cde924cb165166b87a8ae064d534d53e4dcbc26e618af07309", "relations": [], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-6133b03066bccf87", "cves": [], "html": "<p>Have <a href=\"/docs/16/pgstatstatements.html\" title=\"F.32. pg_stat_statements — track statistics of SQL planning and execution\"><code>pg_stat_statements</code></a> normalize constants used in utility commands (Michael Paquier) <a href=\"https://postgr.es/c/daa8365a9\">§</a></p>\n<p>Previously constants appeared instead of placeholders, e.g., <code>$1</code>.</p>", "text": "Have pg_stat_statements normalize constants used in utility commands (Michael Paquier) § Previously constants appeared instead of placeholders, e.g., $1.", "title": "Have pg_stat_statements normalize constants used in utility commands", "commits": ["daa8365a9"], "section": "Additional Modules", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-MODULES", "source_hash": "49995820523a09bd11601118cb61842e8cf655004598791e2660df8bd90d07ff", "section_path": ["Additional Modules"], "commit_groups": [["daa8365a9"]], "identity_text": "Have pg_stat_statements normalize constants used in utility commands (Michael Paquier) Previously constants appeared instead of placeholders, e.g., $1.", "commit_aliases": ["daa8365a9"], "source_commits": ["daa8365a9"], "source_entry_id": "16.0/changes/178", "db_id": "c2733cec1b4607015468475a293c6068", "patch_ids": ["b37fdd8cf6e898a1025c5e1ce82d5e60"], "statement_hash": "2ce1d1f073a525ad0e939ad542f4362bb63ba7649e68ea55f05e1986f180b4f1", "relations": [], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-0471b897aae217c0", "cves": [], "html": "<p>Add <a href=\"/docs/16/pgwalinspect.html\" title=\"F.37. pg_walinspect — low-level WAL inspection\"><span>pg_walinspect</span></a> function <a href=\"/docs/16/pgwalinspect.html#PGWALINSPECT-FUNCS-PG-GET-WAL-BLOCK-INFO\"><code>pg_get_wal_block_info()</code></a> to report <acronym>WAL</acronym> block information (Michael Paquier, Melanie Plageman, Bharath Rupireddy) <a href=\"https://postgr.es/c/c31cf1c03\">§</a> <a href=\"https://postgr.es/c/9ecb134a9\">§</a> <a href=\"https://postgr.es/c/122376f02\">§</a> <a href=\"https://postgr.es/c/df4f3ab51\">§</a></p>", "text": "Add pg_walinspect function pg_get_wal_block_info() to report WAL block information (Michael Paquier, Melanie Plageman, Bharath Rupireddy) § § § §", "title": "Add pg_walinspect function pg_get_wal_block_info() to report WAL block information", "commits": ["122376f02", "9ecb134a9", "c31cf1c03", "df4f3ab51"], "section": "Additional Modules", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-MODULES", "source_hash": "a1c14b61de7dcaebb52ca25381636ed16f0114b756048c8030d0e7eafcb7f77e", "section_path": ["Additional Modules"], "commit_groups": [["122376f02"], ["9ecb134a9"], ["c31cf1c03"], ["df4f3ab51"]], "identity_text": "Add pg_walinspect function pg_get_wal_block_info() to report WAL block information (Michael Paquier, Melanie Plageman, Bharath Rupireddy)", "commit_aliases": ["122376f02", "9ecb134a9", "c31cf1c03", "df4f3ab51"], "source_commits": ["122376f02", "9ecb134a9", "c31cf1c03", "df4f3ab51"], "source_entry_id": "16.0/changes/179", "db_id": "66d28e64e06ea2e905db81569dfd075d", "patch_ids": ["522550f5c9f3bf942d74b2b7a02f945f", "abb169526926bbd78c240734d131a314", "dad9009e9398d5f047c2f7992c74e510", "e047baaa2c6e3deb558c7b3f2eb6d244"], "statement_hash": "7acacdc722fd02564942bdc825737eca043ab193b6c2b71461fa2b25c9187630", "relations": [], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-68251bab0ef9ada7", "cves": [], "html": "<p>Change how <a href=\"/docs/16/pgwalinspect.html\" title=\"F.37. pg_walinspect — low-level WAL inspection\"><span>pg_walinspect</span></a> functions <a href=\"/docs/16/pgwalinspect.html#PGWALINSPECT-FUNCS-PG-GET-WAL-RECORDS-INFO\"><code>pg_get_wal_records_info()</code></a> and <a href=\"/docs/16/pgwalinspect.html#PGWALINSPECT-FUNCS-PG-GET-WAL-STATS\"><code>pg_get_wal_stats()</code></a> interpret ending <acronym>LSN</acronym>s (Bharath Rupireddy) <a href=\"https://postgr.es/c/5c1b66280\">§</a></p>\n<p>Previously ending <acronym>LSN</acronym>s which represent nonexistent <acronym>WAL</acronym> locations would generate an error, while they will now be interpreted as the end of the <acronym>WAL</acronym>.</p>", "text": "Change how pg_walinspect functions pg_get_wal_records_info() and pg_get_wal_stats() interpret ending LSNs (Bharath Rupireddy) § Previously ending LSNs which represent nonexistent WAL locations would generate an error, while they will now be interpreted as the end of the WAL.", "title": "Change how pg_walinspect functions pg_get_wal_records_info() and pg_get_wal_stats() interpret ending LSNs", "commits": ["5c1b66280"], "section": "Additional Modules", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-MODULES", "source_hash": "939805f8c5de3f11255833b531bc678ba8d3a5ce0b54c1b8dc6dbd2bfcc12a35", "section_path": ["Additional Modules"], "commit_groups": [["5c1b66280"]], "identity_text": "Change how pg_walinspect functions pg_get_wal_records_info() and pg_get_wal_stats() interpret ending LSNs (Bharath Rupireddy) Previously ending LSNs which represent nonexistent WAL locations would generate an error, while they will now be interpreted as the end of the WAL.", "commit_aliases": ["5c1b66280"], "source_commits": ["5c1b66280"], "source_entry_id": "16.0/changes/180", "db_id": "95ce3c27034083611423b540747ddc44", "patch_ids": ["c5d8dc1de10576f0de896e9cd38e3777"], "statement_hash": "d17735409773cf2bdf5f70f749933ebf775bd6d3309b2a2c46fab3d810ea115b", "relations": [{"rule": 2, "type": "related", "target": "41a03866a7fb689d27c47b605f7199e1", "evidence": {"same_day": true, "patch_ids": ["c5d8dc1de10576f0de896e9cd38e3777"]}}], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": [{"db_id": "41a03866a7fb689d27c47b605f7199e1", "kind": "related", "version": "16.0", "label": "16.0", "title": "Remove pg_walinspect functions pg_get_wal_records_info_till_end_of_wal() and pg_get_wal_stats_till_end_of_wal()", "evidence": {"same_day": true, "patch_ids": ["c5d8dc1de10576f0de896e9cd38e3777"]}, "url": "/docs/compare/?release=16.0#16.0-cb0959e990d03453", "source_url": "/docs/release/16.0/#RELEASE-16-MIGRATION"}]}, {"id": "16.0-fb56b16685521e8a", "cves": [], "html": "<p>Add detailed descriptions of <acronym>WAL</acronym> records in <a href=\"/docs/16/pgwalinspect.html\" title=\"F.37. pg_walinspect — low-level WAL inspection\"><span>pg_walinspect</span></a> and <a href=\"/docs/16/pgwaldump.html\" title=\"pg_waldump\"><span>pg_waldump</span></a> (Melanie Plageman, Peter Geoghegan) <a href=\"https://postgr.es/c/7d8219a44\">§</a> <a href=\"https://postgr.es/c/1c453cfd8\">§</a> <a href=\"https://postgr.es/c/96149a180\">§</a> <a href=\"https://postgr.es/c/50547a3fa\">§</a></p>", "text": "Add detailed descriptions of WAL records in pg_walinspect and pg_waldump (Melanie Plageman, Peter Geoghegan) § § § §", "title": "Add detailed descriptions of WAL records in pg_walinspect and pg_waldump", "commits": ["1c453cfd8", "50547a3fa", "7d8219a44", "96149a180"], "section": "Additional Modules", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-MODULES", "source_hash": "35baccd29e5b73c196585a992763d68c054bbf217b0062aa749510c6590d5938", "section_path": ["Additional Modules"], "commit_groups": [["1c453cfd8"], ["50547a3fa"], ["7d8219a44"], ["96149a180"]], "identity_text": "Add detailed descriptions of WAL records in pg_walinspect and pg_waldump (Melanie Plageman, Peter Geoghegan)", "commit_aliases": ["1c453cfd8", "50547a3fa", "7d8219a44", "96149a180"], "source_commits": ["1c453cfd8", "50547a3fa", "7d8219a44", "96149a180"], "source_entry_id": "16.0/changes/181", "db_id": "32ac184b38df3d34e4563d19f078e118", "patch_ids": ["3d655fdbb65659afdc53cf32a2246c7d", "6cdd27196e5a886987fa108520222cb6", "c2ab4702effde42d240c1d9aa2109161", "c5fea9f5b11a07deb8814b84dd333a3f"], "statement_hash": "583f7c324ed716190056e2738055788f21979089e0b1dea389ed06186454514a", "relations": [], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-a0ddacb9fab5c186-1", "cves": [], "html": "<p>Add <a href=\"/docs/16/pageinspect.html\" title=\"F.25. pageinspect — low-level inspection of database pages\"><span>pageinspect</span></a> function <a href=\"/docs/16/pageinspect.html#PAGEINSPECT-B-TREE-FUNCS\" title=\"F.25.3. B-Tree Functions\"><code>bt_multi_page_stats()</code></a> to report statistics on multiple pages (Hamid Akhtar) <a href=\"https://postgr.es/c/1fd3dd204\">§</a></p>\n<p>This is similar to <code>bt_page_stats()</code> except it can report on a range of pages.</p>", "text": "Add pageinspect function bt_multi_page_stats() to report statistics on multiple pages (Hamid Akhtar) § This is similar to bt_page_stats() except it can report on a range of pages.", "title": "Add pageinspect function bt_multi_page_stats() to report statistics on multiple pages", "commits": ["1fd3dd204"], "section": "Additional Modules", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-MODULES", "source_hash": "3cd7cc168417f055b25c7215b3e8f893ac38c7bb532669969fbe180e62536a16", "section_path": ["Additional Modules"], "commit_groups": [["1fd3dd204"]], "identity_text": "Add pageinspect function bt_multi_page_stats() to report statistics on multiple pages (Hamid Akhtar) This is similar to bt_page_stats() except it can report on a range of pages.", "commit_aliases": ["1fd3dd204"], "source_commits": ["1fd3dd204"], "source_entry_id": "16.0/changes/182", "db_id": "c3e1949192fe6ced80983e4f1b745095", "patch_ids": ["5bdb82c95abb2159415c5685fd07afc2"], "statement_hash": "817abb9b7532dc121b4c71b86b6be32676ddd9c0bc5686a0c77f8a85ed8f39b1", "relations": [{"rule": 2, "type": "related", "target": "9ce12790cfd3b708a3c139faff4cb900", "evidence": {"same_day": true, "patch_ids": ["5bdb82c95abb2159415c5685fd07afc2"], "ambiguous_patch_ids": ["5bdb82c95abb2159415c5685fd07afc2"]}}], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": [{"db_id": "9ce12790cfd3b708a3c139faff4cb900", "kind": "related", "version": "16.0", "label": "16.0", "title": "Add empty range output column to pageinspect function brin_page_items()", "evidence": {"same_day": true, "patch_ids": ["5bdb82c95abb2159415c5685fd07afc2"], "ambiguous_patch_ids": ["5bdb82c95abb2159415c5685fd07afc2"]}, "url": "/docs/compare/?release=16.0#16.0-a0ddacb9fab5c186-2", "source_url": "/docs/release/16.0/#RELEASE-16-MODULES"}]}, {"id": "16.0-a0ddacb9fab5c186-2", "cves": [], "html": "<p>Add empty range output column to <a href=\"/docs/16/pageinspect.html\" title=\"F.25. pageinspect — low-level inspection of database pages\"><span>pageinspect</span></a> function <a href=\"/docs/16/pageinspect.html#PAGEINSPECT-BRIN-FUNCS\" title=\"F.25.4. BRIN Functions\"><code>brin_page_items()</code></a> (Tomas Vondra) <a href=\"https://postgr.es/c/1fd3dd204\">§</a></p>", "text": "Add empty range output column to pageinspect function brin_page_items() (Tomas Vondra) §", "title": "Add empty range output column to pageinspect function brin_page_items()", "commits": ["1fd3dd204"], "section": "Additional Modules", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-MODULES", "source_hash": "ab8d297182fb6e723e8f6d7b126b35fb6ebb3fb81b83b8065caac731a0be66ed", "section_path": ["Additional Modules"], "commit_groups": [["1fd3dd204"]], "identity_text": "Add empty range output column to pageinspect function brin_page_items() (Tomas Vondra)", "commit_aliases": ["1fd3dd204"], "source_commits": ["1fd3dd204"], "source_entry_id": "16.0/changes/183", "db_id": "9ce12790cfd3b708a3c139faff4cb900", "patch_ids": ["5bdb82c95abb2159415c5685fd07afc2"], "statement_hash": "243210115fb6048653209e24199e20ff4fcff584b3bbd5eccbf8bc9adea258a1", "relations": [{"rule": 2, "type": "related", "target": "c3e1949192fe6ced80983e4f1b745095", "evidence": {"same_day": true, "patch_ids": ["5bdb82c95abb2159415c5685fd07afc2"], "ambiguous_patch_ids": ["5bdb82c95abb2159415c5685fd07afc2"]}}], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": [{"db_id": "c3e1949192fe6ced80983e4f1b745095", "kind": "related", "version": "16.0", "label": "16.0", "title": "Add pageinspect function bt_multi_page_stats() to report statistics on multiple pages", "evidence": {"same_day": true, "patch_ids": ["5bdb82c95abb2159415c5685fd07afc2"], "ambiguous_patch_ids": ["5bdb82c95abb2159415c5685fd07afc2"]}, "url": "/docs/compare/?release=16.0#16.0-a0ddacb9fab5c186-1", "source_url": "/docs/release/16.0/#RELEASE-16-MODULES"}]}, {"id": "16.0-6932eb8bcd22f323", "cves": [], "html": "<p>Redesign archive modules to be more flexible (Nathan Bossart) <a href=\"https://postgr.es/c/35739b87d\">§</a></p>\n<p>Initialization changes will require modules written for older versions of Postgres to be updated.</p>", "text": "Redesign archive modules to be more flexible (Nathan Bossart) § Initialization changes will require modules written for older versions of Postgres to be updated.", "title": "Redesign archive modules to be more flexible", "commits": ["35739b87d"], "section": "Additional Modules", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-MODULES", "source_hash": "ebfeef6642b2c1b53bbc6b947671b1e288832a43f2d6d8755238bbd3fa5ac995", "section_path": ["Additional Modules"], "commit_groups": [["35739b87d"]], "identity_text": "Redesign archive modules to be more flexible (Nathan Bossart) Initialization changes will require modules written for older versions of Postgres to be updated.", "commit_aliases": ["35739b87d"], "source_commits": ["35739b87d"], "source_entry_id": "16.0/changes/184", "db_id": "8650a1035448f521a7673e17478e6f4f", "patch_ids": ["3bbba7711288ab9a7a8df78914e0d8e9"], "statement_hash": "67e482b3d287b7654ddd6971450941da4b5af6d4ae9d9b9bce28b32b7a36c6f5", "relations": [], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-b826b2d0b45572fb", "cves": [], "html": "<p>Correct inaccurate <a href=\"/docs/16/pgstatstatements.html\" title=\"F.32. pg_stat_statements — track statistics of SQL planning and execution\"><span>pg_stat_statements</span></a> row tracking extended query protocol statements (Sami Imseih) <a href=\"https://postgr.es/c/1d477a907\">§</a></p>", "text": "Correct inaccurate pg_stat_statements row tracking extended query protocol statements (Sami Imseih) §", "title": "Correct inaccurate pg_stat_statements row tracking extended query protocol statements", "commits": ["1d477a907"], "section": "Additional Modules", "category": "bugfix", "source_url": "/docs/release/16.0/#RELEASE-16-MODULES", "source_hash": "0aaf0d21f909615d41e533c757e3ecc52e883c89a8dd5208321c497fecf23067", "section_path": ["Additional Modules"], "commit_groups": [["1d477a907"]], "identity_text": "Correct inaccurate pg_stat_statements row tracking extended query protocol statements (Sami Imseih)", "commit_aliases": ["1d477a907"], "source_commits": ["1d477a907"], "source_entry_id": "16.0/changes/185", "db_id": "551aaad464f86fd0c3e5f46908da5a30", "patch_ids": ["11ffe5bc6427ad33f15d61aaf3f3d9bc"], "statement_hash": "7537f6e4611d7e1ee76ae1cc5f1acd6bd610cd71afdbbba33bb093becec8720a", "relations": [], "version": "16.0", "category_label": "Bug fixes", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-dcd45be86b4dcd66", "cves": [], "html": "<p>Add <a href=\"/docs/16/pgbuffercache.html\" title=\"F.27. pg_buffercache — inspect PostgreSQL buffer cache state\"><span>pg_buffercache</span></a> function <code>pg_buffercache_usage_counts()</code> to report usage totals (Nathan Bossart) <a href=\"https://postgr.es/c/f3fa31327\">§</a></p>", "text": "Add pg_buffercache function pg_buffercache_usage_counts() to report usage totals (Nathan Bossart) §", "title": "Add pg_buffercache function pg_buffercache_usage_counts() to report usage totals", "commits": ["f3fa31327"], "section": "Additional Modules", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-MODULES", "source_hash": "91487a8f0ebf3948cd50a420f4091659304a532c23070138cc4440983ac5ebd9", "section_path": ["Additional Modules"], "commit_groups": [["f3fa31327"]], "identity_text": "Add pg_buffercache function pg_buffercache_usage_counts() to report usage totals (Nathan Bossart)", "commit_aliases": ["f3fa31327"], "source_commits": ["f3fa31327"], "source_entry_id": "16.0/changes/186", "db_id": "0d35e559e97bfc9e5936aa9fa5eb66a8", "patch_ids": ["b7d110f46ee3f0a80fd6b8f72d01e31c"], "statement_hash": "54e2d365cee0a688779511006c226320a2785202a52c08bd3014edb9e335ebf3", "relations": [], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-eca24a5d581d6de9", "cves": [], "html": "<p>Add <a href=\"/docs/16/pgbuffercache.html\" title=\"F.27. pg_buffercache — inspect PostgreSQL buffer cache state\"><span>pg_buffercache</span></a> function <code>pg_buffercache_summary()</code> to report summarized buffer statistics (Melih Mutlu) <a href=\"https://postgr.es/c/2589434ae\">§</a></p>", "text": "Add pg_buffercache function pg_buffercache_summary() to report summarized buffer statistics (Melih Mutlu) §", "title": "Add pg_buffercache function pg_buffercache_summary() to report summarized buffer statistics", "commits": ["2589434ae"], "section": "Additional Modules", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-MODULES", "source_hash": "36355b71dac6b06c5746bf602bf37c0ba2faadea4533f50c3c37c4db61275f7c", "section_path": ["Additional Modules"], "commit_groups": [["2589434ae"]], "identity_text": "Add pg_buffercache function pg_buffercache_summary() to report summarized buffer statistics (Melih Mutlu)", "commit_aliases": ["2589434ae"], "source_commits": ["2589434ae"], "source_entry_id": "16.0/changes/187", "db_id": "20e2e4e34fcb47bca29286b378d9ddd0", "patch_ids": ["0f925139651f09b77986d3d1ed62e046"], "statement_hash": "ade619241392a312223a13707278c5f85af265fc62dfbcac8829e6cc323c3f28", "relations": [], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-a5b2a7383fdddab3-1", "cves": [], "html": "<p>Allow the schemas of required extensions to be referenced in extension scripts using the new syntax <code>@extschema:referenced_extension_name@</code> (Regina Obe) <a href=\"https://postgr.es/c/72a5b1fc8\">§</a></p>", "text": "Allow the schemas of required extensions to be referenced in extension scripts using the new syntax @extschema:referenced_extension_name@ (Regina Obe) §", "title": "Allow the schemas of required extensions to be referenced in extension scripts using the new syntax @extschema:referenced_extension_name@", "commits": ["72a5b1fc8"], "section": "Additional Modules", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-MODULES", "source_hash": "f475992b65f019ada3e85907ac8497fdf7ff0ffaf0acf7d2b7037574b2e66853", "section_path": ["Additional Modules"], "commit_groups": [["72a5b1fc8"]], "identity_text": "Allow the schemas of required extensions to be referenced in extension scripts using the new syntax @extschema:referenced_extension_name@ (Regina Obe)", "commit_aliases": ["72a5b1fc8"], "source_commits": ["72a5b1fc8"], "source_entry_id": "16.0/changes/188", "db_id": "383a40b7232cc394ab47db0645f51a43", "patch_ids": ["ffe19b6bfb65366476e076da2d44bfe4"], "statement_hash": "29428a2f925af700fef81223ae20e6cb2499fdcf291ce2d9234a852990c15ba4", "relations": [{"rule": 2, "type": "related", "target": "aebfdd1f0b3aa4e201d468119a381e74", "evidence": {"same_day": true, "patch_ids": ["ffe19b6bfb65366476e076da2d44bfe4"], "ambiguous_patch_ids": ["ffe19b6bfb65366476e076da2d44bfe4"]}}], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": [{"db_id": "aebfdd1f0b3aa4e201d468119a381e74", "kind": "related", "version": "16.0", "label": "16.0", "title": "Allow required extensions to be marked as non-relocatable using no_relocate", "evidence": {"same_day": true, "patch_ids": ["ffe19b6bfb65366476e076da2d44bfe4"], "ambiguous_patch_ids": ["ffe19b6bfb65366476e076da2d44bfe4"]}, "url": "/docs/compare/?release=16.0#16.0-a5b2a7383fdddab3-2", "source_url": "/docs/release/16.0/#RELEASE-16-MODULES"}]}, {"id": "16.0-a5b2a7383fdddab3-2", "cves": [], "html": "<p>Allow required extensions to be marked as non-relocatable using <a href=\"/docs/16/extend-extensions.html#EXTEND-EXTENSIONS-FILES-NO-RELOCATE\"><code>no_relocate</code></a> (Regina Obe) <a href=\"https://postgr.es/c/72a5b1fc8\">§</a></p>\n<p>This allows <code>@extschema:referenced_extension_name@</code> to be treated as a constant for the lifetime of the extension.</p>", "text": "Allow required extensions to be marked as non-relocatable using no_relocate (Regina Obe) § This allows @extschema:referenced_extension_name@ to be treated as a constant for the lifetime of the extension.", "title": "Allow required extensions to be marked as non-relocatable using no_relocate", "commits": ["72a5b1fc8"], "section": "Additional Modules", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-MODULES", "source_hash": "5eee592578e59c5fe2d26916152bd09fe21a0c037e8265afbb92faaf41547e41", "section_path": ["Additional Modules"], "commit_groups": [["72a5b1fc8"]], "identity_text": "Allow required extensions to be marked as non-relocatable using no_relocate (Regina Obe) This allows @extschema:referenced_extension_name@ to be treated as a constant for the lifetime of the extension.", "commit_aliases": ["72a5b1fc8"], "source_commits": ["72a5b1fc8"], "source_entry_id": "16.0/changes/189", "db_id": "aebfdd1f0b3aa4e201d468119a381e74", "patch_ids": ["ffe19b6bfb65366476e076da2d44bfe4"], "statement_hash": "f1fba67b074c6022aeb36f53f649f693d06418efde733dfd459100eab95a7147", "relations": [{"rule": 2, "type": "related", "target": "383a40b7232cc394ab47db0645f51a43", "evidence": {"same_day": true, "patch_ids": ["ffe19b6bfb65366476e076da2d44bfe4"], "ambiguous_patch_ids": ["ffe19b6bfb65366476e076da2d44bfe4"]}}], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": [{"db_id": "383a40b7232cc394ab47db0645f51a43", "kind": "related", "version": "16.0", "label": "16.0", "title": "Allow the schemas of required extensions to be referenced in extension scripts using the new syntax @extschema:referenced_extension_name@", "evidence": {"same_day": true, "patch_ids": ["ffe19b6bfb65366476e076da2d44bfe4"], "ambiguous_patch_ids": ["ffe19b6bfb65366476e076da2d44bfe4"]}, "url": "/docs/compare/?release=16.0#16.0-a5b2a7383fdddab3-1", "source_url": "/docs/release/16.0/#RELEASE-16-MODULES"}]}, {"id": "16.0-b4adfda999c65414", "cves": [], "html": "<p>Allow <span>postgres_fdw</span> to do aborts in parallel (Etsuro Fujita) <a href=\"https://postgr.es/c/983ec2300\">§</a></p>\n<p>This is enabled with <span>postgres_fdw</span> option <a href=\"/docs/16/postgres-fdw.html#POSTGRES-FDW-OPTIONS-TRANSACTION-MANAGEMENT\" title=\"F.38.1.6. Transaction Management Options\"><code>parallel_abort</code></a>.</p>", "text": "Allow postgres_fdw to do aborts in parallel (Etsuro Fujita) § This is enabled with postgres_fdw option parallel_abort.", "title": "Allow postgres_fdw to do aborts in parallel", "commits": ["983ec2300"], "section": "Additional Modules / postgres_fdw", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-PGFDW", "source_hash": "7c385a335ae23011eb256aad33d7d6968c7320585df28dcdcddc549fdac83dcb", "section_path": ["Additional Modules", "postgres_fdw"], "commit_groups": [["983ec2300"]], "identity_text": "Allow postgres_fdw to do aborts in parallel (Etsuro Fujita) This is enabled with postgres_fdw option parallel_abort.", "commit_aliases": ["983ec2300"], "source_commits": ["983ec2300"], "source_entry_id": "16.0/changes/190", "db_id": "3e0e3002d684ced8df0712fc21dde2c6", "patch_ids": ["cd7ddbcd404a8ea5e3a0946886aa30e9"], "statement_hash": "b511b6584446a53e4f41350aa184fb9fb2388360251c892e81a8d293a29747c4", "relations": [], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-41ef368d66e1b04d", "cves": [], "html": "<p>Make <a href=\"/docs/16/sql-analyze.html\" title=\"ANALYZE\"><code>ANALYZE</code></a> on foreign <span>postgres_fdw</span> tables more efficient (Tomas Vondra) <a href=\"https://postgr.es/c/8ad51b5f4\">§</a></p>\n<p>The <span>postgres_fdw</span> option <a href=\"/docs/16/postgres-fdw.html#POSTGRES-FDW-OPTIONS-COST-ESTIMATION\" title=\"F.38.1.3. Cost Estimation Options\"><code>analyze_sampling</code></a> controls the sampling method.</p>", "text": "Make ANALYZE on foreign postgres_fdw tables more efficient (Tomas Vondra) § The postgres_fdw option analyze_sampling controls the sampling method.", "title": "Make ANALYZE on foreign postgres_fdw tables more efficient", "commits": ["8ad51b5f4"], "section": "Additional Modules / postgres_fdw", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-PGFDW", "source_hash": "6b5ff301820ac5e3e62f137de9a1b08cb1f6e7ad1d40368310a3e68f7e9f1dd3", "section_path": ["Additional Modules", "postgres_fdw"], "commit_groups": [["8ad51b5f4"]], "identity_text": "Make ANALYZE on foreign postgres_fdw tables more efficient (Tomas Vondra) The postgres_fdw option analyze_sampling controls the sampling method.", "commit_aliases": ["8ad51b5f4"], "source_commits": ["8ad51b5f4"], "source_entry_id": "16.0/changes/191", "db_id": "e43262335c07946d30fd008fda619c15", "patch_ids": ["94de4384029e17ead5c8f03b078a46ee"], "statement_hash": "dc56dd344037213b84ad716d8bc3be770061f5b0d3f5384594f9bce5426ce9e1", "relations": [], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-6d0f98570691739f", "cves": [], "html": "<p>Restrict shipment of <a href=\"/docs/16/datatype-oid.html\" title=\"8.19. Object Identifier Types\"><code>reg</code></a>* type constants in <span>postgres_fdw</span> to those referencing built-in objects or extensions marked as shippable (Tom Lane) <a href=\"https://postgr.es/c/31e5b5029\">§</a></p>", "text": "Restrict shipment of reg* type constants in postgres_fdw to those referencing built-in objects or extensions marked as shippable (Tom Lane) §", "title": "Restrict shipment of reg* type constants in postgres_fdw to those referencing built-in objects or extensions marked as shippable", "commits": ["31e5b5029"], "section": "Additional Modules / postgres_fdw", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-PGFDW", "source_hash": "308f6c0bb351629a5ec9364fcbcfacada5ef60dac2f1e4c6bf321b60d7ed866f", "section_path": ["Additional Modules", "postgres_fdw"], "commit_groups": [["31e5b5029"]], "identity_text": "Restrict shipment of reg* type constants in postgres_fdw to those referencing built-in objects or extensions marked as shippable (Tom Lane)", "commit_aliases": ["31e5b5029"], "source_commits": ["31e5b5029"], "source_entry_id": "16.0/changes/192", "db_id": "e7f2093c6dfe0d9fc1b3ad8e27342a28", "patch_ids": ["12ba12a06867f548b5da28bbce5abe26"], "statement_hash": "810c641efbe3c9c1e1accd6099347c2dd4ea3656e7639fa83ebfd652bcfe89ce", "relations": [], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.0-abf78b9ed43671af", "cves": [], "html": "<p>Have <span>postgres_fdw</span> and <a href=\"/docs/16/dblink.html\" title=\"F.12. dblink — connect to other PostgreSQL databases\"><span>dblink</span></a> handle interrupts during connection establishment (Andres Freund) <a href=\"https://postgr.es/c/e4602483e\">§</a></p>", "text": "Have postgres_fdw and dblink handle interrupts during connection establishment (Andres Freund) §", "title": "Have postgres_fdw and dblink handle interrupts during connection establishment", "commits": ["e4602483e"], "section": "Additional Modules / postgres_fdw", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-PGFDW", "source_hash": "5e073879fe41f91a2b361c83edf3616e74c1bda8f5fb9cc6389c5ea42925e8e3", "section_path": ["Additional Modules", "postgres_fdw"], "commit_groups": [["e4602483e"]], "identity_text": "Have postgres_fdw and dblink handle interrupts during connection establishment (Andres Freund)", "commit_aliases": ["e4602483e"], "source_commits": ["e4602483e"], "source_entry_id": "16.0/changes/193", "db_id": "fa879a93807bf4b2740087c34b5a9c0e", "patch_ids": ["159ed2d7ad9e527a9bd47d64ccfc2af1"], "statement_hash": "c92727d90f7bda9f71b90d55ea3d922fe1f69893065430181dc875d786422720", "relations": [], "version": "16.0", "category_label": "Features", "also_in": [], "variants": [], "related_changes": []}]}], "stats": [{"key": "all", "label": "All changes", "count": 206}, {"key": "feature", "label": "Features", "count": 175}, {"key": "bugfix", "label": "Bug fixes", "count": 3}, {"key": "security", "label": "Security", "count": 0}, {"key": "performance", "label": "Performance", "count": 15}, {"key": "compatibility", "label": "Compatibility", "count": 13}, {"key": "improvement", "label": "Improvements", "count": 0}], "total": 206, "release_count": 1, "cross_major": false, "cve_count": 0, "cves": [], "cve_available": true, "remaining_cves": [], "security_regressions": [], "warnings": [], "candidate_count": 206, "already_in_source_count": 0, "duplicate_count": 0, "excluded_count": 0, "exclusions": [], "source_as_of": "2026-09-26", "security_as_of": "2026-09-26"}