{"format": 1, "mode": "release", "from_release": null, "to_release": {"date": "2024-11-14", "build": "17.1", "major": "17", "minor": 1, "manual": "17", "status": "stable", "doc_git": "", "version": "17.1", "eol_date": "2029-11-08", "date_text": "2024-11-14", "supported": true, "manual_url": "/docs/17/release-17-1.html", "source_url": "/docs/release/17.1/", "entry_count": 41, "placeholder": false, "content_hash": "245d6a7fb5ae4b57757c866ac474736fb3a26ca14742d4d12e59c6b61d3351b2", "manual_build": "17.11", "source_as_of": "", "changes_count": 41, "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 ever detached a partition from a partitioned table that has a foreign-key reference to another partitioned table, and not dropped the former partition, then you may have catalog and/or data corruption to repair, as detailed in the fifth changelog entry below.</p>\n<p>Also, in the uncommon case that a database's <code>LC_CTYPE</code> setting is <code>C</code> while its <code>LC_COLLATE</code> setting is some other locale, indexes on textual columns should be reindexed, as described in the sixth changelog entry below.</p>", "compatibility_count": 0, "label": "17.1", "status_label": "Supported", "eol": "2029-11-08", "age_days": 684, "support_days": 1136}, "groups": [{"date": "2024-11-14", "build": "17.1", "major": "17", "minor": 1, "manual": "17", "status": "stable", "doc_git": "", "version": "17.1", "eol_date": "2029-11-08", "date_text": "2024-11-14", "supported": true, "manual_url": "/docs/17/release-17-1.html", "source_url": "/docs/release/17.1/", "entry_count": 41, "placeholder": false, "content_hash": "245d6a7fb5ae4b57757c866ac474736fb3a26ca14742d4d12e59c6b61d3351b2", "manual_build": "17.11", "source_as_of": "", "changes_count": 41, "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 ever detached a partition from a partitioned table that has a foreign-key reference to another partitioned table, and not dropped the former partition, then you may have catalog and/or data corruption to repair, as detailed in the fifth changelog entry below.</p>\n<p>Also, in the uncommon case that a database's <code>LC_CTYPE</code> setting is <code>C</code> while its <code>LC_COLLATE</code> setting is some other locale, indexes on textual columns should be reindexed, as described in the sixth changelog entry below.</p>", "compatibility_count": 0, "label": "17.1", "status_label": "Supported", "eol": "2029-11-08", "age_days": 684, "support_days": 1136, "entries": [{"id": "17.1-4318690b9c90f7f0", "cves": ["CVE-2024-10976"], "html": "<p>Ensure cached plans are marked as dependent on the calling role when RLS applies to a non-top-level table reference (Nathan Bossart) <a href=\"https://postgr.es/c/edcda9bb4\">§</a></p>\n<p>If a CTE, subquery, sublink, security invoker view, or coercion projection in a query references a table with row-level security policies, we neglected to mark the resulting plan as potentially dependent on which role is executing it. This could lead to later query executions in the same session using the wrong plan, and then returning or hiding rows that should have been hidden or returned instead.</p>\n<p>The <span>PostgreSQL</span> Project thanks Wolfgang Walther for reporting this problem. (CVE-2024-10976)</p>", "text": "Ensure cached plans are marked as dependent on the calling role when RLS applies to a non-top-level table reference (Nathan Bossart) § If a CTE, subquery, sublink, security invoker view, or coercion projection in a query references a table with row-level security policies, we neglected to mark the resulting plan as potentially dependent on which role is executing it. This could lead to later query executions in the same session using the wrong plan, and then returning or hiding rows that should have been hidden or returned instead. The PostgreSQL Project thanks Wolfgang Walther for reporting this problem. (CVE-2024-10976)", "title": "Ensure cached plans are marked as dependent on the calling role when RLS applies to a non-top-level table reference", "commits": ["edcda9bb4"], "section": "Changes", "category": "security", "source_url": "/docs/release/17.1/#RELEASE-17-1-CHANGES", "source_hash": "57dabc10d6d81974a93e1fec7bcfbb528d2cdb9b2a97d4af4c5adb3d6c0daa23", "section_path": ["Changes"], "commit_groups": [["448525e8a", "4e51030af", "562289460", "6db5ea8de", "952ff31e2", "cd7ab5753", "edcda9bb4"]], "identity_text": "Ensure cached plans are marked as dependent on the calling role when RLS applies to a non-top-level table reference (Nathan Bossart) If a CTE, subquery, sublink, security invoker view, or coercion projection in a query references a table with row-level security policies, we neglected to mark the resulting plan as potentially dependent on which role is executing it. This could lead to later query executions in the same session using the wrong plan, and then returning or hiding rows that should have been hidden or returned instead. The PostgreSQL Project thanks Wolfgang Walther for reporting this problem. (CVE-2024-10976)", "commit_aliases": ["448525e8a", "4e51030af", "562289460", "6db5ea8de", "952ff31e2", "cd7ab5753", "edcda9bb4"], "source_commits": ["edcda9bb4"], "source_entry_id": "17.1/changes/001", "db_id": "903f54d13a35a580860ec5919ffd9391", "patch_ids": ["ca54ff224e161547e3903f7a9428139f"], "statement_hash": "82d6eb24bb8a5aec8698c503aa82a36159755dd2df1cbbbd79a94e884e5c2fa3", "relations": [{"rule": 2, "type": "equivalent", "target": "6cb074d8615f9e4b6de7509ab5409206", "evidence": {"same_day": true, "patch_ids": ["ca54ff224e161547e3903f7a9428139f"], "statement_hash": "82d6eb24bb8a5aec8698c503aa82a36159755dd2df1cbbbd79a94e884e5c2fa3"}}, {"rule": 2, "type": "equivalent", "target": "b35299d8c2b91ca42ad730d56fe1d557", "evidence": {"same_day": true, "patch_ids": ["ca54ff224e161547e3903f7a9428139f"], "statement_hash": "82d6eb24bb8a5aec8698c503aa82a36159755dd2df1cbbbd79a94e884e5c2fa3"}}, {"rule": 2, "type": "equivalent", "target": "d44f16c4afb566a4218e3268550f233b", "evidence": {"same_day": true, "patch_ids": ["ca54ff224e161547e3903f7a9428139f"], "statement_hash": "82d6eb24bb8a5aec8698c503aa82a36159755dd2df1cbbbd79a94e884e5c2fa3"}}, {"rule": 2, "type": "equivalent", "target": "dd2d2a0ef524c238108a866aed2a3928", "evidence": {"same_day": true, "patch_ids": ["ca54ff224e161547e3903f7a9428139f"], "statement_hash": "82d6eb24bb8a5aec8698c503aa82a36159755dd2df1cbbbd79a94e884e5c2fa3"}}, {"rule": 2, "type": "equivalent", "target": "ea98dde20d96595ff5781f5e31b89a94", "evidence": {"same_day": true, "patch_ids": ["ca54ff224e161547e3903f7a9428139f"], "statement_hash": "82d6eb24bb8a5aec8698c503aa82a36159755dd2df1cbbbd79a94e884e5c2fa3"}}], "version": "17.1", "category_label": "Security", "also_in": [], "variants": [], "related_changes": [{"db_id": "d44f16c4afb566a4218e3268550f233b", "kind": "equivalent", "version": "16.5", "label": "16.5", "title": "Ensure cached plans are marked as dependent on the calling role when RLS applies to a non-top-level table reference", "evidence": {"same_day": true, "patch_ids": ["ca54ff224e161547e3903f7a9428139f"], "statement_hash": "82d6eb24bb8a5aec8698c503aa82a36159755dd2df1cbbbd79a94e884e5c2fa3"}, "url": "/docs/compare/?release=16.5#16.5-8836d65ec119a87b", "source_url": "/docs/release/16.5/#RELEASE-16-5-CHANGES"}, {"db_id": "6cb074d8615f9e4b6de7509ab5409206", "kind": "equivalent", "version": "15.9", "label": "15.9", "title": "Ensure cached plans are marked as dependent on the calling role when RLS applies to a non-top-level table reference", "evidence": {"same_day": true, "patch_ids": ["ca54ff224e161547e3903f7a9428139f"], "statement_hash": "82d6eb24bb8a5aec8698c503aa82a36159755dd2df1cbbbd79a94e884e5c2fa3"}, "url": "/docs/compare/?release=15.9#15.9-0df8f5c6c57017c1", "source_url": "/docs/release/15.9/#id-1.11.6.16.5"}, {"db_id": "b35299d8c2b91ca42ad730d56fe1d557", "kind": "equivalent", "version": "14.14", "label": "14.14", "title": "Ensure cached plans are marked as dependent on the calling role when RLS applies to a non-top-level table reference", "evidence": {"same_day": true, "patch_ids": ["ca54ff224e161547e3903f7a9428139f"], "statement_hash": "82d6eb24bb8a5aec8698c503aa82a36159755dd2df1cbbbd79a94e884e5c2fa3"}, "url": "/docs/compare/?release=14.14#14.14-ef2b342695c66732", "source_url": "/docs/release/14.14/#id-1.11.6.16.5"}, {"db_id": "ea98dde20d96595ff5781f5e31b89a94", "kind": "equivalent", "version": "13.17", "label": "13.17", "title": "Ensure cached plans are marked as dependent on the calling role when RLS applies to a non-top-level table reference", "evidence": {"same_day": true, "patch_ids": ["ca54ff224e161547e3903f7a9428139f"], "statement_hash": "82d6eb24bb8a5aec8698c503aa82a36159755dd2df1cbbbd79a94e884e5c2fa3"}, "url": "/docs/compare/?release=13.17#13.17-262bcda4a82de7e4", "source_url": "/docs/release/13.17/#id-1.11.6.12.5"}, {"db_id": "dd2d2a0ef524c238108a866aed2a3928", "kind": "equivalent", "version": "12.21", "label": "12.21", "title": "Ensure cached plans are marked as dependent on the calling role when RLS applies to a non-top-level table reference", "evidence": {"same_day": true, "patch_ids": ["ca54ff224e161547e3903f7a9428139f"], "statement_hash": "82d6eb24bb8a5aec8698c503aa82a36159755dd2df1cbbbd79a94e884e5c2fa3"}, "url": "/docs/compare/?release=12.21#12.21-024fbe5032a8d0a7", "source_url": "/docs/release/12.21/#id-1.11.6.7.6"}]}, {"id": "17.1-1082f03d8cb14619", "cves": ["CVE-2024-10977"], "html": "<p>Make <span>libpq</span> discard error messages received during SSL or GSS protocol negotiation (Jacob Champion) <a href=\"https://postgr.es/c/a5cc4c667\">§</a></p>\n<p>An error message received before encryption negotiation is completed might have been injected by a man-in-the-middle, rather than being real server output. Reporting it opens the door to various security hazards; for example, the message might spoof a query result that a careless user could mistake for correct output. The best answer seems to be to discard such data and rely only on <span>libpq</span>'s own report of the connection failure.</p>\n<p>The <span>PostgreSQL</span> Project thanks Jacob Champion for reporting this problem. (CVE-2024-10977)</p>", "text": "Make libpq discard error messages received during SSL or GSS protocol negotiation (Jacob Champion) § An error message received before encryption negotiation is completed might have been injected by a man-in-the-middle, rather than being real server output. Reporting it opens the door to various security hazards; for example, the message might spoof a query result that a careless user could mistake for correct output. The best answer seems to be to discard such data and rely only on libpq's own report of the connection failure. The PostgreSQL Project thanks Jacob Champion for reporting this problem. (CVE-2024-10977)", "title": "Make libpq discard error messages received during SSL or GSS protocol negotiation", "commits": ["a5cc4c667"], "section": "Changes", "category": "security", "source_url": "/docs/release/17.1/#RELEASE-17-1-CHANGES", "source_hash": "24ea9a1a07d184e01e1e8c0313d2da81b25d7849b5df2968f6160dc583499b2e", "section_path": ["Changes"], "commit_groups": [["2a951ef0a", "67d28bd02", "7b49707b7", "a5cc4c667", "bf8835ea9", "d2c3e31c1", "e6c945476"]], "identity_text": "Make libpq discard error messages received during SSL or GSS protocol negotiation (Jacob Champion) An error message received before encryption negotiation is completed might have been injected by a man-in-the-middle, rather than being real server output. Reporting it opens the door to various security hazards; for example, the message might spoof a query result that a careless user could mistake for correct output. The best answer seems to be to discard such data and rely only on libpq's own report of the connection failure. The PostgreSQL Project thanks Jacob Champion for reporting this problem. (CVE-2024-10977)", "commit_aliases": ["2a951ef0a", "67d28bd02", "7b49707b7", "a5cc4c667", "bf8835ea9", "d2c3e31c1", "e6c945476"], "source_commits": ["a5cc4c667"], "source_entry_id": "17.1/changes/002", "db_id": "91332def933a0204d60d03b6aee60a2f", "patch_ids": ["7f0305d2fb23504e1e6db659e7871ef3"], "statement_hash": "2d14a7d8ffe6fb8029b15b61d067c13cf4746fb098542feefffa1d74e35bfa6e", "relations": [{"rule": 2, "type": "equivalent", "target": "041d5a2ad83eeef120f71cbf6b017715", "evidence": {"same_day": true, "patch_ids": ["7f0305d2fb23504e1e6db659e7871ef3"], "statement_hash": "2d14a7d8ffe6fb8029b15b61d067c13cf4746fb098542feefffa1d74e35bfa6e"}}, {"rule": 2, "type": "equivalent", "target": "170ef4172dbf8227246b2fd10f547eaf", "evidence": {"same_day": true, "patch_ids": ["7f0305d2fb23504e1e6db659e7871ef3"], "statement_hash": "2d14a7d8ffe6fb8029b15b61d067c13cf4746fb098542feefffa1d74e35bfa6e"}}, {"rule": 2, "type": "equivalent", "target": "343aad3da37d507acbe87e3c07339848", "evidence": {"same_day": true, "patch_ids": ["7f0305d2fb23504e1e6db659e7871ef3"], "statement_hash": "2d14a7d8ffe6fb8029b15b61d067c13cf4746fb098542feefffa1d74e35bfa6e"}}, {"rule": 2, "type": "equivalent", "target": "606e86fc061b8305117b462b0fb72f7e", "evidence": {"same_day": true, "patch_ids": ["7f0305d2fb23504e1e6db659e7871ef3"], "statement_hash": "2d14a7d8ffe6fb8029b15b61d067c13cf4746fb098542feefffa1d74e35bfa6e"}}, {"rule": 2, "type": "equivalent", "target": "f603cc7c23c00c33a7aaf0a8f34e4e09", "evidence": {"same_day": true, "patch_ids": ["7f0305d2fb23504e1e6db659e7871ef3"], "statement_hash": "2d14a7d8ffe6fb8029b15b61d067c13cf4746fb098542feefffa1d74e35bfa6e"}}], "version": "17.1", "category_label": "Security", "also_in": [], "variants": [], "related_changes": [{"db_id": "170ef4172dbf8227246b2fd10f547eaf", "kind": "equivalent", "version": "16.5", "label": "16.5", "title": "Make libpq discard error messages received during SSL or GSS protocol negotiation", "evidence": {"same_day": true, "patch_ids": ["7f0305d2fb23504e1e6db659e7871ef3"], "statement_hash": "2d14a7d8ffe6fb8029b15b61d067c13cf4746fb098542feefffa1d74e35bfa6e"}, "url": "/docs/compare/?release=16.5#16.5-9d380df74be2cafb", "source_url": "/docs/release/16.5/#RELEASE-16-5-CHANGES"}, {"db_id": "f603cc7c23c00c33a7aaf0a8f34e4e09", "kind": "equivalent", "version": "15.9", "label": "15.9", "title": "Make libpq discard error messages received during SSL or GSS protocol negotiation", "evidence": {"same_day": true, "patch_ids": ["7f0305d2fb23504e1e6db659e7871ef3"], "statement_hash": "2d14a7d8ffe6fb8029b15b61d067c13cf4746fb098542feefffa1d74e35bfa6e"}, "url": "/docs/compare/?release=15.9#15.9-5728e455ef5ad54b", "source_url": "/docs/release/15.9/#id-1.11.6.16.5"}, {"db_id": "343aad3da37d507acbe87e3c07339848", "kind": "equivalent", "version": "14.14", "label": "14.14", "title": "Make libpq discard error messages received during SSL or GSS protocol negotiation", "evidence": {"same_day": true, "patch_ids": ["7f0305d2fb23504e1e6db659e7871ef3"], "statement_hash": "2d14a7d8ffe6fb8029b15b61d067c13cf4746fb098542feefffa1d74e35bfa6e"}, "url": "/docs/compare/?release=14.14#14.14-8e4bd7f9b172bf1c", "source_url": "/docs/release/14.14/#id-1.11.6.16.5"}, {"db_id": "606e86fc061b8305117b462b0fb72f7e", "kind": "equivalent", "version": "13.17", "label": "13.17", "title": "Make libpq discard error messages received during SSL or GSS protocol negotiation", "evidence": {"same_day": true, "patch_ids": ["7f0305d2fb23504e1e6db659e7871ef3"], "statement_hash": "2d14a7d8ffe6fb8029b15b61d067c13cf4746fb098542feefffa1d74e35bfa6e"}, "url": "/docs/compare/?release=13.17#13.17-6c940adbb9729591", "source_url": "/docs/release/13.17/#id-1.11.6.12.5"}, {"db_id": "041d5a2ad83eeef120f71cbf6b017715", "kind": "equivalent", "version": "12.21", "label": "12.21", "title": "Make libpq discard error messages received during SSL or GSS protocol negotiation", "evidence": {"same_day": true, "patch_ids": ["7f0305d2fb23504e1e6db659e7871ef3"], "statement_hash": "2d14a7d8ffe6fb8029b15b61d067c13cf4746fb098542feefffa1d74e35bfa6e"}, "url": "/docs/compare/?release=12.21#12.21-6fc5c9c88c8d9ac9", "source_url": "/docs/release/12.21/#id-1.11.6.7.6"}]}, {"id": "17.1-bcd14383964f2685", "cves": ["CVE-2024-10978"], "html": "<p>Fix unintended interactions between <code>SET SESSION AUTHORIZATION</code> and <code>SET ROLE</code> (Tom Lane) <a href=\"https://postgr.es/c/cd82afdda\">§</a> <a href=\"https://postgr.es/c/f4f5d27d8\">§</a></p>\n<p>The SQL standard mandates that <code>SET SESSION AUTHORIZATION</code> have a side-effect of doing <code>SET ROLE NONE</code>. Our implementation of that was flawed, creating more interaction between the two settings than intended. Notably, rolling back a transaction that had done <code>SET SESSION AUTHORIZATION</code> would revert <code>ROLE</code> to <code>NONE</code> even if that had not been the previous state, so that the effective user ID might now be different from what it had been before the transaction. Transiently setting <code>session_authorization</code> in a function <code>SET</code> clause had a similar effect. A related bug was that if a parallel worker inspected <code>current_setting('role')</code>, it saw <code>none</code> even when it should see something else.</p>\n<p>The <span>PostgreSQL</span> Project thanks Tom Lane for reporting this problem. (CVE-2024-10978)</p>", "text": "Fix unintended interactions between SET SESSION AUTHORIZATION and SET ROLE (Tom Lane) § § The SQL standard mandates that SET SESSION AUTHORIZATION have a side-effect of doing SET ROLE NONE. Our implementation of that was flawed, creating more interaction between the two settings than intended. Notably, rolling back a transaction that had done SET SESSION AUTHORIZATION would revert ROLE to NONE even if that had not been the previous state, so that the effective user ID might now be different from what it had been before the transaction. Transiently setting session_authorization in a function SET clause had a similar effect. A related bug was that if a parallel worker inspected current_setting('role'), it saw none even when it should see something else. The PostgreSQL Project thanks Tom Lane for reporting this problem. (CVE-2024-10978)", "title": "Fix unintended interactions between SET SESSION AUTHORIZATION and SET ROLE", "commits": ["cd82afdda", "f4f5d27d8"], "section": "Changes", "category": "security", "source_url": "/docs/release/17.1/#RELEASE-17-1-CHANGES", "source_hash": "9a3bc2da9e1d4811797b08a7406692d4f482a47cdba2da2c62563fe57cdaa136", "section_path": ["Changes"], "commit_groups": [["00b94e8e2", "0edad8654", "109a32380", "73c9f91a1", "95f5a5237", "dc7378793", "f4f5d27d8"], ["2a68808e2", "4c9d96f74", "5a2fed911", "76123ded6", "a5d2e6205", "ae340d031", "cd82afdda"]], "identity_text": "Fix unintended interactions between SET SESSION AUTHORIZATION and SET ROLE (Tom Lane) The SQL standard mandates that SET SESSION AUTHORIZATION have a side-effect of doing SET ROLE NONE. Our implementation of that was flawed, creating more interaction between the two settings than intended. Notably, rolling back a transaction that had done SET SESSION AUTHORIZATION would revert ROLE to NONE even if that had not been the previous state, so that the effective user ID might now be different from what it had been before the transaction. Transiently setting session_authorization in a function SET clause had a similar effect. A related bug was that if a parallel worker inspected current_setting('role'), it saw none even when it should see something else. The PostgreSQL Project thanks Tom Lane for reporting this problem. (CVE-2024-10978)", "commit_aliases": ["00b94e8e2", "0edad8654", "109a32380", "2a68808e2", "4c9d96f74", "5a2fed911", "73c9f91a1", "76123ded6", "95f5a5237", "a5d2e6205", "ae340d031", "cd82afdda", "dc7378793", "f4f5d27d8"], "source_commits": ["cd82afdda", "f4f5d27d8"], "source_entry_id": "17.1/changes/003", "db_id": "fcbd66ab269c152eb9da16b5b1eeba9d", "patch_ids": ["0f53d135f12041c1e76d37093ce742db", "eba6518020c128bdd7288f5ccdcffc71"], "statement_hash": "a437824687a1e0387cf26cd2c9b09d3e61606ea0fa5e129b3302117736a6fe88", "relations": [{"rule": 2, "type": "equivalent", "target": "604f59cff9d6f5774f9b68abcf08958c", "evidence": {"same_day": true, "patch_ids": ["0f53d135f12041c1e76d37093ce742db", "eba6518020c128bdd7288f5ccdcffc71"], "statement_hash": "a437824687a1e0387cf26cd2c9b09d3e61606ea0fa5e129b3302117736a6fe88"}}, {"rule": 2, "type": "equivalent", "target": "97797a7d809da6dc757cde719790fc0c", "evidence": {"same_day": true, "patch_ids": ["0f53d135f12041c1e76d37093ce742db", "eba6518020c128bdd7288f5ccdcffc71"], "statement_hash": "a437824687a1e0387cf26cd2c9b09d3e61606ea0fa5e129b3302117736a6fe88"}}, {"rule": 2, "type": "equivalent", "target": "b1a4466d9937d8744821f08d11640f15", "evidence": {"same_day": true, "patch_ids": ["0f53d135f12041c1e76d37093ce742db", "eba6518020c128bdd7288f5ccdcffc71"], "statement_hash": "a437824687a1e0387cf26cd2c9b09d3e61606ea0fa5e129b3302117736a6fe88"}}, {"rule": 2, "type": "equivalent", "target": "bc5ed2f456883b22d022a9a61741e828", "evidence": {"same_day": true, "patch_ids": ["0f53d135f12041c1e76d37093ce742db", "eba6518020c128bdd7288f5ccdcffc71"], "statement_hash": "a437824687a1e0387cf26cd2c9b09d3e61606ea0fa5e129b3302117736a6fe88"}}, {"rule": 2, "type": "equivalent", "target": "f64aff32abbe75ed4c780fc509e778f6", "evidence": {"same_day": true, "patch_ids": ["0f53d135f12041c1e76d37093ce742db", "eba6518020c128bdd7288f5ccdcffc71"], "statement_hash": "a437824687a1e0387cf26cd2c9b09d3e61606ea0fa5e129b3302117736a6fe88"}}], "version": "17.1", "category_label": "Security", "also_in": [], "variants": [], "related_changes": [{"db_id": "f64aff32abbe75ed4c780fc509e778f6", "kind": "equivalent", "version": "16.5", "label": "16.5", "title": "Fix unintended interactions between SET SESSION AUTHORIZATION and SET ROLE", "evidence": {"same_day": true, "patch_ids": ["0f53d135f12041c1e76d37093ce742db", "eba6518020c128bdd7288f5ccdcffc71"], "statement_hash": "a437824687a1e0387cf26cd2c9b09d3e61606ea0fa5e129b3302117736a6fe88"}, "url": "/docs/compare/?release=16.5#16.5-315f7321f2990e19", "source_url": "/docs/release/16.5/#RELEASE-16-5-CHANGES"}, {"db_id": "b1a4466d9937d8744821f08d11640f15", "kind": "equivalent", "version": "15.9", "label": "15.9", "title": "Fix unintended interactions between SET SESSION AUTHORIZATION and SET ROLE", "evidence": {"same_day": true, "patch_ids": ["0f53d135f12041c1e76d37093ce742db", "eba6518020c128bdd7288f5ccdcffc71"], "statement_hash": "a437824687a1e0387cf26cd2c9b09d3e61606ea0fa5e129b3302117736a6fe88"}, "url": "/docs/compare/?release=15.9#15.9-edbb19d6ec7f223e", "source_url": "/docs/release/15.9/#id-1.11.6.16.5"}, {"db_id": "604f59cff9d6f5774f9b68abcf08958c", "kind": "equivalent", "version": "14.14", "label": "14.14", "title": "Fix unintended interactions between SET SESSION AUTHORIZATION and SET ROLE", "evidence": {"same_day": true, "patch_ids": ["0f53d135f12041c1e76d37093ce742db", "eba6518020c128bdd7288f5ccdcffc71"], "statement_hash": "a437824687a1e0387cf26cd2c9b09d3e61606ea0fa5e129b3302117736a6fe88"}, "url": "/docs/compare/?release=14.14#14.14-4b483cb165d6e486", "source_url": "/docs/release/14.14/#id-1.11.6.16.5"}, {"db_id": "97797a7d809da6dc757cde719790fc0c", "kind": "equivalent", "version": "13.17", "label": "13.17", "title": "Fix unintended interactions between SET SESSION AUTHORIZATION and SET ROLE", "evidence": {"same_day": true, "patch_ids": ["0f53d135f12041c1e76d37093ce742db", "eba6518020c128bdd7288f5ccdcffc71"], "statement_hash": "a437824687a1e0387cf26cd2c9b09d3e61606ea0fa5e129b3302117736a6fe88"}, "url": "/docs/compare/?release=13.17#13.17-d57adda36139a851", "source_url": "/docs/release/13.17/#id-1.11.6.12.5"}, {"db_id": "bc5ed2f456883b22d022a9a61741e828", "kind": "equivalent", "version": "12.21", "label": "12.21", "title": "Fix unintended interactions between SET SESSION AUTHORIZATION and SET ROLE", "evidence": {"same_day": true, "patch_ids": ["0f53d135f12041c1e76d37093ce742db", "eba6518020c128bdd7288f5ccdcffc71"], "statement_hash": "a437824687a1e0387cf26cd2c9b09d3e61606ea0fa5e129b3302117736a6fe88"}, "url": "/docs/compare/?release=12.21#12.21-77f2e83b58681f50", "source_url": "/docs/release/12.21/#id-1.11.6.7.6"}]}, {"id": "17.1-17e0d808d28707ff", "cves": ["CVE-2024-10979"], "html": "<p>Prevent trusted PL/Perl code from changing environment variables (Andrew Dunstan, Noah Misch) <a href=\"https://postgr.es/c/3ebcfa54d\">§</a> <a href=\"https://postgr.es/c/4cd4f3b97\">§</a> <a href=\"https://postgr.es/c/8d19f3fea\">§</a></p>\n<p>The ability to manipulate process environment variables such as <code>PATH</code> gives an attacker opportunities to execute arbitrary code. Therefore, <span>“<span>trusted</span>”</span> PLs must not offer the ability to do that. To fix <code>plperl</code>, replace <code>%ENV</code> with a tied hash that rejects any modification attempt with a warning. Untrusted <code>plperlu</code> retains the ability to change the environment.</p>\n<p>The <span>PostgreSQL</span> Project thanks Coby Abrams for reporting this problem. (CVE-2024-10979)</p>", "text": "Prevent trusted PL/Perl code from changing environment variables (Andrew Dunstan, Noah Misch) § § § The ability to manipulate process environment variables such as PATH gives an attacker opportunities to execute arbitrary code. Therefore, “trusted” PLs must not offer the ability to do that. To fix plperl, replace %ENV with a tied hash that rejects any modification attempt with a warning. Untrusted plperlu retains the ability to change the environment. The PostgreSQL Project thanks Coby Abrams for reporting this problem. (CVE-2024-10979)", "title": "Prevent trusted PL/Perl code from changing environment variables", "commits": ["3ebcfa54d", "4cd4f3b97", "8d19f3fea"], "section": "Changes", "category": "security", "source_url": "/docs/release/17.1/#RELEASE-17-1-CHANGES", "source_hash": "931cc295f5770e69b9a41c6ada3c4514dc5f3381e5f6c8576932b1b6c31ae6fc", "section_path": ["Changes"], "commit_groups": [["0bd9560d9", "256e34653", "64df88700", "8d19f3fea", "9fc1c3a02", "c4252c9ef", "c834b375a"], ["168579e23"], ["16ed4f4d0", "1e457468f", "9f97c31c2", "c1fff7b1b", "c335264c9"], ["2ab12d860", "3ebcfa54d", "8fe3e697a", "b7e3a52a8", "d15ec27c9", "e428cd058", "e530835c6"], ["4cd4f3b97", "6bccd7b03", "88269df4d", "a34c33fd2", "b1e58defb", "f89bd92c9"]], "identity_text": "Prevent trusted PL/Perl code from changing environment variables (Andrew Dunstan, Noah Misch) The ability to manipulate process environment variables such as PATH gives an attacker opportunities to execute arbitrary code. Therefore, trusted PLs must not offer the ability to do that. To fix plperl, replace %ENV with a tied hash that rejects any modification attempt with a warning. Untrusted plperlu retains the ability to change the environment. The PostgreSQL Project thanks Coby Abrams for reporting this problem. (CVE-2024-10979)", "commit_aliases": ["0bd9560d9", "168579e23", "16ed4f4d0", "1e457468f", "256e34653", "2ab12d860", "3ebcfa54d", "4cd4f3b97", "64df88700", "6bccd7b03", "88269df4d", "8d19f3fea", "8fe3e697a", "9f97c31c2", "9fc1c3a02", "a34c33fd2", "b1e58defb", "b7e3a52a8", "c1fff7b1b", "c335264c9", "c4252c9ef", "c834b375a", "d15ec27c9", "e428cd058", "e530835c6", "f89bd92c9"], "source_commits": ["168579e23", "3ebcfa54d", "4cd4f3b97", "8d19f3fea", "c335264c9"], "source_entry_id": "17.1/changes/004", "db_id": "88cb0753c619cb8ffb55dd3992fec3ae", "patch_ids": ["1af95cf54ee9908abe88fa7a3ffd5abe", "3ffa60097fb5097805f3eb797ff822d0", "4b5346a4224ce3743b7a7f567408da6f", "836669172595edcd77e373a3f0fbe3c5", "949df75f7944a4ee7452f9fa31e2ea86"], "statement_hash": "298ced72d35046c9614efe5d933839f66d4cb8e7b59aa240ad80fd1c39e896ec", "relations": [{"rule": 2, "type": "equivalent", "target": "0a701592b8a9b3174c5f3918bbef8dd6", "evidence": {"same_day": true, "patch_ids": ["1af95cf54ee9908abe88fa7a3ffd5abe", "3ffa60097fb5097805f3eb797ff822d0", "4b5346a4224ce3743b7a7f567408da6f", "836669172595edcd77e373a3f0fbe3c5", "949df75f7944a4ee7452f9fa31e2ea86"], "statement_hash": "298ced72d35046c9614efe5d933839f66d4cb8e7b59aa240ad80fd1c39e896ec"}}, {"rule": 2, "type": "equivalent", "target": "2066e4f8fce90840b573e98b707266c8", "evidence": {"same_day": true, "patch_ids": ["1af95cf54ee9908abe88fa7a3ffd5abe", "3ffa60097fb5097805f3eb797ff822d0", "4b5346a4224ce3743b7a7f567408da6f", "836669172595edcd77e373a3f0fbe3c5", "949df75f7944a4ee7452f9fa31e2ea86"], "statement_hash": "298ced72d35046c9614efe5d933839f66d4cb8e7b59aa240ad80fd1c39e896ec"}}, {"rule": 2, "type": "equivalent", "target": "48c45a7465e356c96eee7b77e513f0c9", "evidence": {"same_day": true, "patch_ids": ["1af95cf54ee9908abe88fa7a3ffd5abe", "3ffa60097fb5097805f3eb797ff822d0", "4b5346a4224ce3743b7a7f567408da6f", "836669172595edcd77e373a3f0fbe3c5", "949df75f7944a4ee7452f9fa31e2ea86"], "statement_hash": "298ced72d35046c9614efe5d933839f66d4cb8e7b59aa240ad80fd1c39e896ec"}}, {"rule": 2, "type": "equivalent", "target": "e6325045df38d2253c8faef82c16e050", "evidence": {"same_day": true, "patch_ids": ["1af95cf54ee9908abe88fa7a3ffd5abe", "3ffa60097fb5097805f3eb797ff822d0", "4b5346a4224ce3743b7a7f567408da6f", "836669172595edcd77e373a3f0fbe3c5", "949df75f7944a4ee7452f9fa31e2ea86"], "statement_hash": "298ced72d35046c9614efe5d933839f66d4cb8e7b59aa240ad80fd1c39e896ec"}}, {"rule": 2, "type": "equivalent", "target": "e8bdec3e3e6cd8239b40cec431d635ac", "evidence": {"same_day": true, "patch_ids": ["1af95cf54ee9908abe88fa7a3ffd5abe", "3ffa60097fb5097805f3eb797ff822d0", "4b5346a4224ce3743b7a7f567408da6f", "836669172595edcd77e373a3f0fbe3c5", "949df75f7944a4ee7452f9fa31e2ea86"], "statement_hash": "298ced72d35046c9614efe5d933839f66d4cb8e7b59aa240ad80fd1c39e896ec"}}], "version": "17.1", "category_label": "Security", "also_in": [], "variants": [], "related_changes": [{"db_id": "e6325045df38d2253c8faef82c16e050", "kind": "equivalent", "version": "16.5", "label": "16.5", "title": "Prevent trusted PL/Perl code from changing environment variables", "evidence": {"same_day": true, "patch_ids": ["1af95cf54ee9908abe88fa7a3ffd5abe", "3ffa60097fb5097805f3eb797ff822d0", "4b5346a4224ce3743b7a7f567408da6f", "836669172595edcd77e373a3f0fbe3c5", "949df75f7944a4ee7452f9fa31e2ea86"], "statement_hash": "298ced72d35046c9614efe5d933839f66d4cb8e7b59aa240ad80fd1c39e896ec"}, "url": "/docs/compare/?release=16.5#16.5-3b4f7138a28e92e1", "source_url": "/docs/release/16.5/#RELEASE-16-5-CHANGES"}, {"db_id": "0a701592b8a9b3174c5f3918bbef8dd6", "kind": "equivalent", "version": "15.9", "label": "15.9", "title": "Prevent trusted PL/Perl code from changing environment variables", "evidence": {"same_day": true, "patch_ids": ["1af95cf54ee9908abe88fa7a3ffd5abe", "3ffa60097fb5097805f3eb797ff822d0", "4b5346a4224ce3743b7a7f567408da6f", "836669172595edcd77e373a3f0fbe3c5", "949df75f7944a4ee7452f9fa31e2ea86"], "statement_hash": "298ced72d35046c9614efe5d933839f66d4cb8e7b59aa240ad80fd1c39e896ec"}, "url": "/docs/compare/?release=15.9#15.9-c9b0c46ba6e5aa14", "source_url": "/docs/release/15.9/#id-1.11.6.16.5"}, {"db_id": "48c45a7465e356c96eee7b77e513f0c9", "kind": "equivalent", "version": "14.14", "label": "14.14", "title": "Prevent trusted PL/Perl code from changing environment variables", "evidence": {"same_day": true, "patch_ids": ["1af95cf54ee9908abe88fa7a3ffd5abe", "3ffa60097fb5097805f3eb797ff822d0", "4b5346a4224ce3743b7a7f567408da6f", "836669172595edcd77e373a3f0fbe3c5", "949df75f7944a4ee7452f9fa31e2ea86"], "statement_hash": "298ced72d35046c9614efe5d933839f66d4cb8e7b59aa240ad80fd1c39e896ec"}, "url": "/docs/compare/?release=14.14#14.14-cc2f3258f095a62a", "source_url": "/docs/release/14.14/#id-1.11.6.16.5"}, {"db_id": "e8bdec3e3e6cd8239b40cec431d635ac", "kind": "equivalent", "version": "13.17", "label": "13.17", "title": "Prevent trusted PL/Perl code from changing environment variables", "evidence": {"same_day": true, "patch_ids": ["1af95cf54ee9908abe88fa7a3ffd5abe", "3ffa60097fb5097805f3eb797ff822d0", "4b5346a4224ce3743b7a7f567408da6f", "836669172595edcd77e373a3f0fbe3c5", "949df75f7944a4ee7452f9fa31e2ea86"], "statement_hash": "298ced72d35046c9614efe5d933839f66d4cb8e7b59aa240ad80fd1c39e896ec"}, "url": "/docs/compare/?release=13.17#13.17-458fde2a378dd869", "source_url": "/docs/release/13.17/#id-1.11.6.12.5"}, {"db_id": "2066e4f8fce90840b573e98b707266c8", "kind": "equivalent", "version": "12.21", "label": "12.21", "title": "Prevent trusted PL/Perl code from changing environment variables", "evidence": {"same_day": true, "patch_ids": ["1af95cf54ee9908abe88fa7a3ffd5abe", "3ffa60097fb5097805f3eb797ff822d0", "4b5346a4224ce3743b7a7f567408da6f", "836669172595edcd77e373a3f0fbe3c5", "949df75f7944a4ee7452f9fa31e2ea86"], "statement_hash": "298ced72d35046c9614efe5d933839f66d4cb8e7b59aa240ad80fd1c39e896ec"}, "url": "/docs/compare/?release=12.21#12.21-1e5606f9a5aeeb3a", "source_url": "/docs/release/12.21/#id-1.11.6.7.6"}]}, {"id": "17.1-3b34b5efc6680e84", "cves": [], "html": "<p>Fix updates of catalog state for foreign-key constraints when attaching or detaching table partitions (Jehan-Guillaume de Rorthais, Tender Wang, Álvaro Herrera) <a href=\"https://postgr.es/c/5914a22f6\">§</a> <a href=\"https://postgr.es/c/936ab6de9\">§</a></p>\n<p>If the referenced table is partitioned, then different catalog entries are needed for a referencing table that is stand-alone versus one that is a partition. <code>ATTACH/DETACH PARTITION</code> commands failed to perform this conversion correctly. In particular, after <code>DETACH</code> the now stand-alone table would be missing foreign-key enforcement triggers, which could result in the table later containing rows that fail the foreign-key constraint. A subsequent re-<code>ATTACH</code> could fail with surprising errors, too.</p>\n<p>The way to fix this is to do <code>ALTER TABLE DROP CONSTRAINT</code> on the now stand-alone table for each faulty constraint, and then re-add the constraint. If re-adding the constraint fails, then some erroneous data has crept in. You will need to manually re-establish consistency between the referencing and referenced tables, then re-add the constraint.</p>\n<p>This query can be used to identify broken constraints and construct the commands needed to recreate them:</p>\n<pre>SELECT conrelid::pg_catalog.regclass AS \"constrained table\",\n       conname AS constraint,\n       confrelid::pg_catalog.regclass AS \"references\",\n       pg_catalog.format('ALTER TABLE %s DROP CONSTRAINT %I;',\n                         conrelid::pg_catalog.regclass, conname) AS \"drop\",\n       pg_catalog.format('ALTER TABLE %s ADD CONSTRAINT %I %s;',\n                         conrelid::pg_catalog.regclass, conname,\n                         pg_catalog.pg_get_constraintdef(oid)) AS \"add\"\nFROM pg_catalog.pg_constraint c\nWHERE contype = 'f' AND conparentid = 0 AND\n   (SELECT count(*) FROM pg_catalog.pg_constraint c2\n    WHERE c2.conparentid = c.oid) &lt;&gt;\n   ((SELECT count(*) FROM pg_catalog.pg_inherits i\n    WHERE (i.inhparent = c.conrelid OR i.inhparent = c.confrelid) AND\n      EXISTS (SELECT 1 FROM pg_catalog.pg_partitioned_table\n              WHERE partrelid = i.inhparent)) +\n    CASE WHEN pg_catalog.pg_partition_root(conrelid) = confrelid THEN\n              (SELECT count(*) FROM pg_catalog.pg_partition_tree(confrelid)\n                WHERE level = 1)\n         ELSE 0 END);\n</pre>\n<p>Since it is possible that one or more of the <code>ADD CONSTRAINT</code> steps will fail, you should save the query's output in a file and then attempt to perform each step.</p>", "text": "Fix updates of catalog state for foreign-key constraints when attaching or detaching table partitions (Jehan-Guillaume de Rorthais, Tender Wang, Álvaro Herrera) § § If the referenced table is partitioned, then different catalog entries are needed for a referencing table that is stand-alone versus one that is a partition. ATTACH/DETACH PARTITION commands failed to perform this conversion correctly. In particular, after DETACH the now stand-alone table would be missing foreign-key enforcement triggers, which could result in the table later containing rows that fail the foreign-key constraint. A subsequent re-ATTACH could fail with surprising errors, too. The way to fix this is to do ALTER TABLE DROP CONSTRAINT on the now stand-alone table for each faulty constraint, and then re-add the constraint. If re-adding the constraint fails, then some erroneous data has crept in. You will need to manually re-establish consistency between the referencing and referenced tables, then re-add the constraint. This query can be used to identify broken constraints and construct the commands needed to recreate them: SELECT conrelid::pg_catalog.regclass AS \"constrained table\", conname AS constraint, confrelid::pg_catalog.regclass AS \"references\", pg_catalog.format('ALTER TABLE %s DROP CONSTRAINT %I;', conrelid::pg_catalog.regclass, conname) AS \"drop\", pg_catalog.format('ALTER TABLE %s ADD CONSTRAINT %I %s;', conrelid::pg_catalog.regclass, conname, pg_catalog.pg_get_constraintdef(oid)) AS \"add\" FROM pg_catalog.pg_constraint c WHERE contype = 'f' AND conparentid = 0 AND (SELECT count(*) FROM pg_catalog.pg_constraint c2 WHERE c2.conparentid = c.oid) <> ((SELECT count(*) FROM pg_catalog.pg_inherits i WHERE (i.inhparent = c.conrelid OR i.inhparent = c.confrelid) AND EXISTS (SELECT 1 FROM pg_catalog.pg_partitioned_table WHERE partrelid = i.inhparent)) + CASE WHEN pg_catalog.pg_partition_root(conrelid) = confrelid THEN (SELECT count(*) FROM pg_catalog.pg_partition_tree(confrelid) WHERE level = 1) ELSE 0 END); Since it is possible that one or more of the ADD CONSTRAINT steps will fail, you should save the query's output in a file and then attempt to perform each step.", "title": "Fix updates of catalog state for foreign-key constraints when attaching or detaching table partitions", "commits": ["5914a22f6", "936ab6de9"], "section": "Changes", "category": "bugfix", "source_url": "/docs/release/17.1/#RELEASE-17-1-CHANGES", "source_hash": "7aaf81be444b1c21c286616499641fd7ca164d4faffb703ad371851f84f328b3", "section_path": ["Changes"], "commit_groups": [["1b216fcef", "2d5fe5140", "936ab6de9", "f7d510a38"], ["2aaf2a28b", "46a8c27a7", "53af9491a", "5914a22f6", "5d83bad6b", "d20194cea"]], "identity_text": "Fix updates of catalog state for foreign-key constraints when attaching or detaching table partitions (Jehan-Guillaume de Rorthais, Tender Wang, Álvaro Herrera) If the referenced table is partitioned, then different catalog entries are needed for a referencing table that is stand-alone versus one that is a partition. ATTACH/DETACH PARTITION commands failed to perform this conversion correctly. In particular, after DETACH the now stand-alone table would be missing foreign-key enforcement triggers, which could result in the table later containing rows that fail the foreign-key constraint. A subsequent re-ATTACH could fail with surprising errors, too. The way to fix this is to do ALTER TABLE DROP CONSTRAINT on the now stand-alone table for each faulty constraint, and then re-add the constraint. If re-adding the constraint fails, then some erroneous data has crept in. You will need to manually re-establish consistency between the referencing and referenced tables, then re-add the constraint. This query can be used to identify broken constraints and construct the commands needed to recreate them: SELECT conrelid::pg_catalog.regclass AS \"constrained table\", conname AS constraint, confrelid::pg_catalog.regclass AS \"references\", pg_catalog.format('ALTER TABLE %s DROP CONSTRAINT %I;', conrelid::pg_catalog.regclass, conname) AS \"drop\", pg_catalog.format('ALTER TABLE %s ADD CONSTRAINT %I %s;', conrelid::pg_catalog.regclass, conname, pg_catalog.pg_get_constraintdef(oid)) AS \"add\" FROM pg_catalog.pg_constraint c WHERE contype = 'f' AND conparentid = 0 AND (SELECT count(*) FROM pg_catalog.pg_constraint c2 WHERE c2.conparentid = c.oid) <> ((SELECT count(*) FROM pg_catalog.pg_inherits i WHERE (i.inhparent = c.conrelid OR i.inhparent = c.confrelid) AND EXISTS (SELECT 1 FROM pg_catalog.pg_partitioned_table WHERE partrelid = i.inhparent)) + CASE WHEN pg_catalog.pg_partition_root(conrelid) = confrelid THEN (SELECT count(*) FROM pg_catalog.pg_partition_tree(confrelid) WHERE level = 1) ELSE 0 END); Since it is possible that one or more of the ADD CONSTRAINT steps will fail, you should save the query's output in a file and then attempt to perform each step.", "commit_aliases": ["1b216fcef", "2aaf2a28b", "2d5fe5140", "46a8c27a7", "53af9491a", "5914a22f6", "5d83bad6b", "936ab6de9", "d20194cea", "f7d510a38"], "source_commits": ["5914a22f6", "936ab6de9"], "source_entry_id": "17.1/changes/005", "db_id": "748d33942f3736ea94422866a8d7bc90", "patch_ids": ["23f1d10b491a02db8ab57e96c92545eb", "ed2dc06153d479005be94f40dd042561"], "statement_hash": "86082e9ffcfe999a98bf0e5b7bb48f150126be81b185d979806bb20b3809fa03", "relations": [{"rule": 2, "type": "equivalent", "target": "05faec547b57fcd479d5d3834fbd050e", "evidence": {"same_day": true, "patch_ids": ["23f1d10b491a02db8ab57e96c92545eb", "ed2dc06153d479005be94f40dd042561"], "statement_hash": "86082e9ffcfe999a98bf0e5b7bb48f150126be81b185d979806bb20b3809fa03"}}, {"rule": 2, "type": "equivalent", "target": "2e62d425855f2ef72a74f21c1ec997db", "evidence": {"same_day": true, "patch_ids": ["23f1d10b491a02db8ab57e96c92545eb", "ed2dc06153d479005be94f40dd042561"], "statement_hash": "86082e9ffcfe999a98bf0e5b7bb48f150126be81b185d979806bb20b3809fa03"}}, {"rule": 2, "type": "equivalent", "target": "876e0bbaabd424006a6c9bb02ee056db", "evidence": {"same_day": true, "patch_ids": ["23f1d10b491a02db8ab57e96c92545eb", "ed2dc06153d479005be94f40dd042561"], "statement_hash": "86082e9ffcfe999a98bf0e5b7bb48f150126be81b185d979806bb20b3809fa03"}}, {"rule": 2, "type": "equivalent", "target": "c371525cbc62547fea8074194d0bbf97", "evidence": {"same_day": true, "patch_ids": ["23f1d10b491a02db8ab57e96c92545eb", "ed2dc06153d479005be94f40dd042561"], "statement_hash": "86082e9ffcfe999a98bf0e5b7bb48f150126be81b185d979806bb20b3809fa03"}}], "version": "17.1", "category_label": "Bug fixes", "also_in": [], "variants": [], "related_changes": [{"db_id": "2e62d425855f2ef72a74f21c1ec997db", "kind": "equivalent", "version": "16.5", "label": "16.5", "title": "Fix updates of catalog state for foreign-key constraints when attaching or detaching table partitions", "evidence": {"same_day": true, "patch_ids": ["23f1d10b491a02db8ab57e96c92545eb", "ed2dc06153d479005be94f40dd042561"], "statement_hash": "86082e9ffcfe999a98bf0e5b7bb48f150126be81b185d979806bb20b3809fa03"}, "url": "/docs/compare/?release=16.5#16.5-da80fe139c5ca832", "source_url": "/docs/release/16.5/#RELEASE-16-5-CHANGES"}, {"db_id": "c371525cbc62547fea8074194d0bbf97", "kind": "equivalent", "version": "15.9", "label": "15.9", "title": "Fix updates of catalog state for foreign-key constraints when attaching or detaching table partitions", "evidence": {"same_day": true, "patch_ids": ["23f1d10b491a02db8ab57e96c92545eb", "ed2dc06153d479005be94f40dd042561"], "statement_hash": "86082e9ffcfe999a98bf0e5b7bb48f150126be81b185d979806bb20b3809fa03"}, "url": "/docs/compare/?release=15.9#15.9-87d199b0548b7397", "source_url": "/docs/release/15.9/#id-1.11.6.16.5"}, {"db_id": "876e0bbaabd424006a6c9bb02ee056db", "kind": "equivalent", "version": "14.14", "label": "14.14", "title": "Fix updates of catalog state for foreign-key constraints when attaching or detaching table partitions", "evidence": {"same_day": true, "patch_ids": ["23f1d10b491a02db8ab57e96c92545eb", "ed2dc06153d479005be94f40dd042561"], "statement_hash": "86082e9ffcfe999a98bf0e5b7bb48f150126be81b185d979806bb20b3809fa03"}, "url": "/docs/compare/?release=14.14#14.14-84ee07415a5a9237", "source_url": "/docs/release/14.14/#id-1.11.6.16.5"}, {"db_id": "05faec547b57fcd479d5d3834fbd050e", "kind": "equivalent", "version": "13.17", "label": "13.17", "title": "Fix updates of catalog state for foreign-key constraints when attaching or detaching table partitions", "evidence": {"same_day": true, "patch_ids": ["23f1d10b491a02db8ab57e96c92545eb", "ed2dc06153d479005be94f40dd042561"], "statement_hash": "86082e9ffcfe999a98bf0e5b7bb48f150126be81b185d979806bb20b3809fa03"}, "url": "/docs/compare/?release=13.17#13.17-81cbf6771f847538", "source_url": "/docs/release/13.17/#id-1.11.6.12.5"}]}, {"id": "17.1-db13297112edd10e", "cves": [], "html": "<p>Fix test for <code>C</code> locale when <code>LC_COLLATE</code> is different from <code>LC_CTYPE</code> (Jeff Davis) <a href=\"https://postgr.es/c/8148e7124\">§</a></p>\n<p>When using <code>libc</code> as the default collation provider, the test to see if <code>C</code> locale is in use for collation accidentally checked <code>LC_CTYPE</code> not <code>LC_COLLATE</code>. This has no impact in the typical case where those settings are the same, nor if both are not <code>C</code> (nor its alias <code>POSIX</code>). However, if <code>LC_CTYPE</code> is <code>C</code> while <code>LC_COLLATE</code> is some other locale, wrong query answers could ensue, and corruption of indexes on strings was possible. Users of databases with such settings should reindex affected indexes after installing this update. The converse case with <code>LC_COLLATE</code> being <code>C</code> while <code>LC_CTYPE</code> is some other locale would cause performance degradation, but no actual errors.</p>", "text": "Fix test for C locale when LC_COLLATE is different from LC_CTYPE (Jeff Davis) § When using libc as the default collation provider, the test to see if C locale is in use for collation accidentally checked LC_CTYPE not LC_COLLATE. This has no impact in the typical case where those settings are the same, nor if both are not C (nor its alias POSIX). However, if LC_CTYPE is C while LC_COLLATE is some other locale, wrong query answers could ensue, and corruption of indexes on strings was possible. Users of databases with such settings should reindex affected indexes after installing this update. The converse case with LC_COLLATE being C while LC_CTYPE is some other locale would cause performance degradation, but no actual errors.", "title": "Fix test for C locale when LC_COLLATE is different from LC_CTYPE", "commits": ["8148e7124"], "section": "Changes", "category": "bugfix", "source_url": "/docs/release/17.1/#RELEASE-17-1-CHANGES", "source_hash": "3a4a03b3abdb9fb573540e089b5efd5ba7f4df7b6eb8cfea712cf7e135bc0e48", "section_path": ["Changes"], "commit_groups": [["8148e7124"]], "identity_text": "Fix test for C locale when LC_COLLATE is different from LC_CTYPE (Jeff Davis) When using libc as the default collation provider, the test to see if C locale is in use for collation accidentally checked LC_CTYPE not LC_COLLATE. This has no impact in the typical case where those settings are the same, nor if both are not C (nor its alias POSIX). However, if LC_CTYPE is C while LC_COLLATE is some other locale, wrong query answers could ensue, and corruption of indexes on strings was possible. Users of databases with such settings should reindex affected indexes after installing this update. The converse case with LC_COLLATE being C while LC_CTYPE is some other locale would cause performance degradation, but no actual errors.", "commit_aliases": ["8148e7124"], "source_commits": ["8148e7124"], "source_entry_id": "17.1/changes/006", "db_id": "3f49809b8c4b6e408fdd704f9992cac6", "patch_ids": ["c547321ac788df226ed4352b5cdaf3a9"], "statement_hash": "f0fdc39e97d703b9a3d6723b1e260f52534c8fcec6581cbad40b039da1c58b89", "relations": [], "version": "17.1", "category_label": "Bug fixes", "also_in": [], "variants": [], "related_changes": []}, {"id": "17.1-068ad9165df3c428", "cves": [], "html": "<p>Don't use partitionwise joins or grouping if the query's collation for the key column doesn't match the partition key's collation (Jian He, Webbo Han) <a href=\"https://postgr.es/c/a0cdfc889\">§</a> <a href=\"https://postgr.es/c/b6484ca95\">§</a></p>\n<p>Such plans could produce incorrect results.</p>", "text": "Don't use partitionwise joins or grouping if the query's collation for the key column doesn't match the partition key's collation (Jian He, Webbo Han) § § Such plans could produce incorrect results.", "title": "Don't use partitionwise joins or grouping if the query's collation for the key column doesn't match the partition key's collation", "commits": ["a0cdfc889", "b6484ca95"], "section": "Changes", "category": "improvement", "source_url": "/docs/release/17.1/#RELEASE-17-1-CHANGES", "source_hash": "815b22040d7e400a0fac9d44ad9494bbe01fd9dbd76178e4a73abc18bcd5217c", "section_path": ["Changes"], "commit_groups": [["054701a2b", "075acdd93", "33040b171", "62df5484f", "9c4757491", "a0cdfc889", "f734b6b4d"], ["0a620659c", "46d9be5ef", "90fe6251c", "96f9b29a3", "b6484ca95", "dd2f8ebee", "ff65f695c"]], "identity_text": "Don't use partitionwise joins or grouping if the query's collation for the key column doesn't match the partition key's collation (Jian He, Webbo Han) Such plans could produce incorrect results.", "commit_aliases": ["054701a2b", "075acdd93", "0a620659c", "33040b171", "46d9be5ef", "62df5484f", "90fe6251c", "96f9b29a3", "9c4757491", "a0cdfc889", "b6484ca95", "dd2f8ebee", "f734b6b4d", "ff65f695c"], "source_commits": ["a0cdfc889", "b6484ca95"], "source_entry_id": "17.1/changes/007", "db_id": "2ef513eca41dc1e5b7f619bb844c48c4", "patch_ids": ["53c85220dd3488287a3c68a4008b4e8d", "77fd1bde27634394090ee891d7579f1e"], "statement_hash": "1eb1116b9e982b95403ab2910d839e7e5699beec39e01affdecbe6a60de4283b", "relations": [{"rule": 2, "type": "equivalent", "target": "627f4d65ab84d4ed8aa805e9a4e5c849", "evidence": {"same_day": true, "patch_ids": ["53c85220dd3488287a3c68a4008b4e8d", "77fd1bde27634394090ee891d7579f1e"], "statement_hash": "1eb1116b9e982b95403ab2910d839e7e5699beec39e01affdecbe6a60de4283b"}}, {"rule": 2, "type": "equivalent", "target": "97084b07a26e28d94fdf228d94460f63", "evidence": {"same_day": true, "patch_ids": ["53c85220dd3488287a3c68a4008b4e8d", "77fd1bde27634394090ee891d7579f1e"], "statement_hash": "1eb1116b9e982b95403ab2910d839e7e5699beec39e01affdecbe6a60de4283b"}}, {"rule": 2, "type": "equivalent", "target": "cf9cca4c2bbd52000591f7989aa5d6a1", "evidence": {"same_day": true, "patch_ids": ["53c85220dd3488287a3c68a4008b4e8d", "77fd1bde27634394090ee891d7579f1e"], "statement_hash": "1eb1116b9e982b95403ab2910d839e7e5699beec39e01affdecbe6a60de4283b"}}, {"rule": 2, "type": "equivalent", "target": "ee502d77983c018bbc01ab92640da315", "evidence": {"same_day": true, "patch_ids": ["53c85220dd3488287a3c68a4008b4e8d", "77fd1bde27634394090ee891d7579f1e"], "statement_hash": "1eb1116b9e982b95403ab2910d839e7e5699beec39e01affdecbe6a60de4283b"}}, {"rule": 2, "type": "equivalent", "target": "fa1ae7acee5e324651d15e2e1046939b", "evidence": {"same_day": true, "patch_ids": ["53c85220dd3488287a3c68a4008b4e8d", "77fd1bde27634394090ee891d7579f1e"], "statement_hash": "1eb1116b9e982b95403ab2910d839e7e5699beec39e01affdecbe6a60de4283b"}}], "version": "17.1", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": [{"db_id": "cf9cca4c2bbd52000591f7989aa5d6a1", "kind": "equivalent", "version": "16.5", "label": "16.5", "title": "Don't use partitionwise joins or grouping if the query's collation for the key column doesn't match the partition key's collation", "evidence": {"same_day": true, "patch_ids": ["53c85220dd3488287a3c68a4008b4e8d", "77fd1bde27634394090ee891d7579f1e"], "statement_hash": "1eb1116b9e982b95403ab2910d839e7e5699beec39e01affdecbe6a60de4283b"}, "url": "/docs/compare/?release=16.5#16.5-5f8a220ad7c1cc27", "source_url": "/docs/release/16.5/#RELEASE-16-5-CHANGES"}, {"db_id": "fa1ae7acee5e324651d15e2e1046939b", "kind": "equivalent", "version": "15.9", "label": "15.9", "title": "Don't use partitionwise joins or grouping if the query's collation for the key column doesn't match the partition key's collation", "evidence": {"same_day": true, "patch_ids": ["53c85220dd3488287a3c68a4008b4e8d", "77fd1bde27634394090ee891d7579f1e"], "statement_hash": "1eb1116b9e982b95403ab2910d839e7e5699beec39e01affdecbe6a60de4283b"}, "url": "/docs/compare/?release=15.9#15.9-f5ceb7681d512e5e", "source_url": "/docs/release/15.9/#id-1.11.6.16.5"}, {"db_id": "627f4d65ab84d4ed8aa805e9a4e5c849", "kind": "equivalent", "version": "14.14", "label": "14.14", "title": "Don't use partitionwise joins or grouping if the query's collation for the key column doesn't match the partition key's collation", "evidence": {"same_day": true, "patch_ids": ["53c85220dd3488287a3c68a4008b4e8d", "77fd1bde27634394090ee891d7579f1e"], "statement_hash": "1eb1116b9e982b95403ab2910d839e7e5699beec39e01affdecbe6a60de4283b"}, "url": "/docs/compare/?release=14.14#14.14-8ebf3b7cfddc2170", "source_url": "/docs/release/14.14/#id-1.11.6.16.5"}, {"db_id": "97084b07a26e28d94fdf228d94460f63", "kind": "equivalent", "version": "13.17", "label": "13.17", "title": "Don't use partitionwise joins or grouping if the query's collation for the key column doesn't match the partition key's collation", "evidence": {"same_day": true, "patch_ids": ["53c85220dd3488287a3c68a4008b4e8d", "77fd1bde27634394090ee891d7579f1e"], "statement_hash": "1eb1116b9e982b95403ab2910d839e7e5699beec39e01affdecbe6a60de4283b"}, "url": "/docs/compare/?release=13.17#13.17-b9ea968190d4d09e", "source_url": "/docs/release/13.17/#id-1.11.6.12.5"}, {"db_id": "ee502d77983c018bbc01ab92640da315", "kind": "equivalent", "version": "12.21", "label": "12.21", "title": "Don't use partitionwise joins or grouping if the query's collation for the key column doesn't match the partition key's collation", "evidence": {"same_day": true, "patch_ids": ["53c85220dd3488287a3c68a4008b4e8d", "77fd1bde27634394090ee891d7579f1e"], "statement_hash": "1eb1116b9e982b95403ab2910d839e7e5699beec39e01affdecbe6a60de4283b"}, "url": "/docs/compare/?release=12.21#12.21-77ba4c09c5b839fb", "source_url": "/docs/release/12.21/#id-1.11.6.7.6"}]}, {"id": "17.1-d4e30d6665cb5227", "cves": [], "html": "<p>Avoid planner failure after converting an <code>IS NULL</code> test on a <code>NOT NULL</code> column to constant <code>FALSE</code> (Richard Guo) <a href=\"https://postgr.es/c/78b1c553b\">§</a></p>\n<p>This bug typically led to errors such as <span>“<span>variable not found in subplan target lists</span>”</span>.</p>", "text": "Avoid planner failure after converting an IS NULL test on a NOT NULL column to constant FALSE (Richard Guo) § This bug typically led to errors such as “variable not found in subplan target lists”.", "title": "Avoid planner failure after converting an IS NULL test on a NOT NULL column to constant FALSE", "commits": ["78b1c553b"], "section": "Changes", "category": "improvement", "source_url": "/docs/release/17.1/#RELEASE-17-1-CHANGES", "source_hash": "93d0d3626c3185e832d1a7cd02635478fa47918b51b9b9d85925e5e70d78d62b", "section_path": ["Changes"], "commit_groups": [["78b1c553b", "f00ab1fd1"]], "identity_text": "Avoid planner failure after converting an IS NULL test on a NOT NULL column to constant FALSE (Richard Guo) This bug typically led to errors such as variable not found in subplan target lists.", "commit_aliases": ["78b1c553b", "f00ab1fd1"], "source_commits": ["78b1c553b"], "source_entry_id": "17.1/changes/008", "db_id": "9578bddbb7e935d64b4386cc63d8ea58", "patch_ids": ["1f5c67259257eb563985c95cefd4227b"], "statement_hash": "cfb184c7b5220b4b75fe06ec23afec25ff101bde0150feb71a3f1b35a2229db0", "relations": [], "version": "17.1", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": []}, {"id": "17.1-be2f094f4975be4b", "cves": [], "html": "<p>Avoid possible planner crash while inlining a SQL function whose arguments contain certain array-related constructs (Tom Lane, Nathan Bossart) <a href=\"https://postgr.es/c/a3c4a91f1\">§</a></p>", "text": "Avoid possible planner crash while inlining a SQL function whose arguments contain certain array-related constructs (Tom Lane, Nathan Bossart) §", "title": "Avoid possible planner crash while inlining a SQL function whose arguments contain certain array-related constructs", "commits": ["a3c4a91f1"], "section": "Changes", "category": "bugfix", "source_url": "/docs/release/17.1/#RELEASE-17-1-CHANGES", "source_hash": "4cb3d43eb01e480e955a2ce9ade3571e5ddde06a55f12deb8318720b5c4d8447", "section_path": ["Changes"], "commit_groups": [["5a4416192", "a3c4a91f1"]], "identity_text": "Avoid possible planner crash while inlining a SQL function whose arguments contain certain array-related constructs (Tom Lane, Nathan Bossart)", "commit_aliases": ["5a4416192", "a3c4a91f1"], "source_commits": ["a3c4a91f1"], "source_entry_id": "17.1/changes/009", "db_id": "fa9e3d00df6e804255bcb518132b84b3", "patch_ids": ["0693218a41f5d4b7394e40047f14556c"], "statement_hash": "6b5a97bd3457df939d7ae1ad5dae5ef0c1d114a1478473bcf717b45983b8887e", "relations": [], "version": "17.1", "category_label": "Bug fixes", "also_in": [], "variants": [], "related_changes": []}, {"id": "17.1-696ecfc68f049e9a", "cves": [], "html": "<p>Fix possible wrong answers or <span>“<span>wrong varnullingrels</span>”</span> planner errors for <code>MERGE ... WHEN NOT MATCHED BY SOURCE</code> actions (Dean Rasheed) <a href=\"https://postgr.es/c/d7d297f84\">§</a> <a href=\"https://postgr.es/c/34ae54af9\">§</a></p>", "text": "Fix possible wrong answers or “wrong varnullingrels” planner errors for MERGE ... WHEN NOT MATCHED BY SOURCE actions (Dean Rasheed) § §", "title": "Fix possible wrong answers or “wrong varnullingrels” planner errors for MERGE ... WHEN NOT MATCHED BY SOURCE actions", "commits": ["34ae54af9", "d7d297f84"], "section": "Changes", "category": "bugfix", "source_url": "/docs/release/17.1/#RELEASE-17-1-CHANGES", "source_hash": "f9c60bb0176f2d573774243d78b57a6013cafd324a97e307893cd53dc165e7d8", "section_path": ["Changes"], "commit_groups": [["259a0a99f", "34ae54af9"], ["d7d297f84", "dddb5640c"]], "identity_text": "Fix possible wrong answers or wrong varnullingrels planner errors for MERGE ... WHEN NOT MATCHED BY SOURCE actions (Dean Rasheed)", "commit_aliases": ["259a0a99f", "34ae54af9", "d7d297f84", "dddb5640c"], "source_commits": ["34ae54af9", "d7d297f84"], "source_entry_id": "17.1/changes/010", "db_id": "bd5980d71f612f8bc02fa3b13dda7923", "patch_ids": ["202acc77e97626832f2037b08fd33c0c", "7dc3efbaf0469302dddcff448762bd54"], "statement_hash": "7929949a5d00b4f9119eeac0cb3cc441f6f28d59e8a5d5e1f12a1acbf7e7eaed", "relations": [], "version": "17.1", "category_label": "Bug fixes", "also_in": [], "variants": [], "related_changes": []}, {"id": "17.1-10bcbc67bced25f2", "cves": [], "html": "<p>Fix possible <span>“<span>could not find pathkey item to sort</span>”</span> error when the output of a <code>UNION ALL</code> member query needs to be sorted, and the sort column is an expression (Andrei Lepikhov, Tom Lane) <a href=\"https://postgr.es/c/54889ea64\">§</a></p>", "text": "Fix possible “could not find pathkey item to sort” error when the output of a UNION ALL member query needs to be sorted, and the sort column is an expression (Andrei Lepikhov, Tom Lane) §", "title": "Fix possible “could not find pathkey item to sort” error when the output of a UNION ALL member query needs to be sorted, and the sort column is an expression", "commits": ["54889ea64"], "section": "Changes", "category": "bugfix", "source_url": "/docs/release/17.1/#RELEASE-17-1-CHANGES", "source_hash": "8f832db133870a8f520bbc9ca8f6090aa094bfcb19f1eb61dab5cab09f667b4d", "section_path": ["Changes"], "commit_groups": [["4ca708eb3", "4f3bccbaa", "54889ea64", "64635c8af", "76de4b182", "9f954177b"]], "identity_text": "Fix possible could not find pathkey item to sort error when the output of a UNION ALL member query needs to be sorted, and the sort column is an expression (Andrei Lepikhov, Tom Lane)", "commit_aliases": ["4ca708eb3", "4f3bccbaa", "54889ea64", "64635c8af", "76de4b182", "9f954177b"], "source_commits": ["54889ea64"], "source_entry_id": "17.1/changes/011", "db_id": "cee14d7708f551fdd0d1b77687c63987", "patch_ids": ["851fca37ceef957abb601c18faa263b5"], "statement_hash": "afa400b024db10207e61464eb9b9dd7d142af55b749abd50764fd1bc68e7cb60", "relations": [{"rule": 2, "type": "equivalent", "target": "78d8af16e96b804627c6aa71fc3b7bfd", "evidence": {"same_day": true, "patch_ids": ["851fca37ceef957abb601c18faa263b5"], "statement_hash": "afa400b024db10207e61464eb9b9dd7d142af55b749abd50764fd1bc68e7cb60"}}, {"rule": 2, "type": "equivalent", "target": "ca2eee005279ddc6420fd718cf7a897a", "evidence": {"same_day": true, "patch_ids": ["851fca37ceef957abb601c18faa263b5"], "statement_hash": "afa400b024db10207e61464eb9b9dd7d142af55b749abd50764fd1bc68e7cb60"}}, {"rule": 2, "type": "equivalent", "target": "d58826be74b98e827838dbb875a238b3", "evidence": {"same_day": true, "patch_ids": ["851fca37ceef957abb601c18faa263b5"], "statement_hash": "afa400b024db10207e61464eb9b9dd7d142af55b749abd50764fd1bc68e7cb60"}}, {"rule": 2, "type": "equivalent", "target": "e8a3a31febb736280206edb58844057a", "evidence": {"same_day": true, "patch_ids": ["851fca37ceef957abb601c18faa263b5"], "statement_hash": "afa400b024db10207e61464eb9b9dd7d142af55b749abd50764fd1bc68e7cb60"}}], "version": "17.1", "category_label": "Bug fixes", "also_in": [], "variants": [], "related_changes": [{"db_id": "78d8af16e96b804627c6aa71fc3b7bfd", "kind": "equivalent", "version": "16.5", "label": "16.5", "title": "Fix possible “could not find pathkey item to sort” error when the output of a UNION ALL member query needs to be sorted, and the sort column is an expression", "evidence": {"same_day": true, "patch_ids": ["851fca37ceef957abb601c18faa263b5"], "statement_hash": "afa400b024db10207e61464eb9b9dd7d142af55b749abd50764fd1bc68e7cb60"}, "url": "/docs/compare/?release=16.5#16.5-3442c0bcef2d3f7e", "source_url": "/docs/release/16.5/#RELEASE-16-5-CHANGES"}, {"db_id": "e8a3a31febb736280206edb58844057a", "kind": "equivalent", "version": "15.9", "label": "15.9", "title": "Fix possible “could not find pathkey item to sort” error when the output of a UNION ALL member query needs to be sorted, and the sort column is an expression", "evidence": {"same_day": true, "patch_ids": ["851fca37ceef957abb601c18faa263b5"], "statement_hash": "afa400b024db10207e61464eb9b9dd7d142af55b749abd50764fd1bc68e7cb60"}, "url": "/docs/compare/?release=15.9#15.9-ea035b87ae9dddc4", "source_url": "/docs/release/15.9/#id-1.11.6.16.5"}, {"db_id": "d58826be74b98e827838dbb875a238b3", "kind": "equivalent", "version": "14.14", "label": "14.14", "title": "Fix possible “could not find pathkey item to sort” error when the output of a UNION ALL member query needs to be sorted, and the sort column is an expression", "evidence": {"same_day": true, "patch_ids": ["851fca37ceef957abb601c18faa263b5"], "statement_hash": "afa400b024db10207e61464eb9b9dd7d142af55b749abd50764fd1bc68e7cb60"}, "url": "/docs/compare/?release=14.14#14.14-ca8577e9b6c5e871", "source_url": "/docs/release/14.14/#id-1.11.6.16.5"}, {"db_id": "ca2eee005279ddc6420fd718cf7a897a", "kind": "equivalent", "version": "13.17", "label": "13.17", "title": "Fix possible “could not find pathkey item to sort” error when the output of a UNION ALL member query needs to be sorted, and the sort column is an expression", "evidence": {"same_day": true, "patch_ids": ["851fca37ceef957abb601c18faa263b5"], "statement_hash": "afa400b024db10207e61464eb9b9dd7d142af55b749abd50764fd1bc68e7cb60"}, "url": "/docs/compare/?release=13.17#13.17-efb0a0d37ad61667", "source_url": "/docs/release/13.17/#id-1.11.6.12.5"}]}, {"id": "17.1-4ecaf8fc60ea8f6b", "cves": [], "html": "<p>Fix edge case in B-tree ScalarArrayOp index scans (Peter Geoghegan) <a href=\"https://postgr.es/c/c177726ae\">§</a></p>\n<p>When a scrollable cursor with a plan of this kind was backed up to its starting point and then run forward again, wrong answers were possible.</p>", "text": "Fix edge case in B-tree ScalarArrayOp index scans (Peter Geoghegan) § When a scrollable cursor with a plan of this kind was backed up to its starting point and then run forward again, wrong answers were possible.", "title": "Fix edge case in B-tree ScalarArrayOp index scans", "commits": ["c177726ae"], "section": "Changes", "category": "bugfix", "source_url": "/docs/release/17.1/#RELEASE-17-1-CHANGES", "source_hash": "40f51979e31108f0eee03ec68d355ca334f183d48cff2a41ce3728b381542344", "section_path": ["Changes"], "commit_groups": [["763d65ae2", "c177726ae"]], "identity_text": "Fix edge case in B-tree ScalarArrayOp index scans (Peter Geoghegan) When a scrollable cursor with a plan of this kind was backed up to its starting point and then run forward again, wrong answers were possible.", "commit_aliases": ["763d65ae2", "c177726ae"], "source_commits": ["c177726ae"], "source_entry_id": "17.1/changes/012", "db_id": "f62793c19e87f16340d77f0e790e6ffc", "patch_ids": ["3f3e6d64ca18bb6b95cd337e72f8b9e2"], "statement_hash": "9d9eff9dbb27e64ab89fcc2b3ce0ee86780a82463655651a0431f97679ff1f13", "relations": [], "version": "17.1", "category_label": "Bug fixes", "also_in": [], "variants": [], "related_changes": []}, {"id": "17.1-ef0f21203944cfe0", "cves": [], "html": "<p>Fix assertion failure or confusing error message for <code>COPY (<em><code>query</code></em>) TO ...</code>, when the <em><code>query</code></em> is rewritten by a <code>DO INSTEAD NOTIFY</code> rule (Tender Wang, Tom Lane) <a href=\"https://postgr.es/c/3685ad618\">§</a></p>", "text": "Fix assertion failure or confusing error message for COPY (query) TO ..., when the query is rewritten by a DO INSTEAD NOTIFY rule (Tender Wang, Tom Lane) §", "title": "Fix assertion failure or confusing error message for COPY (query) TO ..., when the query is rewritten by a DO INSTEAD NOTIFY rule", "commits": ["3685ad618"], "section": "Changes", "category": "bugfix", "source_url": "/docs/release/17.1/#RELEASE-17-1-CHANGES", "source_hash": "733cc8e27f4b896bf323054b310f5a71afcc76a86326499dea5500e2dfa70cf2", "section_path": ["Changes"], "commit_groups": [["3685ad618", "5e94f616c", "68ad9816c", "6a57a457c", "6c3b2d204", "beab395a4", "c80a1e048"]], "identity_text": "Fix assertion failure or confusing error message for COPY (query) TO ..., when the query is rewritten by a DO INSTEAD NOTIFY rule (Tender Wang, Tom Lane)", "commit_aliases": ["3685ad618", "5e94f616c", "68ad9816c", "6a57a457c", "6c3b2d204", "beab395a4", "c80a1e048"], "source_commits": ["3685ad618"], "source_entry_id": "17.1/changes/013", "db_id": "54e4681cc9f3a4699d374b15ebaebf9a", "patch_ids": ["9e6edee75f519a17ae85b3d74f29066d"], "statement_hash": "f76efad6a1200651434e7559fafcf67c584e31fbb14732fafabf39c5020b7d74", "relations": [{"rule": 2, "type": "equivalent", "target": "4164513d723b4a8d82303cc7b6f6bf52", "evidence": {"same_day": true, "patch_ids": ["9e6edee75f519a17ae85b3d74f29066d"], "statement_hash": "f76efad6a1200651434e7559fafcf67c584e31fbb14732fafabf39c5020b7d74"}}, {"rule": 2, "type": "equivalent", "target": "774c30d3167cc04d5c0d9c1f499874d4", "evidence": {"same_day": true, "patch_ids": ["9e6edee75f519a17ae85b3d74f29066d"], "statement_hash": "f76efad6a1200651434e7559fafcf67c584e31fbb14732fafabf39c5020b7d74"}}, {"rule": 2, "type": "equivalent", "target": "83485ef02bbc0c01b4b407ab922cc34b", "evidence": {"same_day": true, "patch_ids": ["9e6edee75f519a17ae85b3d74f29066d"], "statement_hash": "f76efad6a1200651434e7559fafcf67c584e31fbb14732fafabf39c5020b7d74"}}, {"rule": 2, "type": "equivalent", "target": "86ef642b3ead7de535851b9f33134f73", "evidence": {"same_day": true, "patch_ids": ["9e6edee75f519a17ae85b3d74f29066d"], "statement_hash": "f76efad6a1200651434e7559fafcf67c584e31fbb14732fafabf39c5020b7d74"}}, {"rule": 2, "type": "equivalent", "target": "cb2aad1f1ce1b4266ea310af2b16064b", "evidence": {"same_day": true, "patch_ids": ["9e6edee75f519a17ae85b3d74f29066d"], "statement_hash": "f76efad6a1200651434e7559fafcf67c584e31fbb14732fafabf39c5020b7d74"}}], "version": "17.1", "category_label": "Bug fixes", "also_in": [], "variants": [], "related_changes": [{"db_id": "4164513d723b4a8d82303cc7b6f6bf52", "kind": "equivalent", "version": "16.5", "label": "16.5", "title": "Fix assertion failure or confusing error message for COPY (query) TO ..., when the query is rewritten by a DO INSTEAD NOTIFY rule", "evidence": {"same_day": true, "patch_ids": ["9e6edee75f519a17ae85b3d74f29066d"], "statement_hash": "f76efad6a1200651434e7559fafcf67c584e31fbb14732fafabf39c5020b7d74"}, "url": "/docs/compare/?release=16.5#16.5-3b984973784dc595", "source_url": "/docs/release/16.5/#RELEASE-16-5-CHANGES"}, {"db_id": "86ef642b3ead7de535851b9f33134f73", "kind": "equivalent", "version": "15.9", "label": "15.9", "title": "Fix assertion failure or confusing error message for COPY (query) TO ..., when the query is rewritten by a DO INSTEAD NOTIFY rule", "evidence": {"same_day": true, "patch_ids": ["9e6edee75f519a17ae85b3d74f29066d"], "statement_hash": "f76efad6a1200651434e7559fafcf67c584e31fbb14732fafabf39c5020b7d74"}, "url": "/docs/compare/?release=15.9#15.9-2c6cc783cb9ec0c8", "source_url": "/docs/release/15.9/#id-1.11.6.16.5"}, {"db_id": "83485ef02bbc0c01b4b407ab922cc34b", "kind": "equivalent", "version": "14.14", "label": "14.14", "title": "Fix assertion failure or confusing error message for COPY (query) TO ..., when the query is rewritten by a DO INSTEAD NOTIFY rule", "evidence": {"same_day": true, "patch_ids": ["9e6edee75f519a17ae85b3d74f29066d"], "statement_hash": "f76efad6a1200651434e7559fafcf67c584e31fbb14732fafabf39c5020b7d74"}, "url": "/docs/compare/?release=14.14#14.14-bc8526feff92fb55", "source_url": "/docs/release/14.14/#id-1.11.6.16.5"}, {"db_id": "774c30d3167cc04d5c0d9c1f499874d4", "kind": "equivalent", "version": "13.17", "label": "13.17", "title": "Fix assertion failure or confusing error message for COPY (query) TO ..., when the query is rewritten by a DO INSTEAD NOTIFY rule", "evidence": {"same_day": true, "patch_ids": ["9e6edee75f519a17ae85b3d74f29066d"], "statement_hash": "f76efad6a1200651434e7559fafcf67c584e31fbb14732fafabf39c5020b7d74"}, "url": "/docs/compare/?release=13.17#13.17-5fb93fb0ee8ca05b", "source_url": "/docs/release/13.17/#id-1.11.6.12.5"}, {"db_id": "cb2aad1f1ce1b4266ea310af2b16064b", "kind": "equivalent", "version": "12.21", "label": "12.21", "title": "Fix assertion failure or confusing error message for COPY (query) TO ..., when the query is rewritten by a DO INSTEAD NOTIFY rule", "evidence": {"same_day": true, "patch_ids": ["9e6edee75f519a17ae85b3d74f29066d"], "statement_hash": "f76efad6a1200651434e7559fafcf67c584e31fbb14732fafabf39c5020b7d74"}, "url": "/docs/compare/?release=12.21#12.21-481b27b62c098efd", "source_url": "/docs/release/12.21/#id-1.11.6.7.6"}]}, {"id": "17.1-d2d3596c52c2b1c0", "cves": [], "html": "<p>Fix validation of <code>COPY</code>'s <code>FORCE_NOT_NULL</code> and <code>FORCE_NULL</code> options (Joel Jacobson) <a href=\"https://postgr.es/c/c06a4746b\">§</a></p>\n<p>Some incorrect usages are now rejected as they should be.</p>", "text": "Fix validation of COPY's FORCE_NOT_NULL and FORCE_NULL options (Joel Jacobson) § Some incorrect usages are now rejected as they should be.", "title": "Fix validation of COPY's FORCE_NOT_NULL and FORCE_NULL options", "commits": ["c06a4746b"], "section": "Changes", "category": "bugfix", "source_url": "/docs/release/17.1/#RELEASE-17-1-CHANGES", "source_hash": "b5197605183763e5aa7a4a66c48ee5b9e5263add2fa80622345485c6846f69aa", "section_path": ["Changes"], "commit_groups": [["089aac631", "c06a4746b"]], "identity_text": "Fix validation of COPY's FORCE_NOT_NULL and FORCE_NULL options (Joel Jacobson) Some incorrect usages are now rejected as they should be.", "commit_aliases": ["089aac631", "c06a4746b"], "source_commits": ["c06a4746b"], "source_entry_id": "17.1/changes/014", "db_id": "b58bf91e2db49275b56bdf995d90b2f5", "patch_ids": ["e97599279c2bb032d570f9e674182e11"], "statement_hash": "6543408f5835a5b2532448117f144ce5bf4c8c414249bca3bc9c1c7cc5ac4bd4", "relations": [], "version": "17.1", "category_label": "Bug fixes", "also_in": [], "variants": [], "related_changes": []}, {"id": "17.1-a67448e1b58abd31", "cves": [], "html": "<p>Fix server crash when a <code>json_objectagg()</code> call contains a volatile function (Amit Langote) <a href=\"https://postgr.es/c/7148cb3e3\">§</a></p>", "text": "Fix server crash when a json_objectagg() call contains a volatile function (Amit Langote) §", "title": "Fix server crash when a json_objectagg() call contains a volatile function", "commits": ["7148cb3e3"], "section": "Changes", "category": "bugfix", "source_url": "/docs/release/17.1/#RELEASE-17-1-CHANGES", "source_hash": "a233a2f6baf925afbadac9b520b868a847e3f11b4787bb8f66efb018c68000b2", "section_path": ["Changes"], "commit_groups": [["11c87216d", "7148cb3e3", "fa4f11854"]], "identity_text": "Fix server crash when a json_objectagg() call contains a volatile function (Amit Langote)", "commit_aliases": ["11c87216d", "7148cb3e3", "fa4f11854"], "source_commits": ["7148cb3e3"], "source_entry_id": "17.1/changes/015", "db_id": "e02b293b020a232bd9b75a0ee2a0722d", "patch_ids": ["fba5c8e04fd7236371750a5b8bb46de7"], "statement_hash": "3074c722d1bb1a78a670e9a820643ee8c38349a1abeb166f3dba9f2fae2a17ec", "relations": [{"rule": 2, "type": "equivalent", "target": "163a209d5595bb3d73729dccc9101186", "evidence": {"same_day": true, "patch_ids": ["fba5c8e04fd7236371750a5b8bb46de7"], "statement_hash": "3074c722d1bb1a78a670e9a820643ee8c38349a1abeb166f3dba9f2fae2a17ec"}}], "version": "17.1", "category_label": "Bug fixes", "also_in": [], "variants": [], "related_changes": [{"db_id": "163a209d5595bb3d73729dccc9101186", "kind": "equivalent", "version": "16.5", "label": "16.5", "title": "Fix server crash when a json_objectagg() call contains a volatile function", "evidence": {"same_day": true, "patch_ids": ["fba5c8e04fd7236371750a5b8bb46de7"], "statement_hash": "3074c722d1bb1a78a670e9a820643ee8c38349a1abeb166f3dba9f2fae2a17ec"}, "url": "/docs/compare/?release=16.5#16.5-307849ad09263eed", "source_url": "/docs/release/16.5/#RELEASE-16-5-CHANGES"}]}, {"id": "17.1-1201638a8dc57296", "cves": [], "html": "<p>Fix detection of skewed data during parallel hash join (Thomas Munro) <a href=\"https://postgr.es/c/4ac5d33a8\">§</a></p>\n<p>After repartitioning the inner side of a hash join because one partition has accumulated too many tuples, we check to see if all the partition's tuples went into the same child partition, which suggests that they all have the same hash value and further repartitioning cannot improve matters. This check malfunctioned in some cases, allowing repeated futile repartitioning which would eventually end in a resource-exhaustion error.</p>", "text": "Fix detection of skewed data during parallel hash join (Thomas Munro) § After repartitioning the inner side of a hash join because one partition has accumulated too many tuples, we check to see if all the partition's tuples went into the same child partition, which suggests that they all have the same hash value and further repartitioning cannot improve matters. This check malfunctioned in some cases, allowing repeated futile repartitioning which would eventually end in a resource-exhaustion error.", "title": "Fix detection of skewed data during parallel hash join", "commits": ["4ac5d33a8"], "section": "Changes", "category": "bugfix", "source_url": "/docs/release/17.1/#RELEASE-17-1-CHANGES", "source_hash": "6be654e723aadf0ffdac21342e2b1f405783dff1a3087a70b7e0ca9013dd8f08", "section_path": ["Changes"], "commit_groups": [["1831545ca", "20d948994", "45329466f", "4ac5d33a8", "4fa80a6d7", "53edc9485", "98c7c7152"]], "identity_text": "Fix detection of skewed data during parallel hash join (Thomas Munro) After repartitioning the inner side of a hash join because one partition has accumulated too many tuples, we check to see if all the partition's tuples went into the same child partition, which suggests that they all have the same hash value and further repartitioning cannot improve matters. This check malfunctioned in some cases, allowing repeated futile repartitioning which would eventually end in a resource-exhaustion error.", "commit_aliases": ["1831545ca", "20d948994", "45329466f", "4ac5d33a8", "4fa80a6d7", "53edc9485", "98c7c7152"], "source_commits": ["4ac5d33a8"], "source_entry_id": "17.1/changes/016", "db_id": "e30b28541dd86d403967862c42bc08f9", "patch_ids": ["7362d49781c8e327ea7028e1016e585a"], "statement_hash": "fa6804a4a344918b582b6ac7902d741b5ac887f9ad98549ab7d9385fef747aca", "relations": [{"rule": 2, "type": "equivalent", "target": "03ee90d315a15e51dce8adcb971d89f1", "evidence": {"same_day": true, "patch_ids": ["7362d49781c8e327ea7028e1016e585a"], "statement_hash": "fa6804a4a344918b582b6ac7902d741b5ac887f9ad98549ab7d9385fef747aca"}}, {"rule": 2, "type": "equivalent", "target": "048fdbfa8e9162623b00f1d70e94b6ac", "evidence": {"same_day": true, "patch_ids": ["7362d49781c8e327ea7028e1016e585a"], "statement_hash": "fa6804a4a344918b582b6ac7902d741b5ac887f9ad98549ab7d9385fef747aca"}}, {"rule": 2, "type": "equivalent", "target": "a96042f3ea4378e7a4b4b4338d73d449", "evidence": {"same_day": true, "patch_ids": ["7362d49781c8e327ea7028e1016e585a"], "statement_hash": "fa6804a4a344918b582b6ac7902d741b5ac887f9ad98549ab7d9385fef747aca"}}, {"rule": 2, "type": "equivalent", "target": "b05be16ba65111ded4a1d3c19fdb9312", "evidence": {"same_day": true, "patch_ids": ["7362d49781c8e327ea7028e1016e585a"], "statement_hash": "fa6804a4a344918b582b6ac7902d741b5ac887f9ad98549ab7d9385fef747aca"}}, {"rule": 2, "type": "equivalent", "target": "fa86fc8bc18de09fe710b60de685febf", "evidence": {"same_day": true, "patch_ids": ["7362d49781c8e327ea7028e1016e585a"], "statement_hash": "fa6804a4a344918b582b6ac7902d741b5ac887f9ad98549ab7d9385fef747aca"}}], "version": "17.1", "category_label": "Bug fixes", "also_in": [], "variants": [], "related_changes": [{"db_id": "a96042f3ea4378e7a4b4b4338d73d449", "kind": "equivalent", "version": "16.5", "label": "16.5", "title": "Fix detection of skewed data during parallel hash join", "evidence": {"same_day": true, "patch_ids": ["7362d49781c8e327ea7028e1016e585a"], "statement_hash": "fa6804a4a344918b582b6ac7902d741b5ac887f9ad98549ab7d9385fef747aca"}, "url": "/docs/compare/?release=16.5#16.5-ffd53f421ada5fe4", "source_url": "/docs/release/16.5/#RELEASE-16-5-CHANGES"}, {"db_id": "fa86fc8bc18de09fe710b60de685febf", "kind": "equivalent", "version": "15.9", "label": "15.9", "title": "Fix detection of skewed data during parallel hash join", "evidence": {"same_day": true, "patch_ids": ["7362d49781c8e327ea7028e1016e585a"], "statement_hash": "fa6804a4a344918b582b6ac7902d741b5ac887f9ad98549ab7d9385fef747aca"}, "url": "/docs/compare/?release=15.9#15.9-9665ea658426cf4b", "source_url": "/docs/release/15.9/#id-1.11.6.16.5"}, {"db_id": "b05be16ba65111ded4a1d3c19fdb9312", "kind": "equivalent", "version": "14.14", "label": "14.14", "title": "Fix detection of skewed data during parallel hash join", "evidence": {"same_day": true, "patch_ids": ["7362d49781c8e327ea7028e1016e585a"], "statement_hash": "fa6804a4a344918b582b6ac7902d741b5ac887f9ad98549ab7d9385fef747aca"}, "url": "/docs/compare/?release=14.14#14.14-155d262faf162f65", "source_url": "/docs/release/14.14/#id-1.11.6.16.5"}, {"db_id": "03ee90d315a15e51dce8adcb971d89f1", "kind": "equivalent", "version": "13.17", "label": "13.17", "title": "Fix detection of skewed data during parallel hash join", "evidence": {"same_day": true, "patch_ids": ["7362d49781c8e327ea7028e1016e585a"], "statement_hash": "fa6804a4a344918b582b6ac7902d741b5ac887f9ad98549ab7d9385fef747aca"}, "url": "/docs/compare/?release=13.17#13.17-e6044003af017b6b", "source_url": "/docs/release/13.17/#id-1.11.6.12.5"}, {"db_id": "048fdbfa8e9162623b00f1d70e94b6ac", "kind": "equivalent", "version": "12.21", "label": "12.21", "title": "Fix detection of skewed data during parallel hash join", "evidence": {"same_day": true, "patch_ids": ["7362d49781c8e327ea7028e1016e585a"], "statement_hash": "fa6804a4a344918b582b6ac7902d741b5ac887f9ad98549ab7d9385fef747aca"}, "url": "/docs/compare/?release=12.21#12.21-73d99a8f643a7855", "source_url": "/docs/release/12.21/#id-1.11.6.7.6"}]}, {"id": "17.1-50678eaee787a925", "cves": [], "html": "<p>Avoid crash when <code>ALTER DATABASE SET</code> is used to set a server parameter that requires search-path-based lookup, such as <code>default_text_search_config</code> (Jeff Davis) <a href=\"https://postgr.es/c/2fe4167bc\">§</a></p>", "text": "Avoid crash when ALTER DATABASE SET is used to set a server parameter that requires search-path-based lookup, such as default_text_search_config (Jeff Davis) §", "title": "Avoid crash when ALTER DATABASE SET is used to set a server parameter that requires search-path-based lookup, such as default_text_search_config", "commits": ["2fe4167bc"], "section": "Changes", "category": "bugfix", "source_url": "/docs/release/17.1/#RELEASE-17-1-CHANGES", "source_hash": "6a21bc0f736e43c3aaa3f4d3a41ab38012b0ca0da37daaaa43bec388d260e8a5", "section_path": ["Changes"], "commit_groups": [["2fe4167bc", "a9ed7d944"]], "identity_text": "Avoid crash when ALTER DATABASE SET is used to set a server parameter that requires search-path-based lookup, such as default_text_search_config (Jeff Davis)", "commit_aliases": ["2fe4167bc", "a9ed7d944"], "source_commits": ["2fe4167bc"], "source_entry_id": "17.1/changes/017", "db_id": "4932efeb4f1f47f59c09f02fa50f7ad9", "patch_ids": ["2804c0750ad4f6dcef8f94de5c45505b"], "statement_hash": "27bf3def85ebbaf4631ae3c2e9c1202c6f686b549695866c135f7f5ea94646a4", "relations": [], "version": "17.1", "category_label": "Bug fixes", "also_in": [], "variants": [], "related_changes": []}, {"id": "17.1-7233a93ff98ec2f9", "cves": [], "html": "<p>Avoid repeated lookups of opclasses and collations while creating a new index on a partitioned table (Tom Lane) <a href=\"https://postgr.es/c/fee8cb947\">§</a></p>\n<p>This was problematic mainly because some of the lookups would be done with a restricted <code>search_path</code>, leading to unexpected failures if the <code>CREATE INDEX</code> command referenced objects outside <code>pg_catalog</code>.</p>\n<p>This fix also prevents comments on the parent partitioned index from being copied to child indexes.</p>", "text": "Avoid repeated lookups of opclasses and collations while creating a new index on a partitioned table (Tom Lane) § This was problematic mainly because some of the lookups would be done with a restricted search_path, leading to unexpected failures if the CREATE INDEX command referenced objects outside pg_catalog. This fix also prevents comments on the parent partitioned index from being copied to child indexes.", "title": "Avoid repeated lookups of opclasses and collations while creating a new index on a partitioned table", "commits": ["fee8cb947"], "section": "Changes", "category": "improvement", "source_url": "/docs/release/17.1/#RELEASE-17-1-CHANGES", "source_hash": "e0ced0c04a24d5db32ab1d18cb4357cfcab2dfc34922388bcb5e2ae04ff7ce5f", "section_path": ["Changes"], "commit_groups": [["68dfecbef", "fee8cb947"]], "identity_text": "Avoid repeated lookups of opclasses and collations while creating a new index on a partitioned table (Tom Lane) This was problematic mainly because some of the lookups would be done with a restricted search_path, leading to unexpected failures if the CREATE INDEX command referenced objects outside pg_catalog. This fix also prevents comments on the parent partitioned index from being copied to child indexes.", "commit_aliases": ["68dfecbef", "fee8cb947"], "source_commits": ["fee8cb947"], "source_entry_id": "17.1/changes/018", "db_id": "39d1ff67b2247978ff31120b1af8610f", "patch_ids": ["b5a80d8c7d1f95c52db177a0ca9af9b3"], "statement_hash": "4c3a4e12b2e74cb3643a07c3068a3ca331d2ed644820e14740f5b0cc0256b10f", "relations": [], "version": "17.1", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": []}, {"id": "17.1-dc558dc95214284c", "cves": [], "html": "<p>Add missing dependency from a partitioned table to a non-built-in access method specified in <code>CREATE TABLE ... USING</code> (Michael Paquier) <a href=\"https://postgr.es/c/bb584e831\">§</a></p>\n<p>Dropping the access method should be blocked when a table exists that depends on it, but it was not, allowing subsequent odd behavior. Note that this fix only prevents problems for partitioned tables created after this update.</p>", "text": "Add missing dependency from a partitioned table to a non-built-in access method specified in CREATE TABLE ... USING (Michael Paquier) § Dropping the access method should be blocked when a table exists that depends on it, but it was not, allowing subsequent odd behavior. Note that this fix only prevents problems for partitioned tables created after this update.", "title": "Add missing dependency from a partitioned table to a non-built-in access method specified in CREATE TABLE ... USING", "commits": ["bb584e831"], "section": "Changes", "category": "improvement", "source_url": "/docs/release/17.1/#RELEASE-17-1-CHANGES", "source_hash": "78b2fcbdb5aa732914af5e01eae1583b7b62e64e2d91a54f8b48c98ff8f82702", "section_path": ["Changes"], "commit_groups": [["49a23441c", "bb584e831"]], "identity_text": "Add missing dependency from a partitioned table to a non-built-in access method specified in CREATE TABLE ... USING (Michael Paquier) Dropping the access method should be blocked when a table exists that depends on it, but it was not, allowing subsequent odd behavior. Note that this fix only prevents problems for partitioned tables created after this update.", "commit_aliases": ["49a23441c", "bb584e831"], "source_commits": ["bb584e831"], "source_entry_id": "17.1/changes/019", "db_id": "362d11804d0cc2d25ae4f459d36b0747", "patch_ids": ["75bccb1b1bad53b6ec3878e48e0e916e"], "statement_hash": "a34ea2ed8a14d2c3ede048f89f5f8652ba65167aa9ebc8f2366ce87ce6f857db", "relations": [], "version": "17.1", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": []}, {"id": "17.1-e5a214ba706d7473", "cves": [], "html": "<p>Disallow locale names containing non-ASCII characters (Thomas Munro) <a href=\"https://postgr.es/c/9c7acc333\">§</a></p>\n<p>This is only an issue on Windows, as such locale names are not used elsewhere. They are problematic because it's quite unclear what encoding such names are represented in (since the locale itself defines the encoding to use). In recent <span>PostgreSQL</span> releases, an abort in the Windows runtime library could occur because of confusion about that.</p>\n<p>Anyone who encounters the new error message should either create a new duplicated locale with an ASCII-only name using Windows Locale Builder, or consider using BCP 47-compliant locale names like <code>tr-TR</code>.</p>", "text": "Disallow locale names containing non-ASCII characters (Thomas Munro) § This is only an issue on Windows, as such locale names are not used elsewhere. They are problematic because it's quite unclear what encoding such names are represented in (since the locale itself defines the encoding to use). In recent PostgreSQL releases, an abort in the Windows runtime library could occur because of confusion about that. Anyone who encounters the new error message should either create a new duplicated locale with an ASCII-only name using Windows Locale Builder, or consider using BCP 47-compliant locale names like tr-TR.", "title": "Disallow locale names containing non-ASCII characters", "commits": ["9c7acc333"], "section": "Changes", "category": "improvement", "source_url": "/docs/release/17.1/#RELEASE-17-1-CHANGES", "source_hash": "68d02a491a6b5bdcda0060ade8e5f0b715595bba040f7b183ddcc4184b2271fb", "section_path": ["Changes"], "commit_groups": [["9c7acc333", "adbb27ac8", "ce17de580"]], "identity_text": "Disallow locale names containing non-ASCII characters (Thomas Munro) This is only an issue on Windows, as such locale names are not used elsewhere. They are problematic because it's quite unclear what encoding such names are represented in (since the locale itself defines the encoding to use). In recent PostgreSQL releases, an abort in the Windows runtime library could occur because of confusion about that. Anyone who encounters the new error message should either create a new duplicated locale with an ASCII-only name using Windows Locale Builder, or consider using BCP 47-compliant locale names like tr-TR.", "commit_aliases": ["9c7acc333", "adbb27ac8", "ce17de580"], "source_commits": ["9c7acc333"], "source_entry_id": "17.1/changes/020", "db_id": "30f3b497567449c72903a88dabba8b6c", "patch_ids": ["7385977aca644d5c86bb91cfc2e730e6"], "statement_hash": "0a5d54d64a239c1b9e56856bf1cd2d38de3979b2645fdee9e805afd817b3d9ec", "relations": [{"rule": 2, "type": "equivalent", "target": "8023ac49299b71cd3d7f252dab6d3757", "evidence": {"same_day": true, "patch_ids": ["7385977aca644d5c86bb91cfc2e730e6"], "statement_hash": "0a5d54d64a239c1b9e56856bf1cd2d38de3979b2645fdee9e805afd817b3d9ec"}}], "version": "17.1", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": [{"db_id": "8023ac49299b71cd3d7f252dab6d3757", "kind": "equivalent", "version": "16.5", "label": "16.5", "title": "Disallow locale names containing non-ASCII characters", "evidence": {"same_day": true, "patch_ids": ["7385977aca644d5c86bb91cfc2e730e6"], "statement_hash": "0a5d54d64a239c1b9e56856bf1cd2d38de3979b2645fdee9e805afd817b3d9ec"}, "url": "/docs/compare/?release=16.5#16.5-ccef9bc62787856d", "source_url": "/docs/release/16.5/#RELEASE-16-5-CHANGES"}]}, {"id": "17.1-ecfde73d7e43d4db", "cves": [], "html": "<p>Fix race condition in committing a serializable transaction (Heikki Linnakangas) <a href=\"https://postgr.es/c/234f6d09e\">§</a></p>\n<p>Mis-processing of a recently committed transaction could lead to an assertion failure or a <span>“<span>could not access status of transaction</span>”</span> error.</p>", "text": "Fix race condition in committing a serializable transaction (Heikki Linnakangas) § Mis-processing of a recently committed transaction could lead to an assertion failure or a “could not access status of transaction” error.", "title": "Fix race condition in committing a serializable transaction", "commits": ["234f6d09e"], "section": "Changes", "category": "bugfix", "source_url": "/docs/release/17.1/#RELEASE-17-1-CHANGES", "source_hash": "ed7415ad5299a17b209c92c0da2f551552e26324bb19df497afd8008db10a931", "section_path": ["Changes"], "commit_groups": [["1a43de5e0", "22665f210", "234f6d09e", "520ec2474", "8e607a5a4", "d97419b85", "e2ec3afeb"]], "identity_text": "Fix race condition in committing a serializable transaction (Heikki Linnakangas) Mis-processing of a recently committed transaction could lead to an assertion failure or a could not access status of transaction error.", "commit_aliases": ["1a43de5e0", "22665f210", "234f6d09e", "520ec2474", "8e607a5a4", "d97419b85", "e2ec3afeb"], "source_commits": ["234f6d09e"], "source_entry_id": "17.1/changes/021", "db_id": "27eb3d253909c90211a31b92e07b5435", "patch_ids": ["50ee9517aec4d41dcce331b3b6ce522b"], "statement_hash": "b5d2ea04c0310cbcc15167692a36d7b1bf670c6b55bc6b9f9fd87d19f0f9841f", "relations": [{"rule": 2, "type": "equivalent", "target": "2f2fe7df64cf13ea880ead2a8d3d62e9", "evidence": {"same_day": true, "patch_ids": ["50ee9517aec4d41dcce331b3b6ce522b"], "statement_hash": "b5d2ea04c0310cbcc15167692a36d7b1bf670c6b55bc6b9f9fd87d19f0f9841f"}}, {"rule": 2, "type": "equivalent", "target": "380c69c0cf382608fe08f3d07bad3f89", "evidence": {"same_day": true, "patch_ids": ["50ee9517aec4d41dcce331b3b6ce522b"], "statement_hash": "b5d2ea04c0310cbcc15167692a36d7b1bf670c6b55bc6b9f9fd87d19f0f9841f"}}, {"rule": 2, "type": "equivalent", "target": "9d7aef7128d747f9da974e84661075b5", "evidence": {"same_day": true, "patch_ids": ["50ee9517aec4d41dcce331b3b6ce522b"], "statement_hash": "b5d2ea04c0310cbcc15167692a36d7b1bf670c6b55bc6b9f9fd87d19f0f9841f"}}, {"rule": 2, "type": "equivalent", "target": "aa302a2149b51d8fa114ce51bd412401", "evidence": {"same_day": true, "patch_ids": ["50ee9517aec4d41dcce331b3b6ce522b"], "statement_hash": "b5d2ea04c0310cbcc15167692a36d7b1bf670c6b55bc6b9f9fd87d19f0f9841f"}}, {"rule": 2, "type": "equivalent", "target": "c64ee6e02d4ad8836d4e6457c472a782", "evidence": {"same_day": true, "patch_ids": ["50ee9517aec4d41dcce331b3b6ce522b"], "statement_hash": "b5d2ea04c0310cbcc15167692a36d7b1bf670c6b55bc6b9f9fd87d19f0f9841f"}}], "version": "17.1", "category_label": "Bug fixes", "also_in": [], "variants": [], "related_changes": [{"db_id": "380c69c0cf382608fe08f3d07bad3f89", "kind": "equivalent", "version": "16.5", "label": "16.5", "title": "Fix race condition in committing a serializable transaction", "evidence": {"same_day": true, "patch_ids": ["50ee9517aec4d41dcce331b3b6ce522b"], "statement_hash": "b5d2ea04c0310cbcc15167692a36d7b1bf670c6b55bc6b9f9fd87d19f0f9841f"}, "url": "/docs/compare/?release=16.5#16.5-6e05c8fb8dbf997f", "source_url": "/docs/release/16.5/#RELEASE-16-5-CHANGES"}, {"db_id": "2f2fe7df64cf13ea880ead2a8d3d62e9", "kind": "equivalent", "version": "15.9", "label": "15.9", "title": "Fix race condition in committing a serializable transaction", "evidence": {"same_day": true, "patch_ids": ["50ee9517aec4d41dcce331b3b6ce522b"], "statement_hash": "b5d2ea04c0310cbcc15167692a36d7b1bf670c6b55bc6b9f9fd87d19f0f9841f"}, "url": "/docs/compare/?release=15.9#15.9-7f680ba4913bffb0", "source_url": "/docs/release/15.9/#id-1.11.6.16.5"}, {"db_id": "c64ee6e02d4ad8836d4e6457c472a782", "kind": "equivalent", "version": "14.14", "label": "14.14", "title": "Fix race condition in committing a serializable transaction", "evidence": {"same_day": true, "patch_ids": ["50ee9517aec4d41dcce331b3b6ce522b"], "statement_hash": "b5d2ea04c0310cbcc15167692a36d7b1bf670c6b55bc6b9f9fd87d19f0f9841f"}, "url": "/docs/compare/?release=14.14#14.14-46c1b12f7598344b", "source_url": "/docs/release/14.14/#id-1.11.6.16.5"}, {"db_id": "9d7aef7128d747f9da974e84661075b5", "kind": "equivalent", "version": "13.17", "label": "13.17", "title": "Fix race condition in committing a serializable transaction", "evidence": {"same_day": true, "patch_ids": ["50ee9517aec4d41dcce331b3b6ce522b"], "statement_hash": "b5d2ea04c0310cbcc15167692a36d7b1bf670c6b55bc6b9f9fd87d19f0f9841f"}, "url": "/docs/compare/?release=13.17#13.17-931669dbd60ef42e", "source_url": "/docs/release/13.17/#id-1.11.6.12.5"}, {"db_id": "aa302a2149b51d8fa114ce51bd412401", "kind": "equivalent", "version": "12.21", "label": "12.21", "title": "Fix race condition in committing a serializable transaction", "evidence": {"same_day": true, "patch_ids": ["50ee9517aec4d41dcce331b3b6ce522b"], "statement_hash": "b5d2ea04c0310cbcc15167692a36d7b1bf670c6b55bc6b9f9fd87d19f0f9841f"}, "url": "/docs/compare/?release=12.21#12.21-644a55d942e8f80b", "source_url": "/docs/release/12.21/#id-1.11.6.7.6"}]}, {"id": "17.1-88bc5224bd702550", "cves": [], "html": "<p>Fix race condition in <code>COMMIT PREPARED</code> that resulted in orphaned 2PC files (wuchengwen) <a href=\"https://postgr.es/c/f250cb29d\">§</a></p>\n<p>A concurrent <code>PREPARE TRANSACTION</code> could cause <code>COMMIT PREPARED</code> to not remove the on-disk two-phase state file for the completed transaction. There was no immediate ill effect, but a subsequent crash-and-recovery could fail with <span>“<span>could not access status of transaction</span>”</span>, requiring manual removal of the orphaned file to restore service.</p>", "text": "Fix race condition in COMMIT PREPARED that resulted in orphaned 2PC files (wuchengwen) § A concurrent PREPARE TRANSACTION could cause COMMIT PREPARED to not remove the on-disk two-phase state file for the completed transaction. There was no immediate ill effect, but a subsequent crash-and-recovery could fail with “could not access status of transaction”, requiring manual removal of the orphaned file to restore service.", "title": "Fix race condition in COMMIT PREPARED that resulted in orphaned 2PC files", "commits": ["f250cb29d"], "section": "Changes", "category": "bugfix", "source_url": "/docs/release/17.1/#RELEASE-17-1-CHANGES", "source_hash": "f1f568f9c5f3d943fc35fb1383f0f94da13fa3ad5afe446cef1d72f2a1b0bb17", "section_path": ["Changes"], "commit_groups": [["34d751ba7", "41ab45680", "5f1510787", "7bfaa4671", "7de9b64a5", "cf4401fe6", "f250cb29d"]], "identity_text": "Fix race condition in COMMIT PREPARED that resulted in orphaned 2PC files (wuchengwen) A concurrent PREPARE TRANSACTION could cause COMMIT PREPARED to not remove the on-disk two-phase state file for the completed transaction. There was no immediate ill effect, but a subsequent crash-and-recovery could fail with could not access status of transaction, requiring manual removal of the orphaned file to restore service.", "commit_aliases": ["34d751ba7", "41ab45680", "5f1510787", "7bfaa4671", "7de9b64a5", "cf4401fe6", "f250cb29d"], "source_commits": ["f250cb29d"], "source_entry_id": "17.1/changes/022", "db_id": "bea0f2d5ddea7da80e3feff830b6d010", "patch_ids": ["6088f50b8046f302c3beb339a56355ba"], "statement_hash": "cfa0936fc0b2e98b73ed3e04821e1f500d31070b5605e6cc02a01c8717a898ee", "relations": [{"rule": 2, "type": "equivalent", "target": "763ffedfbb0f41b4be36e6b088363681", "evidence": {"same_day": true, "patch_ids": ["6088f50b8046f302c3beb339a56355ba"], "statement_hash": "cfa0936fc0b2e98b73ed3e04821e1f500d31070b5605e6cc02a01c8717a898ee"}}, {"rule": 2, "type": "equivalent", "target": "76d396403610291a5a7c4f03a06cb422", "evidence": {"same_day": true, "patch_ids": ["6088f50b8046f302c3beb339a56355ba"], "statement_hash": "cfa0936fc0b2e98b73ed3e04821e1f500d31070b5605e6cc02a01c8717a898ee"}}, {"rule": 2, "type": "equivalent", "target": "c05f86a4de6b5f601947b64d282719ca", "evidence": {"same_day": true, "patch_ids": ["6088f50b8046f302c3beb339a56355ba"], "statement_hash": "cfa0936fc0b2e98b73ed3e04821e1f500d31070b5605e6cc02a01c8717a898ee"}}, {"rule": 2, "type": "equivalent", "target": "d637378d79e21e218865b8859bf16c95", "evidence": {"same_day": true, "patch_ids": ["6088f50b8046f302c3beb339a56355ba"], "statement_hash": "cfa0936fc0b2e98b73ed3e04821e1f500d31070b5605e6cc02a01c8717a898ee"}}, {"rule": 2, "type": "equivalent", "target": "fee42a020ebd314e966a67dc4fd89ce0", "evidence": {"same_day": true, "patch_ids": ["6088f50b8046f302c3beb339a56355ba"], "statement_hash": "cfa0936fc0b2e98b73ed3e04821e1f500d31070b5605e6cc02a01c8717a898ee"}}], "version": "17.1", "category_label": "Bug fixes", "also_in": [], "variants": [], "related_changes": [{"db_id": "76d396403610291a5a7c4f03a06cb422", "kind": "equivalent", "version": "16.5", "label": "16.5", "title": "Fix race condition in COMMIT PREPARED that resulted in orphaned 2PC files", "evidence": {"same_day": true, "patch_ids": ["6088f50b8046f302c3beb339a56355ba"], "statement_hash": "cfa0936fc0b2e98b73ed3e04821e1f500d31070b5605e6cc02a01c8717a898ee"}, "url": "/docs/compare/?release=16.5#16.5-5b237a45542da2c0", "source_url": "/docs/release/16.5/#RELEASE-16-5-CHANGES"}, {"db_id": "d637378d79e21e218865b8859bf16c95", "kind": "equivalent", "version": "15.9", "label": "15.9", "title": "Fix race condition in COMMIT PREPARED that resulted in orphaned 2PC files", "evidence": {"same_day": true, "patch_ids": ["6088f50b8046f302c3beb339a56355ba"], "statement_hash": "cfa0936fc0b2e98b73ed3e04821e1f500d31070b5605e6cc02a01c8717a898ee"}, "url": "/docs/compare/?release=15.9#15.9-487e139b97d2565d", "source_url": "/docs/release/15.9/#id-1.11.6.16.5"}, {"db_id": "763ffedfbb0f41b4be36e6b088363681", "kind": "equivalent", "version": "14.14", "label": "14.14", "title": "Fix race condition in COMMIT PREPARED that resulted in orphaned 2PC files", "evidence": {"same_day": true, "patch_ids": ["6088f50b8046f302c3beb339a56355ba"], "statement_hash": "cfa0936fc0b2e98b73ed3e04821e1f500d31070b5605e6cc02a01c8717a898ee"}, "url": "/docs/compare/?release=14.14#14.14-e59a7ce835379266", "source_url": "/docs/release/14.14/#id-1.11.6.16.5"}, {"db_id": "c05f86a4de6b5f601947b64d282719ca", "kind": "equivalent", "version": "13.17", "label": "13.17", "title": "Fix race condition in COMMIT PREPARED that resulted in orphaned 2PC files", "evidence": {"same_day": true, "patch_ids": ["6088f50b8046f302c3beb339a56355ba"], "statement_hash": "cfa0936fc0b2e98b73ed3e04821e1f500d31070b5605e6cc02a01c8717a898ee"}, "url": "/docs/compare/?release=13.17#13.17-69d902e126a99392", "source_url": "/docs/release/13.17/#id-1.11.6.12.5"}, {"db_id": "fee42a020ebd314e966a67dc4fd89ce0", "kind": "equivalent", "version": "12.21", "label": "12.21", "title": "Fix race condition in COMMIT PREPARED that resulted in orphaned 2PC files", "evidence": {"same_day": true, "patch_ids": ["6088f50b8046f302c3beb339a56355ba"], "statement_hash": "cfa0936fc0b2e98b73ed3e04821e1f500d31070b5605e6cc02a01c8717a898ee"}, "url": "/docs/compare/?release=12.21#12.21-de738b840880f990", "source_url": "/docs/release/12.21/#id-1.11.6.7.6"}]}, {"id": "17.1-c8cc3d6338bd9132", "cves": [], "html": "<p>Avoid invalid memory accesses after skipping an invalid toast index during <code>VACUUM FULL</code> (Tender Wang) <a href=\"https://postgr.es/c/1532599a8\">§</a></p>\n<p>A list tracking yet-to-be-rebuilt indexes was not properly updated in this code path, risking assertion failures or crashes later on.</p>", "text": "Avoid invalid memory accesses after skipping an invalid toast index during VACUUM FULL (Tender Wang) § A list tracking yet-to-be-rebuilt indexes was not properly updated in this code path, risking assertion failures or crashes later on.", "title": "Avoid invalid memory accesses after skipping an invalid toast index during VACUUM FULL", "commits": ["1532599a8"], "section": "Changes", "category": "improvement", "source_url": "/docs/release/17.1/#RELEASE-17-1-CHANGES", "source_hash": "94055d3eb78d4d355878677c2e90ba2dbee03d4b2b3e910d2ea37ae818de3292", "section_path": ["Changes"], "commit_groups": [["09620ea09", "1532599a8", "2f33e68a5", "6530b869c", "911eda9f3", "a613edc5c", "afbd3dc7d"]], "identity_text": "Avoid invalid memory accesses after skipping an invalid toast index during VACUUM FULL (Tender Wang) A list tracking yet-to-be-rebuilt indexes was not properly updated in this code path, risking assertion failures or crashes later on.", "commit_aliases": ["09620ea09", "1532599a8", "2f33e68a5", "6530b869c", "911eda9f3", "a613edc5c", "afbd3dc7d"], "source_commits": ["1532599a8"], "source_entry_id": "17.1/changes/023", "db_id": "e25dfeb7ac4ac21c564edacd49428b4d", "patch_ids": ["81efeb0ba74685566da2e5420921a3e7"], "statement_hash": "ec3fe73e0a77635a8340b27cfe913ce27c149d6fee837cbdeb82cdd8cb82e830", "relations": [{"rule": 2, "type": "equivalent", "target": "0b3f94fa1108fab11a7b96dd657b84a7", "evidence": {"same_day": true, "patch_ids": ["81efeb0ba74685566da2e5420921a3e7"], "statement_hash": "ec3fe73e0a77635a8340b27cfe913ce27c149d6fee837cbdeb82cdd8cb82e830"}}, {"rule": 2, "type": "equivalent", "target": "106d9520e3c63f93b40539e2e4af49e0", "evidence": {"same_day": true, "patch_ids": ["81efeb0ba74685566da2e5420921a3e7"], "statement_hash": "ec3fe73e0a77635a8340b27cfe913ce27c149d6fee837cbdeb82cdd8cb82e830"}}, {"rule": 2, "type": "equivalent", "target": "1446a781b5279a1f8b293d6edeb8e669", "evidence": {"same_day": true, "patch_ids": ["81efeb0ba74685566da2e5420921a3e7"], "statement_hash": "ec3fe73e0a77635a8340b27cfe913ce27c149d6fee837cbdeb82cdd8cb82e830"}}, {"rule": 2, "type": "equivalent", "target": "2aaf09439019047f1fc7a22a4ccdb591", "evidence": {"same_day": true, "patch_ids": ["81efeb0ba74685566da2e5420921a3e7"], "statement_hash": "ec3fe73e0a77635a8340b27cfe913ce27c149d6fee837cbdeb82cdd8cb82e830"}}, {"rule": 2, "type": "equivalent", "target": "d36f2ced4ebc024e44bc91d6067e5445", "evidence": {"same_day": true, "patch_ids": ["81efeb0ba74685566da2e5420921a3e7"], "statement_hash": "ec3fe73e0a77635a8340b27cfe913ce27c149d6fee837cbdeb82cdd8cb82e830"}}], "version": "17.1", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": [{"db_id": "0b3f94fa1108fab11a7b96dd657b84a7", "kind": "equivalent", "version": "16.5", "label": "16.5", "title": "Avoid invalid memory accesses after skipping an invalid toast index during VACUUM FULL", "evidence": {"same_day": true, "patch_ids": ["81efeb0ba74685566da2e5420921a3e7"], "statement_hash": "ec3fe73e0a77635a8340b27cfe913ce27c149d6fee837cbdeb82cdd8cb82e830"}, "url": "/docs/compare/?release=16.5#16.5-c5c6df0edba188ad", "source_url": "/docs/release/16.5/#RELEASE-16-5-CHANGES"}, {"db_id": "d36f2ced4ebc024e44bc91d6067e5445", "kind": "equivalent", "version": "15.9", "label": "15.9", "title": "Avoid invalid memory accesses after skipping an invalid toast index during VACUUM FULL", "evidence": {"same_day": true, "patch_ids": ["81efeb0ba74685566da2e5420921a3e7"], "statement_hash": "ec3fe73e0a77635a8340b27cfe913ce27c149d6fee837cbdeb82cdd8cb82e830"}, "url": "/docs/compare/?release=15.9#15.9-277b63b16c5cf6b2", "source_url": "/docs/release/15.9/#id-1.11.6.16.5"}, {"db_id": "1446a781b5279a1f8b293d6edeb8e669", "kind": "equivalent", "version": "14.14", "label": "14.14", "title": "Avoid invalid memory accesses after skipping an invalid toast index during VACUUM FULL", "evidence": {"same_day": true, "patch_ids": ["81efeb0ba74685566da2e5420921a3e7"], "statement_hash": "ec3fe73e0a77635a8340b27cfe913ce27c149d6fee837cbdeb82cdd8cb82e830"}, "url": "/docs/compare/?release=14.14#14.14-6b1daddcdf483623", "source_url": "/docs/release/14.14/#id-1.11.6.16.5"}, {"db_id": "106d9520e3c63f93b40539e2e4af49e0", "kind": "equivalent", "version": "13.17", "label": "13.17", "title": "Avoid invalid memory accesses after skipping an invalid toast index during VACUUM FULL", "evidence": {"same_day": true, "patch_ids": ["81efeb0ba74685566da2e5420921a3e7"], "statement_hash": "ec3fe73e0a77635a8340b27cfe913ce27c149d6fee837cbdeb82cdd8cb82e830"}, "url": "/docs/compare/?release=13.17#13.17-eb3d25b2db47e7fb", "source_url": "/docs/release/13.17/#id-1.11.6.12.5"}, {"db_id": "2aaf09439019047f1fc7a22a4ccdb591", "kind": "equivalent", "version": "12.21", "label": "12.21", "title": "Avoid invalid memory accesses after skipping an invalid toast index during VACUUM FULL", "evidence": {"same_day": true, "patch_ids": ["81efeb0ba74685566da2e5420921a3e7"], "statement_hash": "ec3fe73e0a77635a8340b27cfe913ce27c149d6fee837cbdeb82cdd8cb82e830"}, "url": "/docs/compare/?release=12.21#12.21-8e2f6fd17a9d3c8d", "source_url": "/docs/release/12.21/#id-1.11.6.7.6"}]}, {"id": "17.1-4ba0c00b7077008e", "cves": [], "html": "<p>Fix ways in which an <span>“<span>in place</span>”</span> catalog update could be lost (Noah Misch) <a href=\"https://postgr.es/c/fd27b878c\">§</a> <a href=\"https://postgr.es/c/3b7a689e1\">§</a> <a href=\"https://postgr.es/c/da99df15c\">§</a> <a href=\"https://postgr.es/c/e11907682\">§</a> <a href=\"https://postgr.es/c/9aef6f19a\">§</a> <a href=\"https://postgr.es/c/0bcb9d079\">§</a> <a href=\"https://postgr.es/c/54bc22fbf\">§</a></p>\n<p>Normal row updates write a new version of the row to preserve rollback-ability of the transaction. However, certain system catalog updates are intentionally non-transactional and are done with an in-place update of the row. These patches fix race conditions that could cause the effects of an in-place update to be lost. As an example, it was possible to forget having set <code>pg_class</code>.<code>relhasindex</code> to true, preventing updates of the new index and thus causing index corruption.</p>", "text": "Fix ways in which an “in place” catalog update could be lost (Noah Misch) § § § § § § § Normal row updates write a new version of the row to preserve rollback-ability of the transaction. However, certain system catalog updates are intentionally non-transactional and are done with an in-place update of the row. These patches fix race conditions that could cause the effects of an in-place update to be lost. As an example, it was possible to forget having set pg_class.relhasindex to true, preventing updates of the new index and thus causing index corruption.", "title": "Fix ways in which an “in place” catalog update could be lost", "commits": ["0bcb9d079", "3b7a689e1", "54bc22fbf", "9aef6f19a", "da99df15c", "e11907682", "fd27b878c"], "section": "Changes", "category": "bugfix", "source_url": "/docs/release/17.1/#RELEASE-17-1-CHANGES", "source_hash": "618bb361cbcd5f335169c77beecccda36d96c9493819a02ddc4fec7001d16ab6", "section_path": ["Changes"], "commit_groups": [["0bcb9d079", "6b01cac0b", "6c837c237", "6d5b4031b", "b412f402d", "bb3054297", "d729f1ea5"], ["0d5a3d757", "159bf0f31", "4c922821e", "5a33a39a8", "b9ee1339b", "da99df15c", "db1992455"], ["0fe002d0c", "11e3f288f", "2a912bc1a", "30d47ec8c", "370bc7740", "9aef6f19a", "c2139db11"], ["14c57cb63", "3b7a689e1", "51ff46de2", "5c837f8fa", "aac2c9b4f", "cafcc3ad0", "f51b34b3e"], ["2d63c964f", "3e5ea478d", "a0c0078b1", "ad24b7565", "d34ffbaa1", "e11907682", "e947224cb"], ["4dc0c933f", "54bc22fbf", "766809db3", "803655e66", "825c72c07", "d14e94ac4", "f8f9110b4"], ["63f019805", "7354b680a", "82c2d9e02", "8590c942c", "a07e03fd8", "a8ad1929d", "fd27b878c"]], "identity_text": "Fix ways in which an in place catalog update could be lost (Noah Misch) Normal row updates write a new version of the row to preserve rollback-ability of the transaction. However, certain system catalog updates are intentionally non-transactional and are done with an in-place update of the row. These patches fix race conditions that could cause the effects of an in-place update to be lost. As an example, it was possible to forget having set pg_class.relhasindex to true, preventing updates of the new index and thus causing index corruption.", "commit_aliases": ["0bcb9d079", "0d5a3d757", "0fe002d0c", "11e3f288f", "14c57cb63", "159bf0f31", "2a912bc1a", "2d63c964f", "30d47ec8c", "370bc7740", "3b7a689e1", "3e5ea478d", "4c922821e", "4dc0c933f", "51ff46de2", "54bc22fbf", "5a33a39a8", "5c837f8fa", "63f019805", "6b01cac0b", "6c837c237", "6d5b4031b", "7354b680a", "766809db3", "803655e66", "825c72c07", "82c2d9e02", "8590c942c", "9aef6f19a", "a07e03fd8", "a0c0078b1", "a8ad1929d", "aac2c9b4f", "ad24b7565", "b412f402d", "b9ee1339b", "bb3054297", "c2139db11", "cafcc3ad0", "d14e94ac4", "d34ffbaa1", "d729f1ea5", "da99df15c", "db1992455", "e11907682", "e947224cb", "f51b34b3e", "f8f9110b4", "fd27b878c"], "source_commits": ["0bcb9d079", "3b7a689e1", "54bc22fbf", "9aef6f19a", "da99df15c", "e11907682", "fd27b878c"], "source_entry_id": "17.1/changes/024", "db_id": "d2a35756cee793f15aeedced3c6988ef", "patch_ids": ["05b36e4e33fd5338dd25a15409b13e9d", "4f1bae07616ee0fb5c5e4b46d54b5b36", "52eab8bd7a63e7f7075f0714ca6383fa", "5387ff70b9b13df766dc4ee83ea4d5cd", "7bf6a28b82f24f6f29d6185ab745fd01", "7d9fe8d7f162d4973084bac117e13458", "92e91d174f3975b9ee8fcabe365fe864"], "statement_hash": "88c284eb649a92e2feb03789cc1cd0df323723b9ec13679075dc970edc5ba242", "relations": [{"rule": 2, "type": "equivalent", "target": "264c00d4fe4a150e75d61a097ff123db", "evidence": {"same_day": true, "patch_ids": ["05b36e4e33fd5338dd25a15409b13e9d", "4f1bae07616ee0fb5c5e4b46d54b5b36", "52eab8bd7a63e7f7075f0714ca6383fa", "5387ff70b9b13df766dc4ee83ea4d5cd", "7bf6a28b82f24f6f29d6185ab745fd01", "7d9fe8d7f162d4973084bac117e13458", "92e91d174f3975b9ee8fcabe365fe864"], "statement_hash": "88c284eb649a92e2feb03789cc1cd0df323723b9ec13679075dc970edc5ba242"}}, {"rule": 2, "type": "equivalent", "target": "4da4c3bde6ab372410d0ea2f0c14cf1c", "evidence": {"same_day": true, "patch_ids": ["05b36e4e33fd5338dd25a15409b13e9d", "4f1bae07616ee0fb5c5e4b46d54b5b36", "52eab8bd7a63e7f7075f0714ca6383fa", "5387ff70b9b13df766dc4ee83ea4d5cd", "7bf6a28b82f24f6f29d6185ab745fd01", "7d9fe8d7f162d4973084bac117e13458", "92e91d174f3975b9ee8fcabe365fe864"], "statement_hash": "88c284eb649a92e2feb03789cc1cd0df323723b9ec13679075dc970edc5ba242"}}, {"rule": 2, "type": "equivalent", "target": "a4c7b80cea1f3d86e1ebeb039d46f949", "evidence": {"same_day": true, "patch_ids": ["05b36e4e33fd5338dd25a15409b13e9d", "4f1bae07616ee0fb5c5e4b46d54b5b36", "52eab8bd7a63e7f7075f0714ca6383fa", "5387ff70b9b13df766dc4ee83ea4d5cd", "7bf6a28b82f24f6f29d6185ab745fd01", "7d9fe8d7f162d4973084bac117e13458", "92e91d174f3975b9ee8fcabe365fe864"], "statement_hash": "88c284eb649a92e2feb03789cc1cd0df323723b9ec13679075dc970edc5ba242"}}, {"rule": 2, "type": "equivalent", "target": "e51e9f0ae27bbcd0efa98e7f734afd4e", "evidence": {"same_day": true, "patch_ids": ["05b36e4e33fd5338dd25a15409b13e9d", "4f1bae07616ee0fb5c5e4b46d54b5b36", "52eab8bd7a63e7f7075f0714ca6383fa", "5387ff70b9b13df766dc4ee83ea4d5cd", "7bf6a28b82f24f6f29d6185ab745fd01", "7d9fe8d7f162d4973084bac117e13458", "92e91d174f3975b9ee8fcabe365fe864"], "statement_hash": "88c284eb649a92e2feb03789cc1cd0df323723b9ec13679075dc970edc5ba242"}}, {"rule": 2, "type": "equivalent", "target": "eb830ff75d360e6a0f3b6bfc80c31645", "evidence": {"same_day": true, "patch_ids": ["05b36e4e33fd5338dd25a15409b13e9d", "4f1bae07616ee0fb5c5e4b46d54b5b36", "52eab8bd7a63e7f7075f0714ca6383fa", "5387ff70b9b13df766dc4ee83ea4d5cd", "7bf6a28b82f24f6f29d6185ab745fd01", "7d9fe8d7f162d4973084bac117e13458", "92e91d174f3975b9ee8fcabe365fe864"], "statement_hash": "88c284eb649a92e2feb03789cc1cd0df323723b9ec13679075dc970edc5ba242"}}], "version": "17.1", "category_label": "Bug fixes", "also_in": [], "variants": [], "related_changes": [{"db_id": "264c00d4fe4a150e75d61a097ff123db", "kind": "equivalent", "version": "16.5", "label": "16.5", "title": "Fix ways in which an “in place” catalog update could be lost", "evidence": {"same_day": true, "patch_ids": ["05b36e4e33fd5338dd25a15409b13e9d", "4f1bae07616ee0fb5c5e4b46d54b5b36", "52eab8bd7a63e7f7075f0714ca6383fa", "5387ff70b9b13df766dc4ee83ea4d5cd", "7bf6a28b82f24f6f29d6185ab745fd01", "7d9fe8d7f162d4973084bac117e13458", "92e91d174f3975b9ee8fcabe365fe864"], "statement_hash": "88c284eb649a92e2feb03789cc1cd0df323723b9ec13679075dc970edc5ba242"}, "url": "/docs/compare/?release=16.5#16.5-f36a0a1cb407bc0d", "source_url": "/docs/release/16.5/#RELEASE-16-5-CHANGES"}, {"db_id": "eb830ff75d360e6a0f3b6bfc80c31645", "kind": "equivalent", "version": "15.9", "label": "15.9", "title": "Fix ways in which an “in place” catalog update could be lost", "evidence": {"same_day": true, "patch_ids": ["05b36e4e33fd5338dd25a15409b13e9d", "4f1bae07616ee0fb5c5e4b46d54b5b36", "52eab8bd7a63e7f7075f0714ca6383fa", "5387ff70b9b13df766dc4ee83ea4d5cd", "7bf6a28b82f24f6f29d6185ab745fd01", "7d9fe8d7f162d4973084bac117e13458", "92e91d174f3975b9ee8fcabe365fe864"], "statement_hash": "88c284eb649a92e2feb03789cc1cd0df323723b9ec13679075dc970edc5ba242"}, "url": "/docs/compare/?release=15.9#15.9-c350ac7864190d74", "source_url": "/docs/release/15.9/#id-1.11.6.16.5"}, {"db_id": "e51e9f0ae27bbcd0efa98e7f734afd4e", "kind": "equivalent", "version": "14.14", "label": "14.14", "title": "Fix ways in which an “in place” catalog update could be lost", "evidence": {"same_day": true, "patch_ids": ["05b36e4e33fd5338dd25a15409b13e9d", "4f1bae07616ee0fb5c5e4b46d54b5b36", "52eab8bd7a63e7f7075f0714ca6383fa", "5387ff70b9b13df766dc4ee83ea4d5cd", "7bf6a28b82f24f6f29d6185ab745fd01", "7d9fe8d7f162d4973084bac117e13458", "92e91d174f3975b9ee8fcabe365fe864"], "statement_hash": "88c284eb649a92e2feb03789cc1cd0df323723b9ec13679075dc970edc5ba242"}, "url": "/docs/compare/?release=14.14#14.14-08a0d7fc06fd04f8", "source_url": "/docs/release/14.14/#id-1.11.6.16.5"}, {"db_id": "a4c7b80cea1f3d86e1ebeb039d46f949", "kind": "equivalent", "version": "13.17", "label": "13.17", "title": "Fix ways in which an “in place” catalog update could be lost", "evidence": {"same_day": true, "patch_ids": ["05b36e4e33fd5338dd25a15409b13e9d", "4f1bae07616ee0fb5c5e4b46d54b5b36", "52eab8bd7a63e7f7075f0714ca6383fa", "5387ff70b9b13df766dc4ee83ea4d5cd", "7bf6a28b82f24f6f29d6185ab745fd01", "7d9fe8d7f162d4973084bac117e13458", "92e91d174f3975b9ee8fcabe365fe864"], "statement_hash": "88c284eb649a92e2feb03789cc1cd0df323723b9ec13679075dc970edc5ba242"}, "url": "/docs/compare/?release=13.17#13.17-ceead3a3466e6797", "source_url": "/docs/release/13.17/#id-1.11.6.12.5"}, {"db_id": "4da4c3bde6ab372410d0ea2f0c14cf1c", "kind": "equivalent", "version": "12.21", "label": "12.21", "title": "Fix ways in which an “in place” catalog update could be lost", "evidence": {"same_day": true, "patch_ids": ["05b36e4e33fd5338dd25a15409b13e9d", "4f1bae07616ee0fb5c5e4b46d54b5b36", "52eab8bd7a63e7f7075f0714ca6383fa", "5387ff70b9b13df766dc4ee83ea4d5cd", "7bf6a28b82f24f6f29d6185ab745fd01", "7d9fe8d7f162d4973084bac117e13458", "92e91d174f3975b9ee8fcabe365fe864"], "statement_hash": "88c284eb649a92e2feb03789cc1cd0df323723b9ec13679075dc970edc5ba242"}, "url": "/docs/compare/?release=12.21#12.21-608f82caf4cfab8e", "source_url": "/docs/release/12.21/#id-1.11.6.7.6"}]}, {"id": "17.1-fdd8a7b553e4e858", "cves": [], "html": "<p>Reset catalog caches at end of recovery (Noah Misch) <a href=\"https://postgr.es/c/a4668c99f\">§</a></p>\n<p>This prevents scenarios wherein an in-place catalog update could be lost due to using stale data from a catalog cache.</p>", "text": "Reset catalog caches at end of recovery (Noah Misch) § This prevents scenarios wherein an in-place catalog update could be lost due to using stale data from a catalog cache.", "title": "Reset catalog caches at end of recovery", "commits": ["a4668c99f"], "section": "Changes", "category": "improvement", "source_url": "/docs/release/17.1/#RELEASE-17-1-CHANGES", "source_hash": "7ba258e6cfd97400e6743c8075e7ab878dab6045d48bf1ba18e646bb4d01c9ff", "section_path": ["Changes"], "commit_groups": [["3baf804b7", "67f30c79a", "a4668c99f", "d36b4d8ec", "da9950456", "dca68242a"]], "identity_text": "Reset catalog caches at end of recovery (Noah Misch) This prevents scenarios wherein an in-place catalog update could be lost due to using stale data from a catalog cache.", "commit_aliases": ["3baf804b7", "67f30c79a", "a4668c99f", "d36b4d8ec", "da9950456", "dca68242a"], "source_commits": ["a4668c99f"], "source_entry_id": "17.1/changes/025", "db_id": "f79d9965bc861d1581bcbd5e1c99f922", "patch_ids": ["d8e905ab86ebcc2061ec15f9561d12f7"], "statement_hash": "4a224b02222ca1034c36288808b35d4c4bbb6cecb363130697849647bca3a4a8", "relations": [{"rule": 2, "type": "equivalent", "target": "03f38df95d5ba9b19ea98e287c5941dd", "evidence": {"same_day": true, "patch_ids": ["d8e905ab86ebcc2061ec15f9561d12f7"], "statement_hash": "4a224b02222ca1034c36288808b35d4c4bbb6cecb363130697849647bca3a4a8"}}, {"rule": 2, "type": "equivalent", "target": "0f22f13259952ee505c2fd5ecc2f32c3", "evidence": {"same_day": true, "patch_ids": ["d8e905ab86ebcc2061ec15f9561d12f7"], "statement_hash": "4a224b02222ca1034c36288808b35d4c4bbb6cecb363130697849647bca3a4a8"}}, {"rule": 2, "type": "equivalent", "target": "aa00e5eea147d8a44ee23eca484f52e9", "evidence": {"same_day": true, "patch_ids": ["d8e905ab86ebcc2061ec15f9561d12f7"], "statement_hash": "4a224b02222ca1034c36288808b35d4c4bbb6cecb363130697849647bca3a4a8"}}, {"rule": 2, "type": "equivalent", "target": "cd21f7315c06a0f5655474428e16bbac", "evidence": {"same_day": true, "patch_ids": ["d8e905ab86ebcc2061ec15f9561d12f7"], "statement_hash": "4a224b02222ca1034c36288808b35d4c4bbb6cecb363130697849647bca3a4a8"}}, {"rule": 2, "type": "equivalent", "target": "d884bf75960c7349cddc766f955ef4bf", "evidence": {"same_day": true, "patch_ids": ["d8e905ab86ebcc2061ec15f9561d12f7"], "statement_hash": "4a224b02222ca1034c36288808b35d4c4bbb6cecb363130697849647bca3a4a8"}}], "version": "17.1", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": [{"db_id": "aa00e5eea147d8a44ee23eca484f52e9", "kind": "equivalent", "version": "16.5", "label": "16.5", "title": "Reset catalog caches at end of recovery", "evidence": {"same_day": true, "patch_ids": ["d8e905ab86ebcc2061ec15f9561d12f7"], "statement_hash": "4a224b02222ca1034c36288808b35d4c4bbb6cecb363130697849647bca3a4a8"}, "url": "/docs/compare/?release=16.5#16.5-bd7eb976843daf16", "source_url": "/docs/release/16.5/#RELEASE-16-5-CHANGES"}, {"db_id": "0f22f13259952ee505c2fd5ecc2f32c3", "kind": "equivalent", "version": "15.9", "label": "15.9", "title": "Reset catalog caches at end of recovery", "evidence": {"same_day": true, "patch_ids": ["d8e905ab86ebcc2061ec15f9561d12f7"], "statement_hash": "4a224b02222ca1034c36288808b35d4c4bbb6cecb363130697849647bca3a4a8"}, "url": "/docs/compare/?release=15.9#15.9-07ec8d0cd51f899d", "source_url": "/docs/release/15.9/#id-1.11.6.16.5"}, {"db_id": "03f38df95d5ba9b19ea98e287c5941dd", "kind": "equivalent", "version": "14.14", "label": "14.14", "title": "Reset catalog caches at end of recovery", "evidence": {"same_day": true, "patch_ids": ["d8e905ab86ebcc2061ec15f9561d12f7"], "statement_hash": "4a224b02222ca1034c36288808b35d4c4bbb6cecb363130697849647bca3a4a8"}, "url": "/docs/compare/?release=14.14#14.14-481dc163cfe9e7eb", "source_url": "/docs/release/14.14/#id-1.11.6.16.5"}, {"db_id": "d884bf75960c7349cddc766f955ef4bf", "kind": "equivalent", "version": "13.17", "label": "13.17", "title": "Reset catalog caches at end of recovery", "evidence": {"same_day": true, "patch_ids": ["d8e905ab86ebcc2061ec15f9561d12f7"], "statement_hash": "4a224b02222ca1034c36288808b35d4c4bbb6cecb363130697849647bca3a4a8"}, "url": "/docs/compare/?release=13.17#13.17-c138e4e18d01025b", "source_url": "/docs/release/13.17/#id-1.11.6.12.5"}, {"db_id": "cd21f7315c06a0f5655474428e16bbac", "kind": "equivalent", "version": "12.21", "label": "12.21", "title": "Reset catalog caches at end of recovery", "evidence": {"same_day": true, "patch_ids": ["d8e905ab86ebcc2061ec15f9561d12f7"], "statement_hash": "4a224b02222ca1034c36288808b35d4c4bbb6cecb363130697849647bca3a4a8"}, "url": "/docs/compare/?release=12.21#12.21-865e40421a2a7155", "source_url": "/docs/release/12.21/#id-1.11.6.7.6"}]}, {"id": "17.1-06c66c306e1e689d", "cves": [], "html": "<p>Avoid using parallel query while holding off interrupts (Francesco Degrassi, Noah Misch, Tom Lane) <a href=\"https://postgr.es/c/2370582ab\">§</a> <a href=\"https://postgr.es/c/943b65358\">§</a></p>\n<p>This situation cannot arise normally, but it can be reached with test scenarios such as using a SQL-language function as B-tree support (which would be far too slow for production usage). If it did occur it would result in an indefinite wait.</p>", "text": "Avoid using parallel query while holding off interrupts (Francesco Degrassi, Noah Misch, Tom Lane) § § This situation cannot arise normally, but it can be reached with test scenarios such as using a SQL-language function as B-tree support (which would be far too slow for production usage). If it did occur it would result in an indefinite wait.", "title": "Avoid using parallel query while holding off interrupts", "commits": ["2370582ab", "943b65358"], "section": "Changes", "category": "improvement", "source_url": "/docs/release/17.1/#RELEASE-17-1-CHANGES", "source_hash": "6b4ef45a4b55a8f40e83d784fa0a6b0c426097ed8d244dbf3a1d1cd6eff53554", "section_path": ["Changes"], "commit_groups": [["06424e9a2", "62685876f", "6e39ca6e7", "943b65358", "989ccd26c", "b8df69049", "bcbdb176e"], ["2370582ab", "507b72bd9", "5c698e898", "6f6521de9", "884860bfc", "916b8ae47", "ac04aa84a"]], "identity_text": "Avoid using parallel query while holding off interrupts (Francesco Degrassi, Noah Misch, Tom Lane) This situation cannot arise normally, but it can be reached with test scenarios such as using a SQL-language function as B-tree support (which would be far too slow for production usage). If it did occur it would result in an indefinite wait.", "commit_aliases": ["06424e9a2", "2370582ab", "507b72bd9", "5c698e898", "62685876f", "6e39ca6e7", "6f6521de9", "884860bfc", "916b8ae47", "943b65358", "989ccd26c", "ac04aa84a", "b8df69049", "bcbdb176e"], "source_commits": ["2370582ab", "943b65358"], "source_entry_id": "17.1/changes/026", "db_id": "934d89fc2549c8cbadcbf480ec891705", "patch_ids": ["29bb688d4e8208d2082e4f499367d4b5", "d51d4f1f90e0ae612393573f187e5578"], "statement_hash": "adf8c98c039a0012402ced84be2f8e79013c496b233860353a2dbe702b0840c0", "relations": [{"rule": 2, "type": "equivalent", "target": "16437a71fa6942226ce8d635a44db8db", "evidence": {"same_day": true, "patch_ids": ["29bb688d4e8208d2082e4f499367d4b5", "d51d4f1f90e0ae612393573f187e5578"], "statement_hash": "adf8c98c039a0012402ced84be2f8e79013c496b233860353a2dbe702b0840c0"}}, {"rule": 2, "type": "equivalent", "target": "24cc8c07aade56116be077eb7b3a6c97", "evidence": {"same_day": true, "patch_ids": ["29bb688d4e8208d2082e4f499367d4b5", "d51d4f1f90e0ae612393573f187e5578"], "statement_hash": "adf8c98c039a0012402ced84be2f8e79013c496b233860353a2dbe702b0840c0"}}, {"rule": 2, "type": "equivalent", "target": "9c64f11a2ea10f08b521f113632af16e", "evidence": {"same_day": true, "patch_ids": ["29bb688d4e8208d2082e4f499367d4b5", "d51d4f1f90e0ae612393573f187e5578"], "statement_hash": "adf8c98c039a0012402ced84be2f8e79013c496b233860353a2dbe702b0840c0"}}, {"rule": 2, "type": "equivalent", "target": "b3f625cf27046112c2282ec0557cc30f", "evidence": {"same_day": true, "patch_ids": ["29bb688d4e8208d2082e4f499367d4b5", "d51d4f1f90e0ae612393573f187e5578"], "statement_hash": "adf8c98c039a0012402ced84be2f8e79013c496b233860353a2dbe702b0840c0"}}, {"rule": 2, "type": "equivalent", "target": "cba213b0d62e0ab3a4bf32c1f5643e83", "evidence": {"same_day": true, "patch_ids": ["29bb688d4e8208d2082e4f499367d4b5", "d51d4f1f90e0ae612393573f187e5578"], "statement_hash": "adf8c98c039a0012402ced84be2f8e79013c496b233860353a2dbe702b0840c0"}}], "version": "17.1", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": [{"db_id": "b3f625cf27046112c2282ec0557cc30f", "kind": "equivalent", "version": "16.5", "label": "16.5", "title": "Avoid using parallel query while holding off interrupts", "evidence": {"same_day": true, "patch_ids": ["29bb688d4e8208d2082e4f499367d4b5", "d51d4f1f90e0ae612393573f187e5578"], "statement_hash": "adf8c98c039a0012402ced84be2f8e79013c496b233860353a2dbe702b0840c0"}, "url": "/docs/compare/?release=16.5#16.5-89c96f632f7ca5f9", "source_url": "/docs/release/16.5/#RELEASE-16-5-CHANGES"}, {"db_id": "24cc8c07aade56116be077eb7b3a6c97", "kind": "equivalent", "version": "15.9", "label": "15.9", "title": "Avoid using parallel query while holding off interrupts", "evidence": {"same_day": true, "patch_ids": ["29bb688d4e8208d2082e4f499367d4b5", "d51d4f1f90e0ae612393573f187e5578"], "statement_hash": "adf8c98c039a0012402ced84be2f8e79013c496b233860353a2dbe702b0840c0"}, "url": "/docs/compare/?release=15.9#15.9-28381949c89f78de", "source_url": "/docs/release/15.9/#id-1.11.6.16.5"}, {"db_id": "cba213b0d62e0ab3a4bf32c1f5643e83", "kind": "equivalent", "version": "14.14", "label": "14.14", "title": "Avoid using parallel query while holding off interrupts", "evidence": {"same_day": true, "patch_ids": ["29bb688d4e8208d2082e4f499367d4b5", "d51d4f1f90e0ae612393573f187e5578"], "statement_hash": "adf8c98c039a0012402ced84be2f8e79013c496b233860353a2dbe702b0840c0"}, "url": "/docs/compare/?release=14.14#14.14-e6ab251303d53866", "source_url": "/docs/release/14.14/#id-1.11.6.16.5"}, {"db_id": "9c64f11a2ea10f08b521f113632af16e", "kind": "equivalent", "version": "13.17", "label": "13.17", "title": "Avoid using parallel query while holding off interrupts", "evidence": {"same_day": true, "patch_ids": ["29bb688d4e8208d2082e4f499367d4b5", "d51d4f1f90e0ae612393573f187e5578"], "statement_hash": "adf8c98c039a0012402ced84be2f8e79013c496b233860353a2dbe702b0840c0"}, "url": "/docs/compare/?release=13.17#13.17-a3b4a4de7beb4cf2", "source_url": "/docs/release/13.17/#id-1.11.6.12.5"}, {"db_id": "16437a71fa6942226ce8d635a44db8db", "kind": "equivalent", "version": "12.21", "label": "12.21", "title": "Avoid using parallel query while holding off interrupts", "evidence": {"same_day": true, "patch_ids": ["29bb688d4e8208d2082e4f499367d4b5", "d51d4f1f90e0ae612393573f187e5578"], "statement_hash": "adf8c98c039a0012402ced84be2f8e79013c496b233860353a2dbe702b0840c0"}, "url": "/docs/compare/?release=12.21#12.21-62e4bb5238c85fde", "source_url": "/docs/release/12.21/#id-1.11.6.7.6"}]}, {"id": "17.1-aef3a8801b632b69", "cves": [], "html": "<p>Ignore not-yet-defined Portals in the <code>pg_cursors</code> view (Tom Lane) <a href=\"https://postgr.es/c/3daeb539a\">§</a></p>\n<p>It is possible for user-defined code that inspects this view to be called while a new cursor is being set up, and if that happens a null pointer dereference would ensue. Avoid the problem by defining the view to exclude incompletely-set-up cursors.</p>", "text": "Ignore not-yet-defined Portals in the pg_cursors view (Tom Lane) § It is possible for user-defined code that inspects this view to be called while a new cursor is being set up, and if that happens a null pointer dereference would ensue. Avoid the problem by defining the view to exclude incompletely-set-up cursors.", "title": "Ignore not-yet-defined Portals in the pg_cursors view", "commits": ["3daeb539a"], "section": "Changes", "category": "improvement", "source_url": "/docs/release/17.1/#RELEASE-17-1-CHANGES", "source_hash": "300820f6b8decb7b7b13441fe0d177533ba5ea1cc93d9c648d39998afa88681d", "section_path": ["Changes"], "commit_groups": [["3922c9e9f", "3daeb539a", "4a17acd0d", "5c17f5a63", "5de77b609", "aef75219c", "f8d9a9f21"]], "identity_text": "Ignore not-yet-defined Portals in the pg_cursors view (Tom Lane) It is possible for user-defined code that inspects this view to be called while a new cursor is being set up, and if that happens a null pointer dereference would ensue. Avoid the problem by defining the view to exclude incompletely-set-up cursors.", "commit_aliases": ["3922c9e9f", "3daeb539a", "4a17acd0d", "5c17f5a63", "5de77b609", "aef75219c", "f8d9a9f21"], "source_commits": ["3daeb539a"], "source_entry_id": "17.1/changes/027", "db_id": "ab7451fa47782439c78a591f71331c6f", "patch_ids": ["150c787bf9f6ccaebe4514733bd41ba1"], "statement_hash": "998476f5c947153e08f4173ddb5a0d8d8fef2921423b11177f8d3c0c9eebb8a8", "relations": [{"rule": 2, "type": "equivalent", "target": "0867725684ed36138f7bb9cafd5966fb", "evidence": {"same_day": true, "patch_ids": ["150c787bf9f6ccaebe4514733bd41ba1"], "statement_hash": "998476f5c947153e08f4173ddb5a0d8d8fef2921423b11177f8d3c0c9eebb8a8"}}, {"rule": 2, "type": "equivalent", "target": "40f352ad57f1a44a74ee73d5e8b2ba7a", "evidence": {"same_day": true, "patch_ids": ["150c787bf9f6ccaebe4514733bd41ba1"], "statement_hash": "998476f5c947153e08f4173ddb5a0d8d8fef2921423b11177f8d3c0c9eebb8a8"}}, {"rule": 2, "type": "equivalent", "target": "8615a3985a1a6e36d471474894e4ae49", "evidence": {"same_day": true, "patch_ids": ["150c787bf9f6ccaebe4514733bd41ba1"], "statement_hash": "998476f5c947153e08f4173ddb5a0d8d8fef2921423b11177f8d3c0c9eebb8a8"}}, {"rule": 2, "type": "equivalent", "target": "b75478fe3e881ec9e4d469c23af9882f", "evidence": {"same_day": true, "patch_ids": ["150c787bf9f6ccaebe4514733bd41ba1"], "statement_hash": "998476f5c947153e08f4173ddb5a0d8d8fef2921423b11177f8d3c0c9eebb8a8"}}, {"rule": 2, "type": "equivalent", "target": "d675c60f3cd5aca2145214c45e0e293f", "evidence": {"same_day": true, "patch_ids": ["150c787bf9f6ccaebe4514733bd41ba1"], "statement_hash": "998476f5c947153e08f4173ddb5a0d8d8fef2921423b11177f8d3c0c9eebb8a8"}}], "version": "17.1", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": [{"db_id": "b75478fe3e881ec9e4d469c23af9882f", "kind": "equivalent", "version": "16.5", "label": "16.5", "title": "Ignore not-yet-defined Portals in the pg_cursors view", "evidence": {"same_day": true, "patch_ids": ["150c787bf9f6ccaebe4514733bd41ba1"], "statement_hash": "998476f5c947153e08f4173ddb5a0d8d8fef2921423b11177f8d3c0c9eebb8a8"}, "url": "/docs/compare/?release=16.5#16.5-c4b555a66d26fe62", "source_url": "/docs/release/16.5/#RELEASE-16-5-CHANGES"}, {"db_id": "0867725684ed36138f7bb9cafd5966fb", "kind": "equivalent", "version": "15.9", "label": "15.9", "title": "Ignore not-yet-defined Portals in the pg_cursors view", "evidence": {"same_day": true, "patch_ids": ["150c787bf9f6ccaebe4514733bd41ba1"], "statement_hash": "998476f5c947153e08f4173ddb5a0d8d8fef2921423b11177f8d3c0c9eebb8a8"}, "url": "/docs/compare/?release=15.9#15.9-94ee5f9b5f7ea814", "source_url": "/docs/release/15.9/#id-1.11.6.16.5"}, {"db_id": "8615a3985a1a6e36d471474894e4ae49", "kind": "equivalent", "version": "14.14", "label": "14.14", "title": "Ignore not-yet-defined Portals in the pg_cursors view", "evidence": {"same_day": true, "patch_ids": ["150c787bf9f6ccaebe4514733bd41ba1"], "statement_hash": "998476f5c947153e08f4173ddb5a0d8d8fef2921423b11177f8d3c0c9eebb8a8"}, "url": "/docs/compare/?release=14.14#14.14-2c83eaafe3f48038", "source_url": "/docs/release/14.14/#id-1.11.6.16.5"}, {"db_id": "40f352ad57f1a44a74ee73d5e8b2ba7a", "kind": "equivalent", "version": "13.17", "label": "13.17", "title": "Ignore not-yet-defined Portals in the pg_cursors view", "evidence": {"same_day": true, "patch_ids": ["150c787bf9f6ccaebe4514733bd41ba1"], "statement_hash": "998476f5c947153e08f4173ddb5a0d8d8fef2921423b11177f8d3c0c9eebb8a8"}, "url": "/docs/compare/?release=13.17#13.17-650fc419fd974de2", "source_url": "/docs/release/13.17/#id-1.11.6.12.5"}, {"db_id": "d675c60f3cd5aca2145214c45e0e293f", "kind": "equivalent", "version": "12.21", "label": "12.21", "title": "Ignore not-yet-defined Portals in the pg_cursors view", "evidence": {"same_day": true, "patch_ids": ["150c787bf9f6ccaebe4514733bd41ba1"], "statement_hash": "998476f5c947153e08f4173ddb5a0d8d8fef2921423b11177f8d3c0c9eebb8a8"}, "url": "/docs/compare/?release=12.21#12.21-1f7e358387ad1aa5", "source_url": "/docs/release/12.21/#id-1.11.6.7.6"}]}, {"id": "17.1-6db7422caf84bc75", "cves": [], "html": "<p>Avoid <span>“<span>unexpected table_index_fetch_tuple call during logical decoding</span>”</span> error while decoding a transaction involving insertion of a column default value (Takeshi Ideriha, Hou Zhijie) <a href=\"https://postgr.es/c/918107759\">§</a> <a href=\"https://postgr.es/c/c4b8a916f\">§</a></p>", "text": "Avoid “unexpected table_index_fetch_tuple call during logical decoding” error while decoding a transaction involving insertion of a column default value (Takeshi Ideriha, Hou Zhijie) § §", "title": "Avoid “unexpected table_index_fetch_tuple call during logical decoding” error while decoding a transaction involving insertion of a column default value", "commits": ["918107759", "c4b8a916f"], "section": "Changes", "category": "improvement", "source_url": "/docs/release/17.1/#RELEASE-17-1-CHANGES", "source_hash": "de9482f495a79e0185eeea1571ef0bfb2eedb6aa869e0106621d693ea2482e9d", "section_path": ["Changes"], "commit_groups": [["022564f60", "0f0e253db", "8175a7d11", "918107759", "efe706e27"], ["0c40d9019", "581092c90", "5ce0dcc99", "c4b8a916f", "d759c1a0b"]], "identity_text": "Avoid unexpected table_index_fetch_tuple call during logical decoding error while decoding a transaction involving insertion of a column default value (Takeshi Ideriha, Hou Zhijie)", "commit_aliases": ["022564f60", "0c40d9019", "0f0e253db", "581092c90", "5ce0dcc99", "8175a7d11", "918107759", "c4b8a916f", "d759c1a0b", "efe706e27"], "source_commits": ["918107759", "c4b8a916f"], "source_entry_id": "17.1/changes/028", "db_id": "b62f7643cc5d01e344e8f37a74db8520", "patch_ids": ["17680df5fc978450002a0ce50fc01a30", "2560fa709d0f1efe9d534299d5934343"], "statement_hash": "c585cdcb1deed9634ef163f8470c591b09c31ea993a74a556e8e975a352c5f7f", "relations": [{"rule": 2, "type": "equivalent", "target": "1d388d851aff311941271b2ba3e01b81", "evidence": {"same_day": true, "patch_ids": ["17680df5fc978450002a0ce50fc01a30", "2560fa709d0f1efe9d534299d5934343"], "statement_hash": "c585cdcb1deed9634ef163f8470c591b09c31ea993a74a556e8e975a352c5f7f"}}, {"rule": 2, "type": "equivalent", "target": "24d7fa327affe5b98a3617a4c8a6a445", "evidence": {"same_day": true, "patch_ids": ["17680df5fc978450002a0ce50fc01a30", "2560fa709d0f1efe9d534299d5934343"], "statement_hash": "c585cdcb1deed9634ef163f8470c591b09c31ea993a74a556e8e975a352c5f7f"}}, {"rule": 2, "type": "equivalent", "target": "d255bb5aa0be022d4f093ef7f8ad596c", "evidence": {"same_day": true, "patch_ids": ["17680df5fc978450002a0ce50fc01a30", "2560fa709d0f1efe9d534299d5934343"], "statement_hash": "c585cdcb1deed9634ef163f8470c591b09c31ea993a74a556e8e975a352c5f7f"}}], "version": "17.1", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": [{"db_id": "1d388d851aff311941271b2ba3e01b81", "kind": "equivalent", "version": "16.5", "label": "16.5", "title": "Avoid “unexpected table_index_fetch_tuple call during logical decoding” error while decoding a transaction involving insertion of a column default value", "evidence": {"same_day": true, "patch_ids": ["17680df5fc978450002a0ce50fc01a30", "2560fa709d0f1efe9d534299d5934343"], "statement_hash": "c585cdcb1deed9634ef163f8470c591b09c31ea993a74a556e8e975a352c5f7f"}, "url": "/docs/compare/?release=16.5#16.5-b5adaeb0b0bfabbd", "source_url": "/docs/release/16.5/#RELEASE-16-5-CHANGES"}, {"db_id": "24d7fa327affe5b98a3617a4c8a6a445", "kind": "equivalent", "version": "15.9", "label": "15.9", "title": "Avoid “unexpected table_index_fetch_tuple call during logical decoding” error while decoding a transaction involving insertion of a column default value", "evidence": {"same_day": true, "patch_ids": ["17680df5fc978450002a0ce50fc01a30", "2560fa709d0f1efe9d534299d5934343"], "statement_hash": "c585cdcb1deed9634ef163f8470c591b09c31ea993a74a556e8e975a352c5f7f"}, "url": "/docs/compare/?release=15.9#15.9-0bc695e76545b914", "source_url": "/docs/release/15.9/#id-1.11.6.16.5"}, {"db_id": "d255bb5aa0be022d4f093ef7f8ad596c", "kind": "equivalent", "version": "14.14", "label": "14.14", "title": "Avoid “unexpected table_index_fetch_tuple call during logical decoding” error while decoding a transaction involving insertion of a column default value", "evidence": {"same_day": true, "patch_ids": ["17680df5fc978450002a0ce50fc01a30", "2560fa709d0f1efe9d534299d5934343"], "statement_hash": "c585cdcb1deed9634ef163f8470c591b09c31ea993a74a556e8e975a352c5f7f"}, "url": "/docs/compare/?release=14.14#14.14-1900e3e9cc3eab4c", "source_url": "/docs/release/14.14/#id-1.11.6.16.5"}]}, {"id": "17.1-d43fbbbbd1a290af", "cves": [], "html": "<p>Reduce memory consumption of logical decoding (Masahiko Sawada) <a href=\"https://postgr.es/c/eef9cc4dc\">§</a></p>\n<p>Use a smaller default block size to store tuple data received during logical replication. This reduces memory wastage, which has been reported to be severe while processing long-running transactions, even leading to out-of-memory failures.</p>", "text": "Reduce memory consumption of logical decoding (Masahiko Sawada) § Use a smaller default block size to store tuple data received during logical replication. This reduces memory wastage, which has been reported to be severe while processing long-running transactions, even leading to out-of-memory failures.", "title": "Reduce memory consumption of logical decoding", "commits": ["eef9cc4dc"], "section": "Changes", "category": "improvement", "source_url": "/docs/release/17.1/#RELEASE-17-1-CHANGES", "source_hash": "daa4a5373613eb58d0637708f427bf6031706e42009322b5f0fd8c22a07e91f7", "section_path": ["Changes"], "commit_groups": [["05e982cdc", "1b9b6cc34", "4a675f318", "53fa68b3b", "5c1ed0a51", "cb988b04d", "eef9cc4dc"]], "identity_text": "Reduce memory consumption of logical decoding (Masahiko Sawada) Use a smaller default block size to store tuple data received during logical replication. This reduces memory wastage, which has been reported to be severe while processing long-running transactions, even leading to out-of-memory failures.", "commit_aliases": ["05e982cdc", "1b9b6cc34", "4a675f318", "53fa68b3b", "5c1ed0a51", "cb988b04d", "eef9cc4dc"], "source_commits": ["eef9cc4dc"], "source_entry_id": "17.1/changes/029", "db_id": "97c3269bffd0c820b06905fbe2d464f9", "patch_ids": ["473ac57f52486f7e2341aa56eec194c2"], "statement_hash": "41677895da3ee075c9b726464616a279de0b41105d90638c0e57718cefefc690", "relations": [{"rule": 2, "type": "equivalent", "target": "31bd9403607ae022bbb2521df351cbfc", "evidence": {"same_day": true, "patch_ids": ["473ac57f52486f7e2341aa56eec194c2"], "statement_hash": "41677895da3ee075c9b726464616a279de0b41105d90638c0e57718cefefc690"}}, {"rule": 2, "type": "equivalent", "target": "3d9fd2ba6502c820c1ac0c749da6c3d2", "evidence": {"same_day": true, "patch_ids": ["473ac57f52486f7e2341aa56eec194c2"], "statement_hash": "41677895da3ee075c9b726464616a279de0b41105d90638c0e57718cefefc690"}}, {"rule": 2, "type": "equivalent", "target": "4727ddf86fcb969c81cd421d0cdb58de", "evidence": {"same_day": true, "patch_ids": ["473ac57f52486f7e2341aa56eec194c2"], "statement_hash": "41677895da3ee075c9b726464616a279de0b41105d90638c0e57718cefefc690"}}, {"rule": 2, "type": "equivalent", "target": "9bf3080cc388d1bf67d4b4ef7f8fa15d", "evidence": {"same_day": true, "patch_ids": ["473ac57f52486f7e2341aa56eec194c2"], "statement_hash": "41677895da3ee075c9b726464616a279de0b41105d90638c0e57718cefefc690"}}, {"rule": 2, "type": "equivalent", "target": "a4f89dcd882799f19e8888f9472f9d26", "evidence": {"same_day": true, "patch_ids": ["473ac57f52486f7e2341aa56eec194c2"], "statement_hash": "41677895da3ee075c9b726464616a279de0b41105d90638c0e57718cefefc690"}}], "version": "17.1", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": [{"db_id": "3d9fd2ba6502c820c1ac0c749da6c3d2", "kind": "equivalent", "version": "16.5", "label": "16.5", "title": "Reduce memory consumption of logical decoding", "evidence": {"same_day": true, "patch_ids": ["473ac57f52486f7e2341aa56eec194c2"], "statement_hash": "41677895da3ee075c9b726464616a279de0b41105d90638c0e57718cefefc690"}, "url": "/docs/compare/?release=16.5#16.5-196b5d37b1ff6140", "source_url": "/docs/release/16.5/#RELEASE-16-5-CHANGES"}, {"db_id": "4727ddf86fcb969c81cd421d0cdb58de", "kind": "equivalent", "version": "15.9", "label": "15.9", "title": "Reduce memory consumption of logical decoding", "evidence": {"same_day": true, "patch_ids": ["473ac57f52486f7e2341aa56eec194c2"], "statement_hash": "41677895da3ee075c9b726464616a279de0b41105d90638c0e57718cefefc690"}, "url": "/docs/compare/?release=15.9#15.9-c58d70da65922c19", "source_url": "/docs/release/15.9/#id-1.11.6.16.5"}, {"db_id": "9bf3080cc388d1bf67d4b4ef7f8fa15d", "kind": "equivalent", "version": "14.14", "label": "14.14", "title": "Reduce memory consumption of logical decoding", "evidence": {"same_day": true, "patch_ids": ["473ac57f52486f7e2341aa56eec194c2"], "statement_hash": "41677895da3ee075c9b726464616a279de0b41105d90638c0e57718cefefc690"}, "url": "/docs/compare/?release=14.14#14.14-6255a3cff82754f5", "source_url": "/docs/release/14.14/#id-1.11.6.16.5"}, {"db_id": "31bd9403607ae022bbb2521df351cbfc", "kind": "equivalent", "version": "13.17", "label": "13.17", "title": "Reduce memory consumption of logical decoding", "evidence": {"same_day": true, "patch_ids": ["473ac57f52486f7e2341aa56eec194c2"], "statement_hash": "41677895da3ee075c9b726464616a279de0b41105d90638c0e57718cefefc690"}, "url": "/docs/compare/?release=13.17#13.17-f2d64b8488ba0701", "source_url": "/docs/release/13.17/#id-1.11.6.12.5"}, {"db_id": "a4f89dcd882799f19e8888f9472f9d26", "kind": "equivalent", "version": "12.21", "label": "12.21", "title": "Reduce memory consumption of logical decoding", "evidence": {"same_day": true, "patch_ids": ["473ac57f52486f7e2341aa56eec194c2"], "statement_hash": "41677895da3ee075c9b726464616a279de0b41105d90638c0e57718cefefc690"}, "url": "/docs/compare/?release=12.21#12.21-4155de347ff97daf", "source_url": "/docs/release/12.21/#id-1.11.6.7.6"}]}, {"id": "17.1-42a6ede2406a0663", "cves": [], "html": "<p>Fix behavior of stable functions called from a <code>CALL</code> statement's argument list, when the <code>CALL</code> is within a PL/pgSQL <code>EXCEPTION</code> block (Tom Lane) <a href=\"https://postgr.es/c/b5eef7539\">§</a></p>\n<p>As with a similar fix in our previous quarterly releases, this case allowed such functions to be passed the wrong snapshot, causing them to see stale values of rows modified since the start of the outer transaction.</p>", "text": "Fix behavior of stable functions called from a CALL statement's argument list, when the CALL is within a PL/pgSQL EXCEPTION block (Tom Lane) § As with a similar fix in our previous quarterly releases, this case allowed such functions to be passed the wrong snapshot, causing them to see stale values of rows modified since the start of the outer transaction.", "title": "Fix behavior of stable functions called from a CALL statement's argument list, when the CALL is within a PL/pgSQL EXCEPTION block", "commits": ["b5eef7539"], "section": "Changes", "category": "bugfix", "source_url": "/docs/release/17.1/#RELEASE-17-1-CHANGES", "source_hash": "ea4d614c565838f06c30f301a64b548232d63f75e5c9d58ca6c4b7d6ad87a6c5", "section_path": ["Changes"], "commit_groups": [["0d83ced3c", "25d639eea", "ab13c46ff", "b35231989", "b5eef7539", "c96de42c4", "cf1443d67"]], "identity_text": "Fix behavior of stable functions called from a CALL statement's argument list, when the CALL is within a PL/pgSQL EXCEPTION block (Tom Lane) As with a similar fix in our previous quarterly releases, this case allowed such functions to be passed the wrong snapshot, causing them to see stale values of rows modified since the start of the outer transaction.", "commit_aliases": ["0d83ced3c", "25d639eea", "ab13c46ff", "b35231989", "b5eef7539", "c96de42c4", "cf1443d67"], "source_commits": ["b5eef7539"], "source_entry_id": "17.1/changes/030", "db_id": "5d81893dc288c0936c9c48f30ecb9eb4", "patch_ids": ["ae436882c6ec585ee00e5aaf3b0ba982"], "statement_hash": "87a8d9c87ab798ec77011d823d44a15cc22322eb4a68938b54bef8818a6709c9", "relations": [{"rule": 2, "type": "equivalent", "target": "701cddbee61b49f9376bd78f39126e40", "evidence": {"same_day": true, "patch_ids": ["ae436882c6ec585ee00e5aaf3b0ba982"], "statement_hash": "87a8d9c87ab798ec77011d823d44a15cc22322eb4a68938b54bef8818a6709c9"}}, {"rule": 2, "type": "equivalent", "target": "983c4b91d18d1194eb6f789b54cbff5b", "evidence": {"same_day": true, "patch_ids": ["ae436882c6ec585ee00e5aaf3b0ba982"], "statement_hash": "87a8d9c87ab798ec77011d823d44a15cc22322eb4a68938b54bef8818a6709c9"}}, {"rule": 2, "type": "equivalent", "target": "a04abc49096f3811d441a2197b029a6f", "evidence": {"same_day": true, "patch_ids": ["ae436882c6ec585ee00e5aaf3b0ba982"], "statement_hash": "87a8d9c87ab798ec77011d823d44a15cc22322eb4a68938b54bef8818a6709c9"}}, {"rule": 2, "type": "equivalent", "target": "c070d073d2b607186446f019fee68129", "evidence": {"same_day": true, "patch_ids": ["ae436882c6ec585ee00e5aaf3b0ba982"], "statement_hash": "87a8d9c87ab798ec77011d823d44a15cc22322eb4a68938b54bef8818a6709c9"}}, {"rule": 2, "type": "equivalent", "target": "efdb2a8ecc917aaf8d1032ff897f1f9d", "evidence": {"same_day": true, "patch_ids": ["ae436882c6ec585ee00e5aaf3b0ba982"], "statement_hash": "87a8d9c87ab798ec77011d823d44a15cc22322eb4a68938b54bef8818a6709c9"}}], "version": "17.1", "category_label": "Bug fixes", "also_in": [], "variants": [], "related_changes": [{"db_id": "983c4b91d18d1194eb6f789b54cbff5b", "kind": "equivalent", "version": "16.5", "label": "16.5", "title": "Fix behavior of stable functions called from a CALL statement's argument list, when the CALL is within a PL/pgSQL EXCEPTION block", "evidence": {"same_day": true, "patch_ids": ["ae436882c6ec585ee00e5aaf3b0ba982"], "statement_hash": "87a8d9c87ab798ec77011d823d44a15cc22322eb4a68938b54bef8818a6709c9"}, "url": "/docs/compare/?release=16.5#16.5-4b8849d9ca73753c", "source_url": "/docs/release/16.5/#RELEASE-16-5-CHANGES"}, {"db_id": "701cddbee61b49f9376bd78f39126e40", "kind": "equivalent", "version": "15.9", "label": "15.9", "title": "Fix behavior of stable functions called from a CALL statement's argument list, when the CALL is within a PL/pgSQL EXCEPTION block", "evidence": {"same_day": true, "patch_ids": ["ae436882c6ec585ee00e5aaf3b0ba982"], "statement_hash": "87a8d9c87ab798ec77011d823d44a15cc22322eb4a68938b54bef8818a6709c9"}, "url": "/docs/compare/?release=15.9#15.9-72112fe7daf3d40f", "source_url": "/docs/release/15.9/#id-1.11.6.16.5"}, {"db_id": "efdb2a8ecc917aaf8d1032ff897f1f9d", "kind": "equivalent", "version": "14.14", "label": "14.14", "title": "Fix behavior of stable functions called from a CALL statement's argument list, when the CALL is within a PL/pgSQL EXCEPTION block", "evidence": {"same_day": true, "patch_ids": ["ae436882c6ec585ee00e5aaf3b0ba982"], "statement_hash": "87a8d9c87ab798ec77011d823d44a15cc22322eb4a68938b54bef8818a6709c9"}, "url": "/docs/compare/?release=14.14#14.14-f03b3171c22729d1", "source_url": "/docs/release/14.14/#id-1.11.6.16.5"}, {"db_id": "a04abc49096f3811d441a2197b029a6f", "kind": "equivalent", "version": "13.17", "label": "13.17", "title": "Fix behavior of stable functions called from a CALL statement's argument list, when the CALL is within a PL/pgSQL EXCEPTION block", "evidence": {"same_day": true, "patch_ids": ["ae436882c6ec585ee00e5aaf3b0ba982"], "statement_hash": "87a8d9c87ab798ec77011d823d44a15cc22322eb4a68938b54bef8818a6709c9"}, "url": "/docs/compare/?release=13.17#13.17-f7cac22714a4f7fa", "source_url": "/docs/release/13.17/#id-1.11.6.12.5"}, {"db_id": "c070d073d2b607186446f019fee68129", "kind": "equivalent", "version": "12.21", "label": "12.21", "title": "Fix behavior of stable functions called from a CALL statement's argument list, when the CALL is within a PL/pgSQL EXCEPTION block", "evidence": {"same_day": true, "patch_ids": ["ae436882c6ec585ee00e5aaf3b0ba982"], "statement_hash": "87a8d9c87ab798ec77011d823d44a15cc22322eb4a68938b54bef8818a6709c9"}, "url": "/docs/compare/?release=12.21#12.21-2c76105ecb91906f", "source_url": "/docs/release/12.21/#id-1.11.6.7.6"}]}, {"id": "17.1-a922aa3daef9edf6", "cves": [], "html": "<p>Parse <span>libpq</span>'s <code>keepalives</code> connection option in the same way as other integer-valued options (Yuto Sasaki) <a href=\"https://postgr.es/c/c7a201053\">§</a></p>\n<p>The coding used here rejected trailing whitespace in the option value, unlike other cases. This turns out to be problematic in <span>ecpg</span>'s usage, for example.</p>", "text": "Parse libpq's keepalives connection option in the same way as other integer-valued options (Yuto Sasaki) § The coding used here rejected trailing whitespace in the option value, unlike other cases. This turns out to be problematic in ecpg's usage, for example.", "title": "Parse libpq's keepalives connection option in the same way as other integer-valued options", "commits": ["c7a201053"], "section": "Changes", "category": "improvement", "source_url": "/docs/release/17.1/#RELEASE-17-1-CHANGES", "source_hash": "466610b847ee0500a0c5ed519cae44df0da376d2d53b2e543d03af0015230038", "section_path": ["Changes"], "commit_groups": [["2120eda94", "47d8a15de", "65f431aff", "920d51979", "bb8c89dbc", "c7a201053", "e7af9b52f"]], "identity_text": "Parse libpq's keepalives connection option in the same way as other integer-valued options (Yuto Sasaki) The coding used here rejected trailing whitespace in the option value, unlike other cases. This turns out to be problematic in ecpg's usage, for example.", "commit_aliases": ["2120eda94", "47d8a15de", "65f431aff", "920d51979", "bb8c89dbc", "c7a201053", "e7af9b52f"], "source_commits": ["c7a201053"], "source_entry_id": "17.1/changes/031", "db_id": "7e09a91933f87c4ae53f0fb08ec6ceee", "patch_ids": ["2465fb0d4f04066f288d72fdd4794d59"], "statement_hash": "a4d5a5b5497f1afbbc05c01b4425859a1934a91bc6ee484bfab9a95cf7fd1946", "relations": [{"rule": 2, "type": "equivalent", "target": "727c393e1ef5548b5eeebdcd27d10beb", "evidence": {"same_day": true, "patch_ids": ["2465fb0d4f04066f288d72fdd4794d59"], "statement_hash": "a4d5a5b5497f1afbbc05c01b4425859a1934a91bc6ee484bfab9a95cf7fd1946"}}, {"rule": 2, "type": "equivalent", "target": "9bc5dfea58bdf41e6947b117f85b50b7", "evidence": {"same_day": true, "patch_ids": ["2465fb0d4f04066f288d72fdd4794d59"], "statement_hash": "a4d5a5b5497f1afbbc05c01b4425859a1934a91bc6ee484bfab9a95cf7fd1946"}}, {"rule": 2, "type": "equivalent", "target": "b1abc23dad8d1bb9fecf44d14b4d8519", "evidence": {"same_day": true, "patch_ids": ["2465fb0d4f04066f288d72fdd4794d59"], "statement_hash": "a4d5a5b5497f1afbbc05c01b4425859a1934a91bc6ee484bfab9a95cf7fd1946"}}, {"rule": 2, "type": "equivalent", "target": "d8a0a55bc2ad3a1eeb862bcaaf0da1c6", "evidence": {"same_day": true, "patch_ids": ["2465fb0d4f04066f288d72fdd4794d59"], "statement_hash": "a4d5a5b5497f1afbbc05c01b4425859a1934a91bc6ee484bfab9a95cf7fd1946"}}, {"rule": 2, "type": "equivalent", "target": "f43516cc9cb41aef226fbd6ec1a2178e", "evidence": {"same_day": true, "patch_ids": ["2465fb0d4f04066f288d72fdd4794d59"], "statement_hash": "a4d5a5b5497f1afbbc05c01b4425859a1934a91bc6ee484bfab9a95cf7fd1946"}}], "version": "17.1", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": [{"db_id": "f43516cc9cb41aef226fbd6ec1a2178e", "kind": "equivalent", "version": "16.5", "label": "16.5", "title": "Parse libpq's keepalives connection option in the same way as other integer-valued options", "evidence": {"same_day": true, "patch_ids": ["2465fb0d4f04066f288d72fdd4794d59"], "statement_hash": "a4d5a5b5497f1afbbc05c01b4425859a1934a91bc6ee484bfab9a95cf7fd1946"}, "url": "/docs/compare/?release=16.5#16.5-421b9f7051ea9b30", "source_url": "/docs/release/16.5/#RELEASE-16-5-CHANGES"}, {"db_id": "b1abc23dad8d1bb9fecf44d14b4d8519", "kind": "equivalent", "version": "15.9", "label": "15.9", "title": "Parse libpq's keepalives connection option in the same way as other integer-valued options", "evidence": {"same_day": true, "patch_ids": ["2465fb0d4f04066f288d72fdd4794d59"], "statement_hash": "a4d5a5b5497f1afbbc05c01b4425859a1934a91bc6ee484bfab9a95cf7fd1946"}, "url": "/docs/compare/?release=15.9#15.9-5dea5c1e133562e5", "source_url": "/docs/release/15.9/#id-1.11.6.16.5"}, {"db_id": "727c393e1ef5548b5eeebdcd27d10beb", "kind": "equivalent", "version": "14.14", "label": "14.14", "title": "Parse libpq's keepalives connection option in the same way as other integer-valued options", "evidence": {"same_day": true, "patch_ids": ["2465fb0d4f04066f288d72fdd4794d59"], "statement_hash": "a4d5a5b5497f1afbbc05c01b4425859a1934a91bc6ee484bfab9a95cf7fd1946"}, "url": "/docs/compare/?release=14.14#14.14-11149b752f003764", "source_url": "/docs/release/14.14/#id-1.11.6.16.5"}, {"db_id": "9bc5dfea58bdf41e6947b117f85b50b7", "kind": "equivalent", "version": "13.17", "label": "13.17", "title": "Parse libpq's keepalives connection option in the same way as other integer-valued options", "evidence": {"same_day": true, "patch_ids": ["2465fb0d4f04066f288d72fdd4794d59"], "statement_hash": "a4d5a5b5497f1afbbc05c01b4425859a1934a91bc6ee484bfab9a95cf7fd1946"}, "url": "/docs/compare/?release=13.17#13.17-61d7b37fac36face", "source_url": "/docs/release/13.17/#id-1.11.6.12.5"}, {"db_id": "d8a0a55bc2ad3a1eeb862bcaaf0da1c6", "kind": "equivalent", "version": "12.21", "label": "12.21", "title": "Parse libpq's keepalives connection option in the same way as other integer-valued options", "evidence": {"same_day": true, "patch_ids": ["2465fb0d4f04066f288d72fdd4794d59"], "statement_hash": "a4d5a5b5497f1afbbc05c01b4425859a1934a91bc6ee484bfab9a95cf7fd1946"}, "url": "/docs/compare/?release=12.21#12.21-908e622976bf6b0d", "source_url": "/docs/release/12.21/#id-1.11.6.7.6"}]}, {"id": "17.1-529ff7381233cffe", "cves": [], "html": "<p>In <span>ecpglib</span>, fix out-of-bounds read when parsing incorrect datetime input (Bruce Momjian, Pavel Nekrasov) <a href=\"https://postgr.es/c/2c37cb26f\">§</a></p>\n<p>It was possible to try to read the location just before the start of a constant array. Real-world consequences seem minimal, though.</p>", "text": "In ecpglib, fix out-of-bounds read when parsing incorrect datetime input (Bruce Momjian, Pavel Nekrasov) § It was possible to try to read the location just before the start of a constant array. Real-world consequences seem minimal, though.", "title": "In ecpglib, fix out-of-bounds read when parsing incorrect datetime input", "commits": ["2c37cb26f"], "section": "Changes", "category": "bugfix", "source_url": "/docs/release/17.1/#RELEASE-17-1-CHANGES", "source_hash": "1e6849bb5e89cfb168245b8ffe9b0d9a4a99d95c6f86ffb1f3ac5b319055bd35", "section_path": ["Changes"], "commit_groups": [["2c37cb26f", "335501fb2", "9a51d4af1", "9ecfd8a48", "a0bff38d1", "a1e613b81", "fcafbaadf"]], "identity_text": "In ecpglib, fix out-of-bounds read when parsing incorrect datetime input (Bruce Momjian, Pavel Nekrasov) It was possible to try to read the location just before the start of a constant array. Real-world consequences seem minimal, though.", "commit_aliases": ["2c37cb26f", "335501fb2", "9a51d4af1", "9ecfd8a48", "a0bff38d1", "a1e613b81", "fcafbaadf"], "source_commits": ["2c37cb26f"], "source_entry_id": "17.1/changes/032", "db_id": "1e77eaf900773e6236b6ffb21cd7fc1b", "patch_ids": ["6d12442b6d9d80d7f2923a3854691932"], "statement_hash": "fd725ea9d4ad0f110ed972492b2c7c4b3e8b7f15383cdca60a5609f422c83ea1", "relations": [{"rule": 2, "type": "equivalent", "target": "0e0f03b7d096ceb8efb241246cfdfc73", "evidence": {"same_day": true, "patch_ids": ["6d12442b6d9d80d7f2923a3854691932"], "statement_hash": "fd725ea9d4ad0f110ed972492b2c7c4b3e8b7f15383cdca60a5609f422c83ea1"}}, {"rule": 2, "type": "equivalent", "target": "3e8175be0a09cac5e3bff6077bbc630c", "evidence": {"same_day": true, "patch_ids": ["6d12442b6d9d80d7f2923a3854691932"], "statement_hash": "fd725ea9d4ad0f110ed972492b2c7c4b3e8b7f15383cdca60a5609f422c83ea1"}}, {"rule": 2, "type": "equivalent", "target": "7f2e5e6d89138f85f6e1120a399ebc31", "evidence": {"same_day": true, "patch_ids": ["6d12442b6d9d80d7f2923a3854691932"], "statement_hash": "fd725ea9d4ad0f110ed972492b2c7c4b3e8b7f15383cdca60a5609f422c83ea1"}}, {"rule": 2, "type": "equivalent", "target": "80eee80256c0e6b71e65aa9e92670dff", "evidence": {"same_day": true, "patch_ids": ["6d12442b6d9d80d7f2923a3854691932"], "statement_hash": "fd725ea9d4ad0f110ed972492b2c7c4b3e8b7f15383cdca60a5609f422c83ea1"}}, {"rule": 2, "type": "equivalent", "target": "e34de0e447f0c8752a64af2e4886b995", "evidence": {"same_day": true, "patch_ids": ["6d12442b6d9d80d7f2923a3854691932"], "statement_hash": "fd725ea9d4ad0f110ed972492b2c7c4b3e8b7f15383cdca60a5609f422c83ea1"}}], "version": "17.1", "category_label": "Bug fixes", "also_in": [], "variants": [], "related_changes": [{"db_id": "e34de0e447f0c8752a64af2e4886b995", "kind": "equivalent", "version": "16.5", "label": "16.5", "title": "In ecpglib, fix out-of-bounds read when parsing incorrect datetime input", "evidence": {"same_day": true, "patch_ids": ["6d12442b6d9d80d7f2923a3854691932"], "statement_hash": "fd725ea9d4ad0f110ed972492b2c7c4b3e8b7f15383cdca60a5609f422c83ea1"}, "url": "/docs/compare/?release=16.5#16.5-21e8b24e87f4a12e", "source_url": "/docs/release/16.5/#RELEASE-16-5-CHANGES"}, {"db_id": "3e8175be0a09cac5e3bff6077bbc630c", "kind": "equivalent", "version": "15.9", "label": "15.9", "title": "In ecpglib, fix out-of-bounds read when parsing incorrect datetime input", "evidence": {"same_day": true, "patch_ids": ["6d12442b6d9d80d7f2923a3854691932"], "statement_hash": "fd725ea9d4ad0f110ed972492b2c7c4b3e8b7f15383cdca60a5609f422c83ea1"}, "url": "/docs/compare/?release=15.9#15.9-0cf619e52d9c6c75", "source_url": "/docs/release/15.9/#id-1.11.6.16.5"}, {"db_id": "7f2e5e6d89138f85f6e1120a399ebc31", "kind": "equivalent", "version": "14.14", "label": "14.14", "title": "In ecpglib, fix out-of-bounds read when parsing incorrect datetime input", "evidence": {"same_day": true, "patch_ids": ["6d12442b6d9d80d7f2923a3854691932"], "statement_hash": "fd725ea9d4ad0f110ed972492b2c7c4b3e8b7f15383cdca60a5609f422c83ea1"}, "url": "/docs/compare/?release=14.14#14.14-f6611c4aafbac4c8", "source_url": "/docs/release/14.14/#id-1.11.6.16.5"}, {"db_id": "80eee80256c0e6b71e65aa9e92670dff", "kind": "equivalent", "version": "13.17", "label": "13.17", "title": "In ecpglib, fix out-of-bounds read when parsing incorrect datetime input", "evidence": {"same_day": true, "patch_ids": ["6d12442b6d9d80d7f2923a3854691932"], "statement_hash": "fd725ea9d4ad0f110ed972492b2c7c4b3e8b7f15383cdca60a5609f422c83ea1"}, "url": "/docs/compare/?release=13.17#13.17-b43cbde21c10350a", "source_url": "/docs/release/13.17/#id-1.11.6.12.5"}, {"db_id": "0e0f03b7d096ceb8efb241246cfdfc73", "kind": "equivalent", "version": "12.21", "label": "12.21", "title": "In ecpglib, fix out-of-bounds read when parsing incorrect datetime input", "evidence": {"same_day": true, "patch_ids": ["6d12442b6d9d80d7f2923a3854691932"], "statement_hash": "fd725ea9d4ad0f110ed972492b2c7c4b3e8b7f15383cdca60a5609f422c83ea1"}, "url": "/docs/compare/?release=12.21#12.21-0da18d838f26abf4", "source_url": "/docs/release/12.21/#id-1.11.6.7.6"}]}, {"id": "17.1-de8106eb19abf759", "cves": [], "html": "<p>Fix <span>psql</span>'s describe commands to again work with pre-9.4 servers (Tom Lane) <a href=\"https://postgr.es/c/923a71584\">§</a></p>\n<p>Commands involving display of an ACL (permissions) column failed with very old <span>PostgreSQL</span> servers, due to use of a function not present in those versions.</p>", "text": "Fix psql's describe commands to again work with pre-9.4 servers (Tom Lane) § Commands involving display of an ACL (permissions) column failed with very old PostgreSQL servers, due to use of a function not present in those versions.", "title": "Fix psql's describe commands to again work with pre-9.4 servers", "commits": ["923a71584"], "section": "Changes", "category": "bugfix", "source_url": "/docs/release/17.1/#RELEASE-17-1-CHANGES", "source_hash": "6c1bb6ec881af8691713c77202241bb9a00a94eefa0ebf50dd81df680bde313f", "section_path": ["Changes"], "commit_groups": [["1591b38d1", "923a71584"]], "identity_text": "Fix psql's describe commands to again work with pre-9.4 servers (Tom Lane) Commands involving display of an ACL (permissions) column failed with very old PostgreSQL servers, due to use of a function not present in those versions.", "commit_aliases": ["1591b38d1", "923a71584"], "source_commits": ["923a71584"], "source_entry_id": "17.1/changes/033", "db_id": "18f1350f2daacc37dba5788da5d52ea3", "patch_ids": ["5091e2d362bd6f12dab65d3855536871"], "statement_hash": "ee4d4b36714bf1524f0df827572c249ef13210a79bb77d83abe6fbc47c8869d8", "relations": [], "version": "17.1", "category_label": "Bug fixes", "also_in": [], "variants": [], "related_changes": []}, {"id": "17.1-94b3e497adba1b91", "cves": [], "html": "<p>Avoid hanging if an interval less than 1ms is specified in <span>psql</span>'s <code>\\watch</code> command (Andrey Borodin, Michael Paquier) <a href=\"https://postgr.es/c/8a6170860\">§</a></p>\n<p>Instead, treat this the same as an interval of zero (no wait between executions).</p>", "text": "Avoid hanging if an interval less than 1ms is specified in psql's \\watch command (Andrey Borodin, Michael Paquier) § Instead, treat this the same as an interval of zero (no wait between executions).", "title": "Avoid hanging if an interval less than 1ms is specified in psql's \\watch command", "commits": ["8a6170860"], "section": "Changes", "category": "bugfix", "source_url": "/docs/release/17.1/#RELEASE-17-1-CHANGES", "source_hash": "9dce8c1225d8d55a2bff62d573ccd5f27968ea1a6a4c5606cfb7e434a90063dd", "section_path": ["Changes"], "commit_groups": [["6331972c7", "8a6170860", "9f34cae14"]], "identity_text": "Avoid hanging if an interval less than 1ms is specified in psql's \\watch command (Andrey Borodin, Michael Paquier) Instead, treat this the same as an interval of zero (no wait between executions).", "commit_aliases": ["6331972c7", "8a6170860", "9f34cae14"], "source_commits": ["8a6170860"], "source_entry_id": "17.1/changes/034", "db_id": "81f0bb9d2627ef251bb85efb33a2792f", "patch_ids": ["57069cd5dc4bd4cfc5c1f93e2eff4716"], "statement_hash": "98ed9ab3898440c27f59902a8407246d323c97de1573ce6501db024518a584db", "relations": [{"rule": 2, "type": "equivalent", "target": "ec490d72a0dc9300aa45048145f5399b", "evidence": {"same_day": true, "patch_ids": ["57069cd5dc4bd4cfc5c1f93e2eff4716"], "statement_hash": "98ed9ab3898440c27f59902a8407246d323c97de1573ce6501db024518a584db"}}], "version": "17.1", "category_label": "Bug fixes", "also_in": [], "variants": [], "related_changes": [{"db_id": "ec490d72a0dc9300aa45048145f5399b", "kind": "equivalent", "version": "16.5", "label": "16.5", "title": "Avoid hanging if an interval less than 1ms is specified in psql's \\watch command", "evidence": {"same_day": true, "patch_ids": ["57069cd5dc4bd4cfc5c1f93e2eff4716"], "statement_hash": "98ed9ab3898440c27f59902a8407246d323c97de1573ce6501db024518a584db"}, "url": "/docs/compare/?release=16.5#16.5-d9984a51a186e26b", "source_url": "/docs/release/16.5/#RELEASE-16-5-CHANGES"}]}, {"id": "17.1-7a8e1055559cf847", "cves": [], "html": "<p>Fix failure to find replication password in <code>~/.pgpass</code> (Tom Lane) <a href=\"https://postgr.es/c/e2a912909\">§</a></p>\n<p><span>pg_basebackup</span> and <span>pg_receivewal</span> failed to match an entry in <code>~/.pgpass</code> that had <code>replication</code> in the database name field, if no <code>-d</code> or <code>--dbname</code> switch was supplied. This resulted in an unexpected prompt for password.</p>", "text": "Fix failure to find replication password in ~/.pgpass (Tom Lane) § pg_basebackup and pg_receivewal failed to match an entry in ~/.pgpass that had replication in the database name field, if no -d or --dbname switch was supplied. This resulted in an unexpected prompt for password.", "title": "Fix failure to find replication password in ~/.pgpass", "commits": ["e2a912909"], "section": "Changes", "category": "bugfix", "source_url": "/docs/release/17.1/#RELEASE-17-1-CHANGES", "source_hash": "392a35dfd3a6385b9b7a25d480ff6616b48cef51541bdf8af0172d57d8de023c", "section_path": ["Changes"], "commit_groups": [["b1008c1f0", "e2a912909"]], "identity_text": "Fix failure to find replication password in ~/.pgpass (Tom Lane) pg_basebackup and pg_receivewal failed to match an entry in ~/.pgpass that had replication in the database name field, if no -d or --dbname switch was supplied. This resulted in an unexpected prompt for password.", "commit_aliases": ["b1008c1f0", "e2a912909"], "source_commits": ["e2a912909"], "source_entry_id": "17.1/changes/035", "db_id": "ff8e455f1b215e507c429a3101cdee73", "patch_ids": ["d18feb718c28e1930db46c9b5741a30a"], "statement_hash": "110a67b714d9992ae25140a6320ed7f8c53c2641aaac219ad4275cec2c952c97", "relations": [], "version": "17.1", "category_label": "Bug fixes", "also_in": [], "variants": [], "related_changes": []}, {"id": "17.1-e1fc29f2c3e4664a", "cves": [], "html": "<p>In <span>pg_combinebackup</span>, throw an error if an incremental backup file is present in a directory that is supposed to contain a full backup (Robert Haas) <a href=\"https://postgr.es/c/e36711442\">§</a></p>", "text": "In pg_combinebackup, throw an error if an incremental backup file is present in a directory that is supposed to contain a full backup (Robert Haas) §", "title": "In pg_combinebackup, throw an error if an incremental backup file is present in a directory that is supposed to contain a full backup", "commits": ["e36711442"], "section": "Changes", "category": "improvement", "source_url": "/docs/release/17.1/#RELEASE-17-1-CHANGES", "source_hash": "3701101076b75687ed3886a6a48e8c6ec4ebfc1dcdfa4dd66033b6a0c3aefc85", "section_path": ["Changes"], "commit_groups": [["0b1765d95", "e36711442"]], "identity_text": "In pg_combinebackup, throw an error if an incremental backup file is present in a directory that is supposed to contain a full backup (Robert Haas)", "commit_aliases": ["0b1765d95", "e36711442"], "source_commits": ["e36711442"], "source_entry_id": "17.1/changes/036", "db_id": "7b66882fdff8e9689ab770c45a2a8383", "patch_ids": ["b06704497ba9502d2beaac9514f6ad24"], "statement_hash": "fe31378edbf22df13099150e2a056c82c32224a1599d929e0abb32030810f106", "relations": [], "version": "17.1", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": []}, {"id": "17.1-92ce2ab5b79442b8", "cves": [], "html": "<p>In <span>pg_combinebackup</span>, don't construct filenames containing double slashes (Robert Haas) <a href=\"https://postgr.es/c/0d635b615\">§</a></p>\n<p>This caused no functional problems, but the duplicate slashes were visible in error messages, which could create confusion.</p>", "text": "In pg_combinebackup, don't construct filenames containing double slashes (Robert Haas) § This caused no functional problems, but the duplicate slashes were visible in error messages, which could create confusion.", "title": "In pg_combinebackup, don't construct filenames containing double slashes", "commits": ["0d635b615"], "section": "Changes", "category": "improvement", "source_url": "/docs/release/17.1/#RELEASE-17-1-CHANGES", "source_hash": "46fb8df574a176e1cc2da651c0adcd4cb5300414a6bdd50db1984e855d8f03e1", "section_path": ["Changes"], "commit_groups": [["0d635b615", "6c24801b1"]], "identity_text": "In pg_combinebackup, don't construct filenames containing double slashes (Robert Haas) This caused no functional problems, but the duplicate slashes were visible in error messages, which could create confusion.", "commit_aliases": ["0d635b615", "6c24801b1"], "source_commits": ["0d635b615"], "source_entry_id": "17.1/changes/037", "db_id": "2b83e7518dde0fa62f2e0a32ec041ce9", "patch_ids": ["bcb0bed5356d7bad809a0c0d38c37961"], "statement_hash": "6c88048ec9f49d0f99cf43cd5265afc930ea03c22ae8a630fe3049f9ac2d5c7c", "relations": [], "version": "17.1", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": []}, {"id": "17.1-8ee5d1afad85ebfb", "cves": [], "html": "<p>Avoid trying to reindex temporary tables and indexes in <span>vacuumdb</span> and in parallel <span>reindexdb</span> (VaibhaveS, Michael Paquier, Fujii Masao, Nathan Bossart) <a href=\"https://postgr.es/c/85cb21df6\">§</a> <a href=\"https://postgr.es/c/77f154681\">§</a> <a href=\"https://postgr.es/c/5bd26e652\">§</a></p>\n<p>Reindexing other sessions' temporary tables cannot work, but the check to skip them was missing in some code paths, leading to unwanted failures.</p>", "text": "Avoid trying to reindex temporary tables and indexes in vacuumdb and in parallel reindexdb (VaibhaveS, Michael Paquier, Fujii Masao, Nathan Bossart) § § § Reindexing other sessions' temporary tables cannot work, but the check to skip them was missing in some code paths, leading to unwanted failures.", "title": "Avoid trying to reindex temporary tables and indexes in vacuumdb and in parallel reindexdb", "commits": ["5bd26e652", "77f154681", "85cb21df6"], "section": "Changes", "category": "improvement", "source_url": "/docs/release/17.1/#RELEASE-17-1-CHANGES", "source_hash": "1015e1646461444e1b0c3c37fb17ab3b4eace169a03bf88896664dda32804f4f", "section_path": ["Changes"], "commit_groups": [["1ab67c9df", "1ea4d9c00", "60c618216", "74eaa0544", "85cb21df6", "9db4598c9", "ef57a7135"], ["20cfec896", "653ce5b8b", "77f154681", "88e1153cb", "92cc21d15", "9410f7cbf"], ["5bd26e652", "5e0431c32", "6d047c6a9", "8318f2b17", "ce6f27857", "d4ade0baf", "eba8cc1af"]], "identity_text": "Avoid trying to reindex temporary tables and indexes in vacuumdb and in parallel reindexdb (VaibhaveS, Michael Paquier, Fujii Masao, Nathan Bossart) Reindexing other sessions' temporary tables cannot work, but the check to skip them was missing in some code paths, leading to unwanted failures.", "commit_aliases": ["1ab67c9df", "1ea4d9c00", "20cfec896", "5bd26e652", "5e0431c32", "60c618216", "653ce5b8b", "6d047c6a9", "74eaa0544", "77f154681", "8318f2b17", "85cb21df6", "88e1153cb", "92cc21d15", "9410f7cbf", "9db4598c9", "ce6f27857", "d4ade0baf", "eba8cc1af", "ef57a7135"], "source_commits": ["5bd26e652", "77f154681", "85cb21df6"], "source_entry_id": "17.1/changes/038", "db_id": "49202512ec90fd67899e292bbdf47393", "patch_ids": ["88d23a2fb54459ed87e6d9da412427b4", "b800062e19c05574a49e585e0e072c6b", "ca0e63af13382f01a85afb5f0c50571a"], "statement_hash": "d9443e8290f2ce00659f5cfbdc3500bd28f29dc7b0b8d62c1b26bb2d148d98ac", "relations": [{"rule": 2, "type": "equivalent", "target": "4be0746ae3d31d3a67d4e6575952b2be", "evidence": {"same_day": true, "patch_ids": ["88d23a2fb54459ed87e6d9da412427b4", "b800062e19c05574a49e585e0e072c6b", "ca0e63af13382f01a85afb5f0c50571a"], "statement_hash": "d9443e8290f2ce00659f5cfbdc3500bd28f29dc7b0b8d62c1b26bb2d148d98ac"}}, {"rule": 2, "type": "equivalent", "target": "d6cdd8b6ec59725f8484ea9b6958f9c0", "evidence": {"same_day": true, "patch_ids": ["88d23a2fb54459ed87e6d9da412427b4", "b800062e19c05574a49e585e0e072c6b", "ca0e63af13382f01a85afb5f0c50571a"], "statement_hash": "d9443e8290f2ce00659f5cfbdc3500bd28f29dc7b0b8d62c1b26bb2d148d98ac"}}, {"rule": 2, "type": "equivalent", "target": "e18a9312e9c8aad0f30fdc47f2803910", "evidence": {"same_day": true, "patch_ids": ["88d23a2fb54459ed87e6d9da412427b4", "b800062e19c05574a49e585e0e072c6b", "ca0e63af13382f01a85afb5f0c50571a"], "statement_hash": "d9443e8290f2ce00659f5cfbdc3500bd28f29dc7b0b8d62c1b26bb2d148d98ac"}}, {"rule": 2, "type": "equivalent", "target": "fa418bc3e162a87cba139153560d10be", "evidence": {"same_day": true, "patch_ids": ["88d23a2fb54459ed87e6d9da412427b4", "b800062e19c05574a49e585e0e072c6b", "ca0e63af13382f01a85afb5f0c50571a"], "statement_hash": "d9443e8290f2ce00659f5cfbdc3500bd28f29dc7b0b8d62c1b26bb2d148d98ac"}}, {"rule": 2, "type": "equivalent", "target": "fd6538cb5adf6f39f27bb662e664a7b0", "evidence": {"same_day": true, "patch_ids": ["88d23a2fb54459ed87e6d9da412427b4", "b800062e19c05574a49e585e0e072c6b", "ca0e63af13382f01a85afb5f0c50571a"], "statement_hash": "d9443e8290f2ce00659f5cfbdc3500bd28f29dc7b0b8d62c1b26bb2d148d98ac"}}], "version": "17.1", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": [{"db_id": "4be0746ae3d31d3a67d4e6575952b2be", "kind": "equivalent", "version": "16.5", "label": "16.5", "title": "Avoid trying to reindex temporary tables and indexes in vacuumdb and in parallel reindexdb", "evidence": {"same_day": true, "patch_ids": ["88d23a2fb54459ed87e6d9da412427b4", "b800062e19c05574a49e585e0e072c6b", "ca0e63af13382f01a85afb5f0c50571a"], "statement_hash": "d9443e8290f2ce00659f5cfbdc3500bd28f29dc7b0b8d62c1b26bb2d148d98ac"}, "url": "/docs/compare/?release=16.5#16.5-d6310735ce407b5d", "source_url": "/docs/release/16.5/#RELEASE-16-5-CHANGES"}, {"db_id": "e18a9312e9c8aad0f30fdc47f2803910", "kind": "equivalent", "version": "15.9", "label": "15.9", "title": "Avoid trying to reindex temporary tables and indexes in vacuumdb and in parallel reindexdb", "evidence": {"same_day": true, "patch_ids": ["88d23a2fb54459ed87e6d9da412427b4", "b800062e19c05574a49e585e0e072c6b", "ca0e63af13382f01a85afb5f0c50571a"], "statement_hash": "d9443e8290f2ce00659f5cfbdc3500bd28f29dc7b0b8d62c1b26bb2d148d98ac"}, "url": "/docs/compare/?release=15.9#15.9-34a426bc02bd0bec", "source_url": "/docs/release/15.9/#id-1.11.6.16.5"}, {"db_id": "fa418bc3e162a87cba139153560d10be", "kind": "equivalent", "version": "14.14", "label": "14.14", "title": "Avoid trying to reindex temporary tables and indexes in vacuumdb and in parallel reindexdb", "evidence": {"same_day": true, "patch_ids": ["88d23a2fb54459ed87e6d9da412427b4", "b800062e19c05574a49e585e0e072c6b", "ca0e63af13382f01a85afb5f0c50571a"], "statement_hash": "d9443e8290f2ce00659f5cfbdc3500bd28f29dc7b0b8d62c1b26bb2d148d98ac"}, "url": "/docs/compare/?release=14.14#14.14-d361402759971b18", "source_url": "/docs/release/14.14/#id-1.11.6.16.5"}, {"db_id": "fd6538cb5adf6f39f27bb662e664a7b0", "kind": "equivalent", "version": "13.17", "label": "13.17", "title": "Avoid trying to reindex temporary tables and indexes in vacuumdb and in parallel reindexdb", "evidence": {"same_day": true, "patch_ids": ["88d23a2fb54459ed87e6d9da412427b4", "b800062e19c05574a49e585e0e072c6b", "ca0e63af13382f01a85afb5f0c50571a"], "statement_hash": "d9443e8290f2ce00659f5cfbdc3500bd28f29dc7b0b8d62c1b26bb2d148d98ac"}, "url": "/docs/compare/?release=13.17#13.17-39b4d508a3ebe1d9", "source_url": "/docs/release/13.17/#id-1.11.6.12.5"}, {"db_id": "d6cdd8b6ec59725f8484ea9b6958f9c0", "kind": "equivalent", "version": "12.21", "label": "12.21", "title": "Avoid trying to reindex temporary tables and indexes in vacuumdb and in parallel reindexdb", "evidence": {"same_day": true, "patch_ids": ["88d23a2fb54459ed87e6d9da412427b4", "b800062e19c05574a49e585e0e072c6b", "ca0e63af13382f01a85afb5f0c50571a"], "statement_hash": "d9443e8290f2ce00659f5cfbdc3500bd28f29dc7b0b8d62c1b26bb2d148d98ac"}, "url": "/docs/compare/?release=12.21#12.21-f1b420bde0d9e3c5", "source_url": "/docs/release/12.21/#id-1.11.6.7.6"}]}, {"id": "17.1-340a46645824a2bd", "cves": [], "html": "<p>Fix incorrect LLVM-generated code on ARM64 platforms (Thomas Munro, Anthonin Bonnefoy) <a href=\"https://postgr.es/c/b7467ab71\">§</a></p>\n<p>When using JIT compilation on ARM platforms, the generated code could not support relocation distances exceeding 32 bits, allowing unlucky placement of generated code to cause server crashes on large-memory systems.</p>", "text": "Fix incorrect LLVM-generated code on ARM64 platforms (Thomas Munro, Anthonin Bonnefoy) § When using JIT compilation on ARM platforms, the generated code could not support relocation distances exceeding 32 bits, allowing unlucky placement of generated code to cause server crashes on large-memory systems.", "title": "Fix incorrect LLVM-generated code on ARM64 platforms", "commits": ["b7467ab71"], "section": "Changes", "category": "bugfix", "source_url": "/docs/release/17.1/#RELEASE-17-1-CHANGES", "source_hash": "65b4809a577e45e9a17ab7ca7d178c0299dcd42c17dc354bd0dbe969fcb5059b", "section_path": ["Changes"], "commit_groups": [["0b022ddf3", "19bf81c06", "50c1453a3", "9044fc1d4", "b7467ab71", "e88d824a4", "ee67b73f5"]], "identity_text": "Fix incorrect LLVM-generated code on ARM64 platforms (Thomas Munro, Anthonin Bonnefoy) When using JIT compilation on ARM platforms, the generated code could not support relocation distances exceeding 32 bits, allowing unlucky placement of generated code to cause server crashes on large-memory systems.", "commit_aliases": ["0b022ddf3", "19bf81c06", "50c1453a3", "9044fc1d4", "b7467ab71", "e88d824a4", "ee67b73f5"], "source_commits": ["b7467ab71"], "source_entry_id": "17.1/changes/039", "db_id": "552f755d17bee102cb50bf545ecb949c", "patch_ids": ["57596ae59679a29ff707f6ee94229715"], "statement_hash": "e47f7abeabc7e940d49bb38787f3599b68c6feb47468e84b0e0a8e4edf13924a", "relations": [{"rule": 2, "type": "equivalent", "target": "07627c1366b7fc7a15a84f72711baf63", "evidence": {"same_day": true, "patch_ids": ["57596ae59679a29ff707f6ee94229715"], "statement_hash": "e47f7abeabc7e940d49bb38787f3599b68c6feb47468e84b0e0a8e4edf13924a"}}, {"rule": 2, "type": "equivalent", "target": "2638bd1adab380229ce1a042d31b374e", "evidence": {"same_day": true, "patch_ids": ["57596ae59679a29ff707f6ee94229715"], "statement_hash": "e47f7abeabc7e940d49bb38787f3599b68c6feb47468e84b0e0a8e4edf13924a"}}, {"rule": 2, "type": "equivalent", "target": "30c20b6563426a9899fdec9ce9437eed", "evidence": {"same_day": true, "patch_ids": ["57596ae59679a29ff707f6ee94229715"], "statement_hash": "e47f7abeabc7e940d49bb38787f3599b68c6feb47468e84b0e0a8e4edf13924a"}}, {"rule": 2, "type": "equivalent", "target": "8b66c7a2971a68b203b33def34a61729", "evidence": {"same_day": true, "patch_ids": ["57596ae59679a29ff707f6ee94229715"], "statement_hash": "e47f7abeabc7e940d49bb38787f3599b68c6feb47468e84b0e0a8e4edf13924a"}}, {"rule": 2, "type": "equivalent", "target": "a4a3b2371863ab88daa8190444068bd5", "evidence": {"same_day": true, "patch_ids": ["57596ae59679a29ff707f6ee94229715"], "statement_hash": "e47f7abeabc7e940d49bb38787f3599b68c6feb47468e84b0e0a8e4edf13924a"}}], "version": "17.1", "category_label": "Bug fixes", "also_in": [], "variants": [], "related_changes": [{"db_id": "30c20b6563426a9899fdec9ce9437eed", "kind": "equivalent", "version": "16.5", "label": "16.5", "title": "Fix incorrect LLVM-generated code on ARM64 platforms", "evidence": {"same_day": true, "patch_ids": ["57596ae59679a29ff707f6ee94229715"], "statement_hash": "e47f7abeabc7e940d49bb38787f3599b68c6feb47468e84b0e0a8e4edf13924a"}, "url": "/docs/compare/?release=16.5#16.5-88ba539f0cf804a2", "source_url": "/docs/release/16.5/#RELEASE-16-5-CHANGES"}, {"db_id": "8b66c7a2971a68b203b33def34a61729", "kind": "equivalent", "version": "15.9", "label": "15.9", "title": "Fix incorrect LLVM-generated code on ARM64 platforms", "evidence": {"same_day": true, "patch_ids": ["57596ae59679a29ff707f6ee94229715"], "statement_hash": "e47f7abeabc7e940d49bb38787f3599b68c6feb47468e84b0e0a8e4edf13924a"}, "url": "/docs/compare/?release=15.9#15.9-56189f6cdb7d5fe9", "source_url": "/docs/release/15.9/#id-1.11.6.16.5"}, {"db_id": "a4a3b2371863ab88daa8190444068bd5", "kind": "equivalent", "version": "14.14", "label": "14.14", "title": "Fix incorrect LLVM-generated code on ARM64 platforms", "evidence": {"same_day": true, "patch_ids": ["57596ae59679a29ff707f6ee94229715"], "statement_hash": "e47f7abeabc7e940d49bb38787f3599b68c6feb47468e84b0e0a8e4edf13924a"}, "url": "/docs/compare/?release=14.14#14.14-dbfbd3d4f9ba03db", "source_url": "/docs/release/14.14/#id-1.11.6.16.5"}, {"db_id": "07627c1366b7fc7a15a84f72711baf63", "kind": "equivalent", "version": "13.17", "label": "13.17", "title": "Fix incorrect LLVM-generated code on ARM64 platforms", "evidence": {"same_day": true, "patch_ids": ["57596ae59679a29ff707f6ee94229715"], "statement_hash": "e47f7abeabc7e940d49bb38787f3599b68c6feb47468e84b0e0a8e4edf13924a"}, "url": "/docs/compare/?release=13.17#13.17-385afd66c806f38e", "source_url": "/docs/release/13.17/#id-1.11.6.12.5"}, {"db_id": "2638bd1adab380229ce1a042d31b374e", "kind": "equivalent", "version": "12.21", "label": "12.21", "title": "Fix incorrect LLVM-generated code on ARM64 platforms", "evidence": {"same_day": true, "patch_ids": ["57596ae59679a29ff707f6ee94229715"], "statement_hash": "e47f7abeabc7e940d49bb38787f3599b68c6feb47468e84b0e0a8e4edf13924a"}, "url": "/docs/compare/?release=12.21#12.21-92ba1b32a98f8d2f", "source_url": "/docs/release/12.21/#id-1.11.6.7.6"}]}, {"id": "17.1-0b285a27e1ea7d45", "cves": [], "html": "<p>Fix a few places that assumed that process start time (represented as a <code>time_t</code>) will fit into a <code>long</code> value (Max Johnson, Nathan Bossart) <a href=\"https://postgr.es/c/a356d23fd\">§</a></p>\n<p>On platforms where <code>long</code> is 32 bits (notably Windows), this coding would fail after Y2038. Most of the failures appear only cosmetic, but notably <code>pg_ctl start</code> would hang.</p>", "text": "Fix a few places that assumed that process start time (represented as a time_t) will fit into a long value (Max Johnson, Nathan Bossart) § On platforms where long is 32 bits (notably Windows), this coding would fail after Y2038. Most of the failures appear only cosmetic, but notably pg_ctl start would hang.", "title": "Fix a few places that assumed that process start time (represented as a time_t) will fit into a long value", "commits": ["a356d23fd"], "section": "Changes", "category": "bugfix", "source_url": "/docs/release/17.1/#RELEASE-17-1-CHANGES", "source_hash": "070c1c0cf71641d919e74b02a6b113a2168f83e49c6675d3da4c99d9aaa0ad62", "section_path": ["Changes"], "commit_groups": [["01731eeea", "5cea7168d", "5d6187d2a", "8aaf88b63", "a356d23fd", "b255493ae", "c91d0af0a"]], "identity_text": "Fix a few places that assumed that process start time (represented as a time_t) will fit into a long value (Max Johnson, Nathan Bossart) On platforms where long is 32 bits (notably Windows), this coding would fail after Y2038. Most of the failures appear only cosmetic, but notably pg_ctl start would hang.", "commit_aliases": ["01731eeea", "5cea7168d", "5d6187d2a", "8aaf88b63", "a356d23fd", "b255493ae", "c91d0af0a"], "source_commits": ["a356d23fd"], "source_entry_id": "17.1/changes/040", "db_id": "3084cb6f1a9a83786226f990e093badf", "patch_ids": ["311a0df3693d4634968109ecf37f38ef"], "statement_hash": "9bb727c9c397393857e4ccd2faa4c4036a18202a3c985dc2a675dd4791f86377", "relations": [{"rule": 2, "type": "equivalent", "target": "075f70893c63574e821b74eb0753f209", "evidence": {"same_day": true, "patch_ids": ["311a0df3693d4634968109ecf37f38ef"], "statement_hash": "9bb727c9c397393857e4ccd2faa4c4036a18202a3c985dc2a675dd4791f86377"}}, {"rule": 2, "type": "equivalent", "target": "40bc46f4e80e1864b73a7a5e12f75b65", "evidence": {"same_day": true, "patch_ids": ["311a0df3693d4634968109ecf37f38ef"], "statement_hash": "9bb727c9c397393857e4ccd2faa4c4036a18202a3c985dc2a675dd4791f86377"}}, {"rule": 2, "type": "equivalent", "target": "7b562ce18a69f435e1e22679a3930bb0", "evidence": {"same_day": true, "patch_ids": ["311a0df3693d4634968109ecf37f38ef"], "statement_hash": "9bb727c9c397393857e4ccd2faa4c4036a18202a3c985dc2a675dd4791f86377"}}, {"rule": 2, "type": "equivalent", "target": "ac2f9b62f89f5efc11d5918a066d7298", "evidence": {"same_day": true, "patch_ids": ["311a0df3693d4634968109ecf37f38ef"], "statement_hash": "9bb727c9c397393857e4ccd2faa4c4036a18202a3c985dc2a675dd4791f86377"}}, {"rule": 2, "type": "equivalent", "target": "db60254f3e912ac41b205c00ddc90c1f", "evidence": {"same_day": true, "patch_ids": ["311a0df3693d4634968109ecf37f38ef"], "statement_hash": "9bb727c9c397393857e4ccd2faa4c4036a18202a3c985dc2a675dd4791f86377"}}], "version": "17.1", "category_label": "Bug fixes", "also_in": [], "variants": [], "related_changes": [{"db_id": "ac2f9b62f89f5efc11d5918a066d7298", "kind": "equivalent", "version": "16.5", "label": "16.5", "title": "Fix a few places that assumed that process start time (represented as a time_t) will fit into a long value", "evidence": {"same_day": true, "patch_ids": ["311a0df3693d4634968109ecf37f38ef"], "statement_hash": "9bb727c9c397393857e4ccd2faa4c4036a18202a3c985dc2a675dd4791f86377"}, "url": "/docs/compare/?release=16.5#16.5-4e1e853951ded2b7", "source_url": "/docs/release/16.5/#RELEASE-16-5-CHANGES"}, {"db_id": "40bc46f4e80e1864b73a7a5e12f75b65", "kind": "equivalent", "version": "15.9", "label": "15.9", "title": "Fix a few places that assumed that process start time (represented as a time_t) will fit into a long value", "evidence": {"same_day": true, "patch_ids": ["311a0df3693d4634968109ecf37f38ef"], "statement_hash": "9bb727c9c397393857e4ccd2faa4c4036a18202a3c985dc2a675dd4791f86377"}, "url": "/docs/compare/?release=15.9#15.9-520b4d1aea78f872", "source_url": "/docs/release/15.9/#id-1.11.6.16.5"}, {"db_id": "7b562ce18a69f435e1e22679a3930bb0", "kind": "equivalent", "version": "14.14", "label": "14.14", "title": "Fix a few places that assumed that process start time (represented as a time_t) will fit into a long value", "evidence": {"same_day": true, "patch_ids": ["311a0df3693d4634968109ecf37f38ef"], "statement_hash": "9bb727c9c397393857e4ccd2faa4c4036a18202a3c985dc2a675dd4791f86377"}, "url": "/docs/compare/?release=14.14#14.14-aa8d1f73d42af12c", "source_url": "/docs/release/14.14/#id-1.11.6.16.5"}, {"db_id": "075f70893c63574e821b74eb0753f209", "kind": "equivalent", "version": "13.17", "label": "13.17", "title": "Fix a few places that assumed that process start time (represented as a time_t) will fit into a long value", "evidence": {"same_day": true, "patch_ids": ["311a0df3693d4634968109ecf37f38ef"], "statement_hash": "9bb727c9c397393857e4ccd2faa4c4036a18202a3c985dc2a675dd4791f86377"}, "url": "/docs/compare/?release=13.17#13.17-80971931f1cef36f", "source_url": "/docs/release/13.17/#id-1.11.6.12.5"}, {"db_id": "db60254f3e912ac41b205c00ddc90c1f", "kind": "equivalent", "version": "12.21", "label": "12.21", "title": "Fix a few places that assumed that process start time (represented as a time_t) will fit into a long value", "evidence": {"same_day": true, "patch_ids": ["311a0df3693d4634968109ecf37f38ef"], "statement_hash": "9bb727c9c397393857e4ccd2faa4c4036a18202a3c985dc2a675dd4791f86377"}, "url": "/docs/compare/?release=12.21#12.21-f05c71304b810922", "source_url": "/docs/release/12.21/#id-1.11.6.7.6"}]}, {"id": "17.1-1871d2759b385285", "cves": [], "html": "<p>Update time zone data files to <span>tzdata</span> release 2024b (Tom Lane) <a href=\"https://postgr.es/c/cad65907e\">§</a> <a href=\"https://postgr.es/c/6283ff201\">§</a></p>\n<p>This <span>tzdata</span> release changes the old System-V-compatibility zone names to duplicate the corresponding geographic zones; for example <code>PST8PDT</code> is now an alias for <code>America/Los_Angeles</code>. The main visible consequence is that for timestamps before the introduction of standardized time zones, the zone is considered to represent local mean solar time for the named location. For example, in <code>PST8PDT</code>, <code>timestamptz</code> input such as <code>1801-01-01 00:00</code> would previously have been rendered as <code>1801-01-01 00:00:00-08</code>, but now it is rendered as <code>1801-01-01 00:00:00-07:52:58</code>.</p>\n<p>Also, historical corrections for Mexico, Mongolia, and Portugal. Notably, <code>Asia/Choibalsan</code> is now an alias for <code>Asia/Ulaanbaatar</code> rather than being a separate zone, mainly because the differences between those zones were found to be based on untrustworthy data.</p>", "text": "Update time zone data files to tzdata release 2024b (Tom Lane) § § This tzdata release changes the old System-V-compatibility zone names to duplicate the corresponding geographic zones; for example PST8PDT is now an alias for America/Los_Angeles. The main visible consequence is that for timestamps before the introduction of standardized time zones, the zone is considered to represent local mean solar time for the named location. For example, in PST8PDT, timestamptz input such as 1801-01-01 00:00 would previously have been rendered as 1801-01-01 00:00:00-08, but now it is rendered as 1801-01-01 00:00:00-07:52:58. Also, historical corrections for Mexico, Mongolia, and Portugal. Notably, Asia/Choibalsan is now an alias for Asia/Ulaanbaatar rather than being a separate zone, mainly because the differences between those zones were found to be based on untrustworthy data.", "title": "Update time zone data files to tzdata release 2024b", "commits": ["6283ff201", "cad65907e"], "section": "Changes", "category": "improvement", "source_url": "/docs/release/17.1/#RELEASE-17-1-CHANGES", "source_hash": "80f6bd94fc1fdd5cdf3fa2ba5a6f07adb5765edbd19ce42f7ce20497847e7264", "section_path": ["Changes"], "commit_groups": [["205813da4", "2abc88958", "2b94ee58b", "6283ff201", "b27622c90", "b28b9b19b", "b8ea0f675"], ["502e7bf7f", "74f70cb86", "8a8486175", "8f1759c9b", "a0c8d600b", "cad65907e", "dedced73e"]], "identity_text": "Update time zone data files to tzdata release 2024b (Tom Lane) This tzdata release changes the old System-V-compatibility zone names to duplicate the corresponding geographic zones; for example PST8PDT is now an alias for America/Los_Angeles. The main visible consequence is that for timestamps before the introduction of standardized time zones, the zone is considered to represent local mean solar time for the named location. For example, in PST8PDT, timestamptz input such as 1801-01-01 00:00 would previously have been rendered as 1801-01-01 00:00:00-08, but now it is rendered as 1801-01-01 00:00:00-07:52:58. Also, historical corrections for Mexico, Mongolia, and Portugal. Notably, Asia/Choibalsan is now an alias for Asia/Ulaanbaatar rather than being a separate zone, mainly because the differences between those zones were found to be based on untrustworthy data.", "commit_aliases": ["205813da4", "2abc88958", "2b94ee58b", "502e7bf7f", "6283ff201", "74f70cb86", "8a8486175", "8f1759c9b", "a0c8d600b", "b27622c90", "b28b9b19b", "b8ea0f675", "cad65907e", "dedced73e"], "source_commits": ["6283ff201", "cad65907e"], "source_entry_id": "17.1/changes/041", "db_id": "155dade417778c08fcf9278e12df7703", "patch_ids": ["63ede0d4b2fd58fceb7518481e4a3fb9", "e36eb0380ec7d5aa68f70f9489666862"], "statement_hash": "2cf0cdffc27204b19b415b86a85c91c028acff52c569de8f863fbbddf28cb63a", "relations": [{"rule": 2, "type": "equivalent", "target": "1274449aeb7aacfaf5c666d0bc92503b", "evidence": {"same_day": true, "patch_ids": ["63ede0d4b2fd58fceb7518481e4a3fb9", "e36eb0380ec7d5aa68f70f9489666862"], "statement_hash": "2cf0cdffc27204b19b415b86a85c91c028acff52c569de8f863fbbddf28cb63a"}}, {"rule": 2, "type": "equivalent", "target": "21566ee3657bf6046ec8c630e59f9fa4", "evidence": {"same_day": true, "patch_ids": ["63ede0d4b2fd58fceb7518481e4a3fb9", "e36eb0380ec7d5aa68f70f9489666862"], "statement_hash": "2cf0cdffc27204b19b415b86a85c91c028acff52c569de8f863fbbddf28cb63a"}}, {"rule": 2, "type": "equivalent", "target": "4a849728f3b1ce4e226253b6eef67b81", "evidence": {"same_day": true, "patch_ids": ["63ede0d4b2fd58fceb7518481e4a3fb9", "e36eb0380ec7d5aa68f70f9489666862"], "statement_hash": "2cf0cdffc27204b19b415b86a85c91c028acff52c569de8f863fbbddf28cb63a"}}, {"rule": 2, "type": "equivalent", "target": "ab359f251915c08c7f1b39b44a7466c5", "evidence": {"same_day": true, "patch_ids": ["63ede0d4b2fd58fceb7518481e4a3fb9", "e36eb0380ec7d5aa68f70f9489666862"], "statement_hash": "2cf0cdffc27204b19b415b86a85c91c028acff52c569de8f863fbbddf28cb63a"}}, {"rule": 2, "type": "equivalent", "target": "ce97a73c25e68d5bdb6e4cafb71fafb1", "evidence": {"same_day": true, "patch_ids": ["63ede0d4b2fd58fceb7518481e4a3fb9", "e36eb0380ec7d5aa68f70f9489666862"], "statement_hash": "2cf0cdffc27204b19b415b86a85c91c028acff52c569de8f863fbbddf28cb63a"}}], "version": "17.1", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": [{"db_id": "4a849728f3b1ce4e226253b6eef67b81", "kind": "equivalent", "version": "16.5", "label": "16.5", "title": "Update time zone data files to tzdata release 2024b", "evidence": {"same_day": true, "patch_ids": ["63ede0d4b2fd58fceb7518481e4a3fb9", "e36eb0380ec7d5aa68f70f9489666862"], "statement_hash": "2cf0cdffc27204b19b415b86a85c91c028acff52c569de8f863fbbddf28cb63a"}, "url": "/docs/compare/?release=16.5#16.5-7dd2d5e1fe0c5f45", "source_url": "/docs/release/16.5/#RELEASE-16-5-CHANGES"}, {"db_id": "ce97a73c25e68d5bdb6e4cafb71fafb1", "kind": "equivalent", "version": "15.9", "label": "15.9", "title": "Update time zone data files to tzdata release 2024b", "evidence": {"same_day": true, "patch_ids": ["63ede0d4b2fd58fceb7518481e4a3fb9", "e36eb0380ec7d5aa68f70f9489666862"], "statement_hash": "2cf0cdffc27204b19b415b86a85c91c028acff52c569de8f863fbbddf28cb63a"}, "url": "/docs/compare/?release=15.9#15.9-6740232b364abdb6", "source_url": "/docs/release/15.9/#id-1.11.6.16.5"}, {"db_id": "21566ee3657bf6046ec8c630e59f9fa4", "kind": "equivalent", "version": "14.14", "label": "14.14", "title": "Update time zone data files to tzdata release 2024b", "evidence": {"same_day": true, "patch_ids": ["63ede0d4b2fd58fceb7518481e4a3fb9", "e36eb0380ec7d5aa68f70f9489666862"], "statement_hash": "2cf0cdffc27204b19b415b86a85c91c028acff52c569de8f863fbbddf28cb63a"}, "url": "/docs/compare/?release=14.14#14.14-e9290652fe966969", "source_url": "/docs/release/14.14/#id-1.11.6.16.5"}, {"db_id": "1274449aeb7aacfaf5c666d0bc92503b", "kind": "equivalent", "version": "13.17", "label": "13.17", "title": "Update time zone data files to tzdata release 2024b", "evidence": {"same_day": true, "patch_ids": ["63ede0d4b2fd58fceb7518481e4a3fb9", "e36eb0380ec7d5aa68f70f9489666862"], "statement_hash": "2cf0cdffc27204b19b415b86a85c91c028acff52c569de8f863fbbddf28cb63a"}, "url": "/docs/compare/?release=13.17#13.17-7f89a8ce224af673", "source_url": "/docs/release/13.17/#id-1.11.6.12.5"}, {"db_id": "ab359f251915c08c7f1b39b44a7466c5", "kind": "equivalent", "version": "12.21", "label": "12.21", "title": "Update time zone data files to tzdata release 2024b", "evidence": {"same_day": true, "patch_ids": ["63ede0d4b2fd58fceb7518481e4a3fb9", "e36eb0380ec7d5aa68f70f9489666862"], "statement_hash": "2cf0cdffc27204b19b415b86a85c91c028acff52c569de8f863fbbddf28cb63a"}, "url": "/docs/compare/?release=12.21#12.21-2bdd2b23091a19eb", "source_url": "/docs/release/12.21/#id-1.11.6.7.6"}]}]}], "stats": [{"key": "all", "label": "All changes", "count": 41}, {"key": "feature", "label": "Features", "count": 0}, {"key": "bugfix", "label": "Bug fixes", "count": 21}, {"key": "security", "label": "Security", "count": 4}, {"key": "performance", "label": "Performance", "count": 0}, {"key": "compatibility", "label": "Compatibility", "count": 0}, {"key": "improvement", "label": "Improvements", "count": 16}], "total": 41, "release_count": 1, "cross_major": false, "cve_count": 4, "cves": [{"id": "CVE-2024-10979", "url": "https://www.postgresql.org/support/security/CVE-2024-10979/", "fixed": {"12": "12.21", "13": "13.17", "14": "14.14", "15": "15.9", "16": "16.5", "17": "17.1"}, "score": 8.8, "title": "Prevent trusted PL/Perl code from changing environment variables", "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2024-10979", "affected": {"12": "12", "13": "13", "14": "14", "15": "15", "16": "16", "17": "17"}, "component": "core server", "published": {"12": "2024-11-14", "13": "2024-11-14", "14": "2024-11-14", "15": "2024-11-14", "16": "2024-11-14", "17": "2024-11-14"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Incorrect control of environment variables in PostgreSQL PL/Perl allows an unprivileged database user to change sensitive process environment variables (e.g. PATH ). That often suffices to enable arbitrary code execution, even if the attacker lacks a database server operating system user. Versions before PostgreSQL 17.1, 16.5, 15.9, 14.14, 13.17, and 12.21 are affected.\n\nThe PostgreSQL project thanks Coby Abrams for reporting this problem.", "affected_ranges": [{"from": "0", "until": "12.21"}, {"from": "13", "until": "13.17"}, {"from": "14", "until": "14.14"}, {"from": "15", "until": "15.9"}, {"from": "16", "until": "16.5"}, {"from": "17", "until": "17.1"}], "first_published": "2024-11-14", "fixed_version": "17.1"}, {"id": "CVE-2024-10978", "url": "https://www.postgresql.org/support/security/CVE-2024-10978/", "fixed": {"12": "12.21", "13": "13.17", "14": "14.14", "15": "15.9", "16": "16.5", "17": "17.1"}, "score": 4.2, "title": "Fix unintended interactions between SET SESSION AUTHORIZATION and SET ROLE", "vector": "AV:N/AC:H/PR:L/UI:N/S:U/C:L/I:L/A:N", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2024-10978", "affected": {"12": "12", "13": "13", "14": "14", "15": "15", "16": "16", "17": "17"}, "component": "core server", "published": {"12": "2024-11-14", "13": "2024-11-14", "14": "2024-11-14", "15": "2024-11-14", "16": "2024-11-14", "17": "2024-11-14"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Incorrect privilege assignment in PostgreSQL allows a less-privileged application user to view or change different rows from those intended. An attack requires the application to use SET ROLE , SET SESSION AUTHORIZATION , or an equivalent feature. The problem arises when an application query uses parameters from the attacker or conveys query results to the attacker. If that query reacts to current_setting('role') or the current user ID, it may modify or return data as though the session had not used SET ROLE or SET SESSION AUTHORIZATION . The attacker does not control which incorrect user ID applies. Query text from less-privileged sources is not a concern here, because SET ROLE and SET SESSION AUTHORIZATION are not sandboxes for unvetted queries. Versions before PostgreSQL 17.1, 16.5, 15.9, 14.14, 13.17, and 12.21 are affected.\n\nThe PostgreSQL project thanks Tom Lane for reporting this problem.", "affected_ranges": [{"from": "0", "until": "12.21"}, {"from": "13", "until": "13.17"}, {"from": "14", "until": "14.14"}, {"from": "15", "until": "15.9"}, {"from": "16", "until": "16.5"}, {"from": "17", "until": "17.1"}], "first_published": "2024-11-14", "fixed_version": "17.1"}, {"id": "CVE-2024-10976", "url": "https://www.postgresql.org/support/security/CVE-2024-10976/", "fixed": {"12": "12.21", "13": "13.17", "14": "14.14", "15": "15.9", "16": "16.5", "17": "17.1"}, "score": 4.2, "title": "Ensure cached plans are marked as dependent on the calling role when RLS applies to a non-top-level table reference", "vector": "AV:N/AC:H/PR:L/UI:N/S:U/C:L/I:L/A:N", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2024-10976", "affected": {"12": "12", "13": "13", "14": "14", "15": "15", "16": "16", "17": "17"}, "component": "core server", "published": {"12": "2024-11-14", "13": "2024-11-14", "14": "2024-11-14", "15": "2024-11-14", "16": "2024-11-14", "17": "2024-11-14"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Incomplete tracking in PostgreSQL of tables with row security allows a reused query to view or change different rows from those intended. CVE-2023-2455 and CVE-2016-2193 fixed most interaction between row security and user ID changes. They missed cases where a subquery, WITH query, security invoker view, or SQL-language function references a table with a row-level security policy. This has the same consequences as the two earlier CVEs. That is to say, it leads to potentially incorrect policies being applied in cases where role-specific policies are used and a given query is planned under one role and then executed under other roles. This scenario can happen under security definer functions or when a common user and query is planned initially and then re-used across multiple SET ROLEs.\n\nApplying an incorrect policy may permit a user to complete otherwise-forbidden reads and modifications. This affects only databases that have used CREATE POLICY to define a row security policy. An attacker must tailor an attack to a particular application's pattern of query plan reuse, user ID changes, and role-specific row security policies. Versions before PostgreSQL 17.1, 16.5, 15.9, 14.14, 13.17, and 12.21 are affected.", "affected_ranges": [{"from": "0", "until": "12.21"}, {"from": "13", "until": "13.17"}, {"from": "14", "until": "14.14"}, {"from": "15", "until": "15.9"}, {"from": "16", "until": "16.5"}, {"from": "17", "until": "17.1"}], "first_published": "2024-11-14", "fixed_version": "17.1"}, {"id": "CVE-2024-10977", "url": "https://www.postgresql.org/support/security/CVE-2024-10977/", "fixed": {"12": "12.21", "13": "13.17", "14": "14.14", "15": "15.9", "16": "16.5", "17": "17.1"}, "score": 3.1, "title": "Make libpq discard error messages received during SSL or GSS protocol negotiation", "vector": "AV:N/AC:H/PR:N/UI:R/S:U/C:N/I:L/A:N", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2024-10977", "affected": {"12": "12", "13": "13", "14": "14", "15": "15", "16": "16", "17": "17"}, "component": "client", "published": {"12": "2024-11-14", "13": "2024-11-14", "14": "2024-11-14", "15": "2024-11-14", "16": "2024-11-14", "17": "2024-11-14"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Client use of server error message in PostgreSQL allows a server not trusted under current SSL or GSS settings to furnish arbitrary non-NUL bytes to the libpq application. For example, a man-in-the-middle attacker could send a long error message that a human or screen-scraper user of psql mistakes for valid query results. This is probably not a concern for clients where the user interface unambiguously indicates the boundary between one error message and other text. Versions before PostgreSQL 17.1, 16.5, 15.9, 14.14, 13.17, and 12.21 are affected.\n\nThe PostgreSQL project thanks Jacob Champion for reporting this problem.", "affected_ranges": [{"from": "0", "until": "12.21"}, {"from": "13", "until": "13.17"}, {"from": "14", "until": "14.14"}, {"from": "15", "until": "15.9"}, {"from": "16", "until": "16.5"}, {"from": "17", "until": "17.1"}], "first_published": "2024-11-14", "fixed_version": "17.1"}], "cve_available": true, "remaining_cves": [], "security_regressions": [], "warnings": [], "candidate_count": 41, "already_in_source_count": 0, "duplicate_count": 0, "excluded_count": 0, "exclusions": [], "source_as_of": "2026-09-26", "security_as_of": "2026-09-26"}