{"format": 1, "mode": "release", "from_release": null, "to_release": {"date": "2023-02-09", "build": "15.2", "major": "15", "minor": 2, "manual": "15", "status": "stable", "doc_git": "", "version": "15.2", "eol_date": "2027-11-11", "date_text": "2023-02-09", "supported": true, "manual_url": "/docs/15/release-15-2.html", "source_url": "/docs/release/15.2/", "entry_count": 58, "placeholder": false, "content_hash": "f7b16ba98eead927459db34497943a59d1ee4078b73c0a06ed66202951b47432", "manual_build": "15.19", "source_as_of": "", "changes_count": 58, "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 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.2", "status_label": "Supported", "eol": "2027-11-11", "age_days": 1328, "support_days": 408}, "groups": [{"date": "2023-02-09", "build": "15.2", "major": "15", "minor": 2, "manual": "15", "status": "stable", "doc_git": "", "version": "15.2", "eol_date": "2027-11-11", "date_text": "2023-02-09", "supported": true, "manual_url": "/docs/15/release-15-2.html", "source_url": "/docs/release/15.2/", "entry_count": 58, "placeholder": false, "content_hash": "f7b16ba98eead927459db34497943a59d1ee4078b73c0a06ed66202951b47432", "manual_build": "15.19", "source_as_of": "", "changes_count": 58, "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 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.2", "status_label": "Supported", "eol": "2027-11-11", "age_days": 1328, "support_days": 408, "entries": [{"id": "15.2-259471afd131584c", "cves": ["CVE-2022-41862"], "html": "<p><span>libpq</span> can leak memory contents after GSSAPI transport encryption initiation fails (Jacob Champion) <a href=\"https://postgr.es/c/715c345dd\">§</a></p>\n<p>A modified server, or an unauthenticated man-in-the-middle, can send a not-zero-terminated error message during setup of GSSAPI (Kerberos) transport encryption. <span>libpq</span> will then copy that string, as well as following bytes in application memory up to the next zero byte, to its error report. Depending on what the calling application does with the error report, this could result in disclosure of application memory contents. There is also a small probability of a crash due to reading beyond the end of memory. Fix by properly zero-terminating the server message. (CVE-2022-41862)</p>", "text": "libpq can leak memory contents after GSSAPI transport encryption initiation fails (Jacob Champion) § A modified server, or an unauthenticated man-in-the-middle, can send a not-zero-terminated error message during setup of GSSAPI (Kerberos) transport encryption. libpq will then copy that string, as well as following bytes in application memory up to the next zero byte, to its error report. Depending on what the calling application does with the error report, this could result in disclosure of application memory contents. There is also a small probability of a crash due to reading beyond the end of memory. Fix by properly zero-terminating the server message. (CVE-2022-41862)", "title": "libpq can leak memory contents after GSSAPI transport encryption initiation fails", "commits": ["715c345dd"], "section": "Changes", "category": "security", "source_url": "/docs/release/15.2/#id-1.11.6.23.5", "source_hash": "d80d398510af01515791c63af8d7b13d0774ab472599ea71f6d193f1a4019b76", "section_path": ["Changes"], "commit_groups": [["3f7342671", "45a945ee9", "626f2c1d6", "715c345dd", "71c37797d"]], "identity_text": "libpq can leak memory contents after GSSAPI transport encryption initiation fails (Jacob Champion) A modified server, or an unauthenticated man-in-the-middle, can send a not-zero-terminated error message during setup of GSSAPI (Kerberos) transport encryption. libpq will then copy that string, as well as following bytes in application memory up to the next zero byte, to its error report. Depending on what the calling application does with the error report, this could result in disclosure of application memory contents. There is also a small probability of a crash due to reading beyond the end of memory. Fix by properly zero-terminating the server message. (CVE-2022-41862)", "commit_aliases": ["3f7342671", "45a945ee9", "626f2c1d6", "715c345dd", "71c37797d"], "source_commits": ["715c345dd"], "source_entry_id": "15.2/changes/001", "db_id": "6972d6a9e3a94239c67a54106708d323", "patch_ids": ["142cd68f769e669eacd8f52bba9a8194"], "statement_hash": "f21c6966376d22108f84c4b98159922066b1883abb84007f1eda0a7248894956", "relations": [{"rule": 2, "type": "equivalent", "target": "44c395e376c7cd3c93049fcea68d1398", "evidence": {"same_day": true, "patch_ids": ["142cd68f769e669eacd8f52bba9a8194"], "statement_hash": "f21c6966376d22108f84c4b98159922066b1883abb84007f1eda0a7248894956"}}, {"rule": 2, "type": "equivalent", "target": "84097a2dbd0e2416e528ec1b7e12655f", "evidence": {"same_day": true, "patch_ids": ["142cd68f769e669eacd8f52bba9a8194"], "statement_hash": "f21c6966376d22108f84c4b98159922066b1883abb84007f1eda0a7248894956"}}, {"rule": 2, "type": "equivalent", "target": "e645f7bfeb83e81c2ad8f0c9a3338368", "evidence": {"same_day": true, "patch_ids": ["142cd68f769e669eacd8f52bba9a8194"], "statement_hash": "f21c6966376d22108f84c4b98159922066b1883abb84007f1eda0a7248894956"}}], "version": "15.2", "category_label": "Security", "also_in": [], "variants": [], "related_changes": [{"db_id": "84097a2dbd0e2416e528ec1b7e12655f", "kind": "equivalent", "version": "14.7", "label": "14.7", "title": "libpq can leak memory contents after GSSAPI transport encryption initiation fails", "evidence": {"same_day": true, "patch_ids": ["142cd68f769e669eacd8f52bba9a8194"], "statement_hash": "f21c6966376d22108f84c4b98159922066b1883abb84007f1eda0a7248894956"}, "url": "/docs/compare/?release=14.7#14.7-2dbd2730debe7f61", "source_url": "/docs/release/14.7/#id-1.11.6.23.5"}, {"db_id": "e645f7bfeb83e81c2ad8f0c9a3338368", "kind": "equivalent", "version": "13.10", "label": "13.10", "title": "libpq can leak memory contents after GSSAPI transport encryption initiation fails", "evidence": {"same_day": true, "patch_ids": ["142cd68f769e669eacd8f52bba9a8194"], "statement_hash": "f21c6966376d22108f84c4b98159922066b1883abb84007f1eda0a7248894956"}, "url": "/docs/compare/?release=13.10#13.10-23596c45357945bb", "source_url": "/docs/release/13.10/#id-1.11.6.19.5"}, {"db_id": "44c395e376c7cd3c93049fcea68d1398", "kind": "equivalent", "version": "12.14", "label": "12.14", "title": "libpq can leak memory contents after GSSAPI transport encryption initiation fails", "evidence": {"same_day": true, "patch_ids": ["142cd68f769e669eacd8f52bba9a8194"], "statement_hash": "f21c6966376d22108f84c4b98159922066b1883abb84007f1eda0a7248894956"}, "url": "/docs/compare/?release=12.14#12.14-3713e48c990849a8", "source_url": "/docs/release/12.14/#id-1.11.6.14.5"}]}, {"id": "15.2-2e176e2fa32fffae", "cves": [], "html": "<p>Fix calculation of which <code>GENERATED</code> columns need to be updated in child tables during an <code>UPDATE</code> on a partitioned table or inheritance tree (Amit Langote, Tom Lane) <a href=\"https://postgr.es/c/3706cc97a\">§</a> <a href=\"https://postgr.es/c/a8f7687a0\">§</a></p>\n<p>This fixes failure to update <code>GENERATED</code> columns that do not exist in the parent table, or that have different dependencies than are in the parent column's generation expression.</p>", "text": "Fix calculation of which GENERATED columns need to be updated in child tables during an UPDATE on a partitioned table or inheritance tree (Amit Langote, Tom Lane) § § This fixes failure to update GENERATED columns that do not exist in the parent table, or that have different dependencies than are in the parent column's generation expression.", "title": "Fix calculation of which GENERATED columns need to be updated in child tables during an UPDATE on a partitioned table or inheritance tree", "commits": ["3706cc97a", "a8f7687a0"], "section": "Changes", "category": "bugfix", "source_url": "/docs/release/15.2/#id-1.11.6.23.5", "source_hash": "364a602906a09275852fc758f08957413883b25c790d0bd14ba80fe420eacd19", "section_path": ["Changes"], "commit_groups": [["3706cc97a", "3f7836ff6", "8cd190e13", "ad38e2f89"], ["3f244d020", "787db4be9", "a8b88c26f", "a8f7687a0"]], "identity_text": "Fix calculation of which GENERATED columns need to be updated in child tables during an UPDATE on a partitioned table or inheritance tree (Amit Langote, Tom Lane) This fixes failure to update GENERATED columns that do not exist in the parent table, or that have different dependencies than are in the parent column's generation expression.", "commit_aliases": ["3706cc97a", "3f244d020", "3f7836ff6", "787db4be9", "8cd190e13", "a8b88c26f", "a8f7687a0", "ad38e2f89"], "source_commits": ["3706cc97a", "a8f7687a0"], "source_entry_id": "15.2/changes/002", "db_id": "eae4625adfa24ba694649fd09bd5d4e4", "patch_ids": ["01f62be59166f5c6668bef5733db1c4b", "a759e41f3f15ec116dfd08974e9504a9"], "statement_hash": "30bc4c73aed0b8f84dfb4fabfa8a9e5ea4a5ef0184bb0eedf4efa6f9d3fac03c", "relations": [{"rule": 2, "type": "equivalent", "target": "cf2236dc97084a71b94880d429a87e3f", "evidence": {"same_day": true, "patch_ids": ["01f62be59166f5c6668bef5733db1c4b", "a759e41f3f15ec116dfd08974e9504a9"], "statement_hash": "30bc4c73aed0b8f84dfb4fabfa8a9e5ea4a5ef0184bb0eedf4efa6f9d3fac03c"}}, {"rule": 2, "type": "equivalent", "target": "f7d98a502ae0858cbfaa59f1f56f65ef", "evidence": {"same_day": true, "patch_ids": ["01f62be59166f5c6668bef5733db1c4b", "a759e41f3f15ec116dfd08974e9504a9"], "statement_hash": "30bc4c73aed0b8f84dfb4fabfa8a9e5ea4a5ef0184bb0eedf4efa6f9d3fac03c"}}], "version": "15.2", "category_label": "Bug fixes", "also_in": [], "variants": [], "related_changes": [{"db_id": "cf2236dc97084a71b94880d429a87e3f", "kind": "equivalent", "version": "14.7", "label": "14.7", "title": "Fix calculation of which GENERATED columns need to be updated in child tables during an UPDATE on a partitioned table or inheritance tree", "evidence": {"same_day": true, "patch_ids": ["01f62be59166f5c6668bef5733db1c4b", "a759e41f3f15ec116dfd08974e9504a9"], "statement_hash": "30bc4c73aed0b8f84dfb4fabfa8a9e5ea4a5ef0184bb0eedf4efa6f9d3fac03c"}, "url": "/docs/compare/?release=14.7#14.7-7bccf392a64268ee", "source_url": "/docs/release/14.7/#id-1.11.6.23.5"}, {"db_id": "f7d98a502ae0858cbfaa59f1f56f65ef", "kind": "equivalent", "version": "13.10", "label": "13.10", "title": "Fix calculation of which GENERATED columns need to be updated in child tables during an UPDATE on a partitioned table or inheritance tree", "evidence": {"same_day": true, "patch_ids": ["01f62be59166f5c6668bef5733db1c4b", "a759e41f3f15ec116dfd08974e9504a9"], "statement_hash": "30bc4c73aed0b8f84dfb4fabfa8a9e5ea4a5ef0184bb0eedf4efa6f9d3fac03c"}, "url": "/docs/compare/?release=13.10#13.10-307e659f094aa973", "source_url": "/docs/release/13.10/#id-1.11.6.19.5"}]}, {"id": "15.2-f683d84fe319aa47", "cves": [], "html": "<p>Fix possible failure of <code>MERGE</code> to compute <code>GENERATED</code> columns (Dean Rasheed) <a href=\"https://postgr.es/c/4785af9e6\">§</a></p>\n<p>When the first row-level action of the <code>MERGE</code> was an <code>UPDATE</code>, any subsequent <code>INSERT</code> actions would fail to compute <code>GENERATED</code> columns that were deemed unnecessary to compute for the <code>UPDATE</code> action (due to not depending on any of the <code>UPDATE</code> target columns).</p>", "text": "Fix possible failure of MERGE to compute GENERATED columns (Dean Rasheed) § When the first row-level action of the MERGE was an UPDATE, any subsequent INSERT actions would fail to compute GENERATED columns that were deemed unnecessary to compute for the UPDATE action (due to not depending on any of the UPDATE target columns).", "title": "Fix possible failure of MERGE to compute GENERATED columns", "commits": ["4785af9e6"], "section": "Changes", "category": "bugfix", "source_url": "/docs/release/15.2/#id-1.11.6.23.5", "source_hash": "c8aa52ee95a3ca2c4ac89924828ef1a754f0f54bebe56edfa2a4ba8cc727e859", "section_path": ["Changes"], "commit_groups": [["4785af9e6", "fe9e658f4"]], "identity_text": "Fix possible failure of MERGE to compute GENERATED columns (Dean Rasheed) When the first row-level action of the MERGE was an UPDATE, any subsequent INSERT actions would fail to compute GENERATED columns that were deemed unnecessary to compute for the UPDATE action (due to not depending on any of the UPDATE target columns).", "commit_aliases": ["4785af9e6", "fe9e658f4"], "source_commits": ["4785af9e6"], "source_entry_id": "15.2/changes/003", "db_id": "8e83661cb379f28c5ca16ff702f88dfd", "patch_ids": ["aded13ab72e58e159c1b9f760d0ea8f7"], "statement_hash": "73618f765f0c109315c7f4813d0c5094e1ecc94532eeb7ee16b6115a310671a8", "relations": [], "version": "15.2", "category_label": "Bug fixes", "also_in": [], "variants": [], "related_changes": []}, {"id": "15.2-d73433f1fbe85b43", "cves": [], "html": "<p>Fix <code>MERGE</code>'s check for unreachable <code>WHEN</code> clauses (Dean Rasheed) <a href=\"https://postgr.es/c/38255f2d0\">§</a></p>\n<p>A <code>WHEN</code> clause following an unconditional <code>WHEN</code> clause should be rejected as unreachable, but this case was not always detected.</p>", "text": "Fix MERGE's check for unreachable WHEN clauses (Dean Rasheed) § A WHEN clause following an unconditional WHEN clause should be rejected as unreachable, but this case was not always detected.", "title": "Fix MERGE's check for unreachable WHEN clauses", "commits": ["38255f2d0"], "section": "Changes", "category": "bugfix", "source_url": "/docs/release/15.2/#id-1.11.6.23.5", "source_hash": "8e0c66f2b5d1602f82545c3c3efb126c6431ca198564936677ac92981eec66ce", "section_path": ["Changes"], "commit_groups": [["38255f2d0", "f026c16a2"]], "identity_text": "Fix MERGE's check for unreachable WHEN clauses (Dean Rasheed) A WHEN clause following an unconditional WHEN clause should be rejected as unreachable, but this case was not always detected.", "commit_aliases": ["38255f2d0", "f026c16a2"], "source_commits": ["38255f2d0"], "source_entry_id": "15.2/changes/004", "db_id": "07749dce7c944f27b10b1d0173b9e1ef", "patch_ids": ["84376e23d3986b8cfe15715725a5c2ff"], "statement_hash": "3a3f424d0dee002f5cfa63158b0b10dbead4060b36e402a9dd288269a920f838", "relations": [], "version": "15.2", "category_label": "Bug fixes", "also_in": [], "variants": [], "related_changes": []}, {"id": "15.2-19b68cfb8a03c0b4", "cves": [], "html": "<p>Fix <code>MERGE</code>'s rule-detection test (Dean Rasheed) <a href=\"https://postgr.es/c/04d61bfe6\">§</a></p>\n<p><code>MERGE</code> is not supported on tables with rules; but it also failed on tables that once had rules but no longer do.</p>", "text": "Fix MERGE's rule-detection test (Dean Rasheed) § MERGE is not supported on tables with rules; but it also failed on tables that once had rules but no longer do.", "title": "Fix MERGE's rule-detection test", "commits": ["04d61bfe6"], "section": "Changes", "category": "bugfix", "source_url": "/docs/release/15.2/#id-1.11.6.23.5", "source_hash": "4d44e7b7136cdbf2105d085acaf0cf4f11372b55392e7e0cec84daf518eac7d1", "section_path": ["Changes"], "commit_groups": [["04d61bfe6", "7b2ccc5e0"]], "identity_text": "Fix MERGE's rule-detection test (Dean Rasheed) MERGE is not supported on tables with rules; but it also failed on tables that once had rules but no longer do.", "commit_aliases": ["04d61bfe6", "7b2ccc5e0"], "source_commits": ["04d61bfe6"], "source_entry_id": "15.2/changes/005", "db_id": "58fcc337288133727de079c27281c126", "patch_ids": ["8afa0977637d99738bf6685113b6df0b"], "statement_hash": "5ee34902d91a8b759b936cd429f2ff62187cbbcedceaecce6ca3952b8ee73093", "relations": [], "version": "15.2", "category_label": "Bug fixes", "also_in": [], "variants": [], "related_changes": []}, {"id": "15.2-9d9cb31065c50995", "cves": [], "html": "<p>In <code>MERGE</code>, don't count a <code>DO NOTHING</code> action as a processed tuple (Álvaro Herrera) <a href=\"https://postgr.es/c/3d45edcef\">§</a></p>\n<p>This makes the code's behavior match the documentation.</p>", "text": "In MERGE, don't count a DO NOTHING action as a processed tuple (Álvaro Herrera) § This makes the code's behavior match the documentation.", "title": "In MERGE, don't count a DO NOTHING action as a processed tuple", "commits": ["3d45edcef"], "section": "Changes", "category": "improvement", "source_url": "/docs/release/15.2/#id-1.11.6.23.5", "source_hash": "fa040bf503ed4c56570c99b326aa1693e4c9a014aeebe87e745e4b151dc08792", "section_path": ["Changes"], "commit_groups": [["3d45edcef", "6ff5aa129"]], "identity_text": "In MERGE, don't count a DO NOTHING action as a processed tuple (Álvaro Herrera) This makes the code's behavior match the documentation.", "commit_aliases": ["3d45edcef", "6ff5aa129"], "source_commits": ["3d45edcef"], "source_entry_id": "15.2/changes/006", "db_id": "8707d94cfdebbcf3c6e8ff5df4800cfd", "patch_ids": ["d322645ab091806941fcc43e773ce7e2"], "statement_hash": "5b8006da9d98ceae2b7554ee86b690dfb1b70e2fbdb7fabb6fc4b1766a89f118", "relations": [], "version": "15.2", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": []}, {"id": "15.2-1455eb176816d0a6", "cves": [], "html": "<p>Allow a <code>WITH RECURSIVE ... CYCLE</code> CTE to access its output column (Tom Lane) <a href=\"https://postgr.es/c/ae98debf7\">§</a></p>\n<p>A reference to the <code>SET</code> column from within the CTE would fail with <span>“<span>cache lookup failed for type 0</span>”</span>.</p>", "text": "Allow a WITH RECURSIVE ... CYCLE CTE to access its output column (Tom Lane) § A reference to the SET column from within the CTE would fail with “cache lookup failed for type 0”.", "title": "Allow a WITH RECURSIVE ... CYCLE CTE to access its output column", "commits": ["ae98debf7"], "section": "Changes", "category": "improvement", "source_url": "/docs/release/15.2/#id-1.11.6.23.5", "source_hash": "5538418337e828f9b13b3d31fee7fa9e259fc5ea49a719b8361d1ac387323d9f", "section_path": ["Changes"], "commit_groups": [["935277b24", "ae98debf7", "ea5ae4cae"]], "identity_text": "Allow a WITH RECURSIVE ... CYCLE CTE to access its output column (Tom Lane) A reference to the SET column from within the CTE would fail with cache lookup failed for type 0.", "commit_aliases": ["935277b24", "ae98debf7", "ea5ae4cae"], "source_commits": ["ae98debf7"], "source_entry_id": "15.2/changes/007", "db_id": "f395514d94a5592ed37f47d8285005d9", "patch_ids": ["90a3b3aa4081fadf47fe7051871758eb"], "statement_hash": "59ffee32550c79fc2dbbfd49025e74786f1e8a66d521fe04aed91cc24057b58e", "relations": [{"rule": 2, "type": "equivalent", "target": "f0cdb40b8f1de382f2c6e8a59ff35188", "evidence": {"same_day": true, "patch_ids": ["90a3b3aa4081fadf47fe7051871758eb"], "statement_hash": "59ffee32550c79fc2dbbfd49025e74786f1e8a66d521fe04aed91cc24057b58e"}}], "version": "15.2", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": [{"db_id": "f0cdb40b8f1de382f2c6e8a59ff35188", "kind": "equivalent", "version": "14.7", "label": "14.7", "title": "Allow a WITH RECURSIVE ... CYCLE CTE to access its output column", "evidence": {"same_day": true, "patch_ids": ["90a3b3aa4081fadf47fe7051871758eb"], "statement_hash": "59ffee32550c79fc2dbbfd49025e74786f1e8a66d521fe04aed91cc24057b58e"}, "url": "/docs/compare/?release=14.7#14.7-e7062a3f49517498", "source_url": "/docs/release/14.7/#id-1.11.6.23.5"}]}, {"id": "15.2-210c78d0b90b62b0", "cves": [], "html": "<p>Fix handling of pending inserts when doing a bulk insertion to a foreign table (Etsuro Fujita) <a href=\"https://postgr.es/c/fc02019c0\">§</a> <a href=\"https://postgr.es/c/a0bf7a0ec\">§</a></p>\n<p>In some cases pending insertions were not flushed to the FDW soon enough, leading to logical inconsistencies, for example <code>BEFORE ROW</code> triggers not seeing rows they should be able to see.</p>", "text": "Fix handling of pending inserts when doing a bulk insertion to a foreign table (Etsuro Fujita) § § In some cases pending insertions were not flushed to the FDW soon enough, leading to logical inconsistencies, for example BEFORE ROW triggers not seeing rows they should be able to see.", "title": "Fix handling of pending inserts when doing a bulk insertion to a foreign table", "commits": ["a0bf7a0ec", "fc02019c0"], "section": "Changes", "category": "bugfix", "source_url": "/docs/release/15.2/#id-1.11.6.23.5", "source_hash": "52c9a7d6bf4945d62a5991491ed3142e7d2f4e21ef08efa9723eb6abce067240", "section_path": ["Changes"], "commit_groups": [["4b3e37993", "a0bf7a0ec", "d43a97ef4"], ["e52245228", "fc02019c0", "ffbb7e65a"]], "identity_text": "Fix handling of pending inserts when doing a bulk insertion to a foreign table (Etsuro Fujita) In some cases pending insertions were not flushed to the FDW soon enough, leading to logical inconsistencies, for example BEFORE ROW triggers not seeing rows they should be able to see.", "commit_aliases": ["4b3e37993", "a0bf7a0ec", "d43a97ef4", "e52245228", "fc02019c0", "ffbb7e65a"], "source_commits": ["a0bf7a0ec", "fc02019c0"], "source_entry_id": "15.2/changes/008", "db_id": "bc63026c050c4ba8d13b262092d5d471", "patch_ids": ["1a4fb8762a6cf5338d7b69561df92f61", "d2c160405a8fe7f9db54a8dfdd12aa42"], "statement_hash": "f1da812f5f26232b870a9b3d0509b1f0fd9e50816011b51f9b2748efae81d747", "relations": [{"rule": 2, "type": "equivalent", "target": "aec26822735c959702be6476d1b9e6a5", "evidence": {"same_day": true, "patch_ids": ["1a4fb8762a6cf5338d7b69561df92f61", "d2c160405a8fe7f9db54a8dfdd12aa42"], "statement_hash": "f1da812f5f26232b870a9b3d0509b1f0fd9e50816011b51f9b2748efae81d747"}}], "version": "15.2", "category_label": "Bug fixes", "also_in": [], "variants": [], "related_changes": [{"db_id": "aec26822735c959702be6476d1b9e6a5", "kind": "equivalent", "version": "14.7", "label": "14.7", "title": "Fix handling of pending inserts when doing a bulk insertion to a foreign table", "evidence": {"same_day": true, "patch_ids": ["1a4fb8762a6cf5338d7b69561df92f61", "d2c160405a8fe7f9db54a8dfdd12aa42"], "statement_hash": "f1da812f5f26232b870a9b3d0509b1f0fd9e50816011b51f9b2748efae81d747"}, "url": "/docs/compare/?release=14.7#14.7-036d6a0a63e71371", "source_url": "/docs/release/14.7/#id-1.11.6.23.5"}]}, {"id": "15.2-d34b9e2237c256d6", "cves": [], "html": "<p>Allow <code>REPLICA IDENTITY</code> to be set on an index that's not (yet) valid (Tom Lane) <a href=\"https://postgr.es/c/9e4288ce6\">§</a></p>\n<p>When <span>pg_dump</span> dumps a partitioned index that's marked <code>REPLICA IDENTITY</code>, it generates a command sequence that applies <code>REPLICA IDENTITY</code> before the partitioned index has been marked valid, causing restore to fail. There seems no very good reason to prohibit doing it in that order, so allow it. The marking will have no effect anyway until the index becomes valid.</p>", "text": "Allow REPLICA IDENTITY to be set on an index that's not (yet) valid (Tom Lane) § When pg_dump dumps a partitioned index that's marked REPLICA IDENTITY, it generates a command sequence that applies REPLICA IDENTITY before the partitioned index has been marked valid, causing restore to fail. There seems no very good reason to prohibit doing it in that order, so allow it. The marking will have no effect anyway until the index becomes valid.", "title": "Allow REPLICA IDENTITY to be set on an index that's not (yet) valid", "commits": ["9e4288ce6"], "section": "Changes", "category": "improvement", "source_url": "/docs/release/15.2/#id-1.11.6.23.5", "source_hash": "7b06269326e2c6273e6bee9335d5053691b419ac05719c232e8853c9b311926b", "section_path": ["Changes"], "commit_groups": [["6c122edde", "70ec756b0", "72d611109", "9e4288ce6", "a5f3f2fce", "c9f7f9264"]], "identity_text": "Allow REPLICA IDENTITY to be set on an index that's not (yet) valid (Tom Lane) When pg_dump dumps a partitioned index that's marked REPLICA IDENTITY, it generates a command sequence that applies REPLICA IDENTITY before the partitioned index has been marked valid, causing restore to fail. There seems no very good reason to prohibit doing it in that order, so allow it. The marking will have no effect anyway until the index becomes valid.", "commit_aliases": ["6c122edde", "70ec756b0", "72d611109", "9e4288ce6", "a5f3f2fce", "c9f7f9264"], "source_commits": ["9e4288ce6"], "source_entry_id": "15.2/changes/009", "db_id": "0aeb84e627df0d8d5e7ef347e661f5f9", "patch_ids": ["b3485e20a15878646364a0f7d7e03abf"], "statement_hash": "31c1295aa478addc29020a4f323c3abaccd48a6c3972d6a29ad8b66bd976ab8a", "relations": [{"rule": 2, "type": "equivalent", "target": "3f790328de10e7fc933ed95457fdb83f", "evidence": {"same_day": true, "patch_ids": ["b3485e20a15878646364a0f7d7e03abf"], "statement_hash": "31c1295aa478addc29020a4f323c3abaccd48a6c3972d6a29ad8b66bd976ab8a"}}, {"rule": 2, "type": "equivalent", "target": "7053bd7c056971fec7669bd485a4bb11", "evidence": {"same_day": true, "patch_ids": ["b3485e20a15878646364a0f7d7e03abf"], "statement_hash": "31c1295aa478addc29020a4f323c3abaccd48a6c3972d6a29ad8b66bd976ab8a"}}, {"rule": 2, "type": "equivalent", "target": "acd96d95c2928bc08480bb5df5601606", "evidence": {"same_day": true, "patch_ids": ["b3485e20a15878646364a0f7d7e03abf"], "statement_hash": "31c1295aa478addc29020a4f323c3abaccd48a6c3972d6a29ad8b66bd976ab8a"}}, {"rule": 2, "type": "equivalent", "target": "ce555d67f7c0c48bdefe55099d14e617", "evidence": {"same_day": true, "patch_ids": ["b3485e20a15878646364a0f7d7e03abf"], "statement_hash": "31c1295aa478addc29020a4f323c3abaccd48a6c3972d6a29ad8b66bd976ab8a"}}], "version": "15.2", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": [{"db_id": "acd96d95c2928bc08480bb5df5601606", "kind": "equivalent", "version": "14.7", "label": "14.7", "title": "Allow REPLICA IDENTITY to be set on an index that's not (yet) valid", "evidence": {"same_day": true, "patch_ids": ["b3485e20a15878646364a0f7d7e03abf"], "statement_hash": "31c1295aa478addc29020a4f323c3abaccd48a6c3972d6a29ad8b66bd976ab8a"}, "url": "/docs/compare/?release=14.7#14.7-4732ae265dcc19e5", "source_url": "/docs/release/14.7/#id-1.11.6.23.5"}, {"db_id": "ce555d67f7c0c48bdefe55099d14e617", "kind": "equivalent", "version": "13.10", "label": "13.10", "title": "Allow REPLICA IDENTITY to be set on an index that's not (yet) valid", "evidence": {"same_day": true, "patch_ids": ["b3485e20a15878646364a0f7d7e03abf"], "statement_hash": "31c1295aa478addc29020a4f323c3abaccd48a6c3972d6a29ad8b66bd976ab8a"}, "url": "/docs/compare/?release=13.10#13.10-c574973997c163ed", "source_url": "/docs/release/13.10/#id-1.11.6.19.5"}, {"db_id": "7053bd7c056971fec7669bd485a4bb11", "kind": "equivalent", "version": "12.14", "label": "12.14", "title": "Allow REPLICA IDENTITY to be set on an index that's not (yet) valid", "evidence": {"same_day": true, "patch_ids": ["b3485e20a15878646364a0f7d7e03abf"], "statement_hash": "31c1295aa478addc29020a4f323c3abaccd48a6c3972d6a29ad8b66bd976ab8a"}, "url": "/docs/compare/?release=12.14#12.14-817e462388f523ee", "source_url": "/docs/release/12.14/#id-1.11.6.14.5"}, {"db_id": "3f790328de10e7fc933ed95457fdb83f", "kind": "equivalent", "version": "11.19", "label": "11.19", "title": "Allow REPLICA IDENTITY to be set on an index that's not (yet) valid", "evidence": {"same_day": true, "patch_ids": ["b3485e20a15878646364a0f7d7e03abf"], "statement_hash": "31c1295aa478addc29020a4f323c3abaccd48a6c3972d6a29ad8b66bd976ab8a"}, "url": "/docs/compare/?release=11.19#11.19-9e1107ee3a3bea5b", "source_url": "/docs/release/11.19/#id-1.11.6.8.6"}]}, {"id": "15.2-71525791e9a340a1", "cves": [], "html": "<p>Fix handling of <code>DEFAULT</code> markers in rules that perform an <code>INSERT</code> from a multi-row <code>VALUES</code> list (Dean Rasheed) <a href=\"https://postgr.es/c/c67204db6\">§</a></p>\n<p>In some cases a <code>DEFAULT</code> marker would not get replaced with the proper default-value expression, leading to an <span>“<span>unrecognized node type</span>”</span> error.</p>", "text": "Fix handling of DEFAULT markers in rules that perform an INSERT from a multi-row VALUES list (Dean Rasheed) § In some cases a DEFAULT marker would not get replaced with the proper default-value expression, leading to an “unrecognized node type” error.", "title": "Fix handling of DEFAULT markers in rules that perform an INSERT from a multi-row VALUES list", "commits": ["c67204db6"], "section": "Changes", "category": "bugfix", "source_url": "/docs/release/15.2/#id-1.11.6.23.5", "source_hash": "652416a50aea30727607e0a991bef8543412dac51c90396241e85928447f9093", "section_path": ["Changes"], "commit_groups": [["2605643a3", "2c7ed9f75", "30f9b03a0", "33f600f04", "3bed88123", "c67204db6"]], "identity_text": "Fix handling of DEFAULT markers in rules that perform an INSERT from a multi-row VALUES list (Dean Rasheed) In some cases a DEFAULT marker would not get replaced with the proper default-value expression, leading to an unrecognized node type error.", "commit_aliases": ["2605643a3", "2c7ed9f75", "30f9b03a0", "33f600f04", "3bed88123", "c67204db6"], "source_commits": ["c67204db6"], "source_entry_id": "15.2/changes/010", "db_id": "5a821f29a47876bb4449e882365ff1de", "patch_ids": ["bb9b91e277a743ab72aa91910cd7e2b3"], "statement_hash": "0caab1e8c40409d72f0c79b0794ac9b22d0334cff92c6611cc16c2e14922a8c4", "relations": [{"rule": 2, "type": "equivalent", "target": "737c83087c46e2496c9cb98493c41f8d", "evidence": {"same_day": true, "patch_ids": ["bb9b91e277a743ab72aa91910cd7e2b3"], "statement_hash": "0caab1e8c40409d72f0c79b0794ac9b22d0334cff92c6611cc16c2e14922a8c4"}}, {"rule": 2, "type": "equivalent", "target": "907ccceb8731d0471c65f6826d0e2bfa", "evidence": {"same_day": true, "patch_ids": ["bb9b91e277a743ab72aa91910cd7e2b3"], "statement_hash": "0caab1e8c40409d72f0c79b0794ac9b22d0334cff92c6611cc16c2e14922a8c4"}}, {"rule": 2, "type": "equivalent", "target": "c3c3f52a61ae6de2f6d43ada2914208a", "evidence": {"same_day": true, "patch_ids": ["bb9b91e277a743ab72aa91910cd7e2b3"], "statement_hash": "0caab1e8c40409d72f0c79b0794ac9b22d0334cff92c6611cc16c2e14922a8c4"}}, {"rule": 2, "type": "equivalent", "target": "f7599640396a0152b760a1ba2f99f2c3", "evidence": {"same_day": true, "patch_ids": ["bb9b91e277a743ab72aa91910cd7e2b3"], "statement_hash": "0caab1e8c40409d72f0c79b0794ac9b22d0334cff92c6611cc16c2e14922a8c4"}}], "version": "15.2", "category_label": "Bug fixes", "also_in": [], "variants": [], "related_changes": [{"db_id": "c3c3f52a61ae6de2f6d43ada2914208a", "kind": "equivalent", "version": "14.7", "label": "14.7", "title": "Fix handling of DEFAULT markers in rules that perform an INSERT from a multi-row VALUES list", "evidence": {"same_day": true, "patch_ids": ["bb9b91e277a743ab72aa91910cd7e2b3"], "statement_hash": "0caab1e8c40409d72f0c79b0794ac9b22d0334cff92c6611cc16c2e14922a8c4"}, "url": "/docs/compare/?release=14.7#14.7-bdc27682c6061010", "source_url": "/docs/release/14.7/#id-1.11.6.23.5"}, {"db_id": "f7599640396a0152b760a1ba2f99f2c3", "kind": "equivalent", "version": "13.10", "label": "13.10", "title": "Fix handling of DEFAULT markers in rules that perform an INSERT from a multi-row VALUES list", "evidence": {"same_day": true, "patch_ids": ["bb9b91e277a743ab72aa91910cd7e2b3"], "statement_hash": "0caab1e8c40409d72f0c79b0794ac9b22d0334cff92c6611cc16c2e14922a8c4"}, "url": "/docs/compare/?release=13.10#13.10-6402cc5b0ca6f99d", "source_url": "/docs/release/13.10/#id-1.11.6.19.5"}, {"db_id": "737c83087c46e2496c9cb98493c41f8d", "kind": "equivalent", "version": "12.14", "label": "12.14", "title": "Fix handling of DEFAULT markers in rules that perform an INSERT from a multi-row VALUES list", "evidence": {"same_day": true, "patch_ids": ["bb9b91e277a743ab72aa91910cd7e2b3"], "statement_hash": "0caab1e8c40409d72f0c79b0794ac9b22d0334cff92c6611cc16c2e14922a8c4"}, "url": "/docs/compare/?release=12.14#12.14-02bed84c008a6886", "source_url": "/docs/release/12.14/#id-1.11.6.14.5"}, {"db_id": "907ccceb8731d0471c65f6826d0e2bfa", "kind": "equivalent", "version": "11.19", "label": "11.19", "title": "Fix handling of DEFAULT markers in rules that perform an INSERT from a multi-row VALUES list", "evidence": {"same_day": true, "patch_ids": ["bb9b91e277a743ab72aa91910cd7e2b3"], "statement_hash": "0caab1e8c40409d72f0c79b0794ac9b22d0334cff92c6611cc16c2e14922a8c4"}, "url": "/docs/compare/?release=11.19#11.19-584c5e4beb79181d", "source_url": "/docs/release/11.19/#id-1.11.6.8.6"}]}, {"id": "15.2-c4009bf4fd633af4", "cves": [], "html": "<p>Reject uses of undefined variables in <code>jsonpath</code> existence checks (Alexander Korotkov, David G. Johnston) <a href=\"https://postgr.es/c/4dc3f94fa\">§</a></p>\n<p>While <code>jsonpath</code> match operators threw an error for an undefined variable in the path pattern, the existence operators silently treated it as a match.</p>", "text": "Reject uses of undefined variables in jsonpath existence checks (Alexander Korotkov, David G. Johnston) § While jsonpath match operators threw an error for an undefined variable in the path pattern, the existence operators silently treated it as a match.", "title": "Reject uses of undefined variables in jsonpath existence checks", "commits": ["4dc3f94fa"], "section": "Changes", "category": "improvement", "source_url": "/docs/release/15.2/#id-1.11.6.23.5", "source_hash": "622f5fd3f738a3a6ced331e0ce17ced0ae9c1a9b4b08ae30d10f74506e09fbc4", "section_path": ["Changes"], "commit_groups": [["0d9221f1d", "2ff3ac3b5", "3161ae86c", "4dc3f94fa", "9e24e4781"]], "identity_text": "Reject uses of undefined variables in jsonpath existence checks (Alexander Korotkov, David G. Johnston) While jsonpath match operators threw an error for an undefined variable in the path pattern, the existence operators silently treated it as a match.", "commit_aliases": ["0d9221f1d", "2ff3ac3b5", "3161ae86c", "4dc3f94fa", "9e24e4781"], "source_commits": ["4dc3f94fa"], "source_entry_id": "15.2/changes/011", "db_id": "0d6693c85bb37cb9deb47153b6720642", "patch_ids": ["5e37a3278165a23a189b7a9da5576244"], "statement_hash": "b7af9317b0ee9045f7ae71eb2bdc0d156e4d0214818dc8ab45a5416a15e1219a", "relations": [{"rule": 2, "type": "equivalent", "target": "5fd14357573b1a6c62e82c8de2df2133", "evidence": {"same_day": true, "patch_ids": ["5e37a3278165a23a189b7a9da5576244"], "statement_hash": "b7af9317b0ee9045f7ae71eb2bdc0d156e4d0214818dc8ab45a5416a15e1219a"}}, {"rule": 2, "type": "equivalent", "target": "921c8c380d8ed93971d9551e659076d1", "evidence": {"same_day": true, "patch_ids": ["5e37a3278165a23a189b7a9da5576244"], "statement_hash": "b7af9317b0ee9045f7ae71eb2bdc0d156e4d0214818dc8ab45a5416a15e1219a"}}, {"rule": 2, "type": "equivalent", "target": "f355f551385e952f26acc2ef243b43f1", "evidence": {"same_day": true, "patch_ids": ["5e37a3278165a23a189b7a9da5576244"], "statement_hash": "b7af9317b0ee9045f7ae71eb2bdc0d156e4d0214818dc8ab45a5416a15e1219a"}}], "version": "15.2", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": [{"db_id": "f355f551385e952f26acc2ef243b43f1", "kind": "equivalent", "version": "14.7", "label": "14.7", "title": "Reject uses of undefined variables in jsonpath existence checks", "evidence": {"same_day": true, "patch_ids": ["5e37a3278165a23a189b7a9da5576244"], "statement_hash": "b7af9317b0ee9045f7ae71eb2bdc0d156e4d0214818dc8ab45a5416a15e1219a"}, "url": "/docs/compare/?release=14.7#14.7-9713493c361f02ef", "source_url": "/docs/release/14.7/#id-1.11.6.23.5"}, {"db_id": "921c8c380d8ed93971d9551e659076d1", "kind": "equivalent", "version": "13.10", "label": "13.10", "title": "Reject uses of undefined variables in jsonpath existence checks", "evidence": {"same_day": true, "patch_ids": ["5e37a3278165a23a189b7a9da5576244"], "statement_hash": "b7af9317b0ee9045f7ae71eb2bdc0d156e4d0214818dc8ab45a5416a15e1219a"}, "url": "/docs/compare/?release=13.10#13.10-f8d0c3d44692dfac", "source_url": "/docs/release/13.10/#id-1.11.6.19.5"}, {"db_id": "5fd14357573b1a6c62e82c8de2df2133", "kind": "equivalent", "version": "12.14", "label": "12.14", "title": "Reject uses of undefined variables in jsonpath existence checks", "evidence": {"same_day": true, "patch_ids": ["5e37a3278165a23a189b7a9da5576244"], "statement_hash": "b7af9317b0ee9045f7ae71eb2bdc0d156e4d0214818dc8ab45a5416a15e1219a"}, "url": "/docs/compare/?release=12.14#12.14-e5d5b787a263d9d3", "source_url": "/docs/release/12.14/#id-1.11.6.14.5"}]}, {"id": "15.2-bc5efda348fbf929", "cves": [], "html": "<p>Fix <code>jsonb</code> subscripting to cope with toasted subscript values (Tom Lane, David G. Johnston) <a href=\"https://postgr.es/c/d79b76b10\">§</a></p>\n<p>Using a text value fetched directly from a table as a <code>jsonb</code> subscript was likely to fail. Fetches would usually not find any matching element. Assignments could store the value with a garbage key, although keys long enough to cause that problem are probably rare in the field.</p>", "text": "Fix jsonb subscripting to cope with toasted subscript values (Tom Lane, David G. Johnston) § Using a text value fetched directly from a table as a jsonb subscript was likely to fail. Fetches would usually not find any matching element. Assignments could store the value with a garbage key, although keys long enough to cause that problem are probably rare in the field.", "title": "Fix jsonb subscripting to cope with toasted subscript values", "commits": ["d79b76b10"], "section": "Changes", "category": "bugfix", "source_url": "/docs/release/15.2/#id-1.11.6.23.5", "source_hash": "a6e3b96a10fb38376da3fa057e516ccba1986ce7f5f60e6a1e38592cd567e2c8", "section_path": ["Changes"], "commit_groups": [["a18328bb3", "b0feda79f", "d79b76b10"]], "identity_text": "Fix jsonb subscripting to cope with toasted subscript values (Tom Lane, David G. Johnston) Using a text value fetched directly from a table as a jsonb subscript was likely to fail. Fetches would usually not find any matching element. Assignments could store the value with a garbage key, although keys long enough to cause that problem are probably rare in the field.", "commit_aliases": ["a18328bb3", "b0feda79f", "d79b76b10"], "source_commits": ["d79b76b10"], "source_entry_id": "15.2/changes/012", "db_id": "d17fcf626471843070d27fb2d5b5f4b6", "patch_ids": ["95954d348336e2155956554e48b871fd"], "statement_hash": "e466d00e0907c49d5d8e2fd3386c701a854b35bf848d8ef70c17f61313dae982", "relations": [{"rule": 2, "type": "equivalent", "target": "1af3e95c606ed32c1c6176bbdca9252d", "evidence": {"same_day": true, "patch_ids": ["95954d348336e2155956554e48b871fd"], "statement_hash": "e466d00e0907c49d5d8e2fd3386c701a854b35bf848d8ef70c17f61313dae982"}}], "version": "15.2", "category_label": "Bug fixes", "also_in": [], "variants": [], "related_changes": [{"db_id": "1af3e95c606ed32c1c6176bbdca9252d", "kind": "equivalent", "version": "14.7", "label": "14.7", "title": "Fix jsonb subscripting to cope with toasted subscript values", "evidence": {"same_day": true, "patch_ids": ["95954d348336e2155956554e48b871fd"], "statement_hash": "e466d00e0907c49d5d8e2fd3386c701a854b35bf848d8ef70c17f61313dae982"}, "url": "/docs/compare/?release=14.7#14.7-aeb1bc16222ab840", "source_url": "/docs/release/14.7/#id-1.11.6.23.5"}]}, {"id": "15.2-900dd95c4f11c9be", "cves": [], "html": "<p>Fix edge-case data corruption in parallel hash joins (Dmitry Astapov) <a href=\"https://postgr.es/c/d9f5345bf\">§</a></p>\n<p>If the final chunk of a large tuple being written out to a temporary file was exactly 32760 bytes, it would be corrupted due to a fencepost bug. The query would typically fail later with corrupted-data symptoms.</p>", "text": "Fix edge-case data corruption in parallel hash joins (Dmitry Astapov) § If the final chunk of a large tuple being written out to a temporary file was exactly 32760 bytes, it would be corrupted due to a fencepost bug. The query would typically fail later with corrupted-data symptoms.", "title": "Fix edge-case data corruption in parallel hash joins", "commits": ["d9f5345bf"], "section": "Changes", "category": "bugfix", "source_url": "/docs/release/15.2/#id-1.11.6.23.5", "source_hash": "31b3612c4954c12626e5aa84eff8f56c58b6e6494e950916ead493eaf82dcd13", "section_path": ["Changes"], "commit_groups": [["1a5afe007", "2f65b8468", "b55303792", "d95dcc9ab", "d9f5345bf", "ffcf6f4cf"]], "identity_text": "Fix edge-case data corruption in parallel hash joins (Dmitry Astapov) If the final chunk of a large tuple being written out to a temporary file was exactly 32760 bytes, it would be corrupted due to a fencepost bug. The query would typically fail later with corrupted-data symptoms.", "commit_aliases": ["1a5afe007", "2f65b8468", "b55303792", "d95dcc9ab", "d9f5345bf", "ffcf6f4cf"], "source_commits": ["d9f5345bf"], "source_entry_id": "15.2/changes/013", "db_id": "fcfcf4d0c5151a6b2a0296b2cbd0a33f", "patch_ids": ["ed4e4b8eef5b19e3626542d6943bb6b8"], "statement_hash": "4a51d715717e30be6e1cee4a61dd098e72b0b0e2c8099e317041336e054c13e8", "relations": [{"rule": 2, "type": "equivalent", "target": "17baafcf991fbee7db5fd59cfa4ebe26", "evidence": {"same_day": true, "patch_ids": ["ed4e4b8eef5b19e3626542d6943bb6b8"], "statement_hash": "4a51d715717e30be6e1cee4a61dd098e72b0b0e2c8099e317041336e054c13e8"}}, {"rule": 2, "type": "equivalent", "target": "58c1639ecc5c6ebcdfd574d1218a9233", "evidence": {"same_day": true, "patch_ids": ["ed4e4b8eef5b19e3626542d6943bb6b8"], "statement_hash": "4a51d715717e30be6e1cee4a61dd098e72b0b0e2c8099e317041336e054c13e8"}}, {"rule": 2, "type": "equivalent", "target": "8c118d8792453bb06a4ce9445538846a", "evidence": {"same_day": true, "patch_ids": ["ed4e4b8eef5b19e3626542d6943bb6b8"], "statement_hash": "4a51d715717e30be6e1cee4a61dd098e72b0b0e2c8099e317041336e054c13e8"}}, {"rule": 2, "type": "equivalent", "target": "9a4c9851e7901484319f65e80da16939", "evidence": {"same_day": true, "patch_ids": ["ed4e4b8eef5b19e3626542d6943bb6b8"], "statement_hash": "4a51d715717e30be6e1cee4a61dd098e72b0b0e2c8099e317041336e054c13e8"}}], "version": "15.2", "category_label": "Bug fixes", "also_in": [], "variants": [], "related_changes": [{"db_id": "17baafcf991fbee7db5fd59cfa4ebe26", "kind": "equivalent", "version": "14.7", "label": "14.7", "title": "Fix edge-case data corruption in parallel hash joins", "evidence": {"same_day": true, "patch_ids": ["ed4e4b8eef5b19e3626542d6943bb6b8"], "statement_hash": "4a51d715717e30be6e1cee4a61dd098e72b0b0e2c8099e317041336e054c13e8"}, "url": "/docs/compare/?release=14.7#14.7-ed0bddea4f1df704", "source_url": "/docs/release/14.7/#id-1.11.6.23.5"}, {"db_id": "58c1639ecc5c6ebcdfd574d1218a9233", "kind": "equivalent", "version": "13.10", "label": "13.10", "title": "Fix edge-case data corruption in parallel hash joins", "evidence": {"same_day": true, "patch_ids": ["ed4e4b8eef5b19e3626542d6943bb6b8"], "statement_hash": "4a51d715717e30be6e1cee4a61dd098e72b0b0e2c8099e317041336e054c13e8"}, "url": "/docs/compare/?release=13.10#13.10-ed92b3b2e5edc19f", "source_url": "/docs/release/13.10/#id-1.11.6.19.5"}, {"db_id": "9a4c9851e7901484319f65e80da16939", "kind": "equivalent", "version": "12.14", "label": "12.14", "title": "Fix edge-case data corruption in parallel hash joins", "evidence": {"same_day": true, "patch_ids": ["ed4e4b8eef5b19e3626542d6943bb6b8"], "statement_hash": "4a51d715717e30be6e1cee4a61dd098e72b0b0e2c8099e317041336e054c13e8"}, "url": "/docs/compare/?release=12.14#12.14-85fcd213ed83aa7c", "source_url": "/docs/release/12.14/#id-1.11.6.14.5"}, {"db_id": "8c118d8792453bb06a4ce9445538846a", "kind": "equivalent", "version": "11.19", "label": "11.19", "title": "Fix edge-case data corruption in parallel hash joins", "evidence": {"same_day": true, "patch_ids": ["ed4e4b8eef5b19e3626542d6943bb6b8"], "statement_hash": "4a51d715717e30be6e1cee4a61dd098e72b0b0e2c8099e317041336e054c13e8"}, "url": "/docs/compare/?release=11.19#11.19-1057ba81081ccf89", "source_url": "/docs/release/11.19/#id-1.11.6.8.6"}]}, {"id": "15.2-daee5981fb26b6c3", "cves": [], "html": "<p>Honor non-default settings of <code>checkpoint_completion_target</code> (Bharath Rupireddy) <a href=\"https://postgr.es/c/49e3a5e71\">§</a></p>\n<p>Internal state was not updated after a change in <code>checkpoint_completion_target</code>, possibly resulting in performing checkpoint I/O faster or slower than desired, especially if that setting was changed on-the-fly.</p>", "text": "Honor non-default settings of checkpoint_completion_target (Bharath Rupireddy) § Internal state was not updated after a change in checkpoint_completion_target, possibly resulting in performing checkpoint I/O faster or slower than desired, especially if that setting was changed on-the-fly.", "title": "Honor non-default settings of checkpoint_completion_target", "commits": ["49e3a5e71"], "section": "Changes", "category": "improvement", "source_url": "/docs/release/15.2/#id-1.11.6.23.5", "source_hash": "a840cc99b8269b48a57c3ffa7d8b6078f6d6bc35c72583ad2ad14657de3e6780", "section_path": ["Changes"], "commit_groups": [["0c2f34af7", "162a48287", "2e21e2857", "49e3a5e71", "7e8a80d1f", "fed4e92f3"]], "identity_text": "Honor non-default settings of checkpoint_completion_target (Bharath Rupireddy) Internal state was not updated after a change in checkpoint_completion_target, possibly resulting in performing checkpoint I/O faster or slower than desired, especially if that setting was changed on-the-fly.", "commit_aliases": ["0c2f34af7", "162a48287", "2e21e2857", "49e3a5e71", "7e8a80d1f", "fed4e92f3"], "source_commits": ["49e3a5e71"], "source_entry_id": "15.2/changes/014", "db_id": "a28d3d8c9d6805871614dc3558aece02", "patch_ids": ["25ee85eb18cddb23c2b75cbc0fb2093f"], "statement_hash": "4db409d631423b21c81b8e2a6c4fc4ac68fc8e411be80c7826c690cdc4594b22", "relations": [{"rule": 2, "type": "equivalent", "target": "4c3ed8c16947b374c32112c1999c8852", "evidence": {"same_day": true, "patch_ids": ["25ee85eb18cddb23c2b75cbc0fb2093f"], "statement_hash": "4db409d631423b21c81b8e2a6c4fc4ac68fc8e411be80c7826c690cdc4594b22"}}, {"rule": 2, "type": "equivalent", "target": "88f0b43434b532bf33cfe6307bd1a79a", "evidence": {"same_day": true, "patch_ids": ["25ee85eb18cddb23c2b75cbc0fb2093f"], "statement_hash": "4db409d631423b21c81b8e2a6c4fc4ac68fc8e411be80c7826c690cdc4594b22"}}, {"rule": 2, "type": "equivalent", "target": "bf1b709c2281c7d1235914095d14fd3c", "evidence": {"same_day": true, "patch_ids": ["25ee85eb18cddb23c2b75cbc0fb2093f"], "statement_hash": "4db409d631423b21c81b8e2a6c4fc4ac68fc8e411be80c7826c690cdc4594b22"}}, {"rule": 2, "type": "equivalent", "target": "c5f5fe3d98a72064c824e3563c2e4f50", "evidence": {"same_day": true, "patch_ids": ["25ee85eb18cddb23c2b75cbc0fb2093f"], "statement_hash": "4db409d631423b21c81b8e2a6c4fc4ac68fc8e411be80c7826c690cdc4594b22"}}], "version": "15.2", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": [{"db_id": "c5f5fe3d98a72064c824e3563c2e4f50", "kind": "equivalent", "version": "14.7", "label": "14.7", "title": "Honor non-default settings of checkpoint_completion_target", "evidence": {"same_day": true, "patch_ids": ["25ee85eb18cddb23c2b75cbc0fb2093f"], "statement_hash": "4db409d631423b21c81b8e2a6c4fc4ac68fc8e411be80c7826c690cdc4594b22"}, "url": "/docs/compare/?release=14.7#14.7-432b3036d6f75e0a", "source_url": "/docs/release/14.7/#id-1.11.6.23.5"}, {"db_id": "88f0b43434b532bf33cfe6307bd1a79a", "kind": "equivalent", "version": "13.10", "label": "13.10", "title": "Honor non-default settings of checkpoint_completion_target", "evidence": {"same_day": true, "patch_ids": ["25ee85eb18cddb23c2b75cbc0fb2093f"], "statement_hash": "4db409d631423b21c81b8e2a6c4fc4ac68fc8e411be80c7826c690cdc4594b22"}, "url": "/docs/compare/?release=13.10#13.10-0de2485f409ddb5a", "source_url": "/docs/release/13.10/#id-1.11.6.19.5"}, {"db_id": "4c3ed8c16947b374c32112c1999c8852", "kind": "equivalent", "version": "12.14", "label": "12.14", "title": "Honor non-default settings of checkpoint_completion_target", "evidence": {"same_day": true, "patch_ids": ["25ee85eb18cddb23c2b75cbc0fb2093f"], "statement_hash": "4db409d631423b21c81b8e2a6c4fc4ac68fc8e411be80c7826c690cdc4594b22"}, "url": "/docs/compare/?release=12.14#12.14-a127346e204ca8fd", "source_url": "/docs/release/12.14/#id-1.11.6.14.5"}, {"db_id": "bf1b709c2281c7d1235914095d14fd3c", "kind": "equivalent", "version": "11.19", "label": "11.19", "title": "Honor non-default settings of checkpoint_completion_target", "evidence": {"same_day": true, "patch_ids": ["25ee85eb18cddb23c2b75cbc0fb2093f"], "statement_hash": "4db409d631423b21c81b8e2a6c4fc4ac68fc8e411be80c7826c690cdc4594b22"}, "url": "/docs/compare/?release=11.19#11.19-8f8f56a741dafdd5", "source_url": "/docs/release/11.19/#id-1.11.6.8.6"}]}, {"id": "15.2-a729c8b75107cbf1", "cves": [], "html": "<p>Log the correct ending timestamp in <code>recovery_target_xid</code> mode (Tom Lane) <a href=\"https://postgr.es/c/abe203304\">§</a></p>\n<p>When ending recovery based on the <code>recovery_target_xid</code> setting with <code>recovery_target_inclusive</code> = <code>off</code>, we printed an incorrect timestamp (always 2000-01-01) in the <span>“<span>recovery stopping before ... transaction</span>”</span> log message.</p>", "text": "Log the correct ending timestamp in recovery_target_xid mode (Tom Lane) § When ending recovery based on the recovery_target_xid setting with recovery_target_inclusive = off, we printed an incorrect timestamp (always 2000-01-01) in the “recovery stopping before ... transaction” log message.", "title": "Log the correct ending timestamp in recovery_target_xid mode", "commits": ["abe203304"], "section": "Changes", "category": "bugfix", "source_url": "/docs/release/15.2/#id-1.11.6.23.5", "source_hash": "46a1c9ec6bf4e56fe8b9fe82198bf246d31ff6cf70352d49f2ef9b6ec21c2702", "section_path": ["Changes"], "commit_groups": [["0a269527f", "103450724", "1b9a0b96a", "44e9e3426", "87591db19", "abe203304"]], "identity_text": "Log the correct ending timestamp in recovery_target_xid mode (Tom Lane) When ending recovery based on the recovery_target_xid setting with recovery_target_inclusive = off, we printed an incorrect timestamp (always 2000-01-01) in the recovery stopping before ... transaction log message.", "commit_aliases": ["0a269527f", "103450724", "1b9a0b96a", "44e9e3426", "87591db19", "abe203304"], "source_commits": ["abe203304"], "source_entry_id": "15.2/changes/015", "db_id": "3d497f4110b7ea49df15033efc821b11", "patch_ids": ["7b3cf07c70ad72c10f0bbc724138aebc"], "statement_hash": "4e2bd5f27e1e54b20d08ba20d0436e23732fee2de2048ff2dcc870b373fa9d39", "relations": [{"rule": 2, "type": "equivalent", "target": "51cb152649f56140bc6a1fbda49f4058", "evidence": {"same_day": true, "patch_ids": ["7b3cf07c70ad72c10f0bbc724138aebc"], "statement_hash": "4e2bd5f27e1e54b20d08ba20d0436e23732fee2de2048ff2dcc870b373fa9d39"}}, {"rule": 2, "type": "equivalent", "target": "9fc97adc362b3a37fa9a58023f5b606e", "evidence": {"same_day": true, "patch_ids": ["7b3cf07c70ad72c10f0bbc724138aebc"], "statement_hash": "4e2bd5f27e1e54b20d08ba20d0436e23732fee2de2048ff2dcc870b373fa9d39"}}, {"rule": 2, "type": "equivalent", "target": "b73f652fb79c88c29786d4c502ae03cc", "evidence": {"same_day": true, "patch_ids": ["7b3cf07c70ad72c10f0bbc724138aebc"], "statement_hash": "4e2bd5f27e1e54b20d08ba20d0436e23732fee2de2048ff2dcc870b373fa9d39"}}, {"rule": 2, "type": "equivalent", "target": "d728bf99738e89a1dbadfeea0a8d8a82", "evidence": {"same_day": true, "patch_ids": ["7b3cf07c70ad72c10f0bbc724138aebc"], "statement_hash": "4e2bd5f27e1e54b20d08ba20d0436e23732fee2de2048ff2dcc870b373fa9d39"}}], "version": "15.2", "category_label": "Bug fixes", "also_in": [], "variants": [], "related_changes": [{"db_id": "b73f652fb79c88c29786d4c502ae03cc", "kind": "equivalent", "version": "14.7", "label": "14.7", "title": "Log the correct ending timestamp in recovery_target_xid mode", "evidence": {"same_day": true, "patch_ids": ["7b3cf07c70ad72c10f0bbc724138aebc"], "statement_hash": "4e2bd5f27e1e54b20d08ba20d0436e23732fee2de2048ff2dcc870b373fa9d39"}, "url": "/docs/compare/?release=14.7#14.7-903ab05d828e7b05", "source_url": "/docs/release/14.7/#id-1.11.6.23.5"}, {"db_id": "51cb152649f56140bc6a1fbda49f4058", "kind": "equivalent", "version": "13.10", "label": "13.10", "title": "Log the correct ending timestamp in recovery_target_xid mode", "evidence": {"same_day": true, "patch_ids": ["7b3cf07c70ad72c10f0bbc724138aebc"], "statement_hash": "4e2bd5f27e1e54b20d08ba20d0436e23732fee2de2048ff2dcc870b373fa9d39"}, "url": "/docs/compare/?release=13.10#13.10-4aa6cf180bf89eeb", "source_url": "/docs/release/13.10/#id-1.11.6.19.5"}, {"db_id": "d728bf99738e89a1dbadfeea0a8d8a82", "kind": "equivalent", "version": "12.14", "label": "12.14", "title": "Log the correct ending timestamp in recovery_target_xid mode", "evidence": {"same_day": true, "patch_ids": ["7b3cf07c70ad72c10f0bbc724138aebc"], "statement_hash": "4e2bd5f27e1e54b20d08ba20d0436e23732fee2de2048ff2dcc870b373fa9d39"}, "url": "/docs/compare/?release=12.14#12.14-50e0b6c615439112", "source_url": "/docs/release/12.14/#id-1.11.6.14.5"}, {"db_id": "9fc97adc362b3a37fa9a58023f5b606e", "kind": "equivalent", "version": "11.19", "label": "11.19", "title": "Log the correct ending timestamp in recovery_target_xid mode", "evidence": {"same_day": true, "patch_ids": ["7b3cf07c70ad72c10f0bbc724138aebc"], "statement_hash": "4e2bd5f27e1e54b20d08ba20d0436e23732fee2de2048ff2dcc870b373fa9d39"}, "url": "/docs/compare/?release=11.19#11.19-a56f19f8df1e6a5f", "source_url": "/docs/release/11.19/#id-1.11.6.8.6"}]}, {"id": "15.2-a071a5627dd9cf41", "cves": [], "html": "<p>Improve error reporting for some buffered file read failures (Peter Eisentraut) <a href=\"https://postgr.es/c/ac01fa647\">§</a></p>\n<p>Correctly report a short read, giving the numbers of bytes desired and actually read, instead of reporting an irrelevant error code. Most places got this right already, but some recently-written replication logic did not.</p>", "text": "Improve error reporting for some buffered file read failures (Peter Eisentraut) § Correctly report a short read, giving the numbers of bytes desired and actually read, instead of reporting an irrelevant error code. Most places got this right already, but some recently-written replication logic did not.", "title": "Improve error reporting for some buffered file read failures", "commits": ["ac01fa647"], "section": "Changes", "category": "improvement", "source_url": "/docs/release/15.2/#id-1.11.6.23.5", "source_hash": "6a52585ab99859f9a8f80a6e11010273e0119c027359a8b6cfdf1c10d7b3b0f3", "section_path": ["Changes"], "commit_groups": [["1561612e3", "ac01fa647", "cf74b6ead", "f463335e1"]], "identity_text": "Improve error reporting for some buffered file read failures (Peter Eisentraut) Correctly report a short read, giving the numbers of bytes desired and actually read, instead of reporting an irrelevant error code. Most places got this right already, but some recently-written replication logic did not.", "commit_aliases": ["1561612e3", "ac01fa647", "cf74b6ead", "f463335e1"], "source_commits": ["ac01fa647"], "source_entry_id": "15.2/changes/016", "db_id": "910a2fcdec010be9b0d2746fee475942", "patch_ids": ["d503528c415d00115660f603efdb4782"], "statement_hash": "ec70a702b05badf9af5df233a8180cb3381671e94deb6ee4799a910e8705dbc4", "relations": [{"rule": 2, "type": "equivalent", "target": "6bbfe331c8bd0d5751f0932248de5974", "evidence": {"same_day": true, "patch_ids": ["d503528c415d00115660f603efdb4782"], "statement_hash": "ec70a702b05badf9af5df233a8180cb3381671e94deb6ee4799a910e8705dbc4"}}, {"rule": 2, "type": "equivalent", "target": "bacb2dc45b0af2b34fb185ce6aa6b534", "evidence": {"same_day": true, "patch_ids": ["d503528c415d00115660f603efdb4782"], "statement_hash": "ec70a702b05badf9af5df233a8180cb3381671e94deb6ee4799a910e8705dbc4"}}], "version": "15.2", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": [{"db_id": "6bbfe331c8bd0d5751f0932248de5974", "kind": "equivalent", "version": "14.7", "label": "14.7", "title": "Improve error reporting for some buffered file read failures", "evidence": {"same_day": true, "patch_ids": ["d503528c415d00115660f603efdb4782"], "statement_hash": "ec70a702b05badf9af5df233a8180cb3381671e94deb6ee4799a910e8705dbc4"}, "url": "/docs/compare/?release=14.7#14.7-015e68124e7214f8", "source_url": "/docs/release/14.7/#id-1.11.6.23.5"}, {"db_id": "bacb2dc45b0af2b34fb185ce6aa6b534", "kind": "equivalent", "version": "13.10", "label": "13.10", "title": "Improve error reporting for some buffered file read failures", "evidence": {"same_day": true, "patch_ids": ["d503528c415d00115660f603efdb4782"], "statement_hash": "ec70a702b05badf9af5df233a8180cb3381671e94deb6ee4799a910e8705dbc4"}, "url": "/docs/compare/?release=13.10#13.10-1cdf3bd8c3aaf3ca", "source_url": "/docs/release/13.10/#id-1.11.6.19.5"}]}, {"id": "15.2-526b57dc0efe23db", "cves": [], "html": "<p>Remove arbitrary limit on number of elements in <code>int2vector</code> and <code>oidvector</code> (Tom Lane) <a href=\"https://postgr.es/c/db9127c58\">§</a></p>\n<p>The input functions for these types previously rejected more than 100 elements. With the introduction of the logical replication column list feature, it's necessary to accept <code>int2vector</code>s having up to 1600 columns, otherwise long column lists cause logical-replication failures.</p>", "text": "Remove arbitrary limit on number of elements in int2vector and oidvector (Tom Lane) § The input functions for these types previously rejected more than 100 elements. With the introduction of the logical replication column list feature, it's necessary to accept int2vectors having up to 1600 columns, otherwise long column lists cause logical-replication failures.", "title": "Remove arbitrary limit on number of elements in int2vector and oidvector", "commits": ["db9127c58"], "section": "Changes", "category": "improvement", "source_url": "/docs/release/15.2/#id-1.11.6.23.5", "source_hash": "31a3a9dcc1cbd88b9c7b52030d809093497595263a87581cab00c8e1ea4a6e55", "section_path": ["Changes"], "commit_groups": [["647fa5005", "db9127c58"]], "identity_text": "Remove arbitrary limit on number of elements in int2vector and oidvector (Tom Lane) The input functions for these types previously rejected more than 100 elements. With the introduction of the logical replication column list feature, it's necessary to accept int2vectors having up to 1600 columns, otherwise long column lists cause logical-replication failures.", "commit_aliases": ["647fa5005", "db9127c58"], "source_commits": ["db9127c58"], "source_entry_id": "15.2/changes/017", "db_id": "cee0c421613488db55507f2d7a95a9e7", "patch_ids": ["209355758b8595a99adcd102d8c29d66"], "statement_hash": "228ad18f7a4c9045c6c1aa678af8d77ba639a614f415dec6733ab14479e44efc", "relations": [], "version": "15.2", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": []}, {"id": "15.2-ecf69316208e3525", "cves": [], "html": "<p>In extended query protocol, avoid an immediate commit after <code>ANALYZE</code> if we're running a pipeline (Tom Lane) <a href=\"https://postgr.es/c/18431ee6f\">§</a></p>\n<p>If there's not been an explicit <code>BEGIN TRANSACTION</code>, <code>ANALYZE</code> would take it on itself to commit, which should not happen within a pipelined series of commands.</p>", "text": "In extended query protocol, avoid an immediate commit after ANALYZE if we're running a pipeline (Tom Lane) § If there's not been an explicit BEGIN TRANSACTION, ANALYZE would take it on itself to commit, which should not happen within a pipelined series of commands.", "title": "In extended query protocol, avoid an immediate commit after ANALYZE if we're running a pipeline", "commits": ["18431ee6f"], "section": "Changes", "category": "improvement", "source_url": "/docs/release/15.2/#id-1.11.6.23.5", "source_hash": "01a1f1ea843782f1d6e84dc88de6e13af8e4ebe6624c218f5b48169232a1a0ac", "section_path": ["Changes"], "commit_groups": [["18431ee6f", "1cca4a75f", "20432f873", "942cc240f", "ae47f8a96", "f48aa5df4"]], "identity_text": "In extended query protocol, avoid an immediate commit after ANALYZE if we're running a pipeline (Tom Lane) If there's not been an explicit BEGIN TRANSACTION, ANALYZE would take it on itself to commit, which should not happen within a pipelined series of commands.", "commit_aliases": ["18431ee6f", "1cca4a75f", "20432f873", "942cc240f", "ae47f8a96", "f48aa5df4"], "source_commits": ["18431ee6f"], "source_entry_id": "15.2/changes/018", "db_id": "bbb0494b3122ff824e3f34a1dc1d29c6", "patch_ids": ["c528de62df8050f2444063a3ed325d9a"], "statement_hash": "5d9bded633b3aa87d0c6f4dc557cc269b686684303314ede51a88b5d0451726f", "relations": [{"rule": 2, "type": "equivalent", "target": "8c33eeeb16bd55bfe7ae7a56074a78c3", "evidence": {"same_day": true, "patch_ids": ["c528de62df8050f2444063a3ed325d9a"], "statement_hash": "5d9bded633b3aa87d0c6f4dc557cc269b686684303314ede51a88b5d0451726f"}}, {"rule": 2, "type": "equivalent", "target": "8e4a3f510c7507919da683e9c2bad87e", "evidence": {"same_day": true, "patch_ids": ["c528de62df8050f2444063a3ed325d9a"], "statement_hash": "5d9bded633b3aa87d0c6f4dc557cc269b686684303314ede51a88b5d0451726f"}}, {"rule": 2, "type": "equivalent", "target": "b5f0691704e44829a3c8810806f3c5d8", "evidence": {"same_day": true, "patch_ids": ["c528de62df8050f2444063a3ed325d9a"], "statement_hash": "5d9bded633b3aa87d0c6f4dc557cc269b686684303314ede51a88b5d0451726f"}}, {"rule": 2, "type": "equivalent", "target": "cf3b33852b6937bd11efe074cc779db4", "evidence": {"same_day": true, "patch_ids": ["c528de62df8050f2444063a3ed325d9a"], "statement_hash": "5d9bded633b3aa87d0c6f4dc557cc269b686684303314ede51a88b5d0451726f"}}], "version": "15.2", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": [{"db_id": "8e4a3f510c7507919da683e9c2bad87e", "kind": "equivalent", "version": "14.7", "label": "14.7", "title": "In extended query protocol, avoid an immediate commit after ANALYZE if we're running a pipeline", "evidence": {"same_day": true, "patch_ids": ["c528de62df8050f2444063a3ed325d9a"], "statement_hash": "5d9bded633b3aa87d0c6f4dc557cc269b686684303314ede51a88b5d0451726f"}, "url": "/docs/compare/?release=14.7#14.7-666515aaeaa83575", "source_url": "/docs/release/14.7/#id-1.11.6.23.5"}, {"db_id": "b5f0691704e44829a3c8810806f3c5d8", "kind": "equivalent", "version": "13.10", "label": "13.10", "title": "In extended query protocol, avoid an immediate commit after ANALYZE if we're running a pipeline", "evidence": {"same_day": true, "patch_ids": ["c528de62df8050f2444063a3ed325d9a"], "statement_hash": "5d9bded633b3aa87d0c6f4dc557cc269b686684303314ede51a88b5d0451726f"}, "url": "/docs/compare/?release=13.10#13.10-c764c34c15680eb4", "source_url": "/docs/release/13.10/#id-1.11.6.19.5"}, {"db_id": "8c33eeeb16bd55bfe7ae7a56074a78c3", "kind": "equivalent", "version": "12.14", "label": "12.14", "title": "In extended query protocol, avoid an immediate commit after ANALYZE if we're running a pipeline", "evidence": {"same_day": true, "patch_ids": ["c528de62df8050f2444063a3ed325d9a"], "statement_hash": "5d9bded633b3aa87d0c6f4dc557cc269b686684303314ede51a88b5d0451726f"}, "url": "/docs/compare/?release=12.14#12.14-8b0c185543a7f82d", "source_url": "/docs/release/12.14/#id-1.11.6.14.5"}, {"db_id": "cf3b33852b6937bd11efe074cc779db4", "kind": "equivalent", "version": "11.19", "label": "11.19", "title": "In extended query protocol, avoid an immediate commit after ANALYZE if we're running a pipeline", "evidence": {"same_day": true, "patch_ids": ["c528de62df8050f2444063a3ed325d9a"], "statement_hash": "5d9bded633b3aa87d0c6f4dc557cc269b686684303314ede51a88b5d0451726f"}, "url": "/docs/compare/?release=11.19#11.19-a3d7ace99d02932c", "source_url": "/docs/release/11.19/#id-1.11.6.8.6"}]}, {"id": "15.2-1a2f254299955365", "cves": [], "html": "<p>Reject cancel request packets having the wrong length (Andrey Borodin) <a href=\"https://postgr.es/c/b152bb7b2\">§</a></p>\n<p>The server would process a cancel request even if its length word was too small. This led to reading beyond the end of the allocated buffer. In theory that could cause a segfault, but it seems quite unlikely to happen in practice, since the buffer would have to be very close to the end of memory. The more likely outcome was a bogus log message about wrong backend PID or cancel code. Complain about the wrong length, instead.</p>", "text": "Reject cancel request packets having the wrong length (Andrey Borodin) § The server would process a cancel request even if its length word was too small. This led to reading beyond the end of the allocated buffer. In theory that could cause a segfault, but it seems quite unlikely to happen in practice, since the buffer would have to be very close to the end of memory. The more likely outcome was a bogus log message about wrong backend PID or cancel code. Complain about the wrong length, instead.", "title": "Reject cancel request packets having the wrong length", "commits": ["b152bb7b2"], "section": "Changes", "category": "improvement", "source_url": "/docs/release/15.2/#id-1.11.6.23.5", "source_hash": "d8c4584845cee256a065a3a811e393fd5df8460442955e6322eff222f5946c20", "section_path": ["Changes"], "commit_groups": [["6900aea67", "8f70de7e0", "a9bccffe5", "b152bb7b2", "e52daaabf", "e75b5c855"]], "identity_text": "Reject cancel request packets having the wrong length (Andrey Borodin) The server would process a cancel request even if its length word was too small. This led to reading beyond the end of the allocated buffer. In theory that could cause a segfault, but it seems quite unlikely to happen in practice, since the buffer would have to be very close to the end of memory. The more likely outcome was a bogus log message about wrong backend PID or cancel code. Complain about the wrong length, instead.", "commit_aliases": ["6900aea67", "8f70de7e0", "a9bccffe5", "b152bb7b2", "e52daaabf", "e75b5c855"], "source_commits": ["b152bb7b2"], "source_entry_id": "15.2/changes/019", "db_id": "704a6634c16ef7df7bcdf60048ae61a0", "patch_ids": ["4a585c04a8486d7d2d2fc0188102e7f2"], "statement_hash": "5934eb496fa5e338ee30f760357ba25b34ae3381414dec4210b32506b0e779a8", "relations": [{"rule": 2, "type": "equivalent", "target": "0ca75a37b68a2dc0bfeff23a25e77ba0", "evidence": {"same_day": true, "patch_ids": ["4a585c04a8486d7d2d2fc0188102e7f2"], "statement_hash": "5934eb496fa5e338ee30f760357ba25b34ae3381414dec4210b32506b0e779a8"}}, {"rule": 2, "type": "equivalent", "target": "7fa280ab24f9d5ddd2a56f45d4ffca65", "evidence": {"same_day": true, "patch_ids": ["4a585c04a8486d7d2d2fc0188102e7f2"], "statement_hash": "5934eb496fa5e338ee30f760357ba25b34ae3381414dec4210b32506b0e779a8"}}, {"rule": 2, "type": "equivalent", "target": "9debe525460effd204276d88508b491c", "evidence": {"same_day": true, "patch_ids": ["4a585c04a8486d7d2d2fc0188102e7f2"], "statement_hash": "5934eb496fa5e338ee30f760357ba25b34ae3381414dec4210b32506b0e779a8"}}, {"rule": 2, "type": "equivalent", "target": "f77b12baef4c96feae19e6651e311743", "evidence": {"same_day": true, "patch_ids": ["4a585c04a8486d7d2d2fc0188102e7f2"], "statement_hash": "5934eb496fa5e338ee30f760357ba25b34ae3381414dec4210b32506b0e779a8"}}], "version": "15.2", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": [{"db_id": "7fa280ab24f9d5ddd2a56f45d4ffca65", "kind": "equivalent", "version": "14.7", "label": "14.7", "title": "Reject cancel request packets having the wrong length", "evidence": {"same_day": true, "patch_ids": ["4a585c04a8486d7d2d2fc0188102e7f2"], "statement_hash": "5934eb496fa5e338ee30f760357ba25b34ae3381414dec4210b32506b0e779a8"}, "url": "/docs/compare/?release=14.7#14.7-f72804a6eeac15f7", "source_url": "/docs/release/14.7/#id-1.11.6.23.5"}, {"db_id": "9debe525460effd204276d88508b491c", "kind": "equivalent", "version": "13.10", "label": "13.10", "title": "Reject cancel request packets having the wrong length", "evidence": {"same_day": true, "patch_ids": ["4a585c04a8486d7d2d2fc0188102e7f2"], "statement_hash": "5934eb496fa5e338ee30f760357ba25b34ae3381414dec4210b32506b0e779a8"}, "url": "/docs/compare/?release=13.10#13.10-36c77ab5f60c2fec", "source_url": "/docs/release/13.10/#id-1.11.6.19.5"}, {"db_id": "f77b12baef4c96feae19e6651e311743", "kind": "equivalent", "version": "12.14", "label": "12.14", "title": "Reject cancel request packets having the wrong length", "evidence": {"same_day": true, "patch_ids": ["4a585c04a8486d7d2d2fc0188102e7f2"], "statement_hash": "5934eb496fa5e338ee30f760357ba25b34ae3381414dec4210b32506b0e779a8"}, "url": "/docs/compare/?release=12.14#12.14-6a979fa32fad601a", "source_url": "/docs/release/12.14/#id-1.11.6.14.5"}, {"db_id": "0ca75a37b68a2dc0bfeff23a25e77ba0", "kind": "equivalent", "version": "11.19", "label": "11.19", "title": "Reject cancel request packets having the wrong length", "evidence": {"same_day": true, "patch_ids": ["4a585c04a8486d7d2d2fc0188102e7f2"], "statement_hash": "5934eb496fa5e338ee30f760357ba25b34ae3381414dec4210b32506b0e779a8"}, "url": "/docs/compare/?release=11.19#11.19-8fc865ae005d5dbb", "source_url": "/docs/release/11.19/#id-1.11.6.8.6"}]}, {"id": "15.2-dbe50455de687af8", "cves": [], "html": "<p>Fix planner preprocessing oversights for window function run-condition expressions (Richard Guo, David Rowley) <a href=\"https://postgr.es/c/04788ee4c\">§</a></p>\n<p>This could lead to planner errors such as <span>“<span>WindowFunc not found in subplan target lists</span>”</span>.</p>", "text": "Fix planner preprocessing oversights for window function run-condition expressions (Richard Guo, David Rowley) § This could lead to planner errors such as “WindowFunc not found in subplan target lists”.", "title": "Fix planner preprocessing oversights for window function run-condition expressions", "commits": ["04788ee4c"], "section": "Changes", "category": "bugfix", "source_url": "/docs/release/15.2/#id-1.11.6.23.5", "source_hash": "4d7cf766932f4c9de51d8161a8b7c343a77c89acec4557c4cd3bc08dc76b5d3e", "section_path": ["Changes"], "commit_groups": [["04788ee4c", "94985c210"]], "identity_text": "Fix planner preprocessing oversights for window function run-condition expressions (Richard Guo, David Rowley) This could lead to planner errors such as WindowFunc not found in subplan target lists.", "commit_aliases": ["04788ee4c", "94985c210"], "source_commits": ["04788ee4c"], "source_entry_id": "15.2/changes/020", "db_id": "b08f900ffb2928355c146d009eec374a", "patch_ids": ["eef9d389339cf23346ad8d63b873a6d5"], "statement_hash": "a6ff053047f29b7c8c45b286042e2567f3488fbd2380b091511896d86fbbc7c4", "relations": [], "version": "15.2", "category_label": "Bug fixes", "also_in": [], "variants": [], "related_changes": []}, {"id": "15.2-0f8090979fa232ad", "cves": [], "html": "<p>Fix possible dangling-pointer access during execution of window function run-condition expressions (David Rowley) <a href=\"https://postgr.es/c/2a535620c\">§</a></p>\n<p>In practice, because the run-condition optimization is only applied to certain window functions that happen to all return <code>int8</code>, this only manifested as a problem on 32-bit builds.</p>", "text": "Fix possible dangling-pointer access during execution of window function run-condition expressions (David Rowley) § In practice, because the run-condition optimization is only applied to certain window functions that happen to all return int8, this only manifested as a problem on 32-bit builds.", "title": "Fix possible dangling-pointer access during execution of window function run-condition expressions", "commits": ["2a535620c"], "section": "Changes", "category": "bugfix", "source_url": "/docs/release/15.2/#id-1.11.6.23.5", "source_hash": "3496387e48961624d943c4e287dc54f44c67d412a593feae5e52c4de3f771b69", "section_path": ["Changes"], "commit_groups": [["2a535620c", "a85832722"]], "identity_text": "Fix possible dangling-pointer access during execution of window function run-condition expressions (David Rowley) In practice, because the run-condition optimization is only applied to certain window functions that happen to all return int8, this only manifested as a problem on 32-bit builds.", "commit_aliases": ["2a535620c", "a85832722"], "source_commits": ["2a535620c"], "source_entry_id": "15.2/changes/021", "db_id": "a39df96ef548f77d149c3f4e88b5b1d0", "patch_ids": ["ab8dae602badaadd00e0d05616f29a43"], "statement_hash": "e7322271a339a36a2163c5197cf824d5034b776d0efeaf65b465986dd4d71248", "relations": [], "version": "15.2", "category_label": "Bug fixes", "also_in": [], "variants": [], "related_changes": []}, {"id": "15.2-5090984861bce8c8", "cves": [], "html": "<p>Add recursion and looping defenses in subquery pullup (Tom Lane) <a href=\"https://postgr.es/c/1a3daa5bb\">§</a></p>\n<p>A contrived query can result in deep recursion and unreasonable amounts of time spent trying to flatten subqueries. A proper fix for that seems unduly invasive for a back-patch, but we can at least add stack depth checks and an interrupt check to allow the query to be cancelled.</p>", "text": "Add recursion and looping defenses in subquery pullup (Tom Lane) § A contrived query can result in deep recursion and unreasonable amounts of time spent trying to flatten subqueries. A proper fix for that seems unduly invasive for a back-patch, but we can at least add stack depth checks and an interrupt check to allow the query to be cancelled.", "title": "Add recursion and looping defenses in subquery pullup", "commits": ["1a3daa5bb"], "section": "Changes", "category": "improvement", "source_url": "/docs/release/15.2/#id-1.11.6.23.5", "source_hash": "306c8c55580c6df4cd008d270444839f4ad069b8bc3e3e089a6f5bfd62d9e8e6", "section_path": ["Changes"], "commit_groups": [["1a3daa5bb", "4fceb454f", "5beb7881f", "8cd700cc5", "97431d673", "d572003f7"]], "identity_text": "Add recursion and looping defenses in subquery pullup (Tom Lane) A contrived query can result in deep recursion and unreasonable amounts of time spent trying to flatten subqueries. A proper fix for that seems unduly invasive for a back-patch, but we can at least add stack depth checks and an interrupt check to allow the query to be cancelled.", "commit_aliases": ["1a3daa5bb", "4fceb454f", "5beb7881f", "8cd700cc5", "97431d673", "d572003f7"], "source_commits": ["1a3daa5bb"], "source_entry_id": "15.2/changes/022", "db_id": "362730489706fa81e58f4c999e886e0e", "patch_ids": ["36ed289451f3942e317c05bea9704165"], "statement_hash": "b9bcf77ecf301d3825a33e1113dddf8b686f10adf99f609ff924f11fc765071f", "relations": [{"rule": 2, "type": "equivalent", "target": "5af068db3341269c18db67f0336598f0", "evidence": {"same_day": true, "patch_ids": ["36ed289451f3942e317c05bea9704165"], "statement_hash": "b9bcf77ecf301d3825a33e1113dddf8b686f10adf99f609ff924f11fc765071f"}}, {"rule": 2, "type": "equivalent", "target": "7c6d42673b3e4664bd79bc8f9f6ea38d", "evidence": {"same_day": true, "patch_ids": ["36ed289451f3942e317c05bea9704165"], "statement_hash": "b9bcf77ecf301d3825a33e1113dddf8b686f10adf99f609ff924f11fc765071f"}}, {"rule": 2, "type": "equivalent", "target": "c00645f9f75d71aa6acb6087397460db", "evidence": {"same_day": true, "patch_ids": ["36ed289451f3942e317c05bea9704165"], "statement_hash": "b9bcf77ecf301d3825a33e1113dddf8b686f10adf99f609ff924f11fc765071f"}}, {"rule": 2, "type": "equivalent", "target": "fdceeabfdcd8e34505ab07c4d5612bd4", "evidence": {"same_day": true, "patch_ids": ["36ed289451f3942e317c05bea9704165"], "statement_hash": "b9bcf77ecf301d3825a33e1113dddf8b686f10adf99f609ff924f11fc765071f"}}], "version": "15.2", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": [{"db_id": "fdceeabfdcd8e34505ab07c4d5612bd4", "kind": "equivalent", "version": "14.7", "label": "14.7", "title": "Add recursion and looping defenses in subquery pullup", "evidence": {"same_day": true, "patch_ids": ["36ed289451f3942e317c05bea9704165"], "statement_hash": "b9bcf77ecf301d3825a33e1113dddf8b686f10adf99f609ff924f11fc765071f"}, "url": "/docs/compare/?release=14.7#14.7-da8d00e103dbea9a", "source_url": "/docs/release/14.7/#id-1.11.6.23.5"}, {"db_id": "c00645f9f75d71aa6acb6087397460db", "kind": "equivalent", "version": "13.10", "label": "13.10", "title": "Add recursion and looping defenses in subquery pullup", "evidence": {"same_day": true, "patch_ids": ["36ed289451f3942e317c05bea9704165"], "statement_hash": "b9bcf77ecf301d3825a33e1113dddf8b686f10adf99f609ff924f11fc765071f"}, "url": "/docs/compare/?release=13.10#13.10-d35cca4c09de4185", "source_url": "/docs/release/13.10/#id-1.11.6.19.5"}, {"db_id": "7c6d42673b3e4664bd79bc8f9f6ea38d", "kind": "equivalent", "version": "12.14", "label": "12.14", "title": "Add recursion and looping defenses in subquery pullup", "evidence": {"same_day": true, "patch_ids": ["36ed289451f3942e317c05bea9704165"], "statement_hash": "b9bcf77ecf301d3825a33e1113dddf8b686f10adf99f609ff924f11fc765071f"}, "url": "/docs/compare/?release=12.14#12.14-5ed3b667487988cc", "source_url": "/docs/release/12.14/#id-1.11.6.14.5"}, {"db_id": "5af068db3341269c18db67f0336598f0", "kind": "equivalent", "version": "11.19", "label": "11.19", "title": "Add recursion and looping defenses in subquery pullup", "evidence": {"same_day": true, "patch_ids": ["36ed289451f3942e317c05bea9704165"], "statement_hash": "b9bcf77ecf301d3825a33e1113dddf8b686f10adf99f609ff924f11fc765071f"}, "url": "/docs/compare/?release=11.19#11.19-d9d142d540ffa7c9", "source_url": "/docs/release/11.19/#id-1.11.6.8.6"}]}, {"id": "15.2-37d086b58245cb81", "cves": [], "html": "<p>Fix planner issues when combining Memoize nodes with partitionwise joins or parameterized nestloops (Richard Guo) <a href=\"https://postgr.es/c/c959f84c2\">§</a> <a href=\"https://postgr.es/c/834d97c32\">§</a></p>\n<p>These errors could lead to not using Memoize in contexts where it would be useful, or possibly to wrong query plans.</p>", "text": "Fix planner issues when combining Memoize nodes with partitionwise joins or parameterized nestloops (Richard Guo) § § These errors could lead to not using Memoize in contexts where it would be useful, or possibly to wrong query plans.", "title": "Fix planner issues when combining Memoize nodes with partitionwise joins or parameterized nestloops", "commits": ["834d97c32", "c959f84c2"], "section": "Changes", "category": "bugfix", "source_url": "/docs/release/15.2/#id-1.11.6.23.5", "source_hash": "74a6d700f72fa84e3eb4c74184e8076df328ec3dcf1db11f6fa23c016ba7b854", "section_path": ["Changes"], "commit_groups": [["834d97c32", "ce093aa18", "e76913802"], ["c959f84c2", "d69d01ba9", "dc3648f65"]], "identity_text": "Fix planner issues when combining Memoize nodes with partitionwise joins or parameterized nestloops (Richard Guo) These errors could lead to not using Memoize in contexts where it would be useful, or possibly to wrong query plans.", "commit_aliases": ["834d97c32", "c959f84c2", "ce093aa18", "d69d01ba9", "dc3648f65", "e76913802"], "source_commits": ["834d97c32", "c959f84c2"], "source_entry_id": "15.2/changes/023", "db_id": "fedab078255a227307e0fb716d19e1a6", "patch_ids": ["30370a4ec989b7239d5aef5278fc05ef", "5c6e090c8079ba9092c28d371b17bfd3"], "statement_hash": "094a4815119a5ab935b4ddcf7dfe72424b6cbbb8771db238a91bd2658c868599", "relations": [{"rule": 2, "type": "equivalent", "target": "c0d3ce9372df0afbbb3f47158c0867a0", "evidence": {"same_day": true, "patch_ids": ["30370a4ec989b7239d5aef5278fc05ef", "5c6e090c8079ba9092c28d371b17bfd3"], "statement_hash": "094a4815119a5ab935b4ddcf7dfe72424b6cbbb8771db238a91bd2658c868599"}}], "version": "15.2", "category_label": "Bug fixes", "also_in": [], "variants": [], "related_changes": [{"db_id": "c0d3ce9372df0afbbb3f47158c0867a0", "kind": "equivalent", "version": "14.7", "label": "14.7", "title": "Fix planner issues when combining Memoize nodes with partitionwise joins or parameterized nestloops", "evidence": {"same_day": true, "patch_ids": ["30370a4ec989b7239d5aef5278fc05ef", "5c6e090c8079ba9092c28d371b17bfd3"], "statement_hash": "094a4815119a5ab935b4ddcf7dfe72424b6cbbb8771db238a91bd2658c868599"}, "url": "/docs/compare/?release=14.7#14.7-cafb265189ede67a", "source_url": "/docs/release/14.7/#id-1.11.6.23.5"}]}, {"id": "15.2-bb867c3ad0f78911", "cves": [], "html": "<p>Fix partitionwise-join code to tolerate failure to produce a plan for each partition (Tom Lane) <a href=\"https://postgr.es/c/bf8fd64ff\">§</a></p>\n<p>This could result in <span>“<span>could not devise a query plan for the given query</span>”</span> errors.</p>", "text": "Fix partitionwise-join code to tolerate failure to produce a plan for each partition (Tom Lane) § This could result in “could not devise a query plan for the given query” errors.", "title": "Fix partitionwise-join code to tolerate failure to produce a plan for each partition", "commits": ["bf8fd64ff"], "section": "Changes", "category": "bugfix", "source_url": "/docs/release/15.2/#id-1.11.6.23.5", "source_hash": "90e49061dcaaf2e2640337313d58d199fd499d4df7dcd5f89ec12995cbad04f8", "section_path": ["Changes"], "commit_groups": [["1ff549e84", "2df073313", "4ebca555c", "bf8fd64ff", "ec3daeec3", "fe12f2f8f"]], "identity_text": "Fix partitionwise-join code to tolerate failure to produce a plan for each partition (Tom Lane) This could result in could not devise a query plan for the given query errors.", "commit_aliases": ["1ff549e84", "2df073313", "4ebca555c", "bf8fd64ff", "ec3daeec3", "fe12f2f8f"], "source_commits": ["bf8fd64ff"], "source_entry_id": "15.2/changes/024", "db_id": "6f7131cf4cc9e66ad2f9645e81362450", "patch_ids": ["778506c4256a633d97aea2b3679b38fd"], "statement_hash": "8216c4e7bc70057140e5130801b0779392eedb9ac4b5170e1009a8a85e6962e1", "relations": [{"rule": 2, "type": "equivalent", "target": "ab574b7f4bc6aa7119791c39e91c1cb7", "evidence": {"same_day": true, "patch_ids": ["778506c4256a633d97aea2b3679b38fd"], "statement_hash": "8216c4e7bc70057140e5130801b0779392eedb9ac4b5170e1009a8a85e6962e1"}}, {"rule": 2, "type": "equivalent", "target": "c2b696431dc7120dd5fcf12f4dceb1d2", "evidence": {"same_day": true, "patch_ids": ["778506c4256a633d97aea2b3679b38fd"], "statement_hash": "8216c4e7bc70057140e5130801b0779392eedb9ac4b5170e1009a8a85e6962e1"}}, {"rule": 2, "type": "equivalent", "target": "dbfc56a5f280f98acfb2ac22d3b85626", "evidence": {"same_day": true, "patch_ids": ["778506c4256a633d97aea2b3679b38fd"], "statement_hash": "8216c4e7bc70057140e5130801b0779392eedb9ac4b5170e1009a8a85e6962e1"}}, {"rule": 2, "type": "equivalent", "target": "ec7d05dbfdacc0d8ea27dd45d04add5a", "evidence": {"same_day": true, "patch_ids": ["778506c4256a633d97aea2b3679b38fd"], "statement_hash": "8216c4e7bc70057140e5130801b0779392eedb9ac4b5170e1009a8a85e6962e1"}}], "version": "15.2", "category_label": "Bug fixes", "also_in": [], "variants": [], "related_changes": [{"db_id": "ab574b7f4bc6aa7119791c39e91c1cb7", "kind": "equivalent", "version": "14.7", "label": "14.7", "title": "Fix partitionwise-join code to tolerate failure to produce a plan for each partition", "evidence": {"same_day": true, "patch_ids": ["778506c4256a633d97aea2b3679b38fd"], "statement_hash": "8216c4e7bc70057140e5130801b0779392eedb9ac4b5170e1009a8a85e6962e1"}, "url": "/docs/compare/?release=14.7#14.7-e378359afa593f1d", "source_url": "/docs/release/14.7/#id-1.11.6.23.5"}, {"db_id": "c2b696431dc7120dd5fcf12f4dceb1d2", "kind": "equivalent", "version": "13.10", "label": "13.10", "title": "Fix partitionwise-join code to tolerate failure to produce a plan for each partition", "evidence": {"same_day": true, "patch_ids": ["778506c4256a633d97aea2b3679b38fd"], "statement_hash": "8216c4e7bc70057140e5130801b0779392eedb9ac4b5170e1009a8a85e6962e1"}, "url": "/docs/compare/?release=13.10#13.10-cf603be7db67c148", "source_url": "/docs/release/13.10/#id-1.11.6.19.5"}, {"db_id": "ec7d05dbfdacc0d8ea27dd45d04add5a", "kind": "equivalent", "version": "12.14", "label": "12.14", "title": "Fix partitionwise-join code to tolerate failure to produce a plan for each partition", "evidence": {"same_day": true, "patch_ids": ["778506c4256a633d97aea2b3679b38fd"], "statement_hash": "8216c4e7bc70057140e5130801b0779392eedb9ac4b5170e1009a8a85e6962e1"}, "url": "/docs/compare/?release=12.14#12.14-2a4e55e0fca50b50", "source_url": "/docs/release/12.14/#id-1.11.6.14.5"}, {"db_id": "dbfc56a5f280f98acfb2ac22d3b85626", "kind": "equivalent", "version": "11.19", "label": "11.19", "title": "Fix partitionwise-join code to tolerate failure to produce a plan for each partition", "evidence": {"same_day": true, "patch_ids": ["778506c4256a633d97aea2b3679b38fd"], "statement_hash": "8216c4e7bc70057140e5130801b0779392eedb9ac4b5170e1009a8a85e6962e1"}, "url": "/docs/compare/?release=11.19#11.19-ea58e9523a4b5b62", "source_url": "/docs/release/11.19/#id-1.11.6.8.6"}]}, {"id": "15.2-11c232831ed252d3", "cves": [], "html": "<p>Limit the amount of cleanup work done by <code>get_actual_variable_range</code> (Simon Riggs) <a href=\"https://postgr.es/c/2debceed2\">§</a></p>\n<p>Planner runs occurring just after deletion of a large number of tuples appearing at the end of an index could expend significant amounts of work setting the <span>“<span>killed</span>”</span> bits for those index entries. Limit the amount of work done in any one query by giving up on this process after examining 100 heap pages. All the cleanup will still happen eventually, but without so large a performance hiccup.</p>", "text": "Limit the amount of cleanup work done by get_actual_variable_range (Simon Riggs) § Planner runs occurring just after deletion of a large number of tuples appearing at the end of an index could expend significant amounts of work setting the “killed” bits for those index entries. Limit the amount of work done in any one query by giving up on this process after examining 100 heap pages. All the cleanup will still happen eventually, but without so large a performance hiccup.", "title": "Limit the amount of cleanup work done by get_actual_variable_range", "commits": ["2debceed2"], "section": "Changes", "category": "improvement", "source_url": "/docs/release/15.2/#id-1.11.6.23.5", "source_hash": "a54c8cf343ecc20a9e4acaf60cce8b9eb15f82e5205535954b2d2977fe31cfb8", "section_path": ["Changes"], "commit_groups": [["2debceed2", "6e639267a", "9c6ad5eaa", "b96a096db", "bd06fe4de", "ec10b6139"]], "identity_text": "Limit the amount of cleanup work done by get_actual_variable_range (Simon Riggs) Planner runs occurring just after deletion of a large number of tuples appearing at the end of an index could expend significant amounts of work setting the killed bits for those index entries. Limit the amount of work done in any one query by giving up on this process after examining 100 heap pages. All the cleanup will still happen eventually, but without so large a performance hiccup.", "commit_aliases": ["2debceed2", "6e639267a", "9c6ad5eaa", "b96a096db", "bd06fe4de", "ec10b6139"], "source_commits": ["2debceed2"], "source_entry_id": "15.2/changes/025", "db_id": "f8dd51a841516e40babc8e3afce49b0b", "patch_ids": ["f2b427eb4cc159b6f04039f441042743"], "statement_hash": "17ccc82a583063e6823e05dcea86b5110c4e09fc5e94afd1bf4c9b643a32c43c", "relations": [{"rule": 2, "type": "equivalent", "target": "3fa3289ac41ba3dae3f215446f66b446", "evidence": {"same_day": true, "patch_ids": ["f2b427eb4cc159b6f04039f441042743"], "statement_hash": "17ccc82a583063e6823e05dcea86b5110c4e09fc5e94afd1bf4c9b643a32c43c"}}, {"rule": 2, "type": "equivalent", "target": "7d30afa741c434b1e7cfa2c793c8d84e", "evidence": {"same_day": true, "patch_ids": ["f2b427eb4cc159b6f04039f441042743"], "statement_hash": "17ccc82a583063e6823e05dcea86b5110c4e09fc5e94afd1bf4c9b643a32c43c"}}, {"rule": 2, "type": "equivalent", "target": "a32635d021a34f24cf85a7d7dab70099", "evidence": {"same_day": true, "patch_ids": ["f2b427eb4cc159b6f04039f441042743"], "statement_hash": "17ccc82a583063e6823e05dcea86b5110c4e09fc5e94afd1bf4c9b643a32c43c"}}, {"rule": 2, "type": "equivalent", "target": "eac86512b06678574c831246bd1c4e1d", "evidence": {"same_day": true, "patch_ids": ["f2b427eb4cc159b6f04039f441042743"], "statement_hash": "17ccc82a583063e6823e05dcea86b5110c4e09fc5e94afd1bf4c9b643a32c43c"}}], "version": "15.2", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": [{"db_id": "eac86512b06678574c831246bd1c4e1d", "kind": "equivalent", "version": "14.7", "label": "14.7", "title": "Limit the amount of cleanup work done by get_actual_variable_range", "evidence": {"same_day": true, "patch_ids": ["f2b427eb4cc159b6f04039f441042743"], "statement_hash": "17ccc82a583063e6823e05dcea86b5110c4e09fc5e94afd1bf4c9b643a32c43c"}, "url": "/docs/compare/?release=14.7#14.7-93ec24f4214cdded", "source_url": "/docs/release/14.7/#id-1.11.6.23.5"}, {"db_id": "3fa3289ac41ba3dae3f215446f66b446", "kind": "equivalent", "version": "13.10", "label": "13.10", "title": "Limit the amount of cleanup work done by get_actual_variable_range", "evidence": {"same_day": true, "patch_ids": ["f2b427eb4cc159b6f04039f441042743"], "statement_hash": "17ccc82a583063e6823e05dcea86b5110c4e09fc5e94afd1bf4c9b643a32c43c"}, "url": "/docs/compare/?release=13.10#13.10-4eaf68022338e162", "source_url": "/docs/release/13.10/#id-1.11.6.19.5"}, {"db_id": "a32635d021a34f24cf85a7d7dab70099", "kind": "equivalent", "version": "12.14", "label": "12.14", "title": "Limit the amount of cleanup work done by get_actual_variable_range", "evidence": {"same_day": true, "patch_ids": ["f2b427eb4cc159b6f04039f441042743"], "statement_hash": "17ccc82a583063e6823e05dcea86b5110c4e09fc5e94afd1bf4c9b643a32c43c"}, "url": "/docs/compare/?release=12.14#12.14-ffb0dcdce89b2abb", "source_url": "/docs/release/12.14/#id-1.11.6.14.5"}, {"db_id": "7d30afa741c434b1e7cfa2c793c8d84e", "kind": "equivalent", "version": "11.19", "label": "11.19", "title": "Limit the amount of cleanup work done by get_actual_variable_range", "evidence": {"same_day": true, "patch_ids": ["f2b427eb4cc159b6f04039f441042743"], "statement_hash": "17ccc82a583063e6823e05dcea86b5110c4e09fc5e94afd1bf4c9b643a32c43c"}, "url": "/docs/compare/?release=11.19#11.19-2fccd5dc63d91797", "source_url": "/docs/release/11.19/#id-1.11.6.8.6"}]}, {"id": "15.2-75f8a7064b1ab4c0", "cves": [], "html": "<p>Prevent the statistics machinery from getting confused when a relation's relkind changes (Andres Freund) <a href=\"https://postgr.es/c/c6a60471a\">§</a></p>\n<p>Converting a table to a view could lead to crashes or assertion failures.</p>", "text": "Prevent the statistics machinery from getting confused when a relation's relkind changes (Andres Freund) § Converting a table to a view could lead to crashes or assertion failures.", "title": "Prevent the statistics machinery from getting confused when a relation's relkind changes", "commits": ["c6a60471a"], "section": "Changes", "category": "improvement", "source_url": "/docs/release/15.2/#id-1.11.6.23.5", "source_hash": "dae589041376d2a591e69ef3b0cdb15cc61d46c0c7fecb6c0fada987e4e84591", "section_path": ["Changes"], "commit_groups": [["c6a60471a", "cb2e7ddfe"]], "identity_text": "Prevent the statistics machinery from getting confused when a relation's relkind changes (Andres Freund) Converting a table to a view could lead to crashes or assertion failures.", "commit_aliases": ["c6a60471a", "cb2e7ddfe"], "source_commits": ["c6a60471a"], "source_entry_id": "15.2/changes/026", "db_id": "38889725424669d4ea0f60bd4c430c7a", "patch_ids": ["95662e6b05d56153dac83309b903ebd1"], "statement_hash": "11dc7f959dbdee2a19f026741ba4fa0614f1de0f297c9a75f9f0bce22d617060", "relations": [], "version": "15.2", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": []}, {"id": "15.2-c722831fdc56cf50", "cves": [], "html": "<p>Fix under-parenthesized display of <code>AT TIME ZONE</code> constructs (Tom Lane) <a href=\"https://postgr.es/c/a711b36e5\">§</a></p>\n<p>This could result in dump/restore failures for rules or views in which an argument of <code>AT TIME ZONE</code> is itself an expression.</p>", "text": "Fix under-parenthesized display of AT TIME ZONE constructs (Tom Lane) § This could result in dump/restore failures for rules or views in which an argument of AT TIME ZONE is itself an expression.", "title": "Fix under-parenthesized display of AT TIME ZONE constructs", "commits": ["a711b36e5"], "section": "Changes", "category": "bugfix", "source_url": "/docs/release/15.2/#id-1.11.6.23.5", "source_hash": "21e07598bf8c9f6b832a2d56df63ff30cf21991134391f05e29f8777dba9fc7e", "section_path": ["Changes"], "commit_groups": [["1dd6700f4", "a711b36e5", "de0ff6088"]], "identity_text": "Fix under-parenthesized display of AT TIME ZONE constructs (Tom Lane) This could result in dump/restore failures for rules or views in which an argument of AT TIME ZONE is itself an expression.", "commit_aliases": ["1dd6700f4", "a711b36e5", "de0ff6088"], "source_commits": ["a711b36e5"], "source_entry_id": "15.2/changes/027", "db_id": "ad6074faaaa1a976dc7816441e52cdbd", "patch_ids": ["2e713aee99566d2f8abdb78913fc2f0f"], "statement_hash": "df9d245cb736e77f32f1505d333924f9f28815f7e15be91540912468d2546afb", "relations": [{"rule": 2, "type": "equivalent", "target": "65e013eb8fd1e8e96fd539e4dfc57a1a", "evidence": {"same_day": true, "patch_ids": ["2e713aee99566d2f8abdb78913fc2f0f"], "statement_hash": "df9d245cb736e77f32f1505d333924f9f28815f7e15be91540912468d2546afb"}}], "version": "15.2", "category_label": "Bug fixes", "also_in": [], "variants": [], "related_changes": [{"db_id": "65e013eb8fd1e8e96fd539e4dfc57a1a", "kind": "equivalent", "version": "14.7", "label": "14.7", "title": "Fix under-parenthesized display of AT TIME ZONE constructs", "evidence": {"same_day": true, "patch_ids": ["2e713aee99566d2f8abdb78913fc2f0f"], "statement_hash": "df9d245cb736e77f32f1505d333924f9f28815f7e15be91540912468d2546afb"}, "url": "/docs/compare/?release=14.7#14.7-56b2472323fb9e5d", "source_url": "/docs/release/14.7/#id-1.11.6.23.5"}]}, {"id": "15.2-e717031f4de7b017", "cves": [], "html": "<p>Prevent clobbering of cached parsetrees for utility statements in SQL functions (Tom Lane, Daniel Gustafsson) <a href=\"https://postgr.es/c/5dfc2b753\">§</a></p>\n<p>If a SQL-language function executes the same utility command more than once within a single calling query, it could crash or report strange errors such as <span>“<span>unrecognized node type</span>”</span>.</p>", "text": "Prevent clobbering of cached parsetrees for utility statements in SQL functions (Tom Lane, Daniel Gustafsson) § If a SQL-language function executes the same utility command more than once within a single calling query, it could crash or report strange errors such as “unrecognized node type”.", "title": "Prevent clobbering of cached parsetrees for utility statements in SQL functions", "commits": ["5dfc2b753"], "section": "Changes", "category": "improvement", "source_url": "/docs/release/15.2/#id-1.11.6.23.5", "source_hash": "0f2ba35694496ec718489a509ccc7e484c62ae6330c350a9f55e1498f79f1d81", "section_path": ["Changes"], "commit_groups": [["5dfc2b753", "7715a3c24", "8b47ccb62"]], "identity_text": "Prevent clobbering of cached parsetrees for utility statements in SQL functions (Tom Lane, Daniel Gustafsson) If a SQL-language function executes the same utility command more than once within a single calling query, it could crash or report strange errors such as unrecognized node type.", "commit_aliases": ["5dfc2b753", "7715a3c24", "8b47ccb62"], "source_commits": ["5dfc2b753"], "source_entry_id": "15.2/changes/028", "db_id": "6d20959eb1a0952e90d2a4749083efa3", "patch_ids": ["64eba7747a40b5dd917004452b48be41"], "statement_hash": "32611e8c578a67fed1bd4f23b5278f7b0eb0544cfdb1c8d2e8da9f0667bc92ef", "relations": [{"rule": 2, "type": "equivalent", "target": "5932d72233fb08b740233e17f971dd05", "evidence": {"same_day": true, "patch_ids": ["64eba7747a40b5dd917004452b48be41"], "statement_hash": "32611e8c578a67fed1bd4f23b5278f7b0eb0544cfdb1c8d2e8da9f0667bc92ef"}}], "version": "15.2", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": [{"db_id": "5932d72233fb08b740233e17f971dd05", "kind": "equivalent", "version": "14.7", "label": "14.7", "title": "Prevent clobbering of cached parsetrees for utility statements in SQL functions", "evidence": {"same_day": true, "patch_ids": ["64eba7747a40b5dd917004452b48be41"], "statement_hash": "32611e8c578a67fed1bd4f23b5278f7b0eb0544cfdb1c8d2e8da9f0667bc92ef"}, "url": "/docs/compare/?release=14.7#14.7-a35de22534117412", "source_url": "/docs/release/14.7/#id-1.11.6.23.5"}]}, {"id": "15.2-e40640d70917b578", "cves": [], "html": "<p>Ensure that execution of full-text-search queries can be cancelled while they are performing phrase matches (Tom Lane) <a href=\"https://postgr.es/c/0353db996\">§</a></p>", "text": "Ensure that execution of full-text-search queries can be cancelled while they are performing phrase matches (Tom Lane) §", "title": "Ensure that execution of full-text-search queries can be cancelled while they are performing phrase matches", "commits": ["0353db996"], "section": "Changes", "category": "improvement", "source_url": "/docs/release/15.2/#id-1.11.6.23.5", "source_hash": "deab283692764946220711d7e65ba4ff5209694781aea31022fcb5702a6dd298", "section_path": ["Changes"], "commit_groups": [["0353db996", "1aed4c4fd", "1b9c04b13", "5644d6f90", "74670688f", "c0eed8891"]], "identity_text": "Ensure that execution of full-text-search queries can be cancelled while they are performing phrase matches (Tom Lane)", "commit_aliases": ["0353db996", "1aed4c4fd", "1b9c04b13", "5644d6f90", "74670688f", "c0eed8891"], "source_commits": ["0353db996"], "source_entry_id": "15.2/changes/029", "db_id": "d27a03f53291be3243997a24d6164d8f", "patch_ids": ["1a5edb79e8f4a758da21291728407b22"], "statement_hash": "c63c3bbac940f97fe499b5d2686636e41b0fe7f5add1d04c3b3fb9937b7f2911", "relations": [{"rule": 2, "type": "equivalent", "target": "6cc8179b75e5297003cc9046fd58b9ed", "evidence": {"same_day": true, "patch_ids": ["1a5edb79e8f4a758da21291728407b22"], "statement_hash": "c63c3bbac940f97fe499b5d2686636e41b0fe7f5add1d04c3b3fb9937b7f2911"}}, {"rule": 2, "type": "equivalent", "target": "74ee2d0de6ba6e2966d178a756911b7c", "evidence": {"same_day": true, "patch_ids": ["1a5edb79e8f4a758da21291728407b22"], "statement_hash": "c63c3bbac940f97fe499b5d2686636e41b0fe7f5add1d04c3b3fb9937b7f2911"}}, {"rule": 2, "type": "equivalent", "target": "78881f78a9428d46f9ba9a5886ed1e7f", "evidence": {"same_day": true, "patch_ids": ["1a5edb79e8f4a758da21291728407b22"], "statement_hash": "c63c3bbac940f97fe499b5d2686636e41b0fe7f5add1d04c3b3fb9937b7f2911"}}, {"rule": 2, "type": "equivalent", "target": "b62f364b81e08ed5b7e390440fa47def", "evidence": {"same_day": true, "patch_ids": ["1a5edb79e8f4a758da21291728407b22"], "statement_hash": "c63c3bbac940f97fe499b5d2686636e41b0fe7f5add1d04c3b3fb9937b7f2911"}}], "version": "15.2", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": [{"db_id": "78881f78a9428d46f9ba9a5886ed1e7f", "kind": "equivalent", "version": "14.7", "label": "14.7", "title": "Ensure that execution of full-text-search queries can be cancelled while they are performing phrase matches", "evidence": {"same_day": true, "patch_ids": ["1a5edb79e8f4a758da21291728407b22"], "statement_hash": "c63c3bbac940f97fe499b5d2686636e41b0fe7f5add1d04c3b3fb9937b7f2911"}, "url": "/docs/compare/?release=14.7#14.7-b491b658c827f4a4", "source_url": "/docs/release/14.7/#id-1.11.6.23.5"}, {"db_id": "74ee2d0de6ba6e2966d178a756911b7c", "kind": "equivalent", "version": "13.10", "label": "13.10", "title": "Ensure that execution of full-text-search queries can be cancelled while they are performing phrase matches", "evidence": {"same_day": true, "patch_ids": ["1a5edb79e8f4a758da21291728407b22"], "statement_hash": "c63c3bbac940f97fe499b5d2686636e41b0fe7f5add1d04c3b3fb9937b7f2911"}, "url": "/docs/compare/?release=13.10#13.10-1b8a10f16c43fb85", "source_url": "/docs/release/13.10/#id-1.11.6.19.5"}, {"db_id": "6cc8179b75e5297003cc9046fd58b9ed", "kind": "equivalent", "version": "12.14", "label": "12.14", "title": "Ensure that execution of full-text-search queries can be cancelled while they are performing phrase matches", "evidence": {"same_day": true, "patch_ids": ["1a5edb79e8f4a758da21291728407b22"], "statement_hash": "c63c3bbac940f97fe499b5d2686636e41b0fe7f5add1d04c3b3fb9937b7f2911"}, "url": "/docs/compare/?release=12.14#12.14-cfb9990dc4aedde5", "source_url": "/docs/release/12.14/#id-1.11.6.14.5"}, {"db_id": "b62f364b81e08ed5b7e390440fa47def", "kind": "equivalent", "version": "11.19", "label": "11.19", "title": "Ensure that execution of full-text-search queries can be cancelled while they are performing phrase matches", "evidence": {"same_day": true, "patch_ids": ["1a5edb79e8f4a758da21291728407b22"], "statement_hash": "c63c3bbac940f97fe499b5d2686636e41b0fe7f5add1d04c3b3fb9937b7f2911"}, "url": "/docs/compare/?release=11.19#11.19-42be9cc756f31c49", "source_url": "/docs/release/11.19/#id-1.11.6.8.6"}]}, {"id": "15.2-525f43a7a7d4e8fc", "cves": [], "html": "<p>Fix memory leak in hashing strings with nondeterministic collations (Jeff Davis) <a href=\"https://postgr.es/c/9377b4f30\">§</a></p>", "text": "Fix memory leak in hashing strings with nondeterministic collations (Jeff Davis) §", "title": "Fix memory leak in hashing strings with nondeterministic collations", "commits": ["9377b4f30"], "section": "Changes", "category": "bugfix", "source_url": "/docs/release/15.2/#id-1.11.6.23.5", "source_hash": "11807a8daf054685c4e3d8caeb6a480dd3581dc374b52217f049a470a87d0d34", "section_path": ["Changes"], "commit_groups": [["47e1224d5", "9377b4f30", "a844052b5", "edf12e7bb", "f98c4fb1d"]], "identity_text": "Fix memory leak in hashing strings with nondeterministic collations (Jeff Davis)", "commit_aliases": ["47e1224d5", "9377b4f30", "a844052b5", "edf12e7bb", "f98c4fb1d"], "source_commits": ["9377b4f30"], "source_entry_id": "15.2/changes/030", "db_id": "9094d14461dc2e6dc506aea25465f637", "patch_ids": ["3f4ec5f23f6762bfb8f8a9541c39811d"], "statement_hash": "ecb659f7305e138eabbba1ebaac680f7bd7f0b317fa000ae0f0d44ddc294f236", "relations": [{"rule": 2, "type": "equivalent", "target": "0d55210ee4a7fa82ce3c1e004d22f631", "evidence": {"same_day": true, "patch_ids": ["3f4ec5f23f6762bfb8f8a9541c39811d"], "statement_hash": "ecb659f7305e138eabbba1ebaac680f7bd7f0b317fa000ae0f0d44ddc294f236"}}, {"rule": 2, "type": "equivalent", "target": "143f0cdc057f5d55143b6fd4226c08fa", "evidence": {"same_day": true, "patch_ids": ["3f4ec5f23f6762bfb8f8a9541c39811d"], "statement_hash": "ecb659f7305e138eabbba1ebaac680f7bd7f0b317fa000ae0f0d44ddc294f236"}}, {"rule": 2, "type": "equivalent", "target": "2816c467f6dfc309bdc20da3bcb224d2", "evidence": {"same_day": true, "patch_ids": ["3f4ec5f23f6762bfb8f8a9541c39811d"], "statement_hash": "ecb659f7305e138eabbba1ebaac680f7bd7f0b317fa000ae0f0d44ddc294f236"}}], "version": "15.2", "category_label": "Bug fixes", "also_in": [], "variants": [], "related_changes": [{"db_id": "0d55210ee4a7fa82ce3c1e004d22f631", "kind": "equivalent", "version": "14.7", "label": "14.7", "title": "Fix memory leak in hashing strings with nondeterministic collations", "evidence": {"same_day": true, "patch_ids": ["3f4ec5f23f6762bfb8f8a9541c39811d"], "statement_hash": "ecb659f7305e138eabbba1ebaac680f7bd7f0b317fa000ae0f0d44ddc294f236"}, "url": "/docs/compare/?release=14.7#14.7-f55d60a5c2b738ea", "source_url": "/docs/release/14.7/#id-1.11.6.23.5"}, {"db_id": "143f0cdc057f5d55143b6fd4226c08fa", "kind": "equivalent", "version": "13.10", "label": "13.10", "title": "Fix memory leak in hashing strings with nondeterministic collations", "evidence": {"same_day": true, "patch_ids": ["3f4ec5f23f6762bfb8f8a9541c39811d"], "statement_hash": "ecb659f7305e138eabbba1ebaac680f7bd7f0b317fa000ae0f0d44ddc294f236"}, "url": "/docs/compare/?release=13.10#13.10-2717bdcca432d322", "source_url": "/docs/release/13.10/#id-1.11.6.19.5"}, {"db_id": "2816c467f6dfc309bdc20da3bcb224d2", "kind": "equivalent", "version": "12.14", "label": "12.14", "title": "Fix memory leak in hashing strings with nondeterministic collations", "evidence": {"same_day": true, "patch_ids": ["3f4ec5f23f6762bfb8f8a9541c39811d"], "statement_hash": "ecb659f7305e138eabbba1ebaac680f7bd7f0b317fa000ae0f0d44ddc294f236"}, "url": "/docs/compare/?release=12.14#12.14-c40cfd49255afd45", "source_url": "/docs/release/12.14/#id-1.11.6.14.5"}]}, {"id": "15.2-4e3438199ed34589", "cves": [], "html": "<p>Fix deadlock between <code>DROP DATABASE</code> and logical replication worker process (Hou Zhijie) <a href=\"https://postgr.es/c/267135d01\">§</a></p>\n<p>This was caused by an ill-advised choice to block interrupts while creating a logical replication slot in the worker. In version 15 that could lead to an undetected deadlock. In version 14, no deadlock has been observed, but it's still a bad idea to block interrupts while waiting for network I/O.</p>", "text": "Fix deadlock between DROP DATABASE and logical replication worker process (Hou Zhijie) § This was caused by an ill-advised choice to block interrupts while creating a logical replication slot in the worker. In version 15 that could lead to an undetected deadlock. In version 14, no deadlock has been observed, but it's still a bad idea to block interrupts while waiting for network I/O.", "title": "Fix deadlock between DROP DATABASE and logical replication worker process", "commits": ["267135d01"], "section": "Changes", "category": "bugfix", "source_url": "/docs/release/15.2/#id-1.11.6.23.5", "source_hash": "83feac6b1028cc71e316370e622723046b43a530ee008eb43e84caf1cd82e7cc", "section_path": ["Changes"], "commit_groups": [["267135d01", "6c6d6ba3e", "fd270b728"]], "identity_text": "Fix deadlock between DROP DATABASE and logical replication worker process (Hou Zhijie) This was caused by an ill-advised choice to block interrupts while creating a logical replication slot in the worker. In version 15 that could lead to an undetected deadlock. In version 14, no deadlock has been observed, but it's still a bad idea to block interrupts while waiting for network I/O.", "commit_aliases": ["267135d01", "6c6d6ba3e", "fd270b728"], "source_commits": ["267135d01"], "source_entry_id": "15.2/changes/031", "db_id": "8a71f22da551c69f813c530c0d5c68a3", "patch_ids": ["ebe1fc892db886300595c5916639e21e"], "statement_hash": "432aade79e957ae6c85f21995ce5319d4512cf90f215bf63e59a8bfbb710b84b", "relations": [{"rule": 2, "type": "equivalent", "target": "c6dabc7bbb112e986d361df0ff0df408", "evidence": {"same_day": true, "patch_ids": ["ebe1fc892db886300595c5916639e21e"], "statement_hash": "432aade79e957ae6c85f21995ce5319d4512cf90f215bf63e59a8bfbb710b84b"}}], "version": "15.2", "category_label": "Bug fixes", "also_in": [], "variants": [], "related_changes": [{"db_id": "c6dabc7bbb112e986d361df0ff0df408", "kind": "equivalent", "version": "14.7", "label": "14.7", "title": "Fix deadlock between DROP DATABASE and logical replication worker process", "evidence": {"same_day": true, "patch_ids": ["ebe1fc892db886300595c5916639e21e"], "statement_hash": "432aade79e957ae6c85f21995ce5319d4512cf90f215bf63e59a8bfbb710b84b"}, "url": "/docs/compare/?release=14.7#14.7-ac07afbe25e1ac22", "source_url": "/docs/release/14.7/#id-1.11.6.23.5"}]}, {"id": "15.2-648bbd90e4c3eeeb", "cves": [], "html": "<p>Clean up the <span>libpq</span> connection object after a failed replication connection attempt (Andres Freund) <a href=\"https://postgr.es/c/704a330a9\">§</a></p>\n<p>The previous coding leaked the connection object. In background code paths that's pretty harmless because the calling process will give up and exit. But in commands such as <code>CREATE SUBSCRIPTION</code>, such a failure resulted in a small session-lifespan memory leak.</p>", "text": "Clean up the libpq connection object after a failed replication connection attempt (Andres Freund) § The previous coding leaked the connection object. In background code paths that's pretty harmless because the calling process will give up and exit. But in commands such as CREATE SUBSCRIPTION, such a failure resulted in a small session-lifespan memory leak.", "title": "Clean up the libpq connection object after a failed replication connection attempt", "commits": ["704a330a9"], "section": "Changes", "category": "improvement", "source_url": "/docs/release/15.2/#id-1.11.6.23.5", "source_hash": "e96daedcffeebc29be7916fde6838c8ddfe169089375b1a04f11e4460c5ba53a", "section_path": ["Changes"], "commit_groups": [["0a796b8b3", "243373159", "704a330a9", "92fc12787", "bc54ef4ec", "c5864805b"]], "identity_text": "Clean up the libpq connection object after a failed replication connection attempt (Andres Freund) The previous coding leaked the connection object. In background code paths that's pretty harmless because the calling process will give up and exit. But in commands such as CREATE SUBSCRIPTION, such a failure resulted in a small session-lifespan memory leak.", "commit_aliases": ["0a796b8b3", "243373159", "704a330a9", "92fc12787", "bc54ef4ec", "c5864805b"], "source_commits": ["704a330a9"], "source_entry_id": "15.2/changes/032", "db_id": "97c4a0228ccdc743d62c928c70a41a14", "patch_ids": ["b975fa7579145e109e4a16d43bd51a28"], "statement_hash": "7f34441e1f8e5031d415641848e8bcd827c0ad95320f0ce2362aa31a39e52b96", "relations": [{"rule": 2, "type": "equivalent", "target": "018f120d1afdec97a0946aabe153abaa", "evidence": {"same_day": true, "patch_ids": ["b975fa7579145e109e4a16d43bd51a28"], "statement_hash": "7f34441e1f8e5031d415641848e8bcd827c0ad95320f0ce2362aa31a39e52b96"}}, {"rule": 2, "type": "equivalent", "target": "cfd32cfe4153f088fa9ecd7fcee2fecd", "evidence": {"same_day": true, "patch_ids": ["b975fa7579145e109e4a16d43bd51a28"], "statement_hash": "7f34441e1f8e5031d415641848e8bcd827c0ad95320f0ce2362aa31a39e52b96"}}, {"rule": 2, "type": "equivalent", "target": "d2c8fdfde300260385852af4caaed71e", "evidence": {"same_day": true, "patch_ids": ["b975fa7579145e109e4a16d43bd51a28"], "statement_hash": "7f34441e1f8e5031d415641848e8bcd827c0ad95320f0ce2362aa31a39e52b96"}}, {"rule": 2, "type": "equivalent", "target": "efc36f631cd3f101b7727603e6a667fe", "evidence": {"same_day": true, "patch_ids": ["b975fa7579145e109e4a16d43bd51a28"], "statement_hash": "7f34441e1f8e5031d415641848e8bcd827c0ad95320f0ce2362aa31a39e52b96"}}], "version": "15.2", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": [{"db_id": "018f120d1afdec97a0946aabe153abaa", "kind": "equivalent", "version": "14.7", "label": "14.7", "title": "Clean up the libpq connection object after a failed replication connection attempt", "evidence": {"same_day": true, "patch_ids": ["b975fa7579145e109e4a16d43bd51a28"], "statement_hash": "7f34441e1f8e5031d415641848e8bcd827c0ad95320f0ce2362aa31a39e52b96"}, "url": "/docs/compare/?release=14.7#14.7-d9c0f4cbb41b12d4", "source_url": "/docs/release/14.7/#id-1.11.6.23.5"}, {"db_id": "cfd32cfe4153f088fa9ecd7fcee2fecd", "kind": "equivalent", "version": "13.10", "label": "13.10", "title": "Clean up the libpq connection object after a failed replication connection attempt", "evidence": {"same_day": true, "patch_ids": ["b975fa7579145e109e4a16d43bd51a28"], "statement_hash": "7f34441e1f8e5031d415641848e8bcd827c0ad95320f0ce2362aa31a39e52b96"}, "url": "/docs/compare/?release=13.10#13.10-acfefe62b3fadd83", "source_url": "/docs/release/13.10/#id-1.11.6.19.5"}, {"db_id": "d2c8fdfde300260385852af4caaed71e", "kind": "equivalent", "version": "12.14", "label": "12.14", "title": "Clean up the libpq connection object after a failed replication connection attempt", "evidence": {"same_day": true, "patch_ids": ["b975fa7579145e109e4a16d43bd51a28"], "statement_hash": "7f34441e1f8e5031d415641848e8bcd827c0ad95320f0ce2362aa31a39e52b96"}, "url": "/docs/compare/?release=12.14#12.14-f5ff06477c8b31f4", "source_url": "/docs/release/12.14/#id-1.11.6.14.5"}, {"db_id": "efc36f631cd3f101b7727603e6a667fe", "kind": "equivalent", "version": "11.19", "label": "11.19", "title": "Clean up the libpq connection object after a failed replication connection attempt", "evidence": {"same_day": true, "patch_ids": ["b975fa7579145e109e4a16d43bd51a28"], "statement_hash": "7f34441e1f8e5031d415641848e8bcd827c0ad95320f0ce2362aa31a39e52b96"}, "url": "/docs/compare/?release=11.19#11.19-3217bbdb3799c44c", "source_url": "/docs/release/11.19/#id-1.11.6.8.6"}]}, {"id": "15.2-31a388936be1c2ca", "cves": [], "html": "<p>In hot-standby servers, reduce processing effort for tracking XIDs known to be active on the primary (Simon Riggs, Michail Nikolaev) <a href=\"https://postgr.es/c/55fa993d7\">§</a></p>\n<p>Insufficiently-aggressive cleanup of the KnownAssignedXids array could lead to poor performance, particularly when <code>max_connections</code> is set to a large value on the standby.</p>", "text": "In hot-standby servers, reduce processing effort for tracking XIDs known to be active on the primary (Simon Riggs, Michail Nikolaev) § Insufficiently-aggressive cleanup of the KnownAssignedXids array could lead to poor performance, particularly when max_connections is set to a large value on the standby.", "title": "In hot-standby servers, reduce processing effort for tracking XIDs known to be active on the primary", "commits": ["55fa993d7"], "section": "Changes", "category": "improvement", "source_url": "/docs/release/15.2/#id-1.11.6.23.5", "source_hash": "25dd4cb8878eae871e7b55739e1f81c696c7a254dd9e184fe562ed4eae0c4234", "section_path": ["Changes"], "commit_groups": [["06998eab1", "55fa993d7", "6e8ad1152", "8242752f9", "a6c9e1db2", "c4a153d77"]], "identity_text": "In hot-standby servers, reduce processing effort for tracking XIDs known to be active on the primary (Simon Riggs, Michail Nikolaev) Insufficiently-aggressive cleanup of the KnownAssignedXids array could lead to poor performance, particularly when max_connections is set to a large value on the standby.", "commit_aliases": ["06998eab1", "55fa993d7", "6e8ad1152", "8242752f9", "a6c9e1db2", "c4a153d77"], "source_commits": ["55fa993d7"], "source_entry_id": "15.2/changes/033", "db_id": "fd359f2fc1efebb0bd0966cf55b7dcee", "patch_ids": ["fef0d172d23db583d075ca6f70468fb7"], "statement_hash": "4ce28c70c5de9b89726a7ab817fa3e48bedd49e4b5d6a0fc72a68b3feef1ca70", "relations": [{"rule": 2, "type": "equivalent", "target": "0ae94d8ad1e9a5b05ad5289f5bb23b06", "evidence": {"same_day": true, "patch_ids": ["fef0d172d23db583d075ca6f70468fb7"], "statement_hash": "4ce28c70c5de9b89726a7ab817fa3e48bedd49e4b5d6a0fc72a68b3feef1ca70"}}, {"rule": 2, "type": "equivalent", "target": "14736c220452b834b7d66bd1aa83f3e2", "evidence": {"same_day": true, "patch_ids": ["fef0d172d23db583d075ca6f70468fb7"], "statement_hash": "4ce28c70c5de9b89726a7ab817fa3e48bedd49e4b5d6a0fc72a68b3feef1ca70"}}, {"rule": 2, "type": "equivalent", "target": "384d71012734b6a8baf07bd8185ca2aa", "evidence": {"same_day": true, "patch_ids": ["fef0d172d23db583d075ca6f70468fb7"], "statement_hash": "4ce28c70c5de9b89726a7ab817fa3e48bedd49e4b5d6a0fc72a68b3feef1ca70"}}, {"rule": 2, "type": "equivalent", "target": "a729d760e21da89ca496b1c28204ff80", "evidence": {"same_day": true, "patch_ids": ["fef0d172d23db583d075ca6f70468fb7"], "statement_hash": "4ce28c70c5de9b89726a7ab817fa3e48bedd49e4b5d6a0fc72a68b3feef1ca70"}}], "version": "15.2", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": [{"db_id": "14736c220452b834b7d66bd1aa83f3e2", "kind": "equivalent", "version": "14.7", "label": "14.7", "title": "In hot-standby servers, reduce processing effort for tracking XIDs known to be active on the primary", "evidence": {"same_day": true, "patch_ids": ["fef0d172d23db583d075ca6f70468fb7"], "statement_hash": "4ce28c70c5de9b89726a7ab817fa3e48bedd49e4b5d6a0fc72a68b3feef1ca70"}, "url": "/docs/compare/?release=14.7#14.7-19c19e0fd27a3d98", "source_url": "/docs/release/14.7/#id-1.11.6.23.5"}, {"db_id": "0ae94d8ad1e9a5b05ad5289f5bb23b06", "kind": "equivalent", "version": "13.10", "label": "13.10", "title": "In hot-standby servers, reduce processing effort for tracking XIDs known to be active on the primary", "evidence": {"same_day": true, "patch_ids": ["fef0d172d23db583d075ca6f70468fb7"], "statement_hash": "4ce28c70c5de9b89726a7ab817fa3e48bedd49e4b5d6a0fc72a68b3feef1ca70"}, "url": "/docs/compare/?release=13.10#13.10-32970dde78b43a5e", "source_url": "/docs/release/13.10/#id-1.11.6.19.5"}, {"db_id": "384d71012734b6a8baf07bd8185ca2aa", "kind": "equivalent", "version": "12.14", "label": "12.14", "title": "In hot-standby servers, reduce processing effort for tracking XIDs known to be active on the primary", "evidence": {"same_day": true, "patch_ids": ["fef0d172d23db583d075ca6f70468fb7"], "statement_hash": "4ce28c70c5de9b89726a7ab817fa3e48bedd49e4b5d6a0fc72a68b3feef1ca70"}, "url": "/docs/compare/?release=12.14#12.14-61477a96a71482d0", "source_url": "/docs/release/12.14/#id-1.11.6.14.5"}, {"db_id": "a729d760e21da89ca496b1c28204ff80", "kind": "equivalent", "version": "11.19", "label": "11.19", "title": "In hot-standby servers, reduce processing effort for tracking XIDs known to be active on the primary", "evidence": {"same_day": true, "patch_ids": ["fef0d172d23db583d075ca6f70468fb7"], "statement_hash": "4ce28c70c5de9b89726a7ab817fa3e48bedd49e4b5d6a0fc72a68b3feef1ca70"}, "url": "/docs/compare/?release=11.19#11.19-9d0b2f634c059025", "source_url": "/docs/release/11.19/#id-1.11.6.8.6"}]}, {"id": "15.2-9f8a6bab6cb70538", "cves": [], "html": "<p>Ignore invalidated logical-replication slots while determining oldest catalog xmin (Sirisha Chamarthi) <a href=\"https://postgr.es/c/1ad033df1\">§</a></p>\n<p>A replication slot could prevent cleanup of dead tuples in the system catalogs even after it becomes invalidated due to exceeding <code>max_slot_wal_keep_size</code>. Thus, failure of a replication consumer could lead to indefinitely-large catalog bloat.</p>", "text": "Ignore invalidated logical-replication slots while determining oldest catalog xmin (Sirisha Chamarthi) § A replication slot could prevent cleanup of dead tuples in the system catalogs even after it becomes invalidated due to exceeding max_slot_wal_keep_size. Thus, failure of a replication consumer could lead to indefinitely-large catalog bloat.", "title": "Ignore invalidated logical-replication slots while determining oldest catalog xmin", "commits": ["1ad033df1"], "section": "Changes", "category": "improvement", "source_url": "/docs/release/15.2/#id-1.11.6.23.5", "source_hash": "634fb616a1ba81a47ce5a0d4a5aa24146d1e494a620c066fe7eff98eb0b02735", "section_path": ["Changes"], "commit_groups": [["0557e1770", "1ad033df1", "1b3ed7571", "36eeb37cd"]], "identity_text": "Ignore invalidated logical-replication slots while determining oldest catalog xmin (Sirisha Chamarthi) A replication slot could prevent cleanup of dead tuples in the system catalogs even after it becomes invalidated due to exceeding max_slot_wal_keep_size. Thus, failure of a replication consumer could lead to indefinitely-large catalog bloat.", "commit_aliases": ["0557e1770", "1ad033df1", "1b3ed7571", "36eeb37cd"], "source_commits": ["1ad033df1"], "source_entry_id": "15.2/changes/034", "db_id": "6ce05b99effe2e5275b9d26fbac236e6", "patch_ids": ["b9f7f97e763fde4293d35edc46ecf717"], "statement_hash": "0c58bb8c648a5318f9bbfb442b26761ec0f88b508e0563cbf44cb33a94610ff5", "relations": [{"rule": 2, "type": "equivalent", "target": "8301c3b1094c744bdd98d47b1c11162c", "evidence": {"same_day": true, "patch_ids": ["b9f7f97e763fde4293d35edc46ecf717"], "statement_hash": "0c58bb8c648a5318f9bbfb442b26761ec0f88b508e0563cbf44cb33a94610ff5"}}, {"rule": 2, "type": "equivalent", "target": "c2934003c083b224e444d288a90cb04a", "evidence": {"same_day": true, "patch_ids": ["b9f7f97e763fde4293d35edc46ecf717"], "statement_hash": "0c58bb8c648a5318f9bbfb442b26761ec0f88b508e0563cbf44cb33a94610ff5"}}], "version": "15.2", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": [{"db_id": "c2934003c083b224e444d288a90cb04a", "kind": "equivalent", "version": "14.7", "label": "14.7", "title": "Ignore invalidated logical-replication slots while determining oldest catalog xmin", "evidence": {"same_day": true, "patch_ids": ["b9f7f97e763fde4293d35edc46ecf717"], "statement_hash": "0c58bb8c648a5318f9bbfb442b26761ec0f88b508e0563cbf44cb33a94610ff5"}, "url": "/docs/compare/?release=14.7#14.7-dec6e9c6c73b30c1", "source_url": "/docs/release/14.7/#id-1.11.6.23.5"}, {"db_id": "8301c3b1094c744bdd98d47b1c11162c", "kind": "equivalent", "version": "13.10", "label": "13.10", "title": "Ignore invalidated logical-replication slots while determining oldest catalog xmin", "evidence": {"same_day": true, "patch_ids": ["b9f7f97e763fde4293d35edc46ecf717"], "statement_hash": "0c58bb8c648a5318f9bbfb442b26761ec0f88b508e0563cbf44cb33a94610ff5"}, "url": "/docs/compare/?release=13.10#13.10-b8e9d78cdd9a4aac", "source_url": "/docs/release/13.10/#id-1.11.6.19.5"}]}, {"id": "15.2-b0666858aaaef7cf", "cves": [], "html": "<p>In logical decoding, notify the remote node when a transaction is detected to have crashed (Hou Zhijie) <a href=\"https://postgr.es/c/18b81258a\">§</a></p>\n<p>After a server restart, we'll re-stream the changes for transactions occurring shortly before the restart. Some of these transactions probably never completed; when we realize that one didn't we throw away the relevant decoding state locally, but we neglected to tell the subscriber about it. That led to the subscriber keeping useless streaming files until it's next restarted.</p>", "text": "In logical decoding, notify the remote node when a transaction is detected to have crashed (Hou Zhijie) § After a server restart, we'll re-stream the changes for transactions occurring shortly before the restart. Some of these transactions probably never completed; when we realize that one didn't we throw away the relevant decoding state locally, but we neglected to tell the subscriber about it. That led to the subscriber keeping useless streaming files until it's next restarted.", "title": "In logical decoding, notify the remote node when a transaction is detected to have crashed", "commits": ["18b81258a"], "section": "Changes", "category": "improvement", "source_url": "/docs/release/15.2/#id-1.11.6.23.5", "source_hash": "e2cdec34e99853499220852c0c254b1c704a700b9dd6f0a0ecc425c3385d5ae5", "section_path": ["Changes"], "commit_groups": [["18b81258a", "2b6df0546", "b2cc5b810"]], "identity_text": "In logical decoding, notify the remote node when a transaction is detected to have crashed (Hou Zhijie) After a server restart, we'll re-stream the changes for transactions occurring shortly before the restart. Some of these transactions probably never completed; when we realize that one didn't we throw away the relevant decoding state locally, but we neglected to tell the subscriber about it. That led to the subscriber keeping useless streaming files until it's next restarted.", "commit_aliases": ["18b81258a", "2b6df0546", "b2cc5b810"], "source_commits": ["18b81258a"], "source_entry_id": "15.2/changes/035", "db_id": "ee0222047d6b2abfe12f9cf43b75a1f8", "patch_ids": ["90f4763aa9b13208c51e548ce1cfb8f0"], "statement_hash": "d439ee88239826abed8cb4da12dcc964c53dfb375200c63b146308ba3f9b1d95", "relations": [{"rule": 2, "type": "equivalent", "target": "f732d611cd29941389c127553a73e2e4", "evidence": {"same_day": true, "patch_ids": ["90f4763aa9b13208c51e548ce1cfb8f0"], "statement_hash": "d439ee88239826abed8cb4da12dcc964c53dfb375200c63b146308ba3f9b1d95"}}], "version": "15.2", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": [{"db_id": "f732d611cd29941389c127553a73e2e4", "kind": "equivalent", "version": "14.7", "label": "14.7", "title": "In logical decoding, notify the remote node when a transaction is detected to have crashed", "evidence": {"same_day": true, "patch_ids": ["90f4763aa9b13208c51e548ce1cfb8f0"], "statement_hash": "d439ee88239826abed8cb4da12dcc964c53dfb375200c63b146308ba3f9b1d95"}, "url": "/docs/compare/?release=14.7#14.7-375bf38468f35c0c", "source_url": "/docs/release/14.7/#id-1.11.6.23.5"}]}, {"id": "15.2-1bb0cfb2b80f606f", "cves": [], "html": "<p>Fix uninitialized-memory usage in logical decoding (Masahiko Sawada) <a href=\"https://postgr.es/c/898ef41bf\">§</a></p>\n<p>In certain cases, resumption of logical decoding could try to re-use XID data that had already been freed, leading to unpredictable behavior.</p>", "text": "Fix uninitialized-memory usage in logical decoding (Masahiko Sawada) § In certain cases, resumption of logical decoding could try to re-use XID data that had already been freed, leading to unpredictable behavior.", "title": "Fix uninitialized-memory usage in logical decoding", "commits": ["898ef41bf"], "section": "Changes", "category": "bugfix", "source_url": "/docs/release/15.2/#id-1.11.6.23.5", "source_hash": "1b9cbbcd9a6b0df37279683db1d0a52bab2018275b5d654b94c44dce6f0a7a93", "section_path": ["Changes"], "commit_groups": [["4ec157c15", "898ef41bf", "9b788aafd", "9f2cc1a73", "aa9d916f6"]], "identity_text": "Fix uninitialized-memory usage in logical decoding (Masahiko Sawada) In certain cases, resumption of logical decoding could try to re-use XID data that had already been freed, leading to unpredictable behavior.", "commit_aliases": ["4ec157c15", "898ef41bf", "9b788aafd", "9f2cc1a73", "aa9d916f6"], "source_commits": ["898ef41bf"], "source_entry_id": "15.2/changes/036", "db_id": "2b970d6265b4bfd24a98f3b14beb6751", "patch_ids": ["54ae1dac7cc0c91279a50506dad9db29"], "statement_hash": "61b7e58053ccddb68e539c63541bd6b8102b98c9b55ce16574ca08224f578de7", "relations": [{"rule": 2, "type": "equivalent", "target": "510672bfa376ef4c5b9b3aed67b94c80", "evidence": {"same_day": true, "patch_ids": ["54ae1dac7cc0c91279a50506dad9db29"], "statement_hash": "61b7e58053ccddb68e539c63541bd6b8102b98c9b55ce16574ca08224f578de7"}}, {"rule": 2, "type": "equivalent", "target": "66f773d42e99a014ae0c561bfc9cb9da", "evidence": {"same_day": true, "patch_ids": ["54ae1dac7cc0c91279a50506dad9db29"], "statement_hash": "61b7e58053ccddb68e539c63541bd6b8102b98c9b55ce16574ca08224f578de7"}}, {"rule": 2, "type": "equivalent", "target": "b08faea01215327f884c599883bd13d7", "evidence": {"same_day": true, "patch_ids": ["54ae1dac7cc0c91279a50506dad9db29"], "statement_hash": "61b7e58053ccddb68e539c63541bd6b8102b98c9b55ce16574ca08224f578de7"}}, {"rule": 2, "type": "equivalent", "target": "e9cf78d160177f53cbb57d9190944115", "evidence": {"same_day": true, "patch_ids": ["54ae1dac7cc0c91279a50506dad9db29"], "statement_hash": "61b7e58053ccddb68e539c63541bd6b8102b98c9b55ce16574ca08224f578de7"}}], "version": "15.2", "category_label": "Bug fixes", "also_in": [], "variants": [], "related_changes": [{"db_id": "b08faea01215327f884c599883bd13d7", "kind": "equivalent", "version": "14.7", "label": "14.7", "title": "Fix uninitialized-memory usage in logical decoding", "evidence": {"same_day": true, "patch_ids": ["54ae1dac7cc0c91279a50506dad9db29"], "statement_hash": "61b7e58053ccddb68e539c63541bd6b8102b98c9b55ce16574ca08224f578de7"}, "url": "/docs/compare/?release=14.7#14.7-be106755a9eb8436", "source_url": "/docs/release/14.7/#id-1.11.6.23.5"}, {"db_id": "e9cf78d160177f53cbb57d9190944115", "kind": "equivalent", "version": "13.10", "label": "13.10", "title": "Fix uninitialized-memory usage in logical decoding", "evidence": {"same_day": true, "patch_ids": ["54ae1dac7cc0c91279a50506dad9db29"], "statement_hash": "61b7e58053ccddb68e539c63541bd6b8102b98c9b55ce16574ca08224f578de7"}, "url": "/docs/compare/?release=13.10#13.10-4d8aa1ee7e4d9d41", "source_url": "/docs/release/13.10/#id-1.11.6.19.5"}, {"db_id": "510672bfa376ef4c5b9b3aed67b94c80", "kind": "equivalent", "version": "12.14", "label": "12.14", "title": "Fix uninitialized-memory usage in logical decoding", "evidence": {"same_day": true, "patch_ids": ["54ae1dac7cc0c91279a50506dad9db29"], "statement_hash": "61b7e58053ccddb68e539c63541bd6b8102b98c9b55ce16574ca08224f578de7"}, "url": "/docs/compare/?release=12.14#12.14-0722376b3bc139ab", "source_url": "/docs/release/12.14/#id-1.11.6.14.5"}, {"db_id": "66f773d42e99a014ae0c561bfc9cb9da", "kind": "equivalent", "version": "11.19", "label": "11.19", "title": "Fix uninitialized-memory usage in logical decoding", "evidence": {"same_day": true, "patch_ids": ["54ae1dac7cc0c91279a50506dad9db29"], "statement_hash": "61b7e58053ccddb68e539c63541bd6b8102b98c9b55ce16574ca08224f578de7"}, "url": "/docs/compare/?release=11.19#11.19-d4641c137d565f7a", "source_url": "/docs/release/11.19/#id-1.11.6.8.6"}]}, {"id": "15.2-ac1b5fc07240a109", "cves": [], "html": "<p>Acquire spinlock while updating shared state during logical decoding context creation (Masahiko Sawada) <a href=\"https://postgr.es/c/6f25e4877\">§</a></p>\n<p>We neglected to acquire the appropriate lock while updating data about two-phase transactions, potentially allowing other processes to see inconsistent data.</p>", "text": "Acquire spinlock while updating shared state during logical decoding context creation (Masahiko Sawada) § We neglected to acquire the appropriate lock while updating data about two-phase transactions, potentially allowing other processes to see inconsistent data.", "title": "Acquire spinlock while updating shared state during logical decoding context creation", "commits": ["6f25e4877"], "section": "Changes", "category": "improvement", "source_url": "/docs/release/15.2/#id-1.11.6.23.5", "source_hash": "6ec68b2164e30a99eb8bb61c48006fb4dfd6456a6826f6c68ad06b270b96aac6", "section_path": ["Changes"], "commit_groups": [["5ad165d2c", "6f25e4877"]], "identity_text": "Acquire spinlock while updating shared state during logical decoding context creation (Masahiko Sawada) We neglected to acquire the appropriate lock while updating data about two-phase transactions, potentially allowing other processes to see inconsistent data.", "commit_aliases": ["5ad165d2c", "6f25e4877"], "source_commits": ["6f25e4877"], "source_entry_id": "15.2/changes/037", "db_id": "3c3f402ca81062eafa57a9053bf3e6c2", "patch_ids": ["7de0814a5cc4d0ce58ace236c4e29104"], "statement_hash": "501b7c98e38d77a4e1847f6cea61c03b5bcd292e97c4f531164def3add379591", "relations": [], "version": "15.2", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": []}, {"id": "15.2-bcf1873adb8688e0", "cves": [], "html": "<p>Fix <span>pgoutput</span> replication plug-in to not send columns not listed in a table's replication column list (Hou Zhijie) <a href=\"https://postgr.es/c/ebf87c019\">§</a></p>\n<p><code>UPDATE</code> and <code>DELETE</code> events did not pay attention to the configured column list, thus sending more data than expected. This did not cause a problem when the receiver is our built-in logical replication code, but it might confuse other receivers, and in any case it wasted network bandwidth.</p>", "text": "Fix pgoutput replication plug-in to not send columns not listed in a table's replication column list (Hou Zhijie) § UPDATE and DELETE events did not pay attention to the configured column list, thus sending more data than expected. This did not cause a problem when the receiver is our built-in logical replication code, but it might confuse other receivers, and in any case it wasted network bandwidth.", "title": "Fix pgoutput replication plug-in to not send columns not listed in a table's replication column list", "commits": ["ebf87c019"], "section": "Changes", "category": "bugfix", "source_url": "/docs/release/15.2/#id-1.11.6.23.5", "source_hash": "248592642ffda03cce48a93529b4eeafa5ac596bf0e28b56b2c1cc5a58070fb3", "section_path": ["Changes"], "commit_groups": [["40b149135", "ebf87c019"]], "identity_text": "Fix pgoutput replication plug-in to not send columns not listed in a table's replication column list (Hou Zhijie) UPDATE and DELETE events did not pay attention to the configured column list, thus sending more data than expected. This did not cause a problem when the receiver is our built-in logical replication code, but it might confuse other receivers, and in any case it wasted network bandwidth.", "commit_aliases": ["40b149135", "ebf87c019"], "source_commits": ["ebf87c019"], "source_entry_id": "15.2/changes/038", "db_id": "30f104739fffeb63c4e43f0217236689", "patch_ids": ["ad874546583ada17621971a417fd34fc"], "statement_hash": "0faf290bb344751e529df5d262bf3fcb581c616851a433cc24fbf38237530a75", "relations": [], "version": "15.2", "category_label": "Bug fixes", "also_in": [], "variants": [], "related_changes": []}, {"id": "15.2-b73926495d107415", "cves": [], "html": "<p>Avoid rare <span>“<span>failed to acquire cleanup lock</span>”</span> panic during WAL replay of hash-index page split operations (Robert Haas) <a href=\"https://postgr.es/c/e49e19181\">§</a></p>", "text": "Avoid rare “failed to acquire cleanup lock” panic during WAL replay of hash-index page split operations (Robert Haas) §", "title": "Avoid rare “failed to acquire cleanup lock” panic during WAL replay of hash-index page split operations", "commits": ["e49e19181"], "section": "Changes", "category": "improvement", "source_url": "/docs/release/15.2/#id-1.11.6.23.5", "source_hash": "9a98cd3a760f0d5ab64bad669f99b8103d5cc612ee50cf46bb143d541d34a2e8", "section_path": ["Changes"], "commit_groups": [["1703033f8", "20c223336", "4dccccb37", "9693f1900", "e49e19181", "e848be60b"]], "identity_text": "Avoid rare failed to acquire cleanup lock panic during WAL replay of hash-index page split operations (Robert Haas)", "commit_aliases": ["1703033f8", "20c223336", "4dccccb37", "9693f1900", "e49e19181", "e848be60b"], "source_commits": ["e49e19181"], "source_entry_id": "15.2/changes/039", "db_id": "c5f664cc870917ed52ae681b793e1211", "patch_ids": ["29854d45521ee2080e21ddcc93e498ff"], "statement_hash": "32cef32f2614309c1259caad8eeca4837594d3a359325052fb6751bf4729f6ab", "relations": [{"rule": 2, "type": "equivalent", "target": "0849b78754a69b45ba04b17b85d6ee62", "evidence": {"same_day": true, "patch_ids": ["29854d45521ee2080e21ddcc93e498ff"], "statement_hash": "32cef32f2614309c1259caad8eeca4837594d3a359325052fb6751bf4729f6ab"}}, {"rule": 2, "type": "equivalent", "target": "baca2b84f8363b6df4670bfa40bb37ea", "evidence": {"same_day": true, "patch_ids": ["29854d45521ee2080e21ddcc93e498ff"], "statement_hash": "32cef32f2614309c1259caad8eeca4837594d3a359325052fb6751bf4729f6ab"}}, {"rule": 2, "type": "equivalent", "target": "c4d5adea80e4ded277aca57d1a3a5a3f", "evidence": {"same_day": true, "patch_ids": ["29854d45521ee2080e21ddcc93e498ff"], "statement_hash": "32cef32f2614309c1259caad8eeca4837594d3a359325052fb6751bf4729f6ab"}}, {"rule": 2, "type": "equivalent", "target": "d44c8ce2360017200c118db7150b0959", "evidence": {"same_day": true, "patch_ids": ["29854d45521ee2080e21ddcc93e498ff"], "statement_hash": "32cef32f2614309c1259caad8eeca4837594d3a359325052fb6751bf4729f6ab"}}], "version": "15.2", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": [{"db_id": "d44c8ce2360017200c118db7150b0959", "kind": "equivalent", "version": "14.7", "label": "14.7", "title": "Avoid rare “failed to acquire cleanup lock” panic during WAL replay of hash-index page split operations", "evidence": {"same_day": true, "patch_ids": ["29854d45521ee2080e21ddcc93e498ff"], "statement_hash": "32cef32f2614309c1259caad8eeca4837594d3a359325052fb6751bf4729f6ab"}, "url": "/docs/compare/?release=14.7#14.7-220682dca55317ae", "source_url": "/docs/release/14.7/#id-1.11.6.23.5"}, {"db_id": "0849b78754a69b45ba04b17b85d6ee62", "kind": "equivalent", "version": "13.10", "label": "13.10", "title": "Avoid rare “failed to acquire cleanup lock” panic during WAL replay of hash-index page split operations", "evidence": {"same_day": true, "patch_ids": ["29854d45521ee2080e21ddcc93e498ff"], "statement_hash": "32cef32f2614309c1259caad8eeca4837594d3a359325052fb6751bf4729f6ab"}, "url": "/docs/compare/?release=13.10#13.10-e14f0979a8451541", "source_url": "/docs/release/13.10/#id-1.11.6.19.5"}, {"db_id": "baca2b84f8363b6df4670bfa40bb37ea", "kind": "equivalent", "version": "12.14", "label": "12.14", "title": "Avoid rare “failed to acquire cleanup lock” panic during WAL replay of hash-index page split operations", "evidence": {"same_day": true, "patch_ids": ["29854d45521ee2080e21ddcc93e498ff"], "statement_hash": "32cef32f2614309c1259caad8eeca4837594d3a359325052fb6751bf4729f6ab"}, "url": "/docs/compare/?release=12.14#12.14-068b9d90c2705bf2", "source_url": "/docs/release/12.14/#id-1.11.6.14.5"}, {"db_id": "c4d5adea80e4ded277aca57d1a3a5a3f", "kind": "equivalent", "version": "11.19", "label": "11.19", "title": "Avoid rare “failed to acquire cleanup lock” panic during WAL replay of hash-index page split operations", "evidence": {"same_day": true, "patch_ids": ["29854d45521ee2080e21ddcc93e498ff"], "statement_hash": "32cef32f2614309c1259caad8eeca4837594d3a359325052fb6751bf4729f6ab"}, "url": "/docs/compare/?release=11.19#11.19-2d1da09841968349", "source_url": "/docs/release/11.19/#id-1.11.6.8.6"}]}, {"id": "15.2-1b81bbf9b853920b", "cves": [], "html": "<p>Advance a heap page's LSN when setting its all-visible bit during WAL replay (Jeff Davis) <a href=\"https://postgr.es/c/7bf713dd2\">§</a></p>\n<p>Failure to do this left the page possibly different on standby servers than the primary, and violated some other expectations about when the LSN changes. This seems only a theoretical hazard so far as <span>PostgreSQL</span> itself is concerned, but it could upset third-party tools.</p>", "text": "Advance a heap page's LSN when setting its all-visible bit during WAL replay (Jeff Davis) § Failure to do this left the page possibly different on standby servers than the primary, and violated some other expectations about when the LSN changes. This seems only a theoretical hazard so far as PostgreSQL itself is concerned, but it could upset third-party tools.", "title": "Advance a heap page's LSN when setting its all-visible bit during WAL replay", "commits": ["7bf713dd2"], "section": "Changes", "category": "improvement", "source_url": "/docs/release/15.2/#id-1.11.6.23.5", "source_hash": "bc5ac2d2fb28483c18b35178705232cdf4f5ebd9f4a3616f84bec3ba7ef6f681", "section_path": ["Changes"], "commit_groups": [["58a45bb1d", "5eaf3e375", "7bf713dd2", "7dd39e9e8", "d6a3dbe14", "f893af496"]], "identity_text": "Advance a heap page's LSN when setting its all-visible bit during WAL replay (Jeff Davis) Failure to do this left the page possibly different on standby servers than the primary, and violated some other expectations about when the LSN changes. This seems only a theoretical hazard so far as PostgreSQL itself is concerned, but it could upset third-party tools.", "commit_aliases": ["58a45bb1d", "5eaf3e375", "7bf713dd2", "7dd39e9e8", "d6a3dbe14", "f893af496"], "source_commits": ["7bf713dd2"], "source_entry_id": "15.2/changes/040", "db_id": "f392d1567ccd1073c218f3b576032ce6", "patch_ids": ["f87c1cf9570073e580dbf6ed653b9355"], "statement_hash": "b7a250eff9f5d0b0df14c972ca79c74303b915933c3a21c300fb558c6bfbe03c", "relations": [{"rule": 2, "type": "equivalent", "target": "0a52af951983fba9bfed60788718abce", "evidence": {"same_day": true, "patch_ids": ["f87c1cf9570073e580dbf6ed653b9355"], "statement_hash": "b7a250eff9f5d0b0df14c972ca79c74303b915933c3a21c300fb558c6bfbe03c"}}, {"rule": 2, "type": "equivalent", "target": "a849f5b97bde2347692ac39d9bb22fac", "evidence": {"same_day": true, "patch_ids": ["f87c1cf9570073e580dbf6ed653b9355"], "statement_hash": "b7a250eff9f5d0b0df14c972ca79c74303b915933c3a21c300fb558c6bfbe03c"}}, {"rule": 2, "type": "equivalent", "target": "d075e92a3d8b3a092881d4f990bd0d56", "evidence": {"same_day": true, "patch_ids": ["f87c1cf9570073e580dbf6ed653b9355"], "statement_hash": "b7a250eff9f5d0b0df14c972ca79c74303b915933c3a21c300fb558c6bfbe03c"}}, {"rule": 2, "type": "equivalent", "target": "d08b648a27abdbdb17fdafeb4c59538c", "evidence": {"same_day": true, "patch_ids": ["f87c1cf9570073e580dbf6ed653b9355"], "statement_hash": "b7a250eff9f5d0b0df14c972ca79c74303b915933c3a21c300fb558c6bfbe03c"}}], "version": "15.2", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": [{"db_id": "0a52af951983fba9bfed60788718abce", "kind": "equivalent", "version": "14.7", "label": "14.7", "title": "Advance a heap page's LSN when setting its all-visible bit during WAL replay", "evidence": {"same_day": true, "patch_ids": ["f87c1cf9570073e580dbf6ed653b9355"], "statement_hash": "b7a250eff9f5d0b0df14c972ca79c74303b915933c3a21c300fb558c6bfbe03c"}, "url": "/docs/compare/?release=14.7#14.7-718290997b4c9316", "source_url": "/docs/release/14.7/#id-1.11.6.23.5"}, {"db_id": "d08b648a27abdbdb17fdafeb4c59538c", "kind": "equivalent", "version": "13.10", "label": "13.10", "title": "Advance a heap page's LSN when setting its all-visible bit during WAL replay", "evidence": {"same_day": true, "patch_ids": ["f87c1cf9570073e580dbf6ed653b9355"], "statement_hash": "b7a250eff9f5d0b0df14c972ca79c74303b915933c3a21c300fb558c6bfbe03c"}, "url": "/docs/compare/?release=13.10#13.10-765605010314565b", "source_url": "/docs/release/13.10/#id-1.11.6.19.5"}, {"db_id": "a849f5b97bde2347692ac39d9bb22fac", "kind": "equivalent", "version": "12.14", "label": "12.14", "title": "Advance a heap page's LSN when setting its all-visible bit during WAL replay", "evidence": {"same_day": true, "patch_ids": ["f87c1cf9570073e580dbf6ed653b9355"], "statement_hash": "b7a250eff9f5d0b0df14c972ca79c74303b915933c3a21c300fb558c6bfbe03c"}, "url": "/docs/compare/?release=12.14#12.14-f8e2a39d2dce41bf", "source_url": "/docs/release/12.14/#id-1.11.6.14.5"}, {"db_id": "d075e92a3d8b3a092881d4f990bd0d56", "kind": "equivalent", "version": "11.19", "label": "11.19", "title": "Advance a heap page's LSN when setting its all-visible bit during WAL replay", "evidence": {"same_day": true, "patch_ids": ["f87c1cf9570073e580dbf6ed653b9355"], "statement_hash": "b7a250eff9f5d0b0df14c972ca79c74303b915933c3a21c300fb558c6bfbe03c"}, "url": "/docs/compare/?release=11.19#11.19-9647dd729ac675d6", "source_url": "/docs/release/11.19/#id-1.11.6.8.6"}]}, {"id": "15.2-6dc5a4242f65ad0d", "cves": [], "html": "<p>Fix <code>int64_div_fast_to_numeric()</code> to work for a wider range of inputs (Dean Rasheed) <a href=\"https://postgr.es/c/4f74741a5\">§</a></p>\n<p>This function misbehaved with some values of its second argument. No such usages exist in core <span>PostgreSQL</span>, but it's clearly a hazard for external modules, so repair.</p>", "text": "Fix int64_div_fast_to_numeric() to work for a wider range of inputs (Dean Rasheed) § This function misbehaved with some values of its second argument. No such usages exist in core PostgreSQL, but it's clearly a hazard for external modules, so repair.", "title": "Fix int64_div_fast_to_numeric() to work for a wider range of inputs", "commits": ["4f74741a5"], "section": "Changes", "category": "bugfix", "source_url": "/docs/release/15.2/#id-1.11.6.23.5", "source_hash": "d8d4ca6f513ae973d8552537dd96c6f24d12a22c116deafb1d3d74fed9be2090", "section_path": ["Changes"], "commit_groups": [["4f74741a5", "86bfbeab4", "b2d479289"]], "identity_text": "Fix int64_div_fast_to_numeric() to work for a wider range of inputs (Dean Rasheed) This function misbehaved with some values of its second argument. No such usages exist in core PostgreSQL, but it's clearly a hazard for external modules, so repair.", "commit_aliases": ["4f74741a5", "86bfbeab4", "b2d479289"], "source_commits": ["4f74741a5"], "source_entry_id": "15.2/changes/041", "db_id": "7b9ee36407ad208b970aeadd4520f3ba", "patch_ids": ["1f6230921ece7850a37ec13872964f0e"], "statement_hash": "cb40a8c9ed9a1e80751f3eb83ca9ab7e58484a4223695784f130a61f45b1619b", "relations": [{"rule": 2, "type": "equivalent", "target": "5e687e0a73382f6feca9a6ca47c6cd56", "evidence": {"same_day": true, "patch_ids": ["1f6230921ece7850a37ec13872964f0e"], "statement_hash": "cb40a8c9ed9a1e80751f3eb83ca9ab7e58484a4223695784f130a61f45b1619b"}}], "version": "15.2", "category_label": "Bug fixes", "also_in": [], "variants": [], "related_changes": [{"db_id": "5e687e0a73382f6feca9a6ca47c6cd56", "kind": "equivalent", "version": "14.7", "label": "14.7", "title": "Fix int64_div_fast_to_numeric() to work for a wider range of inputs", "evidence": {"same_day": true, "patch_ids": ["1f6230921ece7850a37ec13872964f0e"], "statement_hash": "cb40a8c9ed9a1e80751f3eb83ca9ab7e58484a4223695784f130a61f45b1619b"}, "url": "/docs/compare/?release=14.7#14.7-9e29bd47b4e8b117", "source_url": "/docs/release/14.7/#id-1.11.6.23.5"}]}, {"id": "15.2-4ea8bc16de75f44b", "cves": [], "html": "<p>Fix latent buffer-overrun problem in <code>WaitEventSet</code> logic (Thomas Munro) <a href=\"https://postgr.es/c/8a98523a5\">§</a></p>\n<p>The <code>epoll</code>-based and <code>kqueue</code>-based implementations could ask the kernel for too many events if the size of their internal buffer was different from the size of the caller's output buffer. That case is not known to occur in released <span>PostgreSQL</span> versions, but this error is a hazard for external modules and future bug fixes.</p>", "text": "Fix latent buffer-overrun problem in WaitEventSet logic (Thomas Munro) § The epoll-based and kqueue-based implementations could ask the kernel for too many events if the size of their internal buffer was different from the size of the caller's output buffer. That case is not known to occur in released PostgreSQL versions, but this error is a hazard for external modules and future bug fixes.", "title": "Fix latent buffer-overrun problem in WaitEventSet logic", "commits": ["8a98523a5"], "section": "Changes", "category": "bugfix", "source_url": "/docs/release/15.2/#id-1.11.6.23.5", "source_hash": "36a562e630221df948b26e9f4b8f4d27de92a93251b9e2e69600249fb73d696d", "section_path": ["Changes"], "commit_groups": [["1b40710a8", "547e60b83", "8a98523a5", "bf388ab82", "c159b0383", "f1821b58f"]], "identity_text": "Fix latent buffer-overrun problem in WaitEventSet logic (Thomas Munro) The epoll-based and kqueue-based implementations could ask the kernel for too many events if the size of their internal buffer was different from the size of the caller's output buffer. That case is not known to occur in released PostgreSQL versions, but this error is a hazard for external modules and future bug fixes.", "commit_aliases": ["1b40710a8", "547e60b83", "8a98523a5", "bf388ab82", "c159b0383", "f1821b58f"], "source_commits": ["8a98523a5"], "source_entry_id": "15.2/changes/042", "db_id": "0243d8c8cca7d41223a2414a3feba5bf", "patch_ids": ["96504de7db65a2507dfaef78eb0e1e82"], "statement_hash": "3de15e46ff12d3892528fa27b902b0749c64f7fd2f0cd23c1df9ec3c05903f60", "relations": [{"rule": 2, "type": "equivalent", "target": "0f596409dcb395be7095081ed489ea89", "evidence": {"same_day": true, "patch_ids": ["96504de7db65a2507dfaef78eb0e1e82"], "statement_hash": "3de15e46ff12d3892528fa27b902b0749c64f7fd2f0cd23c1df9ec3c05903f60"}}, {"rule": 2, "type": "equivalent", "target": "61be44c8d0cb1b219b744a318ca1fd9c", "evidence": {"same_day": true, "patch_ids": ["96504de7db65a2507dfaef78eb0e1e82"], "statement_hash": "3de15e46ff12d3892528fa27b902b0749c64f7fd2f0cd23c1df9ec3c05903f60"}}, {"rule": 2, "type": "equivalent", "target": "df214189155804363beed24d96bc5897", "evidence": {"same_day": true, "patch_ids": ["96504de7db65a2507dfaef78eb0e1e82"], "statement_hash": "3de15e46ff12d3892528fa27b902b0749c64f7fd2f0cd23c1df9ec3c05903f60"}}, {"rule": 2, "type": "equivalent", "target": "e7a69c67acdbbc8b5e83e409e018c9f1", "evidence": {"same_day": true, "patch_ids": ["96504de7db65a2507dfaef78eb0e1e82"], "statement_hash": "3de15e46ff12d3892528fa27b902b0749c64f7fd2f0cd23c1df9ec3c05903f60"}}], "version": "15.2", "category_label": "Bug fixes", "also_in": [], "variants": [], "related_changes": [{"db_id": "0f596409dcb395be7095081ed489ea89", "kind": "equivalent", "version": "14.7", "label": "14.7", "title": "Fix latent buffer-overrun problem in WaitEventSet logic", "evidence": {"same_day": true, "patch_ids": ["96504de7db65a2507dfaef78eb0e1e82"], "statement_hash": "3de15e46ff12d3892528fa27b902b0749c64f7fd2f0cd23c1df9ec3c05903f60"}, "url": "/docs/compare/?release=14.7#14.7-3b22e23382251f0b", "source_url": "/docs/release/14.7/#id-1.11.6.23.5"}, {"db_id": "61be44c8d0cb1b219b744a318ca1fd9c", "kind": "equivalent", "version": "13.10", "label": "13.10", "title": "Fix latent buffer-overrun problem in WaitEventSet logic", "evidence": {"same_day": true, "patch_ids": ["96504de7db65a2507dfaef78eb0e1e82"], "statement_hash": "3de15e46ff12d3892528fa27b902b0749c64f7fd2f0cd23c1df9ec3c05903f60"}, "url": "/docs/compare/?release=13.10#13.10-b7e23c0f32354e71", "source_url": "/docs/release/13.10/#id-1.11.6.19.5"}, {"db_id": "e7a69c67acdbbc8b5e83e409e018c9f1", "kind": "equivalent", "version": "12.14", "label": "12.14", "title": "Fix latent buffer-overrun problem in WaitEventSet logic", "evidence": {"same_day": true, "patch_ids": ["96504de7db65a2507dfaef78eb0e1e82"], "statement_hash": "3de15e46ff12d3892528fa27b902b0749c64f7fd2f0cd23c1df9ec3c05903f60"}, "url": "/docs/compare/?release=12.14#12.14-b189c1429efc4b3b", "source_url": "/docs/release/12.14/#id-1.11.6.14.5"}, {"db_id": "df214189155804363beed24d96bc5897", "kind": "equivalent", "version": "11.19", "label": "11.19", "title": "Fix latent buffer-overrun problem in WaitEventSet logic", "evidence": {"same_day": true, "patch_ids": ["96504de7db65a2507dfaef78eb0e1e82"], "statement_hash": "3de15e46ff12d3892528fa27b902b0749c64f7fd2f0cd23c1df9ec3c05903f60"}, "url": "/docs/compare/?release=11.19#11.19-0223b1d4601aa9d2", "source_url": "/docs/release/11.19/#id-1.11.6.8.6"}]}, {"id": "15.2-881f4c0b620ee19d", "cves": [], "html": "<p>Avoid nominally-undefined behavior when accessing shared memory in 32-bit builds (Andres Freund) <a href=\"https://postgr.es/c/a0d35ebcc\">§</a></p>\n<p>clang's undefined-behavior sanitizer complained about use of a pointer that was less aligned than it should be. It's very unlikely that this would cause a problem in non-debug builds, but it's worth fixing for testing purposes.</p>", "text": "Avoid nominally-undefined behavior when accessing shared memory in 32-bit builds (Andres Freund) § clang's undefined-behavior sanitizer complained about use of a pointer that was less aligned than it should be. It's very unlikely that this would cause a problem in non-debug builds, but it's worth fixing for testing purposes.", "title": "Avoid nominally-undefined behavior when accessing shared memory in 32-bit builds", "commits": ["a0d35ebcc"], "section": "Changes", "category": "improvement", "source_url": "/docs/release/15.2/#id-1.11.6.23.5", "source_hash": "a4cb5b2a7870b26b363c8de5bfd7f1ab4b517b178ffe09a63f59bbcef62a2779", "section_path": ["Changes"], "commit_groups": [["140c80372", "4cbcb7ed8", "8c954168c", "a0d35ebcc", "c13667b51", "fc4154286"]], "identity_text": "Avoid nominally-undefined behavior when accessing shared memory in 32-bit builds (Andres Freund) clang's undefined-behavior sanitizer complained about use of a pointer that was less aligned than it should be. It's very unlikely that this would cause a problem in non-debug builds, but it's worth fixing for testing purposes.", "commit_aliases": ["140c80372", "4cbcb7ed8", "8c954168c", "a0d35ebcc", "c13667b51", "fc4154286"], "source_commits": ["a0d35ebcc"], "source_entry_id": "15.2/changes/043", "db_id": "9dd11604969448b896939bd025ea95ac", "patch_ids": ["976a856dfb8144e65dc98e67319fa5e3"], "statement_hash": "e3efaba28490e51c8142b16232c30beaf7c61be065def1fdad6cfa554f21d483", "relations": [{"rule": 2, "type": "equivalent", "target": "016d79a9082f87912ace0132d1514cfb", "evidence": {"same_day": true, "patch_ids": ["976a856dfb8144e65dc98e67319fa5e3"], "statement_hash": "e3efaba28490e51c8142b16232c30beaf7c61be065def1fdad6cfa554f21d483"}}, {"rule": 2, "type": "equivalent", "target": "11c8fcd87fed2a9ea124fabc664def11", "evidence": {"same_day": true, "patch_ids": ["976a856dfb8144e65dc98e67319fa5e3"], "statement_hash": "e3efaba28490e51c8142b16232c30beaf7c61be065def1fdad6cfa554f21d483"}}, {"rule": 2, "type": "equivalent", "target": "43edb0cdb5fccf8270172256c2daedc3", "evidence": {"same_day": true, "patch_ids": ["976a856dfb8144e65dc98e67319fa5e3"], "statement_hash": "e3efaba28490e51c8142b16232c30beaf7c61be065def1fdad6cfa554f21d483"}}, {"rule": 2, "type": "equivalent", "target": "959ef94c8c4ee4b5ae39ab6f43ba45b2", "evidence": {"same_day": true, "patch_ids": ["976a856dfb8144e65dc98e67319fa5e3"], "statement_hash": "e3efaba28490e51c8142b16232c30beaf7c61be065def1fdad6cfa554f21d483"}}], "version": "15.2", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": [{"db_id": "43edb0cdb5fccf8270172256c2daedc3", "kind": "equivalent", "version": "14.7", "label": "14.7", "title": "Avoid nominally-undefined behavior when accessing shared memory in 32-bit builds", "evidence": {"same_day": true, "patch_ids": ["976a856dfb8144e65dc98e67319fa5e3"], "statement_hash": "e3efaba28490e51c8142b16232c30beaf7c61be065def1fdad6cfa554f21d483"}, "url": "/docs/compare/?release=14.7#14.7-be99907de51ec749", "source_url": "/docs/release/14.7/#id-1.11.6.23.5"}, {"db_id": "016d79a9082f87912ace0132d1514cfb", "kind": "equivalent", "version": "13.10", "label": "13.10", "title": "Avoid nominally-undefined behavior when accessing shared memory in 32-bit builds", "evidence": {"same_day": true, "patch_ids": ["976a856dfb8144e65dc98e67319fa5e3"], "statement_hash": "e3efaba28490e51c8142b16232c30beaf7c61be065def1fdad6cfa554f21d483"}, "url": "/docs/compare/?release=13.10#13.10-11f5d479a631ba6d", "source_url": "/docs/release/13.10/#id-1.11.6.19.5"}, {"db_id": "959ef94c8c4ee4b5ae39ab6f43ba45b2", "kind": "equivalent", "version": "12.14", "label": "12.14", "title": "Avoid nominally-undefined behavior when accessing shared memory in 32-bit builds", "evidence": {"same_day": true, "patch_ids": ["976a856dfb8144e65dc98e67319fa5e3"], "statement_hash": "e3efaba28490e51c8142b16232c30beaf7c61be065def1fdad6cfa554f21d483"}, "url": "/docs/compare/?release=12.14#12.14-cdc2f9259cdff3a9", "source_url": "/docs/release/12.14/#id-1.11.6.14.5"}, {"db_id": "11c8fcd87fed2a9ea124fabc664def11", "kind": "equivalent", "version": "11.19", "label": "11.19", "title": "Avoid nominally-undefined behavior when accessing shared memory in 32-bit builds", "evidence": {"same_day": true, "patch_ids": ["976a856dfb8144e65dc98e67319fa5e3"], "statement_hash": "e3efaba28490e51c8142b16232c30beaf7c61be065def1fdad6cfa554f21d483"}, "url": "/docs/compare/?release=11.19#11.19-3e82fab13db9bf52", "source_url": "/docs/release/11.19/#id-1.11.6.8.6"}]}, {"id": "15.2-a4ccb583e902b881", "cves": [], "html": "<p>Fix assertion failure in BRIN minmax-multi opclasses (Tomas Vondra) <a href=\"https://postgr.es/c/c4f64cfab\">§</a></p>\n<p>The assertion was overly strict, so this mistake was harmless in non-assert builds.</p>", "text": "Fix assertion failure in BRIN minmax-multi opclasses (Tomas Vondra) § The assertion was overly strict, so this mistake was harmless in non-assert builds.", "title": "Fix assertion failure in BRIN minmax-multi opclasses", "commits": ["c4f64cfab"], "section": "Changes", "category": "bugfix", "source_url": "/docs/release/15.2/#id-1.11.6.23.5", "source_hash": "6f97ff836553a522ee87be3a1d45b1c23af7f4870d245e4e2a5e6924c942aa64", "section_path": ["Changes"], "commit_groups": [["02699bc1f", "883dc0214", "c4f64cfab"]], "identity_text": "Fix assertion failure in BRIN minmax-multi opclasses (Tomas Vondra) The assertion was overly strict, so this mistake was harmless in non-assert builds.", "commit_aliases": ["02699bc1f", "883dc0214", "c4f64cfab"], "source_commits": ["c4f64cfab"], "source_entry_id": "15.2/changes/044", "db_id": "93eb76c62bb301b0a3834e023bb10c88", "patch_ids": ["609cd06a11714310dc3229712096f406"], "statement_hash": "fa82363c7134e5eb734924371926008cb70a2caa6cbaf956cbf5e18732a83ace", "relations": [{"rule": 2, "type": "equivalent", "target": "ff4dcd89ded477032c44549fa8794445", "evidence": {"same_day": true, "patch_ids": ["609cd06a11714310dc3229712096f406"], "statement_hash": "fa82363c7134e5eb734924371926008cb70a2caa6cbaf956cbf5e18732a83ace"}}], "version": "15.2", "category_label": "Bug fixes", "also_in": [], "variants": [], "related_changes": [{"db_id": "ff4dcd89ded477032c44549fa8794445", "kind": "equivalent", "version": "14.7", "label": "14.7", "title": "Fix assertion failure in BRIN minmax-multi opclasses", "evidence": {"same_day": true, "patch_ids": ["609cd06a11714310dc3229712096f406"], "statement_hash": "fa82363c7134e5eb734924371926008cb70a2caa6cbaf956cbf5e18732a83ace"}, "url": "/docs/compare/?release=14.7#14.7-aa145629e55e7ffd", "source_url": "/docs/release/14.7/#id-1.11.6.23.5"}]}, {"id": "15.2-eec88e52a646ccef", "cves": [], "html": "<p>Remove faulty assertion in useless-RESULT-RTE optimization logic (Tom Lane) <a href=\"https://postgr.es/c/556c0b913\">§</a></p>", "text": "Remove faulty assertion in useless-RESULT-RTE optimization logic (Tom Lane) §", "title": "Remove faulty assertion in useless-RESULT-RTE optimization logic", "commits": ["556c0b913"], "section": "Changes", "category": "improvement", "source_url": "/docs/release/15.2/#id-1.11.6.23.5", "source_hash": "b22d98dcbaa9a4ecffb2014251b78c1029f1cabe6e5f342b7447b5f908be4d24", "section_path": ["Changes"], "commit_groups": [["0224646be", "51dfaa0b0", "556c0b913", "aca695fb6", "bb8d48cb9"]], "identity_text": "Remove faulty assertion in useless-RESULT-RTE optimization logic (Tom Lane)", "commit_aliases": ["0224646be", "51dfaa0b0", "556c0b913", "aca695fb6", "bb8d48cb9"], "source_commits": ["556c0b913"], "source_entry_id": "15.2/changes/045", "db_id": "5fbc219ae9be1094ffc7e766cbec510a", "patch_ids": ["58506a6cee8ac5c3497e564d7f5a86a0"], "statement_hash": "cfdd89462d73930b717110313c8b418bbaa941a53fe12d23618c09a256f5ce50", "relations": [{"rule": 2, "type": "equivalent", "target": "1b9f799d12299dcab3e1cfdb258673cb", "evidence": {"same_day": true, "patch_ids": ["58506a6cee8ac5c3497e564d7f5a86a0"], "statement_hash": "cfdd89462d73930b717110313c8b418bbaa941a53fe12d23618c09a256f5ce50"}}, {"rule": 2, "type": "equivalent", "target": "201f3f89e807b9a5b51320b5ecdc4250", "evidence": {"same_day": true, "patch_ids": ["58506a6cee8ac5c3497e564d7f5a86a0"], "statement_hash": "cfdd89462d73930b717110313c8b418bbaa941a53fe12d23618c09a256f5ce50"}}, {"rule": 2, "type": "equivalent", "target": "970ef9a05690a1680569a5acd35118a4", "evidence": {"same_day": true, "patch_ids": ["58506a6cee8ac5c3497e564d7f5a86a0"], "statement_hash": "cfdd89462d73930b717110313c8b418bbaa941a53fe12d23618c09a256f5ce50"}}], "version": "15.2", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": [{"db_id": "970ef9a05690a1680569a5acd35118a4", "kind": "equivalent", "version": "14.7", "label": "14.7", "title": "Remove faulty assertion in useless-RESULT-RTE optimization logic", "evidence": {"same_day": true, "patch_ids": ["58506a6cee8ac5c3497e564d7f5a86a0"], "statement_hash": "cfdd89462d73930b717110313c8b418bbaa941a53fe12d23618c09a256f5ce50"}, "url": "/docs/compare/?release=14.7#14.7-17195b2be94f4614", "source_url": "/docs/release/14.7/#id-1.11.6.23.5"}, {"db_id": "201f3f89e807b9a5b51320b5ecdc4250", "kind": "equivalent", "version": "13.10", "label": "13.10", "title": "Remove faulty assertion in useless-RESULT-RTE optimization logic", "evidence": {"same_day": true, "patch_ids": ["58506a6cee8ac5c3497e564d7f5a86a0"], "statement_hash": "cfdd89462d73930b717110313c8b418bbaa941a53fe12d23618c09a256f5ce50"}, "url": "/docs/compare/?release=13.10#13.10-1cc91b6f6d4cdb1b", "source_url": "/docs/release/13.10/#id-1.11.6.19.5"}, {"db_id": "1b9f799d12299dcab3e1cfdb258673cb", "kind": "equivalent", "version": "12.14", "label": "12.14", "title": "Remove faulty assertion in useless-RESULT-RTE optimization logic", "evidence": {"same_day": true, "patch_ids": ["58506a6cee8ac5c3497e564d7f5a86a0"], "statement_hash": "cfdd89462d73930b717110313c8b418bbaa941a53fe12d23618c09a256f5ce50"}, "url": "/docs/compare/?release=12.14#12.14-8f23a953d8dbe34c", "source_url": "/docs/release/12.14/#id-1.11.6.14.5"}]}, {"id": "15.2-3be72836e10f2f21", "cves": [], "html": "<p>Fix copy-and-paste errors in cache-lookup-failure messages for ACL checks (Justin Pryzby) <a href=\"https://postgr.es/c/e3897a3a4\">§</a></p>\n<p>In principle these errors should never be reached. But if they are, some of them reported the wrong type of object.</p>", "text": "Fix copy-and-paste errors in cache-lookup-failure messages for ACL checks (Justin Pryzby) § In principle these errors should never be reached. But if they are, some of them reported the wrong type of object.", "title": "Fix copy-and-paste errors in cache-lookup-failure messages for ACL checks", "commits": ["e3897a3a4"], "section": "Changes", "category": "bugfix", "source_url": "/docs/release/15.2/#id-1.11.6.23.5", "source_hash": "da7bf8c344e36c4f62b2f3a8d109589ee769be54364f200a7291f1a070355fe0", "section_path": ["Changes"], "commit_groups": [["2fcf685f6", "4dbe72d61", "7445869e1", "7ad458e06", "df6fea51f", "e3897a3a4"]], "identity_text": "Fix copy-and-paste errors in cache-lookup-failure messages for ACL checks (Justin Pryzby) In principle these errors should never be reached. But if they are, some of them reported the wrong type of object.", "commit_aliases": ["2fcf685f6", "4dbe72d61", "7445869e1", "7ad458e06", "df6fea51f", "e3897a3a4"], "source_commits": ["e3897a3a4"], "source_entry_id": "15.2/changes/046", "db_id": "b26dad4290c55bbf5650cc06c44dd245", "patch_ids": ["5f2d7f04390e7331c118a61d5827a14c"], "statement_hash": "db3b9620dd1b93003cb7ee4f4c950583143a13f74259b5013509bbd747c528d3", "relations": [{"rule": 2, "type": "equivalent", "target": "0b310f52b5402717e772cd7cc9f18573", "evidence": {"same_day": true, "patch_ids": ["5f2d7f04390e7331c118a61d5827a14c"], "statement_hash": "db3b9620dd1b93003cb7ee4f4c950583143a13f74259b5013509bbd747c528d3"}}, {"rule": 2, "type": "equivalent", "target": "20a860f1e7551d1458908dc95a480324", "evidence": {"same_day": true, "patch_ids": ["5f2d7f04390e7331c118a61d5827a14c"], "statement_hash": "db3b9620dd1b93003cb7ee4f4c950583143a13f74259b5013509bbd747c528d3"}}, {"rule": 2, "type": "equivalent", "target": "61a21eb9aaf62495be06e179ff45e2ab", "evidence": {"same_day": true, "patch_ids": ["5f2d7f04390e7331c118a61d5827a14c"], "statement_hash": "db3b9620dd1b93003cb7ee4f4c950583143a13f74259b5013509bbd747c528d3"}}, {"rule": 2, "type": "equivalent", "target": "78f047c402bae655ff6f43bdcdf1c0cd", "evidence": {"same_day": true, "patch_ids": ["5f2d7f04390e7331c118a61d5827a14c"], "statement_hash": "db3b9620dd1b93003cb7ee4f4c950583143a13f74259b5013509bbd747c528d3"}}], "version": "15.2", "category_label": "Bug fixes", "also_in": [], "variants": [], "related_changes": [{"db_id": "20a860f1e7551d1458908dc95a480324", "kind": "equivalent", "version": "14.7", "label": "14.7", "title": "Fix copy-and-paste errors in cache-lookup-failure messages for ACL checks", "evidence": {"same_day": true, "patch_ids": ["5f2d7f04390e7331c118a61d5827a14c"], "statement_hash": "db3b9620dd1b93003cb7ee4f4c950583143a13f74259b5013509bbd747c528d3"}, "url": "/docs/compare/?release=14.7#14.7-1f0629a5b710dd27", "source_url": "/docs/release/14.7/#id-1.11.6.23.5"}, {"db_id": "0b310f52b5402717e772cd7cc9f18573", "kind": "equivalent", "version": "13.10", "label": "13.10", "title": "Fix copy-and-paste errors in cache-lookup-failure messages for ACL checks", "evidence": {"same_day": true, "patch_ids": ["5f2d7f04390e7331c118a61d5827a14c"], "statement_hash": "db3b9620dd1b93003cb7ee4f4c950583143a13f74259b5013509bbd747c528d3"}, "url": "/docs/compare/?release=13.10#13.10-37d66edae0310794", "source_url": "/docs/release/13.10/#id-1.11.6.19.5"}, {"db_id": "78f047c402bae655ff6f43bdcdf1c0cd", "kind": "equivalent", "version": "12.14", "label": "12.14", "title": "Fix copy-and-paste errors in cache-lookup-failure messages for ACL checks", "evidence": {"same_day": true, "patch_ids": ["5f2d7f04390e7331c118a61d5827a14c"], "statement_hash": "db3b9620dd1b93003cb7ee4f4c950583143a13f74259b5013509bbd747c528d3"}, "url": "/docs/compare/?release=12.14#12.14-456bb06426415855", "source_url": "/docs/release/12.14/#id-1.11.6.14.5"}, {"db_id": "61a21eb9aaf62495be06e179ff45e2ab", "kind": "equivalent", "version": "11.19", "label": "11.19", "title": "Fix copy-and-paste errors in cache-lookup-failure messages for ACL checks", "evidence": {"same_day": true, "patch_ids": ["5f2d7f04390e7331c118a61d5827a14c"], "statement_hash": "db3b9620dd1b93003cb7ee4f4c950583143a13f74259b5013509bbd747c528d3"}, "url": "/docs/compare/?release=11.19#11.19-04359fb1d4b53103", "source_url": "/docs/release/11.19/#id-1.11.6.8.6"}]}, {"id": "15.2-36b2b8f1c3c64629", "cves": [], "html": "<p>Fix possible corruption of very large tablespace map files in <span>pg_basebackup</span> (Antonin Houska) <a href=\"https://postgr.es/c/8b5ba2f3f\">§</a></p>", "text": "Fix possible corruption of very large tablespace map files in pg_basebackup (Antonin Houska) §", "title": "Fix possible corruption of very large tablespace map files in pg_basebackup", "commits": ["8b5ba2f3f"], "section": "Changes", "category": "bugfix", "source_url": "/docs/release/15.2/#id-1.11.6.23.5", "source_hash": "d4c0afc8c921a0711c1469cab382a542652d62e4a7f7388e4143850969ebe820", "section_path": ["Changes"], "commit_groups": [["45f5c81ad", "8b5ba2f3f"]], "identity_text": "Fix possible corruption of very large tablespace map files in pg_basebackup (Antonin Houska)", "commit_aliases": ["45f5c81ad", "8b5ba2f3f"], "source_commits": ["8b5ba2f3f"], "source_entry_id": "15.2/changes/047", "db_id": "ddf55569399d9aaffb2d80cd406b52d9", "patch_ids": ["75a30edd2e3e95a4223e32431f445227"], "statement_hash": "9d112d30031dd763c543c78f5b99186004958f41f37463fa23a430773e4f613f", "relations": [], "version": "15.2", "category_label": "Bug fixes", "also_in": [], "variants": [], "related_changes": []}, {"id": "15.2-efdf77fc3e9215e0", "cves": [], "html": "<p>Avoid harmless warning from <span>pg_dump</span> in <code>--if-exists</code> mode (Tom Lane) <a href=\"https://postgr.es/c/488e89bf7\">§</a></p>\n<p>If the <code>public</code> schema has a non-default owner then use of <span>pg_dump</span>'s <code>--if-exists</code> option resulted in a warning message <span>“<span>warning: could not find where to insert IF EXISTS in statement \"-- *not* dropping schema, since initdb creates it\"</span>”</span>. The dump output was okay, though.</p>", "text": "Avoid harmless warning from pg_dump in --if-exists mode (Tom Lane) § If the public schema has a non-default owner then use of pg_dump's --if-exists option resulted in a warning message “warning: could not find where to insert IF EXISTS in statement \"-- *not* dropping schema, since initdb creates it\"”. The dump output was okay, though.", "title": "Avoid harmless warning from pg_dump in --if-exists mode", "commits": ["488e89bf7"], "section": "Changes", "category": "improvement", "source_url": "/docs/release/15.2/#id-1.11.6.23.5", "source_hash": "effcd6e424fa2aa62ab5f3a68bb4e4deb5126a7396d7cb57fe3d1926b725a816", "section_path": ["Changes"], "commit_groups": [["488e89bf7", "74739d1d3"]], "identity_text": "Avoid harmless warning from pg_dump in --if-exists mode (Tom Lane) If the public schema has a non-default owner then use of pg_dump's --if-exists option resulted in a warning message warning: could not find where to insert IF EXISTS in statement \"-- *not* dropping schema, since initdb creates it\". The dump output was okay, though.", "commit_aliases": ["488e89bf7", "74739d1d3"], "source_commits": ["488e89bf7"], "source_entry_id": "15.2/changes/048", "db_id": "528c5c2b4386e47295478e01e2afa8ba", "patch_ids": ["e5042ef506e91e625e95a57143ded120"], "statement_hash": "a63cefaa42a532262b39abc93151dfc8dce9ba54cc5f3019bf509ff1b63373b5", "relations": [], "version": "15.2", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": []}, {"id": "15.2-e5dfb4e510f73e41", "cves": [], "html": "<p>Fix <span>psql</span>'s <code>\\sf</code> and <code>\\ef</code> commands to handle SQL-language functions that have <acronym>SQL</acronym>-standard function bodies (Tom Lane) <a href=\"https://postgr.es/c/97299cf99\">§</a></p>\n<p>These commands misidentified the start of the function body when it used new-style syntax.</p>", "text": "Fix psql's \\sf and \\ef commands to handle SQL-language functions that have SQL-standard function bodies (Tom Lane) § These commands misidentified the start of the function body when it used new-style syntax.", "title": "Fix psql's \\sf and \\ef commands to handle SQL-language functions that have SQL-standard function bodies", "commits": ["97299cf99"], "section": "Changes", "category": "bugfix", "source_url": "/docs/release/15.2/#id-1.11.6.23.5", "source_hash": "dda791694e40021c749bc24f148db78b495318563a3f790d879292e78648560b", "section_path": ["Changes"], "commit_groups": [["303b26c1b", "97299cf99", "cabfb8241"]], "identity_text": "Fix psql's \\sf and \\ef commands to handle SQL-language functions that have SQL-standard function bodies (Tom Lane) These commands misidentified the start of the function body when it used new-style syntax.", "commit_aliases": ["303b26c1b", "97299cf99", "cabfb8241"], "source_commits": ["97299cf99"], "source_entry_id": "15.2/changes/049", "db_id": "b103d831e9cbd5ee48bed9c9888b9035", "patch_ids": ["e03b9ef7edbba011f49e38f9ff67d2f3"], "statement_hash": "402d394f01d9cb8804c23077fe7ed8dff7c6799c0db237d7fd09eed8704ce602", "relations": [{"rule": 2, "type": "equivalent", "target": "3ecf14fb94d92ffd52d323ce238d6582", "evidence": {"same_day": true, "patch_ids": ["e03b9ef7edbba011f49e38f9ff67d2f3"], "statement_hash": "402d394f01d9cb8804c23077fe7ed8dff7c6799c0db237d7fd09eed8704ce602"}}], "version": "15.2", "category_label": "Bug fixes", "also_in": [], "variants": [], "related_changes": [{"db_id": "3ecf14fb94d92ffd52d323ce238d6582", "kind": "equivalent", "version": "14.7", "label": "14.7", "title": "Fix psql's \\sf and \\ef commands to handle SQL-language functions that have SQL-standard function bodies", "evidence": {"same_day": true, "patch_ids": ["e03b9ef7edbba011f49e38f9ff67d2f3"], "statement_hash": "402d394f01d9cb8804c23077fe7ed8dff7c6799c0db237d7fd09eed8704ce602"}, "url": "/docs/compare/?release=14.7#14.7-4d68d70405046e5c", "source_url": "/docs/release/14.7/#id-1.11.6.23.5"}]}, {"id": "15.2-f128f841053357c5", "cves": [], "html": "<p>Fix tab completion of <code>ALTER FUNCTION/PROCEDURE/ROUTINE</code> ... <code>SET SCHEMA</code> (Dean Rasheed) <a href=\"https://postgr.es/c/2daf4664c\">§</a></p>", "text": "Fix tab completion of ALTER FUNCTION/PROCEDURE/ROUTINE ... SET SCHEMA (Dean Rasheed) §", "title": "Fix tab completion of ALTER FUNCTION/PROCEDURE/ROUTINE ... SET SCHEMA", "commits": ["2daf4664c"], "section": "Changes", "category": "bugfix", "source_url": "/docs/release/15.2/#id-1.11.6.23.5", "source_hash": "2adfe360e9e4226970369419f49312df480aeee443c381fb5a01ecb5de88bd68", "section_path": ["Changes"], "commit_groups": [["274185d11", "2ad4abedf", "2daf4664c", "48599a18d", "c54b88870", "e7a59094b"]], "identity_text": "Fix tab completion of ALTER FUNCTION/PROCEDURE/ROUTINE ... SET SCHEMA (Dean Rasheed)", "commit_aliases": ["274185d11", "2ad4abedf", "2daf4664c", "48599a18d", "c54b88870", "e7a59094b"], "source_commits": ["2daf4664c"], "source_entry_id": "15.2/changes/050", "db_id": "c6d7dfaecf037e2227d5f7fbf7024aa3", "patch_ids": ["0ece8fa8832142f62e8b830b6d1098b7"], "statement_hash": "a0a4c71b58508782bb347475081236d0e81c8fedc95e4f7434228f38e307cf06", "relations": [{"rule": 2, "type": "equivalent", "target": "698b6a7133aeda514d60183624c972a8", "evidence": {"same_day": true, "patch_ids": ["0ece8fa8832142f62e8b830b6d1098b7"], "statement_hash": "a0a4c71b58508782bb347475081236d0e81c8fedc95e4f7434228f38e307cf06"}}, {"rule": 2, "type": "equivalent", "target": "72a067424fc40896fef16ede4d61e12a", "evidence": {"same_day": true, "patch_ids": ["0ece8fa8832142f62e8b830b6d1098b7"], "statement_hash": "a0a4c71b58508782bb347475081236d0e81c8fedc95e4f7434228f38e307cf06"}}, {"rule": 2, "type": "equivalent", "target": "8db16af2aa4bbdb006a0aaeeae057b80", "evidence": {"same_day": true, "patch_ids": ["0ece8fa8832142f62e8b830b6d1098b7"], "statement_hash": "a0a4c71b58508782bb347475081236d0e81c8fedc95e4f7434228f38e307cf06"}}, {"rule": 2, "type": "equivalent", "target": "936ac018d7da4d0a14be4daad952a652", "evidence": {"same_day": true, "patch_ids": ["0ece8fa8832142f62e8b830b6d1098b7"], "statement_hash": "a0a4c71b58508782bb347475081236d0e81c8fedc95e4f7434228f38e307cf06"}}], "version": "15.2", "category_label": "Bug fixes", "also_in": [], "variants": [], "related_changes": [{"db_id": "698b6a7133aeda514d60183624c972a8", "kind": "equivalent", "version": "14.7", "label": "14.7", "title": "Fix tab completion of ALTER FUNCTION/PROCEDURE/ROUTINE ... SET SCHEMA", "evidence": {"same_day": true, "patch_ids": ["0ece8fa8832142f62e8b830b6d1098b7"], "statement_hash": "a0a4c71b58508782bb347475081236d0e81c8fedc95e4f7434228f38e307cf06"}, "url": "/docs/compare/?release=14.7#14.7-39bfcf79c2e688e4", "source_url": "/docs/release/14.7/#id-1.11.6.23.5"}, {"db_id": "8db16af2aa4bbdb006a0aaeeae057b80", "kind": "equivalent", "version": "13.10", "label": "13.10", "title": "Fix tab completion of ALTER FUNCTION/PROCEDURE/ROUTINE ... SET SCHEMA", "evidence": {"same_day": true, "patch_ids": ["0ece8fa8832142f62e8b830b6d1098b7"], "statement_hash": "a0a4c71b58508782bb347475081236d0e81c8fedc95e4f7434228f38e307cf06"}, "url": "/docs/compare/?release=13.10#13.10-5b745747e6c3e0db", "source_url": "/docs/release/13.10/#id-1.11.6.19.5"}, {"db_id": "72a067424fc40896fef16ede4d61e12a", "kind": "equivalent", "version": "12.14", "label": "12.14", "title": "Fix tab completion of ALTER FUNCTION/PROCEDURE/ROUTINE ... SET SCHEMA", "evidence": {"same_day": true, "patch_ids": ["0ece8fa8832142f62e8b830b6d1098b7"], "statement_hash": "a0a4c71b58508782bb347475081236d0e81c8fedc95e4f7434228f38e307cf06"}, "url": "/docs/compare/?release=12.14#12.14-b13337682c49967e", "source_url": "/docs/release/12.14/#id-1.11.6.14.5"}, {"db_id": "936ac018d7da4d0a14be4daad952a652", "kind": "equivalent", "version": "11.19", "label": "11.19", "title": "Fix tab completion of ALTER FUNCTION/PROCEDURE/ROUTINE ... SET SCHEMA", "evidence": {"same_day": true, "patch_ids": ["0ece8fa8832142f62e8b830b6d1098b7"], "statement_hash": "a0a4c71b58508782bb347475081236d0e81c8fedc95e4f7434228f38e307cf06"}, "url": "/docs/compare/?release=11.19#11.19-3b104e784d5f56be", "source_url": "/docs/release/11.19/#id-1.11.6.8.6"}]}, {"id": "15.2-53c7e0a5cab2b102", "cves": [], "html": "<p>Update <code>contrib/pageinspect</code> to mark its disk-accessing functions as <code>PARALLEL RESTRICTED</code> (Tom Lane) <a href=\"https://postgr.es/c/b8988cf1d\">§</a></p>\n<p>This avoids possible failure if one of these functions is used to examine a temporary table, since a session's temporary tables are not accessible from parallel workers.</p>", "text": "Update contrib/pageinspect to mark its disk-accessing functions as PARALLEL RESTRICTED (Tom Lane) § This avoids possible failure if one of these functions is used to examine a temporary table, since a session's temporary tables are not accessible from parallel workers.", "title": "Update contrib/pageinspect to mark its disk-accessing functions as PARALLEL RESTRICTED", "commits": ["b8988cf1d"], "section": "Changes", "category": "improvement", "source_url": "/docs/release/15.2/#id-1.11.6.23.5", "source_hash": "692d860fbcccf4ae68912c5fec8ccb8560c8a91bd584309054234b5623f86389", "section_path": ["Changes"], "commit_groups": [["aeaaf520f", "b8988cf1d"]], "identity_text": "Update contrib/pageinspect to mark its disk-accessing functions as PARALLEL RESTRICTED (Tom Lane) This avoids possible failure if one of these functions is used to examine a temporary table, since a session's temporary tables are not accessible from parallel workers.", "commit_aliases": ["aeaaf520f", "b8988cf1d"], "source_commits": ["b8988cf1d"], "source_entry_id": "15.2/changes/051", "db_id": "662de9a085c7239a17b4ef1f1543bfca", "patch_ids": ["72bd4224a37f29dca32b12fbe982b475"], "statement_hash": "e5b8d7185b09e5d07cb79b0a5393204310bcbebcf4f86d92397e3c666921e112", "relations": [], "version": "15.2", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": []}, {"id": "15.2-7d9562ae3b71b57b", "cves": [], "html": "<p>Fix <code>contrib/seg</code> to not crash or print garbage if an input number has more than 127 digits (Tom Lane) <a href=\"https://postgr.es/c/b87037b37\">§</a></p>", "text": "Fix contrib/seg to not crash or print garbage if an input number has more than 127 digits (Tom Lane) §", "title": "Fix contrib/seg to not crash or print garbage if an input number has more than 127 digits", "commits": ["b87037b37"], "section": "Changes", "category": "bugfix", "source_url": "/docs/release/15.2/#id-1.11.6.23.5", "source_hash": "3a559bfffe7f1c55be5b0985d414c31e2c82810977dd3da78dc57f477a610ff9", "section_path": ["Changes"], "commit_groups": [["0ff4056b8", "701c881f7", "b87037b37", "c8314d62a", "d35f1d485", "f489b480f"]], "identity_text": "Fix contrib/seg to not crash or print garbage if an input number has more than 127 digits (Tom Lane)", "commit_aliases": ["0ff4056b8", "701c881f7", "b87037b37", "c8314d62a", "d35f1d485", "f489b480f"], "source_commits": ["b87037b37"], "source_entry_id": "15.2/changes/052", "db_id": "f8ecacb830e608517dac257576954991", "patch_ids": ["2e0dc1431c9c51650569fb297e7e0c1f"], "statement_hash": "77e4c5a0c67ffe3338fdd1878a569a9650a89ef3ef44f940058fdd2cc4190ad9", "relations": [{"rule": 2, "type": "equivalent", "target": "62afe205593355461337caae647c5fe7", "evidence": {"same_day": true, "patch_ids": ["2e0dc1431c9c51650569fb297e7e0c1f"], "statement_hash": "77e4c5a0c67ffe3338fdd1878a569a9650a89ef3ef44f940058fdd2cc4190ad9"}}, {"rule": 2, "type": "equivalent", "target": "8958218fd0947670ad505df3cf7bd234", "evidence": {"same_day": true, "patch_ids": ["2e0dc1431c9c51650569fb297e7e0c1f"], "statement_hash": "77e4c5a0c67ffe3338fdd1878a569a9650a89ef3ef44f940058fdd2cc4190ad9"}}, {"rule": 2, "type": "equivalent", "target": "e5cfb59e28370618124f93fc53bfb71d", "evidence": {"same_day": true, "patch_ids": ["2e0dc1431c9c51650569fb297e7e0c1f"], "statement_hash": "77e4c5a0c67ffe3338fdd1878a569a9650a89ef3ef44f940058fdd2cc4190ad9"}}, {"rule": 2, "type": "equivalent", "target": "ff36883654c1a2a04c254db9d098c8d3", "evidence": {"same_day": true, "patch_ids": ["2e0dc1431c9c51650569fb297e7e0c1f"], "statement_hash": "77e4c5a0c67ffe3338fdd1878a569a9650a89ef3ef44f940058fdd2cc4190ad9"}}], "version": "15.2", "category_label": "Bug fixes", "also_in": [], "variants": [], "related_changes": [{"db_id": "ff36883654c1a2a04c254db9d098c8d3", "kind": "equivalent", "version": "14.7", "label": "14.7", "title": "Fix contrib/seg to not crash or print garbage if an input number has more than 127 digits", "evidence": {"same_day": true, "patch_ids": ["2e0dc1431c9c51650569fb297e7e0c1f"], "statement_hash": "77e4c5a0c67ffe3338fdd1878a569a9650a89ef3ef44f940058fdd2cc4190ad9"}, "url": "/docs/compare/?release=14.7#14.7-427a1d7c3e7fe237", "source_url": "/docs/release/14.7/#id-1.11.6.23.5"}, {"db_id": "62afe205593355461337caae647c5fe7", "kind": "equivalent", "version": "13.10", "label": "13.10", "title": "Fix contrib/seg to not crash or print garbage if an input number has more than 127 digits", "evidence": {"same_day": true, "patch_ids": ["2e0dc1431c9c51650569fb297e7e0c1f"], "statement_hash": "77e4c5a0c67ffe3338fdd1878a569a9650a89ef3ef44f940058fdd2cc4190ad9"}, "url": "/docs/compare/?release=13.10#13.10-17194291e7a2c2f6", "source_url": "/docs/release/13.10/#id-1.11.6.19.5"}, {"db_id": "e5cfb59e28370618124f93fc53bfb71d", "kind": "equivalent", "version": "12.14", "label": "12.14", "title": "Fix contrib/seg to not crash or print garbage if an input number has more than 127 digits", "evidence": {"same_day": true, "patch_ids": ["2e0dc1431c9c51650569fb297e7e0c1f"], "statement_hash": "77e4c5a0c67ffe3338fdd1878a569a9650a89ef3ef44f940058fdd2cc4190ad9"}, "url": "/docs/compare/?release=12.14#12.14-f16d67bd4389a0c5", "source_url": "/docs/release/12.14/#id-1.11.6.14.5"}, {"db_id": "8958218fd0947670ad505df3cf7bd234", "kind": "equivalent", "version": "11.19", "label": "11.19", "title": "Fix contrib/seg to not crash or print garbage if an input number has more than 127 digits", "evidence": {"same_day": true, "patch_ids": ["2e0dc1431c9c51650569fb297e7e0c1f"], "statement_hash": "77e4c5a0c67ffe3338fdd1878a569a9650a89ef3ef44f940058fdd2cc4190ad9"}, "url": "/docs/compare/?release=11.19#11.19-60276554709b1f36", "source_url": "/docs/release/11.19/#id-1.11.6.8.6"}]}, {"id": "15.2-ff3d4478793b43e5", "cves": [], "html": "<p>Fix build on Microsoft Visual Studio 2013 (Tom Lane) <a href=\"https://postgr.es/c/576506303\">§</a></p>\n<p>A previous patch supposed that all platforms of interest have <code>snprintf()</code>, but MSVC 2013 isn't quite there yet. Revert to using <code>sprintf()</code> on that platform.</p>", "text": "Fix build on Microsoft Visual Studio 2013 (Tom Lane) § A previous patch supposed that all platforms of interest have snprintf(), but MSVC 2013 isn't quite there yet. Revert to using sprintf() on that platform.", "title": "Fix build on Microsoft Visual Studio 2013", "commits": ["576506303"], "section": "Changes", "category": "bugfix", "source_url": "/docs/release/15.2/#id-1.11.6.23.5", "source_hash": "386a08fa597b06d2f056a83a849046e4a6924515bbed180290833cd34e39a54b", "section_path": ["Changes"], "commit_groups": [["06dca17ad", "0942acb73", "576506303", "cf0f465c0"]], "identity_text": "Fix build on Microsoft Visual Studio 2013 (Tom Lane) A previous patch supposed that all platforms of interest have snprintf(), but MSVC 2013 isn't quite there yet. Revert to using sprintf() on that platform.", "commit_aliases": ["06dca17ad", "0942acb73", "576506303", "cf0f465c0"], "source_commits": ["576506303"], "source_entry_id": "15.2/changes/053", "db_id": "2ca96fbf0318f0842d4eb58d1d204195", "patch_ids": ["72cdbc73c7b975790174b45ba64327a2"], "statement_hash": "bbd794e750b56d35d5101bc9ed99332e31f90a0ee6bc1487ff84caed8d0d6294", "relations": [{"rule": 2, "type": "equivalent", "target": "0b1486734bf4559a0c0a99637c7ed1f1", "evidence": {"same_day": true, "patch_ids": ["72cdbc73c7b975790174b45ba64327a2"], "statement_hash": "bbd794e750b56d35d5101bc9ed99332e31f90a0ee6bc1487ff84caed8d0d6294"}}, {"rule": 2, "type": "equivalent", "target": "db1d269845b626ed2dc7f62189fe0cad", "evidence": {"same_day": true, "patch_ids": ["72cdbc73c7b975790174b45ba64327a2"], "statement_hash": "bbd794e750b56d35d5101bc9ed99332e31f90a0ee6bc1487ff84caed8d0d6294"}}, {"rule": 2, "type": "equivalent", "target": "f3c29b4e5766bdebb5015dd718286b38", "evidence": {"same_day": true, "patch_ids": ["72cdbc73c7b975790174b45ba64327a2"], "statement_hash": "bbd794e750b56d35d5101bc9ed99332e31f90a0ee6bc1487ff84caed8d0d6294"}}], "version": "15.2", "category_label": "Bug fixes", "also_in": [], "variants": [], "related_changes": [{"db_id": "db1d269845b626ed2dc7f62189fe0cad", "kind": "equivalent", "version": "14.7", "label": "14.7", "title": "Fix build on Microsoft Visual Studio 2013", "evidence": {"same_day": true, "patch_ids": ["72cdbc73c7b975790174b45ba64327a2"], "statement_hash": "bbd794e750b56d35d5101bc9ed99332e31f90a0ee6bc1487ff84caed8d0d6294"}, "url": "/docs/compare/?release=14.7#14.7-442744b8e30cfbb5", "source_url": "/docs/release/14.7/#id-1.11.6.23.5"}, {"db_id": "0b1486734bf4559a0c0a99637c7ed1f1", "kind": "equivalent", "version": "13.10", "label": "13.10", "title": "Fix build on Microsoft Visual Studio 2013", "evidence": {"same_day": true, "patch_ids": ["72cdbc73c7b975790174b45ba64327a2"], "statement_hash": "bbd794e750b56d35d5101bc9ed99332e31f90a0ee6bc1487ff84caed8d0d6294"}, "url": "/docs/compare/?release=13.10#13.10-3b42977c1174c4a1", "source_url": "/docs/release/13.10/#id-1.11.6.19.5"}, {"db_id": "f3c29b4e5766bdebb5015dd718286b38", "kind": "equivalent", "version": "12.14", "label": "12.14", "title": "Fix build on Microsoft Visual Studio 2013", "evidence": {"same_day": true, "patch_ids": ["72cdbc73c7b975790174b45ba64327a2"], "statement_hash": "bbd794e750b56d35d5101bc9ed99332e31f90a0ee6bc1487ff84caed8d0d6294"}, "url": "/docs/compare/?release=12.14#12.14-eb05285c769888de", "source_url": "/docs/release/12.14/#id-1.11.6.14.5"}]}, {"id": "15.2-2ca836f020378d0d", "cves": [], "html": "<p>Fix compile failure in building PL/Perl with MSVC when using Strawberry Perl (Andrew Dunstan) <a href=\"https://postgr.es/c/fed54fc9a\">§</a></p>", "text": "Fix compile failure in building PL/Perl with MSVC when using Strawberry Perl (Andrew Dunstan) §", "title": "Fix compile failure in building PL/Perl with MSVC when using Strawberry Perl", "commits": ["fed54fc9a"], "section": "Changes", "category": "bugfix", "source_url": "/docs/release/15.2/#id-1.11.6.23.5", "source_hash": "bcbe57f95efe08da569c48c08cc02c75b21e9c939fcee5acab3566a276a2b202", "section_path": ["Changes"], "commit_groups": [["171c7fffa", "341f4e002", "9fe5cff14", "ae7c51213", "f76191fd9", "fed54fc9a"]], "identity_text": "Fix compile failure in building PL/Perl with MSVC when using Strawberry Perl (Andrew Dunstan)", "commit_aliases": ["171c7fffa", "341f4e002", "9fe5cff14", "ae7c51213", "f76191fd9", "fed54fc9a"], "source_commits": ["fed54fc9a"], "source_entry_id": "15.2/changes/054", "db_id": "da239ef55aff1b5eeb22e642463579b3", "patch_ids": ["e146361bb85a7ba5befe9b8bb0225ae5"], "statement_hash": "fd3ed3633236c287fcbb631c9ddfb73496350acdfefb9aeaacb0f422d39242fe", "relations": [{"rule": 2, "type": "equivalent", "target": "1d5b461d110093b7f4d80ee9d283249c", "evidence": {"same_day": true, "patch_ids": ["e146361bb85a7ba5befe9b8bb0225ae5"], "statement_hash": "fd3ed3633236c287fcbb631c9ddfb73496350acdfefb9aeaacb0f422d39242fe"}}, {"rule": 2, "type": "equivalent", "target": "5c16a7fc4b7cccafa4fca346108fa06d", "evidence": {"same_day": true, "patch_ids": ["e146361bb85a7ba5befe9b8bb0225ae5"], "statement_hash": "fd3ed3633236c287fcbb631c9ddfb73496350acdfefb9aeaacb0f422d39242fe"}}, {"rule": 2, "type": "equivalent", "target": "9d36f1125ad1cc9d57d083e412864cda", "evidence": {"same_day": true, "patch_ids": ["e146361bb85a7ba5befe9b8bb0225ae5"], "statement_hash": "fd3ed3633236c287fcbb631c9ddfb73496350acdfefb9aeaacb0f422d39242fe"}}, {"rule": 2, "type": "equivalent", "target": "ab79678607c5ef6764e83bb4a22dc0e9", "evidence": {"same_day": true, "patch_ids": ["e146361bb85a7ba5befe9b8bb0225ae5"], "statement_hash": "fd3ed3633236c287fcbb631c9ddfb73496350acdfefb9aeaacb0f422d39242fe"}}], "version": "15.2", "category_label": "Bug fixes", "also_in": [], "variants": [], "related_changes": [{"db_id": "5c16a7fc4b7cccafa4fca346108fa06d", "kind": "equivalent", "version": "14.7", "label": "14.7", "title": "Fix compile failure in building PL/Perl with MSVC when using Strawberry Perl", "evidence": {"same_day": true, "patch_ids": ["e146361bb85a7ba5befe9b8bb0225ae5"], "statement_hash": "fd3ed3633236c287fcbb631c9ddfb73496350acdfefb9aeaacb0f422d39242fe"}, "url": "/docs/compare/?release=14.7#14.7-207bd2c37dcb61cc", "source_url": "/docs/release/14.7/#id-1.11.6.23.5"}, {"db_id": "ab79678607c5ef6764e83bb4a22dc0e9", "kind": "equivalent", "version": "13.10", "label": "13.10", "title": "Fix compile failure in building PL/Perl with MSVC when using Strawberry Perl", "evidence": {"same_day": true, "patch_ids": ["e146361bb85a7ba5befe9b8bb0225ae5"], "statement_hash": "fd3ed3633236c287fcbb631c9ddfb73496350acdfefb9aeaacb0f422d39242fe"}, "url": "/docs/compare/?release=13.10#13.10-a76123c726b0a642", "source_url": "/docs/release/13.10/#id-1.11.6.19.5"}, {"db_id": "1d5b461d110093b7f4d80ee9d283249c", "kind": "equivalent", "version": "12.14", "label": "12.14", "title": "Fix compile failure in building PL/Perl with MSVC when using Strawberry Perl", "evidence": {"same_day": true, "patch_ids": ["e146361bb85a7ba5befe9b8bb0225ae5"], "statement_hash": "fd3ed3633236c287fcbb631c9ddfb73496350acdfefb9aeaacb0f422d39242fe"}, "url": "/docs/compare/?release=12.14#12.14-6aa6eaaa14338d88", "source_url": "/docs/release/12.14/#id-1.11.6.14.5"}, {"db_id": "9d36f1125ad1cc9d57d083e412864cda", "kind": "equivalent", "version": "11.19", "label": "11.19", "title": "Fix compile failure in building PL/Perl with MSVC when using Strawberry Perl", "evidence": {"same_day": true, "patch_ids": ["e146361bb85a7ba5befe9b8bb0225ae5"], "statement_hash": "fd3ed3633236c287fcbb631c9ddfb73496350acdfefb9aeaacb0f422d39242fe"}, "url": "/docs/compare/?release=11.19#11.19-7c046381812f9455", "source_url": "/docs/release/11.19/#id-1.11.6.8.6"}]}, {"id": "15.2-84441a0c555a06da", "cves": [], "html": "<p>Fix mismatch of PL/Perl built with MSVC versus a Perl library built with gcc (Andrew Dunstan) <a href=\"https://postgr.es/c/b5d8fd418\">§</a></p>\n<p>Such combinations could previously fail with <span>“<span>loadable library and perl binaries are mismatched</span>”</span> errors.</p>", "text": "Fix mismatch of PL/Perl built with MSVC versus a Perl library built with gcc (Andrew Dunstan) § Such combinations could previously fail with “loadable library and perl binaries are mismatched” errors.", "title": "Fix mismatch of PL/Perl built with MSVC versus a Perl library built with gcc", "commits": ["b5d8fd418"], "section": "Changes", "category": "bugfix", "source_url": "/docs/release/15.2/#id-1.11.6.23.5", "source_hash": "288dcfaab5de01b2083bdf05fa1efadad80f77aa929e4fd6e69d388e37d3abc6", "section_path": ["Changes"], "commit_groups": [["68d89d80c", "724dd5649", "85565cbca", "b5d8fd418", "ccc59a83c", "f3f70b8de"]], "identity_text": "Fix mismatch of PL/Perl built with MSVC versus a Perl library built with gcc (Andrew Dunstan) Such combinations could previously fail with loadable library and perl binaries are mismatched errors.", "commit_aliases": ["68d89d80c", "724dd5649", "85565cbca", "b5d8fd418", "ccc59a83c", "f3f70b8de"], "source_commits": ["b5d8fd418"], "source_entry_id": "15.2/changes/055", "db_id": "d725eb23a9abe1f2a27fbbc4f8513ac0", "patch_ids": ["da4c5c966fed0d5ca572b4f0fbc648f4"], "statement_hash": "14a29a170eb83005db58c47c472e5915271304ce4dd40f466a3e27ef61627a6a", "relations": [{"rule": 2, "type": "equivalent", "target": "4f059006adb8bedecbf81dafc145a2fd", "evidence": {"same_day": true, "patch_ids": ["da4c5c966fed0d5ca572b4f0fbc648f4"], "statement_hash": "14a29a170eb83005db58c47c472e5915271304ce4dd40f466a3e27ef61627a6a"}}, {"rule": 2, "type": "equivalent", "target": "7266b2d89f8ea246d409a64b64649cb3", "evidence": {"same_day": true, "patch_ids": ["da4c5c966fed0d5ca572b4f0fbc648f4"], "statement_hash": "14a29a170eb83005db58c47c472e5915271304ce4dd40f466a3e27ef61627a6a"}}, {"rule": 2, "type": "equivalent", "target": "89e4e2690a29b8d1fc7680fbe9915348", "evidence": {"same_day": true, "patch_ids": ["da4c5c966fed0d5ca572b4f0fbc648f4"], "statement_hash": "14a29a170eb83005db58c47c472e5915271304ce4dd40f466a3e27ef61627a6a"}}, {"rule": 2, "type": "equivalent", "target": "90463d6cf4eebe1d8a06945bdda7187d", "evidence": {"same_day": true, "patch_ids": ["da4c5c966fed0d5ca572b4f0fbc648f4"], "statement_hash": "14a29a170eb83005db58c47c472e5915271304ce4dd40f466a3e27ef61627a6a"}}], "version": "15.2", "category_label": "Bug fixes", "also_in": [], "variants": [], "related_changes": [{"db_id": "7266b2d89f8ea246d409a64b64649cb3", "kind": "equivalent", "version": "14.7", "label": "14.7", "title": "Fix mismatch of PL/Perl built with MSVC versus a Perl library built with gcc", "evidence": {"same_day": true, "patch_ids": ["da4c5c966fed0d5ca572b4f0fbc648f4"], "statement_hash": "14a29a170eb83005db58c47c472e5915271304ce4dd40f466a3e27ef61627a6a"}, "url": "/docs/compare/?release=14.7#14.7-a4320fafebb258b2", "source_url": "/docs/release/14.7/#id-1.11.6.23.5"}, {"db_id": "89e4e2690a29b8d1fc7680fbe9915348", "kind": "equivalent", "version": "13.10", "label": "13.10", "title": "Fix mismatch of PL/Perl built with MSVC versus a Perl library built with gcc", "evidence": {"same_day": true, "patch_ids": ["da4c5c966fed0d5ca572b4f0fbc648f4"], "statement_hash": "14a29a170eb83005db58c47c472e5915271304ce4dd40f466a3e27ef61627a6a"}, "url": "/docs/compare/?release=13.10#13.10-fd6a7f19c31305d7", "source_url": "/docs/release/13.10/#id-1.11.6.19.5"}, {"db_id": "90463d6cf4eebe1d8a06945bdda7187d", "kind": "equivalent", "version": "12.14", "label": "12.14", "title": "Fix mismatch of PL/Perl built with MSVC versus a Perl library built with gcc", "evidence": {"same_day": true, "patch_ids": ["da4c5c966fed0d5ca572b4f0fbc648f4"], "statement_hash": "14a29a170eb83005db58c47c472e5915271304ce4dd40f466a3e27ef61627a6a"}, "url": "/docs/compare/?release=12.14#12.14-0d6a0bc7f9e3c868", "source_url": "/docs/release/12.14/#id-1.11.6.14.5"}, {"db_id": "4f059006adb8bedecbf81dafc145a2fd", "kind": "equivalent", "version": "11.19", "label": "11.19", "title": "Fix mismatch of PL/Perl built with MSVC versus a Perl library built with gcc", "evidence": {"same_day": true, "patch_ids": ["da4c5c966fed0d5ca572b4f0fbc648f4"], "statement_hash": "14a29a170eb83005db58c47c472e5915271304ce4dd40f466a3e27ef61627a6a"}, "url": "/docs/compare/?release=11.19#11.19-33629425061dff65", "source_url": "/docs/release/11.19/#id-1.11.6.8.6"}]}, {"id": "15.2-7684209475050573", "cves": [], "html": "<p>Suppress compiler warnings from Perl's header files (Andres Freund) <a href=\"https://postgr.es/c/c6e75e4c2\">§</a></p>\n<p>Our preferred compiler options provoke warnings about constructs appearing in recent versions of Perl's header files. When using <span>gcc</span>, we can suppress these warnings with a pragma.</p>", "text": "Suppress compiler warnings from Perl's header files (Andres Freund) § Our preferred compiler options provoke warnings about constructs appearing in recent versions of Perl's header files. When using gcc, we can suppress these warnings with a pragma.", "title": "Suppress compiler warnings from Perl's header files", "commits": ["c6e75e4c2"], "section": "Changes", "category": "improvement", "source_url": "/docs/release/15.2/#id-1.11.6.23.5", "source_hash": "fe630d2544bf2621efc87730a1f42c2601a39c386b6c4c9f1d801c8526238d1d", "section_path": ["Changes"], "commit_groups": [["388e80132", "7b5dec760", "99f8bc335", "c6e75e4c2", "ce073d014", "f0e13802f"]], "identity_text": "Suppress compiler warnings from Perl's header files (Andres Freund) Our preferred compiler options provoke warnings about constructs appearing in recent versions of Perl's header files. When using gcc, we can suppress these warnings with a pragma.", "commit_aliases": ["388e80132", "7b5dec760", "99f8bc335", "c6e75e4c2", "ce073d014", "f0e13802f"], "source_commits": ["c6e75e4c2"], "source_entry_id": "15.2/changes/056", "db_id": "f57c4063be96c687d8639dc462c312a6", "patch_ids": ["35caff6b7a01141d73cb1261ad2bf00e"], "statement_hash": "8ead208361fa3b4b8ba99ea421278aacd4bdb05c76c073719d02c43b2244c1fe", "relations": [{"rule": 2, "type": "equivalent", "target": "1a91bec2452d78574e0e24a9adfc5537", "evidence": {"same_day": true, "patch_ids": ["35caff6b7a01141d73cb1261ad2bf00e"], "statement_hash": "8ead208361fa3b4b8ba99ea421278aacd4bdb05c76c073719d02c43b2244c1fe"}}, {"rule": 2, "type": "equivalent", "target": "3e044c396d29210d6916dcf658bec97b", "evidence": {"same_day": true, "patch_ids": ["35caff6b7a01141d73cb1261ad2bf00e"], "statement_hash": "8ead208361fa3b4b8ba99ea421278aacd4bdb05c76c073719d02c43b2244c1fe"}}, {"rule": 2, "type": "equivalent", "target": "4b0ba7f3c8d9033f3bfcce2a2b06a2e6", "evidence": {"same_day": true, "patch_ids": ["35caff6b7a01141d73cb1261ad2bf00e"], "statement_hash": "8ead208361fa3b4b8ba99ea421278aacd4bdb05c76c073719d02c43b2244c1fe"}}, {"rule": 2, "type": "equivalent", "target": "dc0a90e73f4c93c02c4f79a982bd4a22", "evidence": {"same_day": true, "patch_ids": ["35caff6b7a01141d73cb1261ad2bf00e"], "statement_hash": "8ead208361fa3b4b8ba99ea421278aacd4bdb05c76c073719d02c43b2244c1fe"}}], "version": "15.2", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": [{"db_id": "4b0ba7f3c8d9033f3bfcce2a2b06a2e6", "kind": "equivalent", "version": "14.7", "label": "14.7", "title": "Suppress compiler warnings from Perl's header files", "evidence": {"same_day": true, "patch_ids": ["35caff6b7a01141d73cb1261ad2bf00e"], "statement_hash": "8ead208361fa3b4b8ba99ea421278aacd4bdb05c76c073719d02c43b2244c1fe"}, "url": "/docs/compare/?release=14.7#14.7-e3f0c52f0bca1397", "source_url": "/docs/release/14.7/#id-1.11.6.23.5"}, {"db_id": "1a91bec2452d78574e0e24a9adfc5537", "kind": "equivalent", "version": "13.10", "label": "13.10", "title": "Suppress compiler warnings from Perl's header files", "evidence": {"same_day": true, "patch_ids": ["35caff6b7a01141d73cb1261ad2bf00e"], "statement_hash": "8ead208361fa3b4b8ba99ea421278aacd4bdb05c76c073719d02c43b2244c1fe"}, "url": "/docs/compare/?release=13.10#13.10-610c58870597877a", "source_url": "/docs/release/13.10/#id-1.11.6.19.5"}, {"db_id": "dc0a90e73f4c93c02c4f79a982bd4a22", "kind": "equivalent", "version": "12.14", "label": "12.14", "title": "Suppress compiler warnings from Perl's header files", "evidence": {"same_day": true, "patch_ids": ["35caff6b7a01141d73cb1261ad2bf00e"], "statement_hash": "8ead208361fa3b4b8ba99ea421278aacd4bdb05c76c073719d02c43b2244c1fe"}, "url": "/docs/compare/?release=12.14#12.14-5e92240f55e56beb", "source_url": "/docs/release/12.14/#id-1.11.6.14.5"}, {"db_id": "3e044c396d29210d6916dcf658bec97b", "kind": "equivalent", "version": "11.19", "label": "11.19", "title": "Suppress compiler warnings from Perl's header files", "evidence": {"same_day": true, "patch_ids": ["35caff6b7a01141d73cb1261ad2bf00e"], "statement_hash": "8ead208361fa3b4b8ba99ea421278aacd4bdb05c76c073719d02c43b2244c1fe"}, "url": "/docs/compare/?release=11.19#11.19-87457641d8eaa960", "source_url": "/docs/release/11.19/#id-1.11.6.8.6"}]}, {"id": "15.2-c885a6aadebc34c7", "cves": [], "html": "<p>Fix <span>pg_waldump</span> to build on compilers that don't discard unused static-inline functions (Tom Lane) <a href=\"https://postgr.es/c/9a40a0311\">§</a></p>", "text": "Fix pg_waldump to build on compilers that don't discard unused static-inline functions (Tom Lane) §", "title": "Fix pg_waldump to build on compilers that don't discard unused static-inline functions", "commits": ["9a40a0311"], "section": "Changes", "category": "bugfix", "source_url": "/docs/release/15.2/#id-1.11.6.23.5", "source_hash": "d2434cc8e161e9a199126bf744e890abe34be2bd0c5e18ebabfc650e9d933f70", "section_path": ["Changes"], "commit_groups": [["21c058648", "6d066d56b", "9a40a0311", "b69e9dfab", "c78f109b8"]], "identity_text": "Fix pg_waldump to build on compilers that don't discard unused static-inline functions (Tom Lane)", "commit_aliases": ["21c058648", "6d066d56b", "9a40a0311", "b69e9dfab", "c78f109b8"], "source_commits": ["9a40a0311"], "source_entry_id": "15.2/changes/057", "db_id": "892d7245d1c929ced8cbbfe02998c45f", "patch_ids": ["88681ea8f27e40cdd7ae9165ed47e9f0"], "statement_hash": "7d48262705d9f59cb5f94fa61d667642d5e11e226d5e8de7a83a0768fab9c20b", "relations": [{"rule": 2, "type": "equivalent", "target": "3e83c5af6889e79a1e628ebed845ab12", "evidence": {"same_day": true, "patch_ids": ["88681ea8f27e40cdd7ae9165ed47e9f0"], "statement_hash": "7d48262705d9f59cb5f94fa61d667642d5e11e226d5e8de7a83a0768fab9c20b"}}, {"rule": 2, "type": "equivalent", "target": "5220c36750f3687b69555b7aa1d10e16", "evidence": {"same_day": true, "patch_ids": ["88681ea8f27e40cdd7ae9165ed47e9f0"], "statement_hash": "7d48262705d9f59cb5f94fa61d667642d5e11e226d5e8de7a83a0768fab9c20b"}}, {"rule": 2, "type": "equivalent", "target": "dbecbce40ae24562c0522d3d4d1a411c", "evidence": {"same_day": true, "patch_ids": ["88681ea8f27e40cdd7ae9165ed47e9f0"], "statement_hash": "7d48262705d9f59cb5f94fa61d667642d5e11e226d5e8de7a83a0768fab9c20b"}}, {"rule": 2, "type": "equivalent", "target": "f49057c11f4d26365bc8a4a85d1fa83f", "evidence": {"same_day": true, "patch_ids": ["88681ea8f27e40cdd7ae9165ed47e9f0"], "statement_hash": "7d48262705d9f59cb5f94fa61d667642d5e11e226d5e8de7a83a0768fab9c20b"}}], "version": "15.2", "category_label": "Bug fixes", "also_in": [], "variants": [], "related_changes": [{"db_id": "5220c36750f3687b69555b7aa1d10e16", "kind": "equivalent", "version": "14.7", "label": "14.7", "title": "Fix pg_waldump to build on compilers that don't discard unused static-inline functions", "evidence": {"same_day": true, "patch_ids": ["88681ea8f27e40cdd7ae9165ed47e9f0"], "statement_hash": "7d48262705d9f59cb5f94fa61d667642d5e11e226d5e8de7a83a0768fab9c20b"}, "url": "/docs/compare/?release=14.7#14.7-fae0e7f5d4440689", "source_url": "/docs/release/14.7/#id-1.11.6.23.5"}, {"db_id": "f49057c11f4d26365bc8a4a85d1fa83f", "kind": "equivalent", "version": "13.10", "label": "13.10", "title": "Fix pg_waldump to build on compilers that don't discard unused static-inline functions", "evidence": {"same_day": true, "patch_ids": ["88681ea8f27e40cdd7ae9165ed47e9f0"], "statement_hash": "7d48262705d9f59cb5f94fa61d667642d5e11e226d5e8de7a83a0768fab9c20b"}, "url": "/docs/compare/?release=13.10#13.10-587a77855be20a4e", "source_url": "/docs/release/13.10/#id-1.11.6.19.5"}, {"db_id": "3e83c5af6889e79a1e628ebed845ab12", "kind": "equivalent", "version": "12.14", "label": "12.14", "title": "Fix pg_waldump to build on compilers that don't discard unused static-inline functions", "evidence": {"same_day": true, "patch_ids": ["88681ea8f27e40cdd7ae9165ed47e9f0"], "statement_hash": "7d48262705d9f59cb5f94fa61d667642d5e11e226d5e8de7a83a0768fab9c20b"}, "url": "/docs/compare/?release=12.14#12.14-43a9be42c571e574", "source_url": "/docs/release/12.14/#id-1.11.6.14.5"}, {"db_id": "dbecbce40ae24562c0522d3d4d1a411c", "kind": "equivalent", "version": "11.19", "label": "11.19", "title": "Fix pg_waldump to build on compilers that don't discard unused static-inline functions", "evidence": {"same_day": true, "patch_ids": ["88681ea8f27e40cdd7ae9165ed47e9f0"], "statement_hash": "7d48262705d9f59cb5f94fa61d667642d5e11e226d5e8de7a83a0768fab9c20b"}, "url": "/docs/compare/?release=11.19#11.19-712d0fafb3406680", "source_url": "/docs/release/11.19/#id-1.11.6.8.6"}]}, {"id": "15.2-02f4f081ae3ada2d", "cves": [], "html": "<p>Update time zone data files to <span>tzdata</span> release 2022g for DST law changes in Greenland and Mexico, plus historical corrections for northern Canada, Colombia, and Singapore. (Tom Lane) <a href=\"https://postgr.es/c/65f0d9d27\">§</a></p>\n<p>Notably, a new timezone America/Ciudad_Juarez has been split off from America/Ojinaga.</p>", "text": "Update time zone data files to tzdata release 2022g for DST law changes in Greenland and Mexico, plus historical corrections for northern Canada, Colombia, and Singapore. (Tom Lane) § Notably, a new timezone America/Ciudad_Juarez has been split off from America/Ojinaga.", "title": "Update time zone data files to tzdata release 2022g for DST law changes in Greenland and Mexico, plus historical corrections for northern Canada, Colombia, and Singapore.", "commits": ["65f0d9d27"], "section": "Changes", "category": "improvement", "source_url": "/docs/release/15.2/#id-1.11.6.23.5", "source_hash": "05990d33fb138a217c661ada4d9ffd62995365179d9237918a054d7404523967", "section_path": ["Changes"], "commit_groups": [["20d9da107", "2c95d8776", "65f0d9d27", "758f44bc3", "7ddc428ef", "7e6154779"]], "identity_text": "Update time zone data files to tzdata release 2022g for DST law changes in Greenland and Mexico, plus historical corrections for northern Canada, Colombia, and Singapore. (Tom Lane) Notably, a new timezone America/Ciudad_Juarez has been split off from America/Ojinaga.", "commit_aliases": ["20d9da107", "2c95d8776", "65f0d9d27", "758f44bc3", "7ddc428ef", "7e6154779"], "source_commits": ["65f0d9d27"], "source_entry_id": "15.2/changes/058", "db_id": "057311500b4f47f8510125cba87cb833", "patch_ids": ["26f414138b979e1a29fd81dde9bd6f58"], "statement_hash": "4fd9f7a6bd96261986ea31736e72935c49ba2dd576b7c420c58fd82c722fbc97", "relations": [{"rule": 2, "type": "equivalent", "target": "7ca55307318c5a758acbe0ed71104f54", "evidence": {"same_day": true, "patch_ids": ["26f414138b979e1a29fd81dde9bd6f58"], "statement_hash": "4fd9f7a6bd96261986ea31736e72935c49ba2dd576b7c420c58fd82c722fbc97"}}, {"rule": 2, "type": "equivalent", "target": "9eea6485abce4ee4e523a1384e8405e0", "evidence": {"same_day": true, "patch_ids": ["26f414138b979e1a29fd81dde9bd6f58"], "statement_hash": "4fd9f7a6bd96261986ea31736e72935c49ba2dd576b7c420c58fd82c722fbc97"}}, {"rule": 2, "type": "equivalent", "target": "c065a78082e6143fac711a0805231ae7", "evidence": {"same_day": true, "patch_ids": ["26f414138b979e1a29fd81dde9bd6f58"], "statement_hash": "4fd9f7a6bd96261986ea31736e72935c49ba2dd576b7c420c58fd82c722fbc97"}}, {"rule": 2, "type": "equivalent", "target": "ebc834691b100667f797c42da9a7317e", "evidence": {"same_day": true, "patch_ids": ["26f414138b979e1a29fd81dde9bd6f58"]}}], "version": "15.2", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": [{"db_id": "7ca55307318c5a758acbe0ed71104f54", "kind": "equivalent", "version": "14.7", "label": "14.7", "title": "Update time zone data files to tzdata release 2022g for DST law changes in Greenland and Mexico, plus historical corrections for northern Canada, Colombia, and Singapore.", "evidence": {"same_day": true, "patch_ids": ["26f414138b979e1a29fd81dde9bd6f58"], "statement_hash": "4fd9f7a6bd96261986ea31736e72935c49ba2dd576b7c420c58fd82c722fbc97"}, "url": "/docs/compare/?release=14.7#14.7-7ed4e6ce88314171", "source_url": "/docs/release/14.7/#id-1.11.6.23.5"}, {"db_id": "9eea6485abce4ee4e523a1384e8405e0", "kind": "equivalent", "version": "13.10", "label": "13.10", "title": "Update time zone data files to tzdata release 2022g for DST law changes in Greenland and Mexico, plus historical corrections for northern Canada, Colombia, and Singapore.", "evidence": {"same_day": true, "patch_ids": ["26f414138b979e1a29fd81dde9bd6f58"], "statement_hash": "4fd9f7a6bd96261986ea31736e72935c49ba2dd576b7c420c58fd82c722fbc97"}, "url": "/docs/compare/?release=13.10#13.10-ba49e47882d4aa9f", "source_url": "/docs/release/13.10/#id-1.11.6.19.5"}, {"db_id": "c065a78082e6143fac711a0805231ae7", "kind": "equivalent", "version": "12.14", "label": "12.14", "title": "Update time zone data files to tzdata release 2022g for DST law changes in Greenland and Mexico, plus historical corrections for northern Canada, Colombia, and Singapore.", "evidence": {"same_day": true, "patch_ids": ["26f414138b979e1a29fd81dde9bd6f58"], "statement_hash": "4fd9f7a6bd96261986ea31736e72935c49ba2dd576b7c420c58fd82c722fbc97"}, "url": "/docs/compare/?release=12.14#12.14-533b478185ef1914", "source_url": "/docs/release/12.14/#id-1.11.6.14.5"}, {"db_id": "ebc834691b100667f797c42da9a7317e", "kind": "equivalent", "version": "11.19", "label": "11.19", "title": "Update time zone data files to tzdata release 2022g for DST law changes in Greenland and Mexico, plus historical corrections for northern Canada, Colombia, and Singapore.", "evidence": {"same_day": true, "patch_ids": ["26f414138b979e1a29fd81dde9bd6f58"]}, "url": "/docs/compare/?release=11.19#11.19-78768f63e929cf4b", "source_url": "/docs/release/11.19/#id-1.11.6.8.6"}]}]}], "stats": [{"key": "all", "label": "All changes", "count": 58}, {"key": "feature", "label": "Features", "count": 0}, {"key": "bugfix", "label": "Bug fixes", "count": 30}, {"key": "security", "label": "Security", "count": 1}, {"key": "performance", "label": "Performance", "count": 0}, {"key": "compatibility", "label": "Compatibility", "count": 0}, {"key": "improvement", "label": "Improvements", "count": 27}], "total": 58, "release_count": 1, "cross_major": false, "cve_count": 1, "cves": [{"id": "CVE-2022-41862", "url": "https://www.postgresql.org/support/security/CVE-2022-41862/", "fixed": {"12": "12.14", "13": "13.10", "14": "14.7", "15": "15.2"}, "score": 3.7, "title": "libpq can leak memory contents after GSSAPI transport encryption initiation fails", "vector": "AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:N/A:N", "affected": {"12": "12", "13": "13", "14": "14", "15": "15"}, "component": "client", "published": {"12": "2023-02-09", "13": "2023-02-09", "14": "2023-02-09", "15": "2023-02-09"}, "introduced": {}, "cvss_version": "3.0", "description_en": "A modified, unauthenticated server can send an unterminated string during the establishment of Kerberos transport encryption. When a libpq client application has a Kerberos credential cache and doesn't explicitly disable option gssencmode , a server can cause libpq to over-read and report an error message containing uninitialized bytes from and following its receive buffer. If libpq's caller somehow makes that message accessible to the attacker, this achieves a disclosure of the over-read bytes. We have not confirmed or ruled out viability of attacks that arrange for a crash or for presence of notable, confidential information in disclosed bytes.\n\nThe PostgreSQL project thanks Jacob Champion for reporting this problem.", "first_published": "2023-02-09", "fixed_version": "15.2"}], "cve_available": true, "remaining_cves": [], "security_regressions": [], "warnings": [], "candidate_count": 58, "already_in_source_count": 0, "duplicate_count": 0, "excluded_count": 0, "exclusions": [], "source_as_of": "2026-09-26", "security_as_of": "2026-09-26"}