{"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": "6814551d0e81189dcf0a7a715441536162e39a47dcc2ccd3a663c42cdb4aa647", "manual_build": "15.19", "source_as_of": "", "changes_count": 58, "doc_loaded_at": "2026-09-26T02:56:38.228564", "migration_html": "<p>对于运行 15.X 的用户，不需要执行导出/恢复。</p>\n<p>但是，如果你从早于 15.1 的版本升级，请参见<a href=\"/docs/15/release-15-1.html\" title=\"E.19. 发布版本 15.1\">第 E.19 节</a>。</p>", "compatibility_count": 0, "label": "15.2", "status_label": "受支持版本", "eol": "2027-11-11", "age_days": 1329, "support_days": 407}, "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": "6814551d0e81189dcf0a7a715441536162e39a47dcc2ccd3a663c42cdb4aa647", "manual_build": "15.19", "source_as_of": "", "changes_count": 58, "doc_loaded_at": "2026-09-26T02:56:38.228564", "migration_html": "<p>对于运行 15.X 的用户，不需要执行导出/恢复。</p>\n<p>但是，如果你从早于 15.1 的版本升级，请参见<a href=\"/docs/15/release-15-1.html\" title=\"E.19. 发布版本 15.1\">第 E.19 节</a>。</p>", "compatibility_count": 0, "label": "15.2", "status_label": "受支持版本", "eol": "2027-11-11", "age_days": 1329, "support_days": 407, "entries": [{"id": "15.2-259471afd131584c", "cves": ["CVE-2022-41862"], "html": "<p><span>libpq</span> 在 GSSAPI 传输加密初始化失败后可能泄漏内存内容（Jacob Champion）<a href=\"https://postgr.es/c/715c345dd\">§</a></p>\n<p>一个被修改的服务器，或未经身份验证的中间人，可以在建立 GSSAPI（Kerberos）传输加密期间发送一个非零终止的错误消息。 <span>libpq</span> 随后会复制该字符串以及应用程序内存中直到下一个零字节的后续字节到其错误报告中。根据调用应用程序对错误报告的处理方式，这可能导致应用程序内存内容的泄露。由于读取超出内存末尾，还有很小的概率导致崩溃。修复方法是正确地对服务器消息进行零终止处理。（CVE-2022-41862）</p>", "text": "libpq 在 GSSAPI 传输加密初始化失败后可能泄漏内存内容（Jacob Champion）§ 一个被修改的服务器，或未经身份验证的中间人，可以在建立 GSSAPI（Kerberos）传输加密期间发送一个非零终止的错误消息。 libpq 随后会复制该字符串以及应用程序内存中直到下一个零字节的后续字节到其错误报告中。根据调用应用程序对错误报告的处理方式，这可能导致应用程序内存内容的泄露。由于读取超出内存末尾，还有很小的概率导致崩溃。修复方法是正确地对服务器消息进行零终止处理。（CVE-2022-41862）", "title": "libpq 在 GSSAPI 传输加密初始化失败后可能泄漏内存内容", "commits": ["715c345dd"], "section": "变更", "category": "security", "source_url": "/docs/release/15.2/#ZH-AUTO-RELEASE-15-SECT2-32", "source_hash": "d80d398510af01515791c63af8d7b13d0774ab472599ea71f6d193f1a4019b76", "section_path": ["变更"], "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": "安全相关", "also_in": [], "variants": [], "related_changes": [{"db_id": "84097a2dbd0e2416e528ec1b7e12655f", "kind": "equivalent", "version": "14.7", "label": "14.7", "title": "libpq 在 GSSAPI 传输加密初始化失败后可能泄漏内存内容", "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/#ZH-AUTO-RELEASE-14-SECT2-32"}, {"db_id": "e645f7bfeb83e81c2ad8f0c9a3338368", "kind": "equivalent", "version": "13.10", "label": "13.10", "title": "libpq 在 GSSAPI 传输加密初始化失败后可能泄漏内存内容", "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 在 GSSAPI 传输加密初始化失败后可能泄漏内存内容", "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>修复在对分区表或继承树执行 <code>UPDATE</code> 时，计算子表中哪些 <code>GENERATED</code> 列需要更新的问题（Amit Langote，Tom Lane）<a href=\"https://postgr.es/c/3706cc97a\">§</a> <a href=\"https://postgr.es/c/a8f7687a0\">§</a></p>\n<p>此修复解决了以下问题：未能更新父表中不存在的 <code>GENERATED</code> 列，或者其依赖关系与父列的生成表达式不同的列。</p>", "text": "修复在对分区表或继承树执行 UPDATE 时，计算子表中哪些 GENERATED 列需要更新的问题（Amit Langote，Tom Lane）§ § 此修复解决了以下问题：未能更新父表中不存在的 GENERATED 列，或者其依赖关系与父列的生成表达式不同的列。", "title": "修复在对分区表或继承树执行 UPDATE 时，计算子表中哪些 GENERATED 列需要更新的问题", "commits": ["3706cc97a", "a8f7687a0"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/15.2/#ZH-AUTO-RELEASE-15-SECT2-32", "source_hash": "364a602906a09275852fc758f08957413883b25c790d0bd14ba80fe420eacd19", "section_path": ["变更"], "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 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "cf2236dc97084a71b94880d429a87e3f", "kind": "equivalent", "version": "14.7", "label": "14.7", "title": "修复在对分区表或继承树执行 UPDATE 时，计算子表中哪些 GENERATED 列需要更新的问题", "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/#ZH-AUTO-RELEASE-14-SECT2-32"}, {"db_id": "f7d98a502ae0858cbfaa59f1f56f65ef", "kind": "equivalent", "version": "13.10", "label": "13.10", "title": "修复在对分区表或继承树执行 UPDATE 时，计算子表中哪些 GENERATED 列需要更新的问题", "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>修复 <code>MERGE</code> 可能无法计算 <code>GENERATED</code> 列的问题（Dean Rasheed）<a href=\"https://postgr.es/c/4785af9e6\">§</a></p>\n<p>当 <code>MERGE</code> 的第一个行级操作是 <code>UPDATE</code> 时，任何后续的 <code>INSERT</code> 操作将无法计算被认为对 <code>UPDATE</code> 操作不需要计算的 <code>GENERATED</code> 列（因为不依赖于任何 <code>UPDATE</code> 目标列）。</p>", "text": "修复 MERGE 可能无法计算 GENERATED 列的问题（Dean Rasheed）§ 当 MERGE 的第一个行级操作是 UPDATE 时，任何后续的 INSERT 操作将无法计算被认为对 UPDATE 操作不需要计算的 GENERATED 列（因为不依赖于任何 UPDATE 目标列）。", "title": "修复 MERGE 可能无法计算 GENERATED 列的问题", "commits": ["4785af9e6"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/15.2/#ZH-AUTO-RELEASE-15-SECT2-32", "source_hash": "c8aa52ee95a3ca2c4ac89924828ef1a754f0f54bebe56edfa2a4ba8cc727e859", "section_path": ["变更"], "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 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "15.2-d73433f1fbe85b43", "cves": [], "html": "<p>修复 <code>MERGE</code> 对不可达 <code>WHEN</code> 子句的检查（Dean Rasheed）<a href=\"https://postgr.es/c/38255f2d0\">§</a></p>\n<p>在无条件 <code>WHEN</code> 子句之后的 <code>WHEN</code> 子句应该被拒绝为不可达，但这种情况并非总是被检测到。</p>", "text": "修复 MERGE 对不可达 WHEN 子句的检查（Dean Rasheed）§ 在无条件 WHEN 子句之后的 WHEN 子句应该被拒绝为不可达，但这种情况并非总是被检测到。", "title": "修复 MERGE 对不可达 WHEN 子句的检查", "commits": ["38255f2d0"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/15.2/#ZH-AUTO-RELEASE-15-SECT2-32", "source_hash": "8e0c66f2b5d1602f82545c3c3efb126c6431ca198564936677ac92981eec66ce", "section_path": ["变更"], "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 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "15.2-19b68cfb8a03c0b4", "cves": [], "html": "<p>修复 <code>MERGE</code> 的规则检测测试（Dean Rasheed）<a href=\"https://postgr.es/c/04d61bfe6\">§</a></p>\n<p><code>MERGE</code> 不支持带规则的表；但它在曾经有规则但现在已没有规则的表上也会失败。</p>", "text": "修复 MERGE 的规则检测测试（Dean Rasheed）§ MERGE 不支持带规则的表；但它在曾经有规则但现在已没有规则的表上也会失败。", "title": "修复 MERGE 的规则检测测试", "commits": ["04d61bfe6"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/15.2/#ZH-AUTO-RELEASE-15-SECT2-32", "source_hash": "4d44e7b7136cdbf2105d085acaf0cf4f11372b55392e7e0cec84daf518eac7d1", "section_path": ["变更"], "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 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "15.2-9d9cb31065c50995", "cves": [], "html": "<p>在 <code>MERGE</code> 中，不将 <code>DO NOTHING</code> 操作计为已处理的元组（Álvaro Herrera）<a href=\"https://postgr.es/c/3d45edcef\">§</a></p>\n<p>这使代码行为与文档一致。</p>", "text": "在 MERGE 中，不将 DO NOTHING 操作计为已处理的元组（Álvaro Herrera）§ 这使代码行为与文档一致。", "title": "在 MERGE 中，不将 DO NOTHING 操作计为已处理的元组", "commits": ["3d45edcef"], "section": "变更", "category": "improvement", "source_url": "/docs/release/15.2/#ZH-AUTO-RELEASE-15-SECT2-32", "source_hash": "fa040bf503ed4c56570c99b326aa1693e4c9a014aeebe87e745e4b151dc08792", "section_path": ["变更"], "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": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "15.2-1455eb176816d0a6", "cves": [], "html": "<p>允许 <code>WITH RECURSIVE ... CYCLE</code> CTE 访问其输出列（Tom Lane）<a href=\"https://postgr.es/c/ae98debf7\">§</a></p>\n<p>从 CTE 内部引用 <code>SET</code> 列会导致 <span>“<span>cache lookup failed for type 0</span>”</span> 错误。</p>", "text": "允许 WITH RECURSIVE ... CYCLE CTE 访问其输出列（Tom Lane）§ 从 CTE 内部引用 SET 列会导致 “cache lookup failed for type 0” 错误。", "title": "允许 WITH RECURSIVE ... CYCLE CTE 访问其输出列", "commits": ["ae98debf7"], "section": "变更", "category": "improvement", "source_url": "/docs/release/15.2/#ZH-AUTO-RELEASE-15-SECT2-32", "source_hash": "5538418337e828f9b13b3d31fee7fa9e259fc5ea49a719b8361d1ac387323d9f", "section_path": ["变更"], "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": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "f0cdb40b8f1de382f2c6e8a59ff35188", "kind": "equivalent", "version": "14.7", "label": "14.7", "title": "允许 WITH RECURSIVE ... CYCLE CTE 访问其输出列", "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/#ZH-AUTO-RELEASE-14-SECT2-32"}]}, {"id": "15.2-210c78d0b90b62b0", "cves": [], "html": "<p>修复在对外部表执行批量插入时对待处理插入的处理（Etsuro Fujita）<a href=\"https://postgr.es/c/fc02019c0\">§</a> <a href=\"https://postgr.es/c/a0bf7a0ec\">§</a></p>\n<p>在某些情况下，待处理的插入未能及时刷新到 FDW，导致逻辑不一致，例如 <code>BEFORE ROW</code> 触发器无法看到本应可以看到的行。</p>", "text": "修复在对外部表执行批量插入时对待处理插入的处理（Etsuro Fujita）§ § 在某些情况下，待处理的插入未能及时刷新到 FDW，导致逻辑不一致，例如 BEFORE ROW 触发器无法看到本应可以看到的行。", "title": "修复在对外部表执行批量插入时对待处理插入的处理", "commits": ["a0bf7a0ec", "fc02019c0"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/15.2/#ZH-AUTO-RELEASE-15-SECT2-32", "source_hash": "52c9a7d6bf4945d62a5991491ed3142e7d2f4e21ef08efa9723eb6abce067240", "section_path": ["变更"], "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 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "aec26822735c959702be6476d1b9e6a5", "kind": "equivalent", "version": "14.7", "label": "14.7", "title": "修复在对外部表执行批量插入时对待处理插入的处理", "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/#ZH-AUTO-RELEASE-14-SECT2-32"}]}, {"id": "15.2-d34b9e2237c256d6", "cves": [], "html": "<p>允许在尚未（完全）有效的索引上设置 <code>REPLICA IDENTITY</code>（Tom Lane）<a href=\"https://postgr.es/c/9e4288ce6\">§</a></p>\n<p>当 <span>pg_dump</span> 导出一个标记了 <code>REPLICA IDENTITY</code> 的分区索引时，它生成的命令序列会在分区索引被标记为有效之前应用 <code>REPLICA IDENTITY</code>，导致恢复失败。似乎没有很好的理由禁止按此顺序操作，因此允许这样做。在索引变为有效之前，该标记不会产生任何效果。</p>", "text": "允许在尚未（完全）有效的索引上设置 REPLICA IDENTITY（Tom Lane）§ 当 pg_dump 导出一个标记了 REPLICA IDENTITY 的分区索引时，它生成的命令序列会在分区索引被标记为有效之前应用 REPLICA IDENTITY，导致恢复失败。似乎没有很好的理由禁止按此顺序操作，因此允许这样做。在索引变为有效之前，该标记不会产生任何效果。", "title": "允许在尚未（完全）有效的索引上设置 REPLICA IDENTITY", "commits": ["9e4288ce6"], "section": "变更", "category": "improvement", "source_url": "/docs/release/15.2/#ZH-AUTO-RELEASE-15-SECT2-32", "source_hash": "7b06269326e2c6273e6bee9335d5053691b419ac05719c232e8853c9b311926b", "section_path": ["变更"], "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": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "acd96d95c2928bc08480bb5df5601606", "kind": "equivalent", "version": "14.7", "label": "14.7", "title": "允许在尚未（完全）有效的索引上设置 REPLICA IDENTITY", "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/#ZH-AUTO-RELEASE-14-SECT2-32"}, {"db_id": "ce555d67f7c0c48bdefe55099d14e617", "kind": "equivalent", "version": "13.10", "label": "13.10", "title": "允许在尚未（完全）有效的索引上设置 REPLICA IDENTITY", "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": "允许在尚未（完全）有效的索引上设置 REPLICA IDENTITY", "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": "允许在尚未（完全）有效的索引上设置 REPLICA IDENTITY", "evidence": {"same_day": true, "patch_ids": ["b3485e20a15878646364a0f7d7e03abf"], "statement_hash": "31c1295aa478addc29020a4f323c3abaccd48a6c3972d6a29ad8b66bd976ab8a"}, "url": "/docs/compare/?release=11.19#11.19-1d450169b75c23ea", "source_url": "/docs/release/11.19/#id-1.11.6.8.6"}]}, {"id": "15.2-71525791e9a340a1", "cves": [], "html": "<p>修复在规则中从多行 <code>VALUES</code> 列表执行 <code>INSERT</code> 时对 <code>DEFAULT</code> 标记的处理（Dean Rasheed）<a href=\"https://postgr.es/c/c67204db6\">§</a></p>\n<p>在某些情况下，<code>DEFAULT</code> 标记不会被替换为正确的默认值表达式，导致 <span>“<span>unrecognized node type</span>”</span> 错误。</p>", "text": "修复在规则中从多行 VALUES 列表执行 INSERT 时对 DEFAULT 标记的处理（Dean Rasheed）§ 在某些情况下，DEFAULT 标记不会被替换为正确的默认值表达式，导致 “unrecognized node type” 错误。", "title": "修复在规则中从多行 VALUES 列表执行 INSERT 时对 DEFAULT 标记的处理", "commits": ["c67204db6"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/15.2/#ZH-AUTO-RELEASE-15-SECT2-32", "source_hash": "652416a50aea30727607e0a991bef8543412dac51c90396241e85928447f9093", "section_path": ["变更"], "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 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "c3c3f52a61ae6de2f6d43ada2914208a", "kind": "equivalent", "version": "14.7", "label": "14.7", "title": "修复在规则中从多行 VALUES 列表执行 INSERT 时对 DEFAULT 标记的处理", "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/#ZH-AUTO-RELEASE-14-SECT2-32"}, {"db_id": "f7599640396a0152b760a1ba2f99f2c3", "kind": "equivalent", "version": "13.10", "label": "13.10", "title": "修复在规则中从多行 VALUES 列表执行 INSERT 时对 DEFAULT 标记的处理", "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": "修复在规则中从多行 VALUES 列表执行 INSERT 时对 DEFAULT 标记的处理", "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": "修复在规则中从多行 VALUES 列表执行 INSERT 时对 DEFAULT 标记的处理", "evidence": {"same_day": true, "patch_ids": ["bb9b91e277a743ab72aa91910cd7e2b3"], "statement_hash": "0caab1e8c40409d72f0c79b0794ac9b22d0334cff92c6611cc16c2e14922a8c4"}, "url": "/docs/compare/?release=11.19#11.19-d28067796788d08b", "source_url": "/docs/release/11.19/#id-1.11.6.8.6"}]}, {"id": "15.2-c4009bf4fd633af4", "cves": [], "html": "<p>拒绝在 <code>jsonpath</code> 存在性检查中使用未定义的变量（Alexander Korotkov，David G. Johnston）<a href=\"https://postgr.es/c/4dc3f94fa\">§</a></p>\n<p>虽然 <code>jsonpath</code> 匹配操作符对路径模式中的未定义变量会抛出错误，但存在性操作符却默默地将其视为匹配。</p>", "text": "拒绝在 jsonpath 存在性检查中使用未定义的变量（Alexander Korotkov，David G. Johnston）§ 虽然 jsonpath 匹配操作符对路径模式中的未定义变量会抛出错误，但存在性操作符却默默地将其视为匹配。", "title": "拒绝在 jsonpath 存在性检查中使用未定义的变量", "commits": ["4dc3f94fa"], "section": "变更", "category": "improvement", "source_url": "/docs/release/15.2/#ZH-AUTO-RELEASE-15-SECT2-32", "source_hash": "622f5fd3f738a3a6ced331e0ce17ced0ae9c1a9b4b08ae30d10f74506e09fbc4", "section_path": ["变更"], "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": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "f355f551385e952f26acc2ef243b43f1", "kind": "equivalent", "version": "14.7", "label": "14.7", "title": "拒绝在 jsonpath 存在性检查中使用未定义的变量", "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/#ZH-AUTO-RELEASE-14-SECT2-32"}, {"db_id": "921c8c380d8ed93971d9551e659076d1", "kind": "equivalent", "version": "13.10", "label": "13.10", "title": "拒绝在 jsonpath 存在性检查中使用未定义的变量", "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": "拒绝在 jsonpath 存在性检查中使用未定义的变量", "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>修复 <code>jsonb</code> 下标操作，使其能够处理经过 TOAST 处理的下标值（Tom Lane，David G. Johnston）<a href=\"https://postgr.es/c/d79b76b10\">§</a></p>\n<p>使用直接从表中获取的文本值作为 <code>jsonb</code> 下标时很可能会失败。获取操作通常找不到任何匹配的元素。赋值操作可能会使用垃圾键存储值，不过在实际使用中，足够长以导致该问题的键可能很少见。</p>", "text": "修复 jsonb 下标操作，使其能够处理经过 TOAST 处理的下标值（Tom Lane，David G. Johnston）§ 使用直接从表中获取的文本值作为 jsonb 下标时很可能会失败。获取操作通常找不到任何匹配的元素。赋值操作可能会使用垃圾键存储值，不过在实际使用中，足够长以导致该问题的键可能很少见。", "title": "修复 jsonb 下标操作，使其能够处理经过 TOAST 处理的下标值", "commits": ["d79b76b10"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/15.2/#ZH-AUTO-RELEASE-15-SECT2-32", "source_hash": "a6e3b96a10fb38376da3fa057e516ccba1986ce7f5f60e6a1e38592cd567e2c8", "section_path": ["变更"], "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 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "1af3e95c606ed32c1c6176bbdca9252d", "kind": "equivalent", "version": "14.7", "label": "14.7", "title": "修复 jsonb 下标操作，使其能够处理经过 TOAST 处理的下标值", "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/#ZH-AUTO-RELEASE-14-SECT2-32"}]}, {"id": "15.2-900dd95c4f11c9be", "cves": [], "html": "<p>修复并行哈希连接中的边界情况数据损坏问题（Dmitry Astapov）<a href=\"https://postgr.es/c/d9f5345bf\">§</a></p>\n<p>如果正在写入临时文件的大元组的最后一个块恰好是 32760 字节，由于栅栏柱错误会导致数据损坏。查询通常会在稍后以数据损坏的症状而失败。</p>", "text": "修复并行哈希连接中的边界情况数据损坏问题（Dmitry Astapov）§ 如果正在写入临时文件的大元组的最后一个块恰好是 32760 字节，由于栅栏柱错误会导致数据损坏。查询通常会在稍后以数据损坏的症状而失败。", "title": "修复并行哈希连接中的边界情况数据损坏问题", "commits": ["d9f5345bf"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/15.2/#ZH-AUTO-RELEASE-15-SECT2-32", "source_hash": "31b3612c4954c12626e5aa84eff8f56c58b6e6494e950916ead493eaf82dcd13", "section_path": ["变更"], "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 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "17baafcf991fbee7db5fd59cfa4ebe26", "kind": "equivalent", "version": "14.7", "label": "14.7", "title": "修复并行哈希连接中的边界情况数据损坏问题", "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/#ZH-AUTO-RELEASE-14-SECT2-32"}, {"db_id": "58c1639ecc5c6ebcdfd574d1218a9233", "kind": "equivalent", "version": "13.10", "label": "13.10", "title": "修复并行哈希连接中的边界情况数据损坏问题", "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": "修复并行哈希连接中的边界情况数据损坏问题", "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": "修复并行哈希连接在边界情况下发生的数据损坏", "evidence": {"same_day": true, "patch_ids": ["ed4e4b8eef5b19e3626542d6943bb6b8"], "statement_hash": "4a51d715717e30be6e1cee4a61dd098e72b0b0e2c8099e317041336e054c13e8"}, "url": "/docs/compare/?release=11.19#11.19-3b2617fa800bb8ae", "source_url": "/docs/release/11.19/#id-1.11.6.8.6"}]}, {"id": "15.2-daee5981fb26b6c3", "cves": [], "html": "<p>遵循 <code>checkpoint_completion_target</code> 的非默认设置（Bharath Rupireddy）<a href=\"https://postgr.es/c/49e3a5e71\">§</a></p>\n<p>在 <code>checkpoint_completion_target</code> 更改后，内部状态未被更新，可能导致检查点 I/O 执行得比预期更快或更慢，特别是在动态更改该设置时。</p>", "text": "遵循 checkpoint_completion_target 的非默认设置（Bharath Rupireddy）§ 在 checkpoint_completion_target 更改后，内部状态未被更新，可能导致检查点 I/O 执行得比预期更快或更慢，特别是在动态更改该设置时。", "title": "遵循 checkpoint_completion_target 的非默认设置", "commits": ["49e3a5e71"], "section": "变更", "category": "improvement", "source_url": "/docs/release/15.2/#ZH-AUTO-RELEASE-15-SECT2-32", "source_hash": "a840cc99b8269b48a57c3ffa7d8b6078f6d6bc35c72583ad2ad14657de3e6780", "section_path": ["变更"], "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": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "c5f5fe3d98a72064c824e3563c2e4f50", "kind": "equivalent", "version": "14.7", "label": "14.7", "title": "遵循 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/#ZH-AUTO-RELEASE-14-SECT2-32"}, {"db_id": "88f0b43434b532bf33cfe6307bd1a79a", "kind": "equivalent", "version": "13.10", "label": "13.10", "title": "遵循 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": "遵循 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": "遵循 checkpoint_completion_target 的非默认设置", "evidence": {"same_day": true, "patch_ids": ["25ee85eb18cddb23c2b75cbc0fb2093f"], "statement_hash": "4db409d631423b21c81b8e2a6c4fc4ac68fc8e411be80c7826c690cdc4594b22"}, "url": "/docs/compare/?release=11.19#11.19-831f60846552bae6", "source_url": "/docs/release/11.19/#id-1.11.6.8.6"}]}, {"id": "15.2-a729c8b75107cbf1", "cves": [], "html": "<p>在 <code>recovery_target_xid</code> 模式下记录正确的结束时间戳（Tom Lane）<a href=\"https://postgr.es/c/abe203304\">§</a></p>\n<p>当基于 <code>recovery_target_xid</code> 设置且 <code>recovery_target_inclusive</code> = <code>off</code> 结束恢复时，我们在 <span>“<span>recovery stopping before ... transaction</span>”</span> 日志消息中打印了一个不正确的时间戳（始终为 2000-01-01）。</p>", "text": "在 recovery_target_xid 模式下记录正确的结束时间戳（Tom Lane）§ 当基于 recovery_target_xid 设置且 recovery_target_inclusive = off 结束恢复时，我们在 “recovery stopping before ... transaction” 日志消息中打印了一个不正确的时间戳（始终为 2000-01-01）。", "title": "在 recovery_target_xid 模式下记录正确的结束时间戳", "commits": ["abe203304"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/15.2/#ZH-AUTO-RELEASE-15-SECT2-32", "source_hash": "46a1c9ec6bf4e56fe8b9fe82198bf246d31ff6cf70352d49f2ef9b6ec21c2702", "section_path": ["变更"], "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 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "b73f652fb79c88c29786d4c502ae03cc", "kind": "equivalent", "version": "14.7", "label": "14.7", "title": "在 recovery_target_xid 模式下记录正确的结束时间戳", "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/#ZH-AUTO-RELEASE-14-SECT2-32"}, {"db_id": "51cb152649f56140bc6a1fbda49f4058", "kind": "equivalent", "version": "13.10", "label": "13.10", "title": "在 recovery_target_xid 模式下记录正确的结束时间戳", "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": "在 recovery_target_xid 模式下记录正确的结束时间戳", "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": "在 recovery_target_xid 模式下记录正确的结束时间戳", "evidence": {"same_day": true, "patch_ids": ["7b3cf07c70ad72c10f0bbc724138aebc"], "statement_hash": "4e2bd5f27e1e54b20d08ba20d0436e23732fee2de2048ff2dcc870b373fa9d39"}, "url": "/docs/compare/?release=11.19#11.19-bebde845085d131d", "source_url": "/docs/release/11.19/#id-1.11.6.8.6"}]}, {"id": "15.2-a071a5627dd9cf41", "cves": [], "html": "<p>改进某些缓冲文件读取失败的错误报告（Peter Eisentraut）<a href=\"https://postgr.es/c/ac01fa647\">§</a></p>\n<p>正确报告短读取，给出期望的字节数和实际读取的字节数，而不是报告一个不相关的错误代码。大多数地方已经正确处理了此问题，但一些最近编写的复制逻辑没有。</p>", "text": "改进某些缓冲文件读取失败的错误报告（Peter Eisentraut）§ 正确报告短读取，给出期望的字节数和实际读取的字节数，而不是报告一个不相关的错误代码。大多数地方已经正确处理了此问题，但一些最近编写的复制逻辑没有。", "title": "改进某些缓冲文件读取失败的错误报告", "commits": ["ac01fa647"], "section": "变更", "category": "improvement", "source_url": "/docs/release/15.2/#ZH-AUTO-RELEASE-15-SECT2-32", "source_hash": "6a52585ab99859f9a8f80a6e11010273e0119c027359a8b6cfdf1c10d7b3b0f3", "section_path": ["变更"], "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": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "6bbfe331c8bd0d5751f0932248de5974", "kind": "equivalent", "version": "14.7", "label": "14.7", "title": "改进某些缓冲文件读取失败的错误报告", "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/#ZH-AUTO-RELEASE-14-SECT2-32"}, {"db_id": "bacb2dc45b0af2b34fb185ce6aa6b534", "kind": "equivalent", "version": "13.10", "label": "13.10", "title": "改进某些缓冲文件读取失败的错误报告", "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>移除 <code>int2vector</code> 和 <code>oidvector</code> 中元素数量的任意限制（Tom Lane）<a href=\"https://postgr.es/c/db9127c58\">§</a></p>\n<p>这些类型的输入函数以前拒绝超过 100 个元素。随着逻辑复制列列表功能的引入，需要接受最多 1600 列的 <code>int2vector</code>，否则长列列表会导致逻辑复制失败。</p>", "text": "移除 int2vector 和 oidvector 中元素数量的任意限制（Tom Lane）§ 这些类型的输入函数以前拒绝超过 100 个元素。随着逻辑复制列列表功能的引入，需要接受最多 1600 列的 int2vector，否则长列列表会导致逻辑复制失败。", "title": "移除 int2vector 和 oidvector 中元素数量的任意限制", "commits": ["db9127c58"], "section": "变更", "category": "improvement", "source_url": "/docs/release/15.2/#ZH-AUTO-RELEASE-15-SECT2-32", "source_hash": "31a3a9dcc1cbd88b9c7b52030d809093497595263a87581cab00c8e1ea4a6e55", "section_path": ["变更"], "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": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "15.2-ecf69316208e3525", "cves": [], "html": "<p>在扩展查询协议中，如果我们正在运行管道，避免在 <code>ANALYZE</code> 之后立即提交（Tom Lane）<a href=\"https://postgr.es/c/18431ee6f\">§</a></p>\n<p>如果没有显式的 <code>BEGIN TRANSACTION</code>，<code>ANALYZE</code> 会自行提交，但这在管道化的命令序列中不应该发生。</p>", "text": "在扩展查询协议中，如果我们正在运行管道，避免在 ANALYZE 之后立即提交（Tom Lane）§ 如果没有显式的 BEGIN TRANSACTION，ANALYZE 会自行提交，但这在管道化的命令序列中不应该发生。", "title": "在扩展查询协议中，如果我们正在运行管道，避免在 ANALYZE 之后立即提交", "commits": ["18431ee6f"], "section": "变更", "category": "improvement", "source_url": "/docs/release/15.2/#ZH-AUTO-RELEASE-15-SECT2-32", "source_hash": "01a1f1ea843782f1d6e84dc88de6e13af8e4ebe6624c218f5b48169232a1a0ac", "section_path": ["变更"], "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": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "8e4a3f510c7507919da683e9c2bad87e", "kind": "equivalent", "version": "14.7", "label": "14.7", "title": "在扩展查询协议中，如果我们正在运行管道，避免在 ANALYZE 之后立即提交", "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/#ZH-AUTO-RELEASE-14-SECT2-32"}, {"db_id": "b5f0691704e44829a3c8810806f3c5d8", "kind": "equivalent", "version": "13.10", "label": "13.10", "title": "在扩展查询协议中，如果我们正在运行管道，避免在 ANALYZE 之后立即提交", "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": "在扩展查询协议中，如果我们正在运行管道，避免在 ANALYZE 之后立即提交", "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": "在扩展查询协议中，如果我们正在运行管道，避免在 ANALYZE 之后立即提交", "evidence": {"same_day": true, "patch_ids": ["c528de62df8050f2444063a3ed325d9a"], "statement_hash": "5d9bded633b3aa87d0c6f4dc557cc269b686684303314ede51a88b5d0451726f"}, "url": "/docs/compare/?release=11.19#11.19-2562a71d01261763", "source_url": "/docs/release/11.19/#id-1.11.6.8.6"}]}, {"id": "15.2-1a2f254299955365", "cves": [], "html": "<p>拒绝长度错误的取消请求包（Andrey Borodin）<a href=\"https://postgr.es/c/b152bb7b2\">§</a></p>\n<p>即使取消请求的长度字段过小，服务器也会处理该请求。这导致读取超出已分配缓冲区的末尾。理论上这可能导致段错误，但在实际中不太可能发生，因为缓冲区需要非常接近内存末尾才会出现。更可能的结果是关于错误后端 PID 或取消码的虚假日志消息。改为对错误的长度发出报告。</p>", "text": "拒绝长度错误的取消请求包（Andrey Borodin）§ 即使取消请求的长度字段过小，服务器也会处理该请求。这导致读取超出已分配缓冲区的末尾。理论上这可能导致段错误，但在实际中不太可能发生，因为缓冲区需要非常接近内存末尾才会出现。更可能的结果是关于错误后端 PID 或取消码的虚假日志消息。改为对错误的长度发出报告。", "title": "拒绝长度错误的取消请求包", "commits": ["b152bb7b2"], "section": "变更", "category": "improvement", "source_url": "/docs/release/15.2/#ZH-AUTO-RELEASE-15-SECT2-32", "source_hash": "d8c4584845cee256a065a3a811e393fd5df8460442955e6322eff222f5946c20", "section_path": ["变更"], "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": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "7fa280ab24f9d5ddd2a56f45d4ffca65", "kind": "equivalent", "version": "14.7", "label": "14.7", "title": "拒绝长度错误的取消请求包", "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/#ZH-AUTO-RELEASE-14-SECT2-32"}, {"db_id": "9debe525460effd204276d88508b491c", "kind": "equivalent", "version": "13.10", "label": "13.10", "title": "拒绝长度错误的取消请求包", "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": "拒绝长度错误的取消请求包", "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": "拒绝长度错误的取消请求包", "evidence": {"same_day": true, "patch_ids": ["4a585c04a8486d7d2d2fc0188102e7f2"], "statement_hash": "5934eb496fa5e338ee30f760357ba25b34ae3381414dec4210b32506b0e779a8"}, "url": "/docs/compare/?release=11.19#11.19-291e57190c6cdfda", "source_url": "/docs/release/11.19/#id-1.11.6.8.6"}]}, {"id": "15.2-dbe50455de687af8", "cves": [], "html": "<p>修复规划器对窗口函数运行条件表达式的预处理疏忽（Richard Guo，David Rowley）<a href=\"https://postgr.es/c/04788ee4c\">§</a></p>\n<p>这可能导致规划器错误，例如 <span>“<span>WindowFunc not found in subplan target lists</span>”</span>。</p>", "text": "修复规划器对窗口函数运行条件表达式的预处理疏忽（Richard Guo，David Rowley）§ 这可能导致规划器错误，例如 “WindowFunc not found in subplan target lists”。", "title": "修复规划器对窗口函数运行条件表达式的预处理疏忽", "commits": ["04788ee4c"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/15.2/#ZH-AUTO-RELEASE-15-SECT2-32", "source_hash": "4d7cf766932f4c9de51d8161a8b7c343a77c89acec4557c4cd3bc08dc76b5d3e", "section_path": ["变更"], "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 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "15.2-0f8090979fa232ad", "cves": [], "html": "<p>修复在执行窗口函数运行条件表达式期间可能的悬挂指针访问（David Rowley）<a href=\"https://postgr.es/c/2a535620c\">§</a></p>\n<p>实际上，由于运行条件优化仅应用于某些恰好都返回 <code>int8</code> 的窗口函数，这仅在 32 位构建上表现为问题。</p>", "text": "修复在执行窗口函数运行条件表达式期间可能的悬挂指针访问（David Rowley）§ 实际上，由于运行条件优化仅应用于某些恰好都返回 int8 的窗口函数，这仅在 32 位构建上表现为问题。", "title": "修复在执行窗口函数运行条件表达式期间可能的悬挂指针访问", "commits": ["2a535620c"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/15.2/#ZH-AUTO-RELEASE-15-SECT2-32", "source_hash": "3496387e48961624d943c4e287dc54f44c67d412a593feae5e52c4de3f771b69", "section_path": ["变更"], "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 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "15.2-5090984861bce8c8", "cves": [], "html": "<p>在子查询提升中增加递归和循环防护（Tom Lane）<a href=\"https://postgr.es/c/1a3daa5bb\">§</a></p>\n<p>一个精心构造的查询可能导致深度递归和过多的时间用于尝试展平子查询。一个正确的修复对于后移来说过于侵入性，但至少我们可以增加堆栈深度检查和中断检查以允许取消查询。</p>", "text": "在子查询提升中增加递归和循环防护（Tom Lane）§ 一个精心构造的查询可能导致深度递归和过多的时间用于尝试展平子查询。一个正确的修复对于后移来说过于侵入性，但至少我们可以增加堆栈深度检查和中断检查以允许取消查询。", "title": "在子查询提升中增加递归和循环防护", "commits": ["1a3daa5bb"], "section": "变更", "category": "improvement", "source_url": "/docs/release/15.2/#ZH-AUTO-RELEASE-15-SECT2-32", "source_hash": "306c8c55580c6df4cd008d270444839f4ad069b8bc3e3e089a6f5bfd62d9e8e6", "section_path": ["变更"], "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": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "fdceeabfdcd8e34505ab07c4d5612bd4", "kind": "equivalent", "version": "14.7", "label": "14.7", "title": "在子查询提升中增加递归和循环防护", "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/#ZH-AUTO-RELEASE-14-SECT2-32"}, {"db_id": "c00645f9f75d71aa6acb6087397460db", "kind": "equivalent", "version": "13.10", "label": "13.10", "title": "在子查询提升中增加递归和循环防护", "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": "在子查询提升中增加递归和循环防护", "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": "在子查询提升中增加递归和循环防护", "evidence": {"same_day": true, "patch_ids": ["36ed289451f3942e317c05bea9704165"], "statement_hash": "b9bcf77ecf301d3825a33e1113dddf8b686f10adf99f609ff924f11fc765071f"}, "url": "/docs/compare/?release=11.19#11.19-d3e7f99bc01f0ae4", "source_url": "/docs/release/11.19/#id-1.11.6.8.6"}]}, {"id": "15.2-37d086b58245cb81", "cves": [], "html": "<p>修复将 Memoize 节点与按分区连接或参数化嵌套循环结合使用时的规划器问题（Richard Guo）<a href=\"https://postgr.es/c/c959f84c2\">§</a> <a href=\"https://postgr.es/c/834d97c32\">§</a></p>\n<p>这些错误可能导致在 Memoize 有用的上下文中未使用它，或者可能导致错误的查询计划。</p>", "text": "修复将 Memoize 节点与按分区连接或参数化嵌套循环结合使用时的规划器问题（Richard Guo）§ § 这些错误可能导致在 Memoize 有用的上下文中未使用它，或者可能导致错误的查询计划。", "title": "修复将 Memoize 节点与按分区连接或参数化嵌套循环结合使用时的规划器问题", "commits": ["834d97c32", "c959f84c2"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/15.2/#ZH-AUTO-RELEASE-15-SECT2-32", "source_hash": "74a6d700f72fa84e3eb4c74184e8076df328ec3dcf1db11f6fa23c016ba7b854", "section_path": ["变更"], "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 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "c0d3ce9372df0afbbb3f47158c0867a0", "kind": "equivalent", "version": "14.7", "label": "14.7", "title": "修复将 Memoize 节点与按分区连接或参数化嵌套循环结合使用时的规划器问题", "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/#ZH-AUTO-RELEASE-14-SECT2-32"}]}, {"id": "15.2-bb867c3ad0f78911", "cves": [], "html": "<p>修复按分区连接代码以容忍无法为每个分区生成计划的情况（Tom Lane）<a href=\"https://postgr.es/c/bf8fd64ff\">§</a></p>\n<p>这可能导致 <span>“<span>could not devise a query plan for the given query</span>”</span> 错误。</p>", "text": "修复按分区连接代码以容忍无法为每个分区生成计划的情况（Tom Lane）§ 这可能导致 “could not devise a query plan for the given query” 错误。", "title": "修复按分区连接代码以容忍无法为每个分区生成计划的情况", "commits": ["bf8fd64ff"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/15.2/#ZH-AUTO-RELEASE-15-SECT2-32", "source_hash": "90e49061dcaaf2e2640337313d58d199fd499d4df7dcd5f89ec12995cbad04f8", "section_path": ["变更"], "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 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "ab574b7f4bc6aa7119791c39e91c1cb7", "kind": "equivalent", "version": "14.7", "label": "14.7", "title": "修复按分区连接代码以容忍无法为每个分区生成计划的情况", "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/#ZH-AUTO-RELEASE-14-SECT2-32"}, {"db_id": "c2b696431dc7120dd5fcf12f4dceb1d2", "kind": "equivalent", "version": "13.10", "label": "13.10", "title": "修复按分区连接代码以容忍无法为每个分区生成计划的情况", "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": "修复按分区连接代码以容忍无法为每个分区生成计划的情况", "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": "修复按分区连接代码以容忍无法为每个分区生成计划的情况", "evidence": {"same_day": true, "patch_ids": ["778506c4256a633d97aea2b3679b38fd"], "statement_hash": "8216c4e7bc70057140e5130801b0779392eedb9ac4b5170e1009a8a85e6962e1"}, "url": "/docs/compare/?release=11.19#11.19-2edf87d2987e7207", "source_url": "/docs/release/11.19/#id-1.11.6.8.6"}]}, {"id": "15.2-11c232831ed252d3", "cves": [], "html": "<p>限制 <code>get_actual_variable_range</code> 执行的清理工作量（Simon Riggs）<a href=\"https://postgr.es/c/2debceed2\">§</a></p>\n<p>在删除大量出现在索引末尾的元组之后立即进行的规划器运行，可能会花费大量工作来设置那些索引条目的 <span>“<span>killed</span>”</span> 位。通过在检查 100 个堆页面后放弃此过程来限制任何一次查询中的工作量。所有清理工作最终仍会完成，但不会出现如此大的性能波动。</p>", "text": "限制 get_actual_variable_range 执行的清理工作量（Simon Riggs）§ 在删除大量出现在索引末尾的元组之后立即进行的规划器运行，可能会花费大量工作来设置那些索引条目的 “killed” 位。通过在检查 100 个堆页面后放弃此过程来限制任何一次查询中的工作量。所有清理工作最终仍会完成，但不会出现如此大的性能波动。", "title": "限制 get_actual_variable_range 执行的清理工作量", "commits": ["2debceed2"], "section": "变更", "category": "improvement", "source_url": "/docs/release/15.2/#ZH-AUTO-RELEASE-15-SECT2-32", "source_hash": "a54c8cf343ecc20a9e4acaf60cce8b9eb15f82e5205535954b2d2977fe31cfb8", "section_path": ["变更"], "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": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "eac86512b06678574c831246bd1c4e1d", "kind": "equivalent", "version": "14.7", "label": "14.7", "title": "限制 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/#ZH-AUTO-RELEASE-14-SECT2-32"}, {"db_id": "3fa3289ac41ba3dae3f215446f66b446", "kind": "equivalent", "version": "13.10", "label": "13.10", "title": "限制 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": "限制 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": "限制 get_actual_variable_range 执行的清理工作量", "evidence": {"same_day": true, "patch_ids": ["f2b427eb4cc159b6f04039f441042743"], "statement_hash": "17ccc82a583063e6823e05dcea86b5110c4e09fc5e94afd1bf4c9b643a32c43c"}, "url": "/docs/compare/?release=11.19#11.19-eddae74d538ff810", "source_url": "/docs/release/11.19/#id-1.11.6.8.6"}]}, {"id": "15.2-75f8a7064b1ab4c0", "cves": [], "html": "<p>防止当关系的 relkind 发生变化时统计机制混淆（Andres Freund）<a href=\"https://postgr.es/c/c6a60471a\">§</a></p>\n<p>将表转换为视图可能导致崩溃或断言失败。</p>", "text": "防止当关系的 relkind 发生变化时统计机制混淆（Andres Freund）§ 将表转换为视图可能导致崩溃或断言失败。", "title": "防止当关系的 relkind 发生变化时统计机制混淆", "commits": ["c6a60471a"], "section": "变更", "category": "improvement", "source_url": "/docs/release/15.2/#ZH-AUTO-RELEASE-15-SECT2-32", "source_hash": "dae589041376d2a591e69ef3b0cdb15cc61d46c0c7fecb6c0fada987e4e84591", "section_path": ["变更"], "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": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "15.2-c722831fdc56cf50", "cves": [], "html": "<p>修复 <code>AT TIME ZONE</code> 构造的括号不足的显示问题（Tom Lane）<a href=\"https://postgr.es/c/a711b36e5\">§</a></p>\n<p>如果 <code>AT TIME ZONE</code> 的参数本身是一个表达式，这可能导致规则或视图的导出/恢复失败。</p>", "text": "修复 AT TIME ZONE 构造的括号不足的显示问题（Tom Lane）§ 如果 AT TIME ZONE 的参数本身是一个表达式，这可能导致规则或视图的导出/恢复失败。", "title": "修复 AT TIME ZONE 构造的括号不足的显示问题", "commits": ["a711b36e5"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/15.2/#ZH-AUTO-RELEASE-15-SECT2-32", "source_hash": "21e07598bf8c9f6b832a2d56df63ff30cf21991134391f05e29f8777dba9fc7e", "section_path": ["变更"], "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 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "65e013eb8fd1e8e96fd539e4dfc57a1a", "kind": "equivalent", "version": "14.7", "label": "14.7", "title": "修复 AT TIME ZONE 构造的括号不足的显示问题", "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/#ZH-AUTO-RELEASE-14-SECT2-32"}]}, {"id": "15.2-e717031f4de7b017", "cves": [], "html": "<p>防止 SQL 函数中工具语句的缓存解析树被覆盖（Tom Lane，Daniel Gustafsson）<a href=\"https://postgr.es/c/5dfc2b753\">§</a></p>\n<p>如果一个 SQL 语言函数在单个调用查询中多次执行同一个工具命令，可能会崩溃或报告诸如 <span>“<span>unrecognized node type</span>”</span> 之类的奇怪错误。</p>", "text": "防止 SQL 函数中工具语句的缓存解析树被覆盖（Tom Lane，Daniel Gustafsson）§ 如果一个 SQL 语言函数在单个调用查询中多次执行同一个工具命令，可能会崩溃或报告诸如 “unrecognized node type” 之类的奇怪错误。", "title": "防止 SQL 函数中工具语句的缓存解析树被覆盖", "commits": ["5dfc2b753"], "section": "变更", "category": "improvement", "source_url": "/docs/release/15.2/#ZH-AUTO-RELEASE-15-SECT2-32", "source_hash": "0f2ba35694496ec718489a509ccc7e484c62ae6330c350a9f55e1498f79f1d81", "section_path": ["变更"], "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": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "5932d72233fb08b740233e17f971dd05", "kind": "equivalent", "version": "14.7", "label": "14.7", "title": "防止 SQL 函数中工具语句的缓存解析树被覆盖", "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/#ZH-AUTO-RELEASE-14-SECT2-32"}]}, {"id": "15.2-e40640d70917b578", "cves": [], "html": "<p>确保在执行短语匹配时可以取消全文检索查询的执行（Tom Lane）<a href=\"https://postgr.es/c/0353db996\">§</a></p>", "text": "确保在执行短语匹配时可以取消全文检索查询的执行（Tom Lane）§", "title": "确保在执行短语匹配时可以取消全文检索查询的执行", "commits": ["0353db996"], "section": "变更", "category": "improvement", "source_url": "/docs/release/15.2/#ZH-AUTO-RELEASE-15-SECT2-32", "source_hash": "deab283692764946220711d7e65ba4ff5209694781aea31022fcb5702a6dd298", "section_path": ["变更"], "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": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "78881f78a9428d46f9ba9a5886ed1e7f", "kind": "equivalent", "version": "14.7", "label": "14.7", "title": "确保在执行短语匹配时可以取消全文检索查询的执行", "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/#ZH-AUTO-RELEASE-14-SECT2-32"}, {"db_id": "74ee2d0de6ba6e2966d178a756911b7c", "kind": "equivalent", "version": "13.10", "label": "13.10", "title": "确保在执行短语匹配时可以取消全文检索查询的执行", "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": "确保在执行短语匹配时可以取消全文检索查询的执行", "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": "确保在执行短语匹配时可以取消全文检索查询的执行", "evidence": {"same_day": true, "patch_ids": ["1a5edb79e8f4a758da21291728407b22"], "statement_hash": "c63c3bbac940f97fe499b5d2686636e41b0fe7f5add1d04c3b3fb9937b7f2911"}, "url": "/docs/compare/?release=11.19#11.19-5e4a75c4f7b337fc", "source_url": "/docs/release/11.19/#id-1.11.6.8.6"}]}, {"id": "15.2-525f43a7a7d4e8fc", "cves": [], "html": "<p>修复在使用非确定性排序规则对字符串进行 hash 运算时的内存泄漏（Jeff Davis）<a href=\"https://postgr.es/c/9377b4f30\">§</a></p>", "text": "修复在使用非确定性排序规则对字符串进行 hash 运算时的内存泄漏（Jeff Davis）§", "title": "修复在使用非确定性排序规则对字符串进行 hash 运算时的内存泄漏", "commits": ["9377b4f30"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/15.2/#ZH-AUTO-RELEASE-15-SECT2-32", "source_hash": "11807a8daf054685c4e3d8caeb6a480dd3581dc374b52217f049a470a87d0d34", "section_path": ["变更"], "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 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "0d55210ee4a7fa82ce3c1e004d22f631", "kind": "equivalent", "version": "14.7", "label": "14.7", "title": "修复在使用非确定性排序规则对字符串进行 hash 运算时的内存泄漏", "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/#ZH-AUTO-RELEASE-14-SECT2-32"}, {"db_id": "143f0cdc057f5d55143b6fd4226c08fa", "kind": "equivalent", "version": "13.10", "label": "13.10", "title": "修复在使用非确定性排序规则对字符串进行 hash 运算时的内存泄漏", "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": "修复在使用非确定性排序规则对字符串进行 hash 运算时的内存泄漏", "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>修复 <code>DROP DATABASE</code> 与逻辑复制工作进程之间的死锁问题（Hou Zhijie）<a href=\"https://postgr.es/c/267135d01\">§</a></p>\n<p>此问题是由在工作进程中创建逻辑复制槽时不当选择阻塞中断引起的。在版本 15 中，这可能导致未被检测到的死锁。在版本 14 中，虽然未观察到死锁，但在等待网络 I/O 时阻塞中断仍然是不好的做法。</p>", "text": "修复 DROP DATABASE 与逻辑复制工作进程之间的死锁问题（Hou Zhijie）§ 此问题是由在工作进程中创建逻辑复制槽时不当选择阻塞中断引起的。在版本 15 中，这可能导致未被检测到的死锁。在版本 14 中，虽然未观察到死锁，但在等待网络 I/O 时阻塞中断仍然是不好的做法。", "title": "修复 DROP DATABASE 与逻辑复制工作进程之间的死锁问题", "commits": ["267135d01"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/15.2/#ZH-AUTO-RELEASE-15-SECT2-32", "source_hash": "83feac6b1028cc71e316370e622723046b43a530ee008eb43e84caf1cd82e7cc", "section_path": ["变更"], "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 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "c6dabc7bbb112e986d361df0ff0df408", "kind": "equivalent", "version": "14.7", "label": "14.7", "title": "修复 DROP DATABASE 与逻辑复制工作进程之间的死锁问题", "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/#ZH-AUTO-RELEASE-14-SECT2-32"}]}, {"id": "15.2-648bbd90e4c3eeeb", "cves": [], "html": "<p>在复制连接尝试失败后清理 <span>libpq</span> 连接对象（Andres Freund）<a href=\"https://postgr.es/c/704a330a9\">§</a></p>\n<p>之前的代码泄漏了连接对象。在后台代码路径中这基本无害，因为调用进程会放弃并退出。但在诸如 <code>CREATE SUBSCRIPTION</code> 等命令中，此类失败会导致少量会话生命周期的内存泄漏。</p>", "text": "在复制连接尝试失败后清理 libpq 连接对象（Andres Freund）§ 之前的代码泄漏了连接对象。在后台代码路径中这基本无害，因为调用进程会放弃并退出。但在诸如 CREATE SUBSCRIPTION 等命令中，此类失败会导致少量会话生命周期的内存泄漏。", "title": "在复制连接尝试失败后清理 libpq 连接对象", "commits": ["704a330a9"], "section": "变更", "category": "improvement", "source_url": "/docs/release/15.2/#ZH-AUTO-RELEASE-15-SECT2-32", "source_hash": "e96daedcffeebc29be7916fde6838c8ddfe169089375b1a04f11e4460c5ba53a", "section_path": ["变更"], "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": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "018f120d1afdec97a0946aabe153abaa", "kind": "equivalent", "version": "14.7", "label": "14.7", "title": "在复制连接尝试失败后清理 libpq 连接对象", "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/#ZH-AUTO-RELEASE-14-SECT2-32"}, {"db_id": "cfd32cfe4153f088fa9ecd7fcee2fecd", "kind": "equivalent", "version": "13.10", "label": "13.10", "title": "在复制连接尝试失败后清理 libpq 连接对象", "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": "在复制连接尝试失败后清理 libpq 连接对象", "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": "在复制连接尝试失败后清理 libpq 连接对象", "evidence": {"same_day": true, "patch_ids": ["b975fa7579145e109e4a16d43bd51a28"], "statement_hash": "7f34441e1f8e5031d415641848e8bcd827c0ad95320f0ce2362aa31a39e52b96"}, "url": "/docs/compare/?release=11.19#11.19-9ed9963a4f296916", "source_url": "/docs/release/11.19/#id-1.11.6.8.6"}]}, {"id": "15.2-31a388936be1c2ca", "cves": [], "html": "<p>在热备服务器中，减少跟踪主库上已知活跃 XID 的处理开销（Simon Riggs，Michail Nikolaev）<a href=\"https://postgr.es/c/55fa993d7\">§</a></p>\n<p>对 KnownAssignedXids 数组清理不够积极可能导致性能下降，特别是在备库上 <code>max_connections</code> 设置较大时。</p>", "text": "在热备服务器中，减少跟踪主库上已知活跃 XID 的处理开销（Simon Riggs，Michail Nikolaev）§ 对 KnownAssignedXids 数组清理不够积极可能导致性能下降，特别是在备库上 max_connections 设置较大时。", "title": "在热备服务器中，减少跟踪主库上已知活跃 XID 的处理开销", "commits": ["55fa993d7"], "section": "变更", "category": "improvement", "source_url": "/docs/release/15.2/#ZH-AUTO-RELEASE-15-SECT2-32", "source_hash": "25dd4cb8878eae871e7b55739e1f81c696c7a254dd9e184fe562ed4eae0c4234", "section_path": ["变更"], "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": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "14736c220452b834b7d66bd1aa83f3e2", "kind": "equivalent", "version": "14.7", "label": "14.7", "title": "在热备服务器中，减少跟踪主库上已知活跃 XID 的处理开销", "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/#ZH-AUTO-RELEASE-14-SECT2-32"}, {"db_id": "0ae94d8ad1e9a5b05ad5289f5bb23b06", "kind": "equivalent", "version": "13.10", "label": "13.10", "title": "在热备服务器中，减少跟踪主库上已知活跃 XID 的处理开销", "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": "在热备服务器中，减少跟踪主库上已知活跃 XID 的处理开销", "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": "在热备服务器中，减少跟踪主库上已知活跃 XID 的处理开销", "evidence": {"same_day": true, "patch_ids": ["fef0d172d23db583d075ca6f70468fb7"], "statement_hash": "4ce28c70c5de9b89726a7ab817fa3e48bedd49e4b5d6a0fc72a68b3feef1ca70"}, "url": "/docs/compare/?release=11.19#11.19-964ee361f17f037c", "source_url": "/docs/release/11.19/#id-1.11.6.8.6"}]}, {"id": "15.2-9f8a6bab6cb70538", "cves": [], "html": "<p>在确定最旧的目录 xmin 时忽略已失效的逻辑复制槽（Sirisha Chamarthi）<a href=\"https://postgr.es/c/1ad033df1\">§</a></p>\n<p>复制槽即使在因超过 <code>max_slot_wal_keep_size</code> 而变为失效之后，仍可能阻止系统目录中死元组的清理。因此，复制消费者的故障可能导致无限增长的目录膨胀。</p>", "text": "在确定最旧的目录 xmin 时忽略已失效的逻辑复制槽（Sirisha Chamarthi）§ 复制槽即使在因超过 max_slot_wal_keep_size 而变为失效之后，仍可能阻止系统目录中死元组的清理。因此，复制消费者的故障可能导致无限增长的目录膨胀。", "title": "在确定最旧的目录 xmin 时忽略已失效的逻辑复制槽", "commits": ["1ad033df1"], "section": "变更", "category": "improvement", "source_url": "/docs/release/15.2/#ZH-AUTO-RELEASE-15-SECT2-32", "source_hash": "634fb616a1ba81a47ce5a0d4a5aa24146d1e494a620c066fe7eff98eb0b02735", "section_path": ["变更"], "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": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "c2934003c083b224e444d288a90cb04a", "kind": "equivalent", "version": "14.7", "label": "14.7", "title": "在确定最旧的目录 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/#ZH-AUTO-RELEASE-14-SECT2-32"}, {"db_id": "8301c3b1094c744bdd98d47b1c11162c", "kind": "equivalent", "version": "13.10", "label": "13.10", "title": "在确定最旧的目录 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>在逻辑解码中，当检测到事务已崩溃时通知远程节点（Hou Zhijie）<a href=\"https://postgr.es/c/18b81258a\">§</a></p>\n<p>在服务器重启后，我们将重新流式传输重启前不久发生的事务的变更。其中一些事务可能从未完成；当我们发现某个事务未完成时，我们在本地丢弃了相关的解码状态，但忽略了通知订阅者。这导致订阅者保留无用的流式文件，直到下次重启。</p>", "text": "在逻辑解码中，当检测到事务已崩溃时通知远程节点（Hou Zhijie）§ 在服务器重启后，我们将重新流式传输重启前不久发生的事务的变更。其中一些事务可能从未完成；当我们发现某个事务未完成时，我们在本地丢弃了相关的解码状态，但忽略了通知订阅者。这导致订阅者保留无用的流式文件，直到下次重启。", "title": "在逻辑解码中，当检测到事务已崩溃时通知远程节点", "commits": ["18b81258a"], "section": "变更", "category": "improvement", "source_url": "/docs/release/15.2/#ZH-AUTO-RELEASE-15-SECT2-32", "source_hash": "e2cdec34e99853499220852c0c254b1c704a700b9dd6f0a0ecc425c3385d5ae5", "section_path": ["变更"], "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": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "f732d611cd29941389c127553a73e2e4", "kind": "equivalent", "version": "14.7", "label": "14.7", "title": "在逻辑解码中，当检测到事务已崩溃时通知远程节点", "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/#ZH-AUTO-RELEASE-14-SECT2-32"}]}, {"id": "15.2-1bb0cfb2b80f606f", "cves": [], "html": "<p>修复逻辑解码中使用未初始化内存的问题（Masahiko Sawada）<a href=\"https://postgr.es/c/898ef41bf\">§</a></p>\n<p>在某些情况下，恢复逻辑解码可能会尝试重新使用已释放的 XID 数据，导致不可预测的行为。</p>", "text": "修复逻辑解码中使用未初始化内存的问题（Masahiko Sawada）§ 在某些情况下，恢复逻辑解码可能会尝试重新使用已释放的 XID 数据，导致不可预测的行为。", "title": "修复逻辑解码中使用未初始化内存的问题", "commits": ["898ef41bf"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/15.2/#ZH-AUTO-RELEASE-15-SECT2-32", "source_hash": "1b9cbbcd9a6b0df37279683db1d0a52bab2018275b5d654b94c44dce6f0a7a93", "section_path": ["变更"], "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 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "b08faea01215327f884c599883bd13d7", "kind": "equivalent", "version": "14.7", "label": "14.7", "title": "修复逻辑解码中使用未初始化内存的问题", "evidence": {"same_day": true, "patch_ids": ["54ae1dac7cc0c91279a50506dad9db29"], "statement_hash": "61b7e58053ccddb68e539c63541bd6b8102b98c9b55ce16574ca08224f578de7"}, "url": "/docs/compare/?release=14.7#14.7-1bb0cfb2b80f606f", "source_url": "/docs/release/14.7/#ZH-AUTO-RELEASE-14-SECT2-32"}, {"db_id": "e9cf78d160177f53cbb57d9190944115", "kind": "equivalent", "version": "13.10", "label": "13.10", "title": "修复逻辑解码中未初始化内存的使用", "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": "修复逻辑解码中未初始化内存的使用", "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": "修复逻辑解码中未初始化内存的使用", "evidence": {"same_day": true, "patch_ids": ["54ae1dac7cc0c91279a50506dad9db29"], "statement_hash": "61b7e58053ccddb68e539c63541bd6b8102b98c9b55ce16574ca08224f578de7"}, "url": "/docs/compare/?release=11.19#11.19-6661b5197c03df5c", "source_url": "/docs/release/11.19/#id-1.11.6.8.6"}]}, {"id": "15.2-ac1b5fc07240a109", "cves": [], "html": "<p>在逻辑解码上下文创建期间更新共享状态时获取自旋锁（Masahiko Sawada）<a href=\"https://postgr.es/c/6f25e4877\">§</a></p>\n<p>我们在更新两阶段事务的数据时忽略了获取适当的锁，这可能允许其他进程看到不一致的数据。</p>", "text": "在逻辑解码上下文创建期间更新共享状态时获取自旋锁（Masahiko Sawada）§ 我们在更新两阶段事务的数据时忽略了获取适当的锁，这可能允许其他进程看到不一致的数据。", "title": "在逻辑解码上下文创建期间更新共享状态时获取自旋锁", "commits": ["6f25e4877"], "section": "变更", "category": "improvement", "source_url": "/docs/release/15.2/#ZH-AUTO-RELEASE-15-SECT2-32", "source_hash": "6ec68b2164e30a99eb8bb61c48006fb4dfd6456a6826f6c68ad06b270b96aac6", "section_path": ["变更"], "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": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "15.2-bcf1873adb8688e0", "cves": [], "html": "<p>修复 <span>pgoutput</span> 复制插件，使其不发送未列在表的复制列列表中的列（Hou Zhijie）<a href=\"https://postgr.es/c/ebf87c019\">§</a></p>\n<p><code>UPDATE</code> 和 <code>DELETE</code> 事件没有注意配置的列列表，因此发送了比预期更多的数据。当接收者是我们内置的逻辑复制代码时这不会造成问题，但它可能会使其他接收者混淆，并且在任何情况下都浪费了网络带宽。</p>", "text": "修复 pgoutput 复制插件，使其不发送未列在表的复制列列表中的列（Hou Zhijie）§ UPDATE 和 DELETE 事件没有注意配置的列列表，因此发送了比预期更多的数据。当接收者是我们内置的逻辑复制代码时这不会造成问题，但它可能会使其他接收者混淆，并且在任何情况下都浪费了网络带宽。", "title": "修复 pgoutput 复制插件，使其不发送未列在表的复制列列表中的列", "commits": ["ebf87c019"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/15.2/#ZH-AUTO-RELEASE-15-SECT2-32", "source_hash": "248592642ffda03cce48a93529b4eeafa5ac596bf0e28b56b2c1cc5a58070fb3", "section_path": ["变更"], "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 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "15.2-b73926495d107415", "cves": [], "html": "<p>避免在 WAL 重放 hash 索引页面分裂操作期间出现罕见的 <span>“<span>failed to acquire cleanup lock</span>”</span> 恐慌（Robert Haas）<a href=\"https://postgr.es/c/e49e19181\">§</a></p>", "text": "避免在 WAL 重放 hash 索引页面分裂操作期间出现罕见的 “failed to acquire cleanup lock” 恐慌（Robert Haas）§", "title": "避免在 WAL 重放 hash 索引页面分裂操作期间出现罕见的 “failed to acquire cleanup lock” 恐慌", "commits": ["e49e19181"], "section": "变更", "category": "improvement", "source_url": "/docs/release/15.2/#ZH-AUTO-RELEASE-15-SECT2-32", "source_hash": "9a98cd3a760f0d5ab64bad669f99b8103d5cc612ee50cf46bb143d541d34a2e8", "section_path": ["变更"], "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": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "d44c8ce2360017200c118db7150b0959", "kind": "equivalent", "version": "14.7", "label": "14.7", "title": "避免在 WAL 重放 hash 索引页面分裂操作期间出现罕见的 “failed to acquire cleanup lock” 恐慌", "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/#ZH-AUTO-RELEASE-14-SECT2-32"}, {"db_id": "0849b78754a69b45ba04b17b85d6ee62", "kind": "equivalent", "version": "13.10", "label": "13.10", "title": "避免在 WAL 重放 hash 索引页面分裂操作期间出现罕见的 “failed to acquire cleanup lock” 恐慌", "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": "避免在 WAL 重放 hash 索引页面分裂操作期间出现罕见的 “failed to acquire cleanup lock” 恐慌", "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": "避免在 WAL 重放 hash 索引页面分裂操作期间出现罕见的 “failed to acquire cleanup lock” 恐慌", "evidence": {"same_day": true, "patch_ids": ["29854d45521ee2080e21ddcc93e498ff"], "statement_hash": "32cef32f2614309c1259caad8eeca4837594d3a359325052fb6751bf4729f6ab"}, "url": "/docs/compare/?release=11.19#11.19-42eeb3cefd007b01", "source_url": "/docs/release/11.19/#id-1.11.6.8.6"}]}, {"id": "15.2-1b81bbf9b853920b", "cves": [], "html": "<p>在 WAL 重放期间设置堆页面的 all-visible 位时推进页面的 LSN（Jeff Davis）<a href=\"https://postgr.es/c/7bf713dd2\">§</a></p>\n<p>未能这样做会导致备库上的页面可能与主库不同，并违反了关于 LSN 何时更改的其他预期。就 <span>PostgreSQL</span> 本身而言，这似乎只是一个理论上的隐患，但可能影响第三方工具。</p>", "text": "在 WAL 重放期间设置堆页面的 all-visible 位时推进页面的 LSN（Jeff Davis）§ 未能这样做会导致备库上的页面可能与主库不同，并违反了关于 LSN 何时更改的其他预期。就 PostgreSQL 本身而言，这似乎只是一个理论上的隐患，但可能影响第三方工具。", "title": "在 WAL 重放期间设置堆页面的 all-visible 位时推进页面的 LSN", "commits": ["7bf713dd2"], "section": "变更", "category": "improvement", "source_url": "/docs/release/15.2/#ZH-AUTO-RELEASE-15-SECT2-32", "source_hash": "bc5ac2d2fb28483c18b35178705232cdf4f5ebd9f4a3616f84bec3ba7ef6f681", "section_path": ["变更"], "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": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "0a52af951983fba9bfed60788718abce", "kind": "equivalent", "version": "14.7", "label": "14.7", "title": "在 WAL 重放期间设置堆页面的 all-visible 位时推进页面的 LSN", "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/#ZH-AUTO-RELEASE-14-SECT2-32"}, {"db_id": "d08b648a27abdbdb17fdafeb4c59538c", "kind": "equivalent", "version": "13.10", "label": "13.10", "title": "在 WAL 重放期间设置堆页面的 all-visible 位时推进页面的 LSN", "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": "在 WAL 重放期间设置堆页面的 all-visible 位时推进页面的 LSN", "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": "在 WAL 重放期间设置堆页面的 all-visible 位时推进页面的 LSN", "evidence": {"same_day": true, "patch_ids": ["f87c1cf9570073e580dbf6ed653b9355"], "statement_hash": "b7a250eff9f5d0b0df14c972ca79c74303b915933c3a21c300fb558c6bfbe03c"}, "url": "/docs/compare/?release=11.19#11.19-2d34cd6b4b4f5ffe", "source_url": "/docs/release/11.19/#id-1.11.6.8.6"}]}, {"id": "15.2-6dc5a4242f65ad0d", "cves": [], "html": "<p>修复 <code>int64_div_fast_to_numeric()</code> 以适用于更广范围的输入（Dean Rasheed）<a href=\"https://postgr.es/c/4f74741a5\">§</a></p>\n<p>该函数对其第二个参数的某些值表现异常。核心 <span>PostgreSQL</span> 中没有此类用法，但这对外部模块来说显然是一个隐患，因此予以修复。</p>", "text": "修复 int64_div_fast_to_numeric() 以适用于更广范围的输入（Dean Rasheed）§ 该函数对其第二个参数的某些值表现异常。核心 PostgreSQL 中没有此类用法，但这对外部模块来说显然是一个隐患，因此予以修复。", "title": "修复 int64_div_fast_to_numeric() 以适用于更广范围的输入", "commits": ["4f74741a5"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/15.2/#ZH-AUTO-RELEASE-15-SECT2-32", "source_hash": "d8d4ca6f513ae973d8552537dd96c6f24d12a22c116deafb1d3d74fed9be2090", "section_path": ["变更"], "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 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "5e687e0a73382f6feca9a6ca47c6cd56", "kind": "equivalent", "version": "14.7", "label": "14.7", "title": "修复 int64_div_fast_to_numeric() 以适用于更广范围的输入", "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/#ZH-AUTO-RELEASE-14-SECT2-32"}]}, {"id": "15.2-4ea8bc16de75f44b", "cves": [], "html": "<p>修复 <code>WaitEventSet</code> 逻辑中的潜在缓冲区溢出问题（Thomas Munro）<a href=\"https://postgr.es/c/8a98523a5\">§</a></p>\n<p>基于 <code>epoll</code> 和 <code>kqueue</code> 的实现，在其内部缓冲区大小与调用者输出缓冲区大小不同时，可能向内核请求过多的事件。该情况在已发布的 <span>PostgreSQL</span> 版本中尚未出现，但此错误对外部模块和未来的错误修复构成隐患。</p>", "text": "修复 WaitEventSet 逻辑中的潜在缓冲区溢出问题（Thomas Munro）§ 基于 epoll 和 kqueue 的实现，在其内部缓冲区大小与调用者输出缓冲区大小不同时，可能向内核请求过多的事件。该情况在已发布的 PostgreSQL 版本中尚未出现，但此错误对外部模块和未来的错误修复构成隐患。", "title": "修复 WaitEventSet 逻辑中的潜在缓冲区溢出问题", "commits": ["8a98523a5"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/15.2/#ZH-AUTO-RELEASE-15-SECT2-32", "source_hash": "36a562e630221df948b26e9f4b8f4d27de92a93251b9e2e69600249fb73d696d", "section_path": ["变更"], "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 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "0f596409dcb395be7095081ed489ea89", "kind": "equivalent", "version": "14.7", "label": "14.7", "title": "修复 WaitEventSet 逻辑中的潜在缓冲区溢出问题", "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/#ZH-AUTO-RELEASE-14-SECT2-32"}, {"db_id": "61be44c8d0cb1b219b744a318ca1fd9c", "kind": "equivalent", "version": "13.10", "label": "13.10", "title": "修复 WaitEventSet 逻辑中的潜在缓冲区溢出问题", "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": "修复 WaitEventSet 逻辑中的潜在缓冲区溢出问题", "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": "修复 WaitEventSet 逻辑中的潜在缓冲区溢出问题", "evidence": {"same_day": true, "patch_ids": ["96504de7db65a2507dfaef78eb0e1e82"], "statement_hash": "3de15e46ff12d3892528fa27b902b0749c64f7fd2f0cd23c1df9ec3c05903f60"}, "url": "/docs/compare/?release=11.19#11.19-8e1b088edc5d5b5f", "source_url": "/docs/release/11.19/#id-1.11.6.8.6"}]}, {"id": "15.2-881f4c0b620ee19d", "cves": [], "html": "<p>避免在 32 位构建中访问共享内存时出现名义上的未定义行为（Andres Freund）<a href=\"https://postgr.es/c/a0d35ebcc\">§</a></p>\n<p>clang 的未定义行为检测器对使用对齐不足的指针发出了警告。这在非调试构建中不太可能造成问题，但为了测试目的值得修复。</p>", "text": "避免在 32 位构建中访问共享内存时出现名义上的未定义行为（Andres Freund）§ clang 的未定义行为检测器对使用对齐不足的指针发出了警告。这在非调试构建中不太可能造成问题，但为了测试目的值得修复。", "title": "避免在 32 位构建中访问共享内存时出现名义上的未定义行为", "commits": ["a0d35ebcc"], "section": "变更", "category": "improvement", "source_url": "/docs/release/15.2/#ZH-AUTO-RELEASE-15-SECT2-32", "source_hash": "a4cb5b2a7870b26b363c8de5bfd7f1ab4b517b178ffe09a63f59bbcef62a2779", "section_path": ["变更"], "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": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "43edb0cdb5fccf8270172256c2daedc3", "kind": "equivalent", "version": "14.7", "label": "14.7", "title": "避免在 32 位构建中访问共享内存时出现名义上的未定义行为", "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/#ZH-AUTO-RELEASE-14-SECT2-32"}, {"db_id": "016d79a9082f87912ace0132d1514cfb", "kind": "equivalent", "version": "13.10", "label": "13.10", "title": "避免在 32 位构建中访问共享内存时出现名义上的未定义行为", "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": "避免在 32 位构建中访问共享内存时出现名义上的未定义行为", "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": "避免在 32 位构建中访问共享内存时出现名义上的未定义行为", "evidence": {"same_day": true, "patch_ids": ["976a856dfb8144e65dc98e67319fa5e3"], "statement_hash": "e3efaba28490e51c8142b16232c30beaf7c61be065def1fdad6cfa554f21d483"}, "url": "/docs/compare/?release=11.19#11.19-401896bd44c05a71", "source_url": "/docs/release/11.19/#id-1.11.6.8.6"}]}, {"id": "15.2-a4ccb583e902b881", "cves": [], "html": "<p>修复 BRIN minmax-multi 操作符类中的断言失败（Tomas Vondra）<a href=\"https://postgr.es/c/c4f64cfab\">§</a></p>\n<p>该断言过于严格，因此此错误在非断言构建中是无害的。</p>", "text": "修复 BRIN minmax-multi 操作符类中的断言失败（Tomas Vondra）§ 该断言过于严格，因此此错误在非断言构建中是无害的。", "title": "修复 BRIN minmax-multi 操作符类中的断言失败", "commits": ["c4f64cfab"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/15.2/#ZH-AUTO-RELEASE-15-SECT2-32", "source_hash": "6f97ff836553a522ee87be3a1d45b1c23af7f4870d245e4e2a5e6924c942aa64", "section_path": ["变更"], "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 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "ff4dcd89ded477032c44549fa8794445", "kind": "equivalent", "version": "14.7", "label": "14.7", "title": "修复 BRIN minmax-multi 操作符类中的断言失败", "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/#ZH-AUTO-RELEASE-14-SECT2-32"}]}, {"id": "15.2-eec88e52a646ccef", "cves": [], "html": "<p>移除无用的 RESULT-RTE 优化逻辑中的错误断言（Tom Lane）<a href=\"https://postgr.es/c/556c0b913\">§</a></p>", "text": "移除无用的 RESULT-RTE 优化逻辑中的错误断言（Tom Lane）§", "title": "移除无用的 RESULT-RTE 优化逻辑中的错误断言", "commits": ["556c0b913"], "section": "变更", "category": "improvement", "source_url": "/docs/release/15.2/#ZH-AUTO-RELEASE-15-SECT2-32", "source_hash": "b22d98dcbaa9a4ecffb2014251b78c1029f1cabe6e5f342b7447b5f908be4d24", "section_path": ["变更"], "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": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "970ef9a05690a1680569a5acd35118a4", "kind": "equivalent", "version": "14.7", "label": "14.7", "title": "移除无用的 RESULT-RTE 优化逻辑中的错误断言", "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/#ZH-AUTO-RELEASE-14-SECT2-32"}, {"db_id": "201f3f89e807b9a5b51320b5ecdc4250", "kind": "equivalent", "version": "13.10", "label": "13.10", "title": "移除无用的 RESULT-RTE 优化逻辑中的错误断言", "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": "移除无用的 RESULT-RTE 优化逻辑中的错误断言", "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>修复 ACL 检查中缓存查找失败消息的复制粘贴错误（Justin Pryzby）<a href=\"https://postgr.es/c/e3897a3a4\">§</a></p>\n<p>原则上这些错误应该永远不会触发。但如果触发了，其中一些会报告错误类型的对象。</p>", "text": "修复 ACL 检查中缓存查找失败消息的复制粘贴错误（Justin Pryzby）§ 原则上这些错误应该永远不会触发。但如果触发了，其中一些会报告错误类型的对象。", "title": "修复 ACL 检查中缓存查找失败消息的复制粘贴错误", "commits": ["e3897a3a4"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/15.2/#ZH-AUTO-RELEASE-15-SECT2-32", "source_hash": "da7bf8c344e36c4f62b2f3a8d109589ee769be54364f200a7291f1a070355fe0", "section_path": ["变更"], "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 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "20a860f1e7551d1458908dc95a480324", "kind": "equivalent", "version": "14.7", "label": "14.7", "title": "修复 ACL 检查中缓存查找失败消息的复制粘贴错误", "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/#ZH-AUTO-RELEASE-14-SECT2-32"}, {"db_id": "0b310f52b5402717e772cd7cc9f18573", "kind": "equivalent", "version": "13.10", "label": "13.10", "title": "修复 ACL 检查中缓存查找失败消息的复制粘贴错误", "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": "修复 ACL 检查中缓存查找失败消息的复制粘贴错误", "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": "修复 ACL 检查中缓存查找失败消息的复制粘贴错误", "evidence": {"same_day": true, "patch_ids": ["5f2d7f04390e7331c118a61d5827a14c"], "statement_hash": "db3b9620dd1b93003cb7ee4f4c950583143a13f74259b5013509bbd747c528d3"}, "url": "/docs/compare/?release=11.19#11.19-055d2165a1fec5c1", "source_url": "/docs/release/11.19/#id-1.11.6.8.6"}]}, {"id": "15.2-36b2b8f1c3c64629", "cves": [], "html": "<p>修复 <span>pg_basebackup</span> 中非常大的表空间映射文件可能损坏的问题（Antonin Houska）<a href=\"https://postgr.es/c/8b5ba2f3f\">§</a></p>", "text": "修复 pg_basebackup 中非常大的表空间映射文件可能损坏的问题（Antonin Houska）§", "title": "修复 pg_basebackup 中非常大的表空间映射文件可能损坏的问题", "commits": ["8b5ba2f3f"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/15.2/#ZH-AUTO-RELEASE-15-SECT2-32", "source_hash": "d4c0afc8c921a0711c1469cab382a542652d62e4a7f7388e4143850969ebe820", "section_path": ["变更"], "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 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "15.2-efdf77fc3e9215e0", "cves": [], "html": "<p>避免 <span>pg_dump</span> 在 <code>--if-exists</code> 模式下的无害警告（Tom Lane）<a href=\"https://postgr.es/c/488e89bf7\">§</a></p>\n<p>如果 <code>public</code> 模式有一个非默认的所有者，则使用 <span>pg_dump</span> 的 <code>--if-exists</code> 选项会产生警告消息 <span>“<span>warning: could not find where to insert IF EXISTS in statement \"-- *not* dropping schema, since initdb creates it\"</span>”</span>。不过导出输出是正确的。</p>", "text": "避免 pg_dump 在 --if-exists 模式下的无害警告（Tom Lane）§ 如果 public 模式有一个非默认的所有者，则使用 pg_dump 的 --if-exists 选项会产生警告消息 “warning: could not find where to insert IF EXISTS in statement \"-- *not* dropping schema, since initdb creates it\"”。不过导出输出是正确的。", "title": "避免 pg_dump 在 --if-exists 模式下的无害警告", "commits": ["488e89bf7"], "section": "变更", "category": "improvement", "source_url": "/docs/release/15.2/#ZH-AUTO-RELEASE-15-SECT2-32", "source_hash": "effcd6e424fa2aa62ab5f3a68bb4e4deb5126a7396d7cb57fe3d1926b725a816", "section_path": ["变更"], "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": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "15.2-e5dfb4e510f73e41", "cves": [], "html": "<p>修复 <span>psql</span> 的 <code>\\sf</code> 和 <code>\\ef</code> 命令以处理具有 <acronym>SQL</acronym> 标准函数体的 SQL 语言函数（Tom Lane）<a href=\"https://postgr.es/c/97299cf99\">§</a></p>\n<p>当函数体使用新式语法时，这些命令错误识别了函数体的起始位置。</p>", "text": "修复 psql 的 \\sf 和 \\ef 命令以处理具有 SQL 标准函数体的 SQL 语言函数（Tom Lane）§ 当函数体使用新式语法时，这些命令错误识别了函数体的起始位置。", "title": "修复 psql 的 \\sf 和 \\ef 命令以处理具有 SQL 标准函数体的 SQL 语言函数", "commits": ["97299cf99"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/15.2/#ZH-AUTO-RELEASE-15-SECT2-32", "source_hash": "dda791694e40021c749bc24f148db78b495318563a3f790d879292e78648560b", "section_path": ["变更"], "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 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "3ecf14fb94d92ffd52d323ce238d6582", "kind": "equivalent", "version": "14.7", "label": "14.7", "title": "修复 psql 的 \\sf 和 \\ef 命令以处理具有 SQL 标准函数体的 SQL 语言函数", "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/#ZH-AUTO-RELEASE-14-SECT2-32"}]}, {"id": "15.2-f128f841053357c5", "cves": [], "html": "<p>修复 <code>ALTER FUNCTION/PROCEDURE/ROUTINE</code> ... <code>SET SCHEMA</code> 的 Tab 补全（Dean Rasheed）<a href=\"https://postgr.es/c/2daf4664c\">§</a></p>", "text": "修复 ALTER FUNCTION/PROCEDURE/ROUTINE ... SET SCHEMA 的 Tab 补全（Dean Rasheed）§", "title": "修复 ALTER FUNCTION/PROCEDURE/ROUTINE ... SET SCHEMA 的 Tab 补全", "commits": ["2daf4664c"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/15.2/#ZH-AUTO-RELEASE-15-SECT2-32", "source_hash": "2adfe360e9e4226970369419f49312df480aeee443c381fb5a01ecb5de88bd68", "section_path": ["变更"], "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 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "698b6a7133aeda514d60183624c972a8", "kind": "equivalent", "version": "14.7", "label": "14.7", "title": "修复 ALTER FUNCTION/PROCEDURE/ROUTINE ... SET SCHEMA 的 Tab 补全", "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/#ZH-AUTO-RELEASE-14-SECT2-32"}, {"db_id": "8db16af2aa4bbdb006a0aaeeae057b80", "kind": "equivalent", "version": "13.10", "label": "13.10", "title": "修复 ALTER FUNCTION/PROCEDURE/ROUTINE ... SET SCHEMA 的 Tab 补全", "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": "修复 ALTER FUNCTION/PROCEDURE/ROUTINE ... SET SCHEMA 的 Tab 补全", "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": "修复 ALTER FUNCTION/PROCEDURE/ROUTINE ... SET SCHEMA 的 Tab 补全", "evidence": {"same_day": true, "patch_ids": ["0ece8fa8832142f62e8b830b6d1098b7"], "statement_hash": "a0a4c71b58508782bb347475081236d0e81c8fedc95e4f7434228f38e307cf06"}, "url": "/docs/compare/?release=11.19#11.19-8e12292de4a2f929", "source_url": "/docs/release/11.19/#id-1.11.6.8.6"}]}, {"id": "15.2-53c7e0a5cab2b102", "cves": [], "html": "<p>更新 <code>contrib/pageinspect</code> 以将其磁盘访问函数标记为 <code>PARALLEL RESTRICTED</code>（Tom Lane）<a href=\"https://postgr.es/c/b8988cf1d\">§</a></p>\n<p>这避免了在使用这些函数之一检查临时表时可能出现的失败，因为会话的临时表无法从并行工作进程访问。</p>", "text": "更新 contrib/pageinspect 以将其磁盘访问函数标记为 PARALLEL RESTRICTED（Tom Lane）§ 这避免了在使用这些函数之一检查临时表时可能出现的失败，因为会话的临时表无法从并行工作进程访问。", "title": "更新 contrib/pageinspect 以将其磁盘访问函数标记为 PARALLEL RESTRICTED", "commits": ["b8988cf1d"], "section": "变更", "category": "improvement", "source_url": "/docs/release/15.2/#ZH-AUTO-RELEASE-15-SECT2-32", "source_hash": "692d860fbcccf4ae68912c5fec8ccb8560c8a91bd584309054234b5623f86389", "section_path": ["变更"], "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": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "15.2-7d9562ae3b71b57b", "cves": [], "html": "<p>修复 <code>contrib/seg</code> 在输入数字超过 127 位时不再崩溃或输出垃圾数据（Tom Lane）<a href=\"https://postgr.es/c/b87037b37\">§</a></p>", "text": "修复 contrib/seg 在输入数字超过 127 位时不再崩溃或输出垃圾数据（Tom Lane）§", "title": "修复 contrib/seg 在输入数字超过 127 位时不再崩溃或输出垃圾数据", "commits": ["b87037b37"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/15.2/#ZH-AUTO-RELEASE-15-SECT2-32", "source_hash": "3a559bfffe7f1c55be5b0985d414c31e2c82810977dd3da78dc57f477a610ff9", "section_path": ["变更"], "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 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "ff36883654c1a2a04c254db9d098c8d3", "kind": "equivalent", "version": "14.7", "label": "14.7", "title": "修复 contrib/seg 在输入数字超过 127 位时不再崩溃或输出垃圾数据", "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/#ZH-AUTO-RELEASE-14-SECT2-32"}, {"db_id": "62afe205593355461337caae647c5fe7", "kind": "equivalent", "version": "13.10", "label": "13.10", "title": "修复 contrib/seg 在输入数字超过 127 位时不再崩溃或输出垃圾数据", "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": "修复 contrib/seg 在输入数字超过 127 位时不再崩溃或输出垃圾数据", "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": "修复 contrib/seg 在输入数字超过 127 位时不再崩溃或输出垃圾数据", "evidence": {"same_day": true, "patch_ids": ["2e0dc1431c9c51650569fb297e7e0c1f"], "statement_hash": "77e4c5a0c67ffe3338fdd1878a569a9650a89ef3ef44f940058fdd2cc4190ad9"}, "url": "/docs/compare/?release=11.19#11.19-ab1cb3a44edf2571", "source_url": "/docs/release/11.19/#id-1.11.6.8.6"}]}, {"id": "15.2-ff3d4478793b43e5", "cves": [], "html": "<p>修复在 Microsoft Visual Studio 2013 上的构建问题（Tom Lane）<a href=\"https://postgr.es/c/576506303\">§</a></p>\n<p>之前的补丁假设所有相关平台都有 <code>snprintf()</code>，但 MSVC 2013 尚未完全支持。在该平台上恢复使用 <code>sprintf()</code>。</p>", "text": "修复在 Microsoft Visual Studio 2013 上的构建问题（Tom Lane）§ 之前的补丁假设所有相关平台都有 snprintf()，但 MSVC 2013 尚未完全支持。在该平台上恢复使用 sprintf()。", "title": "修复在 Microsoft Visual Studio 2013 上的构建问题", "commits": ["576506303"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/15.2/#ZH-AUTO-RELEASE-15-SECT2-32", "source_hash": "386a08fa597b06d2f056a83a849046e4a6924515bbed180290833cd34e39a54b", "section_path": ["变更"], "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 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "db1d269845b626ed2dc7f62189fe0cad", "kind": "equivalent", "version": "14.7", "label": "14.7", "title": "修复在 Microsoft Visual Studio 2013 上的构建问题", "evidence": {"same_day": true, "patch_ids": ["72cdbc73c7b975790174b45ba64327a2"], "statement_hash": "bbd794e750b56d35d5101bc9ed99332e31f90a0ee6bc1487ff84caed8d0d6294"}, "url": "/docs/compare/?release=14.7#14.7-ff3d4478793b43e5", "source_url": "/docs/release/14.7/#ZH-AUTO-RELEASE-14-SECT2-32"}, {"db_id": "0b1486734bf4559a0c0a99637c7ed1f1", "kind": "equivalent", "version": "13.10", "label": "13.10", "title": "修复在 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": "修复在 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>修复在使用 Strawberry Perl 时用 MSVC 构建 PL/Perl 的编译失败问题（Andrew Dunstan）<a href=\"https://postgr.es/c/fed54fc9a\">§</a></p>", "text": "修复在使用 Strawberry Perl 时用 MSVC 构建 PL/Perl 的编译失败问题（Andrew Dunstan）§", "title": "修复在使用 Strawberry Perl 时用 MSVC 构建 PL/Perl 的编译失败问题", "commits": ["fed54fc9a"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/15.2/#ZH-AUTO-RELEASE-15-SECT2-32", "source_hash": "bcbe57f95efe08da569c48c08cc02c75b21e9c939fcee5acab3566a276a2b202", "section_path": ["变更"], "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 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "5c16a7fc4b7cccafa4fca346108fa06d", "kind": "equivalent", "version": "14.7", "label": "14.7", "title": "修复在使用 Strawberry Perl 时用 MSVC 构建 PL/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/#ZH-AUTO-RELEASE-14-SECT2-32"}, {"db_id": "ab79678607c5ef6764e83bb4a22dc0e9", "kind": "equivalent", "version": "13.10", "label": "13.10", "title": "修复在使用 Strawberry Perl 时用 MSVC 构建 PL/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": "修复在使用 Strawberry Perl 时用 MSVC 构建 PL/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": "修复在使用 Strawberry Perl 时用 MSVC 构建 PL/Perl 的编译失败问题", "evidence": {"same_day": true, "patch_ids": ["e146361bb85a7ba5befe9b8bb0225ae5"], "statement_hash": "fd3ed3633236c287fcbb631c9ddfb73496350acdfefb9aeaacb0f422d39242fe"}, "url": "/docs/compare/?release=11.19#11.19-4e6bbd365949090e", "source_url": "/docs/release/11.19/#id-1.11.6.8.6"}]}, {"id": "15.2-84441a0c555a06da", "cves": [], "html": "<p>修复用 MSVC 构建的 PL/Perl 与用 gcc 构建的 Perl 库之间的不匹配问题（Andrew Dunstan）<a href=\"https://postgr.es/c/b5d8fd418\">§</a></p>\n<p>此类组合之前可能导致 <span>“<span>loadable library and perl binaries are mismatched</span>”</span> 错误。</p>", "text": "修复用 MSVC 构建的 PL/Perl 与用 gcc 构建的 Perl 库之间的不匹配问题（Andrew Dunstan）§ 此类组合之前可能导致 “loadable library and perl binaries are mismatched” 错误。", "title": "修复用 MSVC 构建的 PL/Perl 与用 gcc 构建的 Perl 库之间的不匹配问题", "commits": ["b5d8fd418"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/15.2/#ZH-AUTO-RELEASE-15-SECT2-32", "source_hash": "288dcfaab5de01b2083bdf05fa1efadad80f77aa929e4fd6e69d388e37d3abc6", "section_path": ["变更"], "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 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "7266b2d89f8ea246d409a64b64649cb3", "kind": "equivalent", "version": "14.7", "label": "14.7", "title": "修复用 MSVC 构建的 PL/Perl 与用 gcc 构建的 Perl 库之间的不匹配问题", "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/#ZH-AUTO-RELEASE-14-SECT2-32"}, {"db_id": "89e4e2690a29b8d1fc7680fbe9915348", "kind": "equivalent", "version": "13.10", "label": "13.10", "title": "修复用 MSVC 构建的 PL/Perl 与用 gcc 构建的 Perl 库之间的不匹配问题", "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": "修复用 MSVC 构建的 PL/Perl 与用 gcc 构建的 Perl 库之间的不匹配问题", "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": "修复用 MSVC 构建的 PL/Perl 与用 gcc 构建的 Perl 库之间的不匹配问题", "evidence": {"same_day": true, "patch_ids": ["da4c5c966fed0d5ca572b4f0fbc648f4"], "statement_hash": "14a29a170eb83005db58c47c472e5915271304ce4dd40f466a3e27ef61627a6a"}, "url": "/docs/compare/?release=11.19#11.19-98a70c151d27d6a8", "source_url": "/docs/release/11.19/#id-1.11.6.8.6"}]}, {"id": "15.2-7684209475050573", "cves": [], "html": "<p>抑制来自 Perl 头文件的编译器警告（Andres Freund）<a href=\"https://postgr.es/c/c6e75e4c2\">§</a></p>\n<p>我们首选的编译器选项会对 Perl 头文件最近版本中出现的构造引发警告。在使用 <span>gcc</span> 时，我们可以用 pragma 来抑制这些警告。</p>", "text": "抑制来自 Perl 头文件的编译器警告（Andres Freund）§ 我们首选的编译器选项会对 Perl 头文件最近版本中出现的构造引发警告。在使用 gcc 时，我们可以用 pragma 来抑制这些警告。", "title": "抑制来自 Perl 头文件的编译器警告", "commits": ["c6e75e4c2"], "section": "变更", "category": "improvement", "source_url": "/docs/release/15.2/#ZH-AUTO-RELEASE-15-SECT2-32", "source_hash": "fe630d2544bf2621efc87730a1f42c2601a39c386b6c4c9f1d801c8526238d1d", "section_path": ["变更"], "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": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "4b0ba7f3c8d9033f3bfcce2a2b06a2e6", "kind": "equivalent", "version": "14.7", "label": "14.7", "title": "抑制来自 Perl 头文件的编译器警告", "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/#ZH-AUTO-RELEASE-14-SECT2-32"}, {"db_id": "1a91bec2452d78574e0e24a9adfc5537", "kind": "equivalent", "version": "13.10", "label": "13.10", "title": "抑制来自 Perl 头文件的编译器警告", "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": "抑制来自 Perl 头文件的编译器警告", "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": "抑制来自 Perl 头文件的编译器警告", "evidence": {"same_day": true, "patch_ids": ["35caff6b7a01141d73cb1261ad2bf00e"], "statement_hash": "8ead208361fa3b4b8ba99ea421278aacd4bdb05c76c073719d02c43b2244c1fe"}, "url": "/docs/compare/?release=11.19#11.19-dae847c60d84df89", "source_url": "/docs/release/11.19/#id-1.11.6.8.6"}]}, {"id": "15.2-c885a6aadebc34c7", "cves": [], "html": "<p>修复 <span>pg_waldump</span> 在不丢弃未使用的 static-inline 函数的编译器上的构建问题（Tom Lane）<a href=\"https://postgr.es/c/9a40a0311\">§</a></p>", "text": "修复 pg_waldump 在不丢弃未使用的 static-inline 函数的编译器上的构建问题（Tom Lane）§", "title": "修复 pg_waldump 在不丢弃未使用的 static-inline 函数的编译器上的构建问题", "commits": ["9a40a0311"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/15.2/#ZH-AUTO-RELEASE-15-SECT2-32", "source_hash": "d2434cc8e161e9a199126bf744e890abe34be2bd0c5e18ebabfc650e9d933f70", "section_path": ["变更"], "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 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "5220c36750f3687b69555b7aa1d10e16", "kind": "equivalent", "version": "14.7", "label": "14.7", "title": "修复 pg_waldump 在不丢弃未使用的 static-inline 函数的编译器上的构建问题", "evidence": {"same_day": true, "patch_ids": ["88681ea8f27e40cdd7ae9165ed47e9f0"], "statement_hash": "7d48262705d9f59cb5f94fa61d667642d5e11e226d5e8de7a83a0768fab9c20b"}, "url": "/docs/compare/?release=14.7#14.7-c885a6aadebc34c7", "source_url": "/docs/release/14.7/#ZH-AUTO-RELEASE-14-SECT2-32"}, {"db_id": "f49057c11f4d26365bc8a4a85d1fa83f", "kind": "equivalent", "version": "13.10", "label": "13.10", "title": "修复 pg_waldump 使其在不丢弃未使用的 static-inline 函数的编译器上可以构建", "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": "修复 pg_waldump 使其在不丢弃未使用的 static-inline 函数的编译器上可以构建", "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": "修复 pg_waldump 使其在不丢弃未使用的 static-inline 函数的编译器上可以构建", "evidence": {"same_day": true, "patch_ids": ["88681ea8f27e40cdd7ae9165ed47e9f0"], "statement_hash": "7d48262705d9f59cb5f94fa61d667642d5e11e226d5e8de7a83a0768fab9c20b"}, "url": "/docs/compare/?release=11.19#11.19-e130a20ee5463c20", "source_url": "/docs/release/11.19/#id-1.11.6.8.6"}]}, {"id": "15.2-02f4f081ae3ada2d", "cves": [], "html": "<p>将时区数据文件更新为 <span>tzdata</span> 2022g 版本，包含格陵兰和墨西哥的夏令时法规变更，以及加拿大北部、哥伦比亚和新加坡的历史修正。（Tom Lane）<a href=\"https://postgr.es/c/65f0d9d27\">§</a></p>\n<p>值得注意的是，一个新的时区 America/Ciudad_Juarez 从 America/Ojinaga 中分离出来。</p>", "text": "将时区数据文件更新为 tzdata 2022g 版本，包含格陵兰和墨西哥的夏令时法规变更，以及加拿大北部、哥伦比亚和新加坡的历史修正。（Tom Lane）§ 值得注意的是，一个新的时区 America/Ciudad_Juarez 从 America/Ojinaga 中分离出来。", "title": "将时区数据文件更新为 tzdata 2022g 版本，包含格陵兰和墨西哥的夏令时法规变更，以及加拿大北部、哥伦比亚和新加坡的历史修正。", "commits": ["65f0d9d27"], "section": "变更", "category": "improvement", "source_url": "/docs/release/15.2/#ZH-AUTO-RELEASE-15-SECT2-32", "source_hash": "05990d33fb138a217c661ada4d9ffd62995365179d9237918a054d7404523967", "section_path": ["变更"], "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": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "7ca55307318c5a758acbe0ed71104f54", "kind": "equivalent", "version": "14.7", "label": "14.7", "title": "将时区数据文件更新为 tzdata 2022g 版本，包含格陵兰和墨西哥的夏令时法规变更，以及加拿大北部、哥伦比亚和新加坡的历史修正。", "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/#ZH-AUTO-RELEASE-14-SECT2-32"}, {"db_id": "9eea6485abce4ee4e523a1384e8405e0", "kind": "equivalent", "version": "13.10", "label": "13.10", "title": "将时区数据文件更新为 tzdata 2022g 版本，包含格陵兰和墨西哥的夏令时法规变更，以及加拿大北部、哥伦比亚和新加坡的历史修正。", "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": "将时区数据文件更新为 tzdata 2022g 版本，包含格陵兰和墨西哥的夏令时法规变更，以及加拿大北部、哥伦比亚和新加坡的历史修正。", "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": "将时区数据文件更新到 tzdata 2022g 版，以反映格陵兰和墨西哥的夏令时法规变更，并修正加拿大北部、哥伦比亚和新加坡的历史数据。", "evidence": {"same_day": true, "patch_ids": ["26f414138b979e1a29fd81dde9bd6f58"]}, "url": "/docs/compare/?release=11.19#11.19-158f5687a916f351", "source_url": "/docs/release/11.19/#id-1.11.6.8.6"}]}]}], "stats": [{"key": "all", "label": "全部变更", "count": 58}, {"key": "feature", "label": "新功能", "count": 0}, {"key": "bugfix", "label": "BUG 修复", "count": 30}, {"key": "security", "label": "安全相关", "count": 1}, {"key": "performance", "label": "性能改进", "count": 0}, {"key": "compatibility", "label": "兼容性变化", "count": 0}, {"key": "improvement", "label": "其他改进", "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 在 GSSAPI 传输加密初始化失败后可能泄漏内存内容", "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"}