{"format": 1, "mode": "release", "from_release": null, "to_release": {"date": "2023-08-10", "build": "15.4", "major": "15", "minor": 4, "manual": "15", "status": "stable", "doc_git": "", "version": "15.4", "eol_date": "2027-11-11", "date_text": "2023-08-10", "supported": true, "manual_url": "/docs/15/release-15-4.html", "source_url": "/docs/release/15.4/", "entry_count": 47, "placeholder": false, "content_hash": "6569a24c2e73cbab72d23cbf5700c36663909fd82c9bfbd8b8f6168bc05b4fbb", "manual_build": "15.19", "source_as_of": "", "changes_count": 47, "doc_loaded_at": "2026-09-25T02:22:44.760693", "migration_html": "<p>A dump/restore is not required for those running 15.X.</p>\n<p>However, if you use BRIN indexes, it may be advisable to reindex them; see the third changelog entry below.</p>\n<p>Also, if you are upgrading from a version earlier than 15.1, see <a href=\"/docs/15/release-15-1.html\" title=\"E.19. Release 15.1\">Section E.19</a>.</p>", "compatibility_count": 0, "label": "15.4", "status_label": "Supported", "eol": "2027-11-11", "age_days": 1146, "support_days": 408}, "groups": [{"date": "2023-08-10", "build": "15.4", "major": "15", "minor": 4, "manual": "15", "status": "stable", "doc_git": "", "version": "15.4", "eol_date": "2027-11-11", "date_text": "2023-08-10", "supported": true, "manual_url": "/docs/15/release-15-4.html", "source_url": "/docs/release/15.4/", "entry_count": 47, "placeholder": false, "content_hash": "6569a24c2e73cbab72d23cbf5700c36663909fd82c9bfbd8b8f6168bc05b4fbb", "manual_build": "15.19", "source_as_of": "", "changes_count": 47, "doc_loaded_at": "2026-09-25T02:22:44.760693", "migration_html": "<p>A dump/restore is not required for those running 15.X.</p>\n<p>However, if you use BRIN indexes, it may be advisable to reindex them; see the third changelog entry below.</p>\n<p>Also, if you are upgrading from a version earlier than 15.1, see <a href=\"/docs/15/release-15-1.html\" title=\"E.19. Release 15.1\">Section E.19</a>.</p>", "compatibility_count": 0, "label": "15.4", "status_label": "Supported", "eol": "2027-11-11", "age_days": 1146, "support_days": 408, "entries": [{"id": "15.4-916b73de52ac811a", "cves": ["CVE-2023-39417"], "html": "<p>Disallow substituting a schema or owner name into an extension script if the name contains a quote, backslash, or dollar sign (Noah Misch) <a href=\"https://postgr.es/c/de494ec14\">§</a></p>\n<p>This restriction guards against SQL-injection hazards for trusted extensions.</p>\n<p>The <span>PostgreSQL</span> Project thanks Micah Gates, Valerie Woolard, Tim Carey-Smith, and Christoph Berg for reporting this problem. (CVE-2023-39417)</p>", "text": "Disallow substituting a schema or owner name into an extension script if the name contains a quote, backslash, or dollar sign (Noah Misch) § This restriction guards against SQL-injection hazards for trusted extensions. The PostgreSQL Project thanks Micah Gates, Valerie Woolard, Tim Carey-Smith, and Christoph Berg for reporting this problem. (CVE-2023-39417)", "title": "Disallow substituting a schema or owner name into an extension script if the name contains a quote, backslash, or dollar sign", "commits": ["de494ec14"], "section": "Changes", "category": "security", "source_url": "/docs/release/15.4/#id-1.11.6.21.5", "source_hash": "4372137f54bf66988ab39a2e6125a76058b5a92ec7dbb2e81b92c131a09dcab8", "section_path": ["Changes"], "commit_groups": [["919ebb023", "b1b585e0f", "cd5f2a357", "d4648a74b", "de494ec14", "eb044d8f0", "f53511010"]], "identity_text": "Disallow substituting a schema or owner name into an extension script if the name contains a quote, backslash, or dollar sign (Noah Misch) This restriction guards against SQL-injection hazards for trusted extensions. The PostgreSQL Project thanks Micah Gates, Valerie Woolard, Tim Carey-Smith, and Christoph Berg for reporting this problem. (CVE-2023-39417)", "commit_aliases": ["919ebb023", "b1b585e0f", "cd5f2a357", "d4648a74b", "de494ec14", "eb044d8f0", "f53511010"], "source_commits": ["de494ec14"], "source_entry_id": "15.4/changes/001", "db_id": "5d760cb5505031c3afb75b8a5ded21c8", "patch_ids": ["d632a8310a44a1dd4482363722906e6f"], "statement_hash": "547bb828bb240e3feac6daf0dbbc30bca373c7b437959e2e15f19f38d18cdc81", "relations": [{"rule": 2, "type": "equivalent", "target": "7fded6f9dac5a0280a2df87572e29a0d", "evidence": {"same_day": true, "patch_ids": ["d632a8310a44a1dd4482363722906e6f"], "statement_hash": "547bb828bb240e3feac6daf0dbbc30bca373c7b437959e2e15f19f38d18cdc81"}}, {"rule": 2, "type": "equivalent", "target": "905f10b00c23d8b9f0aa97f3673fee9a", "evidence": {"same_day": true, "patch_ids": ["d632a8310a44a1dd4482363722906e6f"], "statement_hash": "547bb828bb240e3feac6daf0dbbc30bca373c7b437959e2e15f19f38d18cdc81"}}, {"rule": 2, "type": "equivalent", "target": "afe8a3657968f46801b50925881578a5", "evidence": {"same_day": true, "patch_ids": ["d632a8310a44a1dd4482363722906e6f"]}}, {"rule": 2, "type": "equivalent", "target": "f94afefad5df63c780c9f2436c9d6dcf", "evidence": {"same_day": true, "patch_ids": ["d632a8310a44a1dd4482363722906e6f"], "statement_hash": "547bb828bb240e3feac6daf0dbbc30bca373c7b437959e2e15f19f38d18cdc81"}}], "version": "15.4", "category_label": "Security", "also_in": [], "variants": [], "related_changes": [{"db_id": "f94afefad5df63c780c9f2436c9d6dcf", "kind": "equivalent", "version": "14.9", "label": "14.9", "title": "Disallow substituting a schema or owner name into an extension script if the name contains a quote, backslash, or dollar sign", "evidence": {"same_day": true, "patch_ids": ["d632a8310a44a1dd4482363722906e6f"], "statement_hash": "547bb828bb240e3feac6daf0dbbc30bca373c7b437959e2e15f19f38d18cdc81"}, "url": "/docs/compare/?release=14.9#14.9-478a82e9fe36e0eb", "source_url": "/docs/release/14.9/#id-1.11.6.21.5"}, {"db_id": "905f10b00c23d8b9f0aa97f3673fee9a", "kind": "equivalent", "version": "13.12", "label": "13.12", "title": "Disallow substituting a schema or owner name into an extension script if the name contains a quote, backslash, or dollar sign", "evidence": {"same_day": true, "patch_ids": ["d632a8310a44a1dd4482363722906e6f"], "statement_hash": "547bb828bb240e3feac6daf0dbbc30bca373c7b437959e2e15f19f38d18cdc81"}, "url": "/docs/compare/?release=13.12#13.12-7e7794e398a17981", "source_url": "/docs/release/13.12/#id-1.11.6.17.5"}, {"db_id": "7fded6f9dac5a0280a2df87572e29a0d", "kind": "equivalent", "version": "12.16", "label": "12.16", "title": "Disallow substituting a schema or owner name into an extension script if the name contains a quote, backslash, or dollar sign", "evidence": {"same_day": true, "patch_ids": ["d632a8310a44a1dd4482363722906e6f"], "statement_hash": "547bb828bb240e3feac6daf0dbbc30bca373c7b437959e2e15f19f38d18cdc81"}, "url": "/docs/compare/?release=12.16#12.16-9cd59e5c454decd6", "source_url": "/docs/release/12.16/#id-1.11.6.12.5"}, {"db_id": "afe8a3657968f46801b50925881578a5", "kind": "equivalent", "version": "11.21", "label": "11.21", "title": "Disallow substituting a schema or owner name into an extension script if the name contains a quote, backslash, or dollar sign", "evidence": {"same_day": true, "patch_ids": ["d632a8310a44a1dd4482363722906e6f"]}, "url": "/docs/compare/?release=11.21#11.21-cf02775dac7e070c", "source_url": "/docs/release/11.21/#id-1.11.6.6.6"}]}, {"id": "15.4-2da949e7f1e67d5c", "cves": ["CVE-2023-39418"], "html": "<p>Fix <code>MERGE</code> to enforce row security policies properly (Dean Rasheed) <a href=\"https://postgr.es/c/cb2ae5741\">§</a></p>\n<p>When <code>MERGE</code> performs an <code>UPDATE</code> action, it should enforce any <code>UPDATE</code> or <code>SELECT</code> RLS policies defined on the target table, to be consistent with the way that a plain <code>UPDATE</code> with a <code>WHERE</code> clause works. Instead it was enforcing <code>INSERT</code> RLS policies for both <code>INSERT</code> and <code>UPDATE</code> actions.</p>\n<p>In addition, when <code>MERGE</code> performs a <code>DO NOTHING</code> action, it applied the target table's <code>DELETE</code> RLS policies to existing rows, even though those rows are not being deleted. While it's not a security problem, this could result in unwanted errors.</p>\n<p>The <span>PostgreSQL</span> Project thanks Dean Rasheed for reporting this problem. (CVE-2023-39418)</p>", "text": "Fix MERGE to enforce row security policies properly (Dean Rasheed) § When MERGE performs an UPDATE action, it should enforce any UPDATE or SELECT RLS policies defined on the target table, to be consistent with the way that a plain UPDATE with a WHERE clause works. Instead it was enforcing INSERT RLS policies for both INSERT and UPDATE actions. In addition, when MERGE performs a DO NOTHING action, it applied the target table's DELETE RLS policies to existing rows, even though those rows are not being deleted. While it's not a security problem, this could result in unwanted errors. The PostgreSQL Project thanks Dean Rasheed for reporting this problem. (CVE-2023-39418)", "title": "Fix MERGE to enforce row security policies properly", "commits": ["cb2ae5741"], "section": "Changes", "category": "security", "source_url": "/docs/release/15.4/#id-1.11.6.21.5", "source_hash": "7e328fe7f96bb19c1a7958e4f486c10faa578cd93fcbb06e65ebd388c2ff0e0d", "section_path": ["Changes"], "commit_groups": [["67a007dc0", "c2e08b04c", "cb2ae5741"]], "identity_text": "Fix MERGE to enforce row security policies properly (Dean Rasheed) When MERGE performs an UPDATE action, it should enforce any UPDATE or SELECT RLS policies defined on the target table, to be consistent with the way that a plain UPDATE with a WHERE clause works. Instead it was enforcing INSERT RLS policies for both INSERT and UPDATE actions. In addition, when MERGE performs a DO NOTHING action, it applied the target table's DELETE RLS policies to existing rows, even though those rows are not being deleted. While it's not a security problem, this could result in unwanted errors. The PostgreSQL Project thanks Dean Rasheed for reporting this problem. (CVE-2023-39418)", "commit_aliases": ["67a007dc0", "c2e08b04c", "cb2ae5741"], "source_commits": ["cb2ae5741"], "source_entry_id": "15.4/changes/002", "db_id": "f421a35b1ce0c78b826bb5de20733636", "patch_ids": ["c826aaea28d6c52b7ef5f6c10c8dc74e"], "statement_hash": "39abc23c0f046c3789ad12a1cf087a1993918dd4f2d356ce8e2941f989535cb9", "relations": [], "version": "15.4", "category_label": "Security", "also_in": [], "variants": [], "related_changes": []}, {"id": "15.4-ea955f29ecf4775a", "cves": [], "html": "<p>Fix confusion between empty (no rows) ranges and all-NULL ranges in BRIN indexes, as well as incorrect merging of all-NULL summaries (Tomas Vondra) <a href=\"https://postgr.es/c/e18769323\">§</a> <a href=\"https://postgr.es/c/80f64b900\">§</a></p>\n<p>Each of these oversights could result in forgetting that a BRIN index range contains any NULL values, potentially allowing subsequent queries that should return NULL values to miss doing so.</p>\n<p>This fix will not in itself correct faulty BRIN entries. It's recommended to <code>REINDEX</code> any BRIN indexes that may be used to search for nulls.</p>", "text": "Fix confusion between empty (no rows) ranges and all-NULL ranges in BRIN indexes, as well as incorrect merging of all-NULL summaries (Tomas Vondra) § § Each of these oversights could result in forgetting that a BRIN index range contains any NULL values, potentially allowing subsequent queries that should return NULL values to miss doing so. This fix will not in itself correct faulty BRIN entries. It's recommended to REINDEX any BRIN indexes that may be used to search for nulls.", "title": "Fix confusion between empty (no rows) ranges and all-NULL ranges in BRIN indexes, as well as incorrect merging of all-NULL summaries", "commits": ["80f64b900", "e18769323"], "section": "Changes", "category": "bugfix", "source_url": "/docs/release/15.4/#id-1.11.6.21.5", "source_hash": "f5a83178b92e52a0e84b95c6188dddc35d21db549dea3ffdddbf6580ad4c3b35", "section_path": ["Changes"], "commit_groups": [["2b1ab28b9", "3ec8a3bfb", "3f1356e5d", "80f64b900", "b511d7323", "d42ffda68"], ["3581cbdcd", "40d465caf", "6c512fc6e", "d78a66d92", "e18769323", "fc7dc728d"]], "identity_text": "Fix confusion between empty (no rows) ranges and all-NULL ranges in BRIN indexes, as well as incorrect merging of all-NULL summaries (Tomas Vondra) Each of these oversights could result in forgetting that a BRIN index range contains any NULL values, potentially allowing subsequent queries that should return NULL values to miss doing so. This fix will not in itself correct faulty BRIN entries. It's recommended to REINDEX any BRIN indexes that may be used to search for nulls.", "commit_aliases": ["2b1ab28b9", "3581cbdcd", "3ec8a3bfb", "3f1356e5d", "40d465caf", "6c512fc6e", "80f64b900", "b511d7323", "d42ffda68", "d78a66d92", "e18769323", "fc7dc728d"], "source_commits": ["80f64b900", "e18769323"], "source_entry_id": "15.4/changes/003", "db_id": "9abc5f5a50d73214283c739d73f5cdfc", "patch_ids": ["70439af6cb78988d1947cf69b8bf78c2", "d68a660acabb371022bbe16aaec1d3f1"], "statement_hash": "b7ca54d70850e1477128353afe1dddfb4d31f58e424300e25b68cd3d2d1330de", "relations": [{"rule": 2, "type": "equivalent", "target": "11b6ba567136afc52b96368060d9eb27", "evidence": {"same_day": true, "patch_ids": ["70439af6cb78988d1947cf69b8bf78c2", "d68a660acabb371022bbe16aaec1d3f1"], "statement_hash": "b7ca54d70850e1477128353afe1dddfb4d31f58e424300e25b68cd3d2d1330de"}}, {"rule": 2, "type": "equivalent", "target": "19135059bdecd2f32c93539aa1f3cfb6", "evidence": {"same_day": true, "patch_ids": ["70439af6cb78988d1947cf69b8bf78c2", "d68a660acabb371022bbe16aaec1d3f1"], "statement_hash": "b7ca54d70850e1477128353afe1dddfb4d31f58e424300e25b68cd3d2d1330de"}}, {"rule": 2, "type": "equivalent", "target": "7bc32e86e27a9d2d7da8107e0b7a7f09", "evidence": {"same_day": true, "patch_ids": ["70439af6cb78988d1947cf69b8bf78c2", "d68a660acabb371022bbe16aaec1d3f1"], "statement_hash": "b7ca54d70850e1477128353afe1dddfb4d31f58e424300e25b68cd3d2d1330de"}}, {"rule": 2, "type": "equivalent", "target": "d3bb49eb1df29529b45d0319f7795c1c", "evidence": {"same_day": true, "patch_ids": ["70439af6cb78988d1947cf69b8bf78c2", "d68a660acabb371022bbe16aaec1d3f1"], "statement_hash": "b7ca54d70850e1477128353afe1dddfb4d31f58e424300e25b68cd3d2d1330de"}}], "version": "15.4", "category_label": "Bug fixes", "also_in": [], "variants": [], "related_changes": [{"db_id": "7bc32e86e27a9d2d7da8107e0b7a7f09", "kind": "equivalent", "version": "14.9", "label": "14.9", "title": "Fix confusion between empty (no rows) ranges and all-NULL ranges in BRIN indexes, as well as incorrect merging of all-NULL summaries", "evidence": {"same_day": true, "patch_ids": ["70439af6cb78988d1947cf69b8bf78c2", "d68a660acabb371022bbe16aaec1d3f1"], "statement_hash": "b7ca54d70850e1477128353afe1dddfb4d31f58e424300e25b68cd3d2d1330de"}, "url": "/docs/compare/?release=14.9#14.9-491640756e087ff4", "source_url": "/docs/release/14.9/#id-1.11.6.21.5"}, {"db_id": "11b6ba567136afc52b96368060d9eb27", "kind": "equivalent", "version": "13.12", "label": "13.12", "title": "Fix confusion between empty (no rows) ranges and all-NULL ranges in BRIN indexes, as well as incorrect merging of all-NULL summaries", "evidence": {"same_day": true, "patch_ids": ["70439af6cb78988d1947cf69b8bf78c2", "d68a660acabb371022bbe16aaec1d3f1"], "statement_hash": "b7ca54d70850e1477128353afe1dddfb4d31f58e424300e25b68cd3d2d1330de"}, "url": "/docs/compare/?release=13.12#13.12-c689e131b36b73fd", "source_url": "/docs/release/13.12/#id-1.11.6.17.5"}, {"db_id": "d3bb49eb1df29529b45d0319f7795c1c", "kind": "equivalent", "version": "12.16", "label": "12.16", "title": "Fix confusion between empty (no rows) ranges and all-NULL ranges in BRIN indexes, as well as incorrect merging of all-NULL summaries", "evidence": {"same_day": true, "patch_ids": ["70439af6cb78988d1947cf69b8bf78c2", "d68a660acabb371022bbe16aaec1d3f1"], "statement_hash": "b7ca54d70850e1477128353afe1dddfb4d31f58e424300e25b68cd3d2d1330de"}, "url": "/docs/compare/?release=12.16#12.16-4b47fe48c28b6057", "source_url": "/docs/release/12.16/#id-1.11.6.12.5"}, {"db_id": "19135059bdecd2f32c93539aa1f3cfb6", "kind": "equivalent", "version": "11.21", "label": "11.21", "title": "Fix confusion between empty (no rows) ranges and all-NULL ranges in BRIN indexes, as well as incorrect merging of all-NULL summaries", "evidence": {"same_day": true, "patch_ids": ["70439af6cb78988d1947cf69b8bf78c2", "d68a660acabb371022bbe16aaec1d3f1"], "statement_hash": "b7ca54d70850e1477128353afe1dddfb4d31f58e424300e25b68cd3d2d1330de"}, "url": "/docs/compare/?release=11.21#11.21-da97b6c8e20340aa", "source_url": "/docs/release/11.21/#id-1.11.6.6.6"}]}, {"id": "15.4-a9627164d90bab31", "cves": [], "html": "<p>Avoid leaving a corrupted database behind when <code>DROP DATABASE</code> is interrupted (Andres Freund) <a href=\"https://postgr.es/c/f66403749\">§</a></p>\n<p>If <code>DROP DATABASE</code> was interrupted after it had already begun taking irreversible steps, the target database remained accessible (because the removal of its <code>pg_database</code> row would roll back), but it would have corrupt contents. Fix by marking the database as inaccessible before we begin to perform irreversible operations. A failure after that will leave the database still partially present, but nothing can be done with it except to issue another <code>DROP DATABASE</code>.</p>", "text": "Avoid leaving a corrupted database behind when DROP DATABASE is interrupted (Andres Freund) § If DROP DATABASE was interrupted after it had already begun taking irreversible steps, the target database remained accessible (because the removal of its pg_database row would roll back), but it would have corrupt contents. Fix by marking the database as inaccessible before we begin to perform irreversible operations. A failure after that will leave the database still partially present, but nothing can be done with it except to issue another DROP DATABASE.", "title": "Avoid leaving a corrupted database behind when DROP DATABASE is interrupted", "commits": ["f66403749"], "section": "Changes", "category": "bugfix", "source_url": "/docs/release/15.4/#id-1.11.6.21.5", "source_hash": "9d997c3814e447f7099a4401cf8fefeef26cc13701e5eb5e14ede557e8498350", "section_path": ["Changes"], "commit_groups": [["034a9fcd2", "1c38e7ae1", "81ce00006", "a4b4cc1d6", "c66a7d75e", "d11efe830", "f66403749"]], "identity_text": "Avoid leaving a corrupted database behind when DROP DATABASE is interrupted (Andres Freund) If DROP DATABASE was interrupted after it had already begun taking irreversible steps, the target database remained accessible (because the removal of its pg_database row would roll back), but it would have corrupt contents. Fix by marking the database as inaccessible before we begin to perform irreversible operations. A failure after that will leave the database still partially present, but nothing can be done with it except to issue another DROP DATABASE.", "commit_aliases": ["034a9fcd2", "1c38e7ae1", "81ce00006", "a4b4cc1d6", "c66a7d75e", "d11efe830", "f66403749"], "source_commits": ["f66403749"], "source_entry_id": "15.4/changes/004", "db_id": "4e5e78a8ac4b3ad2d8ca8b4df3520288", "patch_ids": ["1e9c51fdf4b43d9b8ae625cf8df11bc9"], "statement_hash": "0bdf1323b15ffee7eacc4e858004565cb6eecca5b364aabb764018a25447bd33", "relations": [{"rule": 2, "type": "equivalent", "target": "352fb8fef4990f2385a9f9b77ace3a6e", "evidence": {"same_day": true, "patch_ids": ["1e9c51fdf4b43d9b8ae625cf8df11bc9"], "statement_hash": "0bdf1323b15ffee7eacc4e858004565cb6eecca5b364aabb764018a25447bd33"}}, {"rule": 2, "type": "equivalent", "target": "9caa5f4d628412099082fd1319969991", "evidence": {"same_day": true, "patch_ids": ["1e9c51fdf4b43d9b8ae625cf8df11bc9"], "statement_hash": "0bdf1323b15ffee7eacc4e858004565cb6eecca5b364aabb764018a25447bd33"}}, {"rule": 2, "type": "equivalent", "target": "d10b4e72de56a8c53ce083837e2ffd72", "evidence": {"same_day": true, "patch_ids": ["1e9c51fdf4b43d9b8ae625cf8df11bc9"], "statement_hash": "0bdf1323b15ffee7eacc4e858004565cb6eecca5b364aabb764018a25447bd33"}}, {"rule": 2, "type": "equivalent", "target": "f598fe4bfadb4f9b45ea0afd89a43b41", "evidence": {"same_day": true, "patch_ids": ["1e9c51fdf4b43d9b8ae625cf8df11bc9"], "statement_hash": "0bdf1323b15ffee7eacc4e858004565cb6eecca5b364aabb764018a25447bd33"}}], "version": "15.4", "category_label": "Bug fixes", "also_in": [], "variants": [], "related_changes": [{"db_id": "352fb8fef4990f2385a9f9b77ace3a6e", "kind": "equivalent", "version": "14.9", "label": "14.9", "title": "Avoid leaving a corrupted database behind when DROP DATABASE is interrupted", "evidence": {"same_day": true, "patch_ids": ["1e9c51fdf4b43d9b8ae625cf8df11bc9"], "statement_hash": "0bdf1323b15ffee7eacc4e858004565cb6eecca5b364aabb764018a25447bd33"}, "url": "/docs/compare/?release=14.9#14.9-e4f9b891f851d9b6", "source_url": "/docs/release/14.9/#id-1.11.6.21.5"}, {"db_id": "9caa5f4d628412099082fd1319969991", "kind": "equivalent", "version": "13.12", "label": "13.12", "title": "Avoid leaving a corrupted database behind when DROP DATABASE is interrupted", "evidence": {"same_day": true, "patch_ids": ["1e9c51fdf4b43d9b8ae625cf8df11bc9"], "statement_hash": "0bdf1323b15ffee7eacc4e858004565cb6eecca5b364aabb764018a25447bd33"}, "url": "/docs/compare/?release=13.12#13.12-ad34fa4802d33508", "source_url": "/docs/release/13.12/#id-1.11.6.17.5"}, {"db_id": "f598fe4bfadb4f9b45ea0afd89a43b41", "kind": "equivalent", "version": "12.16", "label": "12.16", "title": "Avoid leaving a corrupted database behind when DROP DATABASE is interrupted", "evidence": {"same_day": true, "patch_ids": ["1e9c51fdf4b43d9b8ae625cf8df11bc9"], "statement_hash": "0bdf1323b15ffee7eacc4e858004565cb6eecca5b364aabb764018a25447bd33"}, "url": "/docs/compare/?release=12.16#12.16-a380f83a6d26b264", "source_url": "/docs/release/12.16/#id-1.11.6.12.5"}, {"db_id": "d10b4e72de56a8c53ce083837e2ffd72", "kind": "equivalent", "version": "11.21", "label": "11.21", "title": "Avoid leaving a corrupted database behind when DROP DATABASE is interrupted", "evidence": {"same_day": true, "patch_ids": ["1e9c51fdf4b43d9b8ae625cf8df11bc9"], "statement_hash": "0bdf1323b15ffee7eacc4e858004565cb6eecca5b364aabb764018a25447bd33"}, "url": "/docs/compare/?release=11.21#11.21-90a1c6ef90a32e12", "source_url": "/docs/release/11.21/#id-1.11.6.6.6"}]}, {"id": "15.4-e17ec11ac9f95ac0", "cves": [], "html": "<p>Ensure that partitioned indexes are correctly marked as valid or not at creation (Michael Paquier) <a href=\"https://postgr.es/c/cb4ac3e56\">§</a></p>\n<p>If a new partitioned index matches an existing but invalid index on one of the partitions, the partitioned index could end up being marked valid prematurely. This could lead to misbehavior or assertion failures in subsequent queries on the partitioned table.</p>", "text": "Ensure that partitioned indexes are correctly marked as valid or not at creation (Michael Paquier) § If a new partitioned index matches an existing but invalid index on one of the partitions, the partitioned index could end up being marked valid prematurely. This could lead to misbehavior or assertion failures in subsequent queries on the partitioned table.", "title": "Ensure that partitioned indexes are correctly marked as valid or not at creation", "commits": ["cb4ac3e56"], "section": "Changes", "category": "improvement", "source_url": "/docs/release/15.4/#id-1.11.6.21.5", "source_hash": "6470e3ac39e8fef46cf417f717fa7887c6a776c8321350080913e5914793609f", "section_path": ["Changes"], "commit_groups": [["537b70b82", "663b35f2d", "c75c33de5", "cb4ac3e56", "cfc43aeb3", "dbe0e5c56", "f4691e2e7"]], "identity_text": "Ensure that partitioned indexes are correctly marked as valid or not at creation (Michael Paquier) If a new partitioned index matches an existing but invalid index on one of the partitions, the partitioned index could end up being marked valid prematurely. This could lead to misbehavior or assertion failures in subsequent queries on the partitioned table.", "commit_aliases": ["537b70b82", "663b35f2d", "c75c33de5", "cb4ac3e56", "cfc43aeb3", "dbe0e5c56", "f4691e2e7"], "source_commits": ["cb4ac3e56"], "source_entry_id": "15.4/changes/005", "db_id": "2f1cce71fd84f222666907eaacdbb824", "patch_ids": ["405c2d4e234b31dfd4a7fc2992f60ed5"], "statement_hash": "9e2b4dbad7d2d414bced58ea1c65258c434cb6df96396fc0dc070e473c8fdfc5", "relations": [{"rule": 2, "type": "equivalent", "target": "1f01376cbd13df07e7393a69cb30a5e1", "evidence": {"same_day": true, "patch_ids": ["405c2d4e234b31dfd4a7fc2992f60ed5"], "statement_hash": "9e2b4dbad7d2d414bced58ea1c65258c434cb6df96396fc0dc070e473c8fdfc5"}}, {"rule": 2, "type": "equivalent", "target": "72f9ee8a450e0fdabc5e0a6068bcd637", "evidence": {"same_day": true, "patch_ids": ["405c2d4e234b31dfd4a7fc2992f60ed5"], "statement_hash": "9e2b4dbad7d2d414bced58ea1c65258c434cb6df96396fc0dc070e473c8fdfc5"}}, {"rule": 2, "type": "equivalent", "target": "a6cb1831d983730abc579974f5ffd62e", "evidence": {"same_day": true, "patch_ids": ["405c2d4e234b31dfd4a7fc2992f60ed5"], "statement_hash": "9e2b4dbad7d2d414bced58ea1c65258c434cb6df96396fc0dc070e473c8fdfc5"}}, {"rule": 2, "type": "equivalent", "target": "b516a54d78d9a8327ab9f743eee9c4ce", "evidence": {"same_day": true, "patch_ids": ["405c2d4e234b31dfd4a7fc2992f60ed5"], "statement_hash": "9e2b4dbad7d2d414bced58ea1c65258c434cb6df96396fc0dc070e473c8fdfc5"}}], "version": "15.4", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": [{"db_id": "72f9ee8a450e0fdabc5e0a6068bcd637", "kind": "equivalent", "version": "14.9", "label": "14.9", "title": "Ensure that partitioned indexes are correctly marked as valid or not at creation", "evidence": {"same_day": true, "patch_ids": ["405c2d4e234b31dfd4a7fc2992f60ed5"], "statement_hash": "9e2b4dbad7d2d414bced58ea1c65258c434cb6df96396fc0dc070e473c8fdfc5"}, "url": "/docs/compare/?release=14.9#14.9-23391a495c14e78b", "source_url": "/docs/release/14.9/#id-1.11.6.21.5"}, {"db_id": "1f01376cbd13df07e7393a69cb30a5e1", "kind": "equivalent", "version": "13.12", "label": "13.12", "title": "Ensure that partitioned indexes are correctly marked as valid or not at creation", "evidence": {"same_day": true, "patch_ids": ["405c2d4e234b31dfd4a7fc2992f60ed5"], "statement_hash": "9e2b4dbad7d2d414bced58ea1c65258c434cb6df96396fc0dc070e473c8fdfc5"}, "url": "/docs/compare/?release=13.12#13.12-c4b4f1d4dd9ef0db", "source_url": "/docs/release/13.12/#id-1.11.6.17.5"}, {"db_id": "b516a54d78d9a8327ab9f743eee9c4ce", "kind": "equivalent", "version": "12.16", "label": "12.16", "title": "Ensure that partitioned indexes are correctly marked as valid or not at creation", "evidence": {"same_day": true, "patch_ids": ["405c2d4e234b31dfd4a7fc2992f60ed5"], "statement_hash": "9e2b4dbad7d2d414bced58ea1c65258c434cb6df96396fc0dc070e473c8fdfc5"}, "url": "/docs/compare/?release=12.16#12.16-664a9c6409fbba88", "source_url": "/docs/release/12.16/#id-1.11.6.12.5"}, {"db_id": "a6cb1831d983730abc579974f5ffd62e", "kind": "equivalent", "version": "11.21", "label": "11.21", "title": "Ensure that partitioned indexes are correctly marked as valid or not at creation", "evidence": {"same_day": true, "patch_ids": ["405c2d4e234b31dfd4a7fc2992f60ed5"], "statement_hash": "9e2b4dbad7d2d414bced58ea1c65258c434cb6df96396fc0dc070e473c8fdfc5"}, "url": "/docs/compare/?release=11.21#11.21-74edb6615e4c7df6", "source_url": "/docs/release/11.21/#id-1.11.6.6.6"}]}, {"id": "15.4-1711c42d22b89f72", "cves": [], "html": "<p>Ignore invalid child indexes when matching partitioned indexes to child indexes during <code>ALTER TABLE ATTACH PARTITION</code> (Michael Paquier) <a href=\"https://postgr.es/c/7aa17b498\">§</a></p>\n<p>Such an index will now be ignored, and a new child index created instead.</p>", "text": "Ignore invalid child indexes when matching partitioned indexes to child indexes during ALTER TABLE ATTACH PARTITION (Michael Paquier) § Such an index will now be ignored, and a new child index created instead.", "title": "Ignore invalid child indexes when matching partitioned indexes to child indexes during ALTER TABLE ATTACH PARTITION", "commits": ["7aa17b498"], "section": "Changes", "category": "improvement", "source_url": "/docs/release/15.4/#id-1.11.6.21.5", "source_hash": "e257eb1bbc5a6181f582ec7282b697735f4f106589d70d3f8b8106ad6c696aa8", "section_path": ["Changes"], "commit_groups": [["6160e221d", "63b292e73", "7aa17b498", "e90e9275f", "f42844069", "fc55c7ff8"]], "identity_text": "Ignore invalid child indexes when matching partitioned indexes to child indexes during ALTER TABLE ATTACH PARTITION (Michael Paquier) Such an index will now be ignored, and a new child index created instead.", "commit_aliases": ["6160e221d", "63b292e73", "7aa17b498", "e90e9275f", "f42844069", "fc55c7ff8"], "source_commits": ["7aa17b498"], "source_entry_id": "15.4/changes/006", "db_id": "7db3a9e4fe3552005d5e3c4b3e85cc1e", "patch_ids": ["5b5839b1d237da8a07382b2aad037025"], "statement_hash": "7e35e6978bcc5ff4df37fdb281dff58beebefdaa3550ecf671c4829f881c6034", "relations": [{"rule": 2, "type": "equivalent", "target": "19451ab9ffe34b7e1c649628113d80c9", "evidence": {"same_day": true, "patch_ids": ["5b5839b1d237da8a07382b2aad037025"], "statement_hash": "7e35e6978bcc5ff4df37fdb281dff58beebefdaa3550ecf671c4829f881c6034"}}, {"rule": 2, "type": "equivalent", "target": "5303d949e3f9f743f72e15618d9ffb24", "evidence": {"same_day": true, "patch_ids": ["5b5839b1d237da8a07382b2aad037025"], "statement_hash": "7e35e6978bcc5ff4df37fdb281dff58beebefdaa3550ecf671c4829f881c6034"}}, {"rule": 2, "type": "equivalent", "target": "b6be61b317cd1c448068d218b2e2f3cf", "evidence": {"same_day": true, "patch_ids": ["5b5839b1d237da8a07382b2aad037025"], "statement_hash": "7e35e6978bcc5ff4df37fdb281dff58beebefdaa3550ecf671c4829f881c6034"}}, {"rule": 2, "type": "equivalent", "target": "f5b368ba16a4295aae7c91549f6528dc", "evidence": {"same_day": true, "patch_ids": ["5b5839b1d237da8a07382b2aad037025"], "statement_hash": "7e35e6978bcc5ff4df37fdb281dff58beebefdaa3550ecf671c4829f881c6034"}}], "version": "15.4", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": [{"db_id": "19451ab9ffe34b7e1c649628113d80c9", "kind": "equivalent", "version": "14.9", "label": "14.9", "title": "Ignore invalid child indexes when matching partitioned indexes to child indexes during ALTER TABLE ATTACH PARTITION", "evidence": {"same_day": true, "patch_ids": ["5b5839b1d237da8a07382b2aad037025"], "statement_hash": "7e35e6978bcc5ff4df37fdb281dff58beebefdaa3550ecf671c4829f881c6034"}, "url": "/docs/compare/?release=14.9#14.9-2c2ad08c6863448a", "source_url": "/docs/release/14.9/#id-1.11.6.21.5"}, {"db_id": "5303d949e3f9f743f72e15618d9ffb24", "kind": "equivalent", "version": "13.12", "label": "13.12", "title": "Ignore invalid child indexes when matching partitioned indexes to child indexes during ALTER TABLE ATTACH PARTITION", "evidence": {"same_day": true, "patch_ids": ["5b5839b1d237da8a07382b2aad037025"], "statement_hash": "7e35e6978bcc5ff4df37fdb281dff58beebefdaa3550ecf671c4829f881c6034"}, "url": "/docs/compare/?release=13.12#13.12-91adcf03c9da47e9", "source_url": "/docs/release/13.12/#id-1.11.6.17.5"}, {"db_id": "b6be61b317cd1c448068d218b2e2f3cf", "kind": "equivalent", "version": "12.16", "label": "12.16", "title": "Ignore invalid child indexes when matching partitioned indexes to child indexes during ALTER TABLE ATTACH PARTITION", "evidence": {"same_day": true, "patch_ids": ["5b5839b1d237da8a07382b2aad037025"], "statement_hash": "7e35e6978bcc5ff4df37fdb281dff58beebefdaa3550ecf671c4829f881c6034"}, "url": "/docs/compare/?release=12.16#12.16-d49485ee25fe1c37", "source_url": "/docs/release/12.16/#id-1.11.6.12.5"}, {"db_id": "f5b368ba16a4295aae7c91549f6528dc", "kind": "equivalent", "version": "11.21", "label": "11.21", "title": "Ignore invalid child indexes when matching partitioned indexes to child indexes during ALTER TABLE ATTACH PARTITION", "evidence": {"same_day": true, "patch_ids": ["5b5839b1d237da8a07382b2aad037025"], "statement_hash": "7e35e6978bcc5ff4df37fdb281dff58beebefdaa3550ecf671c4829f881c6034"}, "url": "/docs/compare/?release=11.21#11.21-ed8d2265f6fd20b6", "source_url": "/docs/release/11.21/#id-1.11.6.6.6"}]}, {"id": "15.4-4c4abb957905e6a9", "cves": [], "html": "<p>Fix possible failure when marking a partitioned index valid after all of its partitions have been attached (Michael Paquier) <a href=\"https://postgr.es/c/c0dc97c7b\">§</a></p>\n<p>The update of the index's <code>pg_index</code> entry could use stale data for other columns. One reported symptom is an <span>“<span>attempted to update invisible tuple</span>”</span> error.</p>", "text": "Fix possible failure when marking a partitioned index valid after all of its partitions have been attached (Michael Paquier) § The update of the index's pg_index entry could use stale data for other columns. One reported symptom is an “attempted to update invisible tuple” error.", "title": "Fix possible failure when marking a partitioned index valid after all of its partitions have been attached", "commits": ["c0dc97c7b"], "section": "Changes", "category": "bugfix", "source_url": "/docs/release/15.4/#id-1.11.6.21.5", "source_hash": "79113537bd88e00c85ff04514dacb7cd1c6d2103ea92ee69199b41bca0c4325c", "section_path": ["Changes"], "commit_groups": [["31f9d41d6", "38ea6aa90", "954cc2139", "c0dc97c7b", "c89d74c18", "ed2b58c15", "f1d6bcdd8"]], "identity_text": "Fix possible failure when marking a partitioned index valid after all of its partitions have been attached (Michael Paquier) The update of the index's pg_index entry could use stale data for other columns. One reported symptom is an attempted to update invisible tuple error.", "commit_aliases": ["31f9d41d6", "38ea6aa90", "954cc2139", "c0dc97c7b", "c89d74c18", "ed2b58c15", "f1d6bcdd8"], "source_commits": ["c0dc97c7b"], "source_entry_id": "15.4/changes/007", "db_id": "bb2aa5462487d25330c6fd6aa3a214ce", "patch_ids": ["0839789bad3ba5e157fcbac6af6991f9"], "statement_hash": "39ecebc872c0e01d20f0d17c8b07b5bbdc28d6ddc4d2b8217ce24d51bb6e321f", "relations": [{"rule": 2, "type": "equivalent", "target": "1ded5ac25852df0466006b18182129d0", "evidence": {"same_day": true, "patch_ids": ["0839789bad3ba5e157fcbac6af6991f9"], "statement_hash": "39ecebc872c0e01d20f0d17c8b07b5bbdc28d6ddc4d2b8217ce24d51bb6e321f"}}, {"rule": 2, "type": "equivalent", "target": "595b19fa6c4adc4d0debb0ebfc3fcb8a", "evidence": {"same_day": true, "patch_ids": ["0839789bad3ba5e157fcbac6af6991f9"], "statement_hash": "39ecebc872c0e01d20f0d17c8b07b5bbdc28d6ddc4d2b8217ce24d51bb6e321f"}}, {"rule": 2, "type": "equivalent", "target": "5af2b222a4f40b592bc17f8629d7d7a6", "evidence": {"same_day": true, "patch_ids": ["0839789bad3ba5e157fcbac6af6991f9"], "statement_hash": "39ecebc872c0e01d20f0d17c8b07b5bbdc28d6ddc4d2b8217ce24d51bb6e321f"}}, {"rule": 2, "type": "equivalent", "target": "d50f495c4e556ab483bc7ede7963c4df", "evidence": {"same_day": true, "patch_ids": ["0839789bad3ba5e157fcbac6af6991f9"], "statement_hash": "39ecebc872c0e01d20f0d17c8b07b5bbdc28d6ddc4d2b8217ce24d51bb6e321f"}}], "version": "15.4", "category_label": "Bug fixes", "also_in": [], "variants": [], "related_changes": [{"db_id": "5af2b222a4f40b592bc17f8629d7d7a6", "kind": "equivalent", "version": "14.9", "label": "14.9", "title": "Fix possible failure when marking a partitioned index valid after all of its partitions have been attached", "evidence": {"same_day": true, "patch_ids": ["0839789bad3ba5e157fcbac6af6991f9"], "statement_hash": "39ecebc872c0e01d20f0d17c8b07b5bbdc28d6ddc4d2b8217ce24d51bb6e321f"}, "url": "/docs/compare/?release=14.9#14.9-5249d06862a30ab4", "source_url": "/docs/release/14.9/#id-1.11.6.21.5"}, {"db_id": "d50f495c4e556ab483bc7ede7963c4df", "kind": "equivalent", "version": "13.12", "label": "13.12", "title": "Fix possible failure when marking a partitioned index valid after all of its partitions have been attached", "evidence": {"same_day": true, "patch_ids": ["0839789bad3ba5e157fcbac6af6991f9"], "statement_hash": "39ecebc872c0e01d20f0d17c8b07b5bbdc28d6ddc4d2b8217ce24d51bb6e321f"}, "url": "/docs/compare/?release=13.12#13.12-4e10fd48a6e44c56", "source_url": "/docs/release/13.12/#id-1.11.6.17.5"}, {"db_id": "595b19fa6c4adc4d0debb0ebfc3fcb8a", "kind": "equivalent", "version": "12.16", "label": "12.16", "title": "Fix possible failure when marking a partitioned index valid after all of its partitions have been attached", "evidence": {"same_day": true, "patch_ids": ["0839789bad3ba5e157fcbac6af6991f9"], "statement_hash": "39ecebc872c0e01d20f0d17c8b07b5bbdc28d6ddc4d2b8217ce24d51bb6e321f"}, "url": "/docs/compare/?release=12.16#12.16-1c1cef03e6a0caa5", "source_url": "/docs/release/12.16/#id-1.11.6.12.5"}, {"db_id": "1ded5ac25852df0466006b18182129d0", "kind": "equivalent", "version": "11.21", "label": "11.21", "title": "Fix possible failure when marking a partitioned index valid after all of its partitions have been attached", "evidence": {"same_day": true, "patch_ids": ["0839789bad3ba5e157fcbac6af6991f9"], "statement_hash": "39ecebc872c0e01d20f0d17c8b07b5bbdc28d6ddc4d2b8217ce24d51bb6e321f"}, "url": "/docs/compare/?release=11.21#11.21-337616399ebba77d", "source_url": "/docs/release/11.21/#id-1.11.6.6.6"}]}, {"id": "15.4-54bad1819c5bb381", "cves": [], "html": "<p>Fix <code>ALTER EXTENSION SET SCHEMA</code> to complain if the extension contains any objects outside the extension's schema (Michael Paquier, Heikki Linnakangas) <a href=\"https://postgr.es/c/d1e0f408c\">§</a></p>\n<p>Erroring out if the extension contains objects in multiple schemas was always intended; but the check was mis-coded so that it would fail to detect some cases, leading to surprising behavior.</p>", "text": "Fix ALTER EXTENSION SET SCHEMA to complain if the extension contains any objects outside the extension's schema (Michael Paquier, Heikki Linnakangas) § Erroring out if the extension contains objects in multiple schemas was always intended; but the check was mis-coded so that it would fail to detect some cases, leading to surprising behavior.", "title": "Fix ALTER EXTENSION SET SCHEMA to complain if the extension contains any objects outside the extension's schema", "commits": ["d1e0f408c"], "section": "Changes", "category": "bugfix", "source_url": "/docs/release/15.4/#id-1.11.6.21.5", "source_hash": "63e4210d4cc9eafc48525f4ed7aa5d7d19f443cc934b25b5b4ced63cf1aafa0d", "section_path": ["Changes"], "commit_groups": [["02021f1b2", "235e716bc", "55c95f24c", "914e72e6e", "bd5ddbe86", "d1e0f408c", "f5b075adc"]], "identity_text": "Fix ALTER EXTENSION SET SCHEMA to complain if the extension contains any objects outside the extension's schema (Michael Paquier, Heikki Linnakangas) Erroring out if the extension contains objects in multiple schemas was always intended; but the check was mis-coded so that it would fail to detect some cases, leading to surprising behavior.", "commit_aliases": ["02021f1b2", "235e716bc", "55c95f24c", "914e72e6e", "bd5ddbe86", "d1e0f408c", "f5b075adc"], "source_commits": ["d1e0f408c"], "source_entry_id": "15.4/changes/008", "db_id": "ee572e2e78f4e94453e5a2c0d05c2787", "patch_ids": ["255d1f262a67d01dfc640fced2f0037d"], "statement_hash": "dbd71d5eaf563dab6a26fb79e6a94b5340c9294ffe5c77afd92769eb3bdf1389", "relations": [{"rule": 2, "type": "equivalent", "target": "de8bad652152a2517920f970a3e432ff", "evidence": {"same_day": true, "patch_ids": ["255d1f262a67d01dfc640fced2f0037d"], "statement_hash": "dbd71d5eaf563dab6a26fb79e6a94b5340c9294ffe5c77afd92769eb3bdf1389"}}, {"rule": 2, "type": "equivalent", "target": "e0dceed4a03e1ebf0bc0e405f121201f", "evidence": {"same_day": true, "patch_ids": ["255d1f262a67d01dfc640fced2f0037d"], "statement_hash": "dbd71d5eaf563dab6a26fb79e6a94b5340c9294ffe5c77afd92769eb3bdf1389"}}, {"rule": 2, "type": "equivalent", "target": "e172161639ea39f4315e46286124faea", "evidence": {"same_day": true, "patch_ids": ["255d1f262a67d01dfc640fced2f0037d"], "statement_hash": "dbd71d5eaf563dab6a26fb79e6a94b5340c9294ffe5c77afd92769eb3bdf1389"}}, {"rule": 2, "type": "equivalent", "target": "f5a835497f9cfa508c293c67a80f1816", "evidence": {"same_day": true, "patch_ids": ["255d1f262a67d01dfc640fced2f0037d"], "statement_hash": "dbd71d5eaf563dab6a26fb79e6a94b5340c9294ffe5c77afd92769eb3bdf1389"}}], "version": "15.4", "category_label": "Bug fixes", "also_in": [], "variants": [], "related_changes": [{"db_id": "e0dceed4a03e1ebf0bc0e405f121201f", "kind": "equivalent", "version": "14.9", "label": "14.9", "title": "Fix ALTER EXTENSION SET SCHEMA to complain if the extension contains any objects outside the extension's schema", "evidence": {"same_day": true, "patch_ids": ["255d1f262a67d01dfc640fced2f0037d"], "statement_hash": "dbd71d5eaf563dab6a26fb79e6a94b5340c9294ffe5c77afd92769eb3bdf1389"}, "url": "/docs/compare/?release=14.9#14.9-fe4dce7bdf393bae", "source_url": "/docs/release/14.9/#id-1.11.6.21.5"}, {"db_id": "e172161639ea39f4315e46286124faea", "kind": "equivalent", "version": "13.12", "label": "13.12", "title": "Fix ALTER EXTENSION SET SCHEMA to complain if the extension contains any objects outside the extension's schema", "evidence": {"same_day": true, "patch_ids": ["255d1f262a67d01dfc640fced2f0037d"], "statement_hash": "dbd71d5eaf563dab6a26fb79e6a94b5340c9294ffe5c77afd92769eb3bdf1389"}, "url": "/docs/compare/?release=13.12#13.12-29d076668929da6a", "source_url": "/docs/release/13.12/#id-1.11.6.17.5"}, {"db_id": "f5a835497f9cfa508c293c67a80f1816", "kind": "equivalent", "version": "12.16", "label": "12.16", "title": "Fix ALTER EXTENSION SET SCHEMA to complain if the extension contains any objects outside the extension's schema", "evidence": {"same_day": true, "patch_ids": ["255d1f262a67d01dfc640fced2f0037d"], "statement_hash": "dbd71d5eaf563dab6a26fb79e6a94b5340c9294ffe5c77afd92769eb3bdf1389"}, "url": "/docs/compare/?release=12.16#12.16-72554a2aa1e7909d", "source_url": "/docs/release/12.16/#id-1.11.6.12.5"}, {"db_id": "de8bad652152a2517920f970a3e432ff", "kind": "equivalent", "version": "11.21", "label": "11.21", "title": "Fix ALTER EXTENSION SET SCHEMA to complain if the extension contains any objects outside the extension's schema", "evidence": {"same_day": true, "patch_ids": ["255d1f262a67d01dfc640fced2f0037d"], "statement_hash": "dbd71d5eaf563dab6a26fb79e6a94b5340c9294ffe5c77afd92769eb3bdf1389"}, "url": "/docs/compare/?release=11.21#11.21-f1c55a5d7a05eae6", "source_url": "/docs/release/11.21/#id-1.11.6.6.6"}]}, {"id": "15.4-e656246161b29c42", "cves": [], "html": "<p>Fix tracking of tables' access method dependencies (Michael Paquier) <a href=\"https://postgr.es/c/93401ec02\">§</a></p>\n<p><code>ALTER TABLE ... SET ACCESS METHOD</code> failed to update relevant <code>pg_depend</code> entries when changing a table's access method. When using non-built-in access methods, this creates a risk that an access method could be dropped even though tables still depend on it. This fix corrects the logic in <code>ALTER TABLE</code>, but it will not adjust any already-missing <code>pg_depend</code> entries.</p>", "text": "Fix tracking of tables' access method dependencies (Michael Paquier) § ALTER TABLE ... SET ACCESS METHOD failed to update relevant pg_depend entries when changing a table's access method. When using non-built-in access methods, this creates a risk that an access method could be dropped even though tables still depend on it. This fix corrects the logic in ALTER TABLE, but it will not adjust any already-missing pg_depend entries.", "title": "Fix tracking of tables' access method dependencies", "commits": ["93401ec02"], "section": "Changes", "category": "bugfix", "source_url": "/docs/release/15.4/#id-1.11.6.21.5", "source_hash": "d60f56ad4bce8feb263ef7b8535dac1de992da717aa2f7c341a3815e2dd5f66d", "section_path": ["Changes"], "commit_groups": [["93401ec02", "97d891010"]], "identity_text": "Fix tracking of tables' access method dependencies (Michael Paquier) ALTER TABLE ... SET ACCESS METHOD failed to update relevant pg_depend entries when changing a table's access method. When using non-built-in access methods, this creates a risk that an access method could be dropped even though tables still depend on it. This fix corrects the logic in ALTER TABLE, but it will not adjust any already-missing pg_depend entries.", "commit_aliases": ["93401ec02", "97d891010"], "source_commits": ["93401ec02"], "source_entry_id": "15.4/changes/009", "db_id": "fb3e3860b973f8338c38ff8dbe3a21c1", "patch_ids": ["ec6fa91603dbd87485ae21d02fae5057"], "statement_hash": "299a875df70c71f5785187d781e30aa7352d3425b151d8f733ca97f2bac5408c", "relations": [], "version": "15.4", "category_label": "Bug fixes", "also_in": [], "variants": [], "related_changes": []}, {"id": "15.4-23bb86304490eb79", "cves": [], "html": "<p>Don't use partial unique indexes for uniqueness proofs in the planner (David Rowley) <a href=\"https://postgr.es/c/8f2ec8cc7\">§</a></p>\n<p>This could give rise to incorrect plans, since the presumed uniqueness of rows read from a table might not hold if the index in question isn't used to scan the table.</p>", "text": "Don't use partial unique indexes for uniqueness proofs in the planner (David Rowley) § This could give rise to incorrect plans, since the presumed uniqueness of rows read from a table might not hold if the index in question isn't used to scan the table.", "title": "Don't use partial unique indexes for uniqueness proofs in the planner", "commits": ["8f2ec8cc7"], "section": "Changes", "category": "improvement", "source_url": "/docs/release/15.4/#id-1.11.6.21.5", "source_hash": "f1690f26e67ab770d6ba9c4a74ab6b9362e9b9823e8cddf1ae22f5c66c84f22e", "section_path": ["Changes"], "commit_groups": [["06286f8a2", "73f1c17fc", "7fcd7ef2a", "8f2ec8cc7", "dcef5b052", "f6345f03f"]], "identity_text": "Don't use partial unique indexes for uniqueness proofs in the planner (David Rowley) This could give rise to incorrect plans, since the presumed uniqueness of rows read from a table might not hold if the index in question isn't used to scan the table.", "commit_aliases": ["06286f8a2", "73f1c17fc", "7fcd7ef2a", "8f2ec8cc7", "dcef5b052", "f6345f03f"], "source_commits": ["8f2ec8cc7"], "source_entry_id": "15.4/changes/010", "db_id": "dae596a0e523920e98e3aa3f6f64e748", "patch_ids": ["5afba1ce4cc69cc7e323fb1344fef312"], "statement_hash": "9ad02600c88cc5bc08a077a3c14df97ff15c1de9cf28c99c027dfdd631004db1", "relations": [{"rule": 2, "type": "equivalent", "target": "349d7f9017aaf8b9256d64ef6816ab78", "evidence": {"same_day": true, "patch_ids": ["5afba1ce4cc69cc7e323fb1344fef312"], "statement_hash": "9ad02600c88cc5bc08a077a3c14df97ff15c1de9cf28c99c027dfdd631004db1"}}, {"rule": 2, "type": "equivalent", "target": "366547fc23d4fc6b1e42aa62a1328f90", "evidence": {"same_day": true, "patch_ids": ["5afba1ce4cc69cc7e323fb1344fef312"], "statement_hash": "9ad02600c88cc5bc08a077a3c14df97ff15c1de9cf28c99c027dfdd631004db1"}}, {"rule": 2, "type": "equivalent", "target": "98cf114994cd59d18c8227e4df5bfac1", "evidence": {"same_day": true, "patch_ids": ["5afba1ce4cc69cc7e323fb1344fef312"], "statement_hash": "9ad02600c88cc5bc08a077a3c14df97ff15c1de9cf28c99c027dfdd631004db1"}}, {"rule": 2, "type": "equivalent", "target": "cc2306529c3a6971c1b90c20685a73c2", "evidence": {"same_day": true, "patch_ids": ["5afba1ce4cc69cc7e323fb1344fef312"], "statement_hash": "9ad02600c88cc5bc08a077a3c14df97ff15c1de9cf28c99c027dfdd631004db1"}}], "version": "15.4", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": [{"db_id": "cc2306529c3a6971c1b90c20685a73c2", "kind": "equivalent", "version": "14.9", "label": "14.9", "title": "Don't use partial unique indexes for uniqueness proofs in the planner", "evidence": {"same_day": true, "patch_ids": ["5afba1ce4cc69cc7e323fb1344fef312"], "statement_hash": "9ad02600c88cc5bc08a077a3c14df97ff15c1de9cf28c99c027dfdd631004db1"}, "url": "/docs/compare/?release=14.9#14.9-3b1afded1691c1bd", "source_url": "/docs/release/14.9/#id-1.11.6.21.5"}, {"db_id": "98cf114994cd59d18c8227e4df5bfac1", "kind": "equivalent", "version": "13.12", "label": "13.12", "title": "Don't use partial unique indexes for uniqueness proofs in the planner", "evidence": {"same_day": true, "patch_ids": ["5afba1ce4cc69cc7e323fb1344fef312"], "statement_hash": "9ad02600c88cc5bc08a077a3c14df97ff15c1de9cf28c99c027dfdd631004db1"}, "url": "/docs/compare/?release=13.12#13.12-5438b35bbfdcd1c0", "source_url": "/docs/release/13.12/#id-1.11.6.17.5"}, {"db_id": "349d7f9017aaf8b9256d64ef6816ab78", "kind": "equivalent", "version": "12.16", "label": "12.16", "title": "Don't use partial unique indexes for uniqueness proofs in the planner", "evidence": {"same_day": true, "patch_ids": ["5afba1ce4cc69cc7e323fb1344fef312"], "statement_hash": "9ad02600c88cc5bc08a077a3c14df97ff15c1de9cf28c99c027dfdd631004db1"}, "url": "/docs/compare/?release=12.16#12.16-851daa9592e048c3", "source_url": "/docs/release/12.16/#id-1.11.6.12.5"}, {"db_id": "366547fc23d4fc6b1e42aa62a1328f90", "kind": "equivalent", "version": "11.21", "label": "11.21", "title": "Don't use partial unique indexes for uniqueness proofs in the planner", "evidence": {"same_day": true, "patch_ids": ["5afba1ce4cc69cc7e323fb1344fef312"], "statement_hash": "9ad02600c88cc5bc08a077a3c14df97ff15c1de9cf28c99c027dfdd631004db1"}, "url": "/docs/compare/?release=11.21#11.21-1a7026fe4ee069e5", "source_url": "/docs/release/11.21/#id-1.11.6.6.6"}]}, {"id": "15.4-2025b1523a216e42", "cves": [], "html": "<p>Don't Memoize lateral joins with volatile join conditions (Richard Guo) <a href=\"https://postgr.es/c/71662373b\">§</a></p>\n<p>Applying Memoize to a sub-plan that contains volatile filter conditions is likely to lead to wrong answers. The check to avoid doing this missed some cases that can arise when using <code>LATERAL</code>.</p>", "text": "Don't Memoize lateral joins with volatile join conditions (Richard Guo) § Applying Memoize to a sub-plan that contains volatile filter conditions is likely to lead to wrong answers. The check to avoid doing this missed some cases that can arise when using LATERAL.", "title": "Don't Memoize lateral joins with volatile join conditions", "commits": ["71662373b"], "section": "Changes", "category": "improvement", "source_url": "/docs/release/15.4/#id-1.11.6.21.5", "source_hash": "54e1b7b0354074235980cb0c899c36006048d0561be143ad8b4a9df36dd8f90a", "section_path": ["Changes"], "commit_groups": [["71662373b", "990c3650c", "ae89129aa", "bf315354e"]], "identity_text": "Don't Memoize lateral joins with volatile join conditions (Richard Guo) Applying Memoize to a sub-plan that contains volatile filter conditions is likely to lead to wrong answers. The check to avoid doing this missed some cases that can arise when using LATERAL.", "commit_aliases": ["71662373b", "990c3650c", "ae89129aa", "bf315354e"], "source_commits": ["71662373b"], "source_entry_id": "15.4/changes/011", "db_id": "e15aa378d3a67c404640867c12b96067", "patch_ids": ["15e0c1bdd4939b00e87b039816997f45"], "statement_hash": "fd36b842aadbb861ca6ad75c63bec5557718595c207372b396f750d8aad617ac", "relations": [{"rule": 2, "type": "equivalent", "target": "9657cc0ec6ed1a0cab15aa9b4846aed2", "evidence": {"same_day": true, "patch_ids": ["15e0c1bdd4939b00e87b039816997f45"], "statement_hash": "fd36b842aadbb861ca6ad75c63bec5557718595c207372b396f750d8aad617ac"}}], "version": "15.4", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": [{"db_id": "9657cc0ec6ed1a0cab15aa9b4846aed2", "kind": "equivalent", "version": "14.9", "label": "14.9", "title": "Don't Memoize lateral joins with volatile join conditions", "evidence": {"same_day": true, "patch_ids": ["15e0c1bdd4939b00e87b039816997f45"], "statement_hash": "fd36b842aadbb861ca6ad75c63bec5557718595c207372b396f750d8aad617ac"}, "url": "/docs/compare/?release=14.9#14.9-94ff03e82d7e370c", "source_url": "/docs/release/14.9/#id-1.11.6.21.5"}]}, {"id": "15.4-97a659521f1258cf", "cves": [], "html": "<p>Avoid producing incorrect plans for foreign joins with pseudoconstant join clauses (Etsuro Fujita) <a href=\"https://postgr.es/c/d1ef5631e\">§</a></p>\n<p>The planner currently lacks support for attaching pseudoconstant join clauses to a pushed-down remote join, so disable generation of remote joins in such cases. (A better solution will require ABI-breaking changes of planner data structures, so it will have to wait for a future major release.)</p>", "text": "Avoid producing incorrect plans for foreign joins with pseudoconstant join clauses (Etsuro Fujita) § The planner currently lacks support for attaching pseudoconstant join clauses to a pushed-down remote join, so disable generation of remote joins in such cases. (A better solution will require ABI-breaking changes of planner data structures, so it will have to wait for a future major release.)", "title": "Avoid producing incorrect plans for foreign joins with pseudoconstant join clauses", "commits": ["d1ef5631e"], "section": "Changes", "category": "improvement", "source_url": "/docs/release/15.4/#id-1.11.6.21.5", "source_hash": "76c594137e8a00625b7f936dbca16ebd56672dabd516598895c98930546efc6d", "section_path": ["Changes"], "commit_groups": [["695f5deb7", "6f80a8d9c", "730f983ef", "9edf72aa7", "b0e390e6d", "d1ef5631e", "db01f2696"]], "identity_text": "Avoid producing incorrect plans for foreign joins with pseudoconstant join clauses (Etsuro Fujita) The planner currently lacks support for attaching pseudoconstant join clauses to a pushed-down remote join, so disable generation of remote joins in such cases. (A better solution will require ABI-breaking changes of planner data structures, so it will have to wait for a future major release.)", "commit_aliases": ["695f5deb7", "6f80a8d9c", "730f983ef", "9edf72aa7", "b0e390e6d", "d1ef5631e", "db01f2696"], "source_commits": ["d1ef5631e"], "source_entry_id": "15.4/changes/012", "db_id": "bf6ab4bf95c50bdff1de6312f9bdd33b", "patch_ids": ["e6c08c6d547d51143066c7f07d8502af"], "statement_hash": "8754d1ab51fe9cd86e7958f9f808235defe2e0f71736edd8c01debd820b36a1a", "relations": [{"rule": 2, "type": "equivalent", "target": "03adba3f4b7e31f4e1dd9d5c7ec6cb25", "evidence": {"same_day": true, "patch_ids": ["e6c08c6d547d51143066c7f07d8502af"], "statement_hash": "8754d1ab51fe9cd86e7958f9f808235defe2e0f71736edd8c01debd820b36a1a"}}, {"rule": 2, "type": "equivalent", "target": "0ad52b2709466527f18cb8accbe58f01", "evidence": {"same_day": true, "patch_ids": ["e6c08c6d547d51143066c7f07d8502af"], "statement_hash": "8754d1ab51fe9cd86e7958f9f808235defe2e0f71736edd8c01debd820b36a1a"}}, {"rule": 2, "type": "equivalent", "target": "248f46710f7b484572f953eb1f738125", "evidence": {"same_day": true, "patch_ids": ["e6c08c6d547d51143066c7f07d8502af"], "statement_hash": "8754d1ab51fe9cd86e7958f9f808235defe2e0f71736edd8c01debd820b36a1a"}}, {"rule": 2, "type": "equivalent", "target": "eabb933b406335e4d506383e550c707b", "evidence": {"same_day": true, "patch_ids": ["e6c08c6d547d51143066c7f07d8502af"], "statement_hash": "8754d1ab51fe9cd86e7958f9f808235defe2e0f71736edd8c01debd820b36a1a"}}], "version": "15.4", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": [{"db_id": "248f46710f7b484572f953eb1f738125", "kind": "equivalent", "version": "14.9", "label": "14.9", "title": "Avoid producing incorrect plans for foreign joins with pseudoconstant join clauses", "evidence": {"same_day": true, "patch_ids": ["e6c08c6d547d51143066c7f07d8502af"], "statement_hash": "8754d1ab51fe9cd86e7958f9f808235defe2e0f71736edd8c01debd820b36a1a"}, "url": "/docs/compare/?release=14.9#14.9-ab3d99f72b4cc541", "source_url": "/docs/release/14.9/#id-1.11.6.21.5"}, {"db_id": "eabb933b406335e4d506383e550c707b", "kind": "equivalent", "version": "13.12", "label": "13.12", "title": "Avoid producing incorrect plans for foreign joins with pseudoconstant join clauses", "evidence": {"same_day": true, "patch_ids": ["e6c08c6d547d51143066c7f07d8502af"], "statement_hash": "8754d1ab51fe9cd86e7958f9f808235defe2e0f71736edd8c01debd820b36a1a"}, "url": "/docs/compare/?release=13.12#13.12-8e08d9120f28cde9", "source_url": "/docs/release/13.12/#id-1.11.6.17.5"}, {"db_id": "03adba3f4b7e31f4e1dd9d5c7ec6cb25", "kind": "equivalent", "version": "12.16", "label": "12.16", "title": "Avoid producing incorrect plans for foreign joins with pseudoconstant join clauses", "evidence": {"same_day": true, "patch_ids": ["e6c08c6d547d51143066c7f07d8502af"], "statement_hash": "8754d1ab51fe9cd86e7958f9f808235defe2e0f71736edd8c01debd820b36a1a"}, "url": "/docs/compare/?release=12.16#12.16-adfbcb77b96d8335", "source_url": "/docs/release/12.16/#id-1.11.6.12.5"}, {"db_id": "0ad52b2709466527f18cb8accbe58f01", "kind": "equivalent", "version": "11.21", "label": "11.21", "title": "Avoid producing incorrect plans for foreign joins with pseudoconstant join clauses", "evidence": {"same_day": true, "patch_ids": ["e6c08c6d547d51143066c7f07d8502af"], "statement_hash": "8754d1ab51fe9cd86e7958f9f808235defe2e0f71736edd8c01debd820b36a1a"}, "url": "/docs/compare/?release=11.21#11.21-952f5e5f1a4a0048", "source_url": "/docs/release/11.21/#id-1.11.6.6.6"}]}, {"id": "15.4-8cef627212e99c40", "cves": [], "html": "<p>Correctly handle sub-SELECTs in RLS policy expressions and security-barrier views when expanding rule actions (Tom Lane) <a href=\"https://postgr.es/c/cc6974df1\">§</a></p>", "text": "Correctly handle sub-SELECTs in RLS policy expressions and security-barrier views when expanding rule actions (Tom Lane) §", "title": "Correctly handle sub-SELECTs in RLS policy expressions and security-barrier views when expanding rule actions", "commits": ["cc6974df1"], "section": "Changes", "category": "improvement", "source_url": "/docs/release/15.4/#id-1.11.6.21.5", "source_hash": "489dbaeb7fa38abdc55c71467038ba923a60c5ad3316a69532aee9e89a961efc", "section_path": ["Changes"], "commit_groups": [["13192a324", "792213f2e", "a36d0014f", "b4110bdbf", "cc6974df1", "d1423c52e"]], "identity_text": "Correctly handle sub-SELECTs in RLS policy expressions and security-barrier views when expanding rule actions (Tom Lane)", "commit_aliases": ["13192a324", "792213f2e", "a36d0014f", "b4110bdbf", "cc6974df1", "d1423c52e"], "source_commits": ["cc6974df1"], "source_entry_id": "15.4/changes/013", "db_id": "7a2a3579a4515ef7d4074a28f62df14c", "patch_ids": ["87e5e637be2c84959550d4791a8a9a74"], "statement_hash": "b8199d11cd0af526d9543c60563499d60722d7231613b4b60dd15fc9c5aa6f5f", "relations": [{"rule": 2, "type": "equivalent", "target": "654faad5c860e3eee5520bc62c44b6b0", "evidence": {"same_day": true, "patch_ids": ["87e5e637be2c84959550d4791a8a9a74"], "statement_hash": "b8199d11cd0af526d9543c60563499d60722d7231613b4b60dd15fc9c5aa6f5f"}}, {"rule": 2, "type": "equivalent", "target": "6f926f1b8b91c542be33729c45060533", "evidence": {"same_day": true, "patch_ids": ["87e5e637be2c84959550d4791a8a9a74"], "statement_hash": "b8199d11cd0af526d9543c60563499d60722d7231613b4b60dd15fc9c5aa6f5f"}}, {"rule": 2, "type": "equivalent", "target": "9dba8314c6f153a985b063fcdfae0be0", "evidence": {"same_day": true, "patch_ids": ["87e5e637be2c84959550d4791a8a9a74"], "statement_hash": "b8199d11cd0af526d9543c60563499d60722d7231613b4b60dd15fc9c5aa6f5f"}}, {"rule": 2, "type": "equivalent", "target": "ddd3e336c70ed38381f9b3ee9044e700", "evidence": {"same_day": true, "patch_ids": ["87e5e637be2c84959550d4791a8a9a74"], "statement_hash": "b8199d11cd0af526d9543c60563499d60722d7231613b4b60dd15fc9c5aa6f5f"}}], "version": "15.4", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": [{"db_id": "ddd3e336c70ed38381f9b3ee9044e700", "kind": "equivalent", "version": "14.9", "label": "14.9", "title": "Correctly handle sub-SELECTs in RLS policy expressions and security-barrier views when expanding rule actions", "evidence": {"same_day": true, "patch_ids": ["87e5e637be2c84959550d4791a8a9a74"], "statement_hash": "b8199d11cd0af526d9543c60563499d60722d7231613b4b60dd15fc9c5aa6f5f"}, "url": "/docs/compare/?release=14.9#14.9-e65124a26c453b90", "source_url": "/docs/release/14.9/#id-1.11.6.21.5"}, {"db_id": "6f926f1b8b91c542be33729c45060533", "kind": "equivalent", "version": "13.12", "label": "13.12", "title": "Correctly handle sub-SELECTs in RLS policy expressions and security-barrier views when expanding rule actions", "evidence": {"same_day": true, "patch_ids": ["87e5e637be2c84959550d4791a8a9a74"], "statement_hash": "b8199d11cd0af526d9543c60563499d60722d7231613b4b60dd15fc9c5aa6f5f"}, "url": "/docs/compare/?release=13.12#13.12-3a7d9526af7cba3a", "source_url": "/docs/release/13.12/#id-1.11.6.17.5"}, {"db_id": "9dba8314c6f153a985b063fcdfae0be0", "kind": "equivalent", "version": "12.16", "label": "12.16", "title": "Correctly handle sub-SELECTs in RLS policy expressions and security-barrier views when expanding rule actions", "evidence": {"same_day": true, "patch_ids": ["87e5e637be2c84959550d4791a8a9a74"], "statement_hash": "b8199d11cd0af526d9543c60563499d60722d7231613b4b60dd15fc9c5aa6f5f"}, "url": "/docs/compare/?release=12.16#12.16-84d20c79549276d3", "source_url": "/docs/release/12.16/#id-1.11.6.12.5"}, {"db_id": "654faad5c860e3eee5520bc62c44b6b0", "kind": "equivalent", "version": "11.21", "label": "11.21", "title": "Correctly handle sub-SELECTs in RLS policy expressions and security-barrier views when expanding rule actions", "evidence": {"same_day": true, "patch_ids": ["87e5e637be2c84959550d4791a8a9a74"], "statement_hash": "b8199d11cd0af526d9543c60563499d60722d7231613b4b60dd15fc9c5aa6f5f"}, "url": "/docs/compare/?release=11.21#11.21-8c467ed6a8203efa", "source_url": "/docs/release/11.21/#id-1.11.6.6.6"}]}, {"id": "15.4-28c1ddb26ed27195", "cves": [], "html": "<p>Fix race conditions in conflict detection for <code>SERIALIZABLE</code> isolation mode (Thomas Munro) <a href=\"https://postgr.es/c/d34aa0a2f\">§</a> <a href=\"https://postgr.es/c/ab265e985\">§</a> <a href=\"https://postgr.es/c/0f275b0ee\">§</a></p>\n<p>Conflicts could be missed when using bitmap heap scans, when using GIN indexes, and when examining an initially-empty btree index. All these cases could lead to serializability failures due to improperly allowing conflicting transactions to commit.</p>", "text": "Fix race conditions in conflict detection for SERIALIZABLE isolation mode (Thomas Munro) § § § Conflicts could be missed when using bitmap heap scans, when using GIN indexes, and when examining an initially-empty btree index. All these cases could lead to serializability failures due to improperly allowing conflicting transactions to commit.", "title": "Fix race conditions in conflict detection for SERIALIZABLE isolation mode", "commits": ["0f275b0ee", "ab265e985", "d34aa0a2f"], "section": "Changes", "category": "bugfix", "source_url": "/docs/release/15.4/#id-1.11.6.21.5", "source_hash": "6632c6756a1cdd87829200993a0605aac000bd84860616602344e724a4e6d840", "section_path": ["Changes"], "commit_groups": [["0048c3b51", "0cb1fb2c9", "0f275b0ee", "8f705d7b9", "ae6d536ed", "f9b7fc651", "fe88497b4"], ["12529028a", "126552c85", "13f127800", "255a925d3", "d34aa0a2f", "fb663f387", "fc1547384"], ["17b8887c2", "3f7d3a77e", "814f3c8e4", "8976ac5c5", "ab265e985", "bcc93a389", "d03d9a261"]], "identity_text": "Fix race conditions in conflict detection for SERIALIZABLE isolation mode (Thomas Munro) Conflicts could be missed when using bitmap heap scans, when using GIN indexes, and when examining an initially-empty btree index. All these cases could lead to serializability failures due to improperly allowing conflicting transactions to commit.", "commit_aliases": ["0048c3b51", "0cb1fb2c9", "0f275b0ee", "12529028a", "126552c85", "13f127800", "17b8887c2", "255a925d3", "3f7d3a77e", "814f3c8e4", "8976ac5c5", "8f705d7b9", "ab265e985", "ae6d536ed", "bcc93a389", "d03d9a261", "d34aa0a2f", "f9b7fc651", "fb663f387", "fc1547384", "fe88497b4"], "source_commits": ["0f275b0ee", "ab265e985", "d34aa0a2f"], "source_entry_id": "15.4/changes/014", "db_id": "8f755eef006413880f27be47c33eb2b9", "patch_ids": ["33733f0d75b3592e3c72db8cc1874a87", "a83ca373b807defc3810c75de4fb1436", "abb352b1f2a1704bd847ce368df8cadc"], "statement_hash": "be3e194e578eb6aabccabec8d8d2cc1b681792086b817c48b2add704b6424311", "relations": [{"rule": 2, "type": "equivalent", "target": "78e330af3d5c6df297cc91602fad1de7", "evidence": {"same_day": true, "patch_ids": ["33733f0d75b3592e3c72db8cc1874a87", "a83ca373b807defc3810c75de4fb1436", "abb352b1f2a1704bd847ce368df8cadc"], "statement_hash": "be3e194e578eb6aabccabec8d8d2cc1b681792086b817c48b2add704b6424311"}}, {"rule": 2, "type": "equivalent", "target": "b5671ea6a0618a2828055dbb8a059ad7", "evidence": {"same_day": true, "patch_ids": ["33733f0d75b3592e3c72db8cc1874a87", "a83ca373b807defc3810c75de4fb1436", "abb352b1f2a1704bd847ce368df8cadc"], "statement_hash": "be3e194e578eb6aabccabec8d8d2cc1b681792086b817c48b2add704b6424311"}}, {"rule": 2, "type": "equivalent", "target": "d6fd42d045943f958886f18f139278ba", "evidence": {"same_day": true, "patch_ids": ["33733f0d75b3592e3c72db8cc1874a87", "a83ca373b807defc3810c75de4fb1436", "abb352b1f2a1704bd847ce368df8cadc"], "statement_hash": "be3e194e578eb6aabccabec8d8d2cc1b681792086b817c48b2add704b6424311"}}, {"rule": 2, "type": "equivalent", "target": "ee2d689288b7738398bde54d793a757b", "evidence": {"same_day": true, "patch_ids": ["33733f0d75b3592e3c72db8cc1874a87", "a83ca373b807defc3810c75de4fb1436", "abb352b1f2a1704bd847ce368df8cadc"], "statement_hash": "be3e194e578eb6aabccabec8d8d2cc1b681792086b817c48b2add704b6424311"}}], "version": "15.4", "category_label": "Bug fixes", "also_in": [], "variants": [], "related_changes": [{"db_id": "b5671ea6a0618a2828055dbb8a059ad7", "kind": "equivalent", "version": "14.9", "label": "14.9", "title": "Fix race conditions in conflict detection for SERIALIZABLE isolation mode", "evidence": {"same_day": true, "patch_ids": ["33733f0d75b3592e3c72db8cc1874a87", "a83ca373b807defc3810c75de4fb1436", "abb352b1f2a1704bd847ce368df8cadc"], "statement_hash": "be3e194e578eb6aabccabec8d8d2cc1b681792086b817c48b2add704b6424311"}, "url": "/docs/compare/?release=14.9#14.9-3183d0ef06d07cfd", "source_url": "/docs/release/14.9/#id-1.11.6.21.5"}, {"db_id": "78e330af3d5c6df297cc91602fad1de7", "kind": "equivalent", "version": "13.12", "label": "13.12", "title": "Fix race conditions in conflict detection for SERIALIZABLE isolation mode", "evidence": {"same_day": true, "patch_ids": ["33733f0d75b3592e3c72db8cc1874a87", "a83ca373b807defc3810c75de4fb1436", "abb352b1f2a1704bd847ce368df8cadc"], "statement_hash": "be3e194e578eb6aabccabec8d8d2cc1b681792086b817c48b2add704b6424311"}, "url": "/docs/compare/?release=13.12#13.12-80a7769d2d0c9b98", "source_url": "/docs/release/13.12/#id-1.11.6.17.5"}, {"db_id": "d6fd42d045943f958886f18f139278ba", "kind": "equivalent", "version": "12.16", "label": "12.16", "title": "Fix race conditions in conflict detection for SERIALIZABLE isolation mode", "evidence": {"same_day": true, "patch_ids": ["33733f0d75b3592e3c72db8cc1874a87", "a83ca373b807defc3810c75de4fb1436", "abb352b1f2a1704bd847ce368df8cadc"], "statement_hash": "be3e194e578eb6aabccabec8d8d2cc1b681792086b817c48b2add704b6424311"}, "url": "/docs/compare/?release=12.16#12.16-43dad0cd22873c15", "source_url": "/docs/release/12.16/#id-1.11.6.12.5"}, {"db_id": "ee2d689288b7738398bde54d793a757b", "kind": "equivalent", "version": "11.21", "label": "11.21", "title": "Fix race conditions in conflict detection for SERIALIZABLE isolation mode", "evidence": {"same_day": true, "patch_ids": ["33733f0d75b3592e3c72db8cc1874a87", "a83ca373b807defc3810c75de4fb1436", "abb352b1f2a1704bd847ce368df8cadc"], "statement_hash": "be3e194e578eb6aabccabec8d8d2cc1b681792086b817c48b2add704b6424311"}, "url": "/docs/compare/?release=11.21#11.21-9d2742618d728b77", "source_url": "/docs/release/11.21/#id-1.11.6.6.6"}]}, {"id": "15.4-c88df69079c17939", "cves": [], "html": "<p>Fix misbehavior of EvalPlanQual checks with inherited or partitioned target tables (Tom Lane) <a href=\"https://postgr.es/c/4729d1e8a\">§</a></p>\n<p>This oversight could lead to update or delete actions in <code>READ COMMITTED</code> isolation mode getting performed when they should have been skipped because of a conflicting concurrent update.</p>", "text": "Fix misbehavior of EvalPlanQual checks with inherited or partitioned target tables (Tom Lane) § This oversight could lead to update or delete actions in READ COMMITTED isolation mode getting performed when they should have been skipped because of a conflicting concurrent update.", "title": "Fix misbehavior of EvalPlanQual checks with inherited or partitioned target tables", "commits": ["4729d1e8a"], "section": "Changes", "category": "bugfix", "source_url": "/docs/release/15.4/#id-1.11.6.21.5", "source_hash": "0228a1cbb5db7de172bb31bd8061279759fe9c9c7a8ec5c4a7c38fe838b6f0b1", "section_path": ["Changes"], "commit_groups": [["4729d1e8a", "70b42f279", "f8320cc72"]], "identity_text": "Fix misbehavior of EvalPlanQual checks with inherited or partitioned target tables (Tom Lane) This oversight could lead to update or delete actions in READ COMMITTED isolation mode getting performed when they should have been skipped because of a conflicting concurrent update.", "commit_aliases": ["4729d1e8a", "70b42f279", "f8320cc72"], "source_commits": ["4729d1e8a"], "source_entry_id": "15.4/changes/015", "db_id": "761a5282cc19ba233f531b991de45209", "patch_ids": ["b50c35f95954ec716e75e57e80f8ec90"], "statement_hash": "9d3a7dad16d098f233902e0836602ec6df41e3f25bf6a11509775ea2b40dd9fe", "relations": [{"rule": 2, "type": "equivalent", "target": "bfff5b7b59d460d93874c0eecd921592", "evidence": {"same_day": true, "patch_ids": ["b50c35f95954ec716e75e57e80f8ec90"], "statement_hash": "9d3a7dad16d098f233902e0836602ec6df41e3f25bf6a11509775ea2b40dd9fe"}}], "version": "15.4", "category_label": "Bug fixes", "also_in": [], "variants": [], "related_changes": [{"db_id": "bfff5b7b59d460d93874c0eecd921592", "kind": "equivalent", "version": "14.9", "label": "14.9", "title": "Fix misbehavior of EvalPlanQual checks with inherited or partitioned target tables", "evidence": {"same_day": true, "patch_ids": ["b50c35f95954ec716e75e57e80f8ec90"], "statement_hash": "9d3a7dad16d098f233902e0836602ec6df41e3f25bf6a11509775ea2b40dd9fe"}, "url": "/docs/compare/?release=14.9#14.9-bfb22d390eb1ad2a", "source_url": "/docs/release/14.9/#id-1.11.6.21.5"}]}, {"id": "15.4-96de7f01a81340a9", "cves": [], "html": "<p>Fix hash join with an inner-side hash key that contains Params coming from an outer nested loop (Tom Lane) <a href=\"https://postgr.es/c/c2f974fff\">§</a></p>\n<p>When rescanning the join after the values of such Params have changed, we must rebuild the hash table, but neglected to do so. This could result in missing join output rows.</p>", "text": "Fix hash join with an inner-side hash key that contains Params coming from an outer nested loop (Tom Lane) § When rescanning the join after the values of such Params have changed, we must rebuild the hash table, but neglected to do so. This could result in missing join output rows.", "title": "Fix hash join with an inner-side hash key that contains Params coming from an outer nested loop", "commits": ["c2f974fff"], "section": "Changes", "category": "bugfix", "source_url": "/docs/release/15.4/#id-1.11.6.21.5", "source_hash": "ef30a09cbace073323e856e781f180ee76fe517acb66929811e2d34506603543", "section_path": ["Changes"], "commit_groups": [["2f97105e9", "45392626c", "9529b1eb1", "c2f974fff", "d911dce14"]], "identity_text": "Fix hash join with an inner-side hash key that contains Params coming from an outer nested loop (Tom Lane) When rescanning the join after the values of such Params have changed, we must rebuild the hash table, but neglected to do so. This could result in missing join output rows.", "commit_aliases": ["2f97105e9", "45392626c", "9529b1eb1", "c2f974fff", "d911dce14"], "source_commits": ["c2f974fff"], "source_entry_id": "15.4/changes/016", "db_id": "77d0a5e57043f62f908737de1bfd2073", "patch_ids": ["14fa05caf16db0ec9c1b252ed430f545"], "statement_hash": "fa9d6484ab97286bb7e19be3ef7103d3261a1747e010cadcf44047fb5d2806ee", "relations": [{"rule": 2, "type": "equivalent", "target": "131d6bcee186ed0dc03d13933d4440c2", "evidence": {"same_day": true, "patch_ids": ["14fa05caf16db0ec9c1b252ed430f545"], "statement_hash": "fa9d6484ab97286bb7e19be3ef7103d3261a1747e010cadcf44047fb5d2806ee"}}, {"rule": 2, "type": "equivalent", "target": "bf698cb034fdc37f684d81bb251c3e9c", "evidence": {"same_day": true, "patch_ids": ["14fa05caf16db0ec9c1b252ed430f545"], "statement_hash": "fa9d6484ab97286bb7e19be3ef7103d3261a1747e010cadcf44047fb5d2806ee"}}, {"rule": 2, "type": "equivalent", "target": "d8f1f52cd378b80d13c186ca2217e0f6", "evidence": {"same_day": true, "patch_ids": ["14fa05caf16db0ec9c1b252ed430f545"], "statement_hash": "fa9d6484ab97286bb7e19be3ef7103d3261a1747e010cadcf44047fb5d2806ee"}}], "version": "15.4", "category_label": "Bug fixes", "also_in": [], "variants": [], "related_changes": [{"db_id": "d8f1f52cd378b80d13c186ca2217e0f6", "kind": "equivalent", "version": "14.9", "label": "14.9", "title": "Fix hash join with an inner-side hash key that contains Params coming from an outer nested loop", "evidence": {"same_day": true, "patch_ids": ["14fa05caf16db0ec9c1b252ed430f545"], "statement_hash": "fa9d6484ab97286bb7e19be3ef7103d3261a1747e010cadcf44047fb5d2806ee"}, "url": "/docs/compare/?release=14.9#14.9-41e55e410bf1bac1", "source_url": "/docs/release/14.9/#id-1.11.6.21.5"}, {"db_id": "bf698cb034fdc37f684d81bb251c3e9c", "kind": "equivalent", "version": "13.12", "label": "13.12", "title": "Fix hash join with an inner-side hash key that contains Params coming from an outer nested loop", "evidence": {"same_day": true, "patch_ids": ["14fa05caf16db0ec9c1b252ed430f545"], "statement_hash": "fa9d6484ab97286bb7e19be3ef7103d3261a1747e010cadcf44047fb5d2806ee"}, "url": "/docs/compare/?release=13.12#13.12-b4dd111f12242718", "source_url": "/docs/release/13.12/#id-1.11.6.17.5"}, {"db_id": "131d6bcee186ed0dc03d13933d4440c2", "kind": "equivalent", "version": "12.16", "label": "12.16", "title": "Fix hash join with an inner-side hash key that contains Params coming from an outer nested loop", "evidence": {"same_day": true, "patch_ids": ["14fa05caf16db0ec9c1b252ed430f545"], "statement_hash": "fa9d6484ab97286bb7e19be3ef7103d3261a1747e010cadcf44047fb5d2806ee"}, "url": "/docs/compare/?release=12.16#12.16-bba531bb619e20c7", "source_url": "/docs/release/12.16/#id-1.11.6.12.5"}]}, {"id": "15.4-3f973053e0f3679a", "cves": [], "html": "<p>Fix intermittent failures when trying to update a field of a composite column (Tom Lane) <a href=\"https://postgr.es/c/cc8cca3c2\">§</a></p>\n<p>If the overall value of the composite column is wide enough to require out-of-line toasting, then an unluckily-timed cache flush could cause errors or server crashes.</p>", "text": "Fix intermittent failures when trying to update a field of a composite column (Tom Lane) § If the overall value of the composite column is wide enough to require out-of-line toasting, then an unluckily-timed cache flush could cause errors or server crashes.", "title": "Fix intermittent failures when trying to update a field of a composite column", "commits": ["cc8cca3c2"], "section": "Changes", "category": "bugfix", "source_url": "/docs/release/15.4/#id-1.11.6.21.5", "source_hash": "f7fd56e3c1b97815424f2c997dceaf23c7fcc8a78f8c115d917a9140bf2cd14e", "section_path": ["Changes"], "commit_groups": [["0789b82a9", "43af714de", "53b93e853", "7f11b7a9c", "cc8cca3c2", "d0ab203bc"]], "identity_text": "Fix intermittent failures when trying to update a field of a composite column (Tom Lane) If the overall value of the composite column is wide enough to require out-of-line toasting, then an unluckily-timed cache flush could cause errors or server crashes.", "commit_aliases": ["0789b82a9", "43af714de", "53b93e853", "7f11b7a9c", "cc8cca3c2", "d0ab203bc"], "source_commits": ["cc8cca3c2"], "source_entry_id": "15.4/changes/017", "db_id": "14da412cc36644c34b37e159cc8c0933", "patch_ids": ["778dc8501378e28fd91f069a6bf948c9"], "statement_hash": "e8e66f7e93bec2d7b96c0cfc4a7f4b0cb538cd08618dd562ad29563a5ffce33e", "relations": [{"rule": 2, "type": "equivalent", "target": "581515a46fc41884212da9f328236b48", "evidence": {"same_day": true, "patch_ids": ["778dc8501378e28fd91f069a6bf948c9"], "statement_hash": "e8e66f7e93bec2d7b96c0cfc4a7f4b0cb538cd08618dd562ad29563a5ffce33e"}}, {"rule": 2, "type": "equivalent", "target": "b50182df79de87c30571da4ae8fa33a8", "evidence": {"same_day": true, "patch_ids": ["778dc8501378e28fd91f069a6bf948c9"], "statement_hash": "e8e66f7e93bec2d7b96c0cfc4a7f4b0cb538cd08618dd562ad29563a5ffce33e"}}, {"rule": 2, "type": "equivalent", "target": "ddcffbccac79f08acd7af9c6ff9332fe", "evidence": {"same_day": true, "patch_ids": ["778dc8501378e28fd91f069a6bf948c9"], "statement_hash": "e8e66f7e93bec2d7b96c0cfc4a7f4b0cb538cd08618dd562ad29563a5ffce33e"}}, {"rule": 2, "type": "equivalent", "target": "f33a929bb695c66a0bacc15be562f9bd", "evidence": {"same_day": true, "patch_ids": ["778dc8501378e28fd91f069a6bf948c9"], "statement_hash": "e8e66f7e93bec2d7b96c0cfc4a7f4b0cb538cd08618dd562ad29563a5ffce33e"}}], "version": "15.4", "category_label": "Bug fixes", "also_in": [], "variants": [], "related_changes": [{"db_id": "581515a46fc41884212da9f328236b48", "kind": "equivalent", "version": "14.9", "label": "14.9", "title": "Fix intermittent failures when trying to update a field of a composite column", "evidence": {"same_day": true, "patch_ids": ["778dc8501378e28fd91f069a6bf948c9"], "statement_hash": "e8e66f7e93bec2d7b96c0cfc4a7f4b0cb538cd08618dd562ad29563a5ffce33e"}, "url": "/docs/compare/?release=14.9#14.9-53784fbdda01552e", "source_url": "/docs/release/14.9/#id-1.11.6.21.5"}, {"db_id": "f33a929bb695c66a0bacc15be562f9bd", "kind": "equivalent", "version": "13.12", "label": "13.12", "title": "Fix intermittent failures when trying to update a field of a composite column", "evidence": {"same_day": true, "patch_ids": ["778dc8501378e28fd91f069a6bf948c9"], "statement_hash": "e8e66f7e93bec2d7b96c0cfc4a7f4b0cb538cd08618dd562ad29563a5ffce33e"}, "url": "/docs/compare/?release=13.12#13.12-a84646baeafa1234", "source_url": "/docs/release/13.12/#id-1.11.6.17.5"}, {"db_id": "b50182df79de87c30571da4ae8fa33a8", "kind": "equivalent", "version": "12.16", "label": "12.16", "title": "Fix intermittent failures when trying to update a field of a composite column", "evidence": {"same_day": true, "patch_ids": ["778dc8501378e28fd91f069a6bf948c9"], "statement_hash": "e8e66f7e93bec2d7b96c0cfc4a7f4b0cb538cd08618dd562ad29563a5ffce33e"}, "url": "/docs/compare/?release=12.16#12.16-14349317dfb71dc6", "source_url": "/docs/release/12.16/#id-1.11.6.12.5"}, {"db_id": "ddcffbccac79f08acd7af9c6ff9332fe", "kind": "equivalent", "version": "11.21", "label": "11.21", "title": "Fix intermittent failures when trying to update a field of a composite column", "evidence": {"same_day": true, "patch_ids": ["778dc8501378e28fd91f069a6bf948c9"], "statement_hash": "e8e66f7e93bec2d7b96c0cfc4a7f4b0cb538cd08618dd562ad29563a5ffce33e"}, "url": "/docs/compare/?release=11.21#11.21-aaea1191a7c0aa5b", "source_url": "/docs/release/11.21/#id-1.11.6.6.6"}]}, {"id": "15.4-9f325dd88f8ec86c", "cves": [], "html": "<p>Prevent query-lifespan memory leaks in some <code>UPDATE</code> queries with triggers (Tomas Vondra) <a href=\"https://postgr.es/c/ee87f8b63\">§</a> <a href=\"https://postgr.es/c/7ae4e7868\">§</a></p>", "text": "Prevent query-lifespan memory leaks in some UPDATE queries with triggers (Tomas Vondra) § §", "title": "Prevent query-lifespan memory leaks in some UPDATE queries with triggers", "commits": ["7ae4e7868", "ee87f8b63"], "section": "Changes", "category": "bugfix", "source_url": "/docs/release/15.4/#id-1.11.6.21.5", "source_hash": "4664433fc1c2c1f7dec9779062ef220774d1d46663c3eb4c029e557ee06e3cdb", "section_path": ["Changes"], "commit_groups": [["260dbf19a", "7ae4e7868", "984c23f6f", "9cf85093b", "ce5aaea8c"], ["54e1b8587", "7f528e96c", "c504aa857", "ee87f8b63", "f24523672"]], "identity_text": "Prevent query-lifespan memory leaks in some UPDATE queries with triggers (Tomas Vondra)", "commit_aliases": ["260dbf19a", "54e1b8587", "7ae4e7868", "7f528e96c", "984c23f6f", "9cf85093b", "c504aa857", "ce5aaea8c", "ee87f8b63", "f24523672"], "source_commits": ["7ae4e7868", "ee87f8b63"], "source_entry_id": "15.4/changes/018", "db_id": "9b765c59a36433ec54c730804aebabfa", "patch_ids": ["3972da03a018ceba4162ec332f283a96", "a9de48ea9b0829de583cda8a9704ef43"], "statement_hash": "14ffd2c0aafc242ca262a666ad5e329b4531d70e3adfb7e05a9c2c5949c1cf3c", "relations": [{"rule": 2, "type": "equivalent", "target": "8367f3434c1e5eac676255b7d53d64cc", "evidence": {"same_day": true, "patch_ids": ["3972da03a018ceba4162ec332f283a96", "a9de48ea9b0829de583cda8a9704ef43"], "statement_hash": "14ffd2c0aafc242ca262a666ad5e329b4531d70e3adfb7e05a9c2c5949c1cf3c"}}, {"rule": 2, "type": "equivalent", "target": "c44f76cf2db3a40525fc001d224f72a2", "evidence": {"same_day": true, "patch_ids": ["3972da03a018ceba4162ec332f283a96", "a9de48ea9b0829de583cda8a9704ef43"], "statement_hash": "14ffd2c0aafc242ca262a666ad5e329b4531d70e3adfb7e05a9c2c5949c1cf3c"}}, {"rule": 2, "type": "equivalent", "target": "d221ce3bd7c5a5d8d69121ab1014f849", "evidence": {"same_day": true, "patch_ids": ["3972da03a018ceba4162ec332f283a96", "a9de48ea9b0829de583cda8a9704ef43"], "statement_hash": "14ffd2c0aafc242ca262a666ad5e329b4531d70e3adfb7e05a9c2c5949c1cf3c"}}], "version": "15.4", "category_label": "Bug fixes", "also_in": [], "variants": [], "related_changes": [{"db_id": "d221ce3bd7c5a5d8d69121ab1014f849", "kind": "equivalent", "version": "14.9", "label": "14.9", "title": "Prevent query-lifespan memory leaks in some UPDATE queries with triggers", "evidence": {"same_day": true, "patch_ids": ["3972da03a018ceba4162ec332f283a96", "a9de48ea9b0829de583cda8a9704ef43"], "statement_hash": "14ffd2c0aafc242ca262a666ad5e329b4531d70e3adfb7e05a9c2c5949c1cf3c"}, "url": "/docs/compare/?release=14.9#14.9-9ce4fe9a9efbfc12", "source_url": "/docs/release/14.9/#id-1.11.6.21.5"}, {"db_id": "c44f76cf2db3a40525fc001d224f72a2", "kind": "equivalent", "version": "13.12", "label": "13.12", "title": "Prevent query-lifespan memory leaks in some UPDATE queries with triggers", "evidence": {"same_day": true, "patch_ids": ["3972da03a018ceba4162ec332f283a96", "a9de48ea9b0829de583cda8a9704ef43"], "statement_hash": "14ffd2c0aafc242ca262a666ad5e329b4531d70e3adfb7e05a9c2c5949c1cf3c"}, "url": "/docs/compare/?release=13.12#13.12-b7f6bd606b71f8e4", "source_url": "/docs/release/13.12/#id-1.11.6.17.5"}, {"db_id": "8367f3434c1e5eac676255b7d53d64cc", "kind": "equivalent", "version": "12.16", "label": "12.16", "title": "Prevent query-lifespan memory leaks in some UPDATE queries with triggers", "evidence": {"same_day": true, "patch_ids": ["3972da03a018ceba4162ec332f283a96", "a9de48ea9b0829de583cda8a9704ef43"], "statement_hash": "14ffd2c0aafc242ca262a666ad5e329b4531d70e3adfb7e05a9c2c5949c1cf3c"}, "url": "/docs/compare/?release=12.16#12.16-00a595ab3aae09a2", "source_url": "/docs/release/12.16/#id-1.11.6.12.5"}]}, {"id": "15.4-78d6ce12e34a34b8", "cves": [], "html": "<p>Prevent query-lifespan memory leaks when an Incremental Sort plan node is rescanned (James Coleman, Laurenz Albe, Tom Lane) <a href=\"https://postgr.es/c/0c5fe4ff6\">§</a></p>", "text": "Prevent query-lifespan memory leaks when an Incremental Sort plan node is rescanned (James Coleman, Laurenz Albe, Tom Lane) §", "title": "Prevent query-lifespan memory leaks when an Incremental Sort plan node is rescanned", "commits": ["0c5fe4ff6"], "section": "Changes", "category": "bugfix", "source_url": "/docs/release/15.4/#id-1.11.6.21.5", "source_hash": "4eee196e4cfed47be21cf10149e4b27fb692f42d380e2b3c12a3de9a7dc361c9", "section_path": ["Changes"], "commit_groups": [["0c5fe4ff6", "3ce761d5c", "98640f960", "9ae7b5d1f", "c1affa38c"]], "identity_text": "Prevent query-lifespan memory leaks when an Incremental Sort plan node is rescanned (James Coleman, Laurenz Albe, Tom Lane)", "commit_aliases": ["0c5fe4ff6", "3ce761d5c", "98640f960", "9ae7b5d1f", "c1affa38c"], "source_commits": ["0c5fe4ff6"], "source_entry_id": "15.4/changes/019", "db_id": "9cb975297879c52de850e98714676468", "patch_ids": ["331e004ba7f5611f51b9b6c9ceda4fa5"], "statement_hash": "67649ccfe74cfbb9b52a7504941492699769d139e86cfaaf1088370d670cc4f7", "relations": [{"rule": 2, "type": "equivalent", "target": "1c87e2da26db592bd05ba42f1799f848", "evidence": {"same_day": true, "patch_ids": ["331e004ba7f5611f51b9b6c9ceda4fa5"], "statement_hash": "67649ccfe74cfbb9b52a7504941492699769d139e86cfaaf1088370d670cc4f7"}}, {"rule": 2, "type": "equivalent", "target": "cd71e892e4af373172a8cd94cbff78cf", "evidence": {"same_day": true, "patch_ids": ["331e004ba7f5611f51b9b6c9ceda4fa5"], "statement_hash": "67649ccfe74cfbb9b52a7504941492699769d139e86cfaaf1088370d670cc4f7"}}], "version": "15.4", "category_label": "Bug fixes", "also_in": [], "variants": [], "related_changes": [{"db_id": "1c87e2da26db592bd05ba42f1799f848", "kind": "equivalent", "version": "14.9", "label": "14.9", "title": "Prevent query-lifespan memory leaks when an Incremental Sort plan node is rescanned", "evidence": {"same_day": true, "patch_ids": ["331e004ba7f5611f51b9b6c9ceda4fa5"], "statement_hash": "67649ccfe74cfbb9b52a7504941492699769d139e86cfaaf1088370d670cc4f7"}, "url": "/docs/compare/?release=14.9#14.9-06033bf90d2c90cc", "source_url": "/docs/release/14.9/#id-1.11.6.21.5"}, {"db_id": "cd71e892e4af373172a8cd94cbff78cf", "kind": "equivalent", "version": "13.12", "label": "13.12", "title": "Prevent query-lifespan memory leaks when an Incremental Sort plan node is rescanned", "evidence": {"same_day": true, "patch_ids": ["331e004ba7f5611f51b9b6c9ceda4fa5"], "statement_hash": "67649ccfe74cfbb9b52a7504941492699769d139e86cfaaf1088370d670cc4f7"}, "url": "/docs/compare/?release=13.12#13.12-f73d60eef865603c", "source_url": "/docs/release/13.12/#id-1.11.6.17.5"}]}, {"id": "15.4-09c8cad672dfe4dc", "cves": [], "html": "<p>Accept fractional seconds in the input to <code>jsonpath</code>'s <code>datetime()</code> method (Tom Lane) <a href=\"https://postgr.es/c/bd590d1fe\">§</a></p>", "text": "Accept fractional seconds in the input to jsonpath's datetime() method (Tom Lane) §", "title": "Accept fractional seconds in the input to jsonpath's datetime() method", "commits": ["bd590d1fe"], "section": "Changes", "category": "improvement", "source_url": "/docs/release/15.4/#id-1.11.6.21.5", "source_hash": "a0e004bbe1b6c0de15f96bc8f5f156c566af4cbc7c4184efa5c904b8137bf515", "section_path": ["Changes"], "commit_groups": [["5eaa05f63", "6f23b5f74", "7398e2722", "bd590d1fe"]], "identity_text": "Accept fractional seconds in the input to jsonpath's datetime() method (Tom Lane)", "commit_aliases": ["5eaa05f63", "6f23b5f74", "7398e2722", "bd590d1fe"], "source_commits": ["bd590d1fe"], "source_entry_id": "15.4/changes/020", "db_id": "bf2aa8a9cd386e1dd40fc1babdb8be63", "patch_ids": ["abec4bbd0370ce91443af1234ef3d034"], "statement_hash": "776df4292523025b401399a9b7bee4a5bb7809a72caf626ab469bb8bf1e9abc0", "relations": [{"rule": 2, "type": "equivalent", "target": "0391c164e732c59320ef6d457c47be65", "evidence": {"same_day": true, "patch_ids": ["abec4bbd0370ce91443af1234ef3d034"], "statement_hash": "776df4292523025b401399a9b7bee4a5bb7809a72caf626ab469bb8bf1e9abc0"}}, {"rule": 2, "type": "equivalent", "target": "69be3f568166330e95aba0ef86371989", "evidence": {"same_day": true, "patch_ids": ["abec4bbd0370ce91443af1234ef3d034"], "statement_hash": "776df4292523025b401399a9b7bee4a5bb7809a72caf626ab469bb8bf1e9abc0"}}], "version": "15.4", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": [{"db_id": "69be3f568166330e95aba0ef86371989", "kind": "equivalent", "version": "14.9", "label": "14.9", "title": "Accept fractional seconds in the input to jsonpath's datetime() method", "evidence": {"same_day": true, "patch_ids": ["abec4bbd0370ce91443af1234ef3d034"], "statement_hash": "776df4292523025b401399a9b7bee4a5bb7809a72caf626ab469bb8bf1e9abc0"}, "url": "/docs/compare/?release=14.9#14.9-0458106e2a11a401", "source_url": "/docs/release/14.9/#id-1.11.6.21.5"}, {"db_id": "0391c164e732c59320ef6d457c47be65", "kind": "equivalent", "version": "13.12", "label": "13.12", "title": "Accept fractional seconds in the input to jsonpath's datetime() method", "evidence": {"same_day": true, "patch_ids": ["abec4bbd0370ce91443af1234ef3d034"], "statement_hash": "776df4292523025b401399a9b7bee4a5bb7809a72caf626ab469bb8bf1e9abc0"}, "url": "/docs/compare/?release=13.12#13.12-4cc3dd9fa65ce2aa", "source_url": "/docs/release/13.12/#id-1.11.6.17.5"}]}, {"id": "15.4-d6d59320737125d6", "cves": [], "html": "<p>Prevent stack-overflow crashes with very complex text search patterns (Tom Lane) <a href=\"https://postgr.es/c/a77d90171\">§</a></p>", "text": "Prevent stack-overflow crashes with very complex text search patterns (Tom Lane) §", "title": "Prevent stack-overflow crashes with very complex text search patterns", "commits": ["a77d90171"], "section": "Changes", "category": "bugfix", "source_url": "/docs/release/15.4/#id-1.11.6.21.5", "source_hash": "760cef19f3d6ab7e6943120ffae0fe83210373c63fc69064b5fe1f4914855a8a", "section_path": ["Changes"], "commit_groups": [["3b4580f5c", "4c61afa47", "691594acd", "a77d90171", "b6ab18a99", "c7f33a197"]], "identity_text": "Prevent stack-overflow crashes with very complex text search patterns (Tom Lane)", "commit_aliases": ["3b4580f5c", "4c61afa47", "691594acd", "a77d90171", "b6ab18a99", "c7f33a197"], "source_commits": ["a77d90171"], "source_entry_id": "15.4/changes/021", "db_id": "2e75ce2dc2c396b9760dbfd653ed53ba", "patch_ids": ["cc7d7f2b6488db8ad5766f488c9d45a6"], "statement_hash": "dda9b0426bfaa92a02734a7a77dbdc263cc5b869cc8cc20f05f3a320a0fa3fa0", "relations": [{"rule": 2, "type": "equivalent", "target": "83139ba83e7ca914e14fb807404b1a8d", "evidence": {"same_day": true, "patch_ids": ["cc7d7f2b6488db8ad5766f488c9d45a6"], "statement_hash": "dda9b0426bfaa92a02734a7a77dbdc263cc5b869cc8cc20f05f3a320a0fa3fa0"}}, {"rule": 2, "type": "equivalent", "target": "8331baa0174c66a0e5375f9f9beee432", "evidence": {"same_day": true, "patch_ids": ["cc7d7f2b6488db8ad5766f488c9d45a6"], "statement_hash": "dda9b0426bfaa92a02734a7a77dbdc263cc5b869cc8cc20f05f3a320a0fa3fa0"}}, {"rule": 2, "type": "equivalent", "target": "c04476adb0206ac5adaca2039192ea21", "evidence": {"same_day": true, "patch_ids": ["cc7d7f2b6488db8ad5766f488c9d45a6"], "statement_hash": "dda9b0426bfaa92a02734a7a77dbdc263cc5b869cc8cc20f05f3a320a0fa3fa0"}}, {"rule": 2, "type": "equivalent", "target": "f462fd6e8ba0be366e12b98a5976117c", "evidence": {"same_day": true, "patch_ids": ["cc7d7f2b6488db8ad5766f488c9d45a6"], "statement_hash": "dda9b0426bfaa92a02734a7a77dbdc263cc5b869cc8cc20f05f3a320a0fa3fa0"}}], "version": "15.4", "category_label": "Bug fixes", "also_in": [], "variants": [], "related_changes": [{"db_id": "83139ba83e7ca914e14fb807404b1a8d", "kind": "equivalent", "version": "14.9", "label": "14.9", "title": "Prevent stack-overflow crashes with very complex text search patterns", "evidence": {"same_day": true, "patch_ids": ["cc7d7f2b6488db8ad5766f488c9d45a6"], "statement_hash": "dda9b0426bfaa92a02734a7a77dbdc263cc5b869cc8cc20f05f3a320a0fa3fa0"}, "url": "/docs/compare/?release=14.9#14.9-2d5b95a9be945d76", "source_url": "/docs/release/14.9/#id-1.11.6.21.5"}, {"db_id": "c04476adb0206ac5adaca2039192ea21", "kind": "equivalent", "version": "13.12", "label": "13.12", "title": "Prevent stack-overflow crashes with very complex text search patterns", "evidence": {"same_day": true, "patch_ids": ["cc7d7f2b6488db8ad5766f488c9d45a6"], "statement_hash": "dda9b0426bfaa92a02734a7a77dbdc263cc5b869cc8cc20f05f3a320a0fa3fa0"}, "url": "/docs/compare/?release=13.12#13.12-33542d44241f9bed", "source_url": "/docs/release/13.12/#id-1.11.6.17.5"}, {"db_id": "8331baa0174c66a0e5375f9f9beee432", "kind": "equivalent", "version": "12.16", "label": "12.16", "title": "Prevent stack-overflow crashes with very complex text search patterns", "evidence": {"same_day": true, "patch_ids": ["cc7d7f2b6488db8ad5766f488c9d45a6"], "statement_hash": "dda9b0426bfaa92a02734a7a77dbdc263cc5b869cc8cc20f05f3a320a0fa3fa0"}, "url": "/docs/compare/?release=12.16#12.16-8115dcf6abfb9447", "source_url": "/docs/release/12.16/#id-1.11.6.12.5"}, {"db_id": "f462fd6e8ba0be366e12b98a5976117c", "kind": "equivalent", "version": "11.21", "label": "11.21", "title": "Prevent stack-overflow crashes with very complex text search patterns", "evidence": {"same_day": true, "patch_ids": ["cc7d7f2b6488db8ad5766f488c9d45a6"], "statement_hash": "dda9b0426bfaa92a02734a7a77dbdc263cc5b869cc8cc20f05f3a320a0fa3fa0"}, "url": "/docs/compare/?release=11.21#11.21-e9c2f70aa81e8ef0", "source_url": "/docs/release/11.21/#id-1.11.6.6.6"}]}, {"id": "15.4-7454c50b73348dca", "cves": [], "html": "<p>Allow tokens up to 10240 bytes long in <code>pg_hba.conf</code> and <code>pg_ident.conf</code> (Tom Lane) <a href=\"https://postgr.es/c/313ceda2f\">§</a></p>\n<p>The previous limit of 256 bytes has been found insufficient for some use-cases.</p>", "text": "Allow tokens up to 10240 bytes long in pg_hba.conf and pg_ident.conf (Tom Lane) § The previous limit of 256 bytes has been found insufficient for some use-cases.", "title": "Allow tokens up to 10240 bytes long in pg_hba.conf and pg_ident.conf", "commits": ["313ceda2f"], "section": "Changes", "category": "improvement", "source_url": "/docs/release/15.4/#id-1.11.6.21.5", "source_hash": "bf8b29adb70fc465d256accd01744dffd4140225668eaff62786914f7d9b51f0", "section_path": ["Changes"], "commit_groups": [["0660f74e8", "1d031ad54", "288b4288c", "313ceda2f", "341996248", "38df84c65", "de3f0e3fe"]], "identity_text": "Allow tokens up to 10240 bytes long in pg_hba.conf and pg_ident.conf (Tom Lane) The previous limit of 256 bytes has been found insufficient for some use-cases.", "commit_aliases": ["0660f74e8", "1d031ad54", "288b4288c", "313ceda2f", "341996248", "38df84c65", "de3f0e3fe"], "source_commits": ["313ceda2f"], "source_entry_id": "15.4/changes/022", "db_id": "bb6d76438d51fc5fa20cf73c0a0b64a3", "patch_ids": ["98d67cdf3c0ead6326a2a33b279fe8d7"], "statement_hash": "da90a61fea160c5840872e071681e8c69da781986b3995430f7e8f2826c1ef8d", "relations": [{"rule": 2, "type": "equivalent", "target": "5052cdce2ff501e8882fe7b5bd665ea7", "evidence": {"same_day": true, "patch_ids": ["98d67cdf3c0ead6326a2a33b279fe8d7"], "statement_hash": "da90a61fea160c5840872e071681e8c69da781986b3995430f7e8f2826c1ef8d"}}, {"rule": 2, "type": "equivalent", "target": "9f4d00733ec0b39cef55b609e58feb5e", "evidence": {"same_day": true, "patch_ids": ["98d67cdf3c0ead6326a2a33b279fe8d7"], "statement_hash": "da90a61fea160c5840872e071681e8c69da781986b3995430f7e8f2826c1ef8d"}}, {"rule": 2, "type": "equivalent", "target": "c0284c475e03c7f703126c3dcc072f1b", "evidence": {"same_day": true, "patch_ids": ["98d67cdf3c0ead6326a2a33b279fe8d7"], "statement_hash": "da90a61fea160c5840872e071681e8c69da781986b3995430f7e8f2826c1ef8d"}}, {"rule": 2, "type": "related", "target": "c86f7037f349c6b765e98f879e584db3", "evidence": {"same_day": false, "patch_ids": ["98d67cdf3c0ead6326a2a33b279fe8d7"]}}, {"rule": 2, "type": "equivalent", "target": "d12f6a5e5ec54da016372459d525434d", "evidence": {"same_day": true, "patch_ids": ["98d67cdf3c0ead6326a2a33b279fe8d7"], "statement_hash": "da90a61fea160c5840872e071681e8c69da781986b3995430f7e8f2826c1ef8d"}}], "version": "15.4", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": [{"db_id": "c86f7037f349c6b765e98f879e584db3", "kind": "related", "version": "16.0", "label": "16.0", "title": "Allow pg_hba.conf tokens to be of unlimited length", "evidence": {"same_day": false, "patch_ids": ["98d67cdf3c0ead6326a2a33b279fe8d7"]}, "url": "/docs/compare/?release=16.0#16.0-5e33645ecdf297ca", "source_url": "/docs/release/16.0/#RELEASE-16-PG-HBA"}, {"db_id": "5052cdce2ff501e8882fe7b5bd665ea7", "kind": "equivalent", "version": "14.9", "label": "14.9", "title": "Allow tokens up to 10240 bytes long in pg_hba.conf and pg_ident.conf", "evidence": {"same_day": true, "patch_ids": ["98d67cdf3c0ead6326a2a33b279fe8d7"], "statement_hash": "da90a61fea160c5840872e071681e8c69da781986b3995430f7e8f2826c1ef8d"}, "url": "/docs/compare/?release=14.9#14.9-5bb3aebe0a3a7f93", "source_url": "/docs/release/14.9/#id-1.11.6.21.5"}, {"db_id": "9f4d00733ec0b39cef55b609e58feb5e", "kind": "equivalent", "version": "13.12", "label": "13.12", "title": "Allow tokens up to 10240 bytes long in pg_hba.conf and pg_ident.conf", "evidence": {"same_day": true, "patch_ids": ["98d67cdf3c0ead6326a2a33b279fe8d7"], "statement_hash": "da90a61fea160c5840872e071681e8c69da781986b3995430f7e8f2826c1ef8d"}, "url": "/docs/compare/?release=13.12#13.12-973d3bc2dbc69d58", "source_url": "/docs/release/13.12/#id-1.11.6.17.5"}, {"db_id": "c0284c475e03c7f703126c3dcc072f1b", "kind": "equivalent", "version": "12.16", "label": "12.16", "title": "Allow tokens up to 10240 bytes long in pg_hba.conf and pg_ident.conf", "evidence": {"same_day": true, "patch_ids": ["98d67cdf3c0ead6326a2a33b279fe8d7"], "statement_hash": "da90a61fea160c5840872e071681e8c69da781986b3995430f7e8f2826c1ef8d"}, "url": "/docs/compare/?release=12.16#12.16-4587afce7e4f52c0", "source_url": "/docs/release/12.16/#id-1.11.6.12.5"}, {"db_id": "d12f6a5e5ec54da016372459d525434d", "kind": "equivalent", "version": "11.21", "label": "11.21", "title": "Allow tokens up to 10240 bytes long in pg_hba.conf and pg_ident.conf", "evidence": {"same_day": true, "patch_ids": ["98d67cdf3c0ead6326a2a33b279fe8d7"], "statement_hash": "da90a61fea160c5840872e071681e8c69da781986b3995430f7e8f2826c1ef8d"}, "url": "/docs/compare/?release=11.21#11.21-ad309aebae83af08", "source_url": "/docs/release/11.21/#id-1.11.6.6.6"}]}, {"id": "15.4-7eb13fba3cfe8a4f", "cves": [], "html": "<p>Ensure that all existing placeholders are checked for matches when an extension declares its GUC prefix to be reserved (Karina Litskevich, Ekaterina Sokolova) <a href=\"https://postgr.es/c/a5f312c58\">§</a></p>\n<p>Faulty loop logic could cause some entries to be skipped.</p>", "text": "Ensure that all existing placeholders are checked for matches when an extension declares its GUC prefix to be reserved (Karina Litskevich, Ekaterina Sokolova) § Faulty loop logic could cause some entries to be skipped.", "title": "Ensure that all existing placeholders are checked for matches when an extension declares its GUC prefix to be reserved", "commits": ["a5f312c58"], "section": "Changes", "category": "improvement", "source_url": "/docs/release/15.4/#id-1.11.6.21.5", "source_hash": "18dfab624c5dae0c067ee5ad536e94f328715192fe6fba5f18831005a88582bf", "section_path": ["Changes"], "commit_groups": [["a5f312c58"]], "identity_text": "Ensure that all existing placeholders are checked for matches when an extension declares its GUC prefix to be reserved (Karina Litskevich, Ekaterina Sokolova) Faulty loop logic could cause some entries to be skipped.", "commit_aliases": ["a5f312c58"], "source_commits": ["a5f312c58"], "source_entry_id": "15.4/changes/023", "db_id": "328795fb8e7000bc34df28ffdb54eb61", "patch_ids": ["5d94ef663dd397e7a9e4cbde045d71d5"], "statement_hash": "1ec47f5905daa42e98a31e4681a947a857a98eb1ff3fe4b8c8d294fbeabeff7a", "relations": [], "version": "15.4", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": []}, {"id": "15.4-1cf0313471a3d44a", "cves": [], "html": "<p>Fix mishandling of C++ out-of-memory conditions (Heikki Linnakangas) <a href=\"https://postgr.es/c/fa96a74a0\">§</a></p>\n<p>If JIT is in use, running out of memory in a C++ <code>new</code> call would lead to a <span>PostgreSQL</span> FATAL error, instead of the expected C++ exception.</p>", "text": "Fix mishandling of C++ out-of-memory conditions (Heikki Linnakangas) § If JIT is in use, running out of memory in a C++ new call would lead to a PostgreSQL FATAL error, instead of the expected C++ exception.", "title": "Fix mishandling of C++ out-of-memory conditions", "commits": ["fa96a74a0"], "section": "Changes", "category": "bugfix", "source_url": "/docs/release/15.4/#id-1.11.6.21.5", "source_hash": "fc2d36adb7dcb922a0340e564a01d19dbf3938a4c282a0ac3a06bd45dba61928", "section_path": ["Changes"], "commit_groups": [["162aa47c3", "2316ff1ae", "4f4d73466", "59c2a6fe9", "bfb493dba", "dc0b58417", "fa96a74a0"]], "identity_text": "Fix mishandling of C++ out-of-memory conditions (Heikki Linnakangas) If JIT is in use, running out of memory in a C++ new call would lead to a PostgreSQL FATAL error, instead of the expected C++ exception.", "commit_aliases": ["162aa47c3", "2316ff1ae", "4f4d73466", "59c2a6fe9", "bfb493dba", "dc0b58417", "fa96a74a0"], "source_commits": ["fa96a74a0"], "source_entry_id": "15.4/changes/024", "db_id": "ae85f7f04a7d36b6403e07b39e6e4ddf", "patch_ids": ["0f2bb015425a1155e776a74158ca4a93"], "statement_hash": "b74c6634d11cb3e66f64639c7ad351ac71400257ec790ae2a321eefe3d8cd41f", "relations": [{"rule": 2, "type": "equivalent", "target": "757d3172dbdf2effbbbfc156a10c873f", "evidence": {"same_day": true, "patch_ids": ["0f2bb015425a1155e776a74158ca4a93"], "statement_hash": "b74c6634d11cb3e66f64639c7ad351ac71400257ec790ae2a321eefe3d8cd41f"}}, {"rule": 2, "type": "equivalent", "target": "7cebd2d79d0128bc94c2d77bf3728508", "evidence": {"same_day": true, "patch_ids": ["0f2bb015425a1155e776a74158ca4a93"], "statement_hash": "b74c6634d11cb3e66f64639c7ad351ac71400257ec790ae2a321eefe3d8cd41f"}}, {"rule": 2, "type": "equivalent", "target": "96898e43e86461d367e2a37792585a0b", "evidence": {"same_day": true, "patch_ids": ["0f2bb015425a1155e776a74158ca4a93"], "statement_hash": "b74c6634d11cb3e66f64639c7ad351ac71400257ec790ae2a321eefe3d8cd41f"}}, {"rule": 2, "type": "equivalent", "target": "f75d7d0b1dd8aa9b969fa8e88a6febe4", "evidence": {"same_day": true, "patch_ids": ["0f2bb015425a1155e776a74158ca4a93"], "statement_hash": "b74c6634d11cb3e66f64639c7ad351ac71400257ec790ae2a321eefe3d8cd41f"}}], "version": "15.4", "category_label": "Bug fixes", "also_in": [], "variants": [], "related_changes": [{"db_id": "f75d7d0b1dd8aa9b969fa8e88a6febe4", "kind": "equivalent", "version": "14.9", "label": "14.9", "title": "Fix mishandling of C++ out-of-memory conditions", "evidence": {"same_day": true, "patch_ids": ["0f2bb015425a1155e776a74158ca4a93"], "statement_hash": "b74c6634d11cb3e66f64639c7ad351ac71400257ec790ae2a321eefe3d8cd41f"}, "url": "/docs/compare/?release=14.9#14.9-b94609a53f1b3e2c", "source_url": "/docs/release/14.9/#id-1.11.6.21.5"}, {"db_id": "7cebd2d79d0128bc94c2d77bf3728508", "kind": "equivalent", "version": "13.12", "label": "13.12", "title": "Fix mishandling of C++ out-of-memory conditions", "evidence": {"same_day": true, "patch_ids": ["0f2bb015425a1155e776a74158ca4a93"], "statement_hash": "b74c6634d11cb3e66f64639c7ad351ac71400257ec790ae2a321eefe3d8cd41f"}, "url": "/docs/compare/?release=13.12#13.12-ae7566497fb9c8c4", "source_url": "/docs/release/13.12/#id-1.11.6.17.5"}, {"db_id": "96898e43e86461d367e2a37792585a0b", "kind": "equivalent", "version": "12.16", "label": "12.16", "title": "Fix mishandling of C++ out-of-memory conditions", "evidence": {"same_day": true, "patch_ids": ["0f2bb015425a1155e776a74158ca4a93"], "statement_hash": "b74c6634d11cb3e66f64639c7ad351ac71400257ec790ae2a321eefe3d8cd41f"}, "url": "/docs/compare/?release=12.16#12.16-be08c48a296dc03c", "source_url": "/docs/release/12.16/#id-1.11.6.12.5"}, {"db_id": "757d3172dbdf2effbbbfc156a10c873f", "kind": "equivalent", "version": "11.21", "label": "11.21", "title": "Fix mishandling of C++ out-of-memory conditions", "evidence": {"same_day": true, "patch_ids": ["0f2bb015425a1155e776a74158ca4a93"], "statement_hash": "b74c6634d11cb3e66f64639c7ad351ac71400257ec790ae2a321eefe3d8cd41f"}, "url": "/docs/compare/?release=11.21#11.21-64eb52a28b8a8d32", "source_url": "/docs/release/11.21/#id-1.11.6.6.6"}]}, {"id": "15.4-a2f319dae531d3ef", "cves": [], "html": "<p>Fix rare null-pointer crash in <code>plancache.c</code> (Tom Lane) <a href=\"https://postgr.es/c/fbaf65cd6\">§</a></p>", "text": "Fix rare null-pointer crash in plancache.c (Tom Lane) §", "title": "Fix rare null-pointer crash in plancache.c", "commits": ["fbaf65cd6"], "section": "Changes", "category": "bugfix", "source_url": "/docs/release/15.4/#id-1.11.6.21.5", "source_hash": "31207e4995237aef0b1e6f059473c9dca1154dc347520a39051c629f98452fd3", "section_path": ["Changes"], "commit_groups": [["10fd061bb", "291c02540", "9089287aa", "c0f531396", "fbaf65cd6"]], "identity_text": "Fix rare null-pointer crash in plancache.c (Tom Lane)", "commit_aliases": ["10fd061bb", "291c02540", "9089287aa", "c0f531396", "fbaf65cd6"], "source_commits": ["fbaf65cd6"], "source_entry_id": "15.4/changes/025", "db_id": "c379221b952ffe484034b056c8de56ea", "patch_ids": ["96c6c8d6c752b0095cc461cbc2ca623a"], "statement_hash": "edd65048cd8428912baf8e0c564ad37f1340bfc3012ee146c4ba8c1193c9f274", "relations": [{"rule": 2, "type": "equivalent", "target": "0657ca49a3b5cf68484b851738ad1670", "evidence": {"same_day": true, "patch_ids": ["96c6c8d6c752b0095cc461cbc2ca623a"], "statement_hash": "edd65048cd8428912baf8e0c564ad37f1340bfc3012ee146c4ba8c1193c9f274"}}, {"rule": 2, "type": "equivalent", "target": "416a3641213c73a32bd35a963e4bee7f", "evidence": {"same_day": true, "patch_ids": ["96c6c8d6c752b0095cc461cbc2ca623a"], "statement_hash": "edd65048cd8428912baf8e0c564ad37f1340bfc3012ee146c4ba8c1193c9f274"}}], "version": "15.4", "category_label": "Bug fixes", "also_in": [], "variants": [], "related_changes": [{"db_id": "0657ca49a3b5cf68484b851738ad1670", "kind": "equivalent", "version": "14.9", "label": "14.9", "title": "Fix rare null-pointer crash in plancache.c", "evidence": {"same_day": true, "patch_ids": ["96c6c8d6c752b0095cc461cbc2ca623a"], "statement_hash": "edd65048cd8428912baf8e0c564ad37f1340bfc3012ee146c4ba8c1193c9f274"}, "url": "/docs/compare/?release=14.9#14.9-f9e8d7d02893062a", "source_url": "/docs/release/14.9/#id-1.11.6.21.5"}, {"db_id": "416a3641213c73a32bd35a963e4bee7f", "kind": "equivalent", "version": "13.12", "label": "13.12", "title": "Fix rare null-pointer crash in plancache.c", "evidence": {"same_day": true, "patch_ids": ["96c6c8d6c752b0095cc461cbc2ca623a"], "statement_hash": "edd65048cd8428912baf8e0c564ad37f1340bfc3012ee146c4ba8c1193c9f274"}, "url": "/docs/compare/?release=13.12#13.12-05b56ef9a5caea34", "source_url": "/docs/release/13.12/#id-1.11.6.17.5"}]}, {"id": "15.4-8256160517121d42", "cves": [], "html": "<p>Avoid leaking a stats entry for a subscription when it is dropped (Masahiko Sawada) <a href=\"https://postgr.es/c/66f8a1397\">§</a></p>", "text": "Avoid leaking a stats entry for a subscription when it is dropped (Masahiko Sawada) §", "title": "Avoid leaking a stats entry for a subscription when it is dropped", "commits": ["66f8a1397"], "section": "Changes", "category": "bugfix", "source_url": "/docs/release/15.4/#id-1.11.6.21.5", "source_hash": "35693d3778294ac20b642903676fb914efa4a077d068a61a5c2a25d525574525", "section_path": ["Changes"], "commit_groups": [["66f8a1397", "68a59f9e9", "be8cae7e2"]], "identity_text": "Avoid leaking a stats entry for a subscription when it is dropped (Masahiko Sawada)", "commit_aliases": ["66f8a1397", "68a59f9e9", "be8cae7e2"], "source_commits": ["66f8a1397"], "source_entry_id": "15.4/changes/026", "db_id": "9d85982f43ed1cda1cc26db44cb64465", "patch_ids": ["2e408468d0549181d78e0ad289af6775"], "statement_hash": "42a83ba79da6aac08004ec48bf819838911f4e38ffed1c62cf1d576cba96ec1f", "relations": [], "version": "15.4", "category_label": "Bug fixes", "also_in": [], "variants": [], "related_changes": []}, {"id": "15.4-42666ece97db5e94", "cves": [], "html": "<p>Avoid losing track of possibly-useful shared memory segments when a page free results in coalescing ranges of free space (Dongming Liu) <a href=\"https://postgr.es/c/9ffb10f18\">§</a></p>\n<p>Ensure that the segment is moved into the appropriate <span>“<span>bin</span>”</span> for its new amount of free space, so that it will be found by subsequent searches.</p>", "text": "Avoid losing track of possibly-useful shared memory segments when a page free results in coalescing ranges of free space (Dongming Liu) § Ensure that the segment is moved into the appropriate “bin” for its new amount of free space, so that it will be found by subsequent searches.", "title": "Avoid losing track of possibly-useful shared memory segments when a page free results in coalescing ranges of free space", "commits": ["9ffb10f18"], "section": "Changes", "category": "improvement", "source_url": "/docs/release/15.4/#id-1.11.6.21.5", "source_hash": "4bdafe021479ec036767bae218cb6e1c0f8513c9c99f6a3507e22be372f8ee7a", "section_path": ["Changes"], "commit_groups": [["03f80daac", "1605623ec", "74ad9b0d1", "9ffb10f18", "a0003572f", "af8f9ec66", "b7ec66731"]], "identity_text": "Avoid losing track of possibly-useful shared memory segments when a page free results in coalescing ranges of free space (Dongming Liu) Ensure that the segment is moved into the appropriate bin for its new amount of free space, so that it will be found by subsequent searches.", "commit_aliases": ["03f80daac", "1605623ec", "74ad9b0d1", "9ffb10f18", "a0003572f", "af8f9ec66", "b7ec66731"], "source_commits": ["9ffb10f18"], "source_entry_id": "15.4/changes/027", "db_id": "3b7137fa8ef0091fe6770800f3de0330", "patch_ids": ["42d563bce29c65d2de619aff4f52d2f3"], "statement_hash": "d96072c73a1c0a5c772e596a7a4474dd653e23167ee0da74dd828d6b588d03ec", "relations": [{"rule": 2, "type": "equivalent", "target": "69cd2539014f8f414b8eb920e0de5c0a", "evidence": {"same_day": true, "patch_ids": ["42d563bce29c65d2de619aff4f52d2f3"], "statement_hash": "d96072c73a1c0a5c772e596a7a4474dd653e23167ee0da74dd828d6b588d03ec"}}, {"rule": 2, "type": "equivalent", "target": "7aecad2319109a406bf6b86ff10bb49b", "evidence": {"same_day": true, "patch_ids": ["42d563bce29c65d2de619aff4f52d2f3"], "statement_hash": "d96072c73a1c0a5c772e596a7a4474dd653e23167ee0da74dd828d6b588d03ec"}}, {"rule": 2, "type": "equivalent", "target": "dd2140fa9c654962ce9162189f9e402c", "evidence": {"same_day": true, "patch_ids": ["42d563bce29c65d2de619aff4f52d2f3"], "statement_hash": "d96072c73a1c0a5c772e596a7a4474dd653e23167ee0da74dd828d6b588d03ec"}}, {"rule": 2, "type": "equivalent", "target": "f36b990b91a13485cb657c918030eb43", "evidence": {"same_day": true, "patch_ids": ["42d563bce29c65d2de619aff4f52d2f3"], "statement_hash": "d96072c73a1c0a5c772e596a7a4474dd653e23167ee0da74dd828d6b588d03ec"}}], "version": "15.4", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": [{"db_id": "dd2140fa9c654962ce9162189f9e402c", "kind": "equivalent", "version": "14.9", "label": "14.9", "title": "Avoid losing track of possibly-useful shared memory segments when a page free results in coalescing ranges of free space", "evidence": {"same_day": true, "patch_ids": ["42d563bce29c65d2de619aff4f52d2f3"], "statement_hash": "d96072c73a1c0a5c772e596a7a4474dd653e23167ee0da74dd828d6b588d03ec"}, "url": "/docs/compare/?release=14.9#14.9-4098fc86ec39b3ae", "source_url": "/docs/release/14.9/#id-1.11.6.21.5"}, {"db_id": "69cd2539014f8f414b8eb920e0de5c0a", "kind": "equivalent", "version": "13.12", "label": "13.12", "title": "Avoid losing track of possibly-useful shared memory segments when a page free results in coalescing ranges of free space", "evidence": {"same_day": true, "patch_ids": ["42d563bce29c65d2de619aff4f52d2f3"], "statement_hash": "d96072c73a1c0a5c772e596a7a4474dd653e23167ee0da74dd828d6b588d03ec"}, "url": "/docs/compare/?release=13.12#13.12-ef678d36af38c6a8", "source_url": "/docs/release/13.12/#id-1.11.6.17.5"}, {"db_id": "f36b990b91a13485cb657c918030eb43", "kind": "equivalent", "version": "12.16", "label": "12.16", "title": "Avoid losing track of possibly-useful shared memory segments when a page free results in coalescing ranges of free space", "evidence": {"same_day": true, "patch_ids": ["42d563bce29c65d2de619aff4f52d2f3"], "statement_hash": "d96072c73a1c0a5c772e596a7a4474dd653e23167ee0da74dd828d6b588d03ec"}, "url": "/docs/compare/?release=12.16#12.16-14b5f40e281f3a33", "source_url": "/docs/release/12.16/#id-1.11.6.12.5"}, {"db_id": "7aecad2319109a406bf6b86ff10bb49b", "kind": "equivalent", "version": "11.21", "label": "11.21", "title": "Avoid losing track of possibly-useful shared memory segments when a page free results in coalescing ranges of free space", "evidence": {"same_day": true, "patch_ids": ["42d563bce29c65d2de619aff4f52d2f3"], "statement_hash": "d96072c73a1c0a5c772e596a7a4474dd653e23167ee0da74dd828d6b588d03ec"}, "url": "/docs/compare/?release=11.21#11.21-f5ca500a22c7867a", "source_url": "/docs/release/11.21/#id-1.11.6.6.6"}]}, {"id": "15.4-92ca09ecfe8e79ab", "cves": [], "html": "<p>Allow <code>VACUUM</code> to continue after detecting certain types of b-tree index corruption (Peter Geoghegan) <a href=\"https://postgr.es/c/642bec1f8\">§</a> <a href=\"https://postgr.es/c/6983a5112\">§</a></p>\n<p>If an invalid sibling-page link is detected, log the issue and press on, rather than throwing an error as before. Nothing short of <code>REINDEX</code> will fix the broken index, but preventing <code>VACUUM</code> from completing until that is done risks making matters far worse.</p>", "text": "Allow VACUUM to continue after detecting certain types of b-tree index corruption (Peter Geoghegan) § § If an invalid sibling-page link is detected, log the issue and press on, rather than throwing an error as before. Nothing short of REINDEX will fix the broken index, but preventing VACUUM from completing until that is done risks making matters far worse.", "title": "Allow VACUUM to continue after detecting certain types of b-tree index corruption", "commits": ["642bec1f8", "6983a5112"], "section": "Changes", "category": "improvement", "source_url": "/docs/release/15.4/#id-1.11.6.21.5", "source_hash": "3578236f6c2b50707e2e0a59e7af26e8f3477ded1dae34a1dabfd4a5cb983b67", "section_path": ["Changes"], "commit_groups": [["188dad680", "322c9b340", "5abff197c", "6983a5112", "8f876d15c", "a72b503ca"], ["355917c07", "5f0762f14", "63fa0deb3", "642bec1f8", "7ddba19eb", "b6311824f"]], "identity_text": "Allow VACUUM to continue after detecting certain types of b-tree index corruption (Peter Geoghegan) If an invalid sibling-page link is detected, log the issue and press on, rather than throwing an error as before. Nothing short of REINDEX will fix the broken index, but preventing VACUUM from completing until that is done risks making matters far worse.", "commit_aliases": ["188dad680", "322c9b340", "355917c07", "5abff197c", "5f0762f14", "63fa0deb3", "642bec1f8", "6983a5112", "7ddba19eb", "8f876d15c", "a72b503ca", "b6311824f"], "source_commits": ["642bec1f8", "6983a5112"], "source_entry_id": "15.4/changes/028", "db_id": "fca791223a053223cf98f2d306ab4d4b", "patch_ids": ["47fc332937773c1117907b8ce33587f5", "9ad7b4d1741d7488476fc58c7cd30389"], "statement_hash": "e375359809c4d5911f1549c1658db07da6de407caa8f6e0790c788ee51f7ec59", "relations": [{"rule": 2, "type": "equivalent", "target": "0a89bb207effe674187e329750d0375e", "evidence": {"same_day": true, "patch_ids": ["47fc332937773c1117907b8ce33587f5", "9ad7b4d1741d7488476fc58c7cd30389"], "statement_hash": "e375359809c4d5911f1549c1658db07da6de407caa8f6e0790c788ee51f7ec59"}}, {"rule": 2, "type": "equivalent", "target": "2e1e0133c0014a8e79d055f84ec32255", "evidence": {"same_day": true, "patch_ids": ["47fc332937773c1117907b8ce33587f5", "9ad7b4d1741d7488476fc58c7cd30389"], "statement_hash": "e375359809c4d5911f1549c1658db07da6de407caa8f6e0790c788ee51f7ec59"}}, {"rule": 2, "type": "equivalent", "target": "a9141d6478c75bf3e881cad7473c3845", "evidence": {"same_day": true, "patch_ids": ["47fc332937773c1117907b8ce33587f5", "9ad7b4d1741d7488476fc58c7cd30389"], "statement_hash": "e375359809c4d5911f1549c1658db07da6de407caa8f6e0790c788ee51f7ec59"}}, {"rule": 2, "type": "equivalent", "target": "ffc290a79a16a36a3f6292aaf4ce8eba", "evidence": {"same_day": true, "patch_ids": ["47fc332937773c1117907b8ce33587f5", "9ad7b4d1741d7488476fc58c7cd30389"], "statement_hash": "e375359809c4d5911f1549c1658db07da6de407caa8f6e0790c788ee51f7ec59"}}], "version": "15.4", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": [{"db_id": "2e1e0133c0014a8e79d055f84ec32255", "kind": "equivalent", "version": "14.9", "label": "14.9", "title": "Allow VACUUM to continue after detecting certain types of b-tree index corruption", "evidence": {"same_day": true, "patch_ids": ["47fc332937773c1117907b8ce33587f5", "9ad7b4d1741d7488476fc58c7cd30389"], "statement_hash": "e375359809c4d5911f1549c1658db07da6de407caa8f6e0790c788ee51f7ec59"}, "url": "/docs/compare/?release=14.9#14.9-40be52d089b50eef", "source_url": "/docs/release/14.9/#id-1.11.6.21.5"}, {"db_id": "a9141d6478c75bf3e881cad7473c3845", "kind": "equivalent", "version": "13.12", "label": "13.12", "title": "Allow VACUUM to continue after detecting certain types of b-tree index corruption", "evidence": {"same_day": true, "patch_ids": ["47fc332937773c1117907b8ce33587f5", "9ad7b4d1741d7488476fc58c7cd30389"], "statement_hash": "e375359809c4d5911f1549c1658db07da6de407caa8f6e0790c788ee51f7ec59"}, "url": "/docs/compare/?release=13.12#13.12-b73d9abae9f91a71", "source_url": "/docs/release/13.12/#id-1.11.6.17.5"}, {"db_id": "ffc290a79a16a36a3f6292aaf4ce8eba", "kind": "equivalent", "version": "12.16", "label": "12.16", "title": "Allow VACUUM to continue after detecting certain types of b-tree index corruption", "evidence": {"same_day": true, "patch_ids": ["47fc332937773c1117907b8ce33587f5", "9ad7b4d1741d7488476fc58c7cd30389"], "statement_hash": "e375359809c4d5911f1549c1658db07da6de407caa8f6e0790c788ee51f7ec59"}, "url": "/docs/compare/?release=12.16#12.16-db3b03ae69b7b717", "source_url": "/docs/release/12.16/#id-1.11.6.12.5"}, {"db_id": "0a89bb207effe674187e329750d0375e", "kind": "equivalent", "version": "11.21", "label": "11.21", "title": "Allow VACUUM to continue after detecting certain types of b-tree index corruption", "evidence": {"same_day": true, "patch_ids": ["47fc332937773c1117907b8ce33587f5", "9ad7b4d1741d7488476fc58c7cd30389"], "statement_hash": "e375359809c4d5911f1549c1658db07da6de407caa8f6e0790c788ee51f7ec59"}, "url": "/docs/compare/?release=11.21#11.21-9c5d77f00347e603", "source_url": "/docs/release/11.21/#id-1.11.6.6.6"}]}, {"id": "15.4-fc31e62c9d8f0773", "cves": [], "html": "<p>Ensure that <code>WrapLimitsVacuumLock</code> is released after <code>VACUUM</code> detects invalid data in <code>pg_database</code>.<code>datfrozenxid</code> or <code>pg_database</code>.<code>datminmxid</code> (Andres Freund) <a href=\"https://postgr.es/c/82e97b864\">§</a></p>\n<p>Failure to release this lock could lead to a deadlock later, although the lock would be cleaned up if the session exits or encounters some other error.</p>", "text": "Ensure that WrapLimitsVacuumLock is released after VACUUM detects invalid data in pg_database.datfrozenxid or pg_database.datminmxid (Andres Freund) § Failure to release this lock could lead to a deadlock later, although the lock would be cleaned up if the session exits or encounters some other error.", "title": "Ensure that WrapLimitsVacuumLock is released after VACUUM detects invalid data in pg_database.datfrozenxid or pg_database.datminmxid", "commits": ["82e97b864"], "section": "Changes", "category": "improvement", "source_url": "/docs/release/15.4/#id-1.11.6.21.5", "source_hash": "2c09e891c67fdd2054a2fd62a4bc3681f68e4df6942f1ede0f5a87247ef899b9", "section_path": ["Changes"], "commit_groups": [["03ccc9569", "1386f0987", "53336e8f6", "7aec84e4c", "82e97b864", "83ecfa9fa", "e246fd423"]], "identity_text": "Ensure that WrapLimitsVacuumLock is released after VACUUM detects invalid data in pg_database.datfrozenxid or pg_database.datminmxid (Andres Freund) Failure to release this lock could lead to a deadlock later, although the lock would be cleaned up if the session exits or encounters some other error.", "commit_aliases": ["03ccc9569", "1386f0987", "53336e8f6", "7aec84e4c", "82e97b864", "83ecfa9fa", "e246fd423"], "source_commits": ["82e97b864"], "source_entry_id": "15.4/changes/029", "db_id": "9e1c36701bee34cefa6f645874690e82", "patch_ids": ["1b6b8275886323aadcadf7c2b11b0c8b"], "statement_hash": "5672c1727ae63c393bcd3714d3a6af661200d977ae1ec6b2fb9517889007db99", "relations": [{"rule": 2, "type": "equivalent", "target": "00ed0ec03b25cebab6a578b7a1cb0d5e", "evidence": {"same_day": true, "patch_ids": ["1b6b8275886323aadcadf7c2b11b0c8b"], "statement_hash": "5672c1727ae63c393bcd3714d3a6af661200d977ae1ec6b2fb9517889007db99"}}, {"rule": 2, "type": "equivalent", "target": "894f99c5b8c44b0f88369ccb5cf92d68", "evidence": {"same_day": true, "patch_ids": ["1b6b8275886323aadcadf7c2b11b0c8b"], "statement_hash": "5672c1727ae63c393bcd3714d3a6af661200d977ae1ec6b2fb9517889007db99"}}, {"rule": 2, "type": "equivalent", "target": "d39abc48a5fe5355d64052920a291087", "evidence": {"same_day": true, "patch_ids": ["1b6b8275886323aadcadf7c2b11b0c8b"], "statement_hash": "5672c1727ae63c393bcd3714d3a6af661200d977ae1ec6b2fb9517889007db99"}}, {"rule": 2, "type": "equivalent", "target": "ef3bd6456d4a5f2b6208d225b50d162e", "evidence": {"same_day": true, "patch_ids": ["1b6b8275886323aadcadf7c2b11b0c8b"], "statement_hash": "5672c1727ae63c393bcd3714d3a6af661200d977ae1ec6b2fb9517889007db99"}}], "version": "15.4", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": [{"db_id": "00ed0ec03b25cebab6a578b7a1cb0d5e", "kind": "equivalent", "version": "14.9", "label": "14.9", "title": "Ensure that WrapLimitsVacuumLock is released after VACUUM detects invalid data in pg_database.datfrozenxid or pg_database.datminmxid", "evidence": {"same_day": true, "patch_ids": ["1b6b8275886323aadcadf7c2b11b0c8b"], "statement_hash": "5672c1727ae63c393bcd3714d3a6af661200d977ae1ec6b2fb9517889007db99"}, "url": "/docs/compare/?release=14.9#14.9-1dea824292b15109", "source_url": "/docs/release/14.9/#id-1.11.6.21.5"}, {"db_id": "894f99c5b8c44b0f88369ccb5cf92d68", "kind": "equivalent", "version": "13.12", "label": "13.12", "title": "Ensure that WrapLimitsVacuumLock is released after VACUUM detects invalid data in pg_database.datfrozenxid or pg_database.datminmxid", "evidence": {"same_day": true, "patch_ids": ["1b6b8275886323aadcadf7c2b11b0c8b"], "statement_hash": "5672c1727ae63c393bcd3714d3a6af661200d977ae1ec6b2fb9517889007db99"}, "url": "/docs/compare/?release=13.12#13.12-5386073eae102d79", "source_url": "/docs/release/13.12/#id-1.11.6.17.5"}, {"db_id": "ef3bd6456d4a5f2b6208d225b50d162e", "kind": "equivalent", "version": "12.16", "label": "12.16", "title": "Ensure that WrapLimitsVacuumLock is released after VACUUM detects invalid data in pg_database.datfrozenxid or pg_database.datminmxid", "evidence": {"same_day": true, "patch_ids": ["1b6b8275886323aadcadf7c2b11b0c8b"], "statement_hash": "5672c1727ae63c393bcd3714d3a6af661200d977ae1ec6b2fb9517889007db99"}, "url": "/docs/compare/?release=12.16#12.16-2cec84cf87742742", "source_url": "/docs/release/12.16/#id-1.11.6.12.5"}, {"db_id": "d39abc48a5fe5355d64052920a291087", "kind": "equivalent", "version": "11.21", "label": "11.21", "title": "Ensure that WrapLimitsVacuumLock is released after VACUUM detects invalid data in pg_database.datfrozenxid or pg_database.datminmxid", "evidence": {"same_day": true, "patch_ids": ["1b6b8275886323aadcadf7c2b11b0c8b"], "statement_hash": "5672c1727ae63c393bcd3714d3a6af661200d977ae1ec6b2fb9517889007db99"}, "url": "/docs/compare/?release=11.21#11.21-8f2ff860420be278", "source_url": "/docs/release/11.21/#id-1.11.6.6.6"}]}, {"id": "15.4-6bc807bdc7eebba6", "cves": [], "html": "<p>Avoid double replay of prepared transactions during crash recovery (suyu.cmj, Michael Paquier) <a href=\"https://postgr.es/c/a878eff6b\">§</a> <a href=\"https://postgr.es/c/f6ecd2622\">§</a></p>\n<p>After a crash partway through a checkpoint with some two-phase transaction state data already flushed to disk by this checkpoint, crash recovery could attempt to replay the prepared transaction(s) twice, leading to a fatal error such as <span>“<span>lock is already held</span>”</span> in the startup process.</p>", "text": "Avoid double replay of prepared transactions during crash recovery (suyu.cmj, Michael Paquier) § § After a crash partway through a checkpoint with some two-phase transaction state data already flushed to disk by this checkpoint, crash recovery could attempt to replay the prepared transaction(s) twice, leading to a fatal error such as “lock is already held” in the startup process.", "title": "Avoid double replay of prepared transactions during crash recovery", "commits": ["a878eff6b", "f6ecd2622"], "section": "Changes", "category": "bugfix", "source_url": "/docs/release/15.4/#id-1.11.6.21.5", "source_hash": "46907b2a80da0405d6ece0150e1d4db3a22907a55a59741f8f1d65637ed19504", "section_path": ["Changes"], "commit_groups": [["410a0d6bd", "4e465aac3", "6c7bffc09", "763d26205", "926aa6d11", "b3ca4f0a5", "f6ecd2622"], ["442749100", "a878eff6b", "bc0581f8f", "cb0cca188", "d2ee542a2", "db59108a2", "f88bc9f38"]], "identity_text": "Avoid double replay of prepared transactions during crash recovery (suyu.cmj, Michael Paquier) After a crash partway through a checkpoint with some two-phase transaction state data already flushed to disk by this checkpoint, crash recovery could attempt to replay the prepared transaction(s) twice, leading to a fatal error such as lock is already held in the startup process.", "commit_aliases": ["410a0d6bd", "442749100", "4e465aac3", "6c7bffc09", "763d26205", "926aa6d11", "a878eff6b", "b3ca4f0a5", "bc0581f8f", "cb0cca188", "d2ee542a2", "db59108a2", "f6ecd2622", "f88bc9f38"], "source_commits": ["a878eff6b", "f6ecd2622"], "source_entry_id": "15.4/changes/030", "db_id": "6de9bddc7179e995dcbe61e6b02ea148", "patch_ids": ["3a45aa80b8b14881f3f8228d127209ec", "6af3f18449915f359df7d07ca8fcc1d1"], "statement_hash": "65878e2d2f00a878c28a92bd762f98ee3c581256d85150f377dbdd4e3f6b3642", "relations": [{"rule": 2, "type": "equivalent", "target": "1dd0c2289a3930838087a741e59383ff", "evidence": {"same_day": true, "patch_ids": ["3a45aa80b8b14881f3f8228d127209ec", "6af3f18449915f359df7d07ca8fcc1d1"], "statement_hash": "65878e2d2f00a878c28a92bd762f98ee3c581256d85150f377dbdd4e3f6b3642"}}, {"rule": 2, "type": "equivalent", "target": "35150195e25fe8d39793a02efbe04a98", "evidence": {"same_day": true, "patch_ids": ["3a45aa80b8b14881f3f8228d127209ec", "6af3f18449915f359df7d07ca8fcc1d1"], "statement_hash": "65878e2d2f00a878c28a92bd762f98ee3c581256d85150f377dbdd4e3f6b3642"}}, {"rule": 2, "type": "equivalent", "target": "83c59769f8098ea6ed99f5811a142385", "evidence": {"same_day": true, "patch_ids": ["3a45aa80b8b14881f3f8228d127209ec", "6af3f18449915f359df7d07ca8fcc1d1"], "statement_hash": "65878e2d2f00a878c28a92bd762f98ee3c581256d85150f377dbdd4e3f6b3642"}}, {"rule": 2, "type": "equivalent", "target": "93d6a8b730835d9767fd1c267a65ae5f", "evidence": {"same_day": true, "patch_ids": ["3a45aa80b8b14881f3f8228d127209ec", "6af3f18449915f359df7d07ca8fcc1d1"], "statement_hash": "65878e2d2f00a878c28a92bd762f98ee3c581256d85150f377dbdd4e3f6b3642"}}], "version": "15.4", "category_label": "Bug fixes", "also_in": [], "variants": [], "related_changes": [{"db_id": "35150195e25fe8d39793a02efbe04a98", "kind": "equivalent", "version": "14.9", "label": "14.9", "title": "Avoid double replay of prepared transactions during crash recovery", "evidence": {"same_day": true, "patch_ids": ["3a45aa80b8b14881f3f8228d127209ec", "6af3f18449915f359df7d07ca8fcc1d1"], "statement_hash": "65878e2d2f00a878c28a92bd762f98ee3c581256d85150f377dbdd4e3f6b3642"}, "url": "/docs/compare/?release=14.9#14.9-0382da9acd961b32", "source_url": "/docs/release/14.9/#id-1.11.6.21.5"}, {"db_id": "1dd0c2289a3930838087a741e59383ff", "kind": "equivalent", "version": "13.12", "label": "13.12", "title": "Avoid double replay of prepared transactions during crash recovery", "evidence": {"same_day": true, "patch_ids": ["3a45aa80b8b14881f3f8228d127209ec", "6af3f18449915f359df7d07ca8fcc1d1"], "statement_hash": "65878e2d2f00a878c28a92bd762f98ee3c581256d85150f377dbdd4e3f6b3642"}, "url": "/docs/compare/?release=13.12#13.12-89bb2fdb46f2412c", "source_url": "/docs/release/13.12/#id-1.11.6.17.5"}, {"db_id": "83c59769f8098ea6ed99f5811a142385", "kind": "equivalent", "version": "12.16", "label": "12.16", "title": "Avoid double replay of prepared transactions during crash recovery", "evidence": {"same_day": true, "patch_ids": ["3a45aa80b8b14881f3f8228d127209ec", "6af3f18449915f359df7d07ca8fcc1d1"], "statement_hash": "65878e2d2f00a878c28a92bd762f98ee3c581256d85150f377dbdd4e3f6b3642"}, "url": "/docs/compare/?release=12.16#12.16-f9f6fd1df57a51a6", "source_url": "/docs/release/12.16/#id-1.11.6.12.5"}, {"db_id": "93d6a8b730835d9767fd1c267a65ae5f", "kind": "equivalent", "version": "11.21", "label": "11.21", "title": "Avoid double replay of prepared transactions during crash recovery", "evidence": {"same_day": true, "patch_ids": ["3a45aa80b8b14881f3f8228d127209ec", "6af3f18449915f359df7d07ca8fcc1d1"], "statement_hash": "65878e2d2f00a878c28a92bd762f98ee3c581256d85150f377dbdd4e3f6b3642"}, "url": "/docs/compare/?release=11.21#11.21-e8480a33af0d190b", "source_url": "/docs/release/11.21/#id-1.11.6.6.6"}]}, {"id": "15.4-fca13900b4806e1f", "cves": [], "html": "<p>Ensure that a newly created, but still empty table is <code>fsync</code>'ed at the next checkpoint (Heikki Linnakangas) <a href=\"https://postgr.es/c/e24c02e4d\">§</a></p>\n<p>Without this, if there is an operating system crash causing the empty file to disappear, subsequent operations on the table might fail with <span>“<span>could not open file</span>”</span> errors.</p>", "text": "Ensure that a newly created, but still empty table is fsync'ed at the next checkpoint (Heikki Linnakangas) § Without this, if there is an operating system crash causing the empty file to disappear, subsequent operations on the table might fail with “could not open file” errors.", "title": "Ensure that a newly created, but still empty table is fsync'ed at the next checkpoint", "commits": ["e24c02e4d"], "section": "Changes", "category": "improvement", "source_url": "/docs/release/15.4/#id-1.11.6.21.5", "source_hash": "9772a60c2124d1d436767bf8936f813a0cbb5de26c90c327f0bdbf98acbbb2fd", "section_path": ["Changes"], "commit_groups": [["1b4f1c6f8", "4b4798e13", "6377f705c", "acc8cdff4", "d431644b4", "d85bf0719", "e24c02e4d"]], "identity_text": "Ensure that a newly created, but still empty table is fsync'ed at the next checkpoint (Heikki Linnakangas) Without this, if there is an operating system crash causing the empty file to disappear, subsequent operations on the table might fail with could not open file errors.", "commit_aliases": ["1b4f1c6f8", "4b4798e13", "6377f705c", "acc8cdff4", "d431644b4", "d85bf0719", "e24c02e4d"], "source_commits": ["e24c02e4d"], "source_entry_id": "15.4/changes/031", "db_id": "1f24d024d1cc473b2b88022f067a97fe", "patch_ids": ["049dbff6a2f0b385b517bcd7f437e841"], "statement_hash": "409e8a3ed9e99529bd95c83d017e6409283d734d80888c2300621d3f46190a82", "relations": [{"rule": 2, "type": "equivalent", "target": "55d592fd4725d51ec5b28a0ff2347039", "evidence": {"same_day": true, "patch_ids": ["049dbff6a2f0b385b517bcd7f437e841"], "statement_hash": "409e8a3ed9e99529bd95c83d017e6409283d734d80888c2300621d3f46190a82"}}, {"rule": 2, "type": "equivalent", "target": "5a60a576107e98788cfc7b1335fbb197", "evidence": {"same_day": true, "patch_ids": ["049dbff6a2f0b385b517bcd7f437e841"], "statement_hash": "409e8a3ed9e99529bd95c83d017e6409283d734d80888c2300621d3f46190a82"}}, {"rule": 2, "type": "equivalent", "target": "c151b4e1d63b94f408b7d1bb9ffea7eb", "evidence": {"same_day": true, "patch_ids": ["049dbff6a2f0b385b517bcd7f437e841"], "statement_hash": "409e8a3ed9e99529bd95c83d017e6409283d734d80888c2300621d3f46190a82"}}, {"rule": 2, "type": "equivalent", "target": "dca66afe674adc9dbbeb5b1b7a00fd1a", "evidence": {"same_day": true, "patch_ids": ["049dbff6a2f0b385b517bcd7f437e841"], "statement_hash": "409e8a3ed9e99529bd95c83d017e6409283d734d80888c2300621d3f46190a82"}}], "version": "15.4", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": [{"db_id": "dca66afe674adc9dbbeb5b1b7a00fd1a", "kind": "equivalent", "version": "14.9", "label": "14.9", "title": "Ensure that a newly created, but still empty table is fsync'ed at the next checkpoint", "evidence": {"same_day": true, "patch_ids": ["049dbff6a2f0b385b517bcd7f437e841"], "statement_hash": "409e8a3ed9e99529bd95c83d017e6409283d734d80888c2300621d3f46190a82"}, "url": "/docs/compare/?release=14.9#14.9-467735f6fd2e0b6a", "source_url": "/docs/release/14.9/#id-1.11.6.21.5"}, {"db_id": "5a60a576107e98788cfc7b1335fbb197", "kind": "equivalent", "version": "13.12", "label": "13.12", "title": "Ensure that a newly created, but still empty table is fsync'ed at the next checkpoint", "evidence": {"same_day": true, "patch_ids": ["049dbff6a2f0b385b517bcd7f437e841"], "statement_hash": "409e8a3ed9e99529bd95c83d017e6409283d734d80888c2300621d3f46190a82"}, "url": "/docs/compare/?release=13.12#13.12-6b802c88945c201c", "source_url": "/docs/release/13.12/#id-1.11.6.17.5"}, {"db_id": "c151b4e1d63b94f408b7d1bb9ffea7eb", "kind": "equivalent", "version": "12.16", "label": "12.16", "title": "Ensure that a newly created, but still empty table is fsync'ed at the next checkpoint", "evidence": {"same_day": true, "patch_ids": ["049dbff6a2f0b385b517bcd7f437e841"], "statement_hash": "409e8a3ed9e99529bd95c83d017e6409283d734d80888c2300621d3f46190a82"}, "url": "/docs/compare/?release=12.16#12.16-db5ef5a9a2ec27de", "source_url": "/docs/release/12.16/#id-1.11.6.12.5"}, {"db_id": "55d592fd4725d51ec5b28a0ff2347039", "kind": "equivalent", "version": "11.21", "label": "11.21", "title": "Ensure that a newly created, but still empty table is fsync'ed at the next checkpoint", "evidence": {"same_day": true, "patch_ids": ["049dbff6a2f0b385b517bcd7f437e841"], "statement_hash": "409e8a3ed9e99529bd95c83d017e6409283d734d80888c2300621d3f46190a82"}, "url": "/docs/compare/?release=11.21#11.21-523c4a4325d22e13", "source_url": "/docs/release/11.21/#id-1.11.6.6.6"}]}, {"id": "15.4-53cd2b1f69e1e446", "cves": [], "html": "<p>Ensure that creation of the init fork of an unlogged index is WAL-logged (Heikki Linnakangas) <a href=\"https://postgr.es/c/25624c5d3\">§</a></p>\n<p>While an unlogged index's main data fork is not WAL-logged, its init fork should be, to ensure that we have a consistent state to restore the index to after a crash. This step was missed if the init fork contains no data, which is a case not used by any standard index AM; but perhaps some extension behaves that way.</p>", "text": "Ensure that creation of the init fork of an unlogged index is WAL-logged (Heikki Linnakangas) § While an unlogged index's main data fork is not WAL-logged, its init fork should be, to ensure that we have a consistent state to restore the index to after a crash. This step was missed if the init fork contains no data, which is a case not used by any standard index AM; but perhaps some extension behaves that way.", "title": "Ensure that creation of the init fork of an unlogged index is WAL-logged", "commits": ["25624c5d3"], "section": "Changes", "category": "improvement", "source_url": "/docs/release/15.4/#id-1.11.6.21.5", "source_hash": "bb891081122c897dd994b5c2073f3be9fe3897ca3c2b5163087f32edbcf9b42c", "section_path": ["Changes"], "commit_groups": [["25624c5d3", "3142a8845", "32f327f68", "80abec387", "988719b88", "bf7b70e6b", "c50b869ed"]], "identity_text": "Ensure that creation of the init fork of an unlogged index is WAL-logged (Heikki Linnakangas) While an unlogged index's main data fork is not WAL-logged, its init fork should be, to ensure that we have a consistent state to restore the index to after a crash. This step was missed if the init fork contains no data, which is a case not used by any standard index AM; but perhaps some extension behaves that way.", "commit_aliases": ["25624c5d3", "3142a8845", "32f327f68", "80abec387", "988719b88", "bf7b70e6b", "c50b869ed"], "source_commits": ["25624c5d3"], "source_entry_id": "15.4/changes/032", "db_id": "1a6f5bdececb46ec6b0cf4157dcbcaa5", "patch_ids": ["b78093f0d064b321d5d6e08d7eba300f"], "statement_hash": "b28db5f39895a21a6b9a6ff2b1c31193f9326499fcc24fe6e56b63b22f21804c", "relations": [{"rule": 2, "type": "equivalent", "target": "6229c2037e3574a942ab71441502ffc2", "evidence": {"same_day": true, "patch_ids": ["b78093f0d064b321d5d6e08d7eba300f"], "statement_hash": "b28db5f39895a21a6b9a6ff2b1c31193f9326499fcc24fe6e56b63b22f21804c"}}, {"rule": 2, "type": "equivalent", "target": "8d016bdc03fd9080c3d091b869de5a48", "evidence": {"same_day": true, "patch_ids": ["b78093f0d064b321d5d6e08d7eba300f"], "statement_hash": "b28db5f39895a21a6b9a6ff2b1c31193f9326499fcc24fe6e56b63b22f21804c"}}, {"rule": 2, "type": "equivalent", "target": "d00152ea427a7e39ed1a638687d4812c", "evidence": {"same_day": true, "patch_ids": ["b78093f0d064b321d5d6e08d7eba300f"], "statement_hash": "b28db5f39895a21a6b9a6ff2b1c31193f9326499fcc24fe6e56b63b22f21804c"}}, {"rule": 2, "type": "equivalent", "target": "f8c6097b6641e980e7ef9b9b1dcb2e3e", "evidence": {"same_day": true, "patch_ids": ["b78093f0d064b321d5d6e08d7eba300f"], "statement_hash": "b28db5f39895a21a6b9a6ff2b1c31193f9326499fcc24fe6e56b63b22f21804c"}}], "version": "15.4", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": [{"db_id": "6229c2037e3574a942ab71441502ffc2", "kind": "equivalent", "version": "14.9", "label": "14.9", "title": "Ensure that creation of the init fork of an unlogged index is WAL-logged", "evidence": {"same_day": true, "patch_ids": ["b78093f0d064b321d5d6e08d7eba300f"], "statement_hash": "b28db5f39895a21a6b9a6ff2b1c31193f9326499fcc24fe6e56b63b22f21804c"}, "url": "/docs/compare/?release=14.9#14.9-c6d8832fcb5e9cbe", "source_url": "/docs/release/14.9/#id-1.11.6.21.5"}, {"db_id": "f8c6097b6641e980e7ef9b9b1dcb2e3e", "kind": "equivalent", "version": "13.12", "label": "13.12", "title": "Ensure that creation of the init fork of an unlogged index is WAL-logged", "evidence": {"same_day": true, "patch_ids": ["b78093f0d064b321d5d6e08d7eba300f"], "statement_hash": "b28db5f39895a21a6b9a6ff2b1c31193f9326499fcc24fe6e56b63b22f21804c"}, "url": "/docs/compare/?release=13.12#13.12-027cb2be867289ac", "source_url": "/docs/release/13.12/#id-1.11.6.17.5"}, {"db_id": "8d016bdc03fd9080c3d091b869de5a48", "kind": "equivalent", "version": "12.16", "label": "12.16", "title": "Ensure that creation of the init fork of an unlogged index is WAL-logged", "evidence": {"same_day": true, "patch_ids": ["b78093f0d064b321d5d6e08d7eba300f"], "statement_hash": "b28db5f39895a21a6b9a6ff2b1c31193f9326499fcc24fe6e56b63b22f21804c"}, "url": "/docs/compare/?release=12.16#12.16-0a6d750c36e5e2d5", "source_url": "/docs/release/12.16/#id-1.11.6.12.5"}, {"db_id": "d00152ea427a7e39ed1a638687d4812c", "kind": "equivalent", "version": "11.21", "label": "11.21", "title": "Ensure that creation of the init fork of an unlogged index is WAL-logged", "evidence": {"same_day": true, "patch_ids": ["b78093f0d064b321d5d6e08d7eba300f"], "statement_hash": "b28db5f39895a21a6b9a6ff2b1c31193f9326499fcc24fe6e56b63b22f21804c"}, "url": "/docs/compare/?release=11.21#11.21-62f8c79f3c4a9076", "source_url": "/docs/release/11.21/#id-1.11.6.6.6"}]}, {"id": "15.4-467d17596c2bc6fa", "cves": [], "html": "<p>Silence bogus <span>“<span>missing contrecord</span>”</span> errors (Thomas Munro) <a href=\"https://postgr.es/c/f50200c01\">§</a></p>\n<p>Treat this case as plain end-of-WAL to avoid logging inaccurate complaints from <span>pg_waldump</span> and <span>walsender</span>.</p>", "text": "Silence bogus “missing contrecord” errors (Thomas Munro) § Treat this case as plain end-of-WAL to avoid logging inaccurate complaints from pg_waldump and walsender.", "title": "Silence bogus “missing contrecord” errors", "commits": ["f50200c01"], "section": "Changes", "category": "improvement", "source_url": "/docs/release/15.4/#id-1.11.6.21.5", "source_hash": "72b87b4f2758b97756b05ed0d608284226a75f0614806453bf382c2617db3a6d", "section_path": ["Changes"], "commit_groups": [["4637a6ac0", "76d5966b3", "f50200c01"]], "identity_text": "Silence bogus missing contrecord errors (Thomas Munro) Treat this case as plain end-of-WAL to avoid logging inaccurate complaints from pg_waldump and walsender.", "commit_aliases": ["4637a6ac0", "76d5966b3", "f50200c01"], "source_commits": ["f50200c01"], "source_entry_id": "15.4/changes/033", "db_id": "a196b42d000689d89b5c95b8b3f459ec", "patch_ids": ["c66352f3fdce53d4dfb31b69ac93e548"], "statement_hash": "3313ec2209a38e6c1828150d6719187c8629a60a537cebfbd097a31ca9a94ec3", "relations": [], "version": "15.4", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": []}, {"id": "15.4-f0de47016af19448", "cves": [], "html": "<p>Fix overly strict assertion in <code>jsonpath</code> code (David Rowley) <a href=\"https://postgr.es/c/67f3a697b\">§</a></p>\n<p>This assertion failed if a query applied the <code>.type()</code> operator to a <code>like_regex</code> result. There was no bug in non-assert builds.</p>", "text": "Fix overly strict assertion in jsonpath code (David Rowley) § This assertion failed if a query applied the .type() operator to a like_regex result. There was no bug in non-assert builds.", "title": "Fix overly strict assertion in jsonpath code", "commits": ["67f3a697b"], "section": "Changes", "category": "bugfix", "source_url": "/docs/release/15.4/#id-1.11.6.21.5", "source_hash": "20fdd39e40edaf036c7da8c6a209eb31ad706e4ed4cc81447e84406b63ace4ea", "section_path": ["Changes"], "commit_groups": [["668990980", "67f3a697b", "74a5bf1b6", "b25acc302", "deae1657e", "f457f2ef1"]], "identity_text": "Fix overly strict assertion in jsonpath code (David Rowley) This assertion failed if a query applied the .type() operator to a like_regex result. There was no bug in non-assert builds.", "commit_aliases": ["668990980", "67f3a697b", "74a5bf1b6", "b25acc302", "deae1657e", "f457f2ef1"], "source_commits": ["67f3a697b"], "source_entry_id": "15.4/changes/034", "db_id": "a6ecf4710335a0726aa07a4577c4e91d", "patch_ids": ["f1e37ee56ecf82bc0cd5a8071e7438c7"], "statement_hash": "26966f1981e3ef64ced3ffa50131a7d15df38552fa949729a13421d17a5de2e6", "relations": [{"rule": 2, "type": "equivalent", "target": "3cc699b8ccba6ff8487aed923c5a41c9", "evidence": {"same_day": true, "patch_ids": ["f1e37ee56ecf82bc0cd5a8071e7438c7"], "statement_hash": "26966f1981e3ef64ced3ffa50131a7d15df38552fa949729a13421d17a5de2e6"}}, {"rule": 2, "type": "equivalent", "target": "e56effc9717ab8b4ae91c8416cb06cfa", "evidence": {"same_day": true, "patch_ids": ["f1e37ee56ecf82bc0cd5a8071e7438c7"], "statement_hash": "26966f1981e3ef64ced3ffa50131a7d15df38552fa949729a13421d17a5de2e6"}}, {"rule": 2, "type": "equivalent", "target": "eba2f94412c31fb1523c3bf22fc4dddf", "evidence": {"same_day": true, "patch_ids": ["f1e37ee56ecf82bc0cd5a8071e7438c7"], "statement_hash": "26966f1981e3ef64ced3ffa50131a7d15df38552fa949729a13421d17a5de2e6"}}], "version": "15.4", "category_label": "Bug fixes", "also_in": [], "variants": [], "related_changes": [{"db_id": "e56effc9717ab8b4ae91c8416cb06cfa", "kind": "equivalent", "version": "14.9", "label": "14.9", "title": "Fix overly strict assertion in jsonpath code", "evidence": {"same_day": true, "patch_ids": ["f1e37ee56ecf82bc0cd5a8071e7438c7"], "statement_hash": "26966f1981e3ef64ced3ffa50131a7d15df38552fa949729a13421d17a5de2e6"}, "url": "/docs/compare/?release=14.9#14.9-6e94f765e357aea2", "source_url": "/docs/release/14.9/#id-1.11.6.21.5"}, {"db_id": "3cc699b8ccba6ff8487aed923c5a41c9", "kind": "equivalent", "version": "13.12", "label": "13.12", "title": "Fix overly strict assertion in jsonpath code", "evidence": {"same_day": true, "patch_ids": ["f1e37ee56ecf82bc0cd5a8071e7438c7"], "statement_hash": "26966f1981e3ef64ced3ffa50131a7d15df38552fa949729a13421d17a5de2e6"}, "url": "/docs/compare/?release=13.12#13.12-709101d33587bcdc", "source_url": "/docs/release/13.12/#id-1.11.6.17.5"}, {"db_id": "eba2f94412c31fb1523c3bf22fc4dddf", "kind": "equivalent", "version": "12.16", "label": "12.16", "title": "Fix overly strict assertion in jsonpath code", "evidence": {"same_day": true, "patch_ids": ["f1e37ee56ecf82bc0cd5a8071e7438c7"], "statement_hash": "26966f1981e3ef64ced3ffa50131a7d15df38552fa949729a13421d17a5de2e6"}, "url": "/docs/compare/?release=12.16#12.16-4eb2216c9abdbd96", "source_url": "/docs/release/12.16/#id-1.11.6.12.5"}]}, {"id": "15.4-b063537f38db19e6", "cves": [], "html": "<p>Avoid assertion failure when processing an empty statement via the extended query protocol in an already-aborted transaction (Tom Lane) <a href=\"https://postgr.es/c/cb74f7bec\">§</a></p>", "text": "Avoid assertion failure when processing an empty statement via the extended query protocol in an already-aborted transaction (Tom Lane) §", "title": "Avoid assertion failure when processing an empty statement via the extended query protocol in an already-aborted transaction", "commits": ["cb74f7bec"], "section": "Changes", "category": "improvement", "source_url": "/docs/release/15.4/#id-1.11.6.21.5", "source_hash": "41586f66ae5afe89951ae1bf67500adffacd92ea26d08df1af745c649577c03e", "section_path": ["Changes"], "commit_groups": [["120ea65b8", "555b929bb", "a8be2356c", "a98a04005", "cb74f7bec", "d1fc0f382"]], "identity_text": "Avoid assertion failure when processing an empty statement via the extended query protocol in an already-aborted transaction (Tom Lane)", "commit_aliases": ["120ea65b8", "555b929bb", "a8be2356c", "a98a04005", "cb74f7bec", "d1fc0f382"], "source_commits": ["cb74f7bec"], "source_entry_id": "15.4/changes/035", "db_id": "a258f42228ecb1f58c2f8504abc82b51", "patch_ids": ["76b8835b226ceae0e20b3baeb0deb57b"], "statement_hash": "0685e7604a2f70426e9632d7348dd4ef1da6f6d4b3909b2e7def41ee3c48aab3", "relations": [{"rule": 2, "type": "equivalent", "target": "a67f4c680121b50e3857df8af8ab3351", "evidence": {"same_day": true, "patch_ids": ["76b8835b226ceae0e20b3baeb0deb57b"], "statement_hash": "0685e7604a2f70426e9632d7348dd4ef1da6f6d4b3909b2e7def41ee3c48aab3"}}, {"rule": 2, "type": "equivalent", "target": "b3a0cae2dd7ad118cf5a6e79b5429bf9", "evidence": {"same_day": true, "patch_ids": ["76b8835b226ceae0e20b3baeb0deb57b"], "statement_hash": "0685e7604a2f70426e9632d7348dd4ef1da6f6d4b3909b2e7def41ee3c48aab3"}}, {"rule": 2, "type": "equivalent", "target": "d613743ac204fb3f51a645b90a6cd0f9", "evidence": {"same_day": true, "patch_ids": ["76b8835b226ceae0e20b3baeb0deb57b"], "statement_hash": "0685e7604a2f70426e9632d7348dd4ef1da6f6d4b3909b2e7def41ee3c48aab3"}}, {"rule": 2, "type": "equivalent", "target": "f5e21dd6c0032fa4626be77324640f51", "evidence": {"same_day": true, "patch_ids": ["76b8835b226ceae0e20b3baeb0deb57b"], "statement_hash": "0685e7604a2f70426e9632d7348dd4ef1da6f6d4b3909b2e7def41ee3c48aab3"}}], "version": "15.4", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": [{"db_id": "b3a0cae2dd7ad118cf5a6e79b5429bf9", "kind": "equivalent", "version": "14.9", "label": "14.9", "title": "Avoid assertion failure when processing an empty statement via the extended query protocol in an already-aborted transaction", "evidence": {"same_day": true, "patch_ids": ["76b8835b226ceae0e20b3baeb0deb57b"], "statement_hash": "0685e7604a2f70426e9632d7348dd4ef1da6f6d4b3909b2e7def41ee3c48aab3"}, "url": "/docs/compare/?release=14.9#14.9-94c9bb6f5fac3128", "source_url": "/docs/release/14.9/#id-1.11.6.21.5"}, {"db_id": "f5e21dd6c0032fa4626be77324640f51", "kind": "equivalent", "version": "13.12", "label": "13.12", "title": "Avoid assertion failure when processing an empty statement via the extended query protocol in an already-aborted transaction", "evidence": {"same_day": true, "patch_ids": ["76b8835b226ceae0e20b3baeb0deb57b"], "statement_hash": "0685e7604a2f70426e9632d7348dd4ef1da6f6d4b3909b2e7def41ee3c48aab3"}, "url": "/docs/compare/?release=13.12#13.12-b184e575728782e1", "source_url": "/docs/release/13.12/#id-1.11.6.17.5"}, {"db_id": "a67f4c680121b50e3857df8af8ab3351", "kind": "equivalent", "version": "12.16", "label": "12.16", "title": "Avoid assertion failure when processing an empty statement via the extended query protocol in an already-aborted transaction", "evidence": {"same_day": true, "patch_ids": ["76b8835b226ceae0e20b3baeb0deb57b"], "statement_hash": "0685e7604a2f70426e9632d7348dd4ef1da6f6d4b3909b2e7def41ee3c48aab3"}, "url": "/docs/compare/?release=12.16#12.16-e194dff347229545", "source_url": "/docs/release/12.16/#id-1.11.6.12.5"}, {"db_id": "d613743ac204fb3f51a645b90a6cd0f9", "kind": "equivalent", "version": "11.21", "label": "11.21", "title": "Avoid assertion failure when processing an empty statement via the extended query protocol in an already-aborted transaction", "evidence": {"same_day": true, "patch_ids": ["76b8835b226ceae0e20b3baeb0deb57b"], "statement_hash": "0685e7604a2f70426e9632d7348dd4ef1da6f6d4b3909b2e7def41ee3c48aab3"}, "url": "/docs/compare/?release=11.21#11.21-e465e6b1b45c42f9", "source_url": "/docs/release/11.21/#id-1.11.6.6.6"}]}, {"id": "15.4-56e6a8c445bd7ea6", "cves": [], "html": "<p>Avoid assertion failure when the <code>stats_fetch_consistency</code> setting is changed intra-transaction (Kyotaro Horiguchi) <a href=\"https://postgr.es/c/ccd21e1cf\">§</a></p>", "text": "Avoid assertion failure when the stats_fetch_consistency setting is changed intra-transaction (Kyotaro Horiguchi) §", "title": "Avoid assertion failure when the stats_fetch_consistency setting is changed intra-transaction", "commits": ["ccd21e1cf"], "section": "Changes", "category": "improvement", "source_url": "/docs/release/15.4/#id-1.11.6.21.5", "source_hash": "ed659f059efe8e20dbac3ea7fa459d29fcdf6f30e9cc3c543d6a38018e272fb0", "section_path": ["Changes"], "commit_groups": [["605994651", "ccd21e1cf"]], "identity_text": "Avoid assertion failure when the stats_fetch_consistency setting is changed intra-transaction (Kyotaro Horiguchi)", "commit_aliases": ["605994651", "ccd21e1cf"], "source_commits": ["ccd21e1cf"], "source_entry_id": "15.4/changes/036", "db_id": "ac1914b727378050fa74a3e3399f022d", "patch_ids": ["575f27e5f4899b7a6459367f64260252"], "statement_hash": "5ee490675a8e77687da62670daa0b90636871610fa414082f020812e9764c7c1", "relations": [], "version": "15.4", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": []}, {"id": "15.4-81dc287a31b9130c", "cves": [], "html": "<p>Fix <code>contrib/fuzzystrmatch</code>'s Soundex <code>difference()</code> function to handle empty input sanely (Alexander Lakhin, Tom Lane) <a href=\"https://postgr.es/c/eaf99e4c4\">§</a></p>\n<p>An input string containing no alphabetic characters resulted in unpredictable output.</p>", "text": "Fix contrib/fuzzystrmatch's Soundex difference() function to handle empty input sanely (Alexander Lakhin, Tom Lane) § An input string containing no alphabetic characters resulted in unpredictable output.", "title": "Fix contrib/fuzzystrmatch's Soundex difference() function to handle empty input sanely", "commits": ["eaf99e4c4"], "section": "Changes", "category": "bugfix", "source_url": "/docs/release/15.4/#id-1.11.6.21.5", "source_hash": "ddadc60b904545750746cae203c3694d88f3a1035a46097b30cafe2c70dd2622", "section_path": ["Changes"], "commit_groups": [["0409c7fc7", "0966291a4", "1d369c9e9", "8084bf9a4", "ccd362325", "eaf99e4c4"]], "identity_text": "Fix contrib/fuzzystrmatch's Soundex difference() function to handle empty input sanely (Alexander Lakhin, Tom Lane) An input string containing no alphabetic characters resulted in unpredictable output.", "commit_aliases": ["0409c7fc7", "0966291a4", "1d369c9e9", "8084bf9a4", "ccd362325", "eaf99e4c4"], "source_commits": ["eaf99e4c4"], "source_entry_id": "15.4/changes/037", "db_id": "34d5b4cf8a88654524cbffb522fbc041", "patch_ids": ["3573a685e45d88a982ac87901164de13"], "statement_hash": "41cfc6fd0465472261ed2041a5a196fd0b52c4932e72d4182522290e79522045", "relations": [{"rule": 2, "type": "equivalent", "target": "589ea7ef503eabaab241162ee498d78e", "evidence": {"same_day": true, "patch_ids": ["3573a685e45d88a982ac87901164de13"], "statement_hash": "41cfc6fd0465472261ed2041a5a196fd0b52c4932e72d4182522290e79522045"}}, {"rule": 2, "type": "equivalent", "target": "707bef99ea3bf43e9dee5969a332577e", "evidence": {"same_day": true, "patch_ids": ["3573a685e45d88a982ac87901164de13"], "statement_hash": "41cfc6fd0465472261ed2041a5a196fd0b52c4932e72d4182522290e79522045"}}, {"rule": 2, "type": "equivalent", "target": "f044f495f143f1e40ea5915212b4ff95", "evidence": {"same_day": true, "patch_ids": ["3573a685e45d88a982ac87901164de13"], "statement_hash": "41cfc6fd0465472261ed2041a5a196fd0b52c4932e72d4182522290e79522045"}}, {"rule": 2, "type": "equivalent", "target": "fe9f918f9bcecc834808b9cb4ea0a1f7", "evidence": {"same_day": true, "patch_ids": ["3573a685e45d88a982ac87901164de13"], "statement_hash": "41cfc6fd0465472261ed2041a5a196fd0b52c4932e72d4182522290e79522045"}}], "version": "15.4", "category_label": "Bug fixes", "also_in": [], "variants": [], "related_changes": [{"db_id": "589ea7ef503eabaab241162ee498d78e", "kind": "equivalent", "version": "14.9", "label": "14.9", "title": "Fix contrib/fuzzystrmatch's Soundex difference() function to handle empty input sanely", "evidence": {"same_day": true, "patch_ids": ["3573a685e45d88a982ac87901164de13"], "statement_hash": "41cfc6fd0465472261ed2041a5a196fd0b52c4932e72d4182522290e79522045"}, "url": "/docs/compare/?release=14.9#14.9-0a97905cb225f378", "source_url": "/docs/release/14.9/#id-1.11.6.21.5"}, {"db_id": "f044f495f143f1e40ea5915212b4ff95", "kind": "equivalent", "version": "13.12", "label": "13.12", "title": "Fix contrib/fuzzystrmatch's Soundex difference() function to handle empty input sanely", "evidence": {"same_day": true, "patch_ids": ["3573a685e45d88a982ac87901164de13"], "statement_hash": "41cfc6fd0465472261ed2041a5a196fd0b52c4932e72d4182522290e79522045"}, "url": "/docs/compare/?release=13.12#13.12-5efb34abb8063d41", "source_url": "/docs/release/13.12/#id-1.11.6.17.5"}, {"db_id": "707bef99ea3bf43e9dee5969a332577e", "kind": "equivalent", "version": "12.16", "label": "12.16", "title": "Fix contrib/fuzzystrmatch's Soundex difference() function to handle empty input sanely", "evidence": {"same_day": true, "patch_ids": ["3573a685e45d88a982ac87901164de13"], "statement_hash": "41cfc6fd0465472261ed2041a5a196fd0b52c4932e72d4182522290e79522045"}, "url": "/docs/compare/?release=12.16#12.16-208f6a8de3b96b7a", "source_url": "/docs/release/12.16/#id-1.11.6.12.5"}, {"db_id": "fe9f918f9bcecc834808b9cb4ea0a1f7", "kind": "equivalent", "version": "11.21", "label": "11.21", "title": "Fix contrib/fuzzystrmatch's Soundex difference() function to handle empty input sanely", "evidence": {"same_day": true, "patch_ids": ["3573a685e45d88a982ac87901164de13"], "statement_hash": "41cfc6fd0465472261ed2041a5a196fd0b52c4932e72d4182522290e79522045"}, "url": "/docs/compare/?release=11.21#11.21-53631a1688df68bc", "source_url": "/docs/release/11.21/#id-1.11.6.6.6"}]}, {"id": "15.4-39befbe9153a0ab7", "cves": [], "html": "<p>Tighten whitespace checks in <code>contrib/hstore</code> input (Evan Jones) <a href=\"https://postgr.es/c/3a5222a43\">§</a></p>\n<p>In some cases, characters would be falsely recognized as whitespace and hence discarded.</p>", "text": "Tighten whitespace checks in contrib/hstore input (Evan Jones) § In some cases, characters would be falsely recognized as whitespace and hence discarded.", "title": "Tighten whitespace checks in contrib/hstore input", "commits": ["3a5222a43"], "section": "Changes", "category": "improvement", "source_url": "/docs/release/15.4/#id-1.11.6.21.5", "source_hash": "73633bd70e285db111451c18a3dfa5f95fed2bd3a42727814143844de3e6131f", "section_path": ["Changes"], "commit_groups": [["3a5222a43", "78bf0a256", "bbfc26d86", "d522b05c8", "e0e682945", "edf1de65e"]], "identity_text": "Tighten whitespace checks in contrib/hstore input (Evan Jones) In some cases, characters would be falsely recognized as whitespace and hence discarded.", "commit_aliases": ["3a5222a43", "78bf0a256", "bbfc26d86", "d522b05c8", "e0e682945", "edf1de65e"], "source_commits": ["3a5222a43"], "source_entry_id": "15.4/changes/038", "db_id": "b2bcc576e0da3c167f5c2cca7d134511", "patch_ids": ["fd3f2c144444723a948e4bfe891dc921"], "statement_hash": "524580b5ff643de26ebae4f2d6897913f3d0edb29e845b3efa60e970e8711f79", "relations": [{"rule": 2, "type": "equivalent", "target": "70868303dc0cc8e7eb4715210981bc64", "evidence": {"same_day": true, "patch_ids": ["fd3f2c144444723a948e4bfe891dc921"], "statement_hash": "524580b5ff643de26ebae4f2d6897913f3d0edb29e845b3efa60e970e8711f79"}}, {"rule": 2, "type": "equivalent", "target": "9630e4e0d06e311eb7d387f0ffdc4153", "evidence": {"same_day": true, "patch_ids": ["fd3f2c144444723a948e4bfe891dc921"], "statement_hash": "524580b5ff643de26ebae4f2d6897913f3d0edb29e845b3efa60e970e8711f79"}}, {"rule": 2, "type": "equivalent", "target": "a497c923fcbfeeba921329eb7569df78", "evidence": {"same_day": true, "patch_ids": ["fd3f2c144444723a948e4bfe891dc921"], "statement_hash": "524580b5ff643de26ebae4f2d6897913f3d0edb29e845b3efa60e970e8711f79"}}, {"rule": 2, "type": "equivalent", "target": "d5959c0e97bc0a541038e523bde30499", "evidence": {"same_day": true, "patch_ids": ["fd3f2c144444723a948e4bfe891dc921"], "statement_hash": "524580b5ff643de26ebae4f2d6897913f3d0edb29e845b3efa60e970e8711f79"}}], "version": "15.4", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": [{"db_id": "d5959c0e97bc0a541038e523bde30499", "kind": "equivalent", "version": "14.9", "label": "14.9", "title": "Tighten whitespace checks in contrib/hstore input", "evidence": {"same_day": true, "patch_ids": ["fd3f2c144444723a948e4bfe891dc921"], "statement_hash": "524580b5ff643de26ebae4f2d6897913f3d0edb29e845b3efa60e970e8711f79"}, "url": "/docs/compare/?release=14.9#14.9-ad615fa542616223", "source_url": "/docs/release/14.9/#id-1.11.6.21.5"}, {"db_id": "70868303dc0cc8e7eb4715210981bc64", "kind": "equivalent", "version": "13.12", "label": "13.12", "title": "Tighten whitespace checks in contrib/hstore input", "evidence": {"same_day": true, "patch_ids": ["fd3f2c144444723a948e4bfe891dc921"], "statement_hash": "524580b5ff643de26ebae4f2d6897913f3d0edb29e845b3efa60e970e8711f79"}, "url": "/docs/compare/?release=13.12#13.12-1c322c720b1120e9", "source_url": "/docs/release/13.12/#id-1.11.6.17.5"}, {"db_id": "9630e4e0d06e311eb7d387f0ffdc4153", "kind": "equivalent", "version": "12.16", "label": "12.16", "title": "Tighten whitespace checks in contrib/hstore input", "evidence": {"same_day": true, "patch_ids": ["fd3f2c144444723a948e4bfe891dc921"], "statement_hash": "524580b5ff643de26ebae4f2d6897913f3d0edb29e845b3efa60e970e8711f79"}, "url": "/docs/compare/?release=12.16#12.16-fcea2d21e85b5404", "source_url": "/docs/release/12.16/#id-1.11.6.12.5"}, {"db_id": "a497c923fcbfeeba921329eb7569df78", "kind": "equivalent", "version": "11.21", "label": "11.21", "title": "Tighten whitespace checks in contrib/hstore input", "evidence": {"same_day": true, "patch_ids": ["fd3f2c144444723a948e4bfe891dc921"], "statement_hash": "524580b5ff643de26ebae4f2d6897913f3d0edb29e845b3efa60e970e8711f79"}, "url": "/docs/compare/?release=11.21#11.21-e6724eafa4a7cf98", "source_url": "/docs/release/11.21/#id-1.11.6.6.6"}]}, {"id": "15.4-1cffa0c8d86b1514", "cves": [], "html": "<p>Disallow oversize input arrays with <code>contrib/intarray</code>'s <code>gist__int_ops</code> index opclass (Ankit Kumar Pandey, Alexander Lakhin) <a href=\"https://postgr.es/c/4be308ede\">§</a></p>\n<p>Previously this code would report a <code>NOTICE</code> but press on anyway, creating an invalid index entry that presents a risk of crashes when the index is read.</p>", "text": "Disallow oversize input arrays with contrib/intarray's gist__int_ops index opclass (Ankit Kumar Pandey, Alexander Lakhin) § Previously this code would report a NOTICE but press on anyway, creating an invalid index entry that presents a risk of crashes when the index is read.", "title": "Disallow oversize input arrays with contrib/intarray's gist__int_ops index opclass", "commits": ["4be308ede"], "section": "Changes", "category": "improvement", "source_url": "/docs/release/15.4/#id-1.11.6.21.5", "source_hash": "8c8228a4c63acdd56c756efbc3aff0b0157dfc04216d3d5f421e139637e5f351", "section_path": ["Changes"], "commit_groups": [["019a40d61", "4be308ede", "6ecc1c02a", "ab40b0395", "ae9aac64a", "c00fbe89d"]], "identity_text": "Disallow oversize input arrays with contrib/intarray's gist__int_ops index opclass (Ankit Kumar Pandey, Alexander Lakhin) Previously this code would report a NOTICE but press on anyway, creating an invalid index entry that presents a risk of crashes when the index is read.", "commit_aliases": ["019a40d61", "4be308ede", "6ecc1c02a", "ab40b0395", "ae9aac64a", "c00fbe89d"], "source_commits": ["4be308ede"], "source_entry_id": "15.4/changes/039", "db_id": "7ea5f5c4674eb601f9e72ef4cab013b0", "patch_ids": ["0109410501fac99f629213e8604443d1"], "statement_hash": "a478fa4c5073f50e1e10c2ab79b3ca3c6048ec0dc96e71ed4a7548e911e34a8e", "relations": [{"rule": 2, "type": "equivalent", "target": "5e0e6d65dc2e4f4aaa42f607a04e9b0e", "evidence": {"same_day": true, "patch_ids": ["0109410501fac99f629213e8604443d1"], "statement_hash": "a478fa4c5073f50e1e10c2ab79b3ca3c6048ec0dc96e71ed4a7548e911e34a8e"}}, {"rule": 2, "type": "equivalent", "target": "7469e2c3cf3de774562c6a504ff42c34", "evidence": {"same_day": true, "patch_ids": ["0109410501fac99f629213e8604443d1"], "statement_hash": "a478fa4c5073f50e1e10c2ab79b3ca3c6048ec0dc96e71ed4a7548e911e34a8e"}}, {"rule": 2, "type": "equivalent", "target": "9d51556381941ed7ec438ef36bc5112a", "evidence": {"same_day": true, "patch_ids": ["0109410501fac99f629213e8604443d1"], "statement_hash": "a478fa4c5073f50e1e10c2ab79b3ca3c6048ec0dc96e71ed4a7548e911e34a8e"}}, {"rule": 2, "type": "equivalent", "target": "b11f905439066cd9aab8d7b64038369a", "evidence": {"same_day": true, "patch_ids": ["0109410501fac99f629213e8604443d1"], "statement_hash": "a478fa4c5073f50e1e10c2ab79b3ca3c6048ec0dc96e71ed4a7548e911e34a8e"}}], "version": "15.4", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": [{"db_id": "5e0e6d65dc2e4f4aaa42f607a04e9b0e", "kind": "equivalent", "version": "14.9", "label": "14.9", "title": "Disallow oversize input arrays with contrib/intarray's gist__int_ops index opclass", "evidence": {"same_day": true, "patch_ids": ["0109410501fac99f629213e8604443d1"], "statement_hash": "a478fa4c5073f50e1e10c2ab79b3ca3c6048ec0dc96e71ed4a7548e911e34a8e"}, "url": "/docs/compare/?release=14.9#14.9-5b4d36d637d423fd", "source_url": "/docs/release/14.9/#id-1.11.6.21.5"}, {"db_id": "b11f905439066cd9aab8d7b64038369a", "kind": "equivalent", "version": "13.12", "label": "13.12", "title": "Disallow oversize input arrays with contrib/intarray's gist__int_ops index opclass", "evidence": {"same_day": true, "patch_ids": ["0109410501fac99f629213e8604443d1"], "statement_hash": "a478fa4c5073f50e1e10c2ab79b3ca3c6048ec0dc96e71ed4a7548e911e34a8e"}, "url": "/docs/compare/?release=13.12#13.12-78f1865b153b61c5", "source_url": "/docs/release/13.12/#id-1.11.6.17.5"}, {"db_id": "7469e2c3cf3de774562c6a504ff42c34", "kind": "equivalent", "version": "12.16", "label": "12.16", "title": "Disallow oversize input arrays with contrib/intarray's gist__int_ops index opclass", "evidence": {"same_day": true, "patch_ids": ["0109410501fac99f629213e8604443d1"], "statement_hash": "a478fa4c5073f50e1e10c2ab79b3ca3c6048ec0dc96e71ed4a7548e911e34a8e"}, "url": "/docs/compare/?release=12.16#12.16-bfb87d662327dcea", "source_url": "/docs/release/12.16/#id-1.11.6.12.5"}, {"db_id": "9d51556381941ed7ec438ef36bc5112a", "kind": "equivalent", "version": "11.21", "label": "11.21", "title": "Disallow oversize input arrays with contrib/intarray's gist__int_ops index opclass", "evidence": {"same_day": true, "patch_ids": ["0109410501fac99f629213e8604443d1"], "statement_hash": "a478fa4c5073f50e1e10c2ab79b3ca3c6048ec0dc96e71ed4a7548e911e34a8e"}, "url": "/docs/compare/?release=11.21#11.21-ee4119693b647c14", "source_url": "/docs/release/11.21/#id-1.11.6.6.6"}]}, {"id": "15.4-3162ce8e4c581938", "cves": [], "html": "<p>Avoid useless double decompression of GiST index entries in <code>contrib/intarray</code> (Konstantin Knizhnik, Matthias van de Meent, Tom Lane) <a href=\"https://postgr.es/c/5cb461989\">§</a></p>", "text": "Avoid useless double decompression of GiST index entries in contrib/intarray (Konstantin Knizhnik, Matthias van de Meent, Tom Lane) §", "title": "Avoid useless double decompression of GiST index entries in contrib/intarray", "commits": ["5cb461989"], "section": "Changes", "category": "improvement", "source_url": "/docs/release/15.4/#id-1.11.6.21.5", "source_hash": "7169bd7e3b22a25c0dd5af986ebc423cd58564ea2b2333f3ea321ebaa4920c54", "section_path": ["Changes"], "commit_groups": [["5cb461989", "7fffcc2ee", "8aac9759b", "8d8f37149", "9f70f6d4c", "a6991f763", "e27f3f52c"]], "identity_text": "Avoid useless double decompression of GiST index entries in contrib/intarray (Konstantin Knizhnik, Matthias van de Meent, Tom Lane)", "commit_aliases": ["5cb461989", "7fffcc2ee", "8aac9759b", "8d8f37149", "9f70f6d4c", "a6991f763", "e27f3f52c"], "source_commits": ["5cb461989"], "source_entry_id": "15.4/changes/040", "db_id": "9ed9ace97321cdaa59223da10ca1b85b", "patch_ids": ["2ab80b9da3cdc1e81922aeb27d0c66e7"], "statement_hash": "6b26f1dd17b3679bdfc50529b671286bdf78b336f5848d2ac73885d6d43bbcd3", "relations": [{"rule": 2, "type": "equivalent", "target": "0c7608e0799fa9d3bd7575889e780086", "evidence": {"same_day": true, "patch_ids": ["2ab80b9da3cdc1e81922aeb27d0c66e7"], "statement_hash": "6b26f1dd17b3679bdfc50529b671286bdf78b336f5848d2ac73885d6d43bbcd3"}}, {"rule": 2, "type": "equivalent", "target": "1c221c67fb081abd2d101126f4dfcc03", "evidence": {"same_day": true, "patch_ids": ["2ab80b9da3cdc1e81922aeb27d0c66e7"], "statement_hash": "6b26f1dd17b3679bdfc50529b671286bdf78b336f5848d2ac73885d6d43bbcd3"}}, {"rule": 2, "type": "equivalent", "target": "504806bf47f0584c3363f741f732a9a5", "evidence": {"same_day": true, "patch_ids": ["2ab80b9da3cdc1e81922aeb27d0c66e7"], "statement_hash": "6b26f1dd17b3679bdfc50529b671286bdf78b336f5848d2ac73885d6d43bbcd3"}}, {"rule": 2, "type": "equivalent", "target": "9d392475f610082e5ffda498c1b1bc74", "evidence": {"same_day": true, "patch_ids": ["2ab80b9da3cdc1e81922aeb27d0c66e7"], "statement_hash": "6b26f1dd17b3679bdfc50529b671286bdf78b336f5848d2ac73885d6d43bbcd3"}}], "version": "15.4", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": [{"db_id": "1c221c67fb081abd2d101126f4dfcc03", "kind": "equivalent", "version": "14.9", "label": "14.9", "title": "Avoid useless double decompression of GiST index entries in contrib/intarray", "evidence": {"same_day": true, "patch_ids": ["2ab80b9da3cdc1e81922aeb27d0c66e7"], "statement_hash": "6b26f1dd17b3679bdfc50529b671286bdf78b336f5848d2ac73885d6d43bbcd3"}, "url": "/docs/compare/?release=14.9#14.9-0e6226e50b9a1f9d", "source_url": "/docs/release/14.9/#id-1.11.6.21.5"}, {"db_id": "9d392475f610082e5ffda498c1b1bc74", "kind": "equivalent", "version": "13.12", "label": "13.12", "title": "Avoid useless double decompression of GiST index entries in contrib/intarray", "evidence": {"same_day": true, "patch_ids": ["2ab80b9da3cdc1e81922aeb27d0c66e7"], "statement_hash": "6b26f1dd17b3679bdfc50529b671286bdf78b336f5848d2ac73885d6d43bbcd3"}, "url": "/docs/compare/?release=13.12#13.12-766c07d6aa929eb3", "source_url": "/docs/release/13.12/#id-1.11.6.17.5"}, {"db_id": "504806bf47f0584c3363f741f732a9a5", "kind": "equivalent", "version": "12.16", "label": "12.16", "title": "Avoid useless double decompression of GiST index entries in contrib/intarray", "evidence": {"same_day": true, "patch_ids": ["2ab80b9da3cdc1e81922aeb27d0c66e7"], "statement_hash": "6b26f1dd17b3679bdfc50529b671286bdf78b336f5848d2ac73885d6d43bbcd3"}, "url": "/docs/compare/?release=12.16#12.16-19f79385caa15687", "source_url": "/docs/release/12.16/#id-1.11.6.12.5"}, {"db_id": "0c7608e0799fa9d3bd7575889e780086", "kind": "equivalent", "version": "11.21", "label": "11.21", "title": "Avoid useless double decompression of GiST index entries in contrib/intarray", "evidence": {"same_day": true, "patch_ids": ["2ab80b9da3cdc1e81922aeb27d0c66e7"], "statement_hash": "6b26f1dd17b3679bdfc50529b671286bdf78b336f5848d2ac73885d6d43bbcd3"}, "url": "/docs/compare/?release=11.21#11.21-8a9191489c345396", "source_url": "/docs/release/11.21/#id-1.11.6.6.6"}]}, {"id": "15.4-42af327f0e2b2d1e", "cves": [], "html": "<p>Fix <code>contrib/pageinspect</code>'s <code>gist_page_items()</code> function to work when there are included index columns (Alexander Lakhin, Michael Paquier) <a href=\"https://postgr.es/c/2dd778221\">§</a></p>\n<p>Previously, if the index has included columns, <code>gist_page_items()</code> would fail to display those values on index leaf pages, or crash outright on non-leaf pages.</p>", "text": "Fix contrib/pageinspect's gist_page_items() function to work when there are included index columns (Alexander Lakhin, Michael Paquier) § Previously, if the index has included columns, gist_page_items() would fail to display those values on index leaf pages, or crash outright on non-leaf pages.", "title": "Fix contrib/pageinspect's gist_page_items() function to work when there are included index columns", "commits": ["2dd778221"], "section": "Changes", "category": "bugfix", "source_url": "/docs/release/15.4/#id-1.11.6.21.5", "source_hash": "f236a2af44db88f8a650f9610c2430722d4ed89cc0fad2ac2313fa075d2f2ef5", "section_path": ["Changes"], "commit_groups": [["2dd778221", "e72580232", "e7bff46e5"]], "identity_text": "Fix contrib/pageinspect's gist_page_items() function to work when there are included index columns (Alexander Lakhin, Michael Paquier) Previously, if the index has included columns, gist_page_items() would fail to display those values on index leaf pages, or crash outright on non-leaf pages.", "commit_aliases": ["2dd778221", "e72580232", "e7bff46e5"], "source_commits": ["2dd778221"], "source_entry_id": "15.4/changes/041", "db_id": "4176415f7e1fd1297caedf0610ab6a6c", "patch_ids": ["78c2fc73c8bc7f483ddcc710ba8ec11b"], "statement_hash": "bc48b49203192d169927ccc366c2d34038d33cf9c3e8febcdd9363a08c74b048", "relations": [{"rule": 2, "type": "equivalent", "target": "8779fd3cff0da891a7c0a26f4e5f0fdf", "evidence": {"same_day": true, "patch_ids": ["78c2fc73c8bc7f483ddcc710ba8ec11b"], "statement_hash": "bc48b49203192d169927ccc366c2d34038d33cf9c3e8febcdd9363a08c74b048"}}], "version": "15.4", "category_label": "Bug fixes", "also_in": [], "variants": [], "related_changes": [{"db_id": "8779fd3cff0da891a7c0a26f4e5f0fdf", "kind": "equivalent", "version": "14.9", "label": "14.9", "title": "Fix contrib/pageinspect's gist_page_items() function to work when there are included index columns", "evidence": {"same_day": true, "patch_ids": ["78c2fc73c8bc7f483ddcc710ba8ec11b"], "statement_hash": "bc48b49203192d169927ccc366c2d34038d33cf9c3e8febcdd9363a08c74b048"}, "url": "/docs/compare/?release=14.9#14.9-3d54376c6987b080", "source_url": "/docs/release/14.9/#id-1.11.6.21.5"}]}, {"id": "15.4-50ec1f8e459d06d1", "cves": [], "html": "<p>In <span>psql</span>, ignore the <code>PSQL_WATCH_PAGER</code> environment variable when stdin/stdout are not a terminal (Tom Lane) <a href=\"https://postgr.es/c/bc478a0a8\">§</a></p>\n<p>This corresponds to the treatment of <code>PSQL_PAGER</code> in commands besides <code>\\watch</code>.</p>", "text": "In psql, ignore the PSQL_WATCH_PAGER environment variable when stdin/stdout are not a terminal (Tom Lane) § This corresponds to the treatment of PSQL_PAGER in commands besides \\watch.", "title": "In psql, ignore the PSQL_WATCH_PAGER environment variable when stdin/stdout are not a terminal", "commits": ["bc478a0a8"], "section": "Changes", "category": "improvement", "source_url": "/docs/release/15.4/#id-1.11.6.21.5", "source_hash": "e1fa2879a4db2865dbf014e1fd31614ba542ea8dba54cca1f5583753ac721679", "section_path": ["Changes"], "commit_groups": [["51b2c0879", "bc478a0a8"]], "identity_text": "In psql, ignore the PSQL_WATCH_PAGER environment variable when stdin/stdout are not a terminal (Tom Lane) This corresponds to the treatment of PSQL_PAGER in commands besides \\watch.", "commit_aliases": ["51b2c0879", "bc478a0a8"], "source_commits": ["bc478a0a8"], "source_entry_id": "15.4/changes/042", "db_id": "4bbc31bf476afdb32077be313bdc79b4", "patch_ids": ["8bf9e2c27c82ea7dea21623044b83ece"], "statement_hash": "6d23790e28e8d5922652ffde6b9d5a7f9807d7674135decfd2af60b57745916a", "relations": [], "version": "15.4", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": []}, {"id": "15.4-cadc872ab1a9ca0d", "cves": [], "html": "<p>Fix <span>pg_dump</span> to correctly handle new-style SQL-language functions whose bodies require parse-time dependencies on unique indexes (Tom Lane) <a href=\"https://postgr.es/c/ca9e79274\">§</a></p>\n<p>Such cases can arise from <code>GROUP BY</code> and <code>ON CONFLICT</code> clauses, for example. The function must then be postponed until after the unique index in the dump output, but <span>pg_dump</span> did not do that and instead printed a warning about <span>“<span>could not resolve dependency loop</span>”</span>.</p>", "text": "Fix pg_dump to correctly handle new-style SQL-language functions whose bodies require parse-time dependencies on unique indexes (Tom Lane) § Such cases can arise from GROUP BY and ON CONFLICT clauses, for example. The function must then be postponed until after the unique index in the dump output, but pg_dump did not do that and instead printed a warning about “could not resolve dependency loop”.", "title": "Fix pg_dump to correctly handle new-style SQL-language functions whose bodies require parse-time dependencies on unique indexes", "commits": ["ca9e79274"], "section": "Changes", "category": "bugfix", "source_url": "/docs/release/15.4/#id-1.11.6.21.5", "source_hash": "f941be92da347a51a171460adb0a787adfb7d0aee59d29ce7083afd05f698d5f", "section_path": ["Changes"], "commit_groups": [["016107478", "ca9e79274", "d6f549d7a"]], "identity_text": "Fix pg_dump to correctly handle new-style SQL-language functions whose bodies require parse-time dependencies on unique indexes (Tom Lane) Such cases can arise from GROUP BY and ON CONFLICT clauses, for example. The function must then be postponed until after the unique index in the dump output, but pg_dump did not do that and instead printed a warning about could not resolve dependency loop.", "commit_aliases": ["016107478", "ca9e79274", "d6f549d7a"], "source_commits": ["ca9e79274"], "source_entry_id": "15.4/changes/043", "db_id": "a9ed87cd7edf07c41e44368320f88119", "patch_ids": ["6303958f154250b1c3f96051c43906ea"], "statement_hash": "4650be529ca60d511e9cd6c8f38bbf2f4996e681f5f77e81c8afe8ce79194d44", "relations": [{"rule": 2, "type": "equivalent", "target": "7005d30295fd3ffeddf169ac94af3a8f", "evidence": {"same_day": true, "patch_ids": ["6303958f154250b1c3f96051c43906ea"], "statement_hash": "4650be529ca60d511e9cd6c8f38bbf2f4996e681f5f77e81c8afe8ce79194d44"}}], "version": "15.4", "category_label": "Bug fixes", "also_in": [], "variants": [], "related_changes": [{"db_id": "7005d30295fd3ffeddf169ac94af3a8f", "kind": "equivalent", "version": "14.9", "label": "14.9", "title": "Fix pg_dump to correctly handle new-style SQL-language functions whose bodies require parse-time dependencies on unique indexes", "evidence": {"same_day": true, "patch_ids": ["6303958f154250b1c3f96051c43906ea"], "statement_hash": "4650be529ca60d511e9cd6c8f38bbf2f4996e681f5f77e81c8afe8ce79194d44"}, "url": "/docs/compare/?release=14.9#14.9-dc3c807443f52ad4", "source_url": "/docs/release/14.9/#id-1.11.6.21.5"}]}, {"id": "15.4-5bb7ce1fc5c85a67", "cves": [], "html": "<p>Improve <span>pg_dump</span>'s display of details about dependency-loop problems (Tom Lane) <a href=\"https://postgr.es/c/751ba1a7c\">§</a></p>", "text": "Improve pg_dump's display of details about dependency-loop problems (Tom Lane) §", "title": "Improve pg_dump's display of details about dependency-loop problems", "commits": ["751ba1a7c"], "section": "Changes", "category": "improvement", "source_url": "/docs/release/15.4/#id-1.11.6.21.5", "source_hash": "ca4290774cc9ce3fc772da71e2d41c14cde8db0b065559c2b527be8863e7f972", "section_path": ["Changes"], "commit_groups": [["751ba1a7c", "b3f32a6c3"]], "identity_text": "Improve pg_dump's display of details about dependency-loop problems (Tom Lane)", "commit_aliases": ["751ba1a7c", "b3f32a6c3"], "source_commits": ["751ba1a7c"], "source_entry_id": "15.4/changes/044", "db_id": "81e8cc27018cfbdc12e5b5ad5610104b", "patch_ids": ["c455833941893d1525b090035baaaa25"], "statement_hash": "71fe26a4f0afd57965953712874e02de271256c58969857bd8e8b20bb6b6d6c1", "relations": [], "version": "15.4", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": []}, {"id": "15.4-c3d310a8904a1c1a", "cves": [], "html": "<p>Avoid crash in <span>pgbench</span> with an empty pipeline and prepared mode (Álvaro Herrera) <a href=\"https://postgr.es/c/34f511965\">§</a></p>", "text": "Avoid crash in pgbench with an empty pipeline and prepared mode (Álvaro Herrera) §", "title": "Avoid crash in pgbench with an empty pipeline and prepared mode", "commits": ["34f511965"], "section": "Changes", "category": "bugfix", "source_url": "/docs/release/15.4/#id-1.11.6.21.5", "source_hash": "db8053d4edb2f8643fc5336e964c4aaeba8c4476f5ece95b98b128c358192568", "section_path": ["Changes"], "commit_groups": [["34f511965", "8f5e42d33"]], "identity_text": "Avoid crash in pgbench with an empty pipeline and prepared mode (Álvaro Herrera)", "commit_aliases": ["34f511965", "8f5e42d33"], "source_commits": ["34f511965"], "source_entry_id": "15.4/changes/045", "db_id": "8c8d147c8c54c614d8d0ed113fce4991", "patch_ids": ["775b0d4dc0fc1fea6d1ae7e2ff9ead9c"], "statement_hash": "dba5a4fda53f1301e03ff145d73e3e82609a473677ea8175bf2fcccd3e3c31c7", "relations": [], "version": "15.4", "category_label": "Bug fixes", "also_in": [], "variants": [], "related_changes": []}, {"id": "15.4-ec58eedd690d0c79", "cves": [], "html": "<p>Ensure that <code>pg_index</code>.<code>indisreplident</code> is kept up-to-date in relation cache entries (Shruthi Gowda) <a href=\"https://postgr.es/c/eb3abec4b\">§</a></p>\n<p>This value could be stale in some cases. There is no core code that relies on the relation cache's copy, so this is only a latent bug as far as Postgres itself is concerned; but there may be extensions for which it is a live bug.</p>", "text": "Ensure that pg_index.indisreplident is kept up-to-date in relation cache entries (Shruthi Gowda) § This value could be stale in some cases. There is no core code that relies on the relation cache's copy, so this is only a latent bug as far as Postgres itself is concerned; but there may be extensions for which it is a live bug.", "title": "Ensure that pg_index.indisreplident is kept up-to-date in relation cache entries", "commits": ["eb3abec4b"], "section": "Changes", "category": "improvement", "source_url": "/docs/release/15.4/#id-1.11.6.21.5", "source_hash": "95e049ec0b86fc0c9ade64c65ae580658a427e643ba1affb61589f10f8af6ed1", "section_path": ["Changes"], "commit_groups": [["27da47122", "7af65523a", "7d27493b7", "a5ea825f9", "bdaaf1bf1", "db9813819", "eb3abec4b"]], "identity_text": "Ensure that pg_index.indisreplident is kept up-to-date in relation cache entries (Shruthi Gowda) This value could be stale in some cases. There is no core code that relies on the relation cache's copy, so this is only a latent bug as far as Postgres itself is concerned; but there may be extensions for which it is a live bug.", "commit_aliases": ["27da47122", "7af65523a", "7d27493b7", "a5ea825f9", "bdaaf1bf1", "db9813819", "eb3abec4b"], "source_commits": ["eb3abec4b"], "source_entry_id": "15.4/changes/046", "db_id": "353be48d94116827aff24b74f626b228", "patch_ids": ["7344652588632a0c4415c55b4b739c6f"], "statement_hash": "72937390549dfce012da639d78afc186c9d67156b38e53ace013fd39a45f8fcb", "relations": [{"rule": 2, "type": "equivalent", "target": "087a3d7bc0ccf63380150eb167de02c1", "evidence": {"same_day": true, "patch_ids": ["7344652588632a0c4415c55b4b739c6f"], "statement_hash": "72937390549dfce012da639d78afc186c9d67156b38e53ace013fd39a45f8fcb"}}, {"rule": 2, "type": "equivalent", "target": "724745c515fac379552757a1fda318d9", "evidence": {"same_day": true, "patch_ids": ["7344652588632a0c4415c55b4b739c6f"], "statement_hash": "72937390549dfce012da639d78afc186c9d67156b38e53ace013fd39a45f8fcb"}}, {"rule": 2, "type": "equivalent", "target": "8d608552460feb08bafd4f6346d4798a", "evidence": {"same_day": true, "patch_ids": ["7344652588632a0c4415c55b4b739c6f"], "statement_hash": "72937390549dfce012da639d78afc186c9d67156b38e53ace013fd39a45f8fcb"}}, {"rule": 2, "type": "equivalent", "target": "a6ed51f9d342c94f174bfd73f5766a1d", "evidence": {"same_day": true, "patch_ids": ["7344652588632a0c4415c55b4b739c6f"], "statement_hash": "72937390549dfce012da639d78afc186c9d67156b38e53ace013fd39a45f8fcb"}}], "version": "15.4", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": [{"db_id": "724745c515fac379552757a1fda318d9", "kind": "equivalent", "version": "14.9", "label": "14.9", "title": "Ensure that pg_index.indisreplident is kept up-to-date in relation cache entries", "evidence": {"same_day": true, "patch_ids": ["7344652588632a0c4415c55b4b739c6f"], "statement_hash": "72937390549dfce012da639d78afc186c9d67156b38e53ace013fd39a45f8fcb"}, "url": "/docs/compare/?release=14.9#14.9-79b655b3a5967899", "source_url": "/docs/release/14.9/#id-1.11.6.21.5"}, {"db_id": "a6ed51f9d342c94f174bfd73f5766a1d", "kind": "equivalent", "version": "13.12", "label": "13.12", "title": "Ensure that pg_index.indisreplident is kept up-to-date in relation cache entries", "evidence": {"same_day": true, "patch_ids": ["7344652588632a0c4415c55b4b739c6f"], "statement_hash": "72937390549dfce012da639d78afc186c9d67156b38e53ace013fd39a45f8fcb"}, "url": "/docs/compare/?release=13.12#13.12-77ed1850dee16bc4", "source_url": "/docs/release/13.12/#id-1.11.6.17.5"}, {"db_id": "8d608552460feb08bafd4f6346d4798a", "kind": "equivalent", "version": "12.16", "label": "12.16", "title": "Ensure that pg_index.indisreplident is kept up-to-date in relation cache entries", "evidence": {"same_day": true, "patch_ids": ["7344652588632a0c4415c55b4b739c6f"], "statement_hash": "72937390549dfce012da639d78afc186c9d67156b38e53ace013fd39a45f8fcb"}, "url": "/docs/compare/?release=12.16#12.16-a251d09b5796e2f8", "source_url": "/docs/release/12.16/#id-1.11.6.12.5"}, {"db_id": "087a3d7bc0ccf63380150eb167de02c1", "kind": "equivalent", "version": "11.21", "label": "11.21", "title": "Ensure that pg_index.indisreplident is kept up-to-date in relation cache entries", "evidence": {"same_day": true, "patch_ids": ["7344652588632a0c4415c55b4b739c6f"], "statement_hash": "72937390549dfce012da639d78afc186c9d67156b38e53ace013fd39a45f8fcb"}, "url": "/docs/compare/?release=11.21#11.21-0effab04821f3794", "source_url": "/docs/release/11.21/#id-1.11.6.6.6"}]}, {"id": "15.4-85c1284a1a93c76a", "cves": [], "html": "<p>Fix <span>make_etags</span> script to work with non-Exuberant <span>ctags</span> (Masahiko Sawada) <a href=\"https://postgr.es/c/af26f28b9\">§</a></p>", "text": "Fix make_etags script to work with non-Exuberant ctags (Masahiko Sawada) §", "title": "Fix make_etags script to work with non-Exuberant ctags", "commits": ["af26f28b9"], "section": "Changes", "category": "bugfix", "source_url": "/docs/release/15.4/#id-1.11.6.21.5", "source_hash": "a750f079ef8e17a5b9a8860bef4595bae0e7044b90acf14c1c1c4eac58a1484b", "section_path": ["Changes"], "commit_groups": [["ae66716bf", "af26f28b9"]], "identity_text": "Fix make_etags script to work with non-Exuberant ctags (Masahiko Sawada)", "commit_aliases": ["ae66716bf", "af26f28b9"], "source_commits": ["af26f28b9"], "source_entry_id": "15.4/changes/047", "db_id": "afbe65f11e336c5ac604b31c3d3adfce", "patch_ids": ["3d16098599d6b692aba447aac3a18325"], "statement_hash": "0105d8d24d22b75a78d79dd16ee50c8818956336f4a2fee10e9554e8651c1a61", "relations": [], "version": "15.4", "category_label": "Bug fixes", "also_in": [], "variants": [], "related_changes": []}]}], "stats": [{"key": "all", "label": "All changes", "count": 47}, {"key": "feature", "label": "Features", "count": 0}, {"key": "bugfix", "label": "Bug fixes", "count": 22}, {"key": "security", "label": "Security", "count": 2}, {"key": "performance", "label": "Performance", "count": 0}, {"key": "compatibility", "label": "Compatibility", "count": 0}, {"key": "improvement", "label": "Improvements", "count": 23}], "total": 47, "release_count": 1, "cross_major": false, "cve_count": 2, "cves": [{"id": "CVE-2023-39417", "url": "https://www.postgresql.org/support/security/CVE-2023-39417/", "fixed": {"11": "11.21", "12": "12.16", "13": "13.12", "14": "14.9", "15": "15.4"}, "score": 7.5, "title": "Disallow substituting a schema or owner name into an extension script if the name contains a quote, backslash, or dollar sign", "vector": "AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H", "affected": {"11": "11", "12": "12", "13": "13", "14": "14", "15": "15"}, "component": "core server", "published": {"11": "2023-08-10", "12": "2023-08-10", "13": "2023-08-10", "14": "2023-08-10", "15": "2023-08-10"}, "introduced": {}, "cvss_version": "3.0", "description_en": "An extension script is vulnerable if it uses @extowner@ , @extschema@ , or @extschema:...@ inside a quoting construct (dollar quoting, '' , or \"\" ). No bundled extension is vulnerable. Vulnerable uses do appear in a documentation example and in non-bundled extensions. Hence, the attack prerequisite is an administrator having installed files of a vulnerable, trusted, non-bundled extension. Subject to that prerequisite, this enables an attacker having database-level CREATE privilege to execute arbitrary code as the bootstrap superuser. PostgreSQL will block this attack in the core server, so there's no need to modify individual extensions.\n\nThe PostgreSQL project thanks Micah Gates, Valerie Woolard, Tim Carey-Smith, and Christoph Berg for reporting this problem.", "first_published": "2023-08-10", "fixed_version": "15.4"}, {"id": "CVE-2023-39418", "url": "https://www.postgresql.org/support/security/CVE-2023-39418/", "fixed": {"15": "15.4"}, "score": 3.1, "title": "Fix MERGE to enforce row security policies properly", "vector": "AV:N/AC:H/PR:L/UI:N/S:U/C:N/I:L/A:N", "affected": {"15": "15"}, "component": "core server", "published": {"15": "2023-08-10"}, "introduced": {}, "cvss_version": "3.0", "description_en": "PostgreSQL 15 introduced the MERGE command, which fails to test new rows against row security policies defined for UPDATE and SELECT . If UPDATE and SELECT policies forbid some row that INSERT policies do not forbid, a user could store such rows. Subsequent consequences are application-dependent. This affects only databases that have used CREATE POLICY to define a row security policy.\n\nThe PostgreSQL project thanks Dean Rasheed for reporting this problem.", "first_published": "2023-08-10", "fixed_version": "15.4"}], "cve_available": true, "remaining_cves": [], "security_regressions": [], "warnings": [], "candidate_count": 47, "already_in_source_count": 0, "duplicate_count": 0, "excluded_count": 0, "exclusions": [], "source_as_of": "2026-09-26", "security_as_of": "2026-09-26"}