{"format": 1, "mode": "release", "from_release": null, "to_release": {"date": "2025-08-14", "build": "17.6", "major": "17", "minor": 6, "manual": "17", "status": "stable", "doc_git": "", "version": "17.6", "eol_date": "2029-11-08", "date_text": "2025-08-14", "supported": true, "manual_url": "/docs/17/release-17-6.html", "source_url": "/docs/release/17.6/", "entry_count": 71, "placeholder": false, "content_hash": "22f1ebf55b6afd352ffc5da071173e287ce400b628c6ef457809fa561dd0d03a", "manual_build": "17.11", "source_as_of": "", "changes_count": 71, "doc_loaded_at": "2026-09-25T02:22:44.760693", "migration_html": "<p>A dump/restore is not required for those running 17.X.</p>\n<p>However, if you have any BRIN <code>numeric_minmax_multi_ops</code> indexes, it is advisable to reindex them after updating. See the fourth changelog entry below.</p>\n<p>Also, if you are upgrading from a version earlier than 17.5, see <a href=\"/docs/17/release-17-5.html\" title=\"E.7. Release 17.5\">Section E.7</a>.</p>", "compatibility_count": 0, "label": "17.6", "status_label": "Supported", "eol": "2029-11-08", "age_days": 411, "support_days": 1136}, "groups": [{"date": "2025-08-14", "build": "17.6", "major": "17", "minor": 6, "manual": "17", "status": "stable", "doc_git": "", "version": "17.6", "eol_date": "2029-11-08", "date_text": "2025-08-14", "supported": true, "manual_url": "/docs/17/release-17-6.html", "source_url": "/docs/release/17.6/", "entry_count": 71, "placeholder": false, "content_hash": "22f1ebf55b6afd352ffc5da071173e287ce400b628c6ef457809fa561dd0d03a", "manual_build": "17.11", "source_as_of": "", "changes_count": 71, "doc_loaded_at": "2026-09-25T02:22:44.760693", "migration_html": "<p>A dump/restore is not required for those running 17.X.</p>\n<p>However, if you have any BRIN <code>numeric_minmax_multi_ops</code> indexes, it is advisable to reindex them after updating. See the fourth changelog entry below.</p>\n<p>Also, if you are upgrading from a version earlier than 17.5, see <a href=\"/docs/17/release-17-5.html\" title=\"E.7. Release 17.5\">Section E.7</a>.</p>", "compatibility_count": 0, "label": "17.6", "status_label": "Supported", "eol": "2029-11-08", "age_days": 411, "support_days": 1136, "entries": [{"id": "17.6-235b908f6ae5f3ee", "cves": ["CVE-2017-7484", "CVE-2025-8713"], "html": "<p>Tighten security checks in planner estimation functions (Dean Rasheed) <a href=\"https://postgr.es/c/a85eddab2\">§</a></p>\n<p>The fix for CVE-2017-7484, plus followup fixes, intended to prevent leaky functions from being applied to statistics data for columns that the calling user does not have permission to read. Two gaps in that protection have been found. One gap applies to partitioning and inheritance hierarchies where RLS policies on the tables should restrict access to statistics data, but did not.</p>\n<p>The other gap applies to cases where the query accesses a table via a view, and the view owner has permissions to read the underlying table but the calling user does not have permissions on the view. The view owner's permissions satisfied the security checks, and the leaky function would get applied to the underlying table's statistics before we check the calling user's permissions on the view. This has been fixed by making security checks on views occur at the start of planning. That might cause permissions failures to occur earlier than before.</p>\n<p>The <span>PostgreSQL</span> Project thanks Dean Rasheed for reporting this problem. (CVE-2025-8713)</p>", "text": "Tighten security checks in planner estimation functions (Dean Rasheed) § The fix for CVE-2017-7484, plus followup fixes, intended to prevent leaky functions from being applied to statistics data for columns that the calling user does not have permission to read. Two gaps in that protection have been found. One gap applies to partitioning and inheritance hierarchies where RLS policies on the tables should restrict access to statistics data, but did not. The other gap applies to cases where the query accesses a table via a view, and the view owner has permissions to read the underlying table but the calling user does not have permissions on the view. The view owner's permissions satisfied the security checks, and the leaky function would get applied to the underlying table's statistics before we check the calling user's permissions on the view. This has been fixed by making security checks on views occur at the start of planning. That might cause permissions failures to occur earlier than before. The PostgreSQL Project thanks Dean Rasheed for reporting this problem. (CVE-2025-8713)", "title": "Tighten security checks in planner estimation functions", "commits": ["a85eddab2"], "section": "Changes", "category": "security", "source_url": "/docs/release/17.6/#RELEASE-17-6-CHANGES", "source_hash": "55fa416fb45c9a8a27bada8a709e7c891cbd766303bf526d1b96612675271707", "section_path": ["Changes"], "commit_groups": [["22424953c", "415badc13", "533211ded", "64f77c6a6", "7e86da539", "a85eddab2", "afe38fb6a"]], "identity_text": "Tighten security checks in planner estimation functions (Dean Rasheed) The fix for CVE-2017-7484, plus followup fixes, intended to prevent leaky functions from being applied to statistics data for columns that the calling user does not have permission to read. Two gaps in that protection have been found. One gap applies to partitioning and inheritance hierarchies where RLS policies on the tables should restrict access to statistics data, but did not. The other gap applies to cases where the query accesses a table via a view, and the view owner has permissions to read the underlying table but the calling user does not have permissions on the view. The view owner's permissions satisfied the security checks, and the leaky function would get applied to the underlying table's statistics before we check the calling user's permissions on the view. This has been fixed by making security checks on views occur at the start of planning. That might cause permissions failures to occur earlier than before. The PostgreSQL Project thanks Dean Rasheed for reporting this problem. (CVE-2025-8713)", "commit_aliases": ["22424953c", "415badc13", "533211ded", "64f77c6a6", "7e86da539", "a85eddab2", "afe38fb6a"], "source_commits": ["a85eddab2"], "source_entry_id": "17.6/changes/001", "db_id": "4008a7a7d764b0695b4f8cb5eecbc29c", "patch_ids": ["0aa32d55e226afa9d177c29444a6c052"], "statement_hash": "b5a2c913f8e54333d177ebe317094715182eb911d0a897cf899b5caac948654c", "relations": [{"rule": 2, "type": "equivalent", "target": "61dc46af7f1da97de62a07c6c1063f4e", "evidence": {"same_day": true, "patch_ids": ["0aa32d55e226afa9d177c29444a6c052"], "statement_hash": "b5a2c913f8e54333d177ebe317094715182eb911d0a897cf899b5caac948654c"}}, {"rule": 2, "type": "equivalent", "target": "672931f9e1dc343ad721ab8a9cdda772", "evidence": {"same_day": true, "patch_ids": ["0aa32d55e226afa9d177c29444a6c052"], "statement_hash": "b5a2c913f8e54333d177ebe317094715182eb911d0a897cf899b5caac948654c"}}, {"rule": 2, "type": "equivalent", "target": "bc9c4792b1c85d7d0f1221cc9bbea0a3", "evidence": {"same_day": true, "patch_ids": ["0aa32d55e226afa9d177c29444a6c052"], "statement_hash": "b5a2c913f8e54333d177ebe317094715182eb911d0a897cf899b5caac948654c"}}, {"rule": 2, "type": "equivalent", "target": "db7e96e5834fa62952eee3d912b2a351", "evidence": {"same_day": true, "patch_ids": ["0aa32d55e226afa9d177c29444a6c052"], "statement_hash": "b5a2c913f8e54333d177ebe317094715182eb911d0a897cf899b5caac948654c"}}], "version": "17.6", "category_label": "Security", "also_in": [], "variants": [], "related_changes": [{"db_id": "672931f9e1dc343ad721ab8a9cdda772", "kind": "equivalent", "version": "16.10", "label": "16.10", "title": "Tighten security checks in planner estimation functions", "evidence": {"same_day": true, "patch_ids": ["0aa32d55e226afa9d177c29444a6c052"], "statement_hash": "b5a2c913f8e54333d177ebe317094715182eb911d0a897cf899b5caac948654c"}, "url": "/docs/compare/?release=16.10#16.10-423dcb75ca30c201", "source_url": "/docs/release/16.10/#RELEASE-16-10-CHANGES"}, {"db_id": "bc9c4792b1c85d7d0f1221cc9bbea0a3", "kind": "equivalent", "version": "15.14", "label": "15.14", "title": "Tighten security checks in planner estimation functions", "evidence": {"same_day": true, "patch_ids": ["0aa32d55e226afa9d177c29444a6c052"], "statement_hash": "b5a2c913f8e54333d177ebe317094715182eb911d0a897cf899b5caac948654c"}, "url": "/docs/compare/?release=15.14#15.14-52cce071b03c8e4a", "source_url": "/docs/release/15.14/#id-1.11.6.11.5"}, {"db_id": "61dc46af7f1da97de62a07c6c1063f4e", "kind": "equivalent", "version": "14.19", "label": "14.19", "title": "Tighten security checks in planner estimation functions", "evidence": {"same_day": true, "patch_ids": ["0aa32d55e226afa9d177c29444a6c052"], "statement_hash": "b5a2c913f8e54333d177ebe317094715182eb911d0a897cf899b5caac948654c"}, "url": "/docs/compare/?release=14.19#14.19-37596904cdde57bc", "source_url": "/docs/release/14.19/#id-1.11.6.11.5"}, {"db_id": "db7e96e5834fa62952eee3d912b2a351", "kind": "equivalent", "version": "13.22", "label": "13.22", "title": "Tighten security checks in planner estimation functions", "evidence": {"same_day": true, "patch_ids": ["0aa32d55e226afa9d177c29444a6c052"], "statement_hash": "b5a2c913f8e54333d177ebe317094715182eb911d0a897cf899b5caac948654c"}, "url": "/docs/compare/?release=13.22#13.22-639d2c839166c19d", "source_url": "/docs/release/13.22/#id-1.11.6.7.6"}]}, {"id": "17.6-5be27cec56fb902a", "cves": ["CVE-2025-8714"], "html": "<p>Prevent <span>pg_dump</span> scripts from being used to attack the user running the restore (Nathan Bossart) <a href=\"https://postgr.es/c/575f54d4c\">§</a></p>\n<p>Since dump/restore operations typically involve running SQL commands as superuser, the target database installation must trust the source server. However, it does not follow that the operating system user who executes <span>psql</span> to perform the restore should have to trust the source server. The risk here is that an attacker who has gained superuser-level control over the source server might be able to cause it to emit text that would be interpreted as <span>psql</span> meta-commands. That would provide shell-level access to the restoring user's own account, independently of access to the target database.</p>\n<p>To provide a positive guarantee that this can't happen, extend <span>psql</span> with a <code>\\restrict</code> command that prevents execution of further meta-commands, and teach <span>pg_dump</span> to issue that before any data coming from the source server.</p>\n<p>The PostgreSQL Project thanks Martin Rakhmanov, Matthieu Denais, and RyotaK for reporting this problem. (CVE-2025-8714)</p>", "text": "Prevent pg_dump scripts from being used to attack the user running the restore (Nathan Bossart) § Since dump/restore operations typically involve running SQL commands as superuser, the target database installation must trust the source server. However, it does not follow that the operating system user who executes psql to perform the restore should have to trust the source server. The risk here is that an attacker who has gained superuser-level control over the source server might be able to cause it to emit text that would be interpreted as psql meta-commands. That would provide shell-level access to the restoring user's own account, independently of access to the target database. To provide a positive guarantee that this can't happen, extend psql with a \\restrict command that prevents execution of further meta-commands, and teach pg_dump to issue that before any data coming from the source server. The PostgreSQL Project thanks Martin Rakhmanov, Matthieu Denais, and RyotaK for reporting this problem. (CVE-2025-8714)", "title": "Prevent pg_dump scripts from being used to attack the user running the restore", "commits": ["575f54d4c"], "section": "Changes", "category": "security", "source_url": "/docs/release/17.6/#RELEASE-17-6-CHANGES", "source_hash": "dd36fcd37e3a448e6d0a44006e3eac9083225b4a67afb9f911a272ac60a93527", "section_path": ["Changes"], "commit_groups": [["27d3dee68", "8967c33c6"], ["424040506", "575f54d4c", "67a2fbb8f", "71ea0d679", "7ad8e7909", "c204bd39f", "e4998d089"]], "identity_text": "Prevent pg_dump scripts from being used to attack the user running the restore (Nathan Bossart) Since dump/restore operations typically involve running SQL commands as superuser, the target database installation must trust the source server. However, it does not follow that the operating system user who executes psql to perform the restore should have to trust the source server. The risk here is that an attacker who has gained superuser-level control over the source server might be able to cause it to emit text that would be interpreted as psql meta-commands. That would provide shell-level access to the restoring user's own account, independently of access to the target database. To provide a positive guarantee that this can't happen, extend psql with a \\restrict command that prevents execution of further meta-commands, and teach pg_dump to issue that before any data coming from the source server. The PostgreSQL Project thanks Martin Rakhmanov, Matthieu Denais, and RyotaK for reporting this problem. (CVE-2025-8714)", "commit_aliases": ["27d3dee68", "424040506", "575f54d4c", "67a2fbb8f", "71ea0d679", "7ad8e7909", "8967c33c6", "c204bd39f", "e4998d089"], "source_commits": ["575f54d4c", "8967c33c6"], "source_entry_id": "17.6/changes/002", "db_id": "93ac3cfe25f78778dca8ff85e31817be", "patch_ids": ["a88fbc1d59a5e722f1cb99fc8acd42be", "c340e675e09ada8e08edff5a1a3a3ae8"], "statement_hash": "0b4e588c95eb5bd3d79fce471c6627a69abf65eb71c549b5ef14a7a91adbcc3a", "relations": [{"rule": 2, "type": "equivalent", "target": "2995efbedeebcfc1ca35284729dc63ca", "evidence": {"same_day": true, "patch_ids": ["a88fbc1d59a5e722f1cb99fc8acd42be", "c340e675e09ada8e08edff5a1a3a3ae8"], "statement_hash": "0b4e588c95eb5bd3d79fce471c6627a69abf65eb71c549b5ef14a7a91adbcc3a"}}, {"rule": 2, "type": "equivalent", "target": "69c7f2c77e9261cdc8fe8d36c3769742", "evidence": {"same_day": true, "patch_ids": ["a88fbc1d59a5e722f1cb99fc8acd42be", "c340e675e09ada8e08edff5a1a3a3ae8"], "statement_hash": "0b4e588c95eb5bd3d79fce471c6627a69abf65eb71c549b5ef14a7a91adbcc3a"}}, {"rule": 2, "type": "equivalent", "target": "caaaa341c31c9018981e72d6161a2801", "evidence": {"same_day": true, "patch_ids": ["a88fbc1d59a5e722f1cb99fc8acd42be", "c340e675e09ada8e08edff5a1a3a3ae8"], "statement_hash": "0b4e588c95eb5bd3d79fce471c6627a69abf65eb71c549b5ef14a7a91adbcc3a"}}, {"rule": 2, "type": "equivalent", "target": "dc692223d4e4409943580a9615f51575", "evidence": {"same_day": true, "patch_ids": ["a88fbc1d59a5e722f1cb99fc8acd42be", "c340e675e09ada8e08edff5a1a3a3ae8"], "statement_hash": "0b4e588c95eb5bd3d79fce471c6627a69abf65eb71c549b5ef14a7a91adbcc3a"}}], "version": "17.6", "category_label": "Security", "also_in": [], "variants": [], "related_changes": [{"db_id": "69c7f2c77e9261cdc8fe8d36c3769742", "kind": "equivalent", "version": "16.10", "label": "16.10", "title": "Prevent pg_dump scripts from being used to attack the user running the restore", "evidence": {"same_day": true, "patch_ids": ["a88fbc1d59a5e722f1cb99fc8acd42be", "c340e675e09ada8e08edff5a1a3a3ae8"], "statement_hash": "0b4e588c95eb5bd3d79fce471c6627a69abf65eb71c549b5ef14a7a91adbcc3a"}, "url": "/docs/compare/?release=16.10#16.10-631fe2b5cc95bf19", "source_url": "/docs/release/16.10/#RELEASE-16-10-CHANGES"}, {"db_id": "dc692223d4e4409943580a9615f51575", "kind": "equivalent", "version": "15.14", "label": "15.14", "title": "Prevent pg_dump scripts from being used to attack the user running the restore", "evidence": {"same_day": true, "patch_ids": ["a88fbc1d59a5e722f1cb99fc8acd42be", "c340e675e09ada8e08edff5a1a3a3ae8"], "statement_hash": "0b4e588c95eb5bd3d79fce471c6627a69abf65eb71c549b5ef14a7a91adbcc3a"}, "url": "/docs/compare/?release=15.14#15.14-792ea6321c8a946b", "source_url": "/docs/release/15.14/#id-1.11.6.11.5"}, {"db_id": "2995efbedeebcfc1ca35284729dc63ca", "kind": "equivalent", "version": "14.19", "label": "14.19", "title": "Prevent pg_dump scripts from being used to attack the user running the restore", "evidence": {"same_day": true, "patch_ids": ["a88fbc1d59a5e722f1cb99fc8acd42be", "c340e675e09ada8e08edff5a1a3a3ae8"], "statement_hash": "0b4e588c95eb5bd3d79fce471c6627a69abf65eb71c549b5ef14a7a91adbcc3a"}, "url": "/docs/compare/?release=14.19#14.19-7d06a1d1ebfb29d7", "source_url": "/docs/release/14.19/#id-1.11.6.11.5"}, {"db_id": "caaaa341c31c9018981e72d6161a2801", "kind": "equivalent", "version": "13.22", "label": "13.22", "title": "Prevent pg_dump scripts from being used to attack the user running the restore", "evidence": {"same_day": true, "patch_ids": ["a88fbc1d59a5e722f1cb99fc8acd42be", "c340e675e09ada8e08edff5a1a3a3ae8"], "statement_hash": "0b4e588c95eb5bd3d79fce471c6627a69abf65eb71c549b5ef14a7a91adbcc3a"}, "url": "/docs/compare/?release=13.22#13.22-2c8737193994e3d6", "source_url": "/docs/release/13.22/#id-1.11.6.7.6"}]}, {"id": "17.6-85269ca5c1610b49", "cves": ["CVE-2012-0868", "CVE-2025-8715"], "html": "<p>Convert newlines to spaces in names included in comments in <span>pg_dump</span> output (Noah Misch) <a href=\"https://postgr.es/c/9b92f115b\">§</a></p>\n<p>Object names containing newlines offered the ability to inject arbitrary SQL commands into the output script. (Without the preceding fix, injection of <span>psql</span> meta-commands would also be possible this way.) CVE-2012-0868 fixed this class of problem at the time, but later work reintroduced several cases.</p>\n<p>The <span>PostgreSQL</span> Project thanks Noah Misch for reporting this problem. (CVE-2025-8715)</p>", "text": "Convert newlines to spaces in names included in comments in pg_dump output (Noah Misch) § Object names containing newlines offered the ability to inject arbitrary SQL commands into the output script. (Without the preceding fix, injection of psql meta-commands would also be possible this way.) CVE-2012-0868 fixed this class of problem at the time, but later work reintroduced several cases. The PostgreSQL Project thanks Noah Misch for reporting this problem. (CVE-2025-8715)", "title": "Convert newlines to spaces in names included in comments in pg_dump output", "commits": ["9b92f115b"], "section": "Changes", "category": "security", "source_url": "/docs/release/17.6/#RELEASE-17-6-CHANGES", "source_hash": "30ce83050e3aff1c62a9b3ad07e337356fd12d817f163759663e36e224930764", "section_path": ["Changes"], "commit_groups": [["0f5838438", "13a67ce60", "2179e6005", "70693c645", "850caae60", "9751f934a", "9b92f115b"]], "identity_text": "Convert newlines to spaces in names included in comments in pg_dump output (Noah Misch) Object names containing newlines offered the ability to inject arbitrary SQL commands into the output script. (Without the preceding fix, injection of psql meta-commands would also be possible this way.) CVE-2012-0868 fixed this class of problem at the time, but later work reintroduced several cases. The PostgreSQL Project thanks Noah Misch for reporting this problem. (CVE-2025-8715)", "commit_aliases": ["0f5838438", "13a67ce60", "2179e6005", "70693c645", "850caae60", "9751f934a", "9b92f115b"], "source_commits": ["9b92f115b"], "source_entry_id": "17.6/changes/003", "db_id": "38111ed952ef48e4da5272e7c83e8a05", "patch_ids": ["c339acab7d9b8e62f0a32c0c18b2d7e4"], "statement_hash": "cb5a9cc437857a0caf2a82b5b88270031dd431a721fdd8641324b7e28d509258", "relations": [{"rule": 2, "type": "equivalent", "target": "37108a0558c6e7099facfb4c06a2343a", "evidence": {"same_day": true, "patch_ids": ["c339acab7d9b8e62f0a32c0c18b2d7e4"], "statement_hash": "cb5a9cc437857a0caf2a82b5b88270031dd431a721fdd8641324b7e28d509258"}}, {"rule": 2, "type": "equivalent", "target": "88e2718dcf7026885e58101ad68ad92b", "evidence": {"same_day": true, "patch_ids": ["c339acab7d9b8e62f0a32c0c18b2d7e4"], "statement_hash": "cb5a9cc437857a0caf2a82b5b88270031dd431a721fdd8641324b7e28d509258"}}, {"rule": 2, "type": "equivalent", "target": "e4409746da14b6ce48dbfc4198028b20", "evidence": {"same_day": true, "patch_ids": ["c339acab7d9b8e62f0a32c0c18b2d7e4"], "statement_hash": "cb5a9cc437857a0caf2a82b5b88270031dd431a721fdd8641324b7e28d509258"}}, {"rule": 2, "type": "equivalent", "target": "f51ac36aaada0528abd65e283dc38a35", "evidence": {"same_day": true, "patch_ids": ["c339acab7d9b8e62f0a32c0c18b2d7e4"], "statement_hash": "cb5a9cc437857a0caf2a82b5b88270031dd431a721fdd8641324b7e28d509258"}}], "version": "17.6", "category_label": "Security", "also_in": [], "variants": [], "related_changes": [{"db_id": "f51ac36aaada0528abd65e283dc38a35", "kind": "equivalent", "version": "16.10", "label": "16.10", "title": "Convert newlines to spaces in names included in comments in pg_dump output", "evidence": {"same_day": true, "patch_ids": ["c339acab7d9b8e62f0a32c0c18b2d7e4"], "statement_hash": "cb5a9cc437857a0caf2a82b5b88270031dd431a721fdd8641324b7e28d509258"}, "url": "/docs/compare/?release=16.10#16.10-af4d8aac9b4f8e26", "source_url": "/docs/release/16.10/#RELEASE-16-10-CHANGES"}, {"db_id": "37108a0558c6e7099facfb4c06a2343a", "kind": "equivalent", "version": "15.14", "label": "15.14", "title": "Convert newlines to spaces in names included in comments in pg_dump output", "evidence": {"same_day": true, "patch_ids": ["c339acab7d9b8e62f0a32c0c18b2d7e4"], "statement_hash": "cb5a9cc437857a0caf2a82b5b88270031dd431a721fdd8641324b7e28d509258"}, "url": "/docs/compare/?release=15.14#15.14-f808465a0b3d99e8", "source_url": "/docs/release/15.14/#id-1.11.6.11.5"}, {"db_id": "e4409746da14b6ce48dbfc4198028b20", "kind": "equivalent", "version": "14.19", "label": "14.19", "title": "Convert newlines to spaces in names included in comments in pg_dump output", "evidence": {"same_day": true, "patch_ids": ["c339acab7d9b8e62f0a32c0c18b2d7e4"], "statement_hash": "cb5a9cc437857a0caf2a82b5b88270031dd431a721fdd8641324b7e28d509258"}, "url": "/docs/compare/?release=14.19#14.19-fb4152603ed81a9f", "source_url": "/docs/release/14.19/#id-1.11.6.11.5"}, {"db_id": "88e2718dcf7026885e58101ad68ad92b", "kind": "equivalent", "version": "13.22", "label": "13.22", "title": "Convert newlines to spaces in names included in comments in pg_dump output", "evidence": {"same_day": true, "patch_ids": ["c339acab7d9b8e62f0a32c0c18b2d7e4"], "statement_hash": "cb5a9cc437857a0caf2a82b5b88270031dd431a721fdd8641324b7e28d509258"}, "url": "/docs/compare/?release=13.22#13.22-a726243ec1d439af", "source_url": "/docs/release/13.22/#id-1.11.6.7.6"}]}, {"id": "17.6-6264c438a439df10", "cves": [], "html": "<p>Fix incorrect distance calculation in BRIN <code>numeric_minmax_multi_ops</code> support function (Peter Eisentraut, Tom Lane) <a href=\"https://postgr.es/c/0b0d3c19b\">§</a></p>\n<p>The results were sometimes wrong on 64-bit platforms, and wildly wrong on 32-bit platforms. This did not produce obvious failures because the logic is only used to choose how to merge values into ranges; at worst the index would become inefficient and bloated. Nonetheless it's recommended to reindex any BRIN indexes that use the <code>numeric_minmax_multi_ops</code> operator class.</p>", "text": "Fix incorrect distance calculation in BRIN numeric_minmax_multi_ops support function (Peter Eisentraut, Tom Lane) § The results were sometimes wrong on 64-bit platforms, and wildly wrong on 32-bit platforms. This did not produce obvious failures because the logic is only used to choose how to merge values into ranges; at worst the index would become inefficient and bloated. Nonetheless it's recommended to reindex any BRIN indexes that use the numeric_minmax_multi_ops operator class.", "title": "Fix incorrect distance calculation in BRIN numeric_minmax_multi_ops support function", "commits": ["0b0d3c19b"], "section": "Changes", "category": "bugfix", "source_url": "/docs/release/17.6/#RELEASE-17-6-CHANGES", "source_hash": "309cf95af2570ecc2fc978fc48654d39e67c08f885a347d48d2f8e5da825863f", "section_path": ["Changes"], "commit_groups": [["0b0d3c19b", "5b0c8e328", "80c758a2e", "835c9374d", "9b681e239", "b9279058a"]], "identity_text": "Fix incorrect distance calculation in BRIN numeric_minmax_multi_ops support function (Peter Eisentraut, Tom Lane) The results were sometimes wrong on 64-bit platforms, and wildly wrong on 32-bit platforms. This did not produce obvious failures because the logic is only used to choose how to merge values into ranges; at worst the index would become inefficient and bloated. Nonetheless it's recommended to reindex any BRIN indexes that use the numeric_minmax_multi_ops operator class.", "commit_aliases": ["0b0d3c19b", "5b0c8e328", "80c758a2e", "835c9374d", "9b681e239", "b9279058a"], "source_commits": ["0b0d3c19b"], "source_entry_id": "17.6/changes/004", "db_id": "4f2f50202c0a4062fa0abf4d3a71c14f", "patch_ids": ["f8eb56421d4cc9914bb2a1c211e814b8"], "statement_hash": "bfc6044082058c817cad7f5d0f0fd18b640bc318a5a8faef49e400d017236004", "relations": [{"rule": 2, "type": "equivalent", "target": "2edd3f13435a628aaa0cf85a70b7e21b", "evidence": {"same_day": true, "patch_ids": ["f8eb56421d4cc9914bb2a1c211e814b8"], "statement_hash": "bfc6044082058c817cad7f5d0f0fd18b640bc318a5a8faef49e400d017236004"}}, {"rule": 2, "type": "equivalent", "target": "8d54330390c8ff326f0d15001315337e", "evidence": {"same_day": true, "patch_ids": ["f8eb56421d4cc9914bb2a1c211e814b8"], "statement_hash": "bfc6044082058c817cad7f5d0f0fd18b640bc318a5a8faef49e400d017236004"}}, {"rule": 2, "type": "equivalent", "target": "ed98f0f159aca0b7bdc8fa7a99199611", "evidence": {"same_day": true, "patch_ids": ["f8eb56421d4cc9914bb2a1c211e814b8"], "statement_hash": "bfc6044082058c817cad7f5d0f0fd18b640bc318a5a8faef49e400d017236004"}}], "version": "17.6", "category_label": "Bug fixes", "also_in": [], "variants": [], "related_changes": [{"db_id": "2edd3f13435a628aaa0cf85a70b7e21b", "kind": "equivalent", "version": "16.10", "label": "16.10", "title": "Fix incorrect distance calculation in BRIN numeric_minmax_multi_ops support function", "evidence": {"same_day": true, "patch_ids": ["f8eb56421d4cc9914bb2a1c211e814b8"], "statement_hash": "bfc6044082058c817cad7f5d0f0fd18b640bc318a5a8faef49e400d017236004"}, "url": "/docs/compare/?release=16.10#16.10-96d739cda1ec7a69", "source_url": "/docs/release/16.10/#RELEASE-16-10-CHANGES"}, {"db_id": "8d54330390c8ff326f0d15001315337e", "kind": "equivalent", "version": "15.14", "label": "15.14", "title": "Fix incorrect distance calculation in BRIN numeric_minmax_multi_ops support function", "evidence": {"same_day": true, "patch_ids": ["f8eb56421d4cc9914bb2a1c211e814b8"], "statement_hash": "bfc6044082058c817cad7f5d0f0fd18b640bc318a5a8faef49e400d017236004"}, "url": "/docs/compare/?release=15.14#15.14-d6dc0de428453b28", "source_url": "/docs/release/15.14/#id-1.11.6.11.5"}, {"db_id": "ed98f0f159aca0b7bdc8fa7a99199611", "kind": "equivalent", "version": "14.19", "label": "14.19", "title": "Fix incorrect distance calculation in BRIN numeric_minmax_multi_ops support function", "evidence": {"same_day": true, "patch_ids": ["f8eb56421d4cc9914bb2a1c211e814b8"], "statement_hash": "bfc6044082058c817cad7f5d0f0fd18b640bc318a5a8faef49e400d017236004"}, "url": "/docs/compare/?release=14.19#14.19-40e6c9e0d6dd1f3a", "source_url": "/docs/release/14.19/#id-1.11.6.11.5"}]}, {"id": "17.6-ce1930917ebddcaa", "cves": [], "html": "<p>Avoid regression in the size of XML input that we will accept (Michael Paquier, Erik Wienhold) <a href=\"https://postgr.es/c/fd4ad33fe\">§</a> <a href=\"https://postgr.es/c/7571e0f6e\">§</a></p>\n<p>Our workaround for a bug in early 2.13.x releases of <span>libxml2</span> made use of a code path that rejects text chunks exceeding 10MB, whereas the previous coding did not. Those early releases are presumably extinct in the wild by now, so revert to the previous coding.</p>", "text": "Avoid regression in the size of XML input that we will accept (Michael Paquier, Erik Wienhold) § § Our workaround for a bug in early 2.13.x releases of libxml2 made use of a code path that rejects text chunks exceeding 10MB, whereas the previous coding did not. Those early releases are presumably extinct in the wild by now, so revert to the previous coding.", "title": "Avoid regression in the size of XML input that we will accept", "commits": ["7571e0f6e", "fd4ad33fe"], "section": "Changes", "category": "improvement", "source_url": "/docs/release/17.6/#RELEASE-17-6-CHANGES", "source_hash": "c0f561d53ca09a151d56704186a4c18e13b29c130cce8a83f0f73facff8f984b", "section_path": ["Changes"], "commit_groups": [["0395464af", "0ffbd345e", "589d6e640", "637ead2e1", "6d5e493b4", "71c0921b6", "fd4ad33fe"], ["0928e18eb", "0ae824704", "7571e0f6e", "762c6d8d2", "902f92221", "cdcdabce5", "d5f014d89"]], "identity_text": "Avoid regression in the size of XML input that we will accept (Michael Paquier, Erik Wienhold) Our workaround for a bug in early 2.13.x releases of libxml2 made use of a code path that rejects text chunks exceeding 10MB, whereas the previous coding did not. Those early releases are presumably extinct in the wild by now, so revert to the previous coding.", "commit_aliases": ["0395464af", "0928e18eb", "0ae824704", "0ffbd345e", "589d6e640", "637ead2e1", "6d5e493b4", "71c0921b6", "7571e0f6e", "762c6d8d2", "902f92221", "cdcdabce5", "d5f014d89", "fd4ad33fe"], "source_commits": ["7571e0f6e", "fd4ad33fe"], "source_entry_id": "17.6/changes/005", "db_id": "bb2bd06d13098be6d2f716fc39bcebc1", "patch_ids": ["98252c90081e7e17af8a98af7237304d", "b287e22af912cdfb881024a69141d1d3"], "statement_hash": "df5a0eec4afc3cc17d7aae1477466e175f12a4b7662a499e03744c30e76fc313", "relations": [{"rule": 2, "type": "equivalent", "target": "0ee6aeae8fc928ce374749037900ae26", "evidence": {"same_day": true, "patch_ids": ["98252c90081e7e17af8a98af7237304d", "b287e22af912cdfb881024a69141d1d3"], "statement_hash": "df5a0eec4afc3cc17d7aae1477466e175f12a4b7662a499e03744c30e76fc313"}}, {"rule": 2, "type": "equivalent", "target": "1fde207d731da78f7ffa4b41ed55d84f", "evidence": {"same_day": true, "patch_ids": ["98252c90081e7e17af8a98af7237304d", "b287e22af912cdfb881024a69141d1d3"], "statement_hash": "df5a0eec4afc3cc17d7aae1477466e175f12a4b7662a499e03744c30e76fc313"}}, {"rule": 2, "type": "equivalent", "target": "6f0df2f7f9eaa8699c25d67daabf9b0f", "evidence": {"same_day": true, "patch_ids": ["98252c90081e7e17af8a98af7237304d", "b287e22af912cdfb881024a69141d1d3"], "statement_hash": "df5a0eec4afc3cc17d7aae1477466e175f12a4b7662a499e03744c30e76fc313"}}, {"rule": 2, "type": "equivalent", "target": "f0095d007a81a7cca2bd060e2fed3b13", "evidence": {"same_day": true, "patch_ids": ["98252c90081e7e17af8a98af7237304d", "b287e22af912cdfb881024a69141d1d3"], "statement_hash": "df5a0eec4afc3cc17d7aae1477466e175f12a4b7662a499e03744c30e76fc313"}}], "version": "17.6", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": [{"db_id": "f0095d007a81a7cca2bd060e2fed3b13", "kind": "equivalent", "version": "16.10", "label": "16.10", "title": "Avoid regression in the size of XML input that we will accept", "evidence": {"same_day": true, "patch_ids": ["98252c90081e7e17af8a98af7237304d", "b287e22af912cdfb881024a69141d1d3"], "statement_hash": "df5a0eec4afc3cc17d7aae1477466e175f12a4b7662a499e03744c30e76fc313"}, "url": "/docs/compare/?release=16.10#16.10-e13cec0f22d647d2", "source_url": "/docs/release/16.10/#RELEASE-16-10-CHANGES"}, {"db_id": "6f0df2f7f9eaa8699c25d67daabf9b0f", "kind": "equivalent", "version": "15.14", "label": "15.14", "title": "Avoid regression in the size of XML input that we will accept", "evidence": {"same_day": true, "patch_ids": ["98252c90081e7e17af8a98af7237304d", "b287e22af912cdfb881024a69141d1d3"], "statement_hash": "df5a0eec4afc3cc17d7aae1477466e175f12a4b7662a499e03744c30e76fc313"}, "url": "/docs/compare/?release=15.14#15.14-e693a8762746a5b1", "source_url": "/docs/release/15.14/#id-1.11.6.11.5"}, {"db_id": "0ee6aeae8fc928ce374749037900ae26", "kind": "equivalent", "version": "14.19", "label": "14.19", "title": "Avoid regression in the size of XML input that we will accept", "evidence": {"same_day": true, "patch_ids": ["98252c90081e7e17af8a98af7237304d", "b287e22af912cdfb881024a69141d1d3"], "statement_hash": "df5a0eec4afc3cc17d7aae1477466e175f12a4b7662a499e03744c30e76fc313"}, "url": "/docs/compare/?release=14.19#14.19-43d78edde7b0cec8", "source_url": "/docs/release/14.19/#id-1.11.6.11.5"}, {"db_id": "1fde207d731da78f7ffa4b41ed55d84f", "kind": "equivalent", "version": "13.22", "label": "13.22", "title": "Avoid regression in the size of XML input that we will accept", "evidence": {"same_day": true, "patch_ids": ["98252c90081e7e17af8a98af7237304d", "b287e22af912cdfb881024a69141d1d3"], "statement_hash": "df5a0eec4afc3cc17d7aae1477466e175f12a4b7662a499e03744c30e76fc313"}, "url": "/docs/compare/?release=13.22#13.22-66f9371c0bdfa68c", "source_url": "/docs/release/13.22/#id-1.11.6.7.6"}]}, {"id": "17.6-7898d9ffd2ac5df8", "cves": [], "html": "<p>Fix <code>MERGE</code> problems with concurrent updates (Dean Rasheed) <a href=\"https://postgr.es/c/91ad1bdef\">§</a></p>\n<p>If a <code>MERGE</code> inside a CTE attempts an update or delete on a table with <code>BEFORE ROW</code> triggers, and a concurrent <code>UPDATE</code> or <code>DELETE</code> changes the target row, the <code>MERGE</code> command would fail (crashing in the case of an update action, and potentially executing the wrong action in the case of a delete action).</p>", "text": "Fix MERGE problems with concurrent updates (Dean Rasheed) § If a MERGE inside a CTE attempts an update or delete on a table with BEFORE ROW triggers, and a concurrent UPDATE or DELETE changes the target row, the MERGE command would fail (crashing in the case of an update action, and potentially executing the wrong action in the case of a delete action).", "title": "Fix MERGE problems with concurrent updates", "commits": ["91ad1bdef"], "section": "Changes", "category": "bugfix", "source_url": "/docs/release/17.6/#RELEASE-17-6-CHANGES", "source_hash": "20388a35bd00e8d5dbe909e884f5a048357ab53b000660f2dbdfcbe51fc3d57f", "section_path": ["Changes"], "commit_groups": [["27c7c1136", "5022ff250", "91ad1bdef"]], "identity_text": "Fix MERGE problems with concurrent updates (Dean Rasheed) If a MERGE inside a CTE attempts an update or delete on a table with BEFORE ROW triggers, and a concurrent UPDATE or DELETE changes the target row, the MERGE command would fail (crashing in the case of an update action, and potentially executing the wrong action in the case of a delete action).", "commit_aliases": ["27c7c1136", "5022ff250", "91ad1bdef"], "source_commits": ["91ad1bdef"], "source_entry_id": "17.6/changes/006", "db_id": "acd58267111243b064eee8e7baeaeb29", "patch_ids": ["f1abf8f7d0d1d0adae983d0c5da2250c"], "statement_hash": "a327c18185387bf663a99baf7cacf7be9e47abfabf81cc33e0b404b90ad82c1e", "relations": [], "version": "17.6", "category_label": "Bug fixes", "also_in": [], "variants": [], "related_changes": []}, {"id": "17.6-83e4413a63ee1789", "cves": [], "html": "<p>Fix <code>MERGE</code> into a plain-inheritance parent table (Dean Rasheed) <a href=\"https://postgr.es/c/ab52f6b5b\">§</a></p>\n<p>Insertions into such a target table could crash or produce incorrect query results due to failing to handle <code>WITH CHECK OPTION</code> and <code>RETURNING</code> actions.</p>", "text": "Fix MERGE into a plain-inheritance parent table (Dean Rasheed) § Insertions into such a target table could crash or produce incorrect query results due to failing to handle WITH CHECK OPTION and RETURNING actions.", "title": "Fix MERGE into a plain-inheritance parent table", "commits": ["ab52f6b5b"], "section": "Changes", "category": "bugfix", "source_url": "/docs/release/17.6/#RELEASE-17-6-CHANGES", "source_hash": "0caa97d5ecad32d54cec5c99051491e2170d05be68f3dee07df603f82bfe43bb", "section_path": ["Changes"], "commit_groups": [["3611794af", "ab52f6b5b", "b006bcd53", "d6a3f3272"]], "identity_text": "Fix MERGE into a plain-inheritance parent table (Dean Rasheed) Insertions into such a target table could crash or produce incorrect query results due to failing to handle WITH CHECK OPTION and RETURNING actions.", "commit_aliases": ["3611794af", "ab52f6b5b", "b006bcd53", "d6a3f3272"], "source_commits": ["ab52f6b5b"], "source_entry_id": "17.6/changes/007", "db_id": "776b01eaee20e1b72becf94dee5d1d95", "patch_ids": ["8b9396f257cd689907d2f2fdbf86d1f5"], "statement_hash": "60e4c3c9398388bbe2856c9a473d2c86a7af56baf5538aaedc048246da53f067", "relations": [{"rule": 2, "type": "equivalent", "target": "386ef1831949f1bf41dd29cb4f9222c3", "evidence": {"same_day": true, "patch_ids": ["8b9396f257cd689907d2f2fdbf86d1f5"], "statement_hash": "60e4c3c9398388bbe2856c9a473d2c86a7af56baf5538aaedc048246da53f067"}}, {"rule": 2, "type": "equivalent", "target": "56af471ad09fe4db03be6a45396c6eff", "evidence": {"same_day": true, "patch_ids": ["8b9396f257cd689907d2f2fdbf86d1f5"], "statement_hash": "60e4c3c9398388bbe2856c9a473d2c86a7af56baf5538aaedc048246da53f067"}}], "version": "17.6", "category_label": "Bug fixes", "also_in": [], "variants": [], "related_changes": [{"db_id": "386ef1831949f1bf41dd29cb4f9222c3", "kind": "equivalent", "version": "16.10", "label": "16.10", "title": "Fix MERGE into a plain-inheritance parent table", "evidence": {"same_day": true, "patch_ids": ["8b9396f257cd689907d2f2fdbf86d1f5"], "statement_hash": "60e4c3c9398388bbe2856c9a473d2c86a7af56baf5538aaedc048246da53f067"}, "url": "/docs/compare/?release=16.10#16.10-17841d0eeeccee2e", "source_url": "/docs/release/16.10/#RELEASE-16-10-CHANGES"}, {"db_id": "56af471ad09fe4db03be6a45396c6eff", "kind": "equivalent", "version": "15.14", "label": "15.14", "title": "Fix MERGE into a plain-inheritance parent table", "evidence": {"same_day": true, "patch_ids": ["8b9396f257cd689907d2f2fdbf86d1f5"], "statement_hash": "60e4c3c9398388bbe2856c9a473d2c86a7af56baf5538aaedc048246da53f067"}, "url": "/docs/compare/?release=15.14#15.14-0b7f4c516b654692", "source_url": "/docs/release/15.14/#id-1.11.6.11.5"}]}, {"id": "17.6-01c44484fb8c7777", "cves": [], "html": "<p>Allow tables with statement-level triggers to become partitions or inheritance children (Etsuro Fujita) <a href=\"https://postgr.es/c/e028ce911\">§</a></p>\n<p>We do not allow partitions or inheritance child tables to have row-level triggers with transition tables, because an operation on the whole inheritance tree would need to maintain a separate transition table for each such child table. But that problem does not apply for statement-level triggers, because only the parent's statement-level triggers will be fired. The code that checks whether an existing table can become a partition or inheritance child nonetheless rejected both kinds of trigger.</p>", "text": "Allow tables with statement-level triggers to become partitions or inheritance children (Etsuro Fujita) § We do not allow partitions or inheritance child tables to have row-level triggers with transition tables, because an operation on the whole inheritance tree would need to maintain a separate transition table for each such child table. But that problem does not apply for statement-level triggers, because only the parent's statement-level triggers will be fired. The code that checks whether an existing table can become a partition or inheritance child nonetheless rejected both kinds of trigger.", "title": "Allow tables with statement-level triggers to become partitions or inheritance children", "commits": ["e028ce911"], "section": "Changes", "category": "improvement", "source_url": "/docs/release/17.6/#RELEASE-17-6-CHANGES", "source_hash": "5f8cff097160a3bad450b89036e5b4b28f4886c628d67069060758bbcb8d3721", "section_path": ["Changes"], "commit_groups": [["3863c6fb6", "73eb6afa1", "9e63f83a7", "afdb4cde1", "bba6a6faf", "e028ce911", "f39a7f32a"]], "identity_text": "Allow tables with statement-level triggers to become partitions or inheritance children (Etsuro Fujita) We do not allow partitions or inheritance child tables to have row-level triggers with transition tables, because an operation on the whole inheritance tree would need to maintain a separate transition table for each such child table. But that problem does not apply for statement-level triggers, because only the parent's statement-level triggers will be fired. The code that checks whether an existing table can become a partition or inheritance child nonetheless rejected both kinds of trigger.", "commit_aliases": ["3863c6fb6", "73eb6afa1", "9e63f83a7", "afdb4cde1", "bba6a6faf", "e028ce911", "f39a7f32a"], "source_commits": ["e028ce911"], "source_entry_id": "17.6/changes/008", "db_id": "f5801d51a971cf08cdb8c06a0637d94e", "patch_ids": ["ec5be3f8bfa509ddb1d8966ad9ecc1af"], "statement_hash": "0082e9e8b3fbe6a713df8db4021468ed4e0c645dd447c14f56a9e72d025dff7f", "relations": [{"rule": 2, "type": "equivalent", "target": "420807e2c65cfb2f35b9d98ab03fd35a", "evidence": {"same_day": true, "patch_ids": ["ec5be3f8bfa509ddb1d8966ad9ecc1af"], "statement_hash": "0082e9e8b3fbe6a713df8db4021468ed4e0c645dd447c14f56a9e72d025dff7f"}}, {"rule": 2, "type": "equivalent", "target": "46c9c9414aeb1e1d548fe9e14dd2586c", "evidence": {"same_day": true, "patch_ids": ["ec5be3f8bfa509ddb1d8966ad9ecc1af"], "statement_hash": "0082e9e8b3fbe6a713df8db4021468ed4e0c645dd447c14f56a9e72d025dff7f"}}, {"rule": 2, "type": "equivalent", "target": "9c539692e1ae384a68ec089b701c3ae5", "evidence": {"same_day": true, "patch_ids": ["ec5be3f8bfa509ddb1d8966ad9ecc1af"], "statement_hash": "0082e9e8b3fbe6a713df8db4021468ed4e0c645dd447c14f56a9e72d025dff7f"}}, {"rule": 2, "type": "equivalent", "target": "aca9c17a807140f57d39cd64e3b60dcd", "evidence": {"same_day": true, "patch_ids": ["ec5be3f8bfa509ddb1d8966ad9ecc1af"], "statement_hash": "0082e9e8b3fbe6a713df8db4021468ed4e0c645dd447c14f56a9e72d025dff7f"}}], "version": "17.6", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": [{"db_id": "46c9c9414aeb1e1d548fe9e14dd2586c", "kind": "equivalent", "version": "16.10", "label": "16.10", "title": "Allow tables with statement-level triggers to become partitions or inheritance children", "evidence": {"same_day": true, "patch_ids": ["ec5be3f8bfa509ddb1d8966ad9ecc1af"], "statement_hash": "0082e9e8b3fbe6a713df8db4021468ed4e0c645dd447c14f56a9e72d025dff7f"}, "url": "/docs/compare/?release=16.10#16.10-b7b247e33c4791f3", "source_url": "/docs/release/16.10/#RELEASE-16-10-CHANGES"}, {"db_id": "420807e2c65cfb2f35b9d98ab03fd35a", "kind": "equivalent", "version": "15.14", "label": "15.14", "title": "Allow tables with statement-level triggers to become partitions or inheritance children", "evidence": {"same_day": true, "patch_ids": ["ec5be3f8bfa509ddb1d8966ad9ecc1af"], "statement_hash": "0082e9e8b3fbe6a713df8db4021468ed4e0c645dd447c14f56a9e72d025dff7f"}, "url": "/docs/compare/?release=15.14#15.14-607bfb1bab951bc7", "source_url": "/docs/release/15.14/#id-1.11.6.11.5"}, {"db_id": "9c539692e1ae384a68ec089b701c3ae5", "kind": "equivalent", "version": "14.19", "label": "14.19", "title": "Allow tables with statement-level triggers to become partitions or inheritance children", "evidence": {"same_day": true, "patch_ids": ["ec5be3f8bfa509ddb1d8966ad9ecc1af"], "statement_hash": "0082e9e8b3fbe6a713df8db4021468ed4e0c645dd447c14f56a9e72d025dff7f"}, "url": "/docs/compare/?release=14.19#14.19-feec18122edb5081", "source_url": "/docs/release/14.19/#id-1.11.6.11.5"}, {"db_id": "aca9c17a807140f57d39cd64e3b60dcd", "kind": "equivalent", "version": "13.22", "label": "13.22", "title": "Allow tables with statement-level triggers to become partitions or inheritance children", "evidence": {"same_day": true, "patch_ids": ["ec5be3f8bfa509ddb1d8966ad9ecc1af"], "statement_hash": "0082e9e8b3fbe6a713df8db4021468ed4e0c645dd447c14f56a9e72d025dff7f"}, "url": "/docs/compare/?release=13.22#13.22-df71954a5ef41ef1", "source_url": "/docs/release/13.22/#id-1.11.6.7.6"}]}, {"id": "17.6-271f6d5d0c5205b8", "cves": [], "html": "<p>Disallow collecting transition tuples from child foreign tables (Etsuro Fujita) <a href=\"https://postgr.es/c/9048a83c7\">§</a></p>\n<p>We do not support triggers with transition tables on foreign tables. However, the case of a partition or inheritance child that is a foreign table was overlooked. If the parent has such a trigger, incorrect transition tuples were collected from the foreign child. Instead throw an error, reporting that the case is not supported.</p>", "text": "Disallow collecting transition tuples from child foreign tables (Etsuro Fujita) § We do not support triggers with transition tables on foreign tables. However, the case of a partition or inheritance child that is a foreign table was overlooked. If the parent has such a trigger, incorrect transition tuples were collected from the foreign child. Instead throw an error, reporting that the case is not supported.", "title": "Disallow collecting transition tuples from child foreign tables", "commits": ["9048a83c7"], "section": "Changes", "category": "improvement", "source_url": "/docs/release/17.6/#RELEASE-17-6-CHANGES", "source_hash": "1f985f841006f545e464cd2c36387c101195a06fc650be75a9c26b7d1d594c7c", "section_path": ["Changes"], "commit_groups": [["62a1211d3", "9048a83c7", "9cca445df", "b6641f7b0", "ce8817022", "d642d2306", "e94fc1a8a"]], "identity_text": "Disallow collecting transition tuples from child foreign tables (Etsuro Fujita) We do not support triggers with transition tables on foreign tables. However, the case of a partition or inheritance child that is a foreign table was overlooked. If the parent has such a trigger, incorrect transition tuples were collected from the foreign child. Instead throw an error, reporting that the case is not supported.", "commit_aliases": ["62a1211d3", "9048a83c7", "9cca445df", "b6641f7b0", "ce8817022", "d642d2306", "e94fc1a8a"], "source_commits": ["9048a83c7"], "source_entry_id": "17.6/changes/009", "db_id": "a92bdec02c5cc11013deebd80c74b0eb", "patch_ids": ["5a0b704f17af1d8b1003c9b05f2986c2"], "statement_hash": "656e8175e4a93a3a0588bc41f2185d223eea6d7b2a2104d8226412e279416f63", "relations": [{"rule": 2, "type": "equivalent", "target": "2979e7070342fffc5ad3b796f44b4bc6", "evidence": {"same_day": true, "patch_ids": ["5a0b704f17af1d8b1003c9b05f2986c2"], "statement_hash": "656e8175e4a93a3a0588bc41f2185d223eea6d7b2a2104d8226412e279416f63"}}, {"rule": 2, "type": "equivalent", "target": "a1e77a42db5570cb12c20d1010246a22", "evidence": {"same_day": true, "patch_ids": ["5a0b704f17af1d8b1003c9b05f2986c2"], "statement_hash": "656e8175e4a93a3a0588bc41f2185d223eea6d7b2a2104d8226412e279416f63"}}, {"rule": 2, "type": "equivalent", "target": "ab769326d638153e0ea7ef5f3a2dcb49", "evidence": {"same_day": true, "patch_ids": ["5a0b704f17af1d8b1003c9b05f2986c2"], "statement_hash": "656e8175e4a93a3a0588bc41f2185d223eea6d7b2a2104d8226412e279416f63"}}, {"rule": 2, "type": "equivalent", "target": "d139e318081b10609507f4cac88f0f8a", "evidence": {"same_day": true, "patch_ids": ["5a0b704f17af1d8b1003c9b05f2986c2"], "statement_hash": "656e8175e4a93a3a0588bc41f2185d223eea6d7b2a2104d8226412e279416f63"}}], "version": "17.6", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": [{"db_id": "ab769326d638153e0ea7ef5f3a2dcb49", "kind": "equivalent", "version": "16.10", "label": "16.10", "title": "Disallow collecting transition tuples from child foreign tables", "evidence": {"same_day": true, "patch_ids": ["5a0b704f17af1d8b1003c9b05f2986c2"], "statement_hash": "656e8175e4a93a3a0588bc41f2185d223eea6d7b2a2104d8226412e279416f63"}, "url": "/docs/compare/?release=16.10#16.10-17bba33bfae8d9d4", "source_url": "/docs/release/16.10/#RELEASE-16-10-CHANGES"}, {"db_id": "a1e77a42db5570cb12c20d1010246a22", "kind": "equivalent", "version": "15.14", "label": "15.14", "title": "Disallow collecting transition tuples from child foreign tables", "evidence": {"same_day": true, "patch_ids": ["5a0b704f17af1d8b1003c9b05f2986c2"], "statement_hash": "656e8175e4a93a3a0588bc41f2185d223eea6d7b2a2104d8226412e279416f63"}, "url": "/docs/compare/?release=15.14#15.14-f019be1c276e12ad", "source_url": "/docs/release/15.14/#id-1.11.6.11.5"}, {"db_id": "d139e318081b10609507f4cac88f0f8a", "kind": "equivalent", "version": "14.19", "label": "14.19", "title": "Disallow collecting transition tuples from child foreign tables", "evidence": {"same_day": true, "patch_ids": ["5a0b704f17af1d8b1003c9b05f2986c2"], "statement_hash": "656e8175e4a93a3a0588bc41f2185d223eea6d7b2a2104d8226412e279416f63"}, "url": "/docs/compare/?release=14.19#14.19-1ab1051a32528a44", "source_url": "/docs/release/14.19/#id-1.11.6.11.5"}, {"db_id": "2979e7070342fffc5ad3b796f44b4bc6", "kind": "equivalent", "version": "13.22", "label": "13.22", "title": "Disallow collecting transition tuples from child foreign tables", "evidence": {"same_day": true, "patch_ids": ["5a0b704f17af1d8b1003c9b05f2986c2"], "statement_hash": "656e8175e4a93a3a0588bc41f2185d223eea6d7b2a2104d8226412e279416f63"}, "url": "/docs/compare/?release=13.22#13.22-81ac4c617cec1e50", "source_url": "/docs/release/13.22/#id-1.11.6.7.6"}]}, {"id": "17.6-af53d5f6a485d2ec", "cves": [], "html": "<p>Allow resetting unknown custom parameters with reserved prefixes (Nathan Bossart) <a href=\"https://postgr.es/c/39ff05636\">§</a></p>\n<p>Previously, if a parameter setting had been stored using <code>ALTER DATABASE/ROLE/SYSTEM</code>, the stored setting could not be removed if the parameter was unknown but had a reserved prefix. This case could arise if an extension used to have a parameter, but that parameter had been removed in an upgrade.</p>", "text": "Allow resetting unknown custom parameters with reserved prefixes (Nathan Bossart) § Previously, if a parameter setting had been stored using ALTER DATABASE/ROLE/SYSTEM, the stored setting could not be removed if the parameter was unknown but had a reserved prefix. This case could arise if an extension used to have a parameter, but that parameter had been removed in an upgrade.", "title": "Allow resetting unknown custom parameters with reserved prefixes", "commits": ["39ff05636"], "section": "Changes", "category": "improvement", "source_url": "/docs/release/17.6/#RELEASE-17-6-CHANGES", "source_hash": "4ef62f1d49fc0896e9f790c1a047a08c5997a93b51b3fc14c67b99470d1a63a3", "section_path": ["Changes"], "commit_groups": [["39ff05636", "7b9674a8b", "9eb6068fb", "b998ce327", "f79ca73d7"]], "identity_text": "Allow resetting unknown custom parameters with reserved prefixes (Nathan Bossart) Previously, if a parameter setting had been stored using ALTER DATABASE/ROLE/SYSTEM, the stored setting could not be removed if the parameter was unknown but had a reserved prefix. This case could arise if an extension used to have a parameter, but that parameter had been removed in an upgrade.", "commit_aliases": ["39ff05636", "7b9674a8b", "9eb6068fb", "b998ce327", "f79ca73d7"], "source_commits": ["39ff05636"], "source_entry_id": "17.6/changes/010", "db_id": "4bca2351706849160ad866920283eb5a", "patch_ids": ["6ef00eaf9f79cd5778a9d9810e094af6"], "statement_hash": "9d74be2cd2704af7a1981053df2bf4c9896859296dea21f24e452dfd7ebaec35", "relations": [{"rule": 2, "type": "equivalent", "target": "3f85e779a3ba99de0e63196a9a7bf6ee", "evidence": {"same_day": true, "patch_ids": ["6ef00eaf9f79cd5778a9d9810e094af6"], "statement_hash": "9d74be2cd2704af7a1981053df2bf4c9896859296dea21f24e452dfd7ebaec35"}}, {"rule": 2, "type": "equivalent", "target": "86edb56611a50a1bbc62f586ee9cc761", "evidence": {"same_day": true, "patch_ids": ["6ef00eaf9f79cd5778a9d9810e094af6"], "statement_hash": "9d74be2cd2704af7a1981053df2bf4c9896859296dea21f24e452dfd7ebaec35"}}], "version": "17.6", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": [{"db_id": "3f85e779a3ba99de0e63196a9a7bf6ee", "kind": "equivalent", "version": "16.10", "label": "16.10", "title": "Allow resetting unknown custom parameters with reserved prefixes", "evidence": {"same_day": true, "patch_ids": ["6ef00eaf9f79cd5778a9d9810e094af6"], "statement_hash": "9d74be2cd2704af7a1981053df2bf4c9896859296dea21f24e452dfd7ebaec35"}, "url": "/docs/compare/?release=16.10#16.10-210ec70adf13a205", "source_url": "/docs/release/16.10/#RELEASE-16-10-CHANGES"}, {"db_id": "86edb56611a50a1bbc62f586ee9cc761", "kind": "equivalent", "version": "15.14", "label": "15.14", "title": "Allow resetting unknown custom parameters with reserved prefixes", "evidence": {"same_day": true, "patch_ids": ["6ef00eaf9f79cd5778a9d9810e094af6"], "statement_hash": "9d74be2cd2704af7a1981053df2bf4c9896859296dea21f24e452dfd7ebaec35"}, "url": "/docs/compare/?release=15.14#15.14-5ee3c037154203f3", "source_url": "/docs/release/15.14/#id-1.11.6.11.5"}]}, {"id": "17.6-9c7e461e56dfefe9", "cves": [], "html": "<p>Fix a potential deadlock during <code>ALTER SUBSCRIPTION ... DROP PUBLICATION</code> (Ajin Cherian) <a href=\"https://postgr.es/c/8c298324a\">§</a></p>\n<p>Ensure that server processes acquire catalog locks in a consistent order during replication origin drops.</p>", "text": "Fix a potential deadlock during ALTER SUBSCRIPTION ... DROP PUBLICATION (Ajin Cherian) § Ensure that server processes acquire catalog locks in a consistent order during replication origin drops.", "title": "Fix a potential deadlock during ALTER SUBSCRIPTION ... DROP PUBLICATION", "commits": ["8c298324a"], "section": "Changes", "category": "bugfix", "source_url": "/docs/release/17.6/#RELEASE-17-6-CHANGES", "source_hash": "68f5ac71f3db196c6e517a55d22bd322885007151c05d08a11dfb2393517f366", "section_path": ["Changes"], "commit_groups": [["2ab2d6f97", "41fb3f51c", "434d2d147", "8c298324a", "adfd80219", "d9f01a287"]], "identity_text": "Fix a potential deadlock during ALTER SUBSCRIPTION ... DROP PUBLICATION (Ajin Cherian) Ensure that server processes acquire catalog locks in a consistent order during replication origin drops.", "commit_aliases": ["2ab2d6f97", "41fb3f51c", "434d2d147", "8c298324a", "adfd80219", "d9f01a287"], "source_commits": ["8c298324a"], "source_entry_id": "17.6/changes/011", "db_id": "18c5f105597d23e166fd08e03cf49656", "patch_ids": ["143bab990487b546b1c946801959bb56"], "statement_hash": "50f73d9f0f29f1a2f239e34133545b82b3517495807dae45806b36358c6eb934", "relations": [{"rule": 2, "type": "equivalent", "target": "119e92e0c7e4ba7b3831fe250dba85c1", "evidence": {"same_day": true, "patch_ids": ["143bab990487b546b1c946801959bb56"], "statement_hash": "50f73d9f0f29f1a2f239e34133545b82b3517495807dae45806b36358c6eb934"}}, {"rule": 2, "type": "equivalent", "target": "1de0d029ccf2648086aaccf4f49f5ddc", "evidence": {"same_day": true, "patch_ids": ["143bab990487b546b1c946801959bb56"], "statement_hash": "50f73d9f0f29f1a2f239e34133545b82b3517495807dae45806b36358c6eb934"}}, {"rule": 2, "type": "equivalent", "target": "4f811c946e4b4a6a82a76490865d47b6", "evidence": {"same_day": true, "patch_ids": ["143bab990487b546b1c946801959bb56"], "statement_hash": "50f73d9f0f29f1a2f239e34133545b82b3517495807dae45806b36358c6eb934"}}], "version": "17.6", "category_label": "Bug fixes", "also_in": [], "variants": [], "related_changes": [{"db_id": "119e92e0c7e4ba7b3831fe250dba85c1", "kind": "equivalent", "version": "16.10", "label": "16.10", "title": "Fix a potential deadlock during ALTER SUBSCRIPTION ... DROP PUBLICATION", "evidence": {"same_day": true, "patch_ids": ["143bab990487b546b1c946801959bb56"], "statement_hash": "50f73d9f0f29f1a2f239e34133545b82b3517495807dae45806b36358c6eb934"}, "url": "/docs/compare/?release=16.10#16.10-9015eff1dde180a1", "source_url": "/docs/release/16.10/#RELEASE-16-10-CHANGES"}, {"db_id": "1de0d029ccf2648086aaccf4f49f5ddc", "kind": "equivalent", "version": "15.14", "label": "15.14", "title": "Fix a potential deadlock during ALTER SUBSCRIPTION ... DROP PUBLICATION", "evidence": {"same_day": true, "patch_ids": ["143bab990487b546b1c946801959bb56"], "statement_hash": "50f73d9f0f29f1a2f239e34133545b82b3517495807dae45806b36358c6eb934"}, "url": "/docs/compare/?release=15.14#15.14-37fb0e0ef6a2eeea", "source_url": "/docs/release/15.14/#id-1.11.6.11.5"}, {"db_id": "4f811c946e4b4a6a82a76490865d47b6", "kind": "equivalent", "version": "14.19", "label": "14.19", "title": "Fix a potential deadlock during ALTER SUBSCRIPTION ... DROP PUBLICATION", "evidence": {"same_day": true, "patch_ids": ["143bab990487b546b1c946801959bb56"], "statement_hash": "50f73d9f0f29f1a2f239e34133545b82b3517495807dae45806b36358c6eb934"}, "url": "/docs/compare/?release=14.19#14.19-47bd9af427539628", "source_url": "/docs/release/14.19/#id-1.11.6.11.5"}]}, {"id": "17.6-13e24172d846d026", "cves": [], "html": "<p>Shorten the race condition window for creating indexes with conflicting names (Tom Lane) <a href=\"https://postgr.es/c/fdd826922\">§</a></p>\n<p>When choosing an auto-generated name for an index, avoid conflicting with not-yet-committed <code>pg_class</code> rows as well as fully-valid ones. This avoids possibly choosing the same name as some concurrent <code>CREATE INDEX</code> did, when that command is still in process of filling its index, or is done but is part of a not-yet-committed transaction. There's still a window for trouble, but it's only as long as the time needed to validate a new index's parameters and insert its <code>pg_class</code> row.</p>", "text": "Shorten the race condition window for creating indexes with conflicting names (Tom Lane) § When choosing an auto-generated name for an index, avoid conflicting with not-yet-committed pg_class rows as well as fully-valid ones. This avoids possibly choosing the same name as some concurrent CREATE INDEX did, when that command is still in process of filling its index, or is done but is part of a not-yet-committed transaction. There's still a window for trouble, but it's only as long as the time needed to validate a new index's parameters and insert its pg_class row.", "title": "Shorten the race condition window for creating indexes with conflicting names", "commits": ["fdd826922"], "section": "Changes", "category": "improvement", "source_url": "/docs/release/17.6/#RELEASE-17-6-CHANGES", "source_hash": "9dadfea11d2e162bbb55d317054335b83d6fe9adaf088469f2be50c113601650", "section_path": ["Changes"], "commit_groups": [["1e24ea160", "27af8b9be", "4b66cb188", "5861b1f34", "75b8982ea", "fdd826922"]], "identity_text": "Shorten the race condition window for creating indexes with conflicting names (Tom Lane) When choosing an auto-generated name for an index, avoid conflicting with not-yet-committed pg_class rows as well as fully-valid ones. This avoids possibly choosing the same name as some concurrent CREATE INDEX did, when that command is still in process of filling its index, or is done but is part of a not-yet-committed transaction. There's still a window for trouble, but it's only as long as the time needed to validate a new index's parameters and insert its pg_class row.", "commit_aliases": ["1e24ea160", "27af8b9be", "4b66cb188", "5861b1f34", "75b8982ea", "fdd826922"], "source_commits": ["fdd826922"], "source_entry_id": "17.6/changes/012", "db_id": "cd9bf467acac56d692dda4c78b6520b4", "patch_ids": ["2cde05c697d356cd94160428f5996978"], "statement_hash": "9d8fb46e629b5f87f3921e5d3d876a1bec4056a60db5555a371048886cabedee", "relations": [{"rule": 2, "type": "equivalent", "target": "ab7bccea8d6855f4ce69007761547ea1", "evidence": {"same_day": true, "patch_ids": ["2cde05c697d356cd94160428f5996978"], "statement_hash": "9d8fb46e629b5f87f3921e5d3d876a1bec4056a60db5555a371048886cabedee"}}, {"rule": 2, "type": "equivalent", "target": "c0d512394b274df9bf04bfd9da19ad9d", "evidence": {"same_day": true, "patch_ids": ["2cde05c697d356cd94160428f5996978"], "statement_hash": "9d8fb46e629b5f87f3921e5d3d876a1bec4056a60db5555a371048886cabedee"}}, {"rule": 2, "type": "equivalent", "target": "cc9ada49012779be8d6c2ce519b277b2", "evidence": {"same_day": true, "patch_ids": ["2cde05c697d356cd94160428f5996978"], "statement_hash": "9d8fb46e629b5f87f3921e5d3d876a1bec4056a60db5555a371048886cabedee"}}, {"rule": 2, "type": "equivalent", "target": "f009510291116b6b85412f3abd7c71fe", "evidence": {"same_day": true, "patch_ids": ["2cde05c697d356cd94160428f5996978"], "statement_hash": "9d8fb46e629b5f87f3921e5d3d876a1bec4056a60db5555a371048886cabedee"}}], "version": "17.6", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": [{"db_id": "cc9ada49012779be8d6c2ce519b277b2", "kind": "equivalent", "version": "16.10", "label": "16.10", "title": "Shorten the race condition window for creating indexes with conflicting names", "evidence": {"same_day": true, "patch_ids": ["2cde05c697d356cd94160428f5996978"], "statement_hash": "9d8fb46e629b5f87f3921e5d3d876a1bec4056a60db5555a371048886cabedee"}, "url": "/docs/compare/?release=16.10#16.10-d3e537b44336e43a", "source_url": "/docs/release/16.10/#RELEASE-16-10-CHANGES"}, {"db_id": "c0d512394b274df9bf04bfd9da19ad9d", "kind": "equivalent", "version": "15.14", "label": "15.14", "title": "Shorten the race condition window for creating indexes with conflicting names", "evidence": {"same_day": true, "patch_ids": ["2cde05c697d356cd94160428f5996978"], "statement_hash": "9d8fb46e629b5f87f3921e5d3d876a1bec4056a60db5555a371048886cabedee"}, "url": "/docs/compare/?release=15.14#15.14-6dc816abb0b4e861", "source_url": "/docs/release/15.14/#id-1.11.6.11.5"}, {"db_id": "ab7bccea8d6855f4ce69007761547ea1", "kind": "equivalent", "version": "14.19", "label": "14.19", "title": "Shorten the race condition window for creating indexes with conflicting names", "evidence": {"same_day": true, "patch_ids": ["2cde05c697d356cd94160428f5996978"], "statement_hash": "9d8fb46e629b5f87f3921e5d3d876a1bec4056a60db5555a371048886cabedee"}, "url": "/docs/compare/?release=14.19#14.19-126d3ec0fd94a3c5", "source_url": "/docs/release/14.19/#id-1.11.6.11.5"}, {"db_id": "f009510291116b6b85412f3abd7c71fe", "kind": "equivalent", "version": "13.22", "label": "13.22", "title": "Shorten the race condition window for creating indexes with conflicting names", "evidence": {"same_day": true, "patch_ids": ["2cde05c697d356cd94160428f5996978"], "statement_hash": "9d8fb46e629b5f87f3921e5d3d876a1bec4056a60db5555a371048886cabedee"}, "url": "/docs/compare/?release=13.22#13.22-e58fa3a296a9867e", "source_url": "/docs/release/13.22/#id-1.11.6.7.6"}]}, {"id": "17.6-53071ce6125d0b28", "cves": [], "html": "<p>Prevent usage of incorrect <code>VACUUM</code> options in some cases where multiple tables are vacuumed in a single command (Nathan Bossart, Michael Paquier) <a href=\"https://postgr.es/c/2e0b5d252\">§</a></p>\n<p>The <code>TRUNCATE</code> and <code>INDEX_CLEANUP</code> options of one table could be applied to others.</p>", "text": "Prevent usage of incorrect VACUUM options in some cases where multiple tables are vacuumed in a single command (Nathan Bossart, Michael Paquier) § The TRUNCATE and INDEX_CLEANUP options of one table could be applied to others.", "title": "Prevent usage of incorrect VACUUM options in some cases where multiple tables are vacuumed in a single command", "commits": ["2e0b5d252"], "section": "Changes", "category": "improvement", "source_url": "/docs/release/17.6/#RELEASE-17-6-CHANGES", "source_hash": "ccee7bdf301370c289b46e1684b2d7867e4a7b3f2d629aea1fcda261151dd599", "section_path": ["Changes"], "commit_groups": [["2e0b5d252", "354944663", "65c3223f9", "661643ded", "c079ba3fc", "d187cabdd"]], "identity_text": "Prevent usage of incorrect VACUUM options in some cases where multiple tables are vacuumed in a single command (Nathan Bossart, Michael Paquier) The TRUNCATE and INDEX_CLEANUP options of one table could be applied to others.", "commit_aliases": ["2e0b5d252", "354944663", "65c3223f9", "661643ded", "c079ba3fc", "d187cabdd"], "source_commits": ["2e0b5d252"], "source_entry_id": "17.6/changes/013", "db_id": "2316d4e1293dd02f9da65a733b9c5284", "patch_ids": ["89160decf2f9b4ff941c601bacb53a69"], "statement_hash": "dbb02fd010417aaa3fa88b73610b44e468c90b166303d31fd87eaca0018dd9ac", "relations": [{"rule": 2, "type": "equivalent", "target": "39112b1e33c7d8f3e1c20acc518d1534", "evidence": {"same_day": true, "patch_ids": ["89160decf2f9b4ff941c601bacb53a69"], "statement_hash": "dbb02fd010417aaa3fa88b73610b44e468c90b166303d31fd87eaca0018dd9ac"}}, {"rule": 2, "type": "equivalent", "target": "48bd41b12ed5efc22b115d00c6f39ca1", "evidence": {"same_day": true, "patch_ids": ["89160decf2f9b4ff941c601bacb53a69"], "statement_hash": "dbb02fd010417aaa3fa88b73610b44e468c90b166303d31fd87eaca0018dd9ac"}}, {"rule": 2, "type": "equivalent", "target": "93384131d3e1a70d7b023dfbbcdf7b8d", "evidence": {"same_day": true, "patch_ids": ["89160decf2f9b4ff941c601bacb53a69"], "statement_hash": "dbb02fd010417aaa3fa88b73610b44e468c90b166303d31fd87eaca0018dd9ac"}}, {"rule": 2, "type": "equivalent", "target": "f54d5a0a16b92edc7834ea5a03a30e6e", "evidence": {"same_day": true, "patch_ids": ["89160decf2f9b4ff941c601bacb53a69"], "statement_hash": "dbb02fd010417aaa3fa88b73610b44e468c90b166303d31fd87eaca0018dd9ac"}}], "version": "17.6", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": [{"db_id": "39112b1e33c7d8f3e1c20acc518d1534", "kind": "equivalent", "version": "16.10", "label": "16.10", "title": "Prevent usage of incorrect VACUUM options in some cases where multiple tables are vacuumed in a single command", "evidence": {"same_day": true, "patch_ids": ["89160decf2f9b4ff941c601bacb53a69"], "statement_hash": "dbb02fd010417aaa3fa88b73610b44e468c90b166303d31fd87eaca0018dd9ac"}, "url": "/docs/compare/?release=16.10#16.10-083a5015589bdf74", "source_url": "/docs/release/16.10/#RELEASE-16-10-CHANGES"}, {"db_id": "93384131d3e1a70d7b023dfbbcdf7b8d", "kind": "equivalent", "version": "15.14", "label": "15.14", "title": "Prevent usage of incorrect VACUUM options in some cases where multiple tables are vacuumed in a single command", "evidence": {"same_day": true, "patch_ids": ["89160decf2f9b4ff941c601bacb53a69"], "statement_hash": "dbb02fd010417aaa3fa88b73610b44e468c90b166303d31fd87eaca0018dd9ac"}, "url": "/docs/compare/?release=15.14#15.14-7e7189b23c52d972", "source_url": "/docs/release/15.14/#id-1.11.6.11.5"}, {"db_id": "f54d5a0a16b92edc7834ea5a03a30e6e", "kind": "equivalent", "version": "14.19", "label": "14.19", "title": "Prevent usage of incorrect VACUUM options in some cases where multiple tables are vacuumed in a single command", "evidence": {"same_day": true, "patch_ids": ["89160decf2f9b4ff941c601bacb53a69"], "statement_hash": "dbb02fd010417aaa3fa88b73610b44e468c90b166303d31fd87eaca0018dd9ac"}, "url": "/docs/compare/?release=14.19#14.19-705feeee9879da2e", "source_url": "/docs/release/14.19/#id-1.11.6.11.5"}, {"db_id": "48bd41b12ed5efc22b115d00c6f39ca1", "kind": "equivalent", "version": "13.22", "label": "13.22", "title": "Prevent usage of incorrect VACUUM options in some cases where multiple tables are vacuumed in a single command", "evidence": {"same_day": true, "patch_ids": ["89160decf2f9b4ff941c601bacb53a69"], "statement_hash": "dbb02fd010417aaa3fa88b73610b44e468c90b166303d31fd87eaca0018dd9ac"}, "url": "/docs/compare/?release=13.22#13.22-d570c9d303f43874", "source_url": "/docs/release/13.22/#id-1.11.6.7.6"}]}, {"id": "17.6-7e5c416df000624e", "cves": [], "html": "<p>Ensure that the table's free-space map is updated in a timely way when vacuuming a table that has no indexes (Masahiko Sawada) <a href=\"https://postgr.es/c/792238c8b\">§</a></p>\n<p>A previous optimization caused FSM vacuuming to sometimes be skipped for such tables.</p>", "text": "Ensure that the table's free-space map is updated in a timely way when vacuuming a table that has no indexes (Masahiko Sawada) § A previous optimization caused FSM vacuuming to sometimes be skipped for such tables.", "title": "Ensure that the table's free-space map is updated in a timely way when vacuuming a table that has no indexes", "commits": ["792238c8b"], "section": "Changes", "category": "improvement", "source_url": "/docs/release/17.6/#RELEASE-17-6-CHANGES", "source_hash": "067d4b65b917ba12ad9dd12a4b27c5b6dfda4e9011822d240c51d726f670a35f", "section_path": ["Changes"], "commit_groups": [["3811ca360", "792238c8b", "7c6ededac"]], "identity_text": "Ensure that the table's free-space map is updated in a timely way when vacuuming a table that has no indexes (Masahiko Sawada) A previous optimization caused FSM vacuuming to sometimes be skipped for such tables.", "commit_aliases": ["3811ca360", "792238c8b", "7c6ededac"], "source_commits": ["792238c8b"], "source_entry_id": "17.6/changes/014", "db_id": "208b51b013b261d7c941e50bdfdd5399", "patch_ids": ["2898fd9eedaa08c9dd21335e7e065b8a"], "statement_hash": "b4f70551b2a0be0dbbef80a1e994056d3d171913ad0448ff4a6224b2aa30e34e", "relations": [], "version": "17.6", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": []}, {"id": "17.6-483f40f2905262cc", "cves": [], "html": "<p>Fix processing of character classes within <code>SIMILAR TO</code> regular expressions (Laurenz Albe) <a href=\"https://postgr.es/c/e3ffc3e91\">§</a> <a href=\"https://postgr.es/c/a3c6d92f3\">§</a></p>\n<p>The code that translates <code>SIMILAR TO</code> pattern matching expressions to POSIX-style regular expressions did not consider that square brackets can be nested. For example, in a pattern like <code>[[:alpha:]%_]</code>, the code treated the <code>%</code> and <code>_</code> characters as metacharacters when they should be literals.</p>", "text": "Fix processing of character classes within SIMILAR TO regular expressions (Laurenz Albe) § § The code that translates SIMILAR TO pattern matching expressions to POSIX-style regular expressions did not consider that square brackets can be nested. For example, in a pattern like [[:alpha:]%_], the code treated the % and _ characters as metacharacters when they should be literals.", "title": "Fix processing of character classes within SIMILAR TO regular expressions", "commits": ["a3c6d92f3", "e3ffc3e91"], "section": "Changes", "category": "bugfix", "source_url": "/docs/release/17.6/#RELEASE-17-6-CHANGES", "source_hash": "a6a84a0019bd9a3fd7c881685cff13d6c5cb3b44dedecacf22695b5f1cad3ee7", "section_path": ["Changes"], "commit_groups": [["0c09922c0", "31ee5ec69", "4dc642e75", "4fbb46f61", "52d08620e", "a3c6d92f3"], ["1fe15d25e", "9481d1614", "b3e99115e", "d46911e58", "e3ffc3e91", "e9e535d61"]], "identity_text": "Fix processing of character classes within SIMILAR TO regular expressions (Laurenz Albe) The code that translates SIMILAR TO pattern matching expressions to POSIX-style regular expressions did not consider that square brackets can be nested. For example, in a pattern like [[:alpha:]%_], the code treated the % and _ characters as metacharacters when they should be literals.", "commit_aliases": ["0c09922c0", "1fe15d25e", "31ee5ec69", "4dc642e75", "4fbb46f61", "52d08620e", "9481d1614", "a3c6d92f3", "b3e99115e", "d46911e58", "e3ffc3e91", "e9e535d61"], "source_commits": ["a3c6d92f3", "e3ffc3e91"], "source_entry_id": "17.6/changes/015", "db_id": "592154b7d54dfa17fa5b9fd969e5793b", "patch_ids": ["298d1aa172772ad302c04c8ff71f16fc", "cd82c8ae60471aa4ec59ca3150bed1ad"], "statement_hash": "f7c19d4e4f39822c237f50cb49b0eb8e2fceb4ba460e6320d29d82c7b8dbf2fa", "relations": [{"rule": 2, "type": "equivalent", "target": "0140aef3f5703251ce4a930f0fd1f18d", "evidence": {"same_day": true, "patch_ids": ["298d1aa172772ad302c04c8ff71f16fc", "cd82c8ae60471aa4ec59ca3150bed1ad"], "statement_hash": "f7c19d4e4f39822c237f50cb49b0eb8e2fceb4ba460e6320d29d82c7b8dbf2fa"}}, {"rule": 2, "type": "equivalent", "target": "2f858ffaa73f46878766a2a34c5cadfd", "evidence": {"same_day": true, "patch_ids": ["298d1aa172772ad302c04c8ff71f16fc", "cd82c8ae60471aa4ec59ca3150bed1ad"], "statement_hash": "f7c19d4e4f39822c237f50cb49b0eb8e2fceb4ba460e6320d29d82c7b8dbf2fa"}}, {"rule": 2, "type": "equivalent", "target": "b16bc663426f7e15fd04323e4fd5c4e7", "evidence": {"same_day": true, "patch_ids": ["298d1aa172772ad302c04c8ff71f16fc", "cd82c8ae60471aa4ec59ca3150bed1ad"], "statement_hash": "f7c19d4e4f39822c237f50cb49b0eb8e2fceb4ba460e6320d29d82c7b8dbf2fa"}}, {"rule": 2, "type": "equivalent", "target": "b3faaedb199ce89968436f1d12b6232f", "evidence": {"same_day": true, "patch_ids": ["298d1aa172772ad302c04c8ff71f16fc", "cd82c8ae60471aa4ec59ca3150bed1ad"], "statement_hash": "f7c19d4e4f39822c237f50cb49b0eb8e2fceb4ba460e6320d29d82c7b8dbf2fa"}}], "version": "17.6", "category_label": "Bug fixes", "also_in": [], "variants": [], "related_changes": [{"db_id": "b16bc663426f7e15fd04323e4fd5c4e7", "kind": "equivalent", "version": "16.10", "label": "16.10", "title": "Fix processing of character classes within SIMILAR TO regular expressions", "evidence": {"same_day": true, "patch_ids": ["298d1aa172772ad302c04c8ff71f16fc", "cd82c8ae60471aa4ec59ca3150bed1ad"], "statement_hash": "f7c19d4e4f39822c237f50cb49b0eb8e2fceb4ba460e6320d29d82c7b8dbf2fa"}, "url": "/docs/compare/?release=16.10#16.10-2413bf93b2a49dfd", "source_url": "/docs/release/16.10/#RELEASE-16-10-CHANGES"}, {"db_id": "0140aef3f5703251ce4a930f0fd1f18d", "kind": "equivalent", "version": "15.14", "label": "15.14", "title": "Fix processing of character classes within SIMILAR TO regular expressions", "evidence": {"same_day": true, "patch_ids": ["298d1aa172772ad302c04c8ff71f16fc", "cd82c8ae60471aa4ec59ca3150bed1ad"], "statement_hash": "f7c19d4e4f39822c237f50cb49b0eb8e2fceb4ba460e6320d29d82c7b8dbf2fa"}, "url": "/docs/compare/?release=15.14#15.14-381ea5e3414767c1", "source_url": "/docs/release/15.14/#id-1.11.6.11.5"}, {"db_id": "2f858ffaa73f46878766a2a34c5cadfd", "kind": "equivalent", "version": "14.19", "label": "14.19", "title": "Fix processing of character classes within SIMILAR TO regular expressions", "evidence": {"same_day": true, "patch_ids": ["298d1aa172772ad302c04c8ff71f16fc", "cd82c8ae60471aa4ec59ca3150bed1ad"], "statement_hash": "f7c19d4e4f39822c237f50cb49b0eb8e2fceb4ba460e6320d29d82c7b8dbf2fa"}, "url": "/docs/compare/?release=14.19#14.19-31399dfae0d0225d", "source_url": "/docs/release/14.19/#id-1.11.6.11.5"}, {"db_id": "b3faaedb199ce89968436f1d12b6232f", "kind": "equivalent", "version": "13.22", "label": "13.22", "title": "Fix processing of character classes within SIMILAR TO regular expressions", "evidence": {"same_day": true, "patch_ids": ["298d1aa172772ad302c04c8ff71f16fc", "cd82c8ae60471aa4ec59ca3150bed1ad"], "statement_hash": "f7c19d4e4f39822c237f50cb49b0eb8e2fceb4ba460e6320d29d82c7b8dbf2fa"}, "url": "/docs/compare/?release=13.22#13.22-b8173bf68157bc91", "source_url": "/docs/release/13.22/#id-1.11.6.7.6"}]}, {"id": "17.6-b5721ac2f2e16db7", "cves": [], "html": "<p>When deparsing queries, always add parentheses around the expression in <code>FETCH FIRST <em><code>expression</code></em> ROWS WITH TIES</code> clauses (Heikki Linnakangas) <a href=\"https://postgr.es/c/54c05292b\">§</a> <a href=\"https://postgr.es/c/a4da7b0cf\">§</a></p>\n<p>This avoids some cases where the deparsed result wasn't syntactically valid.</p>", "text": "When deparsing queries, always add parentheses around the expression in FETCH FIRST expression ROWS WITH TIES clauses (Heikki Linnakangas) § § This avoids some cases where the deparsed result wasn't syntactically valid.", "title": "When deparsing queries, always add parentheses around the expression in FETCH FIRST expression ROWS WITH TIES clauses", "commits": ["54c05292b", "a4da7b0cf"], "section": "Changes", "category": "improvement", "source_url": "/docs/release/17.6/#RELEASE-17-6-CHANGES", "source_hash": "e7621f8bcd9f45e102c1cc7c4514efcf9aef26cffea5af393b8dab8ba99af779", "section_path": ["Changes"], "commit_groups": [["0420b24fe", "29f7ce6fe", "54c05292b", "72fe74ca5", "7ee00918f", "92a9ba3b9"], ["558ea446a", "a4da7b0cf", "cbf53e2b8"]], "identity_text": "When deparsing queries, always add parentheses around the expression in FETCH FIRST expression ROWS WITH TIES clauses (Heikki Linnakangas) This avoids some cases where the deparsed result wasn't syntactically valid.", "commit_aliases": ["0420b24fe", "29f7ce6fe", "54c05292b", "558ea446a", "72fe74ca5", "7ee00918f", "92a9ba3b9", "a4da7b0cf", "cbf53e2b8"], "source_commits": ["54c05292b", "a4da7b0cf"], "source_entry_id": "17.6/changes/016", "db_id": "cd001a18add755b7d0ccbcd5d91d460a", "patch_ids": ["da6a24d2406b7c97b728c6ff62b21709", "e2f0940f582bbc106392b2bf98063cbb"], "statement_hash": "5e5ec36a3cf13bab1d54c4a81ac7e4e242aa243fade253713675c900924b1f0b", "relations": [{"rule": 2, "type": "equivalent", "target": "2c53c54fdf068bc21cac5e41d449e779", "evidence": {"same_day": true, "patch_ids": ["da6a24d2406b7c97b728c6ff62b21709", "e2f0940f582bbc106392b2bf98063cbb"], "statement_hash": "5e5ec36a3cf13bab1d54c4a81ac7e4e242aa243fade253713675c900924b1f0b"}}, {"rule": 2, "type": "equivalent", "target": "4cbd753646a1fc3438685a6ec808ae57", "evidence": {"same_day": true, "patch_ids": ["da6a24d2406b7c97b728c6ff62b21709", "e2f0940f582bbc106392b2bf98063cbb"], "statement_hash": "5e5ec36a3cf13bab1d54c4a81ac7e4e242aa243fade253713675c900924b1f0b"}}, {"rule": 2, "type": "equivalent", "target": "ac2730f6a1011c38915f3f51fed5e23c", "evidence": {"same_day": true, "patch_ids": ["da6a24d2406b7c97b728c6ff62b21709", "e2f0940f582bbc106392b2bf98063cbb"], "statement_hash": "5e5ec36a3cf13bab1d54c4a81ac7e4e242aa243fade253713675c900924b1f0b"}}, {"rule": 2, "type": "equivalent", "target": "c700983864cc9535ad4ffcda69d8552b", "evidence": {"same_day": true, "patch_ids": ["da6a24d2406b7c97b728c6ff62b21709", "e2f0940f582bbc106392b2bf98063cbb"], "statement_hash": "5e5ec36a3cf13bab1d54c4a81ac7e4e242aa243fade253713675c900924b1f0b"}}], "version": "17.6", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": [{"db_id": "4cbd753646a1fc3438685a6ec808ae57", "kind": "equivalent", "version": "16.10", "label": "16.10", "title": "When deparsing queries, always add parentheses around the expression in FETCH FIRST expression ROWS WITH TIES clauses", "evidence": {"same_day": true, "patch_ids": ["da6a24d2406b7c97b728c6ff62b21709", "e2f0940f582bbc106392b2bf98063cbb"], "statement_hash": "5e5ec36a3cf13bab1d54c4a81ac7e4e242aa243fade253713675c900924b1f0b"}, "url": "/docs/compare/?release=16.10#16.10-ff86fcf4706d332b", "source_url": "/docs/release/16.10/#RELEASE-16-10-CHANGES"}, {"db_id": "c700983864cc9535ad4ffcda69d8552b", "kind": "equivalent", "version": "15.14", "label": "15.14", "title": "When deparsing queries, always add parentheses around the expression in FETCH FIRST expression ROWS WITH TIES clauses", "evidence": {"same_day": true, "patch_ids": ["da6a24d2406b7c97b728c6ff62b21709", "e2f0940f582bbc106392b2bf98063cbb"], "statement_hash": "5e5ec36a3cf13bab1d54c4a81ac7e4e242aa243fade253713675c900924b1f0b"}, "url": "/docs/compare/?release=15.14#15.14-99b7043aab7b8b2f", "source_url": "/docs/release/15.14/#id-1.11.6.11.5"}, {"db_id": "ac2730f6a1011c38915f3f51fed5e23c", "kind": "equivalent", "version": "14.19", "label": "14.19", "title": "When deparsing queries, always add parentheses around the expression in FETCH FIRST expression ROWS WITH TIES clauses", "evidence": {"same_day": true, "patch_ids": ["da6a24d2406b7c97b728c6ff62b21709", "e2f0940f582bbc106392b2bf98063cbb"], "statement_hash": "5e5ec36a3cf13bab1d54c4a81ac7e4e242aa243fade253713675c900924b1f0b"}, "url": "/docs/compare/?release=14.19#14.19-6c61789bdaa33b27", "source_url": "/docs/release/14.19/#id-1.11.6.11.5"}, {"db_id": "2c53c54fdf068bc21cac5e41d449e779", "kind": "equivalent", "version": "13.22", "label": "13.22", "title": "When deparsing queries, always add parentheses around the expression in FETCH FIRST expression ROWS WITH TIES clauses", "evidence": {"same_day": true, "patch_ids": ["da6a24d2406b7c97b728c6ff62b21709", "e2f0940f582bbc106392b2bf98063cbb"], "statement_hash": "5e5ec36a3cf13bab1d54c4a81ac7e4e242aa243fade253713675c900924b1f0b"}, "url": "/docs/compare/?release=13.22#13.22-2a35de9d95005e82", "source_url": "/docs/release/13.22/#id-1.11.6.7.6"}]}, {"id": "17.6-8c460f992a0ce3be", "cves": [], "html": "<p>Limit the checkpointer process's fsync request queue size (Alexander Korotkov, Xuneng Zhou) <a href=\"https://postgr.es/c/13559de95\">§</a> <a href=\"https://postgr.es/c/605890034\">§</a></p>\n<p>With very large <code>shared_buffers</code> settings, it was possible for the checkpointer to attempt to allocate more than 1GB for fsync requests, leading to failure and an infinite loop. Clamp the queue size to prevent this scenario.</p>", "text": "Limit the checkpointer process's fsync request queue size (Alexander Korotkov, Xuneng Zhou) § § With very large shared_buffers settings, it was possible for the checkpointer to attempt to allocate more than 1GB for fsync requests, leading to failure and an infinite loop. Clamp the queue size to prevent this scenario.", "title": "Limit the checkpointer process's fsync request queue size", "commits": ["13559de95", "605890034"], "section": "Changes", "category": "improvement", "source_url": "/docs/release/17.6/#RELEASE-17-6-CHANGES", "source_hash": "8c0ed16ab408506abcc539c8f793054e6459f2fb4fe2b53eeeb0f6e0241221ec", "section_path": ["Changes"], "commit_groups": [["13559de95", "466c5435f", "50026136c", "b248a3ba4", "bae507821", "f0cdc2afd", "f32a47161"], ["2ac50f118", "5cfbff48a", "605890034", "73f897ba5", "7f872ae70", "c5d66fc12"]], "identity_text": "Limit the checkpointer process's fsync request queue size (Alexander Korotkov, Xuneng Zhou) With very large shared_buffers settings, it was possible for the checkpointer to attempt to allocate more than 1GB for fsync requests, leading to failure and an infinite loop. Clamp the queue size to prevent this scenario.", "commit_aliases": ["13559de95", "2ac50f118", "466c5435f", "50026136c", "5cfbff48a", "605890034", "73f897ba5", "7f872ae70", "b248a3ba4", "bae507821", "c5d66fc12", "f0cdc2afd", "f32a47161"], "source_commits": ["13559de95", "605890034"], "source_entry_id": "17.6/changes/017", "db_id": "b6926393711900b935aaf06bb088735c", "patch_ids": ["b33d312a12e371b36a675999aa9c4665", "bd53c105c4eb414f08698f7c4055b5d3"], "statement_hash": "301b8a1b01d246b950e5e16133e2ddbcb2b8294b545def270f1e0bad8d1dea57", "relations": [{"rule": 2, "type": "equivalent", "target": "281fc97a46282d1438f5efa7248025f2", "evidence": {"same_day": true, "patch_ids": ["b33d312a12e371b36a675999aa9c4665", "bd53c105c4eb414f08698f7c4055b5d3"], "statement_hash": "301b8a1b01d246b950e5e16133e2ddbcb2b8294b545def270f1e0bad8d1dea57"}}, {"rule": 2, "type": "equivalent", "target": "293f573a0de7ce494f7b2cfc6a4f2e11", "evidence": {"same_day": true, "patch_ids": ["b33d312a12e371b36a675999aa9c4665", "bd53c105c4eb414f08698f7c4055b5d3"], "statement_hash": "301b8a1b01d246b950e5e16133e2ddbcb2b8294b545def270f1e0bad8d1dea57"}}, {"rule": 2, "type": "equivalent", "target": "e5af68e076117d795f0b8253008885d8", "evidence": {"same_day": true, "patch_ids": ["b33d312a12e371b36a675999aa9c4665", "bd53c105c4eb414f08698f7c4055b5d3"], "statement_hash": "301b8a1b01d246b950e5e16133e2ddbcb2b8294b545def270f1e0bad8d1dea57"}}, {"rule": 2, "type": "equivalent", "target": "f6a3dfeda75753850982973e1f165e27", "evidence": {"same_day": true, "patch_ids": ["b33d312a12e371b36a675999aa9c4665", "bd53c105c4eb414f08698f7c4055b5d3"], "statement_hash": "301b8a1b01d246b950e5e16133e2ddbcb2b8294b545def270f1e0bad8d1dea57"}}], "version": "17.6", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": [{"db_id": "e5af68e076117d795f0b8253008885d8", "kind": "equivalent", "version": "16.10", "label": "16.10", "title": "Limit the checkpointer process's fsync request queue size", "evidence": {"same_day": true, "patch_ids": ["b33d312a12e371b36a675999aa9c4665", "bd53c105c4eb414f08698f7c4055b5d3"], "statement_hash": "301b8a1b01d246b950e5e16133e2ddbcb2b8294b545def270f1e0bad8d1dea57"}, "url": "/docs/compare/?release=16.10#16.10-c29858c62d2499c3", "source_url": "/docs/release/16.10/#RELEASE-16-10-CHANGES"}, {"db_id": "281fc97a46282d1438f5efa7248025f2", "kind": "equivalent", "version": "15.14", "label": "15.14", "title": "Limit the checkpointer process's fsync request queue size", "evidence": {"same_day": true, "patch_ids": ["b33d312a12e371b36a675999aa9c4665", "bd53c105c4eb414f08698f7c4055b5d3"], "statement_hash": "301b8a1b01d246b950e5e16133e2ddbcb2b8294b545def270f1e0bad8d1dea57"}, "url": "/docs/compare/?release=15.14#15.14-b5cdd8306236aec3", "source_url": "/docs/release/15.14/#id-1.11.6.11.5"}, {"db_id": "f6a3dfeda75753850982973e1f165e27", "kind": "equivalent", "version": "14.19", "label": "14.19", "title": "Limit the checkpointer process's fsync request queue size", "evidence": {"same_day": true, "patch_ids": ["b33d312a12e371b36a675999aa9c4665", "bd53c105c4eb414f08698f7c4055b5d3"], "statement_hash": "301b8a1b01d246b950e5e16133e2ddbcb2b8294b545def270f1e0bad8d1dea57"}, "url": "/docs/compare/?release=14.19#14.19-f8241f57134fe016", "source_url": "/docs/release/14.19/#id-1.11.6.11.5"}, {"db_id": "293f573a0de7ce494f7b2cfc6a4f2e11", "kind": "equivalent", "version": "13.22", "label": "13.22", "title": "Limit the checkpointer process's fsync request queue size", "evidence": {"same_day": true, "patch_ids": ["b33d312a12e371b36a675999aa9c4665", "bd53c105c4eb414f08698f7c4055b5d3"], "statement_hash": "301b8a1b01d246b950e5e16133e2ddbcb2b8294b545def270f1e0bad8d1dea57"}, "url": "/docs/compare/?release=13.22#13.22-e8b5615708afb421", "source_url": "/docs/release/13.22/#id-1.11.6.7.6"}]}, {"id": "17.6-c0d682449b03726c", "cves": [], "html": "<p>Avoid infinite wait in logical decoding when reading a partially-written WAL record (Vignesh C) <a href=\"https://postgr.es/c/c9f4e7520\">§</a></p>\n<p>If the server crashes after writing the first part of a WAL record that would span multiple pages, subsequent logical decoding of the WAL stream would wait for data to arrive on the next WAL page. That might never happen if the server is now idle.</p>", "text": "Avoid infinite wait in logical decoding when reading a partially-written WAL record (Vignesh C) § If the server crashes after writing the first part of a WAL record that would span multiple pages, subsequent logical decoding of the WAL stream would wait for data to arrive on the next WAL page. That might never happen if the server is now idle.", "title": "Avoid infinite wait in logical decoding when reading a partially-written WAL record", "commits": ["c9f4e7520"], "section": "Changes", "category": "improvement", "source_url": "/docs/release/17.6/#RELEASE-17-6-CHANGES", "source_hash": "2978dc66d98b8bfedefcd8aaaf052723956f4dcd91cd3b8ef7e88d0f0cbcc135", "section_path": ["Changes"], "commit_groups": [["5449d5b7a", "762f352ca", "9f270f48f", "b485e1c89", "bedfdb85b", "c9f4e7520", "d3917d8f1"]], "identity_text": "Avoid infinite wait in logical decoding when reading a partially-written WAL record (Vignesh C) If the server crashes after writing the first part of a WAL record that would span multiple pages, subsequent logical decoding of the WAL stream would wait for data to arrive on the next WAL page. That might never happen if the server is now idle.", "commit_aliases": ["5449d5b7a", "762f352ca", "9f270f48f", "b485e1c89", "bedfdb85b", "c9f4e7520", "d3917d8f1"], "source_commits": ["c9f4e7520"], "source_entry_id": "17.6/changes/018", "db_id": "93c9113e8027956fcabdf155f8f75e4e", "patch_ids": ["144ef66a83178a770de8fdb2ebc4a8ca"], "statement_hash": "36121084c99a58bdd2789e976cd801346c4feca0c2b1726e05ff531a6a74e2e9", "relations": [{"rule": 2, "type": "equivalent", "target": "22e9d4de76eb1e464e3ec27fe97dd92f", "evidence": {"same_day": true, "patch_ids": ["144ef66a83178a770de8fdb2ebc4a8ca"], "statement_hash": "36121084c99a58bdd2789e976cd801346c4feca0c2b1726e05ff531a6a74e2e9"}}, {"rule": 2, "type": "equivalent", "target": "58b07f22664eda599d8b66bf542f2279", "evidence": {"same_day": true, "patch_ids": ["144ef66a83178a770de8fdb2ebc4a8ca"], "statement_hash": "36121084c99a58bdd2789e976cd801346c4feca0c2b1726e05ff531a6a74e2e9"}}, {"rule": 2, "type": "equivalent", "target": "d765a2454362eae947f4e8fb58437956", "evidence": {"same_day": true, "patch_ids": ["144ef66a83178a770de8fdb2ebc4a8ca"], "statement_hash": "36121084c99a58bdd2789e976cd801346c4feca0c2b1726e05ff531a6a74e2e9"}}, {"rule": 2, "type": "equivalent", "target": "ee8d9b40c53ea8c4169fbdeb6a702b0c", "evidence": {"same_day": true, "patch_ids": ["144ef66a83178a770de8fdb2ebc4a8ca"], "statement_hash": "36121084c99a58bdd2789e976cd801346c4feca0c2b1726e05ff531a6a74e2e9"}}], "version": "17.6", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": [{"db_id": "d765a2454362eae947f4e8fb58437956", "kind": "equivalent", "version": "16.10", "label": "16.10", "title": "Avoid infinite wait in logical decoding when reading a partially-written WAL record", "evidence": {"same_day": true, "patch_ids": ["144ef66a83178a770de8fdb2ebc4a8ca"], "statement_hash": "36121084c99a58bdd2789e976cd801346c4feca0c2b1726e05ff531a6a74e2e9"}, "url": "/docs/compare/?release=16.10#16.10-c837113a33e19cfe", "source_url": "/docs/release/16.10/#RELEASE-16-10-CHANGES"}, {"db_id": "22e9d4de76eb1e464e3ec27fe97dd92f", "kind": "equivalent", "version": "15.14", "label": "15.14", "title": "Avoid infinite wait in logical decoding when reading a partially-written WAL record", "evidence": {"same_day": true, "patch_ids": ["144ef66a83178a770de8fdb2ebc4a8ca"], "statement_hash": "36121084c99a58bdd2789e976cd801346c4feca0c2b1726e05ff531a6a74e2e9"}, "url": "/docs/compare/?release=15.14#15.14-d41948712b1e27a7", "source_url": "/docs/release/15.14/#id-1.11.6.11.5"}, {"db_id": "ee8d9b40c53ea8c4169fbdeb6a702b0c", "kind": "equivalent", "version": "14.19", "label": "14.19", "title": "Avoid infinite wait in logical decoding when reading a partially-written WAL record", "evidence": {"same_day": true, "patch_ids": ["144ef66a83178a770de8fdb2ebc4a8ca"], "statement_hash": "36121084c99a58bdd2789e976cd801346c4feca0c2b1726e05ff531a6a74e2e9"}, "url": "/docs/compare/?release=14.19#14.19-81c556306da153c8", "source_url": "/docs/release/14.19/#id-1.11.6.11.5"}, {"db_id": "58b07f22664eda599d8b66bf542f2279", "kind": "equivalent", "version": "13.22", "label": "13.22", "title": "Avoid infinite wait in logical decoding when reading a partially-written WAL record", "evidence": {"same_day": true, "patch_ids": ["144ef66a83178a770de8fdb2ebc4a8ca"], "statement_hash": "36121084c99a58bdd2789e976cd801346c4feca0c2b1726e05ff531a6a74e2e9"}, "url": "/docs/compare/?release=13.22#13.22-9aa3ca20baea6a38", "source_url": "/docs/release/13.22/#id-1.11.6.7.6"}]}, {"id": "17.6-54d60f94669505c0", "cves": [], "html": "<p>Fix inconsistent spelling of LWLock names for <code>MultiXactOffsetSLRU</code> and <code>MultiXactMemberSLRU</code> (Bertrand Drouvot) <a href=\"https://postgr.es/c/b3abec0ad\">§</a></p>\n<p>This resulted in different wait-event names being displayed in <code>pg_wait_events</code> and <code>pg_stat_activity</code>, potentially breaking monitoring queries that join those views.</p>", "text": "Fix inconsistent spelling of LWLock names for MultiXactOffsetSLRU and MultiXactMemberSLRU (Bertrand Drouvot) § This resulted in different wait-event names being displayed in pg_wait_events and pg_stat_activity, potentially breaking monitoring queries that join those views.", "title": "Fix inconsistent spelling of LWLock names for MultiXactOffsetSLRU and MultiXactMemberSLRU", "commits": ["b3abec0ad"], "section": "Changes", "category": "bugfix", "source_url": "/docs/release/17.6/#RELEASE-17-6-CHANGES", "source_hash": "6262d75b11f9a0aeace8c4b30430fe766535bd09b74ab033e755ea146c83a55f", "section_path": ["Changes"], "commit_groups": [["4fcbe06aa", "a493e741d", "b3abec0ad"]], "identity_text": "Fix inconsistent spelling of LWLock names for MultiXactOffsetSLRU and MultiXactMemberSLRU (Bertrand Drouvot) This resulted in different wait-event names being displayed in pg_wait_events and pg_stat_activity, potentially breaking monitoring queries that join those views.", "commit_aliases": ["4fcbe06aa", "a493e741d", "b3abec0ad"], "source_commits": ["b3abec0ad"], "source_entry_id": "17.6/changes/019", "db_id": "e53cb69b9463ef51198308c01ee4c46e", "patch_ids": ["7aed490b37545e5c3bcb7a56a9650f23"], "statement_hash": "4e152f41f12af0d5806309b1ee3a880e5130b25719b8ada5c75388cf219fd882", "relations": [], "version": "17.6", "category_label": "Bug fixes", "also_in": [], "variants": [], "related_changes": []}, {"id": "17.6-4b38a13b8c214dd2", "cves": [], "html": "<p>Fix inconsistent quoting of role names in ACL strings (Tom Lane) <a href=\"https://postgr.es/c/50959f96e\">§</a></p>\n<p>The previous quoting rule was locale-sensitive, which could lead to portability problems when transferring <code>aclitem</code> values across installations. (<span>pg_dump</span> does not do that, but other tools might.) To ensure consistency, always quote non-ASCII characters in <code>aclitem</code> output; but to preserve backward compatibility, never require that they be quoted during <code>aclitem</code> input.</p>", "text": "Fix inconsistent quoting of role names in ACL strings (Tom Lane) § The previous quoting rule was locale-sensitive, which could lead to portability problems when transferring aclitem values across installations. (pg_dump does not do that, but other tools might.) To ensure consistency, always quote non-ASCII characters in aclitem output; but to preserve backward compatibility, never require that they be quoted during aclitem input.", "title": "Fix inconsistent quoting of role names in ACL strings", "commits": ["50959f96e"], "section": "Changes", "category": "bugfix", "source_url": "/docs/release/17.6/#RELEASE-17-6-CHANGES", "source_hash": "4e623707093098e3ad29b27cbf934b8be0784c878f23af9024dd3316e04f0216", "section_path": ["Changes"], "commit_groups": [["093d3d745", "50959f96e", "53a936b61", "64840e462", "ac8cdb249", "ccacaf4fa", "de73cb3ed"]], "identity_text": "Fix inconsistent quoting of role names in ACL strings (Tom Lane) The previous quoting rule was locale-sensitive, which could lead to portability problems when transferring aclitem values across installations. (pg_dump does not do that, but other tools might.) To ensure consistency, always quote non-ASCII characters in aclitem output; but to preserve backward compatibility, never require that they be quoted during aclitem input.", "commit_aliases": ["093d3d745", "50959f96e", "53a936b61", "64840e462", "ac8cdb249", "ccacaf4fa", "de73cb3ed"], "source_commits": ["50959f96e"], "source_entry_id": "17.6/changes/020", "db_id": "6a9ae64e47841a3f6468aa39cba02cc6", "patch_ids": ["39e2337d7cb75da0757543c4712ffe4f"], "statement_hash": "3f8b86b2c5c3cfdc83c39ca4aa9e76aa8a1b4149c1b11f00f27f6527a241be5a", "relations": [{"rule": 2, "type": "equivalent", "target": "2ebcc8ebe5e9895dc288586a5815bda5", "evidence": {"same_day": true, "patch_ids": ["39e2337d7cb75da0757543c4712ffe4f"], "statement_hash": "3f8b86b2c5c3cfdc83c39ca4aa9e76aa8a1b4149c1b11f00f27f6527a241be5a"}}, {"rule": 2, "type": "equivalent", "target": "52a5d96d9176fa97a28373dd510d5655", "evidence": {"same_day": true, "patch_ids": ["39e2337d7cb75da0757543c4712ffe4f"], "statement_hash": "3f8b86b2c5c3cfdc83c39ca4aa9e76aa8a1b4149c1b11f00f27f6527a241be5a"}}, {"rule": 2, "type": "equivalent", "target": "b8791b7c9aae59bb3cfe90cb33041834", "evidence": {"same_day": true, "patch_ids": ["39e2337d7cb75da0757543c4712ffe4f"], "statement_hash": "3f8b86b2c5c3cfdc83c39ca4aa9e76aa8a1b4149c1b11f00f27f6527a241be5a"}}, {"rule": 2, "type": "equivalent", "target": "c74f55acbfdeb5614806e71894c897e3", "evidence": {"same_day": true, "patch_ids": ["39e2337d7cb75da0757543c4712ffe4f"], "statement_hash": "3f8b86b2c5c3cfdc83c39ca4aa9e76aa8a1b4149c1b11f00f27f6527a241be5a"}}], "version": "17.6", "category_label": "Bug fixes", "also_in": [], "variants": [], "related_changes": [{"db_id": "c74f55acbfdeb5614806e71894c897e3", "kind": "equivalent", "version": "16.10", "label": "16.10", "title": "Fix inconsistent quoting of role names in ACL strings", "evidence": {"same_day": true, "patch_ids": ["39e2337d7cb75da0757543c4712ffe4f"], "statement_hash": "3f8b86b2c5c3cfdc83c39ca4aa9e76aa8a1b4149c1b11f00f27f6527a241be5a"}, "url": "/docs/compare/?release=16.10#16.10-31724e6d448f1e62", "source_url": "/docs/release/16.10/#RELEASE-16-10-CHANGES"}, {"db_id": "52a5d96d9176fa97a28373dd510d5655", "kind": "equivalent", "version": "15.14", "label": "15.14", "title": "Fix inconsistent quoting of role names in ACL strings", "evidence": {"same_day": true, "patch_ids": ["39e2337d7cb75da0757543c4712ffe4f"], "statement_hash": "3f8b86b2c5c3cfdc83c39ca4aa9e76aa8a1b4149c1b11f00f27f6527a241be5a"}, "url": "/docs/compare/?release=15.14#15.14-fd663653ae3be56d", "source_url": "/docs/release/15.14/#id-1.11.6.11.5"}, {"db_id": "b8791b7c9aae59bb3cfe90cb33041834", "kind": "equivalent", "version": "14.19", "label": "14.19", "title": "Fix inconsistent quoting of role names in ACL strings", "evidence": {"same_day": true, "patch_ids": ["39e2337d7cb75da0757543c4712ffe4f"], "statement_hash": "3f8b86b2c5c3cfdc83c39ca4aa9e76aa8a1b4149c1b11f00f27f6527a241be5a"}, "url": "/docs/compare/?release=14.19#14.19-47f9ee961e719688", "source_url": "/docs/release/14.19/#id-1.11.6.11.5"}, {"db_id": "2ebcc8ebe5e9895dc288586a5815bda5", "kind": "equivalent", "version": "13.22", "label": "13.22", "title": "Fix inconsistent quoting of role names in ACL strings", "evidence": {"same_day": true, "patch_ids": ["39e2337d7cb75da0757543c4712ffe4f"], "statement_hash": "3f8b86b2c5c3cfdc83c39ca4aa9e76aa8a1b4149c1b11f00f27f6527a241be5a"}, "url": "/docs/compare/?release=13.22#13.22-2e50f426919b1c43", "source_url": "/docs/release/13.22/#id-1.11.6.7.6"}]}, {"id": "17.6-0a15889291ed693e", "cves": [], "html": "<p>Reject equal signs (<code>=</code>) in the names of relation options and foreign-data options (Tom Lane) <a href=\"https://postgr.es/c/d4046125d\">§</a></p>\n<p>There's no evident use-case for option names like this, and allowing them creates ambiguity in the stored representation.</p>", "text": "Reject equal signs (=) in the names of relation options and foreign-data options (Tom Lane) § There's no evident use-case for option names like this, and allowing them creates ambiguity in the stored representation.", "title": "Reject equal signs (=) in the names of relation options and foreign-data options", "commits": ["d4046125d"], "section": "Changes", "category": "improvement", "source_url": "/docs/release/17.6/#RELEASE-17-6-CHANGES", "source_hash": "c2cdf3f874002a3d10856817ae26604b728bd10ccf17e944b585c04c41a4841a", "section_path": ["Changes"], "commit_groups": [["aa87f69c0", "ab758ec4d", "cd31eaaeb", "d4046125d", "e76097124", "eb4234647"]], "identity_text": "Reject equal signs (=) in the names of relation options and foreign-data options (Tom Lane) There's no evident use-case for option names like this, and allowing them creates ambiguity in the stored representation.", "commit_aliases": ["aa87f69c0", "ab758ec4d", "cd31eaaeb", "d4046125d", "e76097124", "eb4234647"], "source_commits": ["d4046125d"], "source_entry_id": "17.6/changes/021", "db_id": "ac49b5d91d6c372b4c08d08948f00a7f", "patch_ids": ["5cfa9a91458d8bf74a558cf8f029513d"], "statement_hash": "8330bbf241cac6f42857e63ccc59da91cb6130bb86df977a0a58ad80a4f8379c", "relations": [{"rule": 2, "type": "equivalent", "target": "2b2049899acbe82941a9b3346c211827", "evidence": {"same_day": true, "patch_ids": ["5cfa9a91458d8bf74a558cf8f029513d"], "statement_hash": "8330bbf241cac6f42857e63ccc59da91cb6130bb86df977a0a58ad80a4f8379c"}}, {"rule": 2, "type": "equivalent", "target": "378e12ec8d1b50d306d5e81833b0e06b", "evidence": {"same_day": true, "patch_ids": ["5cfa9a91458d8bf74a558cf8f029513d"], "statement_hash": "8330bbf241cac6f42857e63ccc59da91cb6130bb86df977a0a58ad80a4f8379c"}}, {"rule": 2, "type": "equivalent", "target": "551cbede924847bceddaf0ffd39f78ad", "evidence": {"same_day": true, "patch_ids": ["5cfa9a91458d8bf74a558cf8f029513d"], "statement_hash": "8330bbf241cac6f42857e63ccc59da91cb6130bb86df977a0a58ad80a4f8379c"}}, {"rule": 2, "type": "equivalent", "target": "cce62d5f78858c2cfb840afd0ccc84d4", "evidence": {"same_day": true, "patch_ids": ["5cfa9a91458d8bf74a558cf8f029513d"], "statement_hash": "8330bbf241cac6f42857e63ccc59da91cb6130bb86df977a0a58ad80a4f8379c"}}], "version": "17.6", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": [{"db_id": "2b2049899acbe82941a9b3346c211827", "kind": "equivalent", "version": "16.10", "label": "16.10", "title": "Reject equal signs (=) in the names of relation options and foreign-data options", "evidence": {"same_day": true, "patch_ids": ["5cfa9a91458d8bf74a558cf8f029513d"], "statement_hash": "8330bbf241cac6f42857e63ccc59da91cb6130bb86df977a0a58ad80a4f8379c"}, "url": "/docs/compare/?release=16.10#16.10-00526c107597d7a3", "source_url": "/docs/release/16.10/#RELEASE-16-10-CHANGES"}, {"db_id": "cce62d5f78858c2cfb840afd0ccc84d4", "kind": "equivalent", "version": "15.14", "label": "15.14", "title": "Reject equal signs (=) in the names of relation options and foreign-data options", "evidence": {"same_day": true, "patch_ids": ["5cfa9a91458d8bf74a558cf8f029513d"], "statement_hash": "8330bbf241cac6f42857e63ccc59da91cb6130bb86df977a0a58ad80a4f8379c"}, "url": "/docs/compare/?release=15.14#15.14-3070405b4c899a5c", "source_url": "/docs/release/15.14/#id-1.11.6.11.5"}, {"db_id": "551cbede924847bceddaf0ffd39f78ad", "kind": "equivalent", "version": "14.19", "label": "14.19", "title": "Reject equal signs (=) in the names of relation options and foreign-data options", "evidence": {"same_day": true, "patch_ids": ["5cfa9a91458d8bf74a558cf8f029513d"], "statement_hash": "8330bbf241cac6f42857e63ccc59da91cb6130bb86df977a0a58ad80a4f8379c"}, "url": "/docs/compare/?release=14.19#14.19-01edee563b4c3838", "source_url": "/docs/release/14.19/#id-1.11.6.11.5"}, {"db_id": "378e12ec8d1b50d306d5e81833b0e06b", "kind": "equivalent", "version": "13.22", "label": "13.22", "title": "Reject equal signs (=) in the names of relation options and foreign-data options", "evidence": {"same_day": true, "patch_ids": ["5cfa9a91458d8bf74a558cf8f029513d"], "statement_hash": "8330bbf241cac6f42857e63ccc59da91cb6130bb86df977a0a58ad80a4f8379c"}, "url": "/docs/compare/?release=13.22#13.22-6240afb0d3c4527b", "source_url": "/docs/release/13.22/#id-1.11.6.7.6"}]}, {"id": "17.6-370cfe9e2188d59f", "cves": [], "html": "<p>Fix potentially-incorrect decompression of LZ4-compressed archive data (Mikhail Gribkov) <a href=\"https://postgr.es/c/074003431\">§</a></p>\n<p>This error seems to manifest only with not-very-compressible input data, which may explain why it escaped detection.</p>", "text": "Fix potentially-incorrect decompression of LZ4-compressed archive data (Mikhail Gribkov) § This error seems to manifest only with not-very-compressible input data, which may explain why it escaped detection.", "title": "Fix potentially-incorrect decompression of LZ4-compressed archive data", "commits": ["074003431"], "section": "Changes", "category": "bugfix", "source_url": "/docs/release/17.6/#RELEASE-17-6-CHANGES", "source_hash": "6a4bcfe216153f5b0afb910317286be5f6c187f7c390093ebee9da218612eb59", "section_path": ["Changes"], "commit_groups": [["074003431", "3369a3b49", "5c639523f", "d09d13793", "d44efe87e"]], "identity_text": "Fix potentially-incorrect decompression of LZ4-compressed archive data (Mikhail Gribkov) This error seems to manifest only with not-very-compressible input data, which may explain why it escaped detection.", "commit_aliases": ["074003431", "3369a3b49", "5c639523f", "d09d13793", "d44efe87e"], "source_commits": ["074003431"], "source_entry_id": "17.6/changes/022", "db_id": "b302ecfbe05e1aba6c03f7aba1e86c6d", "patch_ids": ["775da154647809dc3f3016f20f0b14f2"], "statement_hash": "c6a44e7cb11bf105bc2b48549a2b4be62507a216f2eb446de5c8984cb409b506", "relations": [{"rule": 2, "type": "equivalent", "target": "5e0259fead17b9b318a6394d1f6aaf19", "evidence": {"same_day": true, "patch_ids": ["775da154647809dc3f3016f20f0b14f2"], "statement_hash": "c6a44e7cb11bf105bc2b48549a2b4be62507a216f2eb446de5c8984cb409b506"}}, {"rule": 2, "type": "equivalent", "target": "c8eb9f79e015cec39d5f6201f588738f", "evidence": {"same_day": true, "patch_ids": ["775da154647809dc3f3016f20f0b14f2"], "statement_hash": "c6a44e7cb11bf105bc2b48549a2b4be62507a216f2eb446de5c8984cb409b506"}}], "version": "17.6", "category_label": "Bug fixes", "also_in": [], "variants": [], "related_changes": [{"db_id": "5e0259fead17b9b318a6394d1f6aaf19", "kind": "equivalent", "version": "16.10", "label": "16.10", "title": "Fix potentially-incorrect decompression of LZ4-compressed archive data", "evidence": {"same_day": true, "patch_ids": ["775da154647809dc3f3016f20f0b14f2"], "statement_hash": "c6a44e7cb11bf105bc2b48549a2b4be62507a216f2eb446de5c8984cb409b506"}, "url": "/docs/compare/?release=16.10#16.10-8ec1446fffeb5fd7", "source_url": "/docs/release/16.10/#RELEASE-16-10-CHANGES"}, {"db_id": "c8eb9f79e015cec39d5f6201f588738f", "kind": "equivalent", "version": "15.14", "label": "15.14", "title": "Fix potentially-incorrect decompression of LZ4-compressed archive data", "evidence": {"same_day": true, "patch_ids": ["775da154647809dc3f3016f20f0b14f2"], "statement_hash": "c6a44e7cb11bf105bc2b48549a2b4be62507a216f2eb446de5c8984cb409b506"}, "url": "/docs/compare/?release=15.14#15.14-e8a24372b6b9ae7e", "source_url": "/docs/release/15.14/#id-1.11.6.11.5"}]}, {"id": "17.6-5825acdc2554d8ce", "cves": [], "html": "<p>Avoid a rare scenario where a btree index scan could mark the wrong index entries as dead (Peter Geoghegan) <a href=\"https://postgr.es/c/40aa5ddea\">§</a></p>", "text": "Avoid a rare scenario where a btree index scan could mark the wrong index entries as dead (Peter Geoghegan) §", "title": "Avoid a rare scenario where a btree index scan could mark the wrong index entries as dead", "commits": ["40aa5ddea"], "section": "Changes", "category": "improvement", "source_url": "/docs/release/17.6/#RELEASE-17-6-CHANGES", "source_hash": "2ec40d2e57a4c2b1d17136e72506068448af5306563849b527088e344d8a04e7", "section_path": ["Changes"], "commit_groups": [["38c8d2987", "40aa5ddea", "7c319f549", "7c7c0a77d", "c7f25feb3", "d2ec67109"]], "identity_text": "Avoid a rare scenario where a btree index scan could mark the wrong index entries as dead (Peter Geoghegan)", "commit_aliases": ["38c8d2987", "40aa5ddea", "7c319f549", "7c7c0a77d", "c7f25feb3", "d2ec67109"], "source_commits": ["40aa5ddea"], "source_entry_id": "17.6/changes/023", "db_id": "2896a1f0aa2fe4a744169742b2559dcd", "patch_ids": ["aad96c72a59beb69e1860513caa21d9f"], "statement_hash": "d899960974f459230ac3f3091253ae0f247bae81693df68cda29e10707290ad6", "relations": [{"rule": 2, "type": "equivalent", "target": "13ed0887bc8dac0823c64554459a581c", "evidence": {"same_day": true, "patch_ids": ["aad96c72a59beb69e1860513caa21d9f"], "statement_hash": "d899960974f459230ac3f3091253ae0f247bae81693df68cda29e10707290ad6"}}, {"rule": 2, "type": "equivalent", "target": "19b1fbc49c15351ae0829b195564baa0", "evidence": {"same_day": true, "patch_ids": ["aad96c72a59beb69e1860513caa21d9f"], "statement_hash": "d899960974f459230ac3f3091253ae0f247bae81693df68cda29e10707290ad6"}}, {"rule": 2, "type": "equivalent", "target": "3c09bd63d8e7c6a637ad01ffa6b1f882", "evidence": {"same_day": true, "patch_ids": ["aad96c72a59beb69e1860513caa21d9f"], "statement_hash": "d899960974f459230ac3f3091253ae0f247bae81693df68cda29e10707290ad6"}}, {"rule": 2, "type": "equivalent", "target": "7907917b0e9fc70fa54857b3dd5f0789", "evidence": {"same_day": true, "patch_ids": ["aad96c72a59beb69e1860513caa21d9f"], "statement_hash": "d899960974f459230ac3f3091253ae0f247bae81693df68cda29e10707290ad6"}}], "version": "17.6", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": [{"db_id": "13ed0887bc8dac0823c64554459a581c", "kind": "equivalent", "version": "16.10", "label": "16.10", "title": "Avoid a rare scenario where a btree index scan could mark the wrong index entries as dead", "evidence": {"same_day": true, "patch_ids": ["aad96c72a59beb69e1860513caa21d9f"], "statement_hash": "d899960974f459230ac3f3091253ae0f247bae81693df68cda29e10707290ad6"}, "url": "/docs/compare/?release=16.10#16.10-2b08a4614d13a7a4", "source_url": "/docs/release/16.10/#RELEASE-16-10-CHANGES"}, {"db_id": "19b1fbc49c15351ae0829b195564baa0", "kind": "equivalent", "version": "15.14", "label": "15.14", "title": "Avoid a rare scenario where a btree index scan could mark the wrong index entries as dead", "evidence": {"same_day": true, "patch_ids": ["aad96c72a59beb69e1860513caa21d9f"], "statement_hash": "d899960974f459230ac3f3091253ae0f247bae81693df68cda29e10707290ad6"}, "url": "/docs/compare/?release=15.14#15.14-3522682a6e13212e", "source_url": "/docs/release/15.14/#id-1.11.6.11.5"}, {"db_id": "3c09bd63d8e7c6a637ad01ffa6b1f882", "kind": "equivalent", "version": "14.19", "label": "14.19", "title": "Avoid a rare scenario where a btree index scan could mark the wrong index entries as dead", "evidence": {"same_day": true, "patch_ids": ["aad96c72a59beb69e1860513caa21d9f"], "statement_hash": "d899960974f459230ac3f3091253ae0f247bae81693df68cda29e10707290ad6"}, "url": "/docs/compare/?release=14.19#14.19-e337667a91002083", "source_url": "/docs/release/14.19/#id-1.11.6.11.5"}, {"db_id": "7907917b0e9fc70fa54857b3dd5f0789", "kind": "equivalent", "version": "13.22", "label": "13.22", "title": "Avoid a rare scenario where a btree index scan could mark the wrong index entries as dead", "evidence": {"same_day": true, "patch_ids": ["aad96c72a59beb69e1860513caa21d9f"], "statement_hash": "d899960974f459230ac3f3091253ae0f247bae81693df68cda29e10707290ad6"}, "url": "/docs/compare/?release=13.22#13.22-b6601ad2fa69571a", "source_url": "/docs/release/13.22/#id-1.11.6.7.6"}]}, {"id": "17.6-6c93c6ab7dac53db", "cves": [], "html": "<p>Avoid re-distributing cache invalidation messages from other transactions during logical replication (vignesh C) <a href=\"https://postgr.es/c/45c357e0e\">§</a></p>\n<p>Our previous round of minor releases included a bug fix to ensure that replication receiver processes would respond to cross-process cache invalidation messages, preventing them from using stale catalog data while performing replication updates. However, the fix unintentionally made them also redistribute those messages again, leading to an exponential increase in the number of invalidation messages, which would often end in a memory allocation failure. Fix by not redistributing received messages.</p>", "text": "Avoid re-distributing cache invalidation messages from other transactions during logical replication (vignesh C) § Our previous round of minor releases included a bug fix to ensure that replication receiver processes would respond to cross-process cache invalidation messages, preventing them from using stale catalog data while performing replication updates. However, the fix unintentionally made them also redistribute those messages again, leading to an exponential increase in the number of invalidation messages, which would often end in a memory allocation failure. Fix by not redistributing received messages.", "title": "Avoid re-distributing cache invalidation messages from other transactions during logical replication", "commits": ["45c357e0e"], "section": "Changes", "category": "improvement", "source_url": "/docs/release/17.6/#RELEASE-17-6-CHANGES", "source_hash": "218fc52d2bc0a41a7b3cd4e8bda48dfd17369e2a7bd3b3203b106ad3bbd13856", "section_path": ["Changes"], "commit_groups": [["1230be12f", "45c357e0e", "983b36362", "b2ae07720", "d87d07b7a", "fc0fb77c5"], ["87819f766"]], "identity_text": "Avoid re-distributing cache invalidation messages from other transactions during logical replication (vignesh C) Our previous round of minor releases included a bug fix to ensure that replication receiver processes would respond to cross-process cache invalidation messages, preventing them from using stale catalog data while performing replication updates. However, the fix unintentionally made them also redistribute those messages again, leading to an exponential increase in the number of invalidation messages, which would often end in a memory allocation failure. Fix by not redistributing received messages.", "commit_aliases": ["1230be12f", "45c357e0e", "87819f766", "983b36362", "b2ae07720", "d87d07b7a", "fc0fb77c5"], "source_commits": ["45c357e0e", "87819f766"], "source_entry_id": "17.6/changes/024", "db_id": "4eaa52c036c883f61e659c01b52fb190", "patch_ids": ["44892eb4edae7c935ca996ba7215a3be", "9144d1cc1257f28763bbe94a44dcec67"], "statement_hash": "cb76142d5aa80484a475a98632d6f3282d96cb8992669eaaed5c92b24c4f534d", "relations": [{"rule": 2, "type": "equivalent", "target": "1b42275facb138dcb392f27b6e27f9a4", "evidence": {"same_day": true, "patch_ids": ["44892eb4edae7c935ca996ba7215a3be", "9144d1cc1257f28763bbe94a44dcec67"], "statement_hash": "cb76142d5aa80484a475a98632d6f3282d96cb8992669eaaed5c92b24c4f534d"}}, {"rule": 2, "type": "equivalent", "target": "a9cc9dab0228660da06096fd68f433f3", "evidence": {"same_day": true, "patch_ids": ["44892eb4edae7c935ca996ba7215a3be", "9144d1cc1257f28763bbe94a44dcec67"], "statement_hash": "cb76142d5aa80484a475a98632d6f3282d96cb8992669eaaed5c92b24c4f534d"}}, {"rule": 2, "type": "equivalent", "target": "b3009aa88c3ced8a05c6dba715705c19", "evidence": {"same_day": true, "patch_ids": ["44892eb4edae7c935ca996ba7215a3be", "9144d1cc1257f28763bbe94a44dcec67"], "statement_hash": "cb76142d5aa80484a475a98632d6f3282d96cb8992669eaaed5c92b24c4f534d"}}, {"rule": 2, "type": "equivalent", "target": "c21a911113d9e87b49c45518f22a2dfc", "evidence": {"same_day": true, "patch_ids": ["44892eb4edae7c935ca996ba7215a3be", "9144d1cc1257f28763bbe94a44dcec67"], "statement_hash": "cb76142d5aa80484a475a98632d6f3282d96cb8992669eaaed5c92b24c4f534d"}}], "version": "17.6", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": [{"db_id": "b3009aa88c3ced8a05c6dba715705c19", "kind": "equivalent", "version": "16.10", "label": "16.10", "title": "Avoid re-distributing cache invalidation messages from other transactions during logical replication", "evidence": {"same_day": true, "patch_ids": ["44892eb4edae7c935ca996ba7215a3be", "9144d1cc1257f28763bbe94a44dcec67"], "statement_hash": "cb76142d5aa80484a475a98632d6f3282d96cb8992669eaaed5c92b24c4f534d"}, "url": "/docs/compare/?release=16.10#16.10-06d7a3fbd837850b", "source_url": "/docs/release/16.10/#RELEASE-16-10-CHANGES"}, {"db_id": "c21a911113d9e87b49c45518f22a2dfc", "kind": "equivalent", "version": "15.14", "label": "15.14", "title": "Avoid re-distributing cache invalidation messages from other transactions during logical replication", "evidence": {"same_day": true, "patch_ids": ["44892eb4edae7c935ca996ba7215a3be", "9144d1cc1257f28763bbe94a44dcec67"], "statement_hash": "cb76142d5aa80484a475a98632d6f3282d96cb8992669eaaed5c92b24c4f534d"}, "url": "/docs/compare/?release=15.14#15.14-5bd091c51ca86d9b", "source_url": "/docs/release/15.14/#id-1.11.6.11.5"}, {"db_id": "1b42275facb138dcb392f27b6e27f9a4", "kind": "equivalent", "version": "14.19", "label": "14.19", "title": "Avoid re-distributing cache invalidation messages from other transactions during logical replication", "evidence": {"same_day": true, "patch_ids": ["44892eb4edae7c935ca996ba7215a3be", "9144d1cc1257f28763bbe94a44dcec67"], "statement_hash": "cb76142d5aa80484a475a98632d6f3282d96cb8992669eaaed5c92b24c4f534d"}, "url": "/docs/compare/?release=14.19#14.19-92960400d06a6cb9", "source_url": "/docs/release/14.19/#id-1.11.6.11.5"}, {"db_id": "a9cc9dab0228660da06096fd68f433f3", "kind": "equivalent", "version": "13.22", "label": "13.22", "title": "Avoid re-distributing cache invalidation messages from other transactions during logical replication", "evidence": {"same_day": true, "patch_ids": ["44892eb4edae7c935ca996ba7215a3be", "9144d1cc1257f28763bbe94a44dcec67"], "statement_hash": "cb76142d5aa80484a475a98632d6f3282d96cb8992669eaaed5c92b24c4f534d"}, "url": "/docs/compare/?release=13.22#13.22-3fd682e6d8f36911", "source_url": "/docs/release/13.22/#id-1.11.6.7.6"}]}, {"id": "17.6-5ba94aab21c53164", "cves": [], "html": "<p>Avoid unexpected server shutdown when replication slot synchronization is misconfigured (Fujii Masao) <a href=\"https://postgr.es/c/f71fa981c\">§</a></p>\n<p>The postmaster process would report an error (and then stop) if <code>sync_replication_slots</code> was set to <code>true</code> while <code>wal_level</code> was less than <code>logical</code>. The desired behavior is just that slot synchronization should be disabled, so reduce this error message's level to avoid postmaster shutdown.</p>", "text": "Avoid unexpected server shutdown when replication slot synchronization is misconfigured (Fujii Masao) § The postmaster process would report an error (and then stop) if sync_replication_slots was set to true while wal_level was less than logical. The desired behavior is just that slot synchronization should be disabled, so reduce this error message's level to avoid postmaster shutdown.", "title": "Avoid unexpected server shutdown when replication slot synchronization is misconfigured", "commits": ["f71fa981c"], "section": "Changes", "category": "improvement", "source_url": "/docs/release/17.6/#RELEASE-17-6-CHANGES", "source_hash": "16fc0559c181f83a7d3d9048bdb68c0c1ec46fc5d00ef9f1b447ab23da1c645d", "section_path": ["Changes"], "commit_groups": [["2d81a246f", "4614d53d4", "f71fa981c"]], "identity_text": "Avoid unexpected server shutdown when replication slot synchronization is misconfigured (Fujii Masao) The postmaster process would report an error (and then stop) if sync_replication_slots was set to true while wal_level was less than logical. The desired behavior is just that slot synchronization should be disabled, so reduce this error message's level to avoid postmaster shutdown.", "commit_aliases": ["2d81a246f", "4614d53d4", "f71fa981c"], "source_commits": ["f71fa981c"], "source_entry_id": "17.6/changes/025", "db_id": "13718c0f700b8e4d7655974c5708a64b", "patch_ids": ["3f065dca6fafeb4ab707726e584ce280"], "statement_hash": "cdf877b484c07c52d1a362b36ee9e71b0f9e51cf9119cd72cb6f21c265702221", "relations": [], "version": "17.6", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": []}, {"id": "17.6-1494a836c62de80f", "cves": [], "html": "<p>Avoid premature removal of old WAL during checkpoints (Vitaly Davydov) <a href=\"https://postgr.es/c/2090edc6f\">§</a></p>\n<p>If a replication slot's restart point is advanced while a checkpoint is in progress, no-longer-needed WAL segments could get removed too soon, leading to recovery failure if the database crashes immediately afterwards. Fix by keeping them for one additional checkpoint cycle.</p>", "text": "Avoid premature removal of old WAL during checkpoints (Vitaly Davydov) § If a replication slot's restart point is advanced while a checkpoint is in progress, no-longer-needed WAL segments could get removed too soon, leading to recovery failure if the database crashes immediately afterwards. Fix by keeping them for one additional checkpoint cycle.", "title": "Avoid premature removal of old WAL during checkpoints", "commits": ["2090edc6f"], "section": "Changes", "category": "improvement", "source_url": "/docs/release/17.6/#RELEASE-17-6-CHANGES", "source_hash": "862afb461e7b25af2502cb6ac2fddb9e304f4a3f37e3fdd92f1a8161a9dcaf0b", "section_path": ["Changes"], "commit_groups": [["2090edc6f", "cea8f2c3e", "dd3df0b85", "dd9bc1a17", "e2832bd96"]], "identity_text": "Avoid premature removal of old WAL during checkpoints (Vitaly Davydov) If a replication slot's restart point is advanced while a checkpoint is in progress, no-longer-needed WAL segments could get removed too soon, leading to recovery failure if the database crashes immediately afterwards. Fix by keeping them for one additional checkpoint cycle.", "commit_aliases": ["2090edc6f", "cea8f2c3e", "dd3df0b85", "dd9bc1a17", "e2832bd96"], "source_commits": ["2090edc6f"], "source_entry_id": "17.6/changes/026", "db_id": "157e22a9e0303f40144c7595100b1787", "patch_ids": ["0b3f1a7eb4fd7ec82c605bba05f1ed04"], "statement_hash": "f9ccd6fcb293b2899cd65dbde83e990bd6cdb466fe17d70177c6d3a300702857", "relations": [{"rule": 2, "type": "equivalent", "target": "0b434eea45e0fa732c2e0f652d15f416", "evidence": {"same_day": true, "patch_ids": ["0b3f1a7eb4fd7ec82c605bba05f1ed04"], "statement_hash": "f9ccd6fcb293b2899cd65dbde83e990bd6cdb466fe17d70177c6d3a300702857"}}, {"rule": 2, "type": "equivalent", "target": "6b7844a84a190d055371db21611e225a", "evidence": {"same_day": true, "patch_ids": ["0b3f1a7eb4fd7ec82c605bba05f1ed04"], "statement_hash": "f9ccd6fcb293b2899cd65dbde83e990bd6cdb466fe17d70177c6d3a300702857"}}, {"rule": 2, "type": "equivalent", "target": "991bdbb446e54520c74d7fbfcb5eb2d5", "evidence": {"same_day": true, "patch_ids": ["0b3f1a7eb4fd7ec82c605bba05f1ed04"], "statement_hash": "f9ccd6fcb293b2899cd65dbde83e990bd6cdb466fe17d70177c6d3a300702857"}}, {"rule": 2, "type": "equivalent", "target": "9cd299656d523ad883dc82d378ca2484", "evidence": {"same_day": true, "patch_ids": ["0b3f1a7eb4fd7ec82c605bba05f1ed04"], "statement_hash": "f9ccd6fcb293b2899cd65dbde83e990bd6cdb466fe17d70177c6d3a300702857"}}], "version": "17.6", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": [{"db_id": "0b434eea45e0fa732c2e0f652d15f416", "kind": "equivalent", "version": "16.10", "label": "16.10", "title": "Avoid premature removal of old WAL during checkpoints", "evidence": {"same_day": true, "patch_ids": ["0b3f1a7eb4fd7ec82c605bba05f1ed04"], "statement_hash": "f9ccd6fcb293b2899cd65dbde83e990bd6cdb466fe17d70177c6d3a300702857"}, "url": "/docs/compare/?release=16.10#16.10-edf48c160da14a41", "source_url": "/docs/release/16.10/#RELEASE-16-10-CHANGES"}, {"db_id": "9cd299656d523ad883dc82d378ca2484", "kind": "equivalent", "version": "15.14", "label": "15.14", "title": "Avoid premature removal of old WAL during checkpoints", "evidence": {"same_day": true, "patch_ids": ["0b3f1a7eb4fd7ec82c605bba05f1ed04"], "statement_hash": "f9ccd6fcb293b2899cd65dbde83e990bd6cdb466fe17d70177c6d3a300702857"}, "url": "/docs/compare/?release=15.14#15.14-9ae4261d1b4c369c", "source_url": "/docs/release/15.14/#id-1.11.6.11.5"}, {"db_id": "991bdbb446e54520c74d7fbfcb5eb2d5", "kind": "equivalent", "version": "14.19", "label": "14.19", "title": "Avoid premature removal of old WAL during checkpoints", "evidence": {"same_day": true, "patch_ids": ["0b3f1a7eb4fd7ec82c605bba05f1ed04"], "statement_hash": "f9ccd6fcb293b2899cd65dbde83e990bd6cdb466fe17d70177c6d3a300702857"}, "url": "/docs/compare/?release=14.19#14.19-a002cd37807a3acb", "source_url": "/docs/release/14.19/#id-1.11.6.11.5"}, {"db_id": "6b7844a84a190d055371db21611e225a", "kind": "equivalent", "version": "13.22", "label": "13.22", "title": "Avoid premature removal of old WAL during checkpoints", "evidence": {"same_day": true, "patch_ids": ["0b3f1a7eb4fd7ec82c605bba05f1ed04"], "statement_hash": "f9ccd6fcb293b2899cd65dbde83e990bd6cdb466fe17d70177c6d3a300702857"}, "url": "/docs/compare/?release=13.22#13.22-fc131f2ed494a6e9", "source_url": "/docs/release/13.22/#id-1.11.6.7.6"}]}, {"id": "17.6-1b410e48287bb276", "cves": [], "html": "<p>Never move a replication slot's confirmed-flush position backwards (Shveta Malik) <a href=\"https://postgr.es/c/7318f241d\">§</a></p>\n<p>In some cases a replication client could acknowledge an LSN that's past what it has stored persistently, and then perhaps send an older LSN after a restart. We consider this not-a-bug so long as the client did not have anything it needed to do for the WAL between the two points. However, we should not re-send that WAL for fear of data duplication, so make sure we always believe the latest confirmed LSN for a given slot.</p>", "text": "Never move a replication slot's confirmed-flush position backwards (Shveta Malik) § In some cases a replication client could acknowledge an LSN that's past what it has stored persistently, and then perhaps send an older LSN after a restart. We consider this not-a-bug so long as the client did not have anything it needed to do for the WAL between the two points. However, we should not re-send that WAL for fear of data duplication, so make sure we always believe the latest confirmed LSN for a given slot.", "title": "Never move a replication slot's confirmed-flush position backwards", "commits": ["7318f241d"], "section": "Changes", "category": "improvement", "source_url": "/docs/release/17.6/#RELEASE-17-6-CHANGES", "source_hash": "770d917febfe336cd9763b107e31e6c956054685e12d5b155c74bbdacf04b7e1", "section_path": ["Changes"], "commit_groups": [["7318f241d", "9d1a62359", "ad5eaf390", "c0f51fde5", "e323d9df0", "e68459489"]], "identity_text": "Never move a replication slot's confirmed-flush position backwards (Shveta Malik) In some cases a replication client could acknowledge an LSN that's past what it has stored persistently, and then perhaps send an older LSN after a restart. We consider this not-a-bug so long as the client did not have anything it needed to do for the WAL between the two points. However, we should not re-send that WAL for fear of data duplication, so make sure we always believe the latest confirmed LSN for a given slot.", "commit_aliases": ["7318f241d", "9d1a62359", "ad5eaf390", "c0f51fde5", "e323d9df0", "e68459489"], "source_commits": ["7318f241d"], "source_entry_id": "17.6/changes/027", "db_id": "c47cce13b2327ae5b79682de3bf86211", "patch_ids": ["2de9aabd4b6d806cb09f97233c42d8b9"], "statement_hash": "5099a5e2a539f415dfef4d115b189733d47e78c23e785a29b6426dcc967cc5e8", "relations": [{"rule": 2, "type": "equivalent", "target": "302bc1e6fedc523897672d05dfe14569", "evidence": {"same_day": true, "patch_ids": ["2de9aabd4b6d806cb09f97233c42d8b9"], "statement_hash": "5099a5e2a539f415dfef4d115b189733d47e78c23e785a29b6426dcc967cc5e8"}}, {"rule": 2, "type": "equivalent", "target": "543c80aec11057987c705aefac252ccb", "evidence": {"same_day": true, "patch_ids": ["2de9aabd4b6d806cb09f97233c42d8b9"], "statement_hash": "5099a5e2a539f415dfef4d115b189733d47e78c23e785a29b6426dcc967cc5e8"}}, {"rule": 2, "type": "equivalent", "target": "6d9a892128e3245f9c561bcf03f2d17d", "evidence": {"same_day": true, "patch_ids": ["2de9aabd4b6d806cb09f97233c42d8b9"], "statement_hash": "5099a5e2a539f415dfef4d115b189733d47e78c23e785a29b6426dcc967cc5e8"}}, {"rule": 2, "type": "equivalent", "target": "a5a72dc4b4696a8ef2999104a04f52ef", "evidence": {"same_day": true, "patch_ids": ["2de9aabd4b6d806cb09f97233c42d8b9"], "statement_hash": "5099a5e2a539f415dfef4d115b189733d47e78c23e785a29b6426dcc967cc5e8"}}], "version": "17.6", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": [{"db_id": "302bc1e6fedc523897672d05dfe14569", "kind": "equivalent", "version": "16.10", "label": "16.10", "title": "Never move a replication slot's confirmed-flush position backwards", "evidence": {"same_day": true, "patch_ids": ["2de9aabd4b6d806cb09f97233c42d8b9"], "statement_hash": "5099a5e2a539f415dfef4d115b189733d47e78c23e785a29b6426dcc967cc5e8"}, "url": "/docs/compare/?release=16.10#16.10-a10640250c82eb91", "source_url": "/docs/release/16.10/#RELEASE-16-10-CHANGES"}, {"db_id": "a5a72dc4b4696a8ef2999104a04f52ef", "kind": "equivalent", "version": "15.14", "label": "15.14", "title": "Never move a replication slot's confirmed-flush position backwards", "evidence": {"same_day": true, "patch_ids": ["2de9aabd4b6d806cb09f97233c42d8b9"], "statement_hash": "5099a5e2a539f415dfef4d115b189733d47e78c23e785a29b6426dcc967cc5e8"}, "url": "/docs/compare/?release=15.14#15.14-948c6fd636c15705", "source_url": "/docs/release/15.14/#id-1.11.6.11.5"}, {"db_id": "6d9a892128e3245f9c561bcf03f2d17d", "kind": "equivalent", "version": "14.19", "label": "14.19", "title": "Never move a replication slot's confirmed-flush position backwards", "evidence": {"same_day": true, "patch_ids": ["2de9aabd4b6d806cb09f97233c42d8b9"], "statement_hash": "5099a5e2a539f415dfef4d115b189733d47e78c23e785a29b6426dcc967cc5e8"}, "url": "/docs/compare/?release=14.19#14.19-ab4b5ab8772355f3", "source_url": "/docs/release/14.19/#id-1.11.6.11.5"}, {"db_id": "543c80aec11057987c705aefac252ccb", "kind": "equivalent", "version": "13.22", "label": "13.22", "title": "Never move a replication slot's confirmed-flush position backwards", "evidence": {"same_day": true, "patch_ids": ["2de9aabd4b6d806cb09f97233c42d8b9"], "statement_hash": "5099a5e2a539f415dfef4d115b189733d47e78c23e785a29b6426dcc967cc5e8"}, "url": "/docs/compare/?release=13.22#13.22-8712d41c8b7aa917", "source_url": "/docs/release/13.22/#id-1.11.6.7.6"}]}, {"id": "17.6-45175aa7d7cebbbf", "cves": [], "html": "<p>Prevent excessive delays before launching new logical replication workers (Tom Lane) <a href=\"https://postgr.es/c/9f33300e6\">§</a></p>\n<p>In some cases the logical replication launcher could sleep considerably longer than the configured <code>wal_retrieve_retry_interval</code> before launching a new worker.</p>", "text": "Prevent excessive delays before launching new logical replication workers (Tom Lane) § In some cases the logical replication launcher could sleep considerably longer than the configured wal_retrieve_retry_interval before launching a new worker.", "title": "Prevent excessive delays before launching new logical replication workers", "commits": ["9f33300e6"], "section": "Changes", "category": "improvement", "source_url": "/docs/release/17.6/#RELEASE-17-6-CHANGES", "source_hash": "5076a08ec9fae82a0c60eedba0971954bf50539c3b82a626d70d849356c4188f", "section_path": ["Changes"], "commit_groups": [["87c8ed3db", "9f33300e6", "fd519419c"]], "identity_text": "Prevent excessive delays before launching new logical replication workers (Tom Lane) In some cases the logical replication launcher could sleep considerably longer than the configured wal_retrieve_retry_interval before launching a new worker.", "commit_aliases": ["87c8ed3db", "9f33300e6", "fd519419c"], "source_commits": ["9f33300e6"], "source_entry_id": "17.6/changes/028", "db_id": "0febf55b7f86d0715f11b047a0adca26", "patch_ids": ["a50b86f78d59ee5a66a537064af578ed"], "statement_hash": "67584f2d4ddc30c8f84403b9acbe835807348a6a974ac71055277e0546351538", "relations": [{"rule": 2, "type": "equivalent", "target": "659b4c52c6f73a0c03712c2e9387d2ed", "evidence": {"same_day": true, "patch_ids": ["a50b86f78d59ee5a66a537064af578ed"], "statement_hash": "67584f2d4ddc30c8f84403b9acbe835807348a6a974ac71055277e0546351538"}}], "version": "17.6", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": [{"db_id": "659b4c52c6f73a0c03712c2e9387d2ed", "kind": "equivalent", "version": "16.10", "label": "16.10", "title": "Prevent excessive delays before launching new logical replication workers", "evidence": {"same_day": true, "patch_ids": ["a50b86f78d59ee5a66a537064af578ed"], "statement_hash": "67584f2d4ddc30c8f84403b9acbe835807348a6a974ac71055277e0546351538"}, "url": "/docs/compare/?release=16.10#16.10-302d642f1bbaa7af", "source_url": "/docs/release/16.10/#RELEASE-16-10-CHANGES"}]}, {"id": "17.6-e93f84369f55c0dc", "cves": [], "html": "<p>Fix use-after-free during logical replication of <code>INSERT ... ON CONFLICT</code> (Ethan Mertz, Michael Paquier) <a href=\"https://postgr.es/c/9e0b4b1ab\">§</a></p>\n<p>This could result in incorrect progress reporting, or with very bad luck it could result in a crash of the WAL sender process.</p>", "text": "Fix use-after-free during logical replication of INSERT ... ON CONFLICT (Ethan Mertz, Michael Paquier) § This could result in incorrect progress reporting, or with very bad luck it could result in a crash of the WAL sender process.", "title": "Fix use-after-free during logical replication of INSERT ... ON CONFLICT", "commits": ["9e0b4b1ab"], "section": "Changes", "category": "bugfix", "source_url": "/docs/release/17.6/#RELEASE-17-6-CHANGES", "source_hash": "13bd2330a436c1b6f7ba22cb1acb92cbfce4a2472b07278b176587befa419177", "section_path": ["Changes"], "commit_groups": [["11de339aa", "3b3fa9490", "9e0b4b1ab", "ec96e8812"]], "identity_text": "Fix use-after-free during logical replication of INSERT ... ON CONFLICT (Ethan Mertz, Michael Paquier) This could result in incorrect progress reporting, or with very bad luck it could result in a crash of the WAL sender process.", "commit_aliases": ["11de339aa", "3b3fa9490", "9e0b4b1ab", "ec96e8812"], "source_commits": ["9e0b4b1ab"], "source_entry_id": "17.6/changes/029", "db_id": "d5d9004e76f7535b6d0336d4e60ba244", "patch_ids": ["77bfa12a4c07686f775586c1330d7401"], "statement_hash": "c99216e19f1bf2d79c8fee8f6461e1fdbb29f1be3b32b7103d55f4593271eccb", "relations": [{"rule": 2, "type": "equivalent", "target": "f37bc12b2d7bd8fa9e9257a9a232a920", "evidence": {"same_day": true, "patch_ids": ["77bfa12a4c07686f775586c1330d7401"], "statement_hash": "c99216e19f1bf2d79c8fee8f6461e1fdbb29f1be3b32b7103d55f4593271eccb"}}], "version": "17.6", "category_label": "Bug fixes", "also_in": [], "variants": [], "related_changes": [{"db_id": "f37bc12b2d7bd8fa9e9257a9a232a920", "kind": "equivalent", "version": "16.10", "label": "16.10", "title": "Fix use-after-free during logical replication of INSERT ... ON CONFLICT", "evidence": {"same_day": true, "patch_ids": ["77bfa12a4c07686f775586c1330d7401"], "statement_hash": "c99216e19f1bf2d79c8fee8f6461e1fdbb29f1be3b32b7103d55f4593271eccb"}, "url": "/docs/compare/?release=16.10#16.10-085516c09acdc2c1", "source_url": "/docs/release/16.10/#RELEASE-16-10-CHANGES"}]}, {"id": "17.6-edcd26180e8726a0", "cves": [], "html": "<p>Allow waiting for a transaction on a standby server to be interrupted (Kevin K Biju) <a href=\"https://postgr.es/c/24c5ad5be\">§</a></p>\n<p>Creation of a replication slot on a standby server may require waiting for some active transaction(s) to finish on the primary and then be replayed on the standby. Since that could be an indefinite wait, it's desirable to allow the operation to be cancelled, but there was no check for query cancel in the loop.</p>", "text": "Allow waiting for a transaction on a standby server to be interrupted (Kevin K Biju) § Creation of a replication slot on a standby server may require waiting for some active transaction(s) to finish on the primary and then be replayed on the standby. Since that could be an indefinite wait, it's desirable to allow the operation to be cancelled, but there was no check for query cancel in the loop.", "title": "Allow waiting for a transaction on a standby server to be interrupted", "commits": ["24c5ad5be"], "section": "Changes", "category": "improvement", "source_url": "/docs/release/17.6/#RELEASE-17-6-CHANGES", "source_hash": "0405a0ce21fe39f4ce3d6ad6b137c3042cc299f1168b3e07efc0066b2feae108", "section_path": ["Changes"], "commit_groups": [["24c5ad5be", "405cca9da", "63fa7caa9", "706344f06", "9130d8eee", "961553daf"]], "identity_text": "Allow waiting for a transaction on a standby server to be interrupted (Kevin K Biju) Creation of a replication slot on a standby server may require waiting for some active transaction(s) to finish on the primary and then be replayed on the standby. Since that could be an indefinite wait, it's desirable to allow the operation to be cancelled, but there was no check for query cancel in the loop.", "commit_aliases": ["24c5ad5be", "405cca9da", "63fa7caa9", "706344f06", "9130d8eee", "961553daf"], "source_commits": ["24c5ad5be"], "source_entry_id": "17.6/changes/030", "db_id": "441419563e7b1213eb40a5ad00a314a2", "patch_ids": ["187e0d1d9cfa1bfc5dfe37756a2c0c56"], "statement_hash": "9462db228f22687711dee0ec8d8acebf64eda37d04aeb9701390084ffe456f45", "relations": [{"rule": 2, "type": "equivalent", "target": "0e70198e4406f4acd9a45e1827f2a947", "evidence": {"same_day": true, "patch_ids": ["187e0d1d9cfa1bfc5dfe37756a2c0c56"], "statement_hash": "9462db228f22687711dee0ec8d8acebf64eda37d04aeb9701390084ffe456f45"}}, {"rule": 2, "type": "equivalent", "target": "747d14855d798bb1987f50d262b8d020", "evidence": {"same_day": true, "patch_ids": ["187e0d1d9cfa1bfc5dfe37756a2c0c56"], "statement_hash": "9462db228f22687711dee0ec8d8acebf64eda37d04aeb9701390084ffe456f45"}}, {"rule": 2, "type": "equivalent", "target": "82cbaa6bcb1ffd8af558965a2d5c0001", "evidence": {"same_day": true, "patch_ids": ["187e0d1d9cfa1bfc5dfe37756a2c0c56"], "statement_hash": "9462db228f22687711dee0ec8d8acebf64eda37d04aeb9701390084ffe456f45"}}, {"rule": 2, "type": "equivalent", "target": "b6b261baad736c03573d16bfb1b117b3", "evidence": {"same_day": true, "patch_ids": ["187e0d1d9cfa1bfc5dfe37756a2c0c56"], "statement_hash": "9462db228f22687711dee0ec8d8acebf64eda37d04aeb9701390084ffe456f45"}}], "version": "17.6", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": [{"db_id": "0e70198e4406f4acd9a45e1827f2a947", "kind": "equivalent", "version": "16.10", "label": "16.10", "title": "Allow waiting for a transaction on a standby server to be interrupted", "evidence": {"same_day": true, "patch_ids": ["187e0d1d9cfa1bfc5dfe37756a2c0c56"], "statement_hash": "9462db228f22687711dee0ec8d8acebf64eda37d04aeb9701390084ffe456f45"}, "url": "/docs/compare/?release=16.10#16.10-48e4f07a16e0e3e4", "source_url": "/docs/release/16.10/#RELEASE-16-10-CHANGES"}, {"db_id": "82cbaa6bcb1ffd8af558965a2d5c0001", "kind": "equivalent", "version": "15.14", "label": "15.14", "title": "Allow waiting for a transaction on a standby server to be interrupted", "evidence": {"same_day": true, "patch_ids": ["187e0d1d9cfa1bfc5dfe37756a2c0c56"], "statement_hash": "9462db228f22687711dee0ec8d8acebf64eda37d04aeb9701390084ffe456f45"}, "url": "/docs/compare/?release=15.14#15.14-6e00ab88631c0790", "source_url": "/docs/release/15.14/#id-1.11.6.11.5"}, {"db_id": "b6b261baad736c03573d16bfb1b117b3", "kind": "equivalent", "version": "14.19", "label": "14.19", "title": "Allow waiting for a transaction on a standby server to be interrupted", "evidence": {"same_day": true, "patch_ids": ["187e0d1d9cfa1bfc5dfe37756a2c0c56"], "statement_hash": "9462db228f22687711dee0ec8d8acebf64eda37d04aeb9701390084ffe456f45"}, "url": "/docs/compare/?release=14.19#14.19-70cf4a7b8724e91d", "source_url": "/docs/release/14.19/#id-1.11.6.11.5"}, {"db_id": "747d14855d798bb1987f50d262b8d020", "kind": "equivalent", "version": "13.22", "label": "13.22", "title": "Allow waiting for a transaction on a standby server to be interrupted", "evidence": {"same_day": true, "patch_ids": ["187e0d1d9cfa1bfc5dfe37756a2c0c56"], "statement_hash": "9462db228f22687711dee0ec8d8acebf64eda37d04aeb9701390084ffe456f45"}, "url": "/docs/compare/?release=13.22#13.22-b7873e51a933f275", "source_url": "/docs/release/13.22/#id-1.11.6.7.6"}]}, {"id": "17.6-08867e7ffe043727", "cves": [], "html": "<p>Do not let cascading logical WAL senders try to send data that's beyond what has been replayed on their standby server (Alexey Makhmutov) <a href=\"https://postgr.es/c/87be749c7\">§</a></p>\n<p>This avoids a situation where such WAL senders could get stuck at standby server shutdown, waiting for replay work that will not happen because the server's startup process is already shut down.</p>", "text": "Do not let cascading logical WAL senders try to send data that's beyond what has been replayed on their standby server (Alexey Makhmutov) § This avoids a situation where such WAL senders could get stuck at standby server shutdown, waiting for replay work that will not happen because the server's startup process is already shut down.", "title": "Do not let cascading logical WAL senders try to send data that's beyond what has been replayed on their standby server", "commits": ["87be749c7"], "section": "Changes", "category": "improvement", "source_url": "/docs/release/17.6/#RELEASE-17-6-CHANGES", "source_hash": "78f9f8a799860d24a40bd067986a34e0e3bf538375ea13cc8d54d5c151bb9603", "section_path": ["Changes"], "commit_groups": [["5231ed826", "5e6d561bc", "87be749c7"]], "identity_text": "Do not let cascading logical WAL senders try to send data that's beyond what has been replayed on their standby server (Alexey Makhmutov) This avoids a situation where such WAL senders could get stuck at standby server shutdown, waiting for replay work that will not happen because the server's startup process is already shut down.", "commit_aliases": ["5231ed826", "5e6d561bc", "87be749c7"], "source_commits": ["87be749c7"], "source_entry_id": "17.6/changes/031", "db_id": "f16e1bdc17043f264559177239b6811b", "patch_ids": ["dbf1e2775eadcc39cb4e5c411b8a010f"], "statement_hash": "d4f9ae7fc960bfe18c999fc3dd533605a1db401525b99f13fadf1b0d970f3c04", "relations": [{"rule": 2, "type": "equivalent", "target": "7405eab782e3675028e3b95a8c7f8131", "evidence": {"same_day": true, "patch_ids": ["dbf1e2775eadcc39cb4e5c411b8a010f"], "statement_hash": "d4f9ae7fc960bfe18c999fc3dd533605a1db401525b99f13fadf1b0d970f3c04"}}], "version": "17.6", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": [{"db_id": "7405eab782e3675028e3b95a8c7f8131", "kind": "equivalent", "version": "16.10", "label": "16.10", "title": "Do not let cascading logical WAL senders try to send data that's beyond what has been replayed on their standby server", "evidence": {"same_day": true, "patch_ids": ["dbf1e2775eadcc39cb4e5c411b8a010f"], "statement_hash": "d4f9ae7fc960bfe18c999fc3dd533605a1db401525b99f13fadf1b0d970f3c04"}, "url": "/docs/compare/?release=16.10#16.10-bce4d1d6c9185af1", "source_url": "/docs/release/16.10/#RELEASE-16-10-CHANGES"}]}, {"id": "17.6-4b016e6b830af89e", "cves": [], "html": "<p>Fix per-relation memory leakage in autovacuum (Tom Lane) <a href=\"https://postgr.es/c/cd3064f98\">§</a></p>", "text": "Fix per-relation memory leakage in autovacuum (Tom Lane) §", "title": "Fix per-relation memory leakage in autovacuum", "commits": ["cd3064f98"], "section": "Changes", "category": "bugfix", "source_url": "/docs/release/17.6/#RELEASE-17-6-CHANGES", "source_hash": "3f3dac55333d2791ff3893115692514e09ab806e33cbf402fe62a8821b524fdc", "section_path": ["Changes"], "commit_groups": [["02502c1bc", "13d21b48a", "cd3064f98", "e087b5b79"]], "identity_text": "Fix per-relation memory leakage in autovacuum (Tom Lane)", "commit_aliases": ["02502c1bc", "13d21b48a", "cd3064f98", "e087b5b79"], "source_commits": ["cd3064f98"], "source_entry_id": "17.6/changes/032", "db_id": "30e3b131cb9299bb525077869f153085", "patch_ids": ["af4b22ae95ecc988edb60495a12de2ef"], "statement_hash": "f69f41e4e148ef253e75639d8ec093551f9a31f39b1fc5e8b598c6ebff1e104b", "relations": [{"rule": 2, "type": "equivalent", "target": "526e591053534be4ba2524d8cd2071f9", "evidence": {"same_day": true, "patch_ids": ["af4b22ae95ecc988edb60495a12de2ef"], "statement_hash": "f69f41e4e148ef253e75639d8ec093551f9a31f39b1fc5e8b598c6ebff1e104b"}}, {"rule": 2, "type": "equivalent", "target": "8ef5d0f879ecd40256967e8563989d08", "evidence": {"same_day": true, "patch_ids": ["af4b22ae95ecc988edb60495a12de2ef"], "statement_hash": "f69f41e4e148ef253e75639d8ec093551f9a31f39b1fc5e8b598c6ebff1e104b"}}], "version": "17.6", "category_label": "Bug fixes", "also_in": [], "variants": [], "related_changes": [{"db_id": "8ef5d0f879ecd40256967e8563989d08", "kind": "equivalent", "version": "16.10", "label": "16.10", "title": "Fix per-relation memory leakage in autovacuum", "evidence": {"same_day": true, "patch_ids": ["af4b22ae95ecc988edb60495a12de2ef"], "statement_hash": "f69f41e4e148ef253e75639d8ec093551f9a31f39b1fc5e8b598c6ebff1e104b"}, "url": "/docs/compare/?release=16.10#16.10-45f82fbeb414dcb5", "source_url": "/docs/release/16.10/#RELEASE-16-10-CHANGES"}, {"db_id": "526e591053534be4ba2524d8cd2071f9", "kind": "equivalent", "version": "15.14", "label": "15.14", "title": "Fix per-relation memory leakage in autovacuum", "evidence": {"same_day": true, "patch_ids": ["af4b22ae95ecc988edb60495a12de2ef"], "statement_hash": "f69f41e4e148ef253e75639d8ec093551f9a31f39b1fc5e8b598c6ebff1e104b"}, "url": "/docs/compare/?release=15.14#15.14-8d88f1f98ad8a0f5", "source_url": "/docs/release/15.14/#id-1.11.6.11.5"}]}, {"id": "17.6-6cf6f464f0623ed1", "cves": [], "html": "<p>Fix session-lifespan memory leaks in <code>XMLSERIALIZE(... INDENT)</code> (Dmitry Kovalenko, Tom Lane) <a href=\"https://postgr.es/c/95cf1a181\">§</a> <a href=\"https://postgr.es/c/20bae0690\">§</a></p>", "text": "Fix session-lifespan memory leaks in XMLSERIALIZE(... INDENT) (Dmitry Kovalenko, Tom Lane) § §", "title": "Fix session-lifespan memory leaks in XMLSERIALIZE(... INDENT)", "commits": ["20bae0690", "95cf1a181"], "section": "Changes", "category": "bugfix", "source_url": "/docs/release/17.6/#RELEASE-17-6-CHANGES", "source_hash": "ee98ec49050f88158771d9455979a274c9eddb333176245362bbb28942c29a26", "section_path": ["Changes"], "commit_groups": [["075554ec6", "95cf1a181", "abb517d61", "e03c95287"], ["20bae0690", "ee58de100", "f24605e2d"]], "identity_text": "Fix session-lifespan memory leaks in XMLSERIALIZE(... INDENT) (Dmitry Kovalenko, Tom Lane)", "commit_aliases": ["075554ec6", "20bae0690", "95cf1a181", "abb517d61", "e03c95287", "ee58de100", "f24605e2d"], "source_commits": ["20bae0690", "95cf1a181"], "source_entry_id": "17.6/changes/033", "db_id": "ccc0591e8371fa5daa6e767d294e24f0", "patch_ids": ["4c48776ea5d4e83131c7a50ad9c3c82a", "c312b4f92b9fc1186cf8ed8493ce7655"], "statement_hash": "a41bf636e4f8e3d060b96d31e76f6ac8b148bc41e5e60f0fb40d319468f659dd", "relations": [{"rule": 2, "type": "equivalent", "target": "b3dbd8b68450a3ddb0b98b527ed1e0bb", "evidence": {"same_day": true, "patch_ids": ["4c48776ea5d4e83131c7a50ad9c3c82a", "c312b4f92b9fc1186cf8ed8493ce7655"], "statement_hash": "a41bf636e4f8e3d060b96d31e76f6ac8b148bc41e5e60f0fb40d319468f659dd"}}], "version": "17.6", "category_label": "Bug fixes", "also_in": [], "variants": [], "related_changes": [{"db_id": "b3dbd8b68450a3ddb0b98b527ed1e0bb", "kind": "equivalent", "version": "16.10", "label": "16.10", "title": "Fix session-lifespan memory leaks in XMLSERIALIZE(... INDENT)", "evidence": {"same_day": true, "patch_ids": ["4c48776ea5d4e83131c7a50ad9c3c82a", "c312b4f92b9fc1186cf8ed8493ce7655"], "statement_hash": "a41bf636e4f8e3d060b96d31e76f6ac8b148bc41e5e60f0fb40d319468f659dd"}, "url": "/docs/compare/?release=16.10#16.10-65c3c8be9e68dbba", "source_url": "/docs/release/16.10/#RELEASE-16-10-CHANGES"}]}, {"id": "17.6-35836520f95ac33a", "cves": [], "html": "<p>Fix possible crash after out-of-memory when allocating large chunks with the <span>“<span>bump</span>”</span> allocator (Tom Lane) <a href=\"https://postgr.es/c/a05cf22e0\">§</a></p>", "text": "Fix possible crash after out-of-memory when allocating large chunks with the “bump” allocator (Tom Lane) §", "title": "Fix possible crash after out-of-memory when allocating large chunks with the “bump” allocator", "commits": ["a05cf22e0"], "section": "Changes", "category": "bugfix", "source_url": "/docs/release/17.6/#RELEASE-17-6-CHANGES", "source_hash": "01f6674f7251b8d1b9d87130cb8100ca6f5065e0c1bdcecefa27c6edbe1fe731", "section_path": ["Changes"], "commit_groups": [["a05cf22e0", "d4a7e4e17"]], "identity_text": "Fix possible crash after out-of-memory when allocating large chunks with the bump allocator (Tom Lane)", "commit_aliases": ["a05cf22e0", "d4a7e4e17"], "source_commits": ["a05cf22e0"], "source_entry_id": "17.6/changes/034", "db_id": "aba8e957973bfafc24a221a550a91339", "patch_ids": ["dae72ac657b586756fd2d8a164cb1752"], "statement_hash": "3d4a5c20eb9d9881f2dc3314df59565ccfd88d1fc45bf784ce3cd7b0baa49288", "relations": [], "version": "17.6", "category_label": "Bug fixes", "also_in": [], "variants": [], "related_changes": []}, {"id": "17.6-32486322b55d4f87", "cves": [], "html": "<p>Fix some places that might try to fetch toasted fields of system catalogs without any snapshot (Nathan Bossart) <a href=\"https://postgr.es/c/fe8ea7a2a\">§</a></p>\n<p>This could result in an assertion failure or <span>“<span>cannot fetch toast data without an active snapshot</span>”</span> error.</p>", "text": "Fix some places that might try to fetch toasted fields of system catalogs without any snapshot (Nathan Bossart) § This could result in an assertion failure or “cannot fetch toast data without an active snapshot” error.", "title": "Fix some places that might try to fetch toasted fields of system catalogs without any snapshot", "commits": ["fe8ea7a2a"], "section": "Changes", "category": "bugfix", "source_url": "/docs/release/17.6/#RELEASE-17-6-CHANGES", "source_hash": "9adabc11cad1565885a00a2dbf1d4f8152ed42921ba9ea486735f489a614e5e3", "section_path": ["Changes"], "commit_groups": [["24135398f", "706054b11", "b65be6ef0", "b7ba2c030", "ddfcfb7ce", "fe8ea7a2a"]], "identity_text": "Fix some places that might try to fetch toasted fields of system catalogs without any snapshot (Nathan Bossart) This could result in an assertion failure or cannot fetch toast data without an active snapshot error.", "commit_aliases": ["24135398f", "706054b11", "b65be6ef0", "b7ba2c030", "ddfcfb7ce", "fe8ea7a2a"], "source_commits": ["fe8ea7a2a"], "source_entry_id": "17.6/changes/035", "db_id": "24c6e466f5e05041256451869f823aa4", "patch_ids": ["777b876710acba4c29adff1116eae778"], "statement_hash": "32305323df3e7ebd92b18aa9e41b9366a0801e7322a1b13d39c8cb21303353dc", "relations": [{"rule": 2, "type": "equivalent", "target": "15a89da07fe56608bc1bd8adff46e90e", "evidence": {"same_day": true, "patch_ids": ["777b876710acba4c29adff1116eae778"], "statement_hash": "32305323df3e7ebd92b18aa9e41b9366a0801e7322a1b13d39c8cb21303353dc"}}, {"rule": 2, "type": "equivalent", "target": "47e6dd4cda3e298da853c98533997be9", "evidence": {"same_day": true, "patch_ids": ["777b876710acba4c29adff1116eae778"], "statement_hash": "32305323df3e7ebd92b18aa9e41b9366a0801e7322a1b13d39c8cb21303353dc"}}, {"rule": 2, "type": "equivalent", "target": "71af29c15aec4afda1d0cec55f5993c7", "evidence": {"same_day": true, "patch_ids": ["777b876710acba4c29adff1116eae778"], "statement_hash": "32305323df3e7ebd92b18aa9e41b9366a0801e7322a1b13d39c8cb21303353dc"}}, {"rule": 2, "type": "equivalent", "target": "f19c9f66fd0acfaaf9767b1401906b20", "evidence": {"same_day": true, "patch_ids": ["777b876710acba4c29adff1116eae778"], "statement_hash": "32305323df3e7ebd92b18aa9e41b9366a0801e7322a1b13d39c8cb21303353dc"}}], "version": "17.6", "category_label": "Bug fixes", "also_in": [], "variants": [], "related_changes": [{"db_id": "f19c9f66fd0acfaaf9767b1401906b20", "kind": "equivalent", "version": "16.10", "label": "16.10", "title": "Fix some places that might try to fetch toasted fields of system catalogs without any snapshot", "evidence": {"same_day": true, "patch_ids": ["777b876710acba4c29adff1116eae778"], "statement_hash": "32305323df3e7ebd92b18aa9e41b9366a0801e7322a1b13d39c8cb21303353dc"}, "url": "/docs/compare/?release=16.10#16.10-07ee29e0a74ee196", "source_url": "/docs/release/16.10/#RELEASE-16-10-CHANGES"}, {"db_id": "47e6dd4cda3e298da853c98533997be9", "kind": "equivalent", "version": "15.14", "label": "15.14", "title": "Fix some places that might try to fetch toasted fields of system catalogs without any snapshot", "evidence": {"same_day": true, "patch_ids": ["777b876710acba4c29adff1116eae778"], "statement_hash": "32305323df3e7ebd92b18aa9e41b9366a0801e7322a1b13d39c8cb21303353dc"}, "url": "/docs/compare/?release=15.14#15.14-3631801cfbc2b6e0", "source_url": "/docs/release/15.14/#id-1.11.6.11.5"}, {"db_id": "71af29c15aec4afda1d0cec55f5993c7", "kind": "equivalent", "version": "14.19", "label": "14.19", "title": "Fix some places that might try to fetch toasted fields of system catalogs without any snapshot", "evidence": {"same_day": true, "patch_ids": ["777b876710acba4c29adff1116eae778"], "statement_hash": "32305323df3e7ebd92b18aa9e41b9366a0801e7322a1b13d39c8cb21303353dc"}, "url": "/docs/compare/?release=14.19#14.19-087c775fe6a3a18e", "source_url": "/docs/release/14.19/#id-1.11.6.11.5"}, {"db_id": "15a89da07fe56608bc1bd8adff46e90e", "kind": "equivalent", "version": "13.22", "label": "13.22", "title": "Fix some places that might try to fetch toasted fields of system catalogs without any snapshot", "evidence": {"same_day": true, "patch_ids": ["777b876710acba4c29adff1116eae778"], "statement_hash": "32305323df3e7ebd92b18aa9e41b9366a0801e7322a1b13d39c8cb21303353dc"}, "url": "/docs/compare/?release=13.22#13.22-ee0f78fa7dcf53d5", "source_url": "/docs/release/13.22/#id-1.11.6.7.6"}]}, {"id": "17.6-2438f96ba5a2f4e7", "cves": [], "html": "<p>Avoid assertion failure during cross-table constraint updates (Tom Lane, Jian He) <a href=\"https://postgr.es/c/bbfcbc4cd\">§</a> <a href=\"https://postgr.es/c/6d4395b40\">§</a></p>", "text": "Avoid assertion failure during cross-table constraint updates (Tom Lane, Jian He) § §", "title": "Avoid assertion failure during cross-table constraint updates", "commits": ["6d4395b40", "bbfcbc4cd"], "section": "Changes", "category": "improvement", "source_url": "/docs/release/17.6/#RELEASE-17-6-CHANGES", "source_hash": "76374624931e3dfad33d0deb29ace0e0e8caf3e3f346f0d5976512e1a7c8e299", "section_path": ["Changes"], "commit_groups": [["13f1e9f26", "25cab4473", "614ffb26d", "8319e5cb5", "bbfcbc4cd", "c15798cf9"], ["3d7a96871", "6d4395b40", "a10f21e6c", "d36980b71", "e6dd6e6ee", "e902f8181", "f9ba071cc"]], "identity_text": "Avoid assertion failure during cross-table constraint updates (Tom Lane, Jian He)", "commit_aliases": ["13f1e9f26", "25cab4473", "3d7a96871", "614ffb26d", "6d4395b40", "8319e5cb5", "a10f21e6c", "bbfcbc4cd", "c15798cf9", "d36980b71", "e6dd6e6ee", "e902f8181", "f9ba071cc"], "source_commits": ["6d4395b40", "bbfcbc4cd"], "source_entry_id": "17.6/changes/036", "db_id": "8e5c82e0c9a4620f5e78f373d6eab4de", "patch_ids": ["38c2659d2d49792d4d5949aa17d94ffe", "e89d49ef181d2ea31edebe391d6585af"], "statement_hash": "315810c8210fbe84750562b49ec74df0b04879406e3b1c8ac94da02ffc01dcfd", "relations": [{"rule": 2, "type": "equivalent", "target": "4a0017ac513db3525a50660bd847b530", "evidence": {"same_day": true, "patch_ids": ["38c2659d2d49792d4d5949aa17d94ffe", "e89d49ef181d2ea31edebe391d6585af"], "statement_hash": "315810c8210fbe84750562b49ec74df0b04879406e3b1c8ac94da02ffc01dcfd"}}, {"rule": 2, "type": "equivalent", "target": "5bd246584254c738e7c72084c1a50eb1", "evidence": {"same_day": true, "patch_ids": ["38c2659d2d49792d4d5949aa17d94ffe", "e89d49ef181d2ea31edebe391d6585af"], "statement_hash": "315810c8210fbe84750562b49ec74df0b04879406e3b1c8ac94da02ffc01dcfd"}}, {"rule": 2, "type": "equivalent", "target": "7dbbc995359387cd322a74bf2d8ed14e", "evidence": {"same_day": true, "patch_ids": ["38c2659d2d49792d4d5949aa17d94ffe", "e89d49ef181d2ea31edebe391d6585af"], "statement_hash": "315810c8210fbe84750562b49ec74df0b04879406e3b1c8ac94da02ffc01dcfd"}}, {"rule": 2, "type": "equivalent", "target": "be837258ad2a7ec6fa752a4d5cbcc0f4", "evidence": {"same_day": true, "patch_ids": ["38c2659d2d49792d4d5949aa17d94ffe", "e89d49ef181d2ea31edebe391d6585af"], "statement_hash": "315810c8210fbe84750562b49ec74df0b04879406e3b1c8ac94da02ffc01dcfd"}}], "version": "17.6", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": [{"db_id": "4a0017ac513db3525a50660bd847b530", "kind": "equivalent", "version": "16.10", "label": "16.10", "title": "Avoid assertion failure during cross-table constraint updates", "evidence": {"same_day": true, "patch_ids": ["38c2659d2d49792d4d5949aa17d94ffe", "e89d49ef181d2ea31edebe391d6585af"], "statement_hash": "315810c8210fbe84750562b49ec74df0b04879406e3b1c8ac94da02ffc01dcfd"}, "url": "/docs/compare/?release=16.10#16.10-b77303bab24eb5bc", "source_url": "/docs/release/16.10/#RELEASE-16-10-CHANGES"}, {"db_id": "5bd246584254c738e7c72084c1a50eb1", "kind": "equivalent", "version": "15.14", "label": "15.14", "title": "Avoid assertion failure during cross-table constraint updates", "evidence": {"same_day": true, "patch_ids": ["38c2659d2d49792d4d5949aa17d94ffe", "e89d49ef181d2ea31edebe391d6585af"], "statement_hash": "315810c8210fbe84750562b49ec74df0b04879406e3b1c8ac94da02ffc01dcfd"}, "url": "/docs/compare/?release=15.14#15.14-a052ebd72b72256a", "source_url": "/docs/release/15.14/#id-1.11.6.11.5"}, {"db_id": "be837258ad2a7ec6fa752a4d5cbcc0f4", "kind": "equivalent", "version": "14.19", "label": "14.19", "title": "Avoid assertion failure during cross-table constraint updates", "evidence": {"same_day": true, "patch_ids": ["38c2659d2d49792d4d5949aa17d94ffe", "e89d49ef181d2ea31edebe391d6585af"], "statement_hash": "315810c8210fbe84750562b49ec74df0b04879406e3b1c8ac94da02ffc01dcfd"}, "url": "/docs/compare/?release=14.19#14.19-90acdd628e8a125e", "source_url": "/docs/release/14.19/#id-1.11.6.11.5"}, {"db_id": "7dbbc995359387cd322a74bf2d8ed14e", "kind": "equivalent", "version": "13.22", "label": "13.22", "title": "Avoid assertion failure during cross-table constraint updates", "evidence": {"same_day": true, "patch_ids": ["38c2659d2d49792d4d5949aa17d94ffe", "e89d49ef181d2ea31edebe391d6585af"], "statement_hash": "315810c8210fbe84750562b49ec74df0b04879406e3b1c8ac94da02ffc01dcfd"}, "url": "/docs/compare/?release=13.22#13.22-dabbb36f105c08be", "source_url": "/docs/release/13.22/#id-1.11.6.7.6"}]}, {"id": "17.6-ff92c9676b1b3d1b", "cves": [], "html": "<p>Remove faulty assertion that a command tag must have been determined by the end of <code>PortalRunMulti()</code> (Álvaro Herrera) <a href=\"https://postgr.es/c/0c466f5e0\">§</a></p>\n<p>This failed in edge cases such as an empty prepared statement.</p>", "text": "Remove faulty assertion that a command tag must have been determined by the end of PortalRunMulti() (Álvaro Herrera) § This failed in edge cases such as an empty prepared statement.", "title": "Remove faulty assertion that a command tag must have been determined by the end of PortalRunMulti()", "commits": ["0c466f5e0"], "section": "Changes", "category": "improvement", "source_url": "/docs/release/17.6/#RELEASE-17-6-CHANGES", "source_hash": "36fa6f0f244284a72465d8c47567c20007826bc9e669bfdf5419b3ce40f8e3d2", "section_path": ["Changes"], "commit_groups": [["0c466f5e0", "43cd85962", "4871c1e9c", "b8926a5b4", "b9a896828", "c2720ac60", "e0d3f3cfb"]], "identity_text": "Remove faulty assertion that a command tag must have been determined by the end of PortalRunMulti() (Álvaro Herrera) This failed in edge cases such as an empty prepared statement.", "commit_aliases": ["0c466f5e0", "43cd85962", "4871c1e9c", "b8926a5b4", "b9a896828", "c2720ac60", "e0d3f3cfb"], "source_commits": ["0c466f5e0"], "source_entry_id": "17.6/changes/037", "db_id": "69acaf7eb64fd7b09e33dc034c31117b", "patch_ids": ["89e3c2af85b43ec9e5c0880c832f7201"], "statement_hash": "f14c48b3304341a11f41f6a2913ce37ca10201d8817278f900dbd5be5eaf588e", "relations": [{"rule": 2, "type": "equivalent", "target": "29f00b03931c829d5d1fc33a545d7f2e", "evidence": {"same_day": true, "patch_ids": ["89e3c2af85b43ec9e5c0880c832f7201"], "statement_hash": "f14c48b3304341a11f41f6a2913ce37ca10201d8817278f900dbd5be5eaf588e"}}, {"rule": 2, "type": "equivalent", "target": "3088f95cab6d048c5c9eaeab66d96284", "evidence": {"same_day": true, "patch_ids": ["89e3c2af85b43ec9e5c0880c832f7201"], "statement_hash": "f14c48b3304341a11f41f6a2913ce37ca10201d8817278f900dbd5be5eaf588e"}}, {"rule": 2, "type": "equivalent", "target": "c19274d77bf45d3de069b4cb3f2b9558", "evidence": {"same_day": true, "patch_ids": ["89e3c2af85b43ec9e5c0880c832f7201"], "statement_hash": "f14c48b3304341a11f41f6a2913ce37ca10201d8817278f900dbd5be5eaf588e"}}, {"rule": 2, "type": "equivalent", "target": "d9147fb696a093f4982942c7e9837f5c", "evidence": {"same_day": true, "patch_ids": ["89e3c2af85b43ec9e5c0880c832f7201"], "statement_hash": "f14c48b3304341a11f41f6a2913ce37ca10201d8817278f900dbd5be5eaf588e"}}], "version": "17.6", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": [{"db_id": "3088f95cab6d048c5c9eaeab66d96284", "kind": "equivalent", "version": "16.10", "label": "16.10", "title": "Remove faulty assertion that a command tag must have been determined by the end of PortalRunMulti()", "evidence": {"same_day": true, "patch_ids": ["89e3c2af85b43ec9e5c0880c832f7201"], "statement_hash": "f14c48b3304341a11f41f6a2913ce37ca10201d8817278f900dbd5be5eaf588e"}, "url": "/docs/compare/?release=16.10#16.10-68b74c0ee8871660", "source_url": "/docs/release/16.10/#RELEASE-16-10-CHANGES"}, {"db_id": "d9147fb696a093f4982942c7e9837f5c", "kind": "equivalent", "version": "15.14", "label": "15.14", "title": "Remove faulty assertion that a command tag must have been determined by the end of PortalRunMulti()", "evidence": {"same_day": true, "patch_ids": ["89e3c2af85b43ec9e5c0880c832f7201"], "statement_hash": "f14c48b3304341a11f41f6a2913ce37ca10201d8817278f900dbd5be5eaf588e"}, "url": "/docs/compare/?release=15.14#15.14-9a073b50a73fe134", "source_url": "/docs/release/15.14/#id-1.11.6.11.5"}, {"db_id": "29f00b03931c829d5d1fc33a545d7f2e", "kind": "equivalent", "version": "14.19", "label": "14.19", "title": "Remove faulty assertion that a command tag must have been determined by the end of PortalRunMulti()", "evidence": {"same_day": true, "patch_ids": ["89e3c2af85b43ec9e5c0880c832f7201"], "statement_hash": "f14c48b3304341a11f41f6a2913ce37ca10201d8817278f900dbd5be5eaf588e"}, "url": "/docs/compare/?release=14.19#14.19-08438a0e7ddef201", "source_url": "/docs/release/14.19/#id-1.11.6.11.5"}, {"db_id": "c19274d77bf45d3de069b4cb3f2b9558", "kind": "equivalent", "version": "13.22", "label": "13.22", "title": "Remove faulty assertion that a command tag must have been determined by the end of PortalRunMulti()", "evidence": {"same_day": true, "patch_ids": ["89e3c2af85b43ec9e5c0880c832f7201"], "statement_hash": "f14c48b3304341a11f41f6a2913ce37ca10201d8817278f900dbd5be5eaf588e"}, "url": "/docs/compare/?release=13.22#13.22-c04ee227e6028abd", "source_url": "/docs/release/13.22/#id-1.11.6.7.6"}]}, {"id": "17.6-5bf82b7675525165", "cves": [], "html": "<p>Fix assertion failure in <code>XMLTABLE</code> parsing (Richard Guo) <a href=\"https://postgr.es/c/2f48b4f07\">§</a></p>", "text": "Fix assertion failure in XMLTABLE parsing (Richard Guo) §", "title": "Fix assertion failure in XMLTABLE parsing", "commits": ["2f48b4f07"], "section": "Changes", "category": "bugfix", "source_url": "/docs/release/17.6/#RELEASE-17-6-CHANGES", "source_hash": "dea89dbfc003b52b82ffb2d88ed577487ffc9175f87cb888c5f8b7b184f5bd0a", "section_path": ["Changes"], "commit_groups": [["2f48b4f07", "666103090", "d3716d4b1", "fe29b2a1d"]], "identity_text": "Fix assertion failure in XMLTABLE parsing (Richard Guo)", "commit_aliases": ["2f48b4f07", "666103090", "d3716d4b1", "fe29b2a1d"], "source_commits": ["2f48b4f07"], "source_entry_id": "17.6/changes/038", "db_id": "91333bc41e88c104cc1daeba377f6c34", "patch_ids": ["c5d0e2ad6ae99af9c52ecb7ecd51b0c0"], "statement_hash": "cd6323bb8d2517e69ba2865c267b2e4561e068615af026939781d76ea81e60aa", "relations": [{"rule": 2, "type": "equivalent", "target": "4832c860c1ce1ab1b6cec1525fc64d80", "evidence": {"same_day": true, "patch_ids": ["c5d0e2ad6ae99af9c52ecb7ecd51b0c0"], "statement_hash": "cd6323bb8d2517e69ba2865c267b2e4561e068615af026939781d76ea81e60aa"}}, {"rule": 2, "type": "equivalent", "target": "7c3cd79b7361657c42b44b250e1762c6", "evidence": {"same_day": true, "patch_ids": ["c5d0e2ad6ae99af9c52ecb7ecd51b0c0"], "statement_hash": "cd6323bb8d2517e69ba2865c267b2e4561e068615af026939781d76ea81e60aa"}}], "version": "17.6", "category_label": "Bug fixes", "also_in": [], "variants": [], "related_changes": [{"db_id": "4832c860c1ce1ab1b6cec1525fc64d80", "kind": "equivalent", "version": "16.10", "label": "16.10", "title": "Fix assertion failure in XMLTABLE parsing", "evidence": {"same_day": true, "patch_ids": ["c5d0e2ad6ae99af9c52ecb7ecd51b0c0"], "statement_hash": "cd6323bb8d2517e69ba2865c267b2e4561e068615af026939781d76ea81e60aa"}, "url": "/docs/compare/?release=16.10#16.10-9472a47a94751f94", "source_url": "/docs/release/16.10/#RELEASE-16-10-CHANGES"}, {"db_id": "7c3cd79b7361657c42b44b250e1762c6", "kind": "equivalent", "version": "15.14", "label": "15.14", "title": "Fix assertion failure in XMLTABLE parsing", "evidence": {"same_day": true, "patch_ids": ["c5d0e2ad6ae99af9c52ecb7ecd51b0c0"], "statement_hash": "cd6323bb8d2517e69ba2865c267b2e4561e068615af026939781d76ea81e60aa"}, "url": "/docs/compare/?release=15.14#15.14-d3bfcfdaf7d34eaf", "source_url": "/docs/release/15.14/#id-1.11.6.11.5"}]}, {"id": "17.6-f7f59c82bc768d0f", "cves": [], "html": "<p>Restore the ability to run PL/pgSQL expressions in parallel (Dipesh Dhameliya) <a href=\"https://postgr.es/c/a553a2289\">§</a></p>\n<p>PL/pgSQL's notion of an <span>“<span>expression</span>”</span> is very broad, encompassing any SQL <code>SELECT</code> query that returns a single column and no more than one row. So there are cases, for example evaluation of an aggregate function, where the query involves significant work and it'd be useful to run it with parallel workers. This used to be possible, but a previous bug fix unintentionally disabled it.</p>", "text": "Restore the ability to run PL/pgSQL expressions in parallel (Dipesh Dhameliya) § PL/pgSQL's notion of an “expression” is very broad, encompassing any SQL SELECT query that returns a single column and no more than one row. So there are cases, for example evaluation of an aggregate function, where the query involves significant work and it'd be useful to run it with parallel workers. This used to be possible, but a previous bug fix unintentionally disabled it.", "title": "Restore the ability to run PL/pgSQL expressions in parallel", "commits": ["a553a2289"], "section": "Changes", "category": "improvement", "source_url": "/docs/release/17.6/#RELEASE-17-6-CHANGES", "source_hash": "252ad516bfbe0efd6f8faa0c944b05a9bddd10141d4206dd36a4910e4772e8ce", "section_path": ["Changes"], "commit_groups": [["3bbc1c4a7", "440c5ee20", "602c91cf2", "87b05fdc7", "a553a2289", "ae693c0bf", "c65c36ab5"]], "identity_text": "Restore the ability to run PL/pgSQL expressions in parallel (Dipesh Dhameliya) PL/pgSQL's notion of an expression is very broad, encompassing any SQL SELECT query that returns a single column and no more than one row. So there are cases, for example evaluation of an aggregate function, where the query involves significant work and it'd be useful to run it with parallel workers. This used to be possible, but a previous bug fix unintentionally disabled it.", "commit_aliases": ["3bbc1c4a7", "440c5ee20", "602c91cf2", "87b05fdc7", "a553a2289", "ae693c0bf", "c65c36ab5"], "source_commits": ["a553a2289"], "source_entry_id": "17.6/changes/039", "db_id": "c6c6cb74b6043603c2add00554d38bf6", "patch_ids": ["d7e6562b2d2fd7593124d895c1e87b80"], "statement_hash": "c38db496d6c1235185a7cb01749e0d8b1737c7f23274b76294f84debf8f4cb50", "relations": [{"rule": 2, "type": "equivalent", "target": "4e59880d0211330ae7869ed21f4fb6f8", "evidence": {"same_day": true, "patch_ids": ["d7e6562b2d2fd7593124d895c1e87b80"], "statement_hash": "c38db496d6c1235185a7cb01749e0d8b1737c7f23274b76294f84debf8f4cb50"}}, {"rule": 2, "type": "equivalent", "target": "58a0d61da22f0a31faaf752756bf48d5", "evidence": {"same_day": true, "patch_ids": ["d7e6562b2d2fd7593124d895c1e87b80"], "statement_hash": "c38db496d6c1235185a7cb01749e0d8b1737c7f23274b76294f84debf8f4cb50"}}, {"rule": 2, "type": "equivalent", "target": "6dd8c99c246c1d9c0515a9af0c3ac00a", "evidence": {"same_day": true, "patch_ids": ["d7e6562b2d2fd7593124d895c1e87b80"], "statement_hash": "c38db496d6c1235185a7cb01749e0d8b1737c7f23274b76294f84debf8f4cb50"}}, {"rule": 2, "type": "equivalent", "target": "7fe535a252ea59534d5d49967f105f6c", "evidence": {"same_day": true, "patch_ids": ["d7e6562b2d2fd7593124d895c1e87b80"], "statement_hash": "c38db496d6c1235185a7cb01749e0d8b1737c7f23274b76294f84debf8f4cb50"}}], "version": "17.6", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": [{"db_id": "58a0d61da22f0a31faaf752756bf48d5", "kind": "equivalent", "version": "16.10", "label": "16.10", "title": "Restore the ability to run PL/pgSQL expressions in parallel", "evidence": {"same_day": true, "patch_ids": ["d7e6562b2d2fd7593124d895c1e87b80"], "statement_hash": "c38db496d6c1235185a7cb01749e0d8b1737c7f23274b76294f84debf8f4cb50"}, "url": "/docs/compare/?release=16.10#16.10-3a49a3cf217e1b81", "source_url": "/docs/release/16.10/#RELEASE-16-10-CHANGES"}, {"db_id": "4e59880d0211330ae7869ed21f4fb6f8", "kind": "equivalent", "version": "15.14", "label": "15.14", "title": "Restore the ability to run PL/pgSQL expressions in parallel", "evidence": {"same_day": true, "patch_ids": ["d7e6562b2d2fd7593124d895c1e87b80"], "statement_hash": "c38db496d6c1235185a7cb01749e0d8b1737c7f23274b76294f84debf8f4cb50"}, "url": "/docs/compare/?release=15.14#15.14-6d8ebac5bfc94463", "source_url": "/docs/release/15.14/#id-1.11.6.11.5"}, {"db_id": "6dd8c99c246c1d9c0515a9af0c3ac00a", "kind": "equivalent", "version": "14.19", "label": "14.19", "title": "Restore the ability to run PL/pgSQL expressions in parallel", "evidence": {"same_day": true, "patch_ids": ["d7e6562b2d2fd7593124d895c1e87b80"], "statement_hash": "c38db496d6c1235185a7cb01749e0d8b1737c7f23274b76294f84debf8f4cb50"}, "url": "/docs/compare/?release=14.19#14.19-940a02486cedd708", "source_url": "/docs/release/14.19/#id-1.11.6.11.5"}, {"db_id": "7fe535a252ea59534d5d49967f105f6c", "kind": "equivalent", "version": "13.22", "label": "13.22", "title": "Restore the ability to run PL/pgSQL expressions in parallel", "evidence": {"same_day": true, "patch_ids": ["d7e6562b2d2fd7593124d895c1e87b80"], "statement_hash": "c38db496d6c1235185a7cb01749e0d8b1737c7f23274b76294f84debf8f4cb50"}, "url": "/docs/compare/?release=13.22#13.22-5a92d5afeb26ff20", "source_url": "/docs/release/13.22/#id-1.11.6.7.6"}]}, {"id": "17.6-a6725b33673c4dfd", "cves": [], "html": "<p>Fix edge-case resource leaks in PL/Python error reporting (Tom Lane) <a href=\"https://postgr.es/c/7559a16e2\">§</a> <a href=\"https://postgr.es/c/6f724fcf8\">§</a></p>\n<p>An out-of-memory failure while reporting an error from Python could result in failure to drop reference counts on Python objects, leading to session-lifespan memory leakage.</p>", "text": "Fix edge-case resource leaks in PL/Python error reporting (Tom Lane) § § An out-of-memory failure while reporting an error from Python could result in failure to drop reference counts on Python objects, leading to session-lifespan memory leakage.", "title": "Fix edge-case resource leaks in PL/Python error reporting", "commits": ["6f724fcf8", "7559a16e2"], "section": "Changes", "category": "bugfix", "source_url": "/docs/release/17.6/#RELEASE-17-6-CHANGES", "source_hash": "f97dc13e79a6a374d66cfc859e14e9e91a8e331b62bb9f8f57cc245e1c28a6d0", "section_path": ["Changes"], "commit_groups": [["1c78d5553", "31a3a15fa", "5c7fd5976", "7559a16e2", "b56a92651", "c6f7f11d8"], ["4672b6223", "6f724fcf8", "93aca1246", "b898bb2a7", "d4556f592", "ecc8fd2b7"]], "identity_text": "Fix edge-case resource leaks in PL/Python error reporting (Tom Lane) An out-of-memory failure while reporting an error from Python could result in failure to drop reference counts on Python objects, leading to session-lifespan memory leakage.", "commit_aliases": ["1c78d5553", "31a3a15fa", "4672b6223", "5c7fd5976", "6f724fcf8", "7559a16e2", "93aca1246", "b56a92651", "b898bb2a7", "c6f7f11d8", "d4556f592", "ecc8fd2b7"], "source_commits": ["6f724fcf8", "7559a16e2"], "source_entry_id": "17.6/changes/040", "db_id": "0468697c8222104ee239201be4e72851", "patch_ids": ["5cf11831d4da5ade7bf49e7df6741c06", "c8f27688ed48f73fa477355451a4d409"], "statement_hash": "f75869cb85facb2f36714af3f1d39c5deaf952daf8dd097d0129d12e6377a349", "relations": [{"rule": 2, "type": "equivalent", "target": "121c4887d61f8657a3464fef4ba2fb25", "evidence": {"same_day": true, "patch_ids": ["5cf11831d4da5ade7bf49e7df6741c06", "c8f27688ed48f73fa477355451a4d409"], "statement_hash": "f75869cb85facb2f36714af3f1d39c5deaf952daf8dd097d0129d12e6377a349"}}, {"rule": 2, "type": "equivalent", "target": "7bd9f9ced63230b2f77829dd09883005", "evidence": {"same_day": true, "patch_ids": ["5cf11831d4da5ade7bf49e7df6741c06", "c8f27688ed48f73fa477355451a4d409"], "statement_hash": "f75869cb85facb2f36714af3f1d39c5deaf952daf8dd097d0129d12e6377a349"}}, {"rule": 2, "type": "equivalent", "target": "a59f3a9c24e176910d3bc6430f5b6975", "evidence": {"same_day": true, "patch_ids": ["5cf11831d4da5ade7bf49e7df6741c06", "c8f27688ed48f73fa477355451a4d409"], "statement_hash": "f75869cb85facb2f36714af3f1d39c5deaf952daf8dd097d0129d12e6377a349"}}, {"rule": 2, "type": "equivalent", "target": "d8d7c303d6e9004f3000a0044f0af608", "evidence": {"same_day": true, "patch_ids": ["5cf11831d4da5ade7bf49e7df6741c06", "c8f27688ed48f73fa477355451a4d409"], "statement_hash": "f75869cb85facb2f36714af3f1d39c5deaf952daf8dd097d0129d12e6377a349"}}], "version": "17.6", "category_label": "Bug fixes", "also_in": [], "variants": [], "related_changes": [{"db_id": "121c4887d61f8657a3464fef4ba2fb25", "kind": "equivalent", "version": "16.10", "label": "16.10", "title": "Fix edge-case resource leaks in PL/Python error reporting", "evidence": {"same_day": true, "patch_ids": ["5cf11831d4da5ade7bf49e7df6741c06", "c8f27688ed48f73fa477355451a4d409"], "statement_hash": "f75869cb85facb2f36714af3f1d39c5deaf952daf8dd097d0129d12e6377a349"}, "url": "/docs/compare/?release=16.10#16.10-441bb4b7a9cf4605", "source_url": "/docs/release/16.10/#RELEASE-16-10-CHANGES"}, {"db_id": "7bd9f9ced63230b2f77829dd09883005", "kind": "equivalent", "version": "15.14", "label": "15.14", "title": "Fix edge-case resource leaks in PL/Python error reporting", "evidence": {"same_day": true, "patch_ids": ["5cf11831d4da5ade7bf49e7df6741c06", "c8f27688ed48f73fa477355451a4d409"], "statement_hash": "f75869cb85facb2f36714af3f1d39c5deaf952daf8dd097d0129d12e6377a349"}, "url": "/docs/compare/?release=15.14#15.14-32a1630fd1b56fa5", "source_url": "/docs/release/15.14/#id-1.11.6.11.5"}, {"db_id": "a59f3a9c24e176910d3bc6430f5b6975", "kind": "equivalent", "version": "14.19", "label": "14.19", "title": "Fix edge-case resource leaks in PL/Python error reporting", "evidence": {"same_day": true, "patch_ids": ["5cf11831d4da5ade7bf49e7df6741c06", "c8f27688ed48f73fa477355451a4d409"], "statement_hash": "f75869cb85facb2f36714af3f1d39c5deaf952daf8dd097d0129d12e6377a349"}, "url": "/docs/compare/?release=14.19#14.19-98ad0c4aa90b1871", "source_url": "/docs/release/14.19/#id-1.11.6.11.5"}, {"db_id": "d8d7c303d6e9004f3000a0044f0af608", "kind": "equivalent", "version": "13.22", "label": "13.22", "title": "Fix edge-case resource leaks in PL/Python error reporting", "evidence": {"same_day": true, "patch_ids": ["5cf11831d4da5ade7bf49e7df6741c06", "c8f27688ed48f73fa477355451a4d409"], "statement_hash": "f75869cb85facb2f36714af3f1d39c5deaf952daf8dd097d0129d12e6377a349"}, "url": "/docs/compare/?release=13.22#13.22-413a0c641b1e54a6", "source_url": "/docs/release/13.22/#id-1.11.6.7.6"}]}, {"id": "17.6-806e3ab8c7eb6992", "cves": [], "html": "<p>Fix <span>libpq</span>'s <code>PQcancelCreate()</code> function for the case where the server's address was specified using <code>hostaddr</code> (Sergei Kornilov) <a href=\"https://postgr.es/c/445bd37b1\">§</a></p>\n<p><span>libpq</span> would crash if the resulting cancel object was actually used.</p>", "text": "Fix libpq's PQcancelCreate() function for the case where the server's address was specified using hostaddr (Sergei Kornilov) § libpq would crash if the resulting cancel object was actually used.", "title": "Fix libpq's PQcancelCreate() function for the case where the server's address was specified using hostaddr", "commits": ["445bd37b1"], "section": "Changes", "category": "bugfix", "source_url": "/docs/release/17.6/#RELEASE-17-6-CHANGES", "source_hash": "8a6ee1491996092be3fb44202ac19a1721373e87c5a9fe370174a459baecf26e", "section_path": ["Changes"], "commit_groups": [["445bd37b1", "5d0800000", "fe05430ac"]], "identity_text": "Fix libpq's PQcancelCreate() function for the case where the server's address was specified using hostaddr (Sergei Kornilov) libpq would crash if the resulting cancel object was actually used.", "commit_aliases": ["445bd37b1", "5d0800000", "fe05430ac"], "source_commits": ["445bd37b1"], "source_entry_id": "17.6/changes/041", "db_id": "7b91a8dece2baae0dcc16ddf111fa692", "patch_ids": ["fc0f1468782ebfbacca855f120f79c0b"], "statement_hash": "a68e3732ff29930c5b3829d1a5d17f9161b312a089661f294d04f56a68fb6243", "relations": [], "version": "17.6", "category_label": "Bug fixes", "also_in": [], "variants": [], "related_changes": []}, {"id": "17.6-419aac3386b26d61", "cves": [], "html": "<p>Fix <span>libpq</span>'s <code>PQport()</code> function to never return NULL unless the passed connection is NULL (Daniele Varrazzo) <a href=\"https://postgr.es/c/3f10d2b66\">§</a></p>\n<p>This is the documented behavior, but recent <span>libpq</span> versions would return NULL in some cases where the user had not provided a port specification. Revert to our historical behavior of returning an empty string in such cases. (v18 and later will return the compiled-in default port number, typically <code>\"5432\"</code>, instead.)</p>", "text": "Fix libpq's PQport() function to never return NULL unless the passed connection is NULL (Daniele Varrazzo) § This is the documented behavior, but recent libpq versions would return NULL in some cases where the user had not provided a port specification. Revert to our historical behavior of returning an empty string in such cases. (v18 and later will return the compiled-in default port number, typically \"5432\", instead.)", "title": "Fix libpq's PQport() function to never return NULL unless the passed connection is NULL", "commits": ["3f10d2b66"], "section": "Changes", "category": "bugfix", "source_url": "/docs/release/17.6/#RELEASE-17-6-CHANGES", "source_hash": "d828afbe1f63fab86d297df08af03a1b52fc8b61b52545c54765a163a6a289ad", "section_path": ["Changes"], "commit_groups": [["009c20a3d", "3f10d2b66", "9dcd1aa81", "a372a64db", "bfa9b25c9", "d5cba7746", "daf9bdc47"]], "identity_text": "Fix libpq's PQport() function to never return NULL unless the passed connection is NULL (Daniele Varrazzo) This is the documented behavior, but recent libpq versions would return NULL in some cases where the user had not provided a port specification. Revert to our historical behavior of returning an empty string in such cases. (v18 and later will return the compiled-in default port number, typically \"5432\", instead.)", "commit_aliases": ["009c20a3d", "3f10d2b66", "9dcd1aa81", "a372a64db", "bfa9b25c9", "d5cba7746", "daf9bdc47"], "source_commits": ["3f10d2b66"], "source_entry_id": "17.6/changes/042", "db_id": "6f32c58493e912039a79042f79270c28", "patch_ids": ["22b7cc963ab9c3434a3f92af3e7e491f"], "statement_hash": "0715dd514d4cf2f473cfc9541c1a0e89464f88a6e4341036779b8eb7a1a58bdf", "relations": [{"rule": 2, "type": "equivalent", "target": "09fb37e7186e091d0fdbe899fe9c8b47", "evidence": {"same_day": true, "patch_ids": ["22b7cc963ab9c3434a3f92af3e7e491f"], "statement_hash": "0715dd514d4cf2f473cfc9541c1a0e89464f88a6e4341036779b8eb7a1a58bdf"}}, {"rule": 2, "type": "equivalent", "target": "3f7263fdfe881eab78910c67c7c33995", "evidence": {"same_day": true, "patch_ids": ["22b7cc963ab9c3434a3f92af3e7e491f"], "statement_hash": "0715dd514d4cf2f473cfc9541c1a0e89464f88a6e4341036779b8eb7a1a58bdf"}}, {"rule": 2, "type": "equivalent", "target": "a50fd7ae7b936d1943609dbcdfcb60fb", "evidence": {"same_day": true, "patch_ids": ["22b7cc963ab9c3434a3f92af3e7e491f"], "statement_hash": "0715dd514d4cf2f473cfc9541c1a0e89464f88a6e4341036779b8eb7a1a58bdf"}}, {"rule": 2, "type": "equivalent", "target": "dc7a48a895783ea661b076f328b1fe70", "evidence": {"same_day": true, "patch_ids": ["22b7cc963ab9c3434a3f92af3e7e491f"], "statement_hash": "0715dd514d4cf2f473cfc9541c1a0e89464f88a6e4341036779b8eb7a1a58bdf"}}], "version": "17.6", "category_label": "Bug fixes", "also_in": [], "variants": [], "related_changes": [{"db_id": "dc7a48a895783ea661b076f328b1fe70", "kind": "equivalent", "version": "16.10", "label": "16.10", "title": "Fix libpq's PQport() function to never return NULL unless the passed connection is NULL", "evidence": {"same_day": true, "patch_ids": ["22b7cc963ab9c3434a3f92af3e7e491f"], "statement_hash": "0715dd514d4cf2f473cfc9541c1a0e89464f88a6e4341036779b8eb7a1a58bdf"}, "url": "/docs/compare/?release=16.10#16.10-bd3afc47d44bfb52", "source_url": "/docs/release/16.10/#RELEASE-16-10-CHANGES"}, {"db_id": "a50fd7ae7b936d1943609dbcdfcb60fb", "kind": "equivalent", "version": "15.14", "label": "15.14", "title": "Fix libpq's PQport() function to never return NULL unless the passed connection is NULL", "evidence": {"same_day": true, "patch_ids": ["22b7cc963ab9c3434a3f92af3e7e491f"], "statement_hash": "0715dd514d4cf2f473cfc9541c1a0e89464f88a6e4341036779b8eb7a1a58bdf"}, "url": "/docs/compare/?release=15.14#15.14-c409c31a7a604dde", "source_url": "/docs/release/15.14/#id-1.11.6.11.5"}, {"db_id": "3f7263fdfe881eab78910c67c7c33995", "kind": "equivalent", "version": "14.19", "label": "14.19", "title": "Fix libpq's PQport() function to never return NULL unless the passed connection is NULL", "evidence": {"same_day": true, "patch_ids": ["22b7cc963ab9c3434a3f92af3e7e491f"], "statement_hash": "0715dd514d4cf2f473cfc9541c1a0e89464f88a6e4341036779b8eb7a1a58bdf"}, "url": "/docs/compare/?release=14.19#14.19-00c22d6bb1c18fb5", "source_url": "/docs/release/14.19/#id-1.11.6.11.5"}, {"db_id": "09fb37e7186e091d0fdbe899fe9c8b47", "kind": "equivalent", "version": "13.22", "label": "13.22", "title": "Fix libpq's PQport() function to never return NULL unless the passed connection is NULL", "evidence": {"same_day": true, "patch_ids": ["22b7cc963ab9c3434a3f92af3e7e491f"], "statement_hash": "0715dd514d4cf2f473cfc9541c1a0e89464f88a6e4341036779b8eb7a1a58bdf"}, "url": "/docs/compare/?release=13.22#13.22-90c67ed3f983f716", "source_url": "/docs/release/13.22/#id-1.11.6.7.6"}]}, {"id": "17.6-54c912da6b719fe3", "cves": [], "html": "<p>Avoid failure when GSSAPI authentication requires packets larger than 16kB (Jacob Champion, Tom Lane) <a href=\"https://postgr.es/c/8b0aa7a6b\">§</a></p>\n<p>Larger authentication packets are needed for Active Directory users who belong to many AD groups. This limitation manifested in connection failures with unintelligible error messages, typically <span>“<span>GSSAPI context establishment error: The routine must be called again to complete its function: Unknown error</span>”</span>.</p>", "text": "Avoid failure when GSSAPI authentication requires packets larger than 16kB (Jacob Champion, Tom Lane) § Larger authentication packets are needed for Active Directory users who belong to many AD groups. This limitation manifested in connection failures with unintelligible error messages, typically “GSSAPI context establishment error: The routine must be called again to complete its function: Unknown error”.", "title": "Avoid failure when GSSAPI authentication requires packets larger than 16kB", "commits": ["8b0aa7a6b"], "section": "Changes", "category": "improvement", "source_url": "/docs/release/17.6/#RELEASE-17-6-CHANGES", "source_hash": "2ba39a15055d73d70f902a610651407ef8a7cc089261ea6daa1ea1a71d5803f4", "section_path": ["Changes"], "commit_groups": [["39b1d1907", "8b0aa7a6b", "a7da7914c", "c81cdffa1", "ca70ee6ed", "d98cefe11"]], "identity_text": "Avoid failure when GSSAPI authentication requires packets larger than 16kB (Jacob Champion, Tom Lane) Larger authentication packets are needed for Active Directory users who belong to many AD groups. This limitation manifested in connection failures with unintelligible error messages, typically GSSAPI context establishment error: The routine must be called again to complete its function: Unknown error.", "commit_aliases": ["39b1d1907", "8b0aa7a6b", "a7da7914c", "c81cdffa1", "ca70ee6ed", "d98cefe11"], "source_commits": ["8b0aa7a6b"], "source_entry_id": "17.6/changes/043", "db_id": "b27004bcb4025cb1b78f1c6da56dfa0b", "patch_ids": ["9c20b9b4b2c08812604c728f7be2d15b"], "statement_hash": "8ad10d845dd2a1af9acb44e8c0342e6dc940ebc316bfde0b3a2aa80cf2cb7cb8", "relations": [{"rule": 2, "type": "equivalent", "target": "7300bf02d776a30a653f81d4f6a5a388", "evidence": {"same_day": true, "patch_ids": ["9c20b9b4b2c08812604c728f7be2d15b"], "statement_hash": "8ad10d845dd2a1af9acb44e8c0342e6dc940ebc316bfde0b3a2aa80cf2cb7cb8"}}, {"rule": 2, "type": "equivalent", "target": "7820aee942c64c2a8567cfaf5be7fa18", "evidence": {"same_day": true, "patch_ids": ["9c20b9b4b2c08812604c728f7be2d15b"], "statement_hash": "8ad10d845dd2a1af9acb44e8c0342e6dc940ebc316bfde0b3a2aa80cf2cb7cb8"}}, {"rule": 2, "type": "equivalent", "target": "9e00b81c508cc2a7f6f923228653c3a4", "evidence": {"same_day": true, "patch_ids": ["9c20b9b4b2c08812604c728f7be2d15b"], "statement_hash": "8ad10d845dd2a1af9acb44e8c0342e6dc940ebc316bfde0b3a2aa80cf2cb7cb8"}}, {"rule": 2, "type": "equivalent", "target": "c82e55570034a30cbd865d2af345ca08", "evidence": {"same_day": true, "patch_ids": ["9c20b9b4b2c08812604c728f7be2d15b"], "statement_hash": "8ad10d845dd2a1af9acb44e8c0342e6dc940ebc316bfde0b3a2aa80cf2cb7cb8"}}], "version": "17.6", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": [{"db_id": "9e00b81c508cc2a7f6f923228653c3a4", "kind": "equivalent", "version": "16.10", "label": "16.10", "title": "Avoid failure when GSSAPI authentication requires packets larger than 16kB", "evidence": {"same_day": true, "patch_ids": ["9c20b9b4b2c08812604c728f7be2d15b"], "statement_hash": "8ad10d845dd2a1af9acb44e8c0342e6dc940ebc316bfde0b3a2aa80cf2cb7cb8"}, "url": "/docs/compare/?release=16.10#16.10-59e146985a6631e8", "source_url": "/docs/release/16.10/#RELEASE-16-10-CHANGES"}, {"db_id": "7300bf02d776a30a653f81d4f6a5a388", "kind": "equivalent", "version": "15.14", "label": "15.14", "title": "Avoid failure when GSSAPI authentication requires packets larger than 16kB", "evidence": {"same_day": true, "patch_ids": ["9c20b9b4b2c08812604c728f7be2d15b"], "statement_hash": "8ad10d845dd2a1af9acb44e8c0342e6dc940ebc316bfde0b3a2aa80cf2cb7cb8"}, "url": "/docs/compare/?release=15.14#15.14-62a49889f543d711", "source_url": "/docs/release/15.14/#id-1.11.6.11.5"}, {"db_id": "c82e55570034a30cbd865d2af345ca08", "kind": "equivalent", "version": "14.19", "label": "14.19", "title": "Avoid failure when GSSAPI authentication requires packets larger than 16kB", "evidence": {"same_day": true, "patch_ids": ["9c20b9b4b2c08812604c728f7be2d15b"], "statement_hash": "8ad10d845dd2a1af9acb44e8c0342e6dc940ebc316bfde0b3a2aa80cf2cb7cb8"}, "url": "/docs/compare/?release=14.19#14.19-0a408b548f987092", "source_url": "/docs/release/14.19/#id-1.11.6.11.5"}, {"db_id": "7820aee942c64c2a8567cfaf5be7fa18", "kind": "equivalent", "version": "13.22", "label": "13.22", "title": "Avoid failure when GSSAPI authentication requires packets larger than 16kB", "evidence": {"same_day": true, "patch_ids": ["9c20b9b4b2c08812604c728f7be2d15b"], "statement_hash": "8ad10d845dd2a1af9acb44e8c0342e6dc940ebc316bfde0b3a2aa80cf2cb7cb8"}, "url": "/docs/compare/?release=13.22#13.22-1886d08a644dc5f5", "source_url": "/docs/release/13.22/#id-1.11.6.7.6"}]}, {"id": "17.6-9af21c705af4d5f8", "cves": [], "html": "<p>Fix timing-dependent failures in SSL and GSSAPI data transmission (Tom Lane) <a href=\"https://postgr.es/c/30e0d9ee9\">§</a></p>\n<p>When using SSL or GSSAPI encryption in non-blocking mode, <span>libpq</span> sometimes failed with <span>“<span>SSL error: bad length</span>”</span> or <span>“<span>GSSAPI caller failed to retransmit all data needing to be retried</span>”</span>.</p>", "text": "Fix timing-dependent failures in SSL and GSSAPI data transmission (Tom Lane) § When using SSL or GSSAPI encryption in non-blocking mode, libpq sometimes failed with “SSL error: bad length” or “GSSAPI caller failed to retransmit all data needing to be retried”.", "title": "Fix timing-dependent failures in SSL and GSSAPI data transmission", "commits": ["30e0d9ee9"], "section": "Changes", "category": "bugfix", "source_url": "/docs/release/17.6/#RELEASE-17-6-CHANGES", "source_hash": "625536b177822787ff48a1f7a3bcbcc6bb9cb135bdc45225b72a18e6ca27d32c", "section_path": ["Changes"], "commit_groups": [["0703c9385", "137935bd1", "30e0d9ee9", "3f37400cf", "6a4d93eda", "f09fea386"]], "identity_text": "Fix timing-dependent failures in SSL and GSSAPI data transmission (Tom Lane) When using SSL or GSSAPI encryption in non-blocking mode, libpq sometimes failed with SSL error: bad length or GSSAPI caller failed to retransmit all data needing to be retried.", "commit_aliases": ["0703c9385", "137935bd1", "30e0d9ee9", "3f37400cf", "6a4d93eda", "f09fea386"], "source_commits": ["30e0d9ee9"], "source_entry_id": "17.6/changes/044", "db_id": "d010cc5adac641dffac3aed8ba5f7474", "patch_ids": ["e183c726a0fffa9d700ae85c61737795"], "statement_hash": "015f735f627c918db73975bc3adfcd018dac06b111e2255f97539dcc28ac660e", "relations": [{"rule": 2, "type": "equivalent", "target": "04840f3ea21539bdfa095da3739fcb25", "evidence": {"same_day": true, "patch_ids": ["e183c726a0fffa9d700ae85c61737795"], "statement_hash": "015f735f627c918db73975bc3adfcd018dac06b111e2255f97539dcc28ac660e"}}, {"rule": 2, "type": "equivalent", "target": "1d6ac0ef9bac20774b2c00cab64bd3be", "evidence": {"same_day": true, "patch_ids": ["e183c726a0fffa9d700ae85c61737795"], "statement_hash": "015f735f627c918db73975bc3adfcd018dac06b111e2255f97539dcc28ac660e"}}, {"rule": 2, "type": "equivalent", "target": "de0fc953d8bee77e15871a1af804690e", "evidence": {"same_day": true, "patch_ids": ["e183c726a0fffa9d700ae85c61737795"], "statement_hash": "015f735f627c918db73975bc3adfcd018dac06b111e2255f97539dcc28ac660e"}}, {"rule": 2, "type": "equivalent", "target": "e364d96f10953f914f581ed71ca42059", "evidence": {"same_day": true, "patch_ids": ["e183c726a0fffa9d700ae85c61737795"], "statement_hash": "015f735f627c918db73975bc3adfcd018dac06b111e2255f97539dcc28ac660e"}}], "version": "17.6", "category_label": "Bug fixes", "also_in": [], "variants": [], "related_changes": [{"db_id": "04840f3ea21539bdfa095da3739fcb25", "kind": "equivalent", "version": "16.10", "label": "16.10", "title": "Fix timing-dependent failures in SSL and GSSAPI data transmission", "evidence": {"same_day": true, "patch_ids": ["e183c726a0fffa9d700ae85c61737795"], "statement_hash": "015f735f627c918db73975bc3adfcd018dac06b111e2255f97539dcc28ac660e"}, "url": "/docs/compare/?release=16.10#16.10-31d57bc1f523c635", "source_url": "/docs/release/16.10/#RELEASE-16-10-CHANGES"}, {"db_id": "de0fc953d8bee77e15871a1af804690e", "kind": "equivalent", "version": "15.14", "label": "15.14", "title": "Fix timing-dependent failures in SSL and GSSAPI data transmission", "evidence": {"same_day": true, "patch_ids": ["e183c726a0fffa9d700ae85c61737795"], "statement_hash": "015f735f627c918db73975bc3adfcd018dac06b111e2255f97539dcc28ac660e"}, "url": "/docs/compare/?release=15.14#15.14-0126e6f995179ede", "source_url": "/docs/release/15.14/#id-1.11.6.11.5"}, {"db_id": "e364d96f10953f914f581ed71ca42059", "kind": "equivalent", "version": "14.19", "label": "14.19", "title": "Fix timing-dependent failures in SSL and GSSAPI data transmission", "evidence": {"same_day": true, "patch_ids": ["e183c726a0fffa9d700ae85c61737795"], "statement_hash": "015f735f627c918db73975bc3adfcd018dac06b111e2255f97539dcc28ac660e"}, "url": "/docs/compare/?release=14.19#14.19-68baa361c050931b", "source_url": "/docs/release/14.19/#id-1.11.6.11.5"}, {"db_id": "1d6ac0ef9bac20774b2c00cab64bd3be", "kind": "equivalent", "version": "13.22", "label": "13.22", "title": "Fix timing-dependent failures in SSL and GSSAPI data transmission", "evidence": {"same_day": true, "patch_ids": ["e183c726a0fffa9d700ae85c61737795"], "statement_hash": "015f735f627c918db73975bc3adfcd018dac06b111e2255f97539dcc28ac660e"}, "url": "/docs/compare/?release=13.22#13.22-f6bbf052847a01b1", "source_url": "/docs/release/13.22/#id-1.11.6.7.6"}]}, {"id": "17.6-ace06bba210ed921", "cves": [], "html": "<p>Avoid null-pointer dereference during connection lookup in <span>ecpg</span> applications (Aleksander Alekseev) <a href=\"https://postgr.es/c/2805e1c1e\">§</a></p>\n<p>The case could occur only if the application has some connections that are named and some that are not.</p>", "text": "Avoid null-pointer dereference during connection lookup in ecpg applications (Aleksander Alekseev) § The case could occur only if the application has some connections that are named and some that are not.", "title": "Avoid null-pointer dereference during connection lookup in ecpg applications", "commits": ["2805e1c1e"], "section": "Changes", "category": "improvement", "source_url": "/docs/release/17.6/#RELEASE-17-6-CHANGES", "source_hash": "98a9f78dd2a5e62c1bcf13ab69bc7cd6b0d716704f82bea4d4baa00e581dffca", "section_path": ["Changes"], "commit_groups": [["0123922f8", "0ded7615d", "1b8bbee05", "2805e1c1e", "313d3102f", "408fe659a", "c934d5673"]], "identity_text": "Avoid null-pointer dereference during connection lookup in ecpg applications (Aleksander Alekseev) The case could occur only if the application has some connections that are named and some that are not.", "commit_aliases": ["0123922f8", "0ded7615d", "1b8bbee05", "2805e1c1e", "313d3102f", "408fe659a", "c934d5673"], "source_commits": ["2805e1c1e"], "source_entry_id": "17.6/changes/045", "db_id": "0e5689dc80c41e5a07f881c3214651be", "patch_ids": ["7e30860afd34973682c127264cf991de"], "statement_hash": "477d5885e1c686592690701f5f4bac9c9e9a9feca03c0681f6d99864acb0b757", "relations": [{"rule": 2, "type": "equivalent", "target": "74f7fa790d8f233acb9e91bb461d382d", "evidence": {"same_day": true, "patch_ids": ["7e30860afd34973682c127264cf991de"], "statement_hash": "477d5885e1c686592690701f5f4bac9c9e9a9feca03c0681f6d99864acb0b757"}}, {"rule": 2, "type": "equivalent", "target": "b1e3dd4bb95eeb22b39aa772f9b7733f", "evidence": {"same_day": true, "patch_ids": ["7e30860afd34973682c127264cf991de"], "statement_hash": "477d5885e1c686592690701f5f4bac9c9e9a9feca03c0681f6d99864acb0b757"}}, {"rule": 2, "type": "equivalent", "target": "bd611f9600cb9924f8bce02d7d4c0977", "evidence": {"same_day": true, "patch_ids": ["7e30860afd34973682c127264cf991de"], "statement_hash": "477d5885e1c686592690701f5f4bac9c9e9a9feca03c0681f6d99864acb0b757"}}, {"rule": 2, "type": "equivalent", "target": "ee9f5bbf431109d52dafe780173275ce", "evidence": {"same_day": true, "patch_ids": ["7e30860afd34973682c127264cf991de"], "statement_hash": "477d5885e1c686592690701f5f4bac9c9e9a9feca03c0681f6d99864acb0b757"}}], "version": "17.6", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": [{"db_id": "bd611f9600cb9924f8bce02d7d4c0977", "kind": "equivalent", "version": "16.10", "label": "16.10", "title": "Avoid null-pointer dereference during connection lookup in ecpg applications", "evidence": {"same_day": true, "patch_ids": ["7e30860afd34973682c127264cf991de"], "statement_hash": "477d5885e1c686592690701f5f4bac9c9e9a9feca03c0681f6d99864acb0b757"}, "url": "/docs/compare/?release=16.10#16.10-436c939fcf191f10", "source_url": "/docs/release/16.10/#RELEASE-16-10-CHANGES"}, {"db_id": "ee9f5bbf431109d52dafe780173275ce", "kind": "equivalent", "version": "15.14", "label": "15.14", "title": "Avoid null-pointer dereference during connection lookup in ecpg applications", "evidence": {"same_day": true, "patch_ids": ["7e30860afd34973682c127264cf991de"], "statement_hash": "477d5885e1c686592690701f5f4bac9c9e9a9feca03c0681f6d99864acb0b757"}, "url": "/docs/compare/?release=15.14#15.14-3f9dc3f7e6fef39f", "source_url": "/docs/release/15.14/#id-1.11.6.11.5"}, {"db_id": "74f7fa790d8f233acb9e91bb461d382d", "kind": "equivalent", "version": "14.19", "label": "14.19", "title": "Avoid null-pointer dereference during connection lookup in ecpg applications", "evidence": {"same_day": true, "patch_ids": ["7e30860afd34973682c127264cf991de"], "statement_hash": "477d5885e1c686592690701f5f4bac9c9e9a9feca03c0681f6d99864acb0b757"}, "url": "/docs/compare/?release=14.19#14.19-3ad342512bbab551", "source_url": "/docs/release/14.19/#id-1.11.6.11.5"}, {"db_id": "b1e3dd4bb95eeb22b39aa772f9b7733f", "kind": "equivalent", "version": "13.22", "label": "13.22", "title": "Avoid null-pointer dereference during connection lookup in ecpg applications", "evidence": {"same_day": true, "patch_ids": ["7e30860afd34973682c127264cf991de"], "statement_hash": "477d5885e1c686592690701f5f4bac9c9e9a9feca03c0681f6d99864acb0b757"}, "url": "/docs/compare/?release=13.22#13.22-9a92c3e1fe452c94", "source_url": "/docs/release/13.22/#id-1.11.6.7.6"}]}, {"id": "17.6-d2095553b4c88b05", "cves": [], "html": "<p>Improve <span>psql</span>'s tab completion for <code>COPY</code> and <code>\\copy</code> options (Atsushi Torikoshi) <a href=\"https://postgr.es/c/c1c6169eb\">§</a></p>\n<p>The same completions were offered for both <code>COPY FROM</code> and <code>COPY TO</code>, although some options are only valid for one case or the other. Distinguish these cases to provide more accurate suggestions.</p>", "text": "Improve psql's tab completion for COPY and \\copy options (Atsushi Torikoshi) § The same completions were offered for both COPY FROM and COPY TO, although some options are only valid for one case or the other. Distinguish these cases to provide more accurate suggestions.", "title": "Improve psql's tab completion for COPY and \\copy options", "commits": ["c1c6169eb"], "section": "Changes", "category": "improvement", "source_url": "/docs/release/17.6/#RELEASE-17-6-CHANGES", "source_hash": "23d54157e49410afd8469252abc7f41b4e2344e6195cf9ff35a9aca4ebe9e6b5", "section_path": ["Changes"], "commit_groups": [["0514616f0", "765a4c94c", "c1c6169eb", "d69836b13", "e3584e457", "f5a987c0e"]], "identity_text": "Improve psql's tab completion for COPY and \\copy options (Atsushi Torikoshi) The same completions were offered for both COPY FROM and COPY TO, although some options are only valid for one case or the other. Distinguish these cases to provide more accurate suggestions.", "commit_aliases": ["0514616f0", "765a4c94c", "c1c6169eb", "d69836b13", "e3584e457", "f5a987c0e"], "source_commits": ["c1c6169eb"], "source_entry_id": "17.6/changes/046", "db_id": "7f7999ebdb668d1d8e4b03d58897bb15", "patch_ids": ["8e0ef881f752f528d98e71b40408fb14"], "statement_hash": "32ecb3026c9c3225d992db692447d7310288c8dce5381a1c67d309759f6d3491", "relations": [{"rule": 2, "type": "equivalent", "target": "a9220fc9720c3d2bde349e028b00e445", "evidence": {"same_day": true, "patch_ids": ["8e0ef881f752f528d98e71b40408fb14"], "statement_hash": "32ecb3026c9c3225d992db692447d7310288c8dce5381a1c67d309759f6d3491"}}, {"rule": 2, "type": "equivalent", "target": "c1183185f1f7680372020bbb8a62b5c0", "evidence": {"same_day": true, "patch_ids": ["8e0ef881f752f528d98e71b40408fb14"], "statement_hash": "32ecb3026c9c3225d992db692447d7310288c8dce5381a1c67d309759f6d3491"}}, {"rule": 2, "type": "equivalent", "target": "f6cd3881521b7a2dc6d2b9f19526f25d", "evidence": {"same_day": true, "patch_ids": ["8e0ef881f752f528d98e71b40408fb14"], "statement_hash": "32ecb3026c9c3225d992db692447d7310288c8dce5381a1c67d309759f6d3491"}}], "version": "17.6", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": [{"db_id": "c1183185f1f7680372020bbb8a62b5c0", "kind": "equivalent", "version": "16.10", "label": "16.10", "title": "Improve psql's tab completion for COPY and \\copy options", "evidence": {"same_day": true, "patch_ids": ["8e0ef881f752f528d98e71b40408fb14"], "statement_hash": "32ecb3026c9c3225d992db692447d7310288c8dce5381a1c67d309759f6d3491"}, "url": "/docs/compare/?release=16.10#16.10-b91f3058dca77df4", "source_url": "/docs/release/16.10/#RELEASE-16-10-CHANGES"}, {"db_id": "a9220fc9720c3d2bde349e028b00e445", "kind": "equivalent", "version": "15.14", "label": "15.14", "title": "Improve psql's tab completion for COPY and \\copy options", "evidence": {"same_day": true, "patch_ids": ["8e0ef881f752f528d98e71b40408fb14"], "statement_hash": "32ecb3026c9c3225d992db692447d7310288c8dce5381a1c67d309759f6d3491"}, "url": "/docs/compare/?release=15.14#15.14-6f6c639f5c442d0a", "source_url": "/docs/release/15.14/#id-1.11.6.11.5"}, {"db_id": "f6cd3881521b7a2dc6d2b9f19526f25d", "kind": "equivalent", "version": "14.19", "label": "14.19", "title": "Improve psql's tab completion for COPY and \\copy options", "evidence": {"same_day": true, "patch_ids": ["8e0ef881f752f528d98e71b40408fb14"], "statement_hash": "32ecb3026c9c3225d992db692447d7310288c8dce5381a1c67d309759f6d3491"}, "url": "/docs/compare/?release=14.19#14.19-145c8c4131c28fc2", "source_url": "/docs/release/14.19/#id-1.11.6.11.5"}]}, {"id": "17.6-64a8af78ed8ade06", "cves": [], "html": "<p>Avoid assertion failure in <span>pgbench</span> when multiple pipeline sync messages are received (Fujii Masao) <a href=\"https://postgr.es/c/398e07162\">§</a></p>", "text": "Avoid assertion failure in pgbench when multiple pipeline sync messages are received (Fujii Masao) §", "title": "Avoid assertion failure in pgbench when multiple pipeline sync messages are received", "commits": ["398e07162"], "section": "Changes", "category": "improvement", "source_url": "/docs/release/17.6/#RELEASE-17-6-CHANGES", "source_hash": "6ac28887e8101842dee999a0c6fc8a51e68cfca1f92dd98d258d8f049b35c06b", "section_path": ["Changes"], "commit_groups": [["12efa4897", "1d3ded521", "398e07162", "6914a330f", "fee46ab4f"]], "identity_text": "Avoid assertion failure in pgbench when multiple pipeline sync messages are received (Fujii Masao)", "commit_aliases": ["12efa4897", "1d3ded521", "398e07162", "6914a330f", "fee46ab4f"], "source_commits": ["398e07162"], "source_entry_id": "17.6/changes/047", "db_id": "f4a1b1ed53f7b885e9f2b2becba2ab00", "patch_ids": ["19b639fe4d33b8bce8bda383e04a89cd"], "statement_hash": "36e5b7abb1f2b115dae169d13878250bea7858f93407d63d17e44c97a41c4bec", "relations": [{"rule": 2, "type": "equivalent", "target": "7d453af64b5902956ceb911122e2a92d", "evidence": {"same_day": true, "patch_ids": ["19b639fe4d33b8bce8bda383e04a89cd"], "statement_hash": "36e5b7abb1f2b115dae169d13878250bea7858f93407d63d17e44c97a41c4bec"}}, {"rule": 2, "type": "equivalent", "target": "896d621c2d0b8712989fae86e6d66ce3", "evidence": {"same_day": true, "patch_ids": ["19b639fe4d33b8bce8bda383e04a89cd"], "statement_hash": "36e5b7abb1f2b115dae169d13878250bea7858f93407d63d17e44c97a41c4bec"}}], "version": "17.6", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": [{"db_id": "896d621c2d0b8712989fae86e6d66ce3", "kind": "equivalent", "version": "16.10", "label": "16.10", "title": "Avoid assertion failure in pgbench when multiple pipeline sync messages are received", "evidence": {"same_day": true, "patch_ids": ["19b639fe4d33b8bce8bda383e04a89cd"], "statement_hash": "36e5b7abb1f2b115dae169d13878250bea7858f93407d63d17e44c97a41c4bec"}, "url": "/docs/compare/?release=16.10#16.10-498bb3fac77791ea", "source_url": "/docs/release/16.10/#RELEASE-16-10-CHANGES"}, {"db_id": "7d453af64b5902956ceb911122e2a92d", "kind": "equivalent", "version": "15.14", "label": "15.14", "title": "Avoid assertion failure in pgbench when multiple pipeline sync messages are received", "evidence": {"same_day": true, "patch_ids": ["19b639fe4d33b8bce8bda383e04a89cd"], "statement_hash": "36e5b7abb1f2b115dae169d13878250bea7858f93407d63d17e44c97a41c4bec"}, "url": "/docs/compare/?release=15.14#15.14-f6956659a53d0498", "source_url": "/docs/release/15.14/#id-1.11.6.11.5"}]}, {"id": "17.6-d81f7b71f062e985", "cves": [], "html": "<p>Fix duplicate transaction replay when initializing a subscription with <span>pg_createsubscriber</span> (Shlok Kyal) <a href=\"https://postgr.es/c/967309116\">§</a></p>\n<p>It was possible for the last transaction processed during subscriber recovery to be sent again once normal replication begins.</p>", "text": "Fix duplicate transaction replay when initializing a subscription with pg_createsubscriber (Shlok Kyal) § It was possible for the last transaction processed during subscriber recovery to be sent again once normal replication begins.", "title": "Fix duplicate transaction replay when initializing a subscription with pg_createsubscriber", "commits": ["967309116"], "section": "Changes", "category": "bugfix", "source_url": "/docs/release/17.6/#RELEASE-17-6-CHANGES", "source_hash": "223e6b5c70f2c316551ad4b3a533f004850df365ed5162b4c1a6d1a174c258fc", "section_path": ["Changes"], "commit_groups": [["33f74b806", "967309116", "e1c365483"]], "identity_text": "Fix duplicate transaction replay when initializing a subscription with pg_createsubscriber (Shlok Kyal) It was possible for the last transaction processed during subscriber recovery to be sent again once normal replication begins.", "commit_aliases": ["33f74b806", "967309116", "e1c365483"], "source_commits": ["967309116"], "source_entry_id": "17.6/changes/048", "db_id": "4ecc98856f978ca7afcf616cfd33ed4c", "patch_ids": ["35a97e08bd290eaeda95ef9ba74bbde6"], "statement_hash": "3288068a5b75d54fff9f5cde68c2ff73a954ee0a918639362f15febfd0f9a2f3", "relations": [], "version": "17.6", "category_label": "Bug fixes", "also_in": [], "variants": [], "related_changes": []}, {"id": "17.6-93bdfaf60686080b", "cves": [], "html": "<p>Ensure that <span>pg_dump</span> dumps comments on not-null constraints on domain types (Jian He, Álvaro Herrera) <a href=\"https://postgr.es/c/6b755d8d7\">§</a></p>", "text": "Ensure that pg_dump dumps comments on not-null constraints on domain types (Jian He, Álvaro Herrera) §", "title": "Ensure that pg_dump dumps comments on not-null constraints on domain types", "commits": ["6b755d8d7"], "section": "Changes", "category": "improvement", "source_url": "/docs/release/17.6/#RELEASE-17-6-CHANGES", "source_hash": "b2590217e541c7a6969079c6d20bc06b53f84e9a483bde14b10be286828f342f", "section_path": ["Changes"], "commit_groups": [["6b755d8d7", "da71717f0", "f9545e95c"]], "identity_text": "Ensure that pg_dump dumps comments on not-null constraints on domain types (Jian He, Álvaro Herrera)", "commit_aliases": ["6b755d8d7", "da71717f0", "f9545e95c"], "source_commits": ["6b755d8d7"], "source_entry_id": "17.6/changes/049", "db_id": "2eb7e6f527e401959540eaab98a75bcf", "patch_ids": ["e6dcaf8dc01d813a2dd83651eea57016"], "statement_hash": "6d8d95ec937e9dccc73c3316367d2c354b46a305548164cf650a7442e5a926e3", "relations": [], "version": "17.6", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": []}, {"id": "17.6-3365ac2278a8bf4f", "cves": [], "html": "<p>Ensure that <span>pg_dump</span> dumps comments on domain constraints in a valid order (Jian He) <a href=\"https://postgr.es/c/d07bc7c2b\">§</a></p>\n<p>In some cases the comment command could appear before creation of the constraint.</p>", "text": "Ensure that pg_dump dumps comments on domain constraints in a valid order (Jian He) § In some cases the comment command could appear before creation of the constraint.", "title": "Ensure that pg_dump dumps comments on domain constraints in a valid order", "commits": ["d07bc7c2b"], "section": "Changes", "category": "improvement", "source_url": "/docs/release/17.6/#RELEASE-17-6-CHANGES", "source_hash": "6b61dc1a9048328b453989660f34e31ca8bc8be5e85d543ed0752fbb79bbb4ce", "section_path": ["Changes"], "commit_groups": [["0858f0f96", "57949cea5", "5a261c135", "cef998ef8", "d07bc7c2b", "dca0e9693", "e04aca1c4"]], "identity_text": "Ensure that pg_dump dumps comments on domain constraints in a valid order (Jian He) In some cases the comment command could appear before creation of the constraint.", "commit_aliases": ["0858f0f96", "57949cea5", "5a261c135", "cef998ef8", "d07bc7c2b", "dca0e9693", "e04aca1c4"], "source_commits": ["d07bc7c2b"], "source_entry_id": "17.6/changes/050", "db_id": "918b4f5a1b00861852fd876427a02929", "patch_ids": ["46c6b17393f1c6e6833de5af16652620"], "statement_hash": "2a4ac5cc4a8c9cf0a63bf26f29d7fe12de34db67682fafcd654babc102897f0d", "relations": [{"rule": 2, "type": "equivalent", "target": "2cf505b63956338ef28e430678d6e683", "evidence": {"same_day": true, "patch_ids": ["46c6b17393f1c6e6833de5af16652620"], "statement_hash": "2a4ac5cc4a8c9cf0a63bf26f29d7fe12de34db67682fafcd654babc102897f0d"}}, {"rule": 2, "type": "equivalent", "target": "47c2db510c8e651ce08cb19eea7a186e", "evidence": {"same_day": true, "patch_ids": ["46c6b17393f1c6e6833de5af16652620"], "statement_hash": "2a4ac5cc4a8c9cf0a63bf26f29d7fe12de34db67682fafcd654babc102897f0d"}}, {"rule": 2, "type": "equivalent", "target": "c9cc63af5a74aeb8bb235d5cfa603f64", "evidence": {"same_day": true, "patch_ids": ["46c6b17393f1c6e6833de5af16652620"], "statement_hash": "2a4ac5cc4a8c9cf0a63bf26f29d7fe12de34db67682fafcd654babc102897f0d"}}, {"rule": 2, "type": "equivalent", "target": "d262bfebe0ddaae5fe67a919cbfc48a1", "evidence": {"same_day": true, "patch_ids": ["46c6b17393f1c6e6833de5af16652620"], "statement_hash": "2a4ac5cc4a8c9cf0a63bf26f29d7fe12de34db67682fafcd654babc102897f0d"}}], "version": "17.6", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": [{"db_id": "d262bfebe0ddaae5fe67a919cbfc48a1", "kind": "equivalent", "version": "16.10", "label": "16.10", "title": "Ensure that pg_dump dumps comments on domain constraints in a valid order", "evidence": {"same_day": true, "patch_ids": ["46c6b17393f1c6e6833de5af16652620"], "statement_hash": "2a4ac5cc4a8c9cf0a63bf26f29d7fe12de34db67682fafcd654babc102897f0d"}, "url": "/docs/compare/?release=16.10#16.10-530b5686b1f7d60d", "source_url": "/docs/release/16.10/#RELEASE-16-10-CHANGES"}, {"db_id": "47c2db510c8e651ce08cb19eea7a186e", "kind": "equivalent", "version": "15.14", "label": "15.14", "title": "Ensure that pg_dump dumps comments on domain constraints in a valid order", "evidence": {"same_day": true, "patch_ids": ["46c6b17393f1c6e6833de5af16652620"], "statement_hash": "2a4ac5cc4a8c9cf0a63bf26f29d7fe12de34db67682fafcd654babc102897f0d"}, "url": "/docs/compare/?release=15.14#15.14-2b9eabf786c88d61", "source_url": "/docs/release/15.14/#id-1.11.6.11.5"}, {"db_id": "c9cc63af5a74aeb8bb235d5cfa603f64", "kind": "equivalent", "version": "14.19", "label": "14.19", "title": "Ensure that pg_dump dumps comments on domain constraints in a valid order", "evidence": {"same_day": true, "patch_ids": ["46c6b17393f1c6e6833de5af16652620"], "statement_hash": "2a4ac5cc4a8c9cf0a63bf26f29d7fe12de34db67682fafcd654babc102897f0d"}, "url": "/docs/compare/?release=14.19#14.19-a4cc3cc741c765b4", "source_url": "/docs/release/14.19/#id-1.11.6.11.5"}, {"db_id": "2cf505b63956338ef28e430678d6e683", "kind": "equivalent", "version": "13.22", "label": "13.22", "title": "Ensure that pg_dump dumps comments on domain constraints in a valid order", "evidence": {"same_day": true, "patch_ids": ["46c6b17393f1c6e6833de5af16652620"], "statement_hash": "2a4ac5cc4a8c9cf0a63bf26f29d7fe12de34db67682fafcd654babc102897f0d"}, "url": "/docs/compare/?release=13.22#13.22-5426c8941d84d497", "source_url": "/docs/release/13.22/#id-1.11.6.7.6"}]}, {"id": "17.6-1f0b02d913052611", "cves": [], "html": "<p>Ensure stable sort ordering in <span>pg_dump</span> for all types of database objects (Noah Misch, Andreas Karlsson) <a href=\"https://postgr.es/c/1ca1889ea\">§</a> <a href=\"https://postgr.es/c/5dd4957b2\">§</a> <a href=\"https://postgr.es/c/28e7252e4\">§</a></p>\n<p><span>pg_dump</span> sorts objects by their logical names before performing dependency-driven reordering. This sort did not account for the full unique key identifying certain object types such as rules and constraints, and thus it could produce dissimilar sort orders for logically-identical databases. That made it difficult to compare databases by diff'ing <span>pg_dump</span> output, so improve the logic to ensure stable sort ordering in all cases.</p>", "text": "Ensure stable sort ordering in pg_dump for all types of database objects (Noah Misch, Andreas Karlsson) § § § pg_dump sorts objects by their logical names before performing dependency-driven reordering. This sort did not account for the full unique key identifying certain object types such as rules and constraints, and thus it could produce dissimilar sort orders for logically-identical databases. That made it difficult to compare databases by diff'ing pg_dump output, so improve the logic to ensure stable sort ordering in all cases.", "title": "Ensure stable sort ordering in pg_dump for all types of database objects", "commits": ["1ca1889ea", "28e7252e4", "5dd4957b2"], "section": "Changes", "category": "improvement", "source_url": "/docs/release/17.6/#RELEASE-17-6-CHANGES", "source_hash": "d59767c8a963d291bccbd892f2cbbd70623a5cf61a94a4e10849c464dce1e278", "section_path": ["Changes"], "commit_groups": [["04bc2c42f", "0ac1581c3", "0decd5e89", "1ca1889ea", "22f126da6", "7ee7c1cd3", "c0ae03384"], ["0d2734eac", "216683296", "28e7252e4", "70637d7ae", "7846f4709", "bc05590c7"], ["25388fb2c", "350e6b8ea", "5dd4957b2", "9affed263", "cc9a62c51", "e99010cbd"]], "identity_text": "Ensure stable sort ordering in pg_dump for all types of database objects (Noah Misch, Andreas Karlsson) pg_dump sorts objects by their logical names before performing dependency-driven reordering. This sort did not account for the full unique key identifying certain object types such as rules and constraints, and thus it could produce dissimilar sort orders for logically-identical databases. That made it difficult to compare databases by diff'ing pg_dump output, so improve the logic to ensure stable sort ordering in all cases.", "commit_aliases": ["04bc2c42f", "0ac1581c3", "0d2734eac", "0decd5e89", "1ca1889ea", "216683296", "22f126da6", "25388fb2c", "28e7252e4", "350e6b8ea", "5dd4957b2", "70637d7ae", "7846f4709", "7ee7c1cd3", "9affed263", "bc05590c7", "c0ae03384", "cc9a62c51", "e99010cbd"], "source_commits": ["1ca1889ea", "28e7252e4", "5dd4957b2"], "source_entry_id": "17.6/changes/051", "db_id": "7605d67109b60c255500436df8b8fce9", "patch_ids": ["0cb338d636cc8af202b3e00a5a841699", "555c1cba69037a053e1cac20aaeebbf8", "a96adf0d7d60c761b0fe9a5eeb034a39"], "statement_hash": "39f6c7b6b815d35578592d0141ec839da55282724680193f69d08e00d4cd8da1", "relations": [{"rule": 2, "type": "equivalent", "target": "050028e9f6796e813ec14808f10cd656", "evidence": {"same_day": true, "patch_ids": ["0cb338d636cc8af202b3e00a5a841699", "555c1cba69037a053e1cac20aaeebbf8", "a96adf0d7d60c761b0fe9a5eeb034a39"], "statement_hash": "39f6c7b6b815d35578592d0141ec839da55282724680193f69d08e00d4cd8da1"}}, {"rule": 2, "type": "equivalent", "target": "4b78cb69db4646ca6f86ad07ac6c2424", "evidence": {"same_day": true, "patch_ids": ["0cb338d636cc8af202b3e00a5a841699", "555c1cba69037a053e1cac20aaeebbf8", "a96adf0d7d60c761b0fe9a5eeb034a39"], "statement_hash": "39f6c7b6b815d35578592d0141ec839da55282724680193f69d08e00d4cd8da1"}}, {"rule": 2, "type": "equivalent", "target": "a419ddfce4c1acfe095cc2e7f9bc4d6f", "evidence": {"same_day": true, "patch_ids": ["0cb338d636cc8af202b3e00a5a841699", "555c1cba69037a053e1cac20aaeebbf8", "a96adf0d7d60c761b0fe9a5eeb034a39"], "statement_hash": "39f6c7b6b815d35578592d0141ec839da55282724680193f69d08e00d4cd8da1"}}, {"rule": 2, "type": "equivalent", "target": "e039fc3240135619b0c62004d8c3d5e6", "evidence": {"same_day": true, "patch_ids": ["0cb338d636cc8af202b3e00a5a841699", "555c1cba69037a053e1cac20aaeebbf8", "a96adf0d7d60c761b0fe9a5eeb034a39"], "statement_hash": "39f6c7b6b815d35578592d0141ec839da55282724680193f69d08e00d4cd8da1"}}], "version": "17.6", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": [{"db_id": "050028e9f6796e813ec14808f10cd656", "kind": "equivalent", "version": "16.10", "label": "16.10", "title": "Ensure stable sort ordering in pg_dump for all types of database objects", "evidence": {"same_day": true, "patch_ids": ["0cb338d636cc8af202b3e00a5a841699", "555c1cba69037a053e1cac20aaeebbf8", "a96adf0d7d60c761b0fe9a5eeb034a39"], "statement_hash": "39f6c7b6b815d35578592d0141ec839da55282724680193f69d08e00d4cd8da1"}, "url": "/docs/compare/?release=16.10#16.10-730ebbe51b68a292", "source_url": "/docs/release/16.10/#RELEASE-16-10-CHANGES"}, {"db_id": "a419ddfce4c1acfe095cc2e7f9bc4d6f", "kind": "equivalent", "version": "15.14", "label": "15.14", "title": "Ensure stable sort ordering in pg_dump for all types of database objects", "evidence": {"same_day": true, "patch_ids": ["0cb338d636cc8af202b3e00a5a841699", "555c1cba69037a053e1cac20aaeebbf8", "a96adf0d7d60c761b0fe9a5eeb034a39"], "statement_hash": "39f6c7b6b815d35578592d0141ec839da55282724680193f69d08e00d4cd8da1"}, "url": "/docs/compare/?release=15.14#15.14-ea1c701894cbd4fc", "source_url": "/docs/release/15.14/#id-1.11.6.11.5"}, {"db_id": "e039fc3240135619b0c62004d8c3d5e6", "kind": "equivalent", "version": "14.19", "label": "14.19", "title": "Ensure stable sort ordering in pg_dump for all types of database objects", "evidence": {"same_day": true, "patch_ids": ["0cb338d636cc8af202b3e00a5a841699", "555c1cba69037a053e1cac20aaeebbf8", "a96adf0d7d60c761b0fe9a5eeb034a39"], "statement_hash": "39f6c7b6b815d35578592d0141ec839da55282724680193f69d08e00d4cd8da1"}, "url": "/docs/compare/?release=14.19#14.19-9af82fe934a32c58", "source_url": "/docs/release/14.19/#id-1.11.6.11.5"}, {"db_id": "4b78cb69db4646ca6f86ad07ac6c2424", "kind": "equivalent", "version": "13.22", "label": "13.22", "title": "Ensure stable sort ordering in pg_dump for all types of database objects", "evidence": {"same_day": true, "patch_ids": ["0cb338d636cc8af202b3e00a5a841699", "555c1cba69037a053e1cac20aaeebbf8", "a96adf0d7d60c761b0fe9a5eeb034a39"], "statement_hash": "39f6c7b6b815d35578592d0141ec839da55282724680193f69d08e00d4cd8da1"}, "url": "/docs/compare/?release=13.22#13.22-f2dae5f6a4978993", "source_url": "/docs/release/13.22/#id-1.11.6.7.6"}]}, {"id": "17.6-db99e0ae016b2e72", "cves": [], "html": "<p>Fix incorrect parsing of object types in <span>pg_dump</span> filter files (Fujii Masao) <a href=\"https://postgr.es/c/7dafc4a41\">§</a></p>\n<p>Treat keywords as extending to the next whitespace, rather than stopping at the first non-alphanumeric character as before. This makes no difference for valid keywords, but it allows some error cases to be recognized properly. For example, <code>table-data</code> will now be rejected, whereas previously it was misinterpreted as <code>table</code>.</p>", "text": "Fix incorrect parsing of object types in pg_dump filter files (Fujii Masao) § Treat keywords as extending to the next whitespace, rather than stopping at the first non-alphanumeric character as before. This makes no difference for valid keywords, but it allows some error cases to be recognized properly. For example, table-data will now be rejected, whereas previously it was misinterpreted as table.", "title": "Fix incorrect parsing of object types in pg_dump filter files", "commits": ["7dafc4a41"], "section": "Changes", "category": "bugfix", "source_url": "/docs/release/17.6/#RELEASE-17-6-CHANGES", "source_hash": "59db3d7de163b76b5d05afbc1b25c3f3bcdf93e29a60dcd96fcf6612df0e52ea", "section_path": ["Changes"], "commit_groups": [["7dafc4a41", "85ccd7e30", "e3764229e"]], "identity_text": "Fix incorrect parsing of object types in pg_dump filter files (Fujii Masao) Treat keywords as extending to the next whitespace, rather than stopping at the first non-alphanumeric character as before. This makes no difference for valid keywords, but it allows some error cases to be recognized properly. For example, table-data will now be rejected, whereas previously it was misinterpreted as table.", "commit_aliases": ["7dafc4a41", "85ccd7e30", "e3764229e"], "source_commits": ["7dafc4a41"], "source_entry_id": "17.6/changes/052", "db_id": "bcbc9347665c19a35306778756f5b7cc", "patch_ids": ["8ce01d073fe25f223ce1111569c049d8"], "statement_hash": "3f17f39005a76c49de1d4c6a89e403edcdc1a8e36b0f53364af05851dacd95bd", "relations": [], "version": "17.6", "category_label": "Bug fixes", "also_in": [], "variants": [], "related_changes": []}, {"id": "17.6-91383c5cb61886ae", "cves": [], "html": "<p><span>pg_restore</span> failed to restore large objects (BLOBs) from directory-format dumps made by <span>pg_dump</span> versions before <span>PostgreSQL</span> v12 (Pavel Stehule) <a href=\"https://postgr.es/c/839802792\">§</a></p>", "text": "pg_restore failed to restore large objects (BLOBs) from directory-format dumps made by pg_dump versions before PostgreSQL v12 (Pavel Stehule) §", "title": "pg_restore failed to restore large objects (BLOBs) from directory-format dumps made by pg_dump versions before PostgreSQL v12", "commits": ["839802792"], "section": "Changes", "category": "improvement", "source_url": "/docs/release/17.6/#RELEASE-17-6-CHANGES", "source_hash": "9d4969a8440ae4eb9c3848b3df9fa4722365045e709b1f70f9e990799346fcd8", "section_path": ["Changes"], "commit_groups": [["166b4f456", "839802792"]], "identity_text": "pg_restore failed to restore large objects (BLOBs) from directory-format dumps made by pg_dump versions before PostgreSQL v12 (Pavel Stehule)", "commit_aliases": ["166b4f456", "839802792"], "source_commits": ["839802792"], "source_entry_id": "17.6/changes/053", "db_id": "a67c500d7c3efadeb1d3062bd6388b2c", "patch_ids": ["11984d9c16b9269b96b3f099208ccfa8"], "statement_hash": "eff30bc7efe82e729f8f88a0c280b596a2052f2b0cfa003d75ae9ceaf7c6a896", "relations": [], "version": "17.6", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": []}, {"id": "17.6-5e9367338f12dda3", "cves": [], "html": "<p>In <span>pg_upgrade</span>, check for inconsistent inherited not-null constraints (Ali Akbar) <a href=\"https://postgr.es/c/b8b2e6052\">§</a> <a href=\"https://postgr.es/c/bcb8d47cd\">§</a> <a href=\"https://postgr.es/c/930e1faec\">§</a></p>\n<p><span>PostgreSQL</span> versions before 18 allow an inherited column not-null constraint to be dropped. However, this results in a schema that cannot be restored, leading to failure in <span>pg_upgrade</span>. Detect such cases during <span>pg_upgrade</span>'s preflight checks to allow users to fix them before initiating the upgrade.</p>", "text": "In pg_upgrade, check for inconsistent inherited not-null constraints (Ali Akbar) § § § PostgreSQL versions before 18 allow an inherited column not-null constraint to be dropped. However, this results in a schema that cannot be restored, leading to failure in pg_upgrade. Detect such cases during pg_upgrade's preflight checks to allow users to fix them before initiating the upgrade.", "title": "In pg_upgrade, check for inconsistent inherited not-null constraints", "commits": ["930e1faec", "b8b2e6052", "bcb8d47cd"], "section": "Changes", "category": "improvement", "source_url": "/docs/release/17.6/#RELEASE-17-6-CHANGES", "source_hash": "4a34dcf295b4c061513c8222987c59765fffbd162f3c28eeac49daa1ca835694", "section_path": ["Changes"], "commit_groups": [["05b367bea", "1084e76f3", "160131033", "1beda2c3c", "63c79a6fc", "930e1faec", "a00eb374c"], ["06f444816", "a8b31b160", "de7fd83cd", "ed2bb0cdd"], ["07da2985d", "0f4958685", "b0f0e2221", "b8b2e6052", "ea3386cc7", "f295494d3", "f63e408e8"], ["095e83d09", "18d2d8ae4", "bef2c2a4e"], ["144ad723a", "1e007722f", "708469281", "94dc2b37b", "bcb8d47cd", "bd48455d8", "f943e2339"], ["22d783350", "7406a7d82", "f9f6595e3"]], "identity_text": "In pg_upgrade, check for inconsistent inherited not-null constraints (Ali Akbar) PostgreSQL versions before 18 allow an inherited column not-null constraint to be dropped. However, this results in a schema that cannot be restored, leading to failure in pg_upgrade. Detect such cases during pg_upgrade's preflight checks to allow users to fix them before initiating the upgrade.", "commit_aliases": ["05b367bea", "06f444816", "07da2985d", "095e83d09", "0f4958685", "1084e76f3", "144ad723a", "160131033", "18d2d8ae4", "1beda2c3c", "1e007722f", "22d783350", "63c79a6fc", "708469281", "7406a7d82", "930e1faec", "94dc2b37b", "a00eb374c", "a8b31b160", "b0f0e2221", "b8b2e6052", "bcb8d47cd", "bd48455d8", "bef2c2a4e", "de7fd83cd", "ea3386cc7", "ed2bb0cdd", "f295494d3", "f63e408e8", "f943e2339", "f9f6595e3"], "source_commits": ["06f444816", "18d2d8ae4", "22d783350", "930e1faec", "b8b2e6052", "bcb8d47cd"], "source_entry_id": "17.6/changes/054", "db_id": "d4362d10eb3f885ab2bad37a6a5d60a8", "patch_ids": ["73ba3fc3ce745b77c99a24e3c5073661", "8c797fbdf29bd8e99e4302a07d193211", "8e4302b6ca6ce3feadff66ff28bb1f28", "a5b72471b30b3eb404df47248ecbb4a8", "a8889bddc0913a0d30d443a98f6d5d94", "cf4e26661260159e109aaaf9434aca59"], "statement_hash": "a66fa6e8b11c98e3ef34b9a9384b3c9ffe07c0edcc5a9b3cb22b196a70bff6c6", "relations": [{"rule": 2, "type": "equivalent", "target": "08391bf8b6da8e940f10290a7edbde0c", "evidence": {"same_day": true, "patch_ids": ["73ba3fc3ce745b77c99a24e3c5073661", "8c797fbdf29bd8e99e4302a07d193211", "8e4302b6ca6ce3feadff66ff28bb1f28", "a5b72471b30b3eb404df47248ecbb4a8", "a8889bddc0913a0d30d443a98f6d5d94", "cf4e26661260159e109aaaf9434aca59"], "statement_hash": "a66fa6e8b11c98e3ef34b9a9384b3c9ffe07c0edcc5a9b3cb22b196a70bff6c6"}}, {"rule": 2, "type": "equivalent", "target": "1746b4d1494482ad224bb015988546a3", "evidence": {"same_day": true, "patch_ids": ["73ba3fc3ce745b77c99a24e3c5073661", "8c797fbdf29bd8e99e4302a07d193211", "8e4302b6ca6ce3feadff66ff28bb1f28", "a5b72471b30b3eb404df47248ecbb4a8", "a8889bddc0913a0d30d443a98f6d5d94", "cf4e26661260159e109aaaf9434aca59"], "statement_hash": "a66fa6e8b11c98e3ef34b9a9384b3c9ffe07c0edcc5a9b3cb22b196a70bff6c6"}}, {"rule": 2, "type": "equivalent", "target": "2c698d04ce4a9a5058f6c0af05c2692e", "evidence": {"same_day": true, "patch_ids": ["73ba3fc3ce745b77c99a24e3c5073661", "8c797fbdf29bd8e99e4302a07d193211", "8e4302b6ca6ce3feadff66ff28bb1f28", "a5b72471b30b3eb404df47248ecbb4a8", "a8889bddc0913a0d30d443a98f6d5d94", "cf4e26661260159e109aaaf9434aca59"], "statement_hash": "a66fa6e8b11c98e3ef34b9a9384b3c9ffe07c0edcc5a9b3cb22b196a70bff6c6"}}, {"rule": 2, "type": "equivalent", "target": "72c78fa6ba1d4f692d09ce33f80bf3bf", "evidence": {"same_day": true, "patch_ids": ["73ba3fc3ce745b77c99a24e3c5073661", "8c797fbdf29bd8e99e4302a07d193211", "8e4302b6ca6ce3feadff66ff28bb1f28", "a5b72471b30b3eb404df47248ecbb4a8", "a8889bddc0913a0d30d443a98f6d5d94", "cf4e26661260159e109aaaf9434aca59"], "statement_hash": "a66fa6e8b11c98e3ef34b9a9384b3c9ffe07c0edcc5a9b3cb22b196a70bff6c6"}}], "version": "17.6", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": [{"db_id": "1746b4d1494482ad224bb015988546a3", "kind": "equivalent", "version": "16.10", "label": "16.10", "title": "In pg_upgrade, check for inconsistent inherited not-null constraints", "evidence": {"same_day": true, "patch_ids": ["73ba3fc3ce745b77c99a24e3c5073661", "8c797fbdf29bd8e99e4302a07d193211", "8e4302b6ca6ce3feadff66ff28bb1f28", "a5b72471b30b3eb404df47248ecbb4a8", "a8889bddc0913a0d30d443a98f6d5d94", "cf4e26661260159e109aaaf9434aca59"], "statement_hash": "a66fa6e8b11c98e3ef34b9a9384b3c9ffe07c0edcc5a9b3cb22b196a70bff6c6"}, "url": "/docs/compare/?release=16.10#16.10-834855ac5a1a47ff", "source_url": "/docs/release/16.10/#RELEASE-16-10-CHANGES"}, {"db_id": "08391bf8b6da8e940f10290a7edbde0c", "kind": "equivalent", "version": "15.14", "label": "15.14", "title": "In pg_upgrade, check for inconsistent inherited not-null constraints", "evidence": {"same_day": true, "patch_ids": ["73ba3fc3ce745b77c99a24e3c5073661", "8c797fbdf29bd8e99e4302a07d193211", "8e4302b6ca6ce3feadff66ff28bb1f28", "a5b72471b30b3eb404df47248ecbb4a8", "a8889bddc0913a0d30d443a98f6d5d94", "cf4e26661260159e109aaaf9434aca59"], "statement_hash": "a66fa6e8b11c98e3ef34b9a9384b3c9ffe07c0edcc5a9b3cb22b196a70bff6c6"}, "url": "/docs/compare/?release=15.14#15.14-e010820f7f059b5d", "source_url": "/docs/release/15.14/#id-1.11.6.11.5"}, {"db_id": "72c78fa6ba1d4f692d09ce33f80bf3bf", "kind": "equivalent", "version": "14.19", "label": "14.19", "title": "In pg_upgrade, check for inconsistent inherited not-null constraints", "evidence": {"same_day": true, "patch_ids": ["73ba3fc3ce745b77c99a24e3c5073661", "8c797fbdf29bd8e99e4302a07d193211", "8e4302b6ca6ce3feadff66ff28bb1f28", "a5b72471b30b3eb404df47248ecbb4a8", "a8889bddc0913a0d30d443a98f6d5d94", "cf4e26661260159e109aaaf9434aca59"], "statement_hash": "a66fa6e8b11c98e3ef34b9a9384b3c9ffe07c0edcc5a9b3cb22b196a70bff6c6"}, "url": "/docs/compare/?release=14.19#14.19-9991c8126b0b79a5", "source_url": "/docs/release/14.19/#id-1.11.6.11.5"}, {"db_id": "2c698d04ce4a9a5058f6c0af05c2692e", "kind": "equivalent", "version": "13.22", "label": "13.22", "title": "In pg_upgrade, check for inconsistent inherited not-null constraints", "evidence": {"same_day": true, "patch_ids": ["73ba3fc3ce745b77c99a24e3c5073661", "8c797fbdf29bd8e99e4302a07d193211", "8e4302b6ca6ce3feadff66ff28bb1f28", "a5b72471b30b3eb404df47248ecbb4a8", "a8889bddc0913a0d30d443a98f6d5d94", "cf4e26661260159e109aaaf9434aca59"], "statement_hash": "a66fa6e8b11c98e3ef34b9a9384b3c9ffe07c0edcc5a9b3cb22b196a70bff6c6"}, "url": "/docs/compare/?release=13.22#13.22-a00cc36cdb51bbba", "source_url": "/docs/release/13.22/#id-1.11.6.7.6"}]}, {"id": "17.6-e72cfe60a0dec8f3", "cves": [], "html": "<p>Don't require that the target installation have <code>max_slot_wal_keep_size</code> set to its default during <span>pg_upgrade</span> (Dilip Kumar) <a href=\"https://postgr.es/c/24f6c1bd4\">§</a></p>", "text": "Don't require that the target installation have max_slot_wal_keep_size set to its default during pg_upgrade (Dilip Kumar) §", "title": "Don't require that the target installation have max_slot_wal_keep_size set to its default during pg_upgrade", "commits": ["24f6c1bd4"], "section": "Changes", "category": "improvement", "source_url": "/docs/release/17.6/#RELEASE-17-6-CHANGES", "source_hash": "443b439a1282d3e58e5c2872cbda8da92559900ee35d83f019f456c12b06b31e", "section_path": ["Changes"], "commit_groups": [["24f6c1bd4", "72e6c08fe", "f36e57745"]], "identity_text": "Don't require that the target installation have max_slot_wal_keep_size set to its default during pg_upgrade (Dilip Kumar)", "commit_aliases": ["24f6c1bd4", "72e6c08fe", "f36e57745"], "source_commits": ["24f6c1bd4"], "source_entry_id": "17.6/changes/055", "db_id": "b79ba6bb8a69100ae424f7648725c03e", "patch_ids": ["cffbef5e9ea4d63b7a1737ffd75ff89d"], "statement_hash": "61af346f47f224aa72242e9b26240c2d743edf7025cd5ba151a8e40a39a5177b", "relations": [], "version": "17.6", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": []}, {"id": "17.6-1c56e55bc6977ab5", "cves": [], "html": "<p>Avoid assertion failure if <code>track_commit_timestamp</code> is enabled during <span>initdb</span> (Hayato Kuroda, Andy Fan) <a href=\"https://postgr.es/c/ae20c105f\">§</a></p>", "text": "Avoid assertion failure if track_commit_timestamp is enabled during initdb (Hayato Kuroda, Andy Fan) §", "title": "Avoid assertion failure if track_commit_timestamp is enabled during initdb", "commits": ["ae20c105f"], "section": "Changes", "category": "improvement", "source_url": "/docs/release/17.6/#RELEASE-17-6-CHANGES", "source_hash": "d7a1210f675b05e175744cc88847476eb93efe317439529f069c078acd0a8ce6", "section_path": ["Changes"], "commit_groups": [["29a4b63c6", "5a6c39b6d", "7e7059abf", "8bca4476f", "ae20c105f", "b61ddcaf4", "dcbbd4331"]], "identity_text": "Avoid assertion failure if track_commit_timestamp is enabled during initdb (Hayato Kuroda, Andy Fan)", "commit_aliases": ["29a4b63c6", "5a6c39b6d", "7e7059abf", "8bca4476f", "ae20c105f", "b61ddcaf4", "dcbbd4331"], "source_commits": ["ae20c105f"], "source_entry_id": "17.6/changes/056", "db_id": "6b403d1d9e7b95e29ad83037a0936814", "patch_ids": ["647719f86767f01d7610fb3f98c77583"], "statement_hash": "bf3c60fed428b05ee8ef2d02cc992b46c02b88b8b40d560a0cd325fec8486001", "relations": [{"rule": 2, "type": "equivalent", "target": "0a873594fd32271d8bf988c4f3b19b42", "evidence": {"same_day": true, "patch_ids": ["647719f86767f01d7610fb3f98c77583"], "statement_hash": "bf3c60fed428b05ee8ef2d02cc992b46c02b88b8b40d560a0cd325fec8486001"}}, {"rule": 2, "type": "equivalent", "target": "211cdc3aed79778b83631af5b78c942c", "evidence": {"same_day": true, "patch_ids": ["647719f86767f01d7610fb3f98c77583"], "statement_hash": "bf3c60fed428b05ee8ef2d02cc992b46c02b88b8b40d560a0cd325fec8486001"}}, {"rule": 2, "type": "equivalent", "target": "ac4f7897a1eae053ca08642d6cda3f9f", "evidence": {"same_day": true, "patch_ids": ["647719f86767f01d7610fb3f98c77583"], "statement_hash": "bf3c60fed428b05ee8ef2d02cc992b46c02b88b8b40d560a0cd325fec8486001"}}, {"rule": 2, "type": "equivalent", "target": "ffb8504e6c20cff85436fd08ed33b263", "evidence": {"same_day": true, "patch_ids": ["647719f86767f01d7610fb3f98c77583"], "statement_hash": "bf3c60fed428b05ee8ef2d02cc992b46c02b88b8b40d560a0cd325fec8486001"}}], "version": "17.6", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": [{"db_id": "ac4f7897a1eae053ca08642d6cda3f9f", "kind": "equivalent", "version": "16.10", "label": "16.10", "title": "Avoid assertion failure if track_commit_timestamp is enabled during initdb", "evidence": {"same_day": true, "patch_ids": ["647719f86767f01d7610fb3f98c77583"], "statement_hash": "bf3c60fed428b05ee8ef2d02cc992b46c02b88b8b40d560a0cd325fec8486001"}, "url": "/docs/compare/?release=16.10#16.10-4234b5221df4bebb", "source_url": "/docs/release/16.10/#RELEASE-16-10-CHANGES"}, {"db_id": "0a873594fd32271d8bf988c4f3b19b42", "kind": "equivalent", "version": "15.14", "label": "15.14", "title": "Avoid assertion failure if track_commit_timestamp is enabled during initdb", "evidence": {"same_day": true, "patch_ids": ["647719f86767f01d7610fb3f98c77583"], "statement_hash": "bf3c60fed428b05ee8ef2d02cc992b46c02b88b8b40d560a0cd325fec8486001"}, "url": "/docs/compare/?release=15.14#15.14-acaecde1fdd34028", "source_url": "/docs/release/15.14/#id-1.11.6.11.5"}, {"db_id": "211cdc3aed79778b83631af5b78c942c", "kind": "equivalent", "version": "14.19", "label": "14.19", "title": "Avoid assertion failure if track_commit_timestamp is enabled during initdb", "evidence": {"same_day": true, "patch_ids": ["647719f86767f01d7610fb3f98c77583"], "statement_hash": "bf3c60fed428b05ee8ef2d02cc992b46c02b88b8b40d560a0cd325fec8486001"}, "url": "/docs/compare/?release=14.19#14.19-cc3723871867a610", "source_url": "/docs/release/14.19/#id-1.11.6.11.5"}, {"db_id": "ffb8504e6c20cff85436fd08ed33b263", "kind": "equivalent", "version": "13.22", "label": "13.22", "title": "Avoid assertion failure if track_commit_timestamp is enabled during initdb", "evidence": {"same_day": true, "patch_ids": ["647719f86767f01d7610fb3f98c77583"], "statement_hash": "bf3c60fed428b05ee8ef2d02cc992b46c02b88b8b40d560a0cd325fec8486001"}, "url": "/docs/compare/?release=13.22#13.22-cac6e236cba2284d", "source_url": "/docs/release/13.22/#id-1.11.6.7.6"}]}, {"id": "17.6-78b79b03c24af3f8", "cves": [], "html": "<p>Fix <span>pg_waldump</span> to show information about dropped statistics in <code>PREPARE TRANSACTION</code> WAL records (Daniil Davydov) <a href=\"https://postgr.es/c/11efaaffa\">§</a></p>", "text": "Fix pg_waldump to show information about dropped statistics in PREPARE TRANSACTION WAL records (Daniil Davydov) §", "title": "Fix pg_waldump to show information about dropped statistics in PREPARE TRANSACTION WAL records", "commits": ["11efaaffa"], "section": "Changes", "category": "bugfix", "source_url": "/docs/release/17.6/#RELEASE-17-6-CHANGES", "source_hash": "ebcb053d0e0400023a293804c946994d98852a0bc140b87d02395335e24b7348", "section_path": ["Changes"], "commit_groups": [["0bd762e81", "0d2063585", "0e0174b49", "11efaaffa"]], "identity_text": "Fix pg_waldump to show information about dropped statistics in PREPARE TRANSACTION WAL records (Daniil Davydov)", "commit_aliases": ["0bd762e81", "0d2063585", "0e0174b49", "11efaaffa"], "source_commits": ["11efaaffa"], "source_entry_id": "17.6/changes/057", "db_id": "948679dc2f6b298ceafc3668fd2f8961", "patch_ids": ["3d6568542e7cb53ff85e578dab2cb7b6"], "statement_hash": "8cf32471069be48b423e08a2b5c435c7501557293c622dac9cd403b8aa372178", "relations": [{"rule": 2, "type": "equivalent", "target": "97e05b6e186284b7225c602c1da932cb", "evidence": {"same_day": true, "patch_ids": ["3d6568542e7cb53ff85e578dab2cb7b6"], "statement_hash": "8cf32471069be48b423e08a2b5c435c7501557293c622dac9cd403b8aa372178"}}, {"rule": 2, "type": "equivalent", "target": "c828147a863febf2e275fa887bd78d3b", "evidence": {"same_day": true, "patch_ids": ["3d6568542e7cb53ff85e578dab2cb7b6"], "statement_hash": "8cf32471069be48b423e08a2b5c435c7501557293c622dac9cd403b8aa372178"}}], "version": "17.6", "category_label": "Bug fixes", "also_in": [], "variants": [], "related_changes": [{"db_id": "97e05b6e186284b7225c602c1da932cb", "kind": "equivalent", "version": "16.10", "label": "16.10", "title": "Fix pg_waldump to show information about dropped statistics in PREPARE TRANSACTION WAL records", "evidence": {"same_day": true, "patch_ids": ["3d6568542e7cb53ff85e578dab2cb7b6"], "statement_hash": "8cf32471069be48b423e08a2b5c435c7501557293c622dac9cd403b8aa372178"}, "url": "/docs/compare/?release=16.10#16.10-baa85e53dc2e3f40", "source_url": "/docs/release/16.10/#RELEASE-16-10-CHANGES"}, {"db_id": "c828147a863febf2e275fa887bd78d3b", "kind": "equivalent", "version": "15.14", "label": "15.14", "title": "Fix pg_waldump to show information about dropped statistics in PREPARE TRANSACTION WAL records", "evidence": {"same_day": true, "patch_ids": ["3d6568542e7cb53ff85e578dab2cb7b6"], "statement_hash": "8cf32471069be48b423e08a2b5c435c7501557293c622dac9cd403b8aa372178"}, "url": "/docs/compare/?release=15.14#15.14-cff67a27a24cfbe0", "source_url": "/docs/release/15.14/#id-1.11.6.11.5"}]}, {"id": "17.6-a0d8c81779538197", "cves": [], "html": "<p>Avoid possible leak of the open connection during <code>contrib/dblink</code> connection establishment (Tom Lane) <a href=\"https://postgr.es/c/e20b3256a\">§</a></p>\n<p>In the rare scenario where we hit out-of-memory while inserting the new connection object into dblink's hashtable, the open connection would be leaked until end of session, leaving an idle session sitting on the remote server.</p>", "text": "Avoid possible leak of the open connection during contrib/dblink connection establishment (Tom Lane) § In the rare scenario where we hit out-of-memory while inserting the new connection object into dblink's hashtable, the open connection would be leaked until end of session, leaving an idle session sitting on the remote server.", "title": "Avoid possible leak of the open connection during contrib/dblink connection establishment", "commits": ["e20b3256a"], "section": "Changes", "category": "bugfix", "source_url": "/docs/release/17.6/#RELEASE-17-6-CHANGES", "source_hash": "9a3f9afb760442df3fdcb30be13367ca19d805e94783824cc75a275e6bca2484", "section_path": ["Changes"], "commit_groups": [["09c9ae8f6", "2cd2222ca", "470273da0", "8eef55db1", "e20b3256a", "e7d3d4ed4"]], "identity_text": "Avoid possible leak of the open connection during contrib/dblink connection establishment (Tom Lane) In the rare scenario where we hit out-of-memory while inserting the new connection object into dblink's hashtable, the open connection would be leaked until end of session, leaving an idle session sitting on the remote server.", "commit_aliases": ["09c9ae8f6", "2cd2222ca", "470273da0", "8eef55db1", "e20b3256a", "e7d3d4ed4"], "source_commits": ["e20b3256a"], "source_entry_id": "17.6/changes/058", "db_id": "83b885660d0c7021b04075e3d44ddf9f", "patch_ids": ["ad074126925151af6358b1f754025008"], "statement_hash": "148946de905374f137eaedfd628dc86633d940c23860153ff88258623ff724da", "relations": [{"rule": 2, "type": "equivalent", "target": "2f55da59aa4982efff6c020c3bd04d77", "evidence": {"same_day": true, "patch_ids": ["ad074126925151af6358b1f754025008"], "statement_hash": "148946de905374f137eaedfd628dc86633d940c23860153ff88258623ff724da"}}, {"rule": 2, "type": "equivalent", "target": "45566aab861f4620b7be99226b573be5", "evidence": {"same_day": true, "patch_ids": ["ad074126925151af6358b1f754025008"], "statement_hash": "148946de905374f137eaedfd628dc86633d940c23860153ff88258623ff724da"}}, {"rule": 2, "type": "equivalent", "target": "a7bc5346dd90d175c498a49d712e2774", "evidence": {"same_day": true, "patch_ids": ["ad074126925151af6358b1f754025008"], "statement_hash": "148946de905374f137eaedfd628dc86633d940c23860153ff88258623ff724da"}}, {"rule": 2, "type": "equivalent", "target": "c897943d3fd9af5a4d22c4a7d504ba01", "evidence": {"same_day": true, "patch_ids": ["ad074126925151af6358b1f754025008"], "statement_hash": "148946de905374f137eaedfd628dc86633d940c23860153ff88258623ff724da"}}], "version": "17.6", "category_label": "Bug fixes", "also_in": [], "variants": [], "related_changes": [{"db_id": "c897943d3fd9af5a4d22c4a7d504ba01", "kind": "equivalent", "version": "16.10", "label": "16.10", "title": "Avoid possible leak of the open connection during contrib/dblink connection establishment", "evidence": {"same_day": true, "patch_ids": ["ad074126925151af6358b1f754025008"], "statement_hash": "148946de905374f137eaedfd628dc86633d940c23860153ff88258623ff724da"}, "url": "/docs/compare/?release=16.10#16.10-855f8db95c110b41", "source_url": "/docs/release/16.10/#RELEASE-16-10-CHANGES"}, {"db_id": "2f55da59aa4982efff6c020c3bd04d77", "kind": "equivalent", "version": "15.14", "label": "15.14", "title": "Avoid possible leak of the open connection during contrib/dblink connection establishment", "evidence": {"same_day": true, "patch_ids": ["ad074126925151af6358b1f754025008"], "statement_hash": "148946de905374f137eaedfd628dc86633d940c23860153ff88258623ff724da"}, "url": "/docs/compare/?release=15.14#15.14-711e4e05ecbd2cb3", "source_url": "/docs/release/15.14/#id-1.11.6.11.5"}, {"db_id": "45566aab861f4620b7be99226b573be5", "kind": "equivalent", "version": "14.19", "label": "14.19", "title": "Avoid possible leak of the open connection during contrib/dblink connection establishment", "evidence": {"same_day": true, "patch_ids": ["ad074126925151af6358b1f754025008"], "statement_hash": "148946de905374f137eaedfd628dc86633d940c23860153ff88258623ff724da"}, "url": "/docs/compare/?release=14.19#14.19-26b478d8a662b1f5", "source_url": "/docs/release/14.19/#id-1.11.6.11.5"}, {"db_id": "a7bc5346dd90d175c498a49d712e2774", "kind": "equivalent", "version": "13.22", "label": "13.22", "title": "Avoid possible leak of the open connection during contrib/dblink connection establishment", "evidence": {"same_day": true, "patch_ids": ["ad074126925151af6358b1f754025008"], "statement_hash": "148946de905374f137eaedfd628dc86633d940c23860153ff88258623ff724da"}, "url": "/docs/compare/?release=13.22#13.22-d416439a5881d3b2", "source_url": "/docs/release/13.22/#id-1.11.6.7.6"}]}, {"id": "17.6-b0c4808e57d38472", "cves": [], "html": "<p>Make <code>contrib/pg_prewarm</code> cope with very large <code>shared_buffers</code> settings (Daria Shanina) <a href=\"https://postgr.es/c/e4b8f925a\">§</a></p>\n<p>Autoprewarm failed with a memory allocation error if <code>shared_buffers</code> was larger than about 50 million buffers (400GB).</p>", "text": "Make contrib/pg_prewarm cope with very large shared_buffers settings (Daria Shanina) § Autoprewarm failed with a memory allocation error if shared_buffers was larger than about 50 million buffers (400GB).", "title": "Make contrib/pg_prewarm cope with very large shared_buffers settings", "commits": ["e4b8f925a"], "section": "Changes", "category": "improvement", "source_url": "/docs/release/17.6/#RELEASE-17-6-CHANGES", "source_hash": "ae003b60ca1fe0e45405c0c8c990e056a798a478cd429c19fd9cf70e54cc452c", "section_path": ["Changes"], "commit_groups": [["016e407f4", "169429264", "4adbaa36c", "a4b9707c4", "d59ff3be2", "e4b8f925a"]], "identity_text": "Make contrib/pg_prewarm cope with very large shared_buffers settings (Daria Shanina) Autoprewarm failed with a memory allocation error if shared_buffers was larger than about 50 million buffers (400GB).", "commit_aliases": ["016e407f4", "169429264", "4adbaa36c", "a4b9707c4", "d59ff3be2", "e4b8f925a"], "source_commits": ["e4b8f925a"], "source_entry_id": "17.6/changes/059", "db_id": "4c9e049eb08c1c81dd6f2be6670da6b7", "patch_ids": ["2ddbc5358225eb04ea6642989759a6cf"], "statement_hash": "620236991d9540c64c3670bad932d1791fbf936f814c45121c613ff7885f2e39", "relations": [{"rule": 2, "type": "equivalent", "target": "1face676ff5cf71997333256595c36fa", "evidence": {"same_day": true, "patch_ids": ["2ddbc5358225eb04ea6642989759a6cf"], "statement_hash": "620236991d9540c64c3670bad932d1791fbf936f814c45121c613ff7885f2e39"}}, {"rule": 2, "type": "equivalent", "target": "b5fb83c37d8b63c533b733ad7dc865d6", "evidence": {"same_day": true, "patch_ids": ["2ddbc5358225eb04ea6642989759a6cf"], "statement_hash": "620236991d9540c64c3670bad932d1791fbf936f814c45121c613ff7885f2e39"}}, {"rule": 2, "type": "equivalent", "target": "c68e2eb74207c113dc50a981b224105f", "evidence": {"same_day": true, "patch_ids": ["2ddbc5358225eb04ea6642989759a6cf"], "statement_hash": "620236991d9540c64c3670bad932d1791fbf936f814c45121c613ff7885f2e39"}}, {"rule": 2, "type": "equivalent", "target": "f2d428bb56fc5c8bded9669b8f8c5438", "evidence": {"same_day": true, "patch_ids": ["2ddbc5358225eb04ea6642989759a6cf"], "statement_hash": "620236991d9540c64c3670bad932d1791fbf936f814c45121c613ff7885f2e39"}}], "version": "17.6", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": [{"db_id": "b5fb83c37d8b63c533b733ad7dc865d6", "kind": "equivalent", "version": "16.10", "label": "16.10", "title": "Make contrib/pg_prewarm cope with very large shared_buffers settings", "evidence": {"same_day": true, "patch_ids": ["2ddbc5358225eb04ea6642989759a6cf"], "statement_hash": "620236991d9540c64c3670bad932d1791fbf936f814c45121c613ff7885f2e39"}, "url": "/docs/compare/?release=16.10#16.10-3cc07d9ddb392d31", "source_url": "/docs/release/16.10/#RELEASE-16-10-CHANGES"}, {"db_id": "1face676ff5cf71997333256595c36fa", "kind": "equivalent", "version": "15.14", "label": "15.14", "title": "Make contrib/pg_prewarm cope with very large shared_buffers settings", "evidence": {"same_day": true, "patch_ids": ["2ddbc5358225eb04ea6642989759a6cf"], "statement_hash": "620236991d9540c64c3670bad932d1791fbf936f814c45121c613ff7885f2e39"}, "url": "/docs/compare/?release=15.14#15.14-7ba6e0d3be92a92d", "source_url": "/docs/release/15.14/#id-1.11.6.11.5"}, {"db_id": "c68e2eb74207c113dc50a981b224105f", "kind": "equivalent", "version": "14.19", "label": "14.19", "title": "Make contrib/pg_prewarm cope with very large shared_buffers settings", "evidence": {"same_day": true, "patch_ids": ["2ddbc5358225eb04ea6642989759a6cf"], "statement_hash": "620236991d9540c64c3670bad932d1791fbf936f814c45121c613ff7885f2e39"}, "url": "/docs/compare/?release=14.19#14.19-8f5065b37a2ab1c3", "source_url": "/docs/release/14.19/#id-1.11.6.11.5"}, {"db_id": "f2d428bb56fc5c8bded9669b8f8c5438", "kind": "equivalent", "version": "13.22", "label": "13.22", "title": "Make contrib/pg_prewarm cope with very large shared_buffers settings", "evidence": {"same_day": true, "patch_ids": ["2ddbc5358225eb04ea6642989759a6cf"], "statement_hash": "620236991d9540c64c3670bad932d1791fbf936f814c45121c613ff7885f2e39"}, "url": "/docs/compare/?release=13.22#13.22-a1e5752066934140", "source_url": "/docs/release/13.22/#id-1.11.6.7.6"}]}, {"id": "17.6-c3704c4d5e9b3b3e", "cves": [], "html": "<p>Prevent assertion failure in <code>contrib/pg_prewarm</code> (Masahiro Ikeda) <a href=\"https://postgr.es/c/b64c585fd\">§</a></p>\n<p>Applying <code>pg_prewarm()</code> to a relation lacking storage (such as a view) caused an assertion failure, although there was no ill effect in non-assert builds. Add an error check to reject that case.</p>", "text": "Prevent assertion failure in contrib/pg_prewarm (Masahiro Ikeda) § Applying pg_prewarm() to a relation lacking storage (such as a view) caused an assertion failure, although there was no ill effect in non-assert builds. Add an error check to reject that case.", "title": "Prevent assertion failure in contrib/pg_prewarm", "commits": ["b64c585fd"], "section": "Changes", "category": "improvement", "source_url": "/docs/release/17.6/#RELEASE-17-6-CHANGES", "source_hash": "563501dc7cb95f6d83d08d70bbf3a78374178081355fa2e712a51aaccdc56a48", "section_path": ["Changes"], "commit_groups": [["3c4d7557e", "b64c585fd"]], "identity_text": "Prevent assertion failure in contrib/pg_prewarm (Masahiro Ikeda) Applying pg_prewarm() to a relation lacking storage (such as a view) caused an assertion failure, although there was no ill effect in non-assert builds. Add an error check to reject that case.", "commit_aliases": ["3c4d7557e", "b64c585fd"], "source_commits": ["b64c585fd"], "source_entry_id": "17.6/changes/060", "db_id": "8b65e7195e2697753f8a9b25bb7de399", "patch_ids": ["289dfd88e9aff33dfea21621197c011d"], "statement_hash": "558c0cdd5f5c358180bb797bdfaa0bb42a95d39c52ece86e1f50e33cf68264dd", "relations": [], "version": "17.6", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": []}, {"id": "17.6-70ed9b1ed75e2d83", "cves": [], "html": "<p>In <code>contrib/pg_stat_statements</code>, avoid leaving gaps in the set of parameter numbers used in a normalized query (Sami Imseih) <a href=\"https://postgr.es/c/290e8ab32\">§</a></p>", "text": "In contrib/pg_stat_statements, avoid leaving gaps in the set of parameter numbers used in a normalized query (Sami Imseih) §", "title": "In contrib/pg_stat_statements, avoid leaving gaps in the set of parameter numbers used in a normalized query", "commits": ["290e8ab32"], "section": "Changes", "category": "improvement", "source_url": "/docs/release/17.6/#RELEASE-17-6-CHANGES", "source_hash": "56c6fe75424eb872bace7917f0c184e9b44bae12170048ac290b71fe76f2e0fa", "section_path": ["Changes"], "commit_groups": [["130300a15", "290e8ab32", "35a428f30", "3c03b8cd7", "7e8b44f4e", "8a1459f62"]], "identity_text": "In contrib/pg_stat_statements, avoid leaving gaps in the set of parameter numbers used in a normalized query (Sami Imseih)", "commit_aliases": ["130300a15", "290e8ab32", "35a428f30", "3c03b8cd7", "7e8b44f4e", "8a1459f62"], "source_commits": ["290e8ab32"], "source_entry_id": "17.6/changes/061", "db_id": "97bb7cdabda51e44fb1f431f03805080", "patch_ids": ["3438823a8b7edf73a4ed8375ce002378"], "statement_hash": "5c3d721d62e4cfa46f427f2c1c02556fe12be18337ef50d89eacd20cc79283e9", "relations": [{"rule": 2, "type": "equivalent", "target": "d0e49087520c2f1f1e348b126a88ff56", "evidence": {"same_day": true, "patch_ids": ["3438823a8b7edf73a4ed8375ce002378"], "statement_hash": "5c3d721d62e4cfa46f427f2c1c02556fe12be18337ef50d89eacd20cc79283e9"}}, {"rule": 2, "type": "equivalent", "target": "d51c9c627a13629b841657b6af2dd94a", "evidence": {"same_day": true, "patch_ids": ["3438823a8b7edf73a4ed8375ce002378"], "statement_hash": "5c3d721d62e4cfa46f427f2c1c02556fe12be18337ef50d89eacd20cc79283e9"}}, {"rule": 2, "type": "equivalent", "target": "f5750e8b670a5f8f8d0d13498c768dac", "evidence": {"same_day": true, "patch_ids": ["3438823a8b7edf73a4ed8375ce002378"], "statement_hash": "5c3d721d62e4cfa46f427f2c1c02556fe12be18337ef50d89eacd20cc79283e9"}}, {"rule": 2, "type": "equivalent", "target": "f804f1e8c79bd457d870276cb4a17830", "evidence": {"same_day": true, "patch_ids": ["3438823a8b7edf73a4ed8375ce002378"], "statement_hash": "5c3d721d62e4cfa46f427f2c1c02556fe12be18337ef50d89eacd20cc79283e9"}}], "version": "17.6", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": [{"db_id": "d51c9c627a13629b841657b6af2dd94a", "kind": "equivalent", "version": "16.10", "label": "16.10", "title": "In contrib/pg_stat_statements, avoid leaving gaps in the set of parameter numbers used in a normalized query", "evidence": {"same_day": true, "patch_ids": ["3438823a8b7edf73a4ed8375ce002378"], "statement_hash": "5c3d721d62e4cfa46f427f2c1c02556fe12be18337ef50d89eacd20cc79283e9"}, "url": "/docs/compare/?release=16.10#16.10-7a99d947c1622f2d", "source_url": "/docs/release/16.10/#RELEASE-16-10-CHANGES"}, {"db_id": "f804f1e8c79bd457d870276cb4a17830", "kind": "equivalent", "version": "15.14", "label": "15.14", "title": "In contrib/pg_stat_statements, avoid leaving gaps in the set of parameter numbers used in a normalized query", "evidence": {"same_day": true, "patch_ids": ["3438823a8b7edf73a4ed8375ce002378"], "statement_hash": "5c3d721d62e4cfa46f427f2c1c02556fe12be18337ef50d89eacd20cc79283e9"}, "url": "/docs/compare/?release=15.14#15.14-128114da27ddd65a", "source_url": "/docs/release/15.14/#id-1.11.6.11.5"}, {"db_id": "d0e49087520c2f1f1e348b126a88ff56", "kind": "equivalent", "version": "14.19", "label": "14.19", "title": "In contrib/pg_stat_statements, avoid leaving gaps in the set of parameter numbers used in a normalized query", "evidence": {"same_day": true, "patch_ids": ["3438823a8b7edf73a4ed8375ce002378"], "statement_hash": "5c3d721d62e4cfa46f427f2c1c02556fe12be18337ef50d89eacd20cc79283e9"}, "url": "/docs/compare/?release=14.19#14.19-4868f533c9778502", "source_url": "/docs/release/14.19/#id-1.11.6.11.5"}, {"db_id": "f5750e8b670a5f8f8d0d13498c768dac", "kind": "equivalent", "version": "13.22", "label": "13.22", "title": "In contrib/pg_stat_statements, avoid leaving gaps in the set of parameter numbers used in a normalized query", "evidence": {"same_day": true, "patch_ids": ["3438823a8b7edf73a4ed8375ce002378"], "statement_hash": "5c3d721d62e4cfa46f427f2c1c02556fe12be18337ef50d89eacd20cc79283e9"}, "url": "/docs/compare/?release=13.22#13.22-7aa92b8bab6bd151", "source_url": "/docs/release/13.22/#id-1.11.6.7.6"}]}, {"id": "17.6-8a8b1f783f566c8f", "cves": [], "html": "<p>Fix memory leakage in <code>contrib/postgres_fdw</code>'s DirectModify methods (Tom Lane) <a href=\"https://postgr.es/c/9339c85af\">§</a></p>\n<p>The <code>PGresult</code> holding the results of the remote modify command would be leaked for the rest of the session if the query fails between invocations of the DirectModify methods, which could happen when there's <code>RETURNING</code> data to process.</p>", "text": "Fix memory leakage in contrib/postgres_fdw's DirectModify methods (Tom Lane) § The PGresult holding the results of the remote modify command would be leaked for the rest of the session if the query fails between invocations of the DirectModify methods, which could happen when there's RETURNING data to process.", "title": "Fix memory leakage in contrib/postgres_fdw's DirectModify methods", "commits": ["9339c85af"], "section": "Changes", "category": "bugfix", "source_url": "/docs/release/17.6/#RELEASE-17-6-CHANGES", "source_hash": "e20583fd8a4693bdac7c66dbf653774fbc2feb2720a3448d93b6cc6b34668c3e", "section_path": ["Changes"], "commit_groups": [["232d8caea", "271cb7eaa", "2b92dc4ee", "3c31594f5", "4a07c0961", "9339c85af"]], "identity_text": "Fix memory leakage in contrib/postgres_fdw's DirectModify methods (Tom Lane) The PGresult holding the results of the remote modify command would be leaked for the rest of the session if the query fails between invocations of the DirectModify methods, which could happen when there's RETURNING data to process.", "commit_aliases": ["232d8caea", "271cb7eaa", "2b92dc4ee", "3c31594f5", "4a07c0961", "9339c85af"], "source_commits": ["9339c85af"], "source_entry_id": "17.6/changes/062", "db_id": "f0e02024508944ea7eb2260c31e7ae20", "patch_ids": ["a3a3ca940a7fe9b91b393f89e48fb2cf"], "statement_hash": "09c199e4fac1b826479d694b22a9d514cef66c29e869a89a395e8727fb627954", "relations": [{"rule": 2, "type": "equivalent", "target": "12940007ea208d54000709a5b8e1d48d", "evidence": {"same_day": true, "patch_ids": ["a3a3ca940a7fe9b91b393f89e48fb2cf"], "statement_hash": "09c199e4fac1b826479d694b22a9d514cef66c29e869a89a395e8727fb627954"}}, {"rule": 2, "type": "equivalent", "target": "62379f7bef1baf1e0108fc15077ff686", "evidence": {"same_day": true, "patch_ids": ["a3a3ca940a7fe9b91b393f89e48fb2cf"], "statement_hash": "09c199e4fac1b826479d694b22a9d514cef66c29e869a89a395e8727fb627954"}}, {"rule": 2, "type": "equivalent", "target": "752524d4777945404bc3641ea9f18ca4", "evidence": {"same_day": true, "patch_ids": ["a3a3ca940a7fe9b91b393f89e48fb2cf"], "statement_hash": "09c199e4fac1b826479d694b22a9d514cef66c29e869a89a395e8727fb627954"}}, {"rule": 2, "type": "equivalent", "target": "f564666a4a5b9fe08f8379184059f2e0", "evidence": {"same_day": true, "patch_ids": ["a3a3ca940a7fe9b91b393f89e48fb2cf"], "statement_hash": "09c199e4fac1b826479d694b22a9d514cef66c29e869a89a395e8727fb627954"}}], "version": "17.6", "category_label": "Bug fixes", "also_in": [], "variants": [], "related_changes": [{"db_id": "f564666a4a5b9fe08f8379184059f2e0", "kind": "equivalent", "version": "16.10", "label": "16.10", "title": "Fix memory leakage in contrib/postgres_fdw's DirectModify methods", "evidence": {"same_day": true, "patch_ids": ["a3a3ca940a7fe9b91b393f89e48fb2cf"], "statement_hash": "09c199e4fac1b826479d694b22a9d514cef66c29e869a89a395e8727fb627954"}, "url": "/docs/compare/?release=16.10#16.10-5e46cf67d05049ce", "source_url": "/docs/release/16.10/#RELEASE-16-10-CHANGES"}, {"db_id": "12940007ea208d54000709a5b8e1d48d", "kind": "equivalent", "version": "15.14", "label": "15.14", "title": "Fix memory leakage in contrib/postgres_fdw's DirectModify methods", "evidence": {"same_day": true, "patch_ids": ["a3a3ca940a7fe9b91b393f89e48fb2cf"], "statement_hash": "09c199e4fac1b826479d694b22a9d514cef66c29e869a89a395e8727fb627954"}, "url": "/docs/compare/?release=15.14#15.14-2f3bafd1d80be84f", "source_url": "/docs/release/15.14/#id-1.11.6.11.5"}, {"db_id": "752524d4777945404bc3641ea9f18ca4", "kind": "equivalent", "version": "14.19", "label": "14.19", "title": "Fix memory leakage in contrib/postgres_fdw's DirectModify methods", "evidence": {"same_day": true, "patch_ids": ["a3a3ca940a7fe9b91b393f89e48fb2cf"], "statement_hash": "09c199e4fac1b826479d694b22a9d514cef66c29e869a89a395e8727fb627954"}, "url": "/docs/compare/?release=14.19#14.19-1bb4e2eb515d11ee", "source_url": "/docs/release/14.19/#id-1.11.6.11.5"}, {"db_id": "62379f7bef1baf1e0108fc15077ff686", "kind": "equivalent", "version": "13.22", "label": "13.22", "title": "Fix memory leakage in contrib/postgres_fdw's DirectModify methods", "evidence": {"same_day": true, "patch_ids": ["a3a3ca940a7fe9b91b393f89e48fb2cf"], "statement_hash": "09c199e4fac1b826479d694b22a9d514cef66c29e869a89a395e8727fb627954"}, "url": "/docs/compare/?release=13.22#13.22-025c80d4172c6ad6", "source_url": "/docs/release/13.22/#id-1.11.6.7.6"}]}, {"id": "17.6-8f492999b2b70b5b", "cves": [], "html": "<p>Ensure that directories listed in <span>configure</span>'s <code>--with-includes</code> and <code>--with-libraries</code> options are searched before system-supplied directories (Tom Lane) <a href=\"https://postgr.es/c/a644f5fc6\">§</a></p>\n<p>A common reason for using these options is to allow a user-built version of some library to override the system-supplied version. However, that failed to work in some environments because of careless ordering of switches in the commands issued by the makefiles.</p>", "text": "Ensure that directories listed in configure's --with-includes and --with-libraries options are searched before system-supplied directories (Tom Lane) § A common reason for using these options is to allow a user-built version of some library to override the system-supplied version. However, that failed to work in some environments because of careless ordering of switches in the commands issued by the makefiles.", "title": "Ensure that directories listed in configure's --with-includes and --with-libraries options are searched before system-supplied directories", "commits": ["a644f5fc6"], "section": "Changes", "category": "improvement", "source_url": "/docs/release/17.6/#RELEASE-17-6-CHANGES", "source_hash": "cb0297fa4e3e14f87b8e3d68cf61210e9d7811ed3ffd36af7275c5f243748dca", "section_path": ["Changes"], "commit_groups": [["19857437b", "2dee95bd0", "4300d8b6a", "8e5e3ff55", "a644f5fc6", "bbc20c8a9", "c5bd803e5"]], "identity_text": "Ensure that directories listed in configure's --with-includes and --with-libraries options are searched before system-supplied directories (Tom Lane) A common reason for using these options is to allow a user-built version of some library to override the system-supplied version. However, that failed to work in some environments because of careless ordering of switches in the commands issued by the makefiles.", "commit_aliases": ["19857437b", "2dee95bd0", "4300d8b6a", "8e5e3ff55", "a644f5fc6", "bbc20c8a9", "c5bd803e5"], "source_commits": ["a644f5fc6"], "source_entry_id": "17.6/changes/063", "db_id": "40190bd5de736e0d1c6dfae0661e59ae", "patch_ids": ["e06531c74199ac8287e60a478732f2a1"], "statement_hash": "3fe68075d2af5f66aa86cec9975bd83f6f8d380307c7a98a165429881d8ce3f6", "relations": [{"rule": 2, "type": "equivalent", "target": "61aa2ab6fe392516ba5d3d82dde9441c", "evidence": {"same_day": true, "patch_ids": ["e06531c74199ac8287e60a478732f2a1"], "statement_hash": "3fe68075d2af5f66aa86cec9975bd83f6f8d380307c7a98a165429881d8ce3f6"}}, {"rule": 2, "type": "equivalent", "target": "9a079b12c4aa18e17d2daefb8f82755d", "evidence": {"same_day": true, "patch_ids": ["e06531c74199ac8287e60a478732f2a1"], "statement_hash": "3fe68075d2af5f66aa86cec9975bd83f6f8d380307c7a98a165429881d8ce3f6"}}, {"rule": 2, "type": "equivalent", "target": "dddc18a83ab3fb87426d5cf379c1808e", "evidence": {"same_day": true, "patch_ids": ["e06531c74199ac8287e60a478732f2a1"], "statement_hash": "3fe68075d2af5f66aa86cec9975bd83f6f8d380307c7a98a165429881d8ce3f6"}}, {"rule": 2, "type": "equivalent", "target": "f4e258f01fdb78e9599679037ae1dfde", "evidence": {"same_day": true, "patch_ids": ["e06531c74199ac8287e60a478732f2a1"], "statement_hash": "3fe68075d2af5f66aa86cec9975bd83f6f8d380307c7a98a165429881d8ce3f6"}}], "version": "17.6", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": [{"db_id": "9a079b12c4aa18e17d2daefb8f82755d", "kind": "equivalent", "version": "16.10", "label": "16.10", "title": "Ensure that directories listed in configure's --with-includes and --with-libraries options are searched before system-supplied directories", "evidence": {"same_day": true, "patch_ids": ["e06531c74199ac8287e60a478732f2a1"], "statement_hash": "3fe68075d2af5f66aa86cec9975bd83f6f8d380307c7a98a165429881d8ce3f6"}, "url": "/docs/compare/?release=16.10#16.10-822bca3ae25fbb63", "source_url": "/docs/release/16.10/#RELEASE-16-10-CHANGES"}, {"db_id": "dddc18a83ab3fb87426d5cf379c1808e", "kind": "equivalent", "version": "15.14", "label": "15.14", "title": "Ensure that directories listed in configure's --with-includes and --with-libraries options are searched before system-supplied directories", "evidence": {"same_day": true, "patch_ids": ["e06531c74199ac8287e60a478732f2a1"], "statement_hash": "3fe68075d2af5f66aa86cec9975bd83f6f8d380307c7a98a165429881d8ce3f6"}, "url": "/docs/compare/?release=15.14#15.14-a8c2ab43f078c9f3", "source_url": "/docs/release/15.14/#id-1.11.6.11.5"}, {"db_id": "61aa2ab6fe392516ba5d3d82dde9441c", "kind": "equivalent", "version": "14.19", "label": "14.19", "title": "Ensure that directories listed in configure's --with-includes and --with-libraries options are searched before system-supplied directories", "evidence": {"same_day": true, "patch_ids": ["e06531c74199ac8287e60a478732f2a1"], "statement_hash": "3fe68075d2af5f66aa86cec9975bd83f6f8d380307c7a98a165429881d8ce3f6"}, "url": "/docs/compare/?release=14.19#14.19-786d3ef0017ef7a7", "source_url": "/docs/release/14.19/#id-1.11.6.11.5"}, {"db_id": "f4e258f01fdb78e9599679037ae1dfde", "kind": "equivalent", "version": "13.22", "label": "13.22", "title": "Ensure that directories listed in configure's --with-includes and --with-libraries options are searched before system-supplied directories", "evidence": {"same_day": true, "patch_ids": ["e06531c74199ac8287e60a478732f2a1"], "statement_hash": "3fe68075d2af5f66aa86cec9975bd83f6f8d380307c7a98a165429881d8ce3f6"}, "url": "/docs/compare/?release=13.22#13.22-78bdf9b34668a73f", "source_url": "/docs/release/13.22/#id-1.11.6.7.6"}]}, {"id": "17.6-eacaf1a246bba2ef", "cves": [], "html": "<p>Fix <span>configure</span>'s checks for <code>__cpuid()</code> and <code>__cpuidex()</code> (Lukas Fittl, Michael Paquier) <a href=\"https://postgr.es/c/8de56323c\">§</a></p>\n<p><span>configure</span> failed to detect these Windows-specific functions, so that they would not be used, leading to slower-than-necessary CRC computations since the availability of hardware instructions could not be verified. The practical impact of this error was limited, because production builds for Windows typically do not use the Autoconf toolchain.</p>", "text": "Fix configure's checks for __cpuid() and __cpuidex() (Lukas Fittl, Michael Paquier) § configure failed to detect these Windows-specific functions, so that they would not be used, leading to slower-than-necessary CRC computations since the availability of hardware instructions could not be verified. The practical impact of this error was limited, because production builds for Windows typically do not use the Autoconf toolchain.", "title": "Fix configure's checks for __cpuid() and __cpuidex()", "commits": ["8de56323c"], "section": "Changes", "category": "bugfix", "source_url": "/docs/release/17.6/#RELEASE-17-6-CHANGES", "source_hash": "fae12d5a4390cd87b1f5cdd0da433b10952c57ec10c199988af7f36d5eeb2924", "section_path": ["Changes"], "commit_groups": [["1a5212775", "60953d4cb", "612f5b806", "8de56323c", "c1984be23", "cd2d52cc6", "d6ffc43f9"]], "identity_text": "Fix configure's checks for __cpuid() and __cpuidex() (Lukas Fittl, Michael Paquier) configure failed to detect these Windows-specific functions, so that they would not be used, leading to slower-than-necessary CRC computations since the availability of hardware instructions could not be verified. The practical impact of this error was limited, because production builds for Windows typically do not use the Autoconf toolchain.", "commit_aliases": ["1a5212775", "60953d4cb", "612f5b806", "8de56323c", "c1984be23", "cd2d52cc6", "d6ffc43f9"], "source_commits": ["8de56323c"], "source_entry_id": "17.6/changes/064", "db_id": "29bd2073e7a4111518a779dbaefa2e3e", "patch_ids": ["ae7561e3fbff19d94aa34e43f2e748e7"], "statement_hash": "436429453485323412a971d4862a8207948817d34496de399badd0a02929ae7c", "relations": [{"rule": 2, "type": "equivalent", "target": "251ab6b7a637a23285439e2814b4b7ff", "evidence": {"same_day": true, "patch_ids": ["ae7561e3fbff19d94aa34e43f2e748e7"], "statement_hash": "436429453485323412a971d4862a8207948817d34496de399badd0a02929ae7c"}}, {"rule": 2, "type": "equivalent", "target": "3cf852fa32a8e042efe25f55af66dd6c", "evidence": {"same_day": true, "patch_ids": ["ae7561e3fbff19d94aa34e43f2e748e7"], "statement_hash": "436429453485323412a971d4862a8207948817d34496de399badd0a02929ae7c"}}, {"rule": 2, "type": "equivalent", "target": "ae69663d10e961545d5a76d2ee306d3d", "evidence": {"same_day": true, "patch_ids": ["ae7561e3fbff19d94aa34e43f2e748e7"], "statement_hash": "436429453485323412a971d4862a8207948817d34496de399badd0a02929ae7c"}}, {"rule": 2, "type": "equivalent", "target": "fd641a38bef3ee82086302f552abc5e6", "evidence": {"same_day": true, "patch_ids": ["ae7561e3fbff19d94aa34e43f2e748e7"], "statement_hash": "436429453485323412a971d4862a8207948817d34496de399badd0a02929ae7c"}}], "version": "17.6", "category_label": "Bug fixes", "also_in": [], "variants": [], "related_changes": [{"db_id": "fd641a38bef3ee82086302f552abc5e6", "kind": "equivalent", "version": "16.10", "label": "16.10", "title": "Fix configure's checks for __cpuid() and __cpuidex()", "evidence": {"same_day": true, "patch_ids": ["ae7561e3fbff19d94aa34e43f2e748e7"], "statement_hash": "436429453485323412a971d4862a8207948817d34496de399badd0a02929ae7c"}, "url": "/docs/compare/?release=16.10#16.10-080893a97846b1bd", "source_url": "/docs/release/16.10/#RELEASE-16-10-CHANGES"}, {"db_id": "3cf852fa32a8e042efe25f55af66dd6c", "kind": "equivalent", "version": "15.14", "label": "15.14", "title": "Fix configure's checks for __cpuid() and __cpuidex()", "evidence": {"same_day": true, "patch_ids": ["ae7561e3fbff19d94aa34e43f2e748e7"], "statement_hash": "436429453485323412a971d4862a8207948817d34496de399badd0a02929ae7c"}, "url": "/docs/compare/?release=15.14#15.14-eb8cfd40fc0a99a1", "source_url": "/docs/release/15.14/#id-1.11.6.11.5"}, {"db_id": "251ab6b7a637a23285439e2814b4b7ff", "kind": "equivalent", "version": "14.19", "label": "14.19", "title": "Fix configure's checks for __cpuid() and __cpuidex()", "evidence": {"same_day": true, "patch_ids": ["ae7561e3fbff19d94aa34e43f2e748e7"], "statement_hash": "436429453485323412a971d4862a8207948817d34496de399badd0a02929ae7c"}, "url": "/docs/compare/?release=14.19#14.19-eecaa3faa6751076", "source_url": "/docs/release/14.19/#id-1.11.6.11.5"}, {"db_id": "ae69663d10e961545d5a76d2ee306d3d", "kind": "equivalent", "version": "13.22", "label": "13.22", "title": "Fix configure's checks for __cpuid() and __cpuidex()", "evidence": {"same_day": true, "patch_ids": ["ae7561e3fbff19d94aa34e43f2e748e7"], "statement_hash": "436429453485323412a971d4862a8207948817d34496de399badd0a02929ae7c"}, "url": "/docs/compare/?release=13.22#13.22-7d78ea3ba4066d49", "source_url": "/docs/release/13.22/#id-1.11.6.7.6"}]}, {"id": "17.6-5dde7f75a39e8421", "cves": [], "html": "<p>Fix build failure with <code>--with-pam</code> option on Solaris-based platforms (Tom Lane) <a href=\"https://postgr.es/c/635a85627\">§</a></p>\n<p>Solaris is inconsistent with other Unix platforms about the API for PAM authentication. This manifested as an <span>“<span>inconsistent pointer</span>”</span> compiler warning, which we never did anything about. But as of GCC 14 it's an error not warning by default, so fix it.</p>", "text": "Fix build failure with --with-pam option on Solaris-based platforms (Tom Lane) § Solaris is inconsistent with other Unix platforms about the API for PAM authentication. This manifested as an “inconsistent pointer” compiler warning, which we never did anything about. But as of GCC 14 it's an error not warning by default, so fix it.", "title": "Fix build failure with --with-pam option on Solaris-based platforms", "commits": ["635a85627"], "section": "Changes", "category": "bugfix", "source_url": "/docs/release/17.6/#RELEASE-17-6-CHANGES", "source_hash": "f95d2eda91eea1050b677d9f3e531d52a75009638356b39b693fe1d4604bcea3", "section_path": ["Changes"], "commit_groups": [["1ccb3851d", "3d039b53a", "635a85627", "868b39a54", "b252ce311", "e4d585455", "e6dfd068e"]], "identity_text": "Fix build failure with --with-pam option on Solaris-based platforms (Tom Lane) Solaris is inconsistent with other Unix platforms about the API for PAM authentication. This manifested as an inconsistent pointer compiler warning, which we never did anything about. But as of GCC 14 it's an error not warning by default, so fix it.", "commit_aliases": ["1ccb3851d", "3d039b53a", "635a85627", "868b39a54", "b252ce311", "e4d585455", "e6dfd068e"], "source_commits": ["635a85627"], "source_entry_id": "17.6/changes/065", "db_id": "34538e54ec7992f9e730ad55c884d2ab", "patch_ids": ["51251ad5ddb09ec4180604be0ea7e244"], "statement_hash": "5b2c4725aa7102bdd6caa231ab00902bf447c41bcab6e88828baedd7a8e8cad8", "relations": [{"rule": 2, "type": "equivalent", "target": "0499fba6edeafd06c1aacb74337ee540", "evidence": {"same_day": true, "patch_ids": ["51251ad5ddb09ec4180604be0ea7e244"], "statement_hash": "5b2c4725aa7102bdd6caa231ab00902bf447c41bcab6e88828baedd7a8e8cad8"}}, {"rule": 2, "type": "equivalent", "target": "2f32f28098a657c73aaba748539500ac", "evidence": {"same_day": true, "patch_ids": ["51251ad5ddb09ec4180604be0ea7e244"], "statement_hash": "5b2c4725aa7102bdd6caa231ab00902bf447c41bcab6e88828baedd7a8e8cad8"}}, {"rule": 2, "type": "equivalent", "target": "8e3b2f44c27aa265f52e60bda0ce7558", "evidence": {"same_day": true, "patch_ids": ["51251ad5ddb09ec4180604be0ea7e244"], "statement_hash": "5b2c4725aa7102bdd6caa231ab00902bf447c41bcab6e88828baedd7a8e8cad8"}}, {"rule": 2, "type": "equivalent", "target": "b293fa0d4e1db1ca044df6a91593f3a7", "evidence": {"same_day": true, "patch_ids": ["51251ad5ddb09ec4180604be0ea7e244"], "statement_hash": "5b2c4725aa7102bdd6caa231ab00902bf447c41bcab6e88828baedd7a8e8cad8"}}], "version": "17.6", "category_label": "Bug fixes", "also_in": [], "variants": [], "related_changes": [{"db_id": "8e3b2f44c27aa265f52e60bda0ce7558", "kind": "equivalent", "version": "16.10", "label": "16.10", "title": "Fix build failure with --with-pam option on Solaris-based platforms", "evidence": {"same_day": true, "patch_ids": ["51251ad5ddb09ec4180604be0ea7e244"], "statement_hash": "5b2c4725aa7102bdd6caa231ab00902bf447c41bcab6e88828baedd7a8e8cad8"}, "url": "/docs/compare/?release=16.10#16.10-032b8580605d61ab", "source_url": "/docs/release/16.10/#RELEASE-16-10-CHANGES"}, {"db_id": "0499fba6edeafd06c1aacb74337ee540", "kind": "equivalent", "version": "15.14", "label": "15.14", "title": "Fix build failure with --with-pam option on Solaris-based platforms", "evidence": {"same_day": true, "patch_ids": ["51251ad5ddb09ec4180604be0ea7e244"], "statement_hash": "5b2c4725aa7102bdd6caa231ab00902bf447c41bcab6e88828baedd7a8e8cad8"}, "url": "/docs/compare/?release=15.14#15.14-3cf883176e770d3b", "source_url": "/docs/release/15.14/#id-1.11.6.11.5"}, {"db_id": "2f32f28098a657c73aaba748539500ac", "kind": "equivalent", "version": "14.19", "label": "14.19", "title": "Fix build failure with --with-pam option on Solaris-based platforms", "evidence": {"same_day": true, "patch_ids": ["51251ad5ddb09ec4180604be0ea7e244"], "statement_hash": "5b2c4725aa7102bdd6caa231ab00902bf447c41bcab6e88828baedd7a8e8cad8"}, "url": "/docs/compare/?release=14.19#14.19-6a8eab878898dc90", "source_url": "/docs/release/14.19/#id-1.11.6.11.5"}, {"db_id": "b293fa0d4e1db1ca044df6a91593f3a7", "kind": "equivalent", "version": "13.22", "label": "13.22", "title": "Fix build failure with --with-pam option on Solaris-based platforms", "evidence": {"same_day": true, "patch_ids": ["51251ad5ddb09ec4180604be0ea7e244"], "statement_hash": "5b2c4725aa7102bdd6caa231ab00902bf447c41bcab6e88828baedd7a8e8cad8"}, "url": "/docs/compare/?release=13.22#13.22-111a6307eb7d3da5", "source_url": "/docs/release/13.22/#id-1.11.6.7.6"}]}, {"id": "17.6-f785f5137d94a1cd", "cves": [], "html": "<p>Make our code portable to GNU Hurd (Michael Banck, Christoph Berg, Samuel Thibault) <a href=\"https://postgr.es/c/0991249d7\">§</a> <a href=\"https://postgr.es/c/29c54ea7b\">§</a></p>\n<p>Fix assumptions about <code>IOV_MAX</code> and <code>O_RDONLY</code> that don't hold on Hurd.</p>", "text": "Make our code portable to GNU Hurd (Michael Banck, Christoph Berg, Samuel Thibault) § § Fix assumptions about IOV_MAX and O_RDONLY that don't hold on Hurd.", "title": "Make our code portable to GNU Hurd", "commits": ["0991249d7", "29c54ea7b"], "section": "Changes", "category": "improvement", "source_url": "/docs/release/17.6/#RELEASE-17-6-CHANGES", "source_hash": "6b52c584594419296d220787cae855f219bf8015cc70a552366f9ae20ac3b3bc", "section_path": ["Changes"], "commit_groups": [["0991249d7", "1fd772d19", "581305a46", "d25d392e8"], ["0fb496c70", "29213636e", "29c54ea7b", "3a2617e4f", "45c527662", "71d71ac4d", "d0a695cf4"]], "identity_text": "Make our code portable to GNU Hurd (Michael Banck, Christoph Berg, Samuel Thibault) Fix assumptions about IOV_MAX and O_RDONLY that don't hold on Hurd.", "commit_aliases": ["0991249d7", "0fb496c70", "1fd772d19", "29213636e", "29c54ea7b", "3a2617e4f", "45c527662", "581305a46", "71d71ac4d", "d0a695cf4", "d25d392e8"], "source_commits": ["0991249d7", "29c54ea7b"], "source_entry_id": "17.6/changes/066", "db_id": "407f6f9621d44a5c87ebd20b33673e61", "patch_ids": ["2535ac32e138397cf0c98158c84aeb0a", "f1de18aec4c0de6008e0f2a25c0560e5"], "statement_hash": "914bd0426349ac821f65b461aee5bd9d6c5f0e5c5a53d3724248d6f56924302b", "relations": [{"rule": 2, "type": "equivalent", "target": "04457f149a6bdf7d2d93fc2f18ea6daa", "evidence": {"same_day": true, "patch_ids": ["2535ac32e138397cf0c98158c84aeb0a", "f1de18aec4c0de6008e0f2a25c0560e5"], "statement_hash": "914bd0426349ac821f65b461aee5bd9d6c5f0e5c5a53d3724248d6f56924302b"}}, {"rule": 2, "type": "equivalent", "target": "55057baacea65e22aa2c84955c4998c8", "evidence": {"same_day": true, "patch_ids": ["2535ac32e138397cf0c98158c84aeb0a", "f1de18aec4c0de6008e0f2a25c0560e5"], "statement_hash": "914bd0426349ac821f65b461aee5bd9d6c5f0e5c5a53d3724248d6f56924302b"}}, {"rule": 2, "type": "equivalent", "target": "90ebf543c131ee89f82ca4eb11b97f07", "evidence": {"same_day": true, "patch_ids": ["2535ac32e138397cf0c98158c84aeb0a", "f1de18aec4c0de6008e0f2a25c0560e5"], "statement_hash": "914bd0426349ac821f65b461aee5bd9d6c5f0e5c5a53d3724248d6f56924302b"}}, {"rule": 2, "type": "equivalent", "target": "cc55ee115ee270685c5f83706b87c17e", "evidence": {"same_day": true, "patch_ids": ["2535ac32e138397cf0c98158c84aeb0a", "f1de18aec4c0de6008e0f2a25c0560e5"], "statement_hash": "914bd0426349ac821f65b461aee5bd9d6c5f0e5c5a53d3724248d6f56924302b"}}], "version": "17.6", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": [{"db_id": "cc55ee115ee270685c5f83706b87c17e", "kind": "equivalent", "version": "16.10", "label": "16.10", "title": "Make our code portable to GNU Hurd", "evidence": {"same_day": true, "patch_ids": ["2535ac32e138397cf0c98158c84aeb0a", "f1de18aec4c0de6008e0f2a25c0560e5"], "statement_hash": "914bd0426349ac821f65b461aee5bd9d6c5f0e5c5a53d3724248d6f56924302b"}, "url": "/docs/compare/?release=16.10#16.10-cc382785968c2ffd", "source_url": "/docs/release/16.10/#RELEASE-16-10-CHANGES"}, {"db_id": "90ebf543c131ee89f82ca4eb11b97f07", "kind": "equivalent", "version": "15.14", "label": "15.14", "title": "Make our code portable to GNU Hurd", "evidence": {"same_day": true, "patch_ids": ["2535ac32e138397cf0c98158c84aeb0a", "f1de18aec4c0de6008e0f2a25c0560e5"], "statement_hash": "914bd0426349ac821f65b461aee5bd9d6c5f0e5c5a53d3724248d6f56924302b"}, "url": "/docs/compare/?release=15.14#15.14-b3a664a9f7d74338", "source_url": "/docs/release/15.14/#id-1.11.6.11.5"}, {"db_id": "55057baacea65e22aa2c84955c4998c8", "kind": "equivalent", "version": "14.19", "label": "14.19", "title": "Make our code portable to GNU Hurd", "evidence": {"same_day": true, "patch_ids": ["2535ac32e138397cf0c98158c84aeb0a", "f1de18aec4c0de6008e0f2a25c0560e5"], "statement_hash": "914bd0426349ac821f65b461aee5bd9d6c5f0e5c5a53d3724248d6f56924302b"}, "url": "/docs/compare/?release=14.19#14.19-11114cd6fd992fb1", "source_url": "/docs/release/14.19/#id-1.11.6.11.5"}, {"db_id": "04457f149a6bdf7d2d93fc2f18ea6daa", "kind": "equivalent", "version": "13.22", "label": "13.22", "title": "Make our code portable to GNU Hurd", "evidence": {"same_day": true, "patch_ids": ["2535ac32e138397cf0c98158c84aeb0a", "f1de18aec4c0de6008e0f2a25c0560e5"], "statement_hash": "914bd0426349ac821f65b461aee5bd9d6c5f0e5c5a53d3724248d6f56924302b"}, "url": "/docs/compare/?release=13.22#13.22-ad71d79d923d3c35", "source_url": "/docs/release/13.22/#id-1.11.6.7.6"}]}, {"id": "17.6-ca120c363b24002c", "cves": [], "html": "<p>Make our usage of <code>memset_s()</code> conform strictly to the C11 standard (Tom Lane) <a href=\"https://postgr.es/c/5355a2400\">§</a></p>\n<p>This avoids compile failures on some platforms.</p>", "text": "Make our usage of memset_s() conform strictly to the C11 standard (Tom Lane) § This avoids compile failures on some platforms.", "title": "Make our usage of memset_s() conform strictly to the C11 standard", "commits": ["5355a2400"], "section": "Changes", "category": "improvement", "source_url": "/docs/release/17.6/#RELEASE-17-6-CHANGES", "source_hash": "8e8248227c94ef6d84d70b36fa679c7f216c08916b6e8e3cb73be44e4c1edcc5", "section_path": ["Changes"], "commit_groups": [["00652b3c9", "4b53cb493", "9bc2d37cc", "a1e0e7076"], ["12eee85e5", "253cf661c", "5355a2400"]], "identity_text": "Make our usage of memset_s() conform strictly to the C11 standard (Tom Lane) This avoids compile failures on some platforms.", "commit_aliases": ["00652b3c9", "12eee85e5", "253cf661c", "4b53cb493", "5355a2400", "9bc2d37cc", "a1e0e7076"], "source_commits": ["4b53cb493", "5355a2400"], "source_entry_id": "17.6/changes/067", "db_id": "b19c16a22c915571a3272abb63ca64fd", "patch_ids": ["152415ddd6ce0d088df0dfdd8775ba61", "c5fb5cc7de1c19c1fdaac7e3b056d35a"], "statement_hash": "57cf2dc152a482fefba1092981e5e8334e09bb8ee3daef8bc79b04e5b32dd32f", "relations": [{"rule": 2, "type": "equivalent", "target": "5fcf76da3b8fa511b807f6218e5e00a0", "evidence": {"same_day": true, "patch_ids": ["152415ddd6ce0d088df0dfdd8775ba61", "c5fb5cc7de1c19c1fdaac7e3b056d35a"], "statement_hash": "57cf2dc152a482fefba1092981e5e8334e09bb8ee3daef8bc79b04e5b32dd32f"}}, {"rule": 2, "type": "equivalent", "target": "873c6db3919db9846ad325ffc8a87d43", "evidence": {"same_day": true, "patch_ids": ["152415ddd6ce0d088df0dfdd8775ba61", "c5fb5cc7de1c19c1fdaac7e3b056d35a"], "statement_hash": "57cf2dc152a482fefba1092981e5e8334e09bb8ee3daef8bc79b04e5b32dd32f"}}, {"rule": 2, "type": "equivalent", "target": "c81119c2c93568d779326ae147992118", "evidence": {"same_day": true, "patch_ids": ["152415ddd6ce0d088df0dfdd8775ba61", "c5fb5cc7de1c19c1fdaac7e3b056d35a"], "statement_hash": "57cf2dc152a482fefba1092981e5e8334e09bb8ee3daef8bc79b04e5b32dd32f"}}, {"rule": 2, "type": "equivalent", "target": "fb508b12b02308fe0bfa2df52ebf175a", "evidence": {"same_day": true, "patch_ids": ["152415ddd6ce0d088df0dfdd8775ba61", "c5fb5cc7de1c19c1fdaac7e3b056d35a"], "statement_hash": "57cf2dc152a482fefba1092981e5e8334e09bb8ee3daef8bc79b04e5b32dd32f"}}], "version": "17.6", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": [{"db_id": "c81119c2c93568d779326ae147992118", "kind": "equivalent", "version": "16.10", "label": "16.10", "title": "Make our usage of memset_s() conform strictly to the C11 standard", "evidence": {"same_day": true, "patch_ids": ["152415ddd6ce0d088df0dfdd8775ba61", "c5fb5cc7de1c19c1fdaac7e3b056d35a"], "statement_hash": "57cf2dc152a482fefba1092981e5e8334e09bb8ee3daef8bc79b04e5b32dd32f"}, "url": "/docs/compare/?release=16.10#16.10-86cb2dd2f5e6e262", "source_url": "/docs/release/16.10/#RELEASE-16-10-CHANGES"}, {"db_id": "fb508b12b02308fe0bfa2df52ebf175a", "kind": "equivalent", "version": "15.14", "label": "15.14", "title": "Make our usage of memset_s() conform strictly to the C11 standard", "evidence": {"same_day": true, "patch_ids": ["152415ddd6ce0d088df0dfdd8775ba61", "c5fb5cc7de1c19c1fdaac7e3b056d35a"], "statement_hash": "57cf2dc152a482fefba1092981e5e8334e09bb8ee3daef8bc79b04e5b32dd32f"}, "url": "/docs/compare/?release=15.14#15.14-e14e14b25fa7d7a5", "source_url": "/docs/release/15.14/#id-1.11.6.11.5"}, {"db_id": "873c6db3919db9846ad325ffc8a87d43", "kind": "equivalent", "version": "14.19", "label": "14.19", "title": "Make our usage of memset_s() conform strictly to the C11 standard", "evidence": {"same_day": true, "patch_ids": ["152415ddd6ce0d088df0dfdd8775ba61", "c5fb5cc7de1c19c1fdaac7e3b056d35a"], "statement_hash": "57cf2dc152a482fefba1092981e5e8334e09bb8ee3daef8bc79b04e5b32dd32f"}, "url": "/docs/compare/?release=14.19#14.19-23435c233f67bee5", "source_url": "/docs/release/14.19/#id-1.11.6.11.5"}, {"db_id": "5fcf76da3b8fa511b807f6218e5e00a0", "kind": "equivalent", "version": "13.22", "label": "13.22", "title": "Make our usage of memset_s() conform strictly to the C11 standard", "evidence": {"same_day": true, "patch_ids": ["152415ddd6ce0d088df0dfdd8775ba61", "c5fb5cc7de1c19c1fdaac7e3b056d35a"], "statement_hash": "57cf2dc152a482fefba1092981e5e8334e09bb8ee3daef8bc79b04e5b32dd32f"}, "url": "/docs/compare/?release=13.22#13.22-e5923b36ae31fff1", "source_url": "/docs/release/13.22/#id-1.11.6.7.6"}]}, {"id": "17.6-101e57122ec4a211", "cves": [], "html": "<p>Silence compatibility warning when using Meson to build with MSVC (Peter Eisentraut) <a href=\"https://postgr.es/c/2499c3490\">§</a></p>", "text": "Silence compatibility warning when using Meson to build with MSVC (Peter Eisentraut) §", "title": "Silence compatibility warning when using Meson to build with MSVC", "commits": ["2499c3490"], "section": "Changes", "category": "improvement", "source_url": "/docs/release/17.6/#RELEASE-17-6-CHANGES", "source_hash": "b941112f46a06a22fd5230b4fe0b3c515c5eb867bad2992891db5ae3915727f2", "section_path": ["Changes"], "commit_groups": [["2499c3490", "2c0d8b950", "629cc1623"]], "identity_text": "Silence compatibility warning when using Meson to build with MSVC (Peter Eisentraut)", "commit_aliases": ["2499c3490", "2c0d8b950", "629cc1623"], "source_commits": ["2499c3490"], "source_entry_id": "17.6/changes/068", "db_id": "a508bc78aa93acd0a60227d60c82d9d5", "patch_ids": ["6dd951e7f9e1680f600769c5e387c496"], "statement_hash": "42105cf1992ed361454f5529dfcd33645a4ddea4009403bb2860aac68886d61b", "relations": [{"rule": 2, "type": "equivalent", "target": "f5de31760f639d2c5314b8ed264f2d95", "evidence": {"same_day": true, "patch_ids": ["6dd951e7f9e1680f600769c5e387c496"], "statement_hash": "42105cf1992ed361454f5529dfcd33645a4ddea4009403bb2860aac68886d61b"}}], "version": "17.6", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": [{"db_id": "f5de31760f639d2c5314b8ed264f2d95", "kind": "equivalent", "version": "16.10", "label": "16.10", "title": "Silence compatibility warning when using Meson to build with MSVC", "evidence": {"same_day": true, "patch_ids": ["6dd951e7f9e1680f600769c5e387c496"], "statement_hash": "42105cf1992ed361454f5529dfcd33645a4ddea4009403bb2860aac68886d61b"}, "url": "/docs/compare/?release=16.10#16.10-c273eaa7e2bd09f8", "source_url": "/docs/release/16.10/#RELEASE-16-10-CHANGES"}]}, {"id": "17.6-f6db88c1769ddeb0", "cves": [], "html": "<p>Prevent uninitialized-value compiler warnings in JSONB comparison code (Tom Lane) <a href=\"https://postgr.es/c/5a2139a90\">§</a></p>", "text": "Prevent uninitialized-value compiler warnings in JSONB comparison code (Tom Lane) §", "title": "Prevent uninitialized-value compiler warnings in JSONB comparison code", "commits": ["5a2139a90"], "section": "Changes", "category": "improvement", "source_url": "/docs/release/17.6/#RELEASE-17-6-CHANGES", "source_hash": "22f83f07bae97018c00005d5509e8f3e23077bd38d27d8f4405d5a658d40c563", "section_path": ["Changes"], "commit_groups": [["0b6dfce0c", "5a2139a90", "5db55e13f", "6c93bf735", "8254b7e33", "aad1617b7", "f32e45641"]], "identity_text": "Prevent uninitialized-value compiler warnings in JSONB comparison code (Tom Lane)", "commit_aliases": ["0b6dfce0c", "5a2139a90", "5db55e13f", "6c93bf735", "8254b7e33", "aad1617b7", "f32e45641"], "source_commits": ["5a2139a90"], "source_entry_id": "17.6/changes/069", "db_id": "98469d2b32d89cbfb4f890b16567ed67", "patch_ids": ["1c7c8e4d06e65980ebc06c130f9a5388"], "statement_hash": "bb3884425060926db4a5243efc395f3fbdd862589ab5ba43c574d387eb4e72ff", "relations": [{"rule": 2, "type": "equivalent", "target": "12f4afd596aa7bc04fb91eeb32141bfd", "evidence": {"same_day": true, "patch_ids": ["1c7c8e4d06e65980ebc06c130f9a5388"], "statement_hash": "bb3884425060926db4a5243efc395f3fbdd862589ab5ba43c574d387eb4e72ff"}}, {"rule": 2, "type": "equivalent", "target": "46c4757b31bbf1593c2db36feb6338f3", "evidence": {"same_day": true, "patch_ids": ["1c7c8e4d06e65980ebc06c130f9a5388"], "statement_hash": "bb3884425060926db4a5243efc395f3fbdd862589ab5ba43c574d387eb4e72ff"}}, {"rule": 2, "type": "equivalent", "target": "b1e2df399f2876369e269619f20874cf", "evidence": {"same_day": true, "patch_ids": ["1c7c8e4d06e65980ebc06c130f9a5388"], "statement_hash": "bb3884425060926db4a5243efc395f3fbdd862589ab5ba43c574d387eb4e72ff"}}, {"rule": 2, "type": "equivalent", "target": "e5f47b223fa9be4f544c50b8b1d87f45", "evidence": {"same_day": true, "patch_ids": ["1c7c8e4d06e65980ebc06c130f9a5388"], "statement_hash": "bb3884425060926db4a5243efc395f3fbdd862589ab5ba43c574d387eb4e72ff"}}], "version": "17.6", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": [{"db_id": "12f4afd596aa7bc04fb91eeb32141bfd", "kind": "equivalent", "version": "16.10", "label": "16.10", "title": "Prevent uninitialized-value compiler warnings in JSONB comparison code", "evidence": {"same_day": true, "patch_ids": ["1c7c8e4d06e65980ebc06c130f9a5388"], "statement_hash": "bb3884425060926db4a5243efc395f3fbdd862589ab5ba43c574d387eb4e72ff"}, "url": "/docs/compare/?release=16.10#16.10-e2d0e1e515d3b0ad", "source_url": "/docs/release/16.10/#RELEASE-16-10-CHANGES"}, {"db_id": "e5f47b223fa9be4f544c50b8b1d87f45", "kind": "equivalent", "version": "15.14", "label": "15.14", "title": "Prevent uninitialized-value compiler warnings in JSONB comparison code", "evidence": {"same_day": true, "patch_ids": ["1c7c8e4d06e65980ebc06c130f9a5388"], "statement_hash": "bb3884425060926db4a5243efc395f3fbdd862589ab5ba43c574d387eb4e72ff"}, "url": "/docs/compare/?release=15.14#15.14-74c38b2263bb46b0", "source_url": "/docs/release/15.14/#id-1.11.6.11.5"}, {"db_id": "b1e2df399f2876369e269619f20874cf", "kind": "equivalent", "version": "14.19", "label": "14.19", "title": "Prevent uninitialized-value compiler warnings in JSONB comparison code", "evidence": {"same_day": true, "patch_ids": ["1c7c8e4d06e65980ebc06c130f9a5388"], "statement_hash": "bb3884425060926db4a5243efc395f3fbdd862589ab5ba43c574d387eb4e72ff"}, "url": "/docs/compare/?release=14.19#14.19-c33c12968657cbdf", "source_url": "/docs/release/14.19/#id-1.11.6.11.5"}, {"db_id": "46c4757b31bbf1593c2db36feb6338f3", "kind": "equivalent", "version": "13.22", "label": "13.22", "title": "Prevent uninitialized-value compiler warnings in JSONB comparison code", "evidence": {"same_day": true, "patch_ids": ["1c7c8e4d06e65980ebc06c130f9a5388"], "statement_hash": "bb3884425060926db4a5243efc395f3fbdd862589ab5ba43c574d387eb4e72ff"}, "url": "/docs/compare/?release=13.22#13.22-37f5c79edb1294a2", "source_url": "/docs/release/13.22/#id-1.11.6.7.6"}]}, {"id": "17.6-75a9055620549575", "cves": [], "html": "<p>Avoid deprecation warnings when building with <span>libxml2</span> 2.14 and later (Michael Paquier) <a href=\"https://postgr.es/c/c911e7802\">§</a></p>", "text": "Avoid deprecation warnings when building with libxml2 2.14 and later (Michael Paquier) §", "title": "Avoid deprecation warnings when building with libxml2 2.14 and later", "commits": ["c911e7802"], "section": "Changes", "category": "improvement", "source_url": "/docs/release/17.6/#RELEASE-17-6-CHANGES", "source_hash": "4b36ffbcc2faf32fc0b4ed695f7007a2b6d0b9e40ebbe086890427f6c7fd3244", "section_path": ["Changes"], "commit_groups": [["75c1eb60b", "8aa54aa7e", "8d1071e7d", "ac166b19a", "c911e7802", "d24a96ce2", "e688cfc2b"]], "identity_text": "Avoid deprecation warnings when building with libxml2 2.14 and later (Michael Paquier)", "commit_aliases": ["75c1eb60b", "8aa54aa7e", "8d1071e7d", "ac166b19a", "c911e7802", "d24a96ce2", "e688cfc2b"], "source_commits": ["c911e7802"], "source_entry_id": "17.6/changes/070", "db_id": "e0a775f6c43ee0c2c107e429336236f0", "patch_ids": ["d218f738bb6ade31c43d956e4b138087"], "statement_hash": "4dbd8cab24eabbe57fdd20140ea36da838bf925b78f64e2cd9c47ed68ccce3ce", "relations": [{"rule": 2, "type": "equivalent", "target": "45d03032c2bff698d9256a3bd780ee2f", "evidence": {"same_day": true, "patch_ids": ["d218f738bb6ade31c43d956e4b138087"], "statement_hash": "4dbd8cab24eabbe57fdd20140ea36da838bf925b78f64e2cd9c47ed68ccce3ce"}}, {"rule": 2, "type": "equivalent", "target": "78b9e49af419b93ce85ef45a30af57ae", "evidence": {"same_day": true, "patch_ids": ["d218f738bb6ade31c43d956e4b138087"], "statement_hash": "4dbd8cab24eabbe57fdd20140ea36da838bf925b78f64e2cd9c47ed68ccce3ce"}}, {"rule": 2, "type": "equivalent", "target": "805b40146a55dc1ae0f3eb5524b13343", "evidence": {"same_day": true, "patch_ids": ["d218f738bb6ade31c43d956e4b138087"], "statement_hash": "4dbd8cab24eabbe57fdd20140ea36da838bf925b78f64e2cd9c47ed68ccce3ce"}}, {"rule": 2, "type": "equivalent", "target": "da6577a15e3e7e774b8a8e0e6560b995", "evidence": {"same_day": true, "patch_ids": ["d218f738bb6ade31c43d956e4b138087"], "statement_hash": "4dbd8cab24eabbe57fdd20140ea36da838bf925b78f64e2cd9c47ed68ccce3ce"}}], "version": "17.6", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": [{"db_id": "78b9e49af419b93ce85ef45a30af57ae", "kind": "equivalent", "version": "16.10", "label": "16.10", "title": "Avoid deprecation warnings when building with libxml2 2.14 and later", "evidence": {"same_day": true, "patch_ids": ["d218f738bb6ade31c43d956e4b138087"], "statement_hash": "4dbd8cab24eabbe57fdd20140ea36da838bf925b78f64e2cd9c47ed68ccce3ce"}, "url": "/docs/compare/?release=16.10#16.10-d8aefce5a76533ce", "source_url": "/docs/release/16.10/#RELEASE-16-10-CHANGES"}, {"db_id": "da6577a15e3e7e774b8a8e0e6560b995", "kind": "equivalent", "version": "15.14", "label": "15.14", "title": "Avoid deprecation warnings when building with libxml2 2.14 and later", "evidence": {"same_day": true, "patch_ids": ["d218f738bb6ade31c43d956e4b138087"], "statement_hash": "4dbd8cab24eabbe57fdd20140ea36da838bf925b78f64e2cd9c47ed68ccce3ce"}, "url": "/docs/compare/?release=15.14#15.14-232cf3d64f572b66", "source_url": "/docs/release/15.14/#id-1.11.6.11.5"}, {"db_id": "805b40146a55dc1ae0f3eb5524b13343", "kind": "equivalent", "version": "14.19", "label": "14.19", "title": "Avoid deprecation warnings when building with libxml2 2.14 and later", "evidence": {"same_day": true, "patch_ids": ["d218f738bb6ade31c43d956e4b138087"], "statement_hash": "4dbd8cab24eabbe57fdd20140ea36da838bf925b78f64e2cd9c47ed68ccce3ce"}, "url": "/docs/compare/?release=14.19#14.19-9358876efce4e3f8", "source_url": "/docs/release/14.19/#id-1.11.6.11.5"}, {"db_id": "45d03032c2bff698d9256a3bd780ee2f", "kind": "equivalent", "version": "13.22", "label": "13.22", "title": "Avoid deprecation warnings when building with libxml2 2.14 and later", "evidence": {"same_day": true, "patch_ids": ["d218f738bb6ade31c43d956e4b138087"], "statement_hash": "4dbd8cab24eabbe57fdd20140ea36da838bf925b78f64e2cd9c47ed68ccce3ce"}, "url": "/docs/compare/?release=13.22#13.22-31ea77e2f2c5453d", "source_url": "/docs/release/13.22/#id-1.11.6.7.6"}]}, {"id": "17.6-a867b8097ecb2002", "cves": [], "html": "<p>Avoid problems when compiling <code>pg_locale.h</code> under C++ (John Naylor) <a href=\"https://postgr.es/c/21ae8fc5f\">§</a></p>\n<p><span>PostgreSQL</span> header files generally need to be wrapped in <code>extern \"C\" { ... }</code> in order to be included in extensions written in C++. This failed for <code>pg_locale.h</code> because of its use of <span>libicu</span> headers, but we can work around that by suppressing C++-only declarations in those headers. C++ extensions that want to use <span>libicu</span>'s C++ APIs can do so by including the <span>libicu</span> headers ahead of <code>pg_locale.h</code>.</p>", "text": "Avoid problems when compiling pg_locale.h under C++ (John Naylor) § PostgreSQL header files generally need to be wrapped in extern \"C\" { ... } in order to be included in extensions written in C++. This failed for pg_locale.h because of its use of libicu headers, but we can work around that by suppressing C++-only declarations in those headers. C++ extensions that want to use libicu's C++ APIs can do so by including the libicu headers ahead of pg_locale.h.", "title": "Avoid problems when compiling pg_locale.h under C++", "commits": ["21ae8fc5f"], "section": "Changes", "category": "improvement", "source_url": "/docs/release/17.6/#RELEASE-17-6-CHANGES", "source_hash": "536fdf071ab0eae262f693957e3e64f917f62da05141107a8193b122df6ed293", "section_path": ["Changes"], "commit_groups": [["21ae8fc5f", "90bfae9f9", "9560c1ec1", "a4f891b96", "aae9aad19", "baacfb9e6", "dd2926207"], ["ed26c4e25"]], "identity_text": "Avoid problems when compiling pg_locale.h under C++ (John Naylor) PostgreSQL header files generally need to be wrapped in extern \"C\" { ... } in order to be included in extensions written in C++. This failed for pg_locale.h because of its use of libicu headers, but we can work around that by suppressing C++-only declarations in those headers. C++ extensions that want to use libicu's C++ APIs can do so by including the libicu headers ahead of pg_locale.h.", "commit_aliases": ["21ae8fc5f", "90bfae9f9", "9560c1ec1", "a4f891b96", "aae9aad19", "baacfb9e6", "dd2926207", "ed26c4e25"], "source_commits": ["21ae8fc5f", "ed26c4e25"], "source_entry_id": "17.6/changes/071", "db_id": "465b03b5786c3ace1f8e24ae77dc1b96", "patch_ids": ["88c09a656232275f07341f46aa56ea44", "f26481addabc1a0f486b4666c91adef4"], "statement_hash": "00a1da47c6930b9ac721c6e6a20d12238e220cb05ad7ed65e7dd569cb041587a", "relations": [{"rule": 2, "type": "equivalent", "target": "574d5dbd83a7b7aee91f31efbb05eda7", "evidence": {"same_day": true, "patch_ids": ["88c09a656232275f07341f46aa56ea44", "f26481addabc1a0f486b4666c91adef4"], "statement_hash": "00a1da47c6930b9ac721c6e6a20d12238e220cb05ad7ed65e7dd569cb041587a"}}, {"rule": 2, "type": "equivalent", "target": "92057801d245043eab99578a5e8ae371", "evidence": {"same_day": true, "patch_ids": ["88c09a656232275f07341f46aa56ea44", "f26481addabc1a0f486b4666c91adef4"], "statement_hash": "00a1da47c6930b9ac721c6e6a20d12238e220cb05ad7ed65e7dd569cb041587a"}}, {"rule": 2, "type": "equivalent", "target": "ed028961b78fd9d0dad5b55f446f151f", "evidence": {"same_day": true, "patch_ids": ["88c09a656232275f07341f46aa56ea44", "f26481addabc1a0f486b4666c91adef4"], "statement_hash": "00a1da47c6930b9ac721c6e6a20d12238e220cb05ad7ed65e7dd569cb041587a"}}, {"rule": 2, "type": "equivalent", "target": "f8e843a90706d7c201b6f03324020afe", "evidence": {"same_day": true, "patch_ids": ["88c09a656232275f07341f46aa56ea44", "f26481addabc1a0f486b4666c91adef4"], "statement_hash": "00a1da47c6930b9ac721c6e6a20d12238e220cb05ad7ed65e7dd569cb041587a"}}], "version": "17.6", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": [{"db_id": "f8e843a90706d7c201b6f03324020afe", "kind": "equivalent", "version": "16.10", "label": "16.10", "title": "Avoid problems when compiling pg_locale.h under C++", "evidence": {"same_day": true, "patch_ids": ["88c09a656232275f07341f46aa56ea44", "f26481addabc1a0f486b4666c91adef4"], "statement_hash": "00a1da47c6930b9ac721c6e6a20d12238e220cb05ad7ed65e7dd569cb041587a"}, "url": "/docs/compare/?release=16.10#16.10-11ac5fb8acc15e0d", "source_url": "/docs/release/16.10/#RELEASE-16-10-CHANGES"}, {"db_id": "ed028961b78fd9d0dad5b55f446f151f", "kind": "equivalent", "version": "15.14", "label": "15.14", "title": "Avoid problems when compiling pg_locale.h under C++", "evidence": {"same_day": true, "patch_ids": ["88c09a656232275f07341f46aa56ea44", "f26481addabc1a0f486b4666c91adef4"], "statement_hash": "00a1da47c6930b9ac721c6e6a20d12238e220cb05ad7ed65e7dd569cb041587a"}, "url": "/docs/compare/?release=15.14#15.14-021358a7a6479c6b", "source_url": "/docs/release/15.14/#id-1.11.6.11.5"}, {"db_id": "92057801d245043eab99578a5e8ae371", "kind": "equivalent", "version": "14.19", "label": "14.19", "title": "Avoid problems when compiling pg_locale.h under C++", "evidence": {"same_day": true, "patch_ids": ["88c09a656232275f07341f46aa56ea44", "f26481addabc1a0f486b4666c91adef4"], "statement_hash": "00a1da47c6930b9ac721c6e6a20d12238e220cb05ad7ed65e7dd569cb041587a"}, "url": "/docs/compare/?release=14.19#14.19-05a143bb858d93f4", "source_url": "/docs/release/14.19/#id-1.11.6.11.5"}, {"db_id": "574d5dbd83a7b7aee91f31efbb05eda7", "kind": "equivalent", "version": "13.22", "label": "13.22", "title": "Avoid problems when compiling pg_locale.h under C++", "evidence": {"same_day": true, "patch_ids": ["88c09a656232275f07341f46aa56ea44", "f26481addabc1a0f486b4666c91adef4"], "statement_hash": "00a1da47c6930b9ac721c6e6a20d12238e220cb05ad7ed65e7dd569cb041587a"}, "url": "/docs/compare/?release=13.22#13.22-6b02ec42506b3a29", "source_url": "/docs/release/13.22/#id-1.11.6.7.6"}]}]}], "stats": [{"key": "all", "label": "All changes", "count": 71}, {"key": "feature", "label": "Features", "count": 0}, {"key": "bugfix", "label": "Bug fixes", "count": 25}, {"key": "security", "label": "Security", "count": 3}, {"key": "performance", "label": "Performance", "count": 0}, {"key": "compatibility", "label": "Compatibility", "count": 0}, {"key": "improvement", "label": "Improvements", "count": 43}], "total": 71, "release_count": 1, "cross_major": false, "cve_count": 5, "cves": [{"id": "CVE-2025-8715", "url": "https://www.postgresql.org/support/security/CVE-2025-8715/", "fixed": {"13": "13.22", "14": "14.19", "15": "15.14", "16": "16.10", "17": "17.6"}, "score": 8.8, "title": "Convert newlines to spaces in names included in comments in pg_dump output", "vector": "AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2025-8715", "affected": {"13": "13", "14": "14", "15": "15", "16": "16", "17": "17"}, "component": "core server", "published": {"13": "2025-08-14", "14": "2025-08-14", "15": "2025-08-14", "16": "2025-08-14", "17": "2025-08-14"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Improper neutralization of newlines in pg_dump in PostgreSQL allows a user of the origin server to inject arbitrary code for restore-time execution as the client operating system account running psql to restore the dump, via psql meta-commands inside a purpose-crafted object name. The same attacks can achieve SQL injection as a superuser of the restore target server. pg_dumpall, pg_restore, and pg_upgrade are also affected. Versions before PostgreSQL 17.6, 16.10, 15.14, 14.19, and 13.22 are affected. Versions before 11.20 are unaffected. CVE-2012-0868 had fixed this class of problem, but version 11.20 reintroduced it.", "affected_ranges": [{"from": "11.20", "until": "13.22"}, {"from": "14", "until": "14.19"}, {"from": "15", "until": "15.14"}, {"from": "16", "until": "16.10"}, {"from": "17", "until": "17.6"}], "first_published": "2025-08-14", "fixed_version": "17.6"}, {"id": "CVE-2025-8714", "url": "https://www.postgresql.org/support/security/CVE-2025-8714/", "fixed": {"13": "13.22", "14": "14.19", "15": "15.14", "16": "16.10", "17": "17.6"}, "score": 8.8, "title": "Prevent pg_dump scripts from being used to attack the user running the restore", "vector": "AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2025-8714", "affected": {"13": "13", "14": "14", "15": "15", "16": "16", "17": "17"}, "component": "core server", "published": {"13": "2025-08-14", "14": "2025-08-14", "15": "2025-08-14", "16": "2025-08-14", "17": "2025-08-14"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Untrusted data inclusion in pg_dump in PostgreSQL allows a malicious superuser of the origin server to inject arbitrary code for restore-time execution as the client operating system account running psql to restore the dump, via psql meta-commands. pg_dumpall is also affected. pg_restore is affected when used to generate a plain-format dump. This is similar to MySQL CVE-2024-21096. Versions before PostgreSQL 17.6, 16.10, 15.14, 14.19, and 13.22 are affected.", "affected_ranges": [{"from": "0", "until": "13.22"}, {"from": "14", "until": "14.19"}, {"from": "15", "until": "15.14"}, {"from": "16", "until": "16.10"}, {"from": "17", "until": "17.6"}], "first_published": "2025-08-14", "fixed_version": "17.6"}, {"id": "CVE-2017-7484", "url": "https://www.postgresql.org/support/security/CVE-2017-7484/", "fixed": {"9.2": "9.2.21", "9.3": "9.3.17", "9.4": "9.4.12", "9.5": "9.5.7", "9.6": "9.6.3"}, "score": 4.3, "title": "Tighten security checks in planner estimation functions", "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N", "affected": {"9.2": "9.2", "9.3": "9.3", "9.4": "9.4", "9.5": "9.5", "9.6": "9.6"}, "component": "core server", "published": {"9.2": "2017-05-11", "9.3": "2017-05-11", "9.4": "2017-05-11", "9.5": "2017-05-11", "9.6": "2017-05-11"}, "introduced": {}, "cvss_version": "3.0", "description_en": "", "first_published": "2017-05-11", "fixed_version": ""}, {"id": "CVE-2025-8713", "url": "https://www.postgresql.org/support/security/CVE-2025-8713/", "fixed": {"13": "13.22", "14": "14.19", "15": "15.14", "16": "16.10", "17": "17.6"}, "score": 3.1, "title": "Tighten security checks in planner estimation functions", "vector": "AV:N/AC:H/PR:L/UI:N/S:U/C:L/I:N/A:N", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2025-8713", "affected": {"13": "13", "14": "14", "15": "15", "16": "16", "17": "17"}, "component": "core server", "published": {"13": "2025-08-14", "14": "2025-08-14", "15": "2025-08-14", "16": "2025-08-14", "17": "2025-08-14"}, "introduced": {}, "cvss_version": "3.0", "description_en": "PostgreSQL optimizer statistics allow a user to read sampled data within a view that the user cannot access. Separately, statistics allow a user to read sampled data that a row security policy intended to hide. PostgreSQL maintains statistics for tables by sampling data available in columns; this data is consulted during the query planning process. Prior to this release, a user could craft a leaky operator that bypassed view access control lists (ACLs) and bypassed row security policies in partitioning or table inheritance hierarchies. Reachable statistics data notably included histograms and most-common-values lists. CVE-2017-7484 and CVE-2019-10130 intended to close this class of vulnerability, but this gap remained. Versions before PostgreSQL 17.6, 16.10, 15.14, 14.19, and 13.22 are affected.", "affected_ranges": [{"from": "0", "until": "13.22"}, {"from": "14", "until": "14.19"}, {"from": "15", "until": "15.14"}, {"from": "16", "until": "16.10"}, {"from": "17", "until": "17.6"}], "first_published": "2025-08-14", "fixed_version": "17.6"}, {"id": "CVE-2012-0868", "url": "https://www.postgresql.org/support/security/CVE-2012-0868/", "fixed": {"8.3": "8.3.18", "8.4": "8.4.11", "9.0": "9.0.7", "9.1": "9.1.3"}, "score": null, "title": "Convert newlines to spaces in names included in comments in pg_dump output", "vector": "", "affected": {"8.3": "8.3", "8.4": "8.4", "9.0": "9.0", "9.1": "9.1"}, "component": "", "published": {}, "introduced": {}, "cvss_version": "", "description_en": "", "first_published": null, "fixed_version": ""}], "cve_available": true, "remaining_cves": [], "security_regressions": [], "warnings": [], "candidate_count": 71, "already_in_source_count": 0, "duplicate_count": 0, "excluded_count": 0, "exclusions": [], "source_as_of": "2026-09-26", "security_as_of": "2026-09-26"}