{"format": 1, "mode": "release", "from_release": null, "to_release": {"date": "2024-02-08", "build": "16.2", "major": "16", "minor": 2, "manual": "16", "status": "stable", "doc_git": "", "version": "16.2", "eol_date": "2028-11-09", "date_text": "2024-02-08", "supported": true, "manual_url": "/docs/16/release-16-2.html", "source_url": "/docs/release/16.2/", "entry_count": 70, "placeholder": false, "content_hash": "92658f457e282ed349b28b95ecd89ebe999de859ecc7abde6285801e770efaf9", "manual_build": "16.15", "source_as_of": "", "changes_count": 70, "doc_loaded_at": "2026-09-26T02:56:37.084400", "migration_html": "<p>对于运行 16.X 的用户，不需要执行导出/恢复。</p>\n<p>但是，有一个已修复的错误可能导致在并发更新期间 GIN 索引损坏。如果你怀疑存在此类损坏，请在安装此更新后对受影响的索引进行重建索引。</p>\n<p>此外，如果你从早于 16.1 的版本升级，请参见<a href=\"/docs/16/release-16-1.html\" title=\"E.15. 发布版本 16.1\">第 E.15 节</a>。</p>", "compatibility_count": 0, "label": "16.2", "status_label": "受支持版本", "eol": "2028-11-09", "age_days": 965, "support_days": 771}, "groups": [{"date": "2024-02-08", "build": "16.2", "major": "16", "minor": 2, "manual": "16", "status": "stable", "doc_git": "", "version": "16.2", "eol_date": "2028-11-09", "date_text": "2024-02-08", "supported": true, "manual_url": "/docs/16/release-16-2.html", "source_url": "/docs/release/16.2/", "entry_count": 70, "placeholder": false, "content_hash": "92658f457e282ed349b28b95ecd89ebe999de859ecc7abde6285801e770efaf9", "manual_build": "16.15", "source_as_of": "", "changes_count": 70, "doc_loaded_at": "2026-09-26T02:56:37.084400", "migration_html": "<p>对于运行 16.X 的用户，不需要执行导出/恢复。</p>\n<p>但是，有一个已修复的错误可能导致在并发更新期间 GIN 索引损坏。如果你怀疑存在此类损坏，请在安装此更新后对受影响的索引进行重建索引。</p>\n<p>此外，如果你从早于 16.1 的版本升级，请参见<a href=\"/docs/16/release-16-1.html\" title=\"E.15. 发布版本 16.1\">第 E.15 节</a>。</p>", "compatibility_count": 0, "label": "16.2", "status_label": "受支持版本", "eol": "2028-11-09", "age_days": 965, "support_days": 771, "entries": [{"id": "16.2-b05f335b989f45c5", "cves": ["CVE-2024-0985"], "html": "<p>加强 <code>REFRESH MATERIALIZED VIEW CONCURRENTLY</code> 中的安全限制（Heikki Linnakangas）<a href=\"https://postgr.es/c/d6a61cb3b\">§</a> <a href=\"https://postgr.es/c/fb3836855\">§</a></p>\n<p>并发刷新命令的一个步骤在弱安全限制下运行。如果物化视图的所有者能够说服超级用户或其他高权限用户对该视图执行并发刷新，则视图所有者可以控制以运行 <code>REFRESH</code> 的用户权限执行的代码。修复了这个问题，使所有用户确定的代码都以视图所有者身份运行，这是预期的行为。</p>\n<p>此错误的唯一已知利用方式在 <span>PostgreSQL</span> 16.0 及更高版本中不起作用，因此 v16 在实际中可能不受影响。</p>\n<p><span>PostgreSQL</span> 项目感谢 Pedro Gallegos 报告此问题。（CVE-2024-0985）</p>", "text": "加强 REFRESH MATERIALIZED VIEW CONCURRENTLY 中的安全限制（Heikki Linnakangas）§ § 并发刷新命令的一个步骤在弱安全限制下运行。如果物化视图的所有者能够说服超级用户或其他高权限用户对该视图执行并发刷新，则视图所有者可以控制以运行 REFRESH 的用户权限执行的代码。修复了这个问题，使所有用户确定的代码都以视图所有者身份运行，这是预期的行为。 此错误的唯一已知利用方式在 PostgreSQL 16.0 及更高版本中不起作用，因此 v16 在实际中可能不受影响。 PostgreSQL 项目感谢 Pedro Gallegos 报告此问题。（CVE-2024-0985）", "title": "加强 REFRESH MATERIALIZED VIEW CONCURRENTLY 中的安全限制", "commits": ["d6a61cb3b", "fb3836855"], "section": "变更", "category": "security", "source_url": "/docs/release/16.2/#RELEASE-16-2-CHANGES", "source_hash": "75a9621962d60ea92563960d631caef2f94908b7648bae96c934a5814be3e9b1", "section_path": ["变更"], "commit_groups": [["06f36bc01", "a45c950ae", "add8bc9b8", "b73d21648", "b96115acb", "fb3836855"], ["2699fc035", "5a9167c39", "d541ce3b6", "d6a61cb3b", "f2fdea198", "f4f288352"]], "identity_text": "Tighten security restrictions within REFRESH MATERIALIZED VIEW CONCURRENTLY (Heikki Linnakangas) One step of a concurrent refresh command was run under weak security restrictions. If a materialized view's owner could persuade a superuser or other high-privileged user to perform a concurrent refresh on that view, the view's owner could control code executed with the privileges of the user running REFRESH. Fix things so that all user-determined code is run as the view's owner, as expected. The only known exploit for this error does not work in PostgreSQL 16.0 and later, so it may be that v16 is not vulnerable in practice. The PostgreSQL Project thanks Pedro Gallegos for reporting this problem. (CVE-2024-0985)", "commit_aliases": ["06f36bc01", "2699fc035", "5a9167c39", "a45c950ae", "add8bc9b8", "b73d21648", "b96115acb", "d541ce3b6", "d6a61cb3b", "f2fdea198", "f4f288352", "fb3836855"], "source_commits": ["d6a61cb3b", "fb3836855"], "source_entry_id": "16.2/changes/001", "db_id": "1c910161d4337efe36737aa4fca49a0d", "patch_ids": ["46d366774b62e238870862479d2da9af", "b1279af4a2d2dc792603261a78b66555"], "statement_hash": "1f710afc37bff0fdd0d7b4f291664337c9d715c928b6cff9f649cb57ac17a1e7", "relations": [{"rule": 2, "type": "equivalent", "target": "13761578f2defae4230eda215145290d", "evidence": {"same_day": true, "patch_ids": ["46d366774b62e238870862479d2da9af", "b1279af4a2d2dc792603261a78b66555"], "statement_hash": "1f710afc37bff0fdd0d7b4f291664337c9d715c928b6cff9f649cb57ac17a1e7"}}, {"rule": 2, "type": "equivalent", "target": "22e4bbcf07ae802c770bb47d718da8f9", "evidence": {"same_day": true, "patch_ids": ["46d366774b62e238870862479d2da9af", "b1279af4a2d2dc792603261a78b66555"], "statement_hash": "1f710afc37bff0fdd0d7b4f291664337c9d715c928b6cff9f649cb57ac17a1e7"}}, {"rule": 2, "type": "equivalent", "target": "2f48fb95d1769210766abf6756f3af80", "evidence": {"same_day": true, "patch_ids": ["46d366774b62e238870862479d2da9af", "b1279af4a2d2dc792603261a78b66555"], "statement_hash": "1f710afc37bff0fdd0d7b4f291664337c9d715c928b6cff9f649cb57ac17a1e7"}}, {"rule": 2, "type": "equivalent", "target": "dfc6c36c3787077c49e1956816235abf", "evidence": {"same_day": true, "patch_ids": ["46d366774b62e238870862479d2da9af", "b1279af4a2d2dc792603261a78b66555"], "statement_hash": "1f710afc37bff0fdd0d7b4f291664337c9d715c928b6cff9f649cb57ac17a1e7"}}], "version": "16.2", "category_label": "安全相关", "also_in": [], "variants": [], "related_changes": [{"db_id": "13761578f2defae4230eda215145290d", "kind": "equivalent", "version": "15.6", "label": "15.6", "title": "加强 REFRESH MATERIALIZED VIEW CONCURRENTLY 中的安全限制", "evidence": {"same_day": true, "patch_ids": ["46d366774b62e238870862479d2da9af", "b1279af4a2d2dc792603261a78b66555"], "statement_hash": "1f710afc37bff0fdd0d7b4f291664337c9d715c928b6cff9f649cb57ac17a1e7"}, "url": "/docs/compare/?release=15.6#15.6-2bcb28f72020c8de", "source_url": "/docs/release/15.6/#ZH-AUTO-RELEASE-15-SECT2-24"}, {"db_id": "22e4bbcf07ae802c770bb47d718da8f9", "kind": "equivalent", "version": "14.11", "label": "14.11", "title": "加强 REFRESH MATERIALIZED VIEW CONCURRENTLY 中的安全限制", "evidence": {"same_day": true, "patch_ids": ["46d366774b62e238870862479d2da9af", "b1279af4a2d2dc792603261a78b66555"], "statement_hash": "1f710afc37bff0fdd0d7b4f291664337c9d715c928b6cff9f649cb57ac17a1e7"}, "url": "/docs/compare/?release=14.11#14.11-3d7f07659b2a3553", "source_url": "/docs/release/14.11/#ZH-AUTO-RELEASE-14-SECT2-24"}, {"db_id": "dfc6c36c3787077c49e1956816235abf", "kind": "equivalent", "version": "13.14", "label": "13.14", "title": "加强 REFRESH MATERIALIZED VIEW CONCURRENTLY 中的安全限制", "evidence": {"same_day": true, "patch_ids": ["46d366774b62e238870862479d2da9af", "b1279af4a2d2dc792603261a78b66555"], "statement_hash": "1f710afc37bff0fdd0d7b4f291664337c9d715c928b6cff9f649cb57ac17a1e7"}, "url": "/docs/compare/?release=13.14#13.14-06344fff7d0f1e00", "source_url": "/docs/release/13.14/#id-1.11.6.15.5"}, {"db_id": "2f48fb95d1769210766abf6756f3af80", "kind": "equivalent", "version": "12.18", "label": "12.18", "title": "加强 REFRESH MATERIALIZED VIEW CONCURRENTLY 中的安全限制", "evidence": {"same_day": true, "patch_ids": ["46d366774b62e238870862479d2da9af", "b1279af4a2d2dc792603261a78b66555"], "statement_hash": "1f710afc37bff0fdd0d7b4f291664337c9d715c928b6cff9f649cb57ac17a1e7"}, "url": "/docs/compare/?release=12.18#12.18-8363a91ecff35262", "source_url": "/docs/release/12.18/#id-1.11.6.10.6"}]}, {"id": "16.2-5b39ec377e065a4d", "cves": [], "html": "<p>修复执行 JIT 内联时的内存泄漏（Andres Freund，Daniel Gustafsson）<a href=\"https://postgr.es/c/2cf50585e\">§</a></p>\n<p>已有多次报告指出后端进程在足够多的 JIT 编译后出现内存不足的情况。此修复应该可以解决该问题。</p>", "text": "修复执行 JIT 内联时的内存泄漏（Andres Freund，Daniel Gustafsson）§ 已有多次报告指出后端进程在足够多的 JIT 编译后出现内存不足的情况。此修复应该可以解决该问题。", "title": "修复执行 JIT 内联时的内存泄漏", "commits": ["2cf50585e"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/16.2/#RELEASE-16-2-CHANGES", "source_hash": "25379ce4e8711618112cb553264c567237ef5ee5f55f10386d22e84314beb9a2", "section_path": ["变更"], "commit_groups": [["10912f7d4", "2cf50585e", "3b991f81c", "75a20a4b4", "9dce22033", "aef521849"], ["c922b2410"]], "identity_text": "Fix memory leak when performing JIT inlining (Andres Freund, Daniel Gustafsson) There have been multiple reports of backend processes suffering out-of-memory conditions after sufficiently many JIT compilations. This fix should resolve that.", "commit_aliases": ["10912f7d4", "2cf50585e", "3b991f81c", "75a20a4b4", "9dce22033", "aef521849", "c922b2410"], "source_commits": ["2cf50585e", "c922b2410"], "source_entry_id": "16.2/changes/002", "db_id": "07c3423a4a89d95fb1987002ee8be7d1", "patch_ids": ["d7614191964afe480cf104dc4fe0f492", "d92a7676f5d313e0c02f9552a2a5ed96"], "statement_hash": "bc6a2e14876d543974dea90e1befa2a20ca18aefeba076237139d1149cb4b500", "relations": [{"rule": 2, "type": "equivalent", "target": "73c46b57ec38bcb425c01586397fa0b1", "evidence": {"same_day": true, "patch_ids": ["d7614191964afe480cf104dc4fe0f492", "d92a7676f5d313e0c02f9552a2a5ed96"], "statement_hash": "bc6a2e14876d543974dea90e1befa2a20ca18aefeba076237139d1149cb4b500"}}, {"rule": 2, "type": "equivalent", "target": "9c604709581d08acacc94750cc55a520", "evidence": {"same_day": true, "patch_ids": ["d7614191964afe480cf104dc4fe0f492", "d92a7676f5d313e0c02f9552a2a5ed96"], "statement_hash": "bc6a2e14876d543974dea90e1befa2a20ca18aefeba076237139d1149cb4b500"}}, {"rule": 2, "type": "equivalent", "target": "e64551ea4667001c8fa47696b16b27c3", "evidence": {"same_day": true, "patch_ids": ["d7614191964afe480cf104dc4fe0f492", "d92a7676f5d313e0c02f9552a2a5ed96"], "statement_hash": "bc6a2e14876d543974dea90e1befa2a20ca18aefeba076237139d1149cb4b500"}}, {"rule": 2, "type": "equivalent", "target": "f42f9782c37f0e886a245b1ef83e0647", "evidence": {"same_day": true, "patch_ids": ["d7614191964afe480cf104dc4fe0f492", "d92a7676f5d313e0c02f9552a2a5ed96"], "statement_hash": "bc6a2e14876d543974dea90e1befa2a20ca18aefeba076237139d1149cb4b500"}}], "version": "16.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "9c604709581d08acacc94750cc55a520", "kind": "equivalent", "version": "15.6", "label": "15.6", "title": "修复执行 JIT 内联时的内存泄漏", "evidence": {"same_day": true, "patch_ids": ["d7614191964afe480cf104dc4fe0f492", "d92a7676f5d313e0c02f9552a2a5ed96"], "statement_hash": "bc6a2e14876d543974dea90e1befa2a20ca18aefeba076237139d1149cb4b500"}, "url": "/docs/compare/?release=15.6#15.6-2940bfe94d2955a7", "source_url": "/docs/release/15.6/#ZH-AUTO-RELEASE-15-SECT2-24"}, {"db_id": "f42f9782c37f0e886a245b1ef83e0647", "kind": "equivalent", "version": "14.11", "label": "14.11", "title": "修复执行 JIT 内联时的内存泄漏", "evidence": {"same_day": true, "patch_ids": ["d7614191964afe480cf104dc4fe0f492", "d92a7676f5d313e0c02f9552a2a5ed96"], "statement_hash": "bc6a2e14876d543974dea90e1befa2a20ca18aefeba076237139d1149cb4b500"}, "url": "/docs/compare/?release=14.11#14.11-79f1b6bc11fc9720", "source_url": "/docs/release/14.11/#ZH-AUTO-RELEASE-14-SECT2-24"}, {"db_id": "e64551ea4667001c8fa47696b16b27c3", "kind": "equivalent", "version": "13.14", "label": "13.14", "title": "修复执行 JIT 内联时的内存泄漏", "evidence": {"same_day": true, "patch_ids": ["d7614191964afe480cf104dc4fe0f492", "d92a7676f5d313e0c02f9552a2a5ed96"], "statement_hash": "bc6a2e14876d543974dea90e1befa2a20ca18aefeba076237139d1149cb4b500"}, "url": "/docs/compare/?release=13.14#13.14-26627d7cb0b27e9c", "source_url": "/docs/release/13.14/#id-1.11.6.15.5"}, {"db_id": "73c46b57ec38bcb425c01586397fa0b1", "kind": "equivalent", "version": "12.18", "label": "12.18", "title": "修复执行 JIT 内联时的内存泄漏", "evidence": {"same_day": true, "patch_ids": ["d7614191964afe480cf104dc4fe0f492", "d92a7676f5d313e0c02f9552a2a5ed96"], "statement_hash": "bc6a2e14876d543974dea90e1befa2a20ca18aefeba076237139d1149cb4b500"}, "url": "/docs/compare/?release=12.18#12.18-8e4dac8e54a85c29", "source_url": "/docs/release/12.18/#id-1.11.6.10.6"}]}, {"id": "16.2-a7a2b339af15ce99", "cves": [], "html": "<p>避免生成不正确的分区连接计划（Richard Guo）<a href=\"https://postgr.es/c/62f120203\">§</a></p>\n<p>一些涉及横向引用的不常见情况可能会创建不正确的计划。受影响的查询可能产生错误的结果，或出现诸如 <span>“<span>variable not found in subplan target list</span>”</span> 之类的奇怪错误，或执行器崩溃。</p>", "text": "避免生成不正确的分区连接计划（Richard Guo）§ 一些涉及横向引用的不常见情况可能会创建不正确的计划。受影响的查询可能产生错误的结果，或出现诸如 “variable not found in subplan target list” 之类的奇怪错误，或执行器崩溃。", "title": "避免生成不正确的分区连接计划", "commits": ["62f120203"], "section": "变更", "category": "improvement", "source_url": "/docs/release/16.2/#RELEASE-16-2-CHANGES", "source_hash": "b78b2adc70fb36d790200c456a89171b501efa48604b77d1015a5c3702026a2d", "section_path": ["变更"], "commit_groups": [["12ec16d11", "2e822a1d6", "62f120203", "7af96a66f", "e031995d5"]], "identity_text": "Avoid generating incorrect partitioned-join plans (Richard Guo) Some uncommon situations involving lateral references could create incorrect plans. Affected queries could produce wrong answers, or odd failures such as variable not found in subplan target list, or executor crashes.", "commit_aliases": ["12ec16d11", "2e822a1d6", "62f120203", "7af96a66f", "e031995d5"], "source_commits": ["62f120203"], "source_entry_id": "16.2/changes/003", "db_id": "db4f4370976304a94d33ae1c05cb4d44", "patch_ids": ["5bc39a883b56dd138892a89f4f6a0595"], "statement_hash": "c75ef4af6226dc8acda7bbf4cca8aafb721dd5cd6ff7dad0d80625333652b729", "relations": [{"rule": 2, "type": "equivalent", "target": "0242a7a95037786e301bb8e816ac0df6", "evidence": {"same_day": true, "patch_ids": ["5bc39a883b56dd138892a89f4f6a0595"], "statement_hash": "c75ef4af6226dc8acda7bbf4cca8aafb721dd5cd6ff7dad0d80625333652b729"}}, {"rule": 2, "type": "equivalent", "target": "4d7bf86ca9b875ddc9ad558405eae22c", "evidence": {"same_day": true, "patch_ids": ["5bc39a883b56dd138892a89f4f6a0595"], "statement_hash": "c75ef4af6226dc8acda7bbf4cca8aafb721dd5cd6ff7dad0d80625333652b729"}}, {"rule": 2, "type": "equivalent", "target": "d624c75086361cf6553236ff11deab1c", "evidence": {"same_day": true, "patch_ids": ["5bc39a883b56dd138892a89f4f6a0595"], "statement_hash": "c75ef4af6226dc8acda7bbf4cca8aafb721dd5cd6ff7dad0d80625333652b729"}}, {"rule": 2, "type": "equivalent", "target": "dd623f47e688863b79130d3c28441e77", "evidence": {"same_day": true, "patch_ids": ["5bc39a883b56dd138892a89f4f6a0595"], "statement_hash": "c75ef4af6226dc8acda7bbf4cca8aafb721dd5cd6ff7dad0d80625333652b729"}}], "version": "16.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "d624c75086361cf6553236ff11deab1c", "kind": "equivalent", "version": "15.6", "label": "15.6", "title": "避免生成不正确的分区连接计划", "evidence": {"same_day": true, "patch_ids": ["5bc39a883b56dd138892a89f4f6a0595"], "statement_hash": "c75ef4af6226dc8acda7bbf4cca8aafb721dd5cd6ff7dad0d80625333652b729"}, "url": "/docs/compare/?release=15.6#15.6-a7a2b339af15ce99", "source_url": "/docs/release/15.6/#ZH-AUTO-RELEASE-15-SECT2-24"}, {"db_id": "4d7bf86ca9b875ddc9ad558405eae22c", "kind": "equivalent", "version": "14.11", "label": "14.11", "title": "避免生成不正确的分区连接计划", "evidence": {"same_day": true, "patch_ids": ["5bc39a883b56dd138892a89f4f6a0595"], "statement_hash": "c75ef4af6226dc8acda7bbf4cca8aafb721dd5cd6ff7dad0d80625333652b729"}, "url": "/docs/compare/?release=14.11#14.11-a7a2b339af15ce99", "source_url": "/docs/release/14.11/#ZH-AUTO-RELEASE-14-SECT2-24"}, {"db_id": "0242a7a95037786e301bb8e816ac0df6", "kind": "equivalent", "version": "13.14", "label": "13.14", "title": "避免生成不正确的按分区连接计划", "evidence": {"same_day": true, "patch_ids": ["5bc39a883b56dd138892a89f4f6a0595"], "statement_hash": "c75ef4af6226dc8acda7bbf4cca8aafb721dd5cd6ff7dad0d80625333652b729"}, "url": "/docs/compare/?release=13.14#13.14-731619dda69a06a7", "source_url": "/docs/release/13.14/#id-1.11.6.15.5"}, {"db_id": "dd623f47e688863b79130d3c28441e77", "kind": "equivalent", "version": "12.18", "label": "12.18", "title": "避免生成不正确的按分区连接计划", "evidence": {"same_day": true, "patch_ids": ["5bc39a883b56dd138892a89f4f6a0595"], "statement_hash": "c75ef4af6226dc8acda7bbf4cca8aafb721dd5cd6ff7dad0d80625333652b729"}, "url": "/docs/compare/?release=12.18#12.18-1d82d275bbbfb1cc", "source_url": "/docs/release/12.18/#id-1.11.6.10.6"}]}, {"id": "16.2-e9ca7f8ba488cd8b", "cves": [], "html": "<p>修复子查询输出表达式在 PlaceHolderVars 中的不正确包装（Tom Lane）<a href=\"https://postgr.es/c/80bece312\">§</a></p>\n<p>这修复了当子查询位于外连接下方且有一个输出列横向引用外连接范围之外的内容时的不正确结果。由于外连接的作用，该输出列可能不会在应为 NULL 时显示为 NULL。</p>", "text": "修复子查询输出表达式在 PlaceHolderVars 中的不正确包装（Tom Lane）§ 这修复了当子查询位于外连接下方且有一个输出列横向引用外连接范围之外的内容时的不正确结果。由于外连接的作用，该输出列可能不会在应为 NULL 时显示为 NULL。", "title": "修复子查询输出表达式在 PlaceHolderVars 中的不正确包装", "commits": ["80bece312"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/16.2/#RELEASE-16-2-CHANGES", "source_hash": "8237716145fa4685798a1e42b47d4b2e64eb66c19eb7586a64f257adc8740946", "section_path": ["变更"], "commit_groups": [["29f114b6f", "69c12c417", "80bece312", "a0b4fda44", "bfd28bb07", "ea1d54288"]], "identity_text": "Fix incorrect wrapping of subquery output expressions in PlaceHolderVars (Tom Lane) This fixes incorrect results when a subquery is underneath an outer join and has an output column that laterally references something outside the outer join's scope. The output column might not appear as NULL when it should do so due to the action of the outer join.", "commit_aliases": ["29f114b6f", "69c12c417", "80bece312", "a0b4fda44", "bfd28bb07", "ea1d54288"], "source_commits": ["80bece312"], "source_entry_id": "16.2/changes/004", "db_id": "27dbdb3b5729cea4a353c25042b53fa9", "patch_ids": ["306df43543d108e880b64497a9ef2843"], "statement_hash": "edc6b418cc4ec23397e110e65473fb83b8c35d3b28baba46a6697e525d0cfd99", "relations": [{"rule": 2, "type": "equivalent", "target": "9f6132ec87d1c1be7f9edc8906dfd09d", "evidence": {"same_day": true, "patch_ids": ["306df43543d108e880b64497a9ef2843"], "statement_hash": "edc6b418cc4ec23397e110e65473fb83b8c35d3b28baba46a6697e525d0cfd99"}}, {"rule": 2, "type": "equivalent", "target": "a37c5b6eef5c20106899d961e020319f", "evidence": {"same_day": true, "patch_ids": ["306df43543d108e880b64497a9ef2843"], "statement_hash": "edc6b418cc4ec23397e110e65473fb83b8c35d3b28baba46a6697e525d0cfd99"}}, {"rule": 2, "type": "equivalent", "target": "a6fac98376e631660257b15f803756bc", "evidence": {"same_day": true, "patch_ids": ["306df43543d108e880b64497a9ef2843"], "statement_hash": "edc6b418cc4ec23397e110e65473fb83b8c35d3b28baba46a6697e525d0cfd99"}}, {"rule": 2, "type": "equivalent", "target": "d4ba11683185e750f702a309c216117b", "evidence": {"same_day": true, "patch_ids": ["306df43543d108e880b64497a9ef2843"], "statement_hash": "edc6b418cc4ec23397e110e65473fb83b8c35d3b28baba46a6697e525d0cfd99"}}], "version": "16.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "a37c5b6eef5c20106899d961e020319f", "kind": "equivalent", "version": "15.6", "label": "15.6", "title": "修复子查询输出表达式在 PlaceHolderVars 中的不正确包装", "evidence": {"same_day": true, "patch_ids": ["306df43543d108e880b64497a9ef2843"], "statement_hash": "edc6b418cc4ec23397e110e65473fb83b8c35d3b28baba46a6697e525d0cfd99"}, "url": "/docs/compare/?release=15.6#15.6-5fecd83f381b504b", "source_url": "/docs/release/15.6/#ZH-AUTO-RELEASE-15-SECT2-24"}, {"db_id": "d4ba11683185e750f702a309c216117b", "kind": "equivalent", "version": "14.11", "label": "14.11", "title": "修复子查询输出表达式在 PlaceHolderVars 中的不正确包装", "evidence": {"same_day": true, "patch_ids": ["306df43543d108e880b64497a9ef2843"], "statement_hash": "edc6b418cc4ec23397e110e65473fb83b8c35d3b28baba46a6697e525d0cfd99"}, "url": "/docs/compare/?release=14.11#14.11-4b0c4ada85fa667f", "source_url": "/docs/release/14.11/#ZH-AUTO-RELEASE-14-SECT2-24"}, {"db_id": "9f6132ec87d1c1be7f9edc8906dfd09d", "kind": "equivalent", "version": "13.14", "label": "13.14", "title": "修复子查询输出表达式在 PlaceHolderVars 中的不正确包装", "evidence": {"same_day": true, "patch_ids": ["306df43543d108e880b64497a9ef2843"], "statement_hash": "edc6b418cc4ec23397e110e65473fb83b8c35d3b28baba46a6697e525d0cfd99"}, "url": "/docs/compare/?release=13.14#13.14-d0456f1d8acbc81b", "source_url": "/docs/release/13.14/#id-1.11.6.15.5"}, {"db_id": "a6fac98376e631660257b15f803756bc", "kind": "equivalent", "version": "12.18", "label": "12.18", "title": "修复子查询输出表达式在 PlaceHolderVars 中的不正确包装", "evidence": {"same_day": true, "patch_ids": ["306df43543d108e880b64497a9ef2843"], "statement_hash": "edc6b418cc4ec23397e110e65473fb83b8c35d3b28baba46a6697e525d0cfd99"}, "url": "/docs/compare/?release=12.18#12.18-afb0fda690e8d928", "source_url": "/docs/release/12.18/#id-1.11.6.10.6"}]}, {"id": "16.2-7c0e7bcce591d682", "cves": [], "html": "<p>修复窗口函数运行条件的错误处理（Richard Guo）<a href=\"https://postgr.es/c/ee9553218\">§</a></p>\n<p>这一疏忽可能导致 <span>“<span>WindowFunc not found in subplan target lists</span>”</span> 错误。</p>", "text": "修复窗口函数运行条件的错误处理（Richard Guo）§ 这一疏忽可能导致 “WindowFunc not found in subplan target lists” 错误。", "title": "修复窗口函数运行条件的错误处理", "commits": ["ee9553218"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/16.2/#RELEASE-16-2-CHANGES", "source_hash": "e6b82d325726f8364e1a01535a4ef43a3f00e7bb41abb01525bd2c93bc36a8e8", "section_path": ["变更"], "commit_groups": [["c3f52fd5d", "d641b827a", "ee9553218"]], "identity_text": "Fix misprocessing of window function run conditions (Richard Guo) This oversight could lead to WindowFunc not found in subplan target lists errors.", "commit_aliases": ["c3f52fd5d", "d641b827a", "ee9553218"], "source_commits": ["ee9553218"], "source_entry_id": "16.2/changes/005", "db_id": "85a3a45f1079d635cc4463201d887346", "patch_ids": ["83789201675b24e93caf4b49fb785174"], "statement_hash": "9d9006c6b719a3698f790acf5aa947439978994d8de8d83d99b975c3634d18f8", "relations": [{"rule": 2, "type": "equivalent", "target": "b876c8e5e9f837881ab6374cf9da70af", "evidence": {"same_day": true, "patch_ids": ["83789201675b24e93caf4b49fb785174"], "statement_hash": "9d9006c6b719a3698f790acf5aa947439978994d8de8d83d99b975c3634d18f8"}}], "version": "16.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "b876c8e5e9f837881ab6374cf9da70af", "kind": "equivalent", "version": "15.6", "label": "15.6", "title": "修复窗口函数运行条件的错误处理", "evidence": {"same_day": true, "patch_ids": ["83789201675b24e93caf4b49fb785174"], "statement_hash": "9d9006c6b719a3698f790acf5aa947439978994d8de8d83d99b975c3634d18f8"}, "url": "/docs/compare/?release=15.6#15.6-134f5bb68ca3c8d1", "source_url": "/docs/release/15.6/#ZH-AUTO-RELEASE-15-SECT2-24"}]}, {"id": "16.2-da9576597c7be744", "cves": [], "html": "<p>修复 Memoize 计划中内侧唯一性的检测（Richard Guo）<a href=\"https://postgr.es/c/74f770ef2\">§</a></p>\n<p>此错误可能导致 <span>“<span>cache entry already complete</span>”</span> 错误。</p>", "text": "修复 Memoize 计划中内侧唯一性的检测（Richard Guo）§ 此错误可能导致 “cache entry already complete” 错误。", "title": "修复 Memoize 计划中内侧唯一性的检测", "commits": ["74f770ef2"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/16.2/#RELEASE-16-2-CHANGES", "source_hash": "42fd79600e1d065e44381db0d1a14ff2ce2a4f2694dda42070b57c8e0bf3cd4d", "section_path": ["变更"], "commit_groups": [["2bcf0785c", "74f770ef2"]], "identity_text": "Fix detection of inner-side uniqueness for Memoize plans (Richard Guo) This mistake could lead to cache entry already complete errors.", "commit_aliases": ["2bcf0785c", "74f770ef2"], "source_commits": ["74f770ef2"], "source_entry_id": "16.2/changes/006", "db_id": "4d8b44430d6c8270429d701ffcbed815", "patch_ids": ["9e55003f1829d149585eaba1d1643e70"], "statement_hash": "af849852104f2441611bd40db1d91e7f20a369cd668c7120998f942915cb077a", "relations": [], "version": "16.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.2-3402b60a0811af5a", "cves": [], "html": "<p>修复在常量折叠字段选择时 nullingrels 的计算（Richard Guo）<a href=\"https://postgr.es/c/6bf2efb38\">§</a></p>\n<p>未能执行此操作会导致类似 <span>“<span>wrong varnullingrels (b) (expected (b 3)) for Var 2/2</span>”</span> 的错误。</p>", "text": "修复在常量折叠字段选择时 nullingrels 的计算（Richard Guo）§ 未能执行此操作会导致类似 “wrong varnullingrels (b) (expected (b 3)) for Var 2/2” 的错误。", "title": "修复在常量折叠字段选择时 nullingrels 的计算", "commits": ["6bf2efb38"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/16.2/#RELEASE-16-2-CHANGES", "source_hash": "3c6125bef76f7f6df8953d5478adb70be14ea234e0a2d7bb3508a85c61924461", "section_path": ["变更"], "commit_groups": [["36f5594c0", "6bf2efb38"]], "identity_text": "Fix computation of nullingrels when constant-folding field selection (Richard Guo) Failure to do this led to errors like wrong varnullingrels (b) (expected (b 3)) for Var 2/2.", "commit_aliases": ["36f5594c0", "6bf2efb38"], "source_commits": ["6bf2efb38"], "source_entry_id": "16.2/changes/007", "db_id": "fcdf37c317737a71a4b60f712961655c", "patch_ids": ["d0f87b9c53c80f464e77c54b479ca317"], "statement_hash": "f6de442dd1e69e4713ac6326f6b4b193446f2d60fac82ea31c7f5346adde1017", "relations": [], "version": "16.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.2-0c5d9e0dd42d07bf", "cves": [], "html": "<p>当 <code>MERGE</code> 导致跨分区更新时跳过不适当的操作（Dean Rasheed）<a href=\"https://postgr.es/c/06a546382\">§</a></p>\n<p>在对分区表执行 <code>MERGE UPDATE</code> 操作时，如果由于更改了分区键列而将 <code>UPDATE</code> 转换为 <code>DELETE</code> 和 <code>INSERT</code>，则跳过触发 <code>AFTER UPDATE ROW</code> 触发器以及其他更新后操作（如 RLS 检查）。这些操作通常会失败，这就是为什么常规的 <code>UPDATE</code> 在这种情况下不执行它们；<code>MERGE</code> 也不应该执行。</p>", "text": "当 MERGE 导致跨分区更新时跳过不适当的操作（Dean Rasheed）§ 在对分区表执行 MERGE UPDATE 操作时，如果由于更改了分区键列而将 UPDATE 转换为 DELETE 和 INSERT，则跳过触发 AFTER UPDATE ROW 触发器以及其他更新后操作（如 RLS 检查）。这些操作通常会失败，这就是为什么常规的 UPDATE 在这种情况下不执行它们；MERGE 也不应该执行。", "title": "当 MERGE 导致跨分区更新时跳过不适当的操作", "commits": ["06a546382"], "section": "变更", "category": "improvement", "source_url": "/docs/release/16.2/#RELEASE-16-2-CHANGES", "source_hash": "71c70366ac2c85d29b3d6271e71fcaba704f3193154d2dc890201d079ad7d14b", "section_path": ["变更"], "commit_groups": [["06a546382", "a4f7d33a9", "c0bfdaf2b"]], "identity_text": "Skip inappropriate actions when MERGE causes a cross-partition update (Dean Rasheed) When executing a MERGE UPDATE action on a partitioned table, if the UPDATE is turned into a DELETE and INSERT due to changing a partition key column, skip firing AFTER UPDATE ROW triggers, as well as other post-update actions such as RLS checks. These actions would typically fail, which is why a regular UPDATE doesn't do them in such cases; MERGE shouldn't either.", "commit_aliases": ["06a546382", "a4f7d33a9", "c0bfdaf2b"], "source_commits": ["06a546382"], "source_entry_id": "16.2/changes/008", "db_id": "9b42f36f579a300f042da9d375ab24ea", "patch_ids": ["ed672d0c32e036809dea5d6cb9a0dd50"], "statement_hash": "cfbe4af47a4dc514ea52107132f94c07e6549910c214b3169f3de5c4703e20ed", "relations": [{"rule": 2, "type": "equivalent", "target": "202606b241ea83a172c0326281a49652", "evidence": {"same_day": true, "patch_ids": ["ed672d0c32e036809dea5d6cb9a0dd50"], "statement_hash": "cfbe4af47a4dc514ea52107132f94c07e6549910c214b3169f3de5c4703e20ed"}}], "version": "16.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "202606b241ea83a172c0326281a49652", "kind": "equivalent", "version": "15.6", "label": "15.6", "title": "当 MERGE 导致跨分区更新时跳过不适当的操作", "evidence": {"same_day": true, "patch_ids": ["ed672d0c32e036809dea5d6cb9a0dd50"], "statement_hash": "cfbe4af47a4dc514ea52107132f94c07e6549910c214b3169f3de5c4703e20ed"}, "url": "/docs/compare/?release=15.6#15.6-3b80e1d4ecbc6581", "source_url": "/docs/release/15.6/#ZH-AUTO-RELEASE-15-SECT2-24"}]}, {"id": "16.2-9069dff5146fd426", "cves": [], "html": "<p>处理跨分区 <code>MERGE</code> 更新中的 <code>BEFORE ROW DELETE</code> 触发器（Dean Rasheed）<a href=\"https://postgr.es/c/7f07384dc\">§</a></p>\n<p>如果此类触发器试图通过返回 NULL 来阻止更新，<code>MERGE</code> 会遇到错误或断言失败。</p>", "text": "处理跨分区 MERGE 更新中的 BEFORE ROW DELETE 触发器（Dean Rasheed）§ 如果此类触发器试图通过返回 NULL 来阻止更新，MERGE 会遇到错误或断言失败。", "title": "处理跨分区 MERGE 更新中的 BEFORE ROW DELETE 触发器", "commits": ["7f07384dc"], "section": "变更", "category": "improvement", "source_url": "/docs/release/16.2/#RELEASE-16-2-CHANGES", "source_hash": "a896c01124d1de6fd262a4d5c397e034adc9e051991d14aec491a77c7ba49cbd", "section_path": ["变更"], "commit_groups": [["7e8c6d7af", "7f07384dc", "a0ff37173"]], "identity_text": "Cope with BEFORE ROW DELETE triggers in cross-partition MERGE updates (Dean Rasheed) If such a trigger attempted to prevent the update by returning NULL, MERGE would suffer an error or assertion failure.", "commit_aliases": ["7e8c6d7af", "7f07384dc", "a0ff37173"], "source_commits": ["7f07384dc"], "source_entry_id": "16.2/changes/009", "db_id": "0742375f25488d2c2c12fa054e3b6b86", "patch_ids": ["90d6b271e6d1f84b368a271dc764af77"], "statement_hash": "9359701775e0e1b01511e9930c8bd4f914cce341c5830e21f36abb7a8f7e4514", "relations": [{"rule": 2, "type": "equivalent", "target": "af501c52b459f136cf41d560ac39bdb3", "evidence": {"same_day": true, "patch_ids": ["90d6b271e6d1f84b368a271dc764af77"], "statement_hash": "9359701775e0e1b01511e9930c8bd4f914cce341c5830e21f36abb7a8f7e4514"}}], "version": "16.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "af501c52b459f136cf41d560ac39bdb3", "kind": "equivalent", "version": "15.6", "label": "15.6", "title": "处理跨分区 MERGE 更新中的 BEFORE ROW DELETE 触发器", "evidence": {"same_day": true, "patch_ids": ["90d6b271e6d1f84b368a271dc764af77"], "statement_hash": "9359701775e0e1b01511e9930c8bd4f914cce341c5830e21f36abb7a8f7e4514"}, "url": "/docs/compare/?release=15.6#15.6-f8ca56715268fcb4", "source_url": "/docs/release/15.6/#ZH-AUTO-RELEASE-15-SECT2-24"}]}, {"id": "16.2-f7fc3d6ac99cb843", "cves": [], "html": "<p>防止在 <code>BEFORE ROW UPDATE</code> 触发器中访问不再固定的缓冲区（Alexander Lakhin，Tom Lane）<a href=\"https://postgr.es/c/23e0ba59c\">§</a></p>\n<p>如果正在更新的元组刚刚被另一个会话更新并移动到另一个页面，存在一个狭窄的时间窗口，我们会尝试从新的元组版本获取数据，但没有对其缓冲区进行固定。原则上这可能导致非更新列中出现垃圾数据。但在实际中出现问题的可能性似乎很低。</p>", "text": "防止在 BEFORE ROW UPDATE 触发器中访问不再固定的缓冲区（Alexander Lakhin，Tom Lane）§ 如果正在更新的元组刚刚被另一个会话更新并移动到另一个页面，存在一个狭窄的时间窗口，我们会尝试从新的元组版本获取数据，但没有对其缓冲区进行固定。原则上这可能导致非更新列中出现垃圾数据。但在实际中出现问题的可能性似乎很低。", "title": "防止在 BEFORE ROW UPDATE 触发器中访问不再固定的缓冲区", "commits": ["23e0ba59c"], "section": "变更", "category": "improvement", "source_url": "/docs/release/16.2/#RELEASE-16-2-CHANGES", "source_hash": "a55fa1df40478e47f2951f0e458a728c177f70240d370e0a6f1833fe36cd86ba", "section_path": ["变更"], "commit_groups": [["1a4e54617", "23e0ba59c", "6545ba96c", "c7edaeec5"]], "identity_text": "Prevent access to a no-longer-pinned buffer in BEFORE ROW UPDATE triggers (Alexander Lakhin, Tom Lane) If the tuple being updated had just been updated and moved to another page by another session, there was a narrow window where we would attempt to fetch data from the new tuple version without any pin on its buffer. In principle this could result in garbage data appearing in non-updated columns of the proposed new tuple. The odds of problems in practice seem rather low, however.", "commit_aliases": ["1a4e54617", "23e0ba59c", "6545ba96c", "c7edaeec5"], "source_commits": ["23e0ba59c"], "source_entry_id": "16.2/changes/010", "db_id": "426791a52c4c51e2a0a8267a65a4b7cc", "patch_ids": ["88ce115aa1f34efed22765cf03ac6ce0"], "statement_hash": "594c73e5a3499fc4646d07612e8e47615e97f8d7d85cad9102a485424a5fe83b", "relations": [{"rule": 2, "type": "equivalent", "target": "84bad66ac6c1767fee43a6d41d4520e1", "evidence": {"same_day": true, "patch_ids": ["88ce115aa1f34efed22765cf03ac6ce0"], "statement_hash": "594c73e5a3499fc4646d07612e8e47615e97f8d7d85cad9102a485424a5fe83b"}}, {"rule": 2, "type": "equivalent", "target": "c7e616ce9fb5c44e3d4d811ff83075e0", "evidence": {"same_day": true, "patch_ids": ["88ce115aa1f34efed22765cf03ac6ce0"], "statement_hash": "594c73e5a3499fc4646d07612e8e47615e97f8d7d85cad9102a485424a5fe83b"}}], "version": "16.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "84bad66ac6c1767fee43a6d41d4520e1", "kind": "equivalent", "version": "15.6", "label": "15.6", "title": "防止在 BEFORE ROW UPDATE 触发器中访问不再固定的缓冲区", "evidence": {"same_day": true, "patch_ids": ["88ce115aa1f34efed22765cf03ac6ce0"], "statement_hash": "594c73e5a3499fc4646d07612e8e47615e97f8d7d85cad9102a485424a5fe83b"}, "url": "/docs/compare/?release=15.6#15.6-aa5db7425ce15b7b", "source_url": "/docs/release/15.6/#ZH-AUTO-RELEASE-15-SECT2-24"}, {"db_id": "c7e616ce9fb5c44e3d4d811ff83075e0", "kind": "equivalent", "version": "14.11", "label": "14.11", "title": "防止在 BEFORE ROW UPDATE 触发器中访问不再固定的缓冲区", "evidence": {"same_day": true, "patch_ids": ["88ce115aa1f34efed22765cf03ac6ce0"], "statement_hash": "594c73e5a3499fc4646d07612e8e47615e97f8d7d85cad9102a485424a5fe83b"}, "url": "/docs/compare/?release=14.11#14.11-05af0b1b4b753680", "source_url": "/docs/release/14.11/#ZH-AUTO-RELEASE-14-SECT2-24"}]}, {"id": "16.2-20162a24d2897389", "cves": [], "html": "<p>避免在并行哈希连接中请求过大的共享内存区域（Thomas Munro，Andrei Lepikhov，Alexander Korotkov）<a href=\"https://postgr.es/c/714a987bc\">§</a> <a href=\"https://postgr.es/c/20a566cd4\">§</a></p>\n<p>限制值过大，允许在预期的 hash 表大小足够大时出现 <span>“<span>invalid DSA memory alloc request size</span>”</span> 错误。</p>", "text": "避免在并行哈希连接中请求过大的共享内存区域（Thomas Munro，Andrei Lepikhov，Alexander Korotkov）§ § 限制值过大，允许在预期的 hash 表大小足够大时出现 “invalid DSA memory alloc request size” 错误。", "title": "避免在并行哈希连接中请求过大的共享内存区域", "commits": ["20a566cd4", "714a987bc"], "section": "变更", "category": "improvement", "source_url": "/docs/release/16.2/#RELEASE-16-2-CHANGES", "source_hash": "a6858a5dc82814829ecdcbe8e0f4bcea4eda8dbeea4813bb1007ac64b20efe4b", "section_path": ["变更"], "commit_groups": [["17b6f39f1", "20a566cd4", "6d94cc6ca", "6eecc3a62", "97e64911d", "a5e2853c3"], ["1a7c03e6f", "2a67b5a60", "3bdaa8fc6", "60de25c6e", "714a987bc", "72d5b2776"]], "identity_text": "Avoid requesting an oversize shared-memory area in parallel hash join (Thomas Munro, Andrei Lepikhov, Alexander Korotkov) The limiting value was too large, allowing invalid DSA memory alloc request size errors to occur with sufficiently large expected hash table sizes.", "commit_aliases": ["17b6f39f1", "1a7c03e6f", "20a566cd4", "2a67b5a60", "3bdaa8fc6", "60de25c6e", "6d94cc6ca", "6eecc3a62", "714a987bc", "72d5b2776", "97e64911d", "a5e2853c3"], "source_commits": ["20a566cd4", "714a987bc"], "source_entry_id": "16.2/changes/011", "db_id": "f000c1267cf887c22cff2c73ca49b98e", "patch_ids": ["0cd4e41c62098ce253a5a7f3fd508941", "b828ffb38c16213960414e63f233b647"], "statement_hash": "48966cb1ef20f0afdb3e2c8ffbdad64ff04888dec0a11a1a30ae0f26e3c936ba", "relations": [{"rule": 2, "type": "equivalent", "target": "0bf1730a06c170b3c9ca29a57d151a0b", "evidence": {"same_day": true, "patch_ids": ["0cd4e41c62098ce253a5a7f3fd508941", "b828ffb38c16213960414e63f233b647"], "statement_hash": "48966cb1ef20f0afdb3e2c8ffbdad64ff04888dec0a11a1a30ae0f26e3c936ba"}}, {"rule": 2, "type": "equivalent", "target": "5b64158d44a0e06cde6110be6a022577", "evidence": {"same_day": true, "patch_ids": ["0cd4e41c62098ce253a5a7f3fd508941", "b828ffb38c16213960414e63f233b647"], "statement_hash": "48966cb1ef20f0afdb3e2c8ffbdad64ff04888dec0a11a1a30ae0f26e3c936ba"}}, {"rule": 2, "type": "equivalent", "target": "726d003507fcb7d36bc8d1605399804d", "evidence": {"same_day": true, "patch_ids": ["0cd4e41c62098ce253a5a7f3fd508941", "b828ffb38c16213960414e63f233b647"], "statement_hash": "48966cb1ef20f0afdb3e2c8ffbdad64ff04888dec0a11a1a30ae0f26e3c936ba"}}, {"rule": 2, "type": "equivalent", "target": "e6cb1cce9864dcf2a69765307e3c52e1", "evidence": {"same_day": true, "patch_ids": ["0cd4e41c62098ce253a5a7f3fd508941", "b828ffb38c16213960414e63f233b647"], "statement_hash": "48966cb1ef20f0afdb3e2c8ffbdad64ff04888dec0a11a1a30ae0f26e3c936ba"}}], "version": "16.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "726d003507fcb7d36bc8d1605399804d", "kind": "equivalent", "version": "15.6", "label": "15.6", "title": "避免在并行哈希连接中请求过大的共享内存区域", "evidence": {"same_day": true, "patch_ids": ["0cd4e41c62098ce253a5a7f3fd508941", "b828ffb38c16213960414e63f233b647"], "statement_hash": "48966cb1ef20f0afdb3e2c8ffbdad64ff04888dec0a11a1a30ae0f26e3c936ba"}, "url": "/docs/compare/?release=15.6#15.6-ee8102544c3858da", "source_url": "/docs/release/15.6/#ZH-AUTO-RELEASE-15-SECT2-24"}, {"db_id": "0bf1730a06c170b3c9ca29a57d151a0b", "kind": "equivalent", "version": "14.11", "label": "14.11", "title": "避免在并行哈希连接中请求过大的共享内存区域", "evidence": {"same_day": true, "patch_ids": ["0cd4e41c62098ce253a5a7f3fd508941", "b828ffb38c16213960414e63f233b647"], "statement_hash": "48966cb1ef20f0afdb3e2c8ffbdad64ff04888dec0a11a1a30ae0f26e3c936ba"}, "url": "/docs/compare/?release=14.11#14.11-a742af2a89e5763b", "source_url": "/docs/release/14.11/#ZH-AUTO-RELEASE-14-SECT2-24"}, {"db_id": "5b64158d44a0e06cde6110be6a022577", "kind": "equivalent", "version": "13.14", "label": "13.14", "title": "避免在并行哈希连接中请求过大的共享内存区域", "evidence": {"same_day": true, "patch_ids": ["0cd4e41c62098ce253a5a7f3fd508941", "b828ffb38c16213960414e63f233b647"], "statement_hash": "48966cb1ef20f0afdb3e2c8ffbdad64ff04888dec0a11a1a30ae0f26e3c936ba"}, "url": "/docs/compare/?release=13.14#13.14-518e9fede8b58b98", "source_url": "/docs/release/13.14/#id-1.11.6.15.5"}, {"db_id": "e6cb1cce9864dcf2a69765307e3c52e1", "kind": "equivalent", "version": "12.18", "label": "12.18", "title": "避免在并行哈希连接中请求过大的共享内存区域", "evidence": {"same_day": true, "patch_ids": ["0cd4e41c62098ce253a5a7f3fd508941", "b828ffb38c16213960414e63f233b647"], "statement_hash": "48966cb1ef20f0afdb3e2c8ffbdad64ff04888dec0a11a1a30ae0f26e3c936ba"}, "url": "/docs/compare/?release=12.18#12.18-c0efd910bc80604d", "source_url": "/docs/release/12.18/#id-1.11.6.10.6"}]}, {"id": "16.2-ffe533b33e7de9c0", "cves": [], "html": "<p>修复在尝试扩展临时表时发生错误后本地缓冲区状态损坏的问题（Tender Wang）<a href=\"https://postgr.es/c/37c551663\">§</a></p>", "text": "修复在尝试扩展临时表时发生错误后本地缓冲区状态损坏的问题（Tender Wang）§", "title": "修复在尝试扩展临时表时发生错误后本地缓冲区状态损坏的问题", "commits": ["37c551663"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/16.2/#RELEASE-16-2-CHANGES", "source_hash": "b466cd8c81849e9878555bd81fc12a6c43e8a1d37366b17c0031dbfc77efe975", "section_path": ["变更"], "commit_groups": [["37c551663", "9cd0d77df"]], "identity_text": "Fix corruption of local buffer state when an error occurs while trying to extend a temporary table (Tender Wang)", "commit_aliases": ["37c551663", "9cd0d77df"], "source_commits": ["37c551663"], "source_entry_id": "16.2/changes/012", "db_id": "000d707b4bae9ca27d15b60844914354", "patch_ids": ["2989798efc91a5443b3005aa9f6072b8"], "statement_hash": "1826bc16c219af7b7a764781562b18153234a87562c97aaa42caa9d41efce754", "relations": [], "version": "16.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.2-907e9bbe3b55cc2c", "cves": [], "html": "<p>修复在评估具有多个参数的 <code>DISTINCT</code> 聚合时使用了错误元组槽的问题（David Rowley）<a href=\"https://postgr.es/c/6298673f4\">§</a></p>\n<p>此错误可能导致诸如 <span>“<span>attribute 1 of type record has wrong type</span>”</span> 之类的错误。</p>", "text": "修复在评估具有多个参数的 DISTINCT 聚合时使用了错误元组槽的问题（David Rowley）§ 此错误可能导致诸如 “attribute 1 of type record has wrong type” 之类的错误。", "title": "修复在评估具有多个参数的 DISTINCT 聚合时使用了错误元组槽的问题", "commits": ["6298673f4"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/16.2/#RELEASE-16-2-CHANGES", "source_hash": "512032723f98f6142c5334e6325b310f70f4bfe9bace1f226761171455665947", "section_path": ["变更"], "commit_groups": [["6298673f4", "ae69c4fcf"]], "identity_text": "Fix use of wrong tuple slot while evaluating DISTINCT aggregates that have multiple arguments (David Rowley) This mistake could lead to errors such as attribute 1 of type record has wrong type.", "commit_aliases": ["6298673f4", "ae69c4fcf"], "source_commits": ["6298673f4"], "source_entry_id": "16.2/changes/013", "db_id": "63a74b302bdf06492a00f31030cadba6", "patch_ids": ["f146d907e56d3d5cf4c255a3f4c036f0"], "statement_hash": "b1c96048edda98b77e11b6d8f5ba863f1c88e52c9e0c5b9ba4b411d272c4c8c5", "relations": [], "version": "16.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.2-73ad30bee194ec01", "cves": [], "html": "<p>避免在外键强制触发器要更新的元组未通过额外可见性交叉检查时 <code>heap_update()</code> 和 <code>heap_delete()</code> 中的断言失败（Alexander Lakhin）<a href=\"https://postgr.es/c/9fee3232a\">§</a></p>\n<p>此错误在非断言构建中没有影响。</p>", "text": "避免在外键强制触发器要更新的元组未通过额外可见性交叉检查时 heap_update() 和 heap_delete() 中的断言失败（Alexander Lakhin）§ 此错误在非断言构建中没有影响。", "title": "避免在外键强制触发器要更新的元组未通过额外可见性交叉检查时 heap_update() 和 heap_delete() 中的断言失败", "commits": ["9fee3232a"], "section": "变更", "category": "improvement", "source_url": "/docs/release/16.2/#RELEASE-16-2-CHANGES", "source_hash": "4ed18811fc5d16227dd19bd4521b43c82eb7efa40ab4bc0aa317f099ca0dfffd", "section_path": ["变更"], "commit_groups": [["2873fbfe0", "59c62a21f", "60f227316", "9fee3232a", "b8a606e21", "e434d3620"]], "identity_text": "Avoid assertion failures in heap_update() and heap_delete() when a tuple to be updated by a foreign-key enforcement trigger fails the extra visibility crosscheck (Alexander Lakhin) This error had no impact in non-assert builds.", "commit_aliases": ["2873fbfe0", "59c62a21f", "60f227316", "9fee3232a", "b8a606e21", "e434d3620"], "source_commits": ["9fee3232a"], "source_entry_id": "16.2/changes/014", "db_id": "cbfc9ca26020d85a1e68af56c58675ee", "patch_ids": ["445602fcc451a7d952166f65e0246e84"], "statement_hash": "676de680ee84dc73aa1660891f9219895ba8cbda3d95bc0deddbc3a89252e5a4", "relations": [{"rule": 2, "type": "equivalent", "target": "02b9b43a00400d5ed665a23bcc53a585", "evidence": {"same_day": true, "patch_ids": ["445602fcc451a7d952166f65e0246e84"], "statement_hash": "676de680ee84dc73aa1660891f9219895ba8cbda3d95bc0deddbc3a89252e5a4"}}, {"rule": 2, "type": "equivalent", "target": "72b6d0d8d396821c068670959b46120f", "evidence": {"same_day": true, "patch_ids": ["445602fcc451a7d952166f65e0246e84"], "statement_hash": "676de680ee84dc73aa1660891f9219895ba8cbda3d95bc0deddbc3a89252e5a4"}}, {"rule": 2, "type": "equivalent", "target": "a31ae7fe51afefc3b8d8c8d0d3c6f21c", "evidence": {"same_day": true, "patch_ids": ["445602fcc451a7d952166f65e0246e84"], "statement_hash": "676de680ee84dc73aa1660891f9219895ba8cbda3d95bc0deddbc3a89252e5a4"}}, {"rule": 2, "type": "equivalent", "target": "ee1ce92bba3c5a9951a811a4ee66b110", "evidence": {"same_day": true, "patch_ids": ["445602fcc451a7d952166f65e0246e84"], "statement_hash": "676de680ee84dc73aa1660891f9219895ba8cbda3d95bc0deddbc3a89252e5a4"}}], "version": "16.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "ee1ce92bba3c5a9951a811a4ee66b110", "kind": "equivalent", "version": "15.6", "label": "15.6", "title": "避免在外键强制触发器要更新的元组未通过额外可见性交叉检查时 heap_update() 和 heap_delete() 中的断言失败", "evidence": {"same_day": true, "patch_ids": ["445602fcc451a7d952166f65e0246e84"], "statement_hash": "676de680ee84dc73aa1660891f9219895ba8cbda3d95bc0deddbc3a89252e5a4"}, "url": "/docs/compare/?release=15.6#15.6-84a2cc91147404e8", "source_url": "/docs/release/15.6/#ZH-AUTO-RELEASE-15-SECT2-24"}, {"db_id": "a31ae7fe51afefc3b8d8c8d0d3c6f21c", "kind": "equivalent", "version": "14.11", "label": "14.11", "title": "避免在外键强制触发器要更新的元组未通过额外可见性交叉检查时 heap_update() 和 heap_delete() 中的断言失败", "evidence": {"same_day": true, "patch_ids": ["445602fcc451a7d952166f65e0246e84"], "statement_hash": "676de680ee84dc73aa1660891f9219895ba8cbda3d95bc0deddbc3a89252e5a4"}, "url": "/docs/compare/?release=14.11#14.11-459d54b4d5977eb9", "source_url": "/docs/release/14.11/#ZH-AUTO-RELEASE-14-SECT2-24"}, {"db_id": "02b9b43a00400d5ed665a23bcc53a585", "kind": "equivalent", "version": "13.14", "label": "13.14", "title": "避免在外键强制触发器要更新的元组未通过额外可见性交叉检查时 heap_update() 和 heap_delete() 中的断言失败", "evidence": {"same_day": true, "patch_ids": ["445602fcc451a7d952166f65e0246e84"], "statement_hash": "676de680ee84dc73aa1660891f9219895ba8cbda3d95bc0deddbc3a89252e5a4"}, "url": "/docs/compare/?release=13.14#13.14-248fc4e1613b7596", "source_url": "/docs/release/13.14/#id-1.11.6.15.5"}, {"db_id": "72b6d0d8d396821c068670959b46120f", "kind": "equivalent", "version": "12.18", "label": "12.18", "title": "避免在外键强制触发器要更新的元组未通过额外可见性交叉检查时 heap_update() 和 heap_delete() 中的断言失败", "evidence": {"same_day": true, "patch_ids": ["445602fcc451a7d952166f65e0246e84"], "statement_hash": "676de680ee84dc73aa1660891f9219895ba8cbda3d95bc0deddbc3a89252e5a4"}, "url": "/docs/compare/?release=12.18#12.18-fa48bc75be70d958", "source_url": "/docs/release/12.18/#id-1.11.6.10.6"}]}, {"id": "16.2-2969fedfddea680b", "cves": [], "html": "<p>修复 BRIN bloom 操作符类的 <code>false_positive_rate</code> 参数的过于严格的断言（Alexander Lakhin）<a href=\"https://postgr.es/c/4dccf9575\">§</a></p>\n<p>此错误在非断言构建中同样没有影响。</p>", "text": "修复 BRIN bloom 操作符类的 false_positive_rate 参数的过于严格的断言（Alexander Lakhin）§ 此错误在非断言构建中同样没有影响。", "title": "修复 BRIN bloom 操作符类的 false_positive_rate 参数的过于严格的断言", "commits": ["4dccf9575"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/16.2/#RELEASE-16-2-CHANGES", "source_hash": "16568f6908e6fc5ebb3d4fea417c449a95e6ed4e2aaffc39eed1799f04d7f3e9", "section_path": ["变更"], "commit_groups": [["1b2c6b756", "4dccf9575", "59fc39c0d", "7e18c0bd6"]], "identity_text": "Fix overly tight assertion about false_positive_rate parameter of BRIN bloom operator classes (Alexander Lakhin) This error had no impact in non-assert builds, either.", "commit_aliases": ["1b2c6b756", "4dccf9575", "59fc39c0d", "7e18c0bd6"], "source_commits": ["4dccf9575"], "source_entry_id": "16.2/changes/015", "db_id": "01cdf2481aa0a8441706bd17a62dc55a", "patch_ids": ["26cdd34f9b55ec6a7e16c8a1fc11cf53"], "statement_hash": "83e69bcb667fa32039630a0e4fc2db5f26e0ea9f2b159689a8ddd58d6af98997", "relations": [{"rule": 2, "type": "equivalent", "target": "3603fd1c155ff529092ff62e35fe6fde", "evidence": {"same_day": true, "patch_ids": ["26cdd34f9b55ec6a7e16c8a1fc11cf53"], "statement_hash": "83e69bcb667fa32039630a0e4fc2db5f26e0ea9f2b159689a8ddd58d6af98997"}}, {"rule": 2, "type": "equivalent", "target": "84a6b43075ab63a56fc0efda19fe5f9d", "evidence": {"same_day": true, "patch_ids": ["26cdd34f9b55ec6a7e16c8a1fc11cf53"], "statement_hash": "83e69bcb667fa32039630a0e4fc2db5f26e0ea9f2b159689a8ddd58d6af98997"}}], "version": "16.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "84a6b43075ab63a56fc0efda19fe5f9d", "kind": "equivalent", "version": "15.6", "label": "15.6", "title": "修复 BRIN bloom 操作符类的 false_positive_rate 参数的过于严格的断言", "evidence": {"same_day": true, "patch_ids": ["26cdd34f9b55ec6a7e16c8a1fc11cf53"], "statement_hash": "83e69bcb667fa32039630a0e4fc2db5f26e0ea9f2b159689a8ddd58d6af98997"}, "url": "/docs/compare/?release=15.6#15.6-203d2ce19e25a10c", "source_url": "/docs/release/15.6/#ZH-AUTO-RELEASE-15-SECT2-24"}, {"db_id": "3603fd1c155ff529092ff62e35fe6fde", "kind": "equivalent", "version": "14.11", "label": "14.11", "title": "修复 BRIN bloom 操作符类的 false_positive_rate 参数的过于严格的断言", "evidence": {"same_day": true, "patch_ids": ["26cdd34f9b55ec6a7e16c8a1fc11cf53"], "statement_hash": "83e69bcb667fa32039630a0e4fc2db5f26e0ea9f2b159689a8ddd58d6af98997"}, "url": "/docs/compare/?release=14.11#14.11-29798d2cd4cc46ec", "source_url": "/docs/release/14.11/#ZH-AUTO-RELEASE-14-SECT2-24"}]}, {"id": "16.2-79afef1c3ae55a3a", "cves": [], "html": "<p>修复在复杂继承树上执行 <code>ALTER TABLE ADD COLUMN</code> 时可能的失败（Tender Wang）<a href=\"https://postgr.es/c/51193e7a7\">§</a></p>\n<p>如果孙子表通过多个中间父表继承新列，该命令会失败并报告 <span>“<span>tuple already updated by self</span>”</span>。</p>", "text": "修复在复杂继承树上执行 ALTER TABLE ADD COLUMN 时可能的失败（Tender Wang）§ 如果孙子表通过多个中间父表继承新列，该命令会失败并报告 “tuple already updated by self”。", "title": "修复在复杂继承树上执行 ALTER TABLE ADD COLUMN 时可能的失败", "commits": ["51193e7a7"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/16.2/#RELEASE-16-2-CHANGES", "source_hash": "23d330d62132e8cef0f00b1df26a62e1745df579648cd6084d2beaedce65109f", "section_path": ["变更"], "commit_groups": [["2f7242837", "51193e7a7", "5a7833f49", "ad6fbbeeb", "bb812ab09", "bfec14d06"]], "identity_text": "Fix possible failure during ALTER TABLE ADD COLUMN on a complex inheritance tree (Tender Wang) If a grandchild table would inherit the new column via multiple intermediate parents, the command failed with tuple already updated by self.", "commit_aliases": ["2f7242837", "51193e7a7", "5a7833f49", "ad6fbbeeb", "bb812ab09", "bfec14d06"], "source_commits": ["51193e7a7"], "source_entry_id": "16.2/changes/016", "db_id": "142fb00bd273ceb1084026118f4b21b6", "patch_ids": ["be49e88e0990c2df1775a93a35c5e42a"], "statement_hash": "97cdf172dd624c2910cce06079cd54407fb34b4118bab8a35282cf0874bacdd8", "relations": [{"rule": 2, "type": "equivalent", "target": "301792a25f5cba72b30b84c95ef907f5", "evidence": {"same_day": true, "patch_ids": ["be49e88e0990c2df1775a93a35c5e42a"], "statement_hash": "97cdf172dd624c2910cce06079cd54407fb34b4118bab8a35282cf0874bacdd8"}}, {"rule": 2, "type": "equivalent", "target": "673170aa07e336a5c8baed14356d0f67", "evidence": {"same_day": true, "patch_ids": ["be49e88e0990c2df1775a93a35c5e42a"], "statement_hash": "97cdf172dd624c2910cce06079cd54407fb34b4118bab8a35282cf0874bacdd8"}}, {"rule": 2, "type": "equivalent", "target": "946b01eb01795e5f4ce183aa9fbbdb39", "evidence": {"same_day": true, "patch_ids": ["be49e88e0990c2df1775a93a35c5e42a"], "statement_hash": "97cdf172dd624c2910cce06079cd54407fb34b4118bab8a35282cf0874bacdd8"}}, {"rule": 2, "type": "equivalent", "target": "ef85d1026556ed2b4eaab696535fbcd7", "evidence": {"same_day": true, "patch_ids": ["be49e88e0990c2df1775a93a35c5e42a"], "statement_hash": "97cdf172dd624c2910cce06079cd54407fb34b4118bab8a35282cf0874bacdd8"}}], "version": "16.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "673170aa07e336a5c8baed14356d0f67", "kind": "equivalent", "version": "15.6", "label": "15.6", "title": "修复在复杂继承树上执行 ALTER TABLE ADD COLUMN 时可能的失败", "evidence": {"same_day": true, "patch_ids": ["be49e88e0990c2df1775a93a35c5e42a"], "statement_hash": "97cdf172dd624c2910cce06079cd54407fb34b4118bab8a35282cf0874bacdd8"}, "url": "/docs/compare/?release=15.6#15.6-7a8b3c47032c76b0", "source_url": "/docs/release/15.6/#ZH-AUTO-RELEASE-15-SECT2-24"}, {"db_id": "ef85d1026556ed2b4eaab696535fbcd7", "kind": "equivalent", "version": "14.11", "label": "14.11", "title": "修复在复杂继承树上执行 ALTER TABLE ADD COLUMN 时可能的失败", "evidence": {"same_day": true, "patch_ids": ["be49e88e0990c2df1775a93a35c5e42a"], "statement_hash": "97cdf172dd624c2910cce06079cd54407fb34b4118bab8a35282cf0874bacdd8"}, "url": "/docs/compare/?release=14.11#14.11-0c5220275c391551", "source_url": "/docs/release/14.11/#ZH-AUTO-RELEASE-14-SECT2-24"}, {"db_id": "946b01eb01795e5f4ce183aa9fbbdb39", "kind": "equivalent", "version": "13.14", "label": "13.14", "title": "修复在复杂继承树上执行 ALTER TABLE ADD COLUMN 时可能的失败", "evidence": {"same_day": true, "patch_ids": ["be49e88e0990c2df1775a93a35c5e42a"], "statement_hash": "97cdf172dd624c2910cce06079cd54407fb34b4118bab8a35282cf0874bacdd8"}, "url": "/docs/compare/?release=13.14#13.14-1faed4c35c0e97f4", "source_url": "/docs/release/13.14/#id-1.11.6.15.5"}, {"db_id": "301792a25f5cba72b30b84c95ef907f5", "kind": "equivalent", "version": "12.18", "label": "12.18", "title": "修复在复杂继承树上执行 ALTER TABLE ADD COLUMN 时可能的失败", "evidence": {"same_day": true, "patch_ids": ["be49e88e0990c2df1775a93a35c5e42a"], "statement_hash": "97cdf172dd624c2910cce06079cd54407fb34b4118bab8a35282cf0874bacdd8"}, "url": "/docs/compare/?release=12.18#12.18-bf5c96f625aff4b1", "source_url": "/docs/release/12.18/#id-1.11.6.10.6"}]}, {"id": "16.2-01a599d32f280c9c", "cves": [], "html": "<p>修复 <code>ALTER TEXT SEARCH CONFIGURATION ... MAPPING</code> 命令中重复令牌名称的问题（Tender Wang，Michael Paquier）<a href=\"https://postgr.es/c/f33e83285\">§</a></p>", "text": "修复 ALTER TEXT SEARCH CONFIGURATION ... MAPPING 命令中重复令牌名称的问题（Tender Wang，Michael Paquier）§", "title": "修复 ALTER TEXT SEARCH CONFIGURATION ... MAPPING 命令中重复令牌名称的问题", "commits": ["f33e83285"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/16.2/#RELEASE-16-2-CHANGES", "source_hash": "cd33bf9e3b9f24b41411ed625fdd917099be0e3b04cdbdcd1287bf02b532c774", "section_path": ["变更"], "commit_groups": [["056109782", "3e91dba8b", "41fa4b31c", "4d0e8a008", "dde5b01c3", "f33e83285"]], "identity_text": "Fix problems with duplicate token names in ALTER TEXT SEARCH CONFIGURATION ... MAPPING commands (Tender Wang, Michael Paquier)", "commit_aliases": ["056109782", "3e91dba8b", "41fa4b31c", "4d0e8a008", "dde5b01c3", "f33e83285"], "source_commits": ["f33e83285"], "source_entry_id": "16.2/changes/017", "db_id": "b8734ccbe40c84fd911c399ad20c3b6a", "patch_ids": ["59d7fb42c074f511f0c0cdc3c68ec148"], "statement_hash": "17fbf9d18d0e96ef1a721c19c437bf89ecef8f04cab7582bd523f0113032f39d", "relations": [{"rule": 2, "type": "equivalent", "target": "3147846bb87660ecdec407c2ea72cdb5", "evidence": {"same_day": true, "patch_ids": ["59d7fb42c074f511f0c0cdc3c68ec148"], "statement_hash": "17fbf9d18d0e96ef1a721c19c437bf89ecef8f04cab7582bd523f0113032f39d"}}, {"rule": 2, "type": "equivalent", "target": "37d3f9744bf2b8d1637ce780deb57e16", "evidence": {"same_day": true, "patch_ids": ["59d7fb42c074f511f0c0cdc3c68ec148"], "statement_hash": "17fbf9d18d0e96ef1a721c19c437bf89ecef8f04cab7582bd523f0113032f39d"}}, {"rule": 2, "type": "equivalent", "target": "c48208e5f6ca172aa035b8a394ccfad3", "evidence": {"same_day": true, "patch_ids": ["59d7fb42c074f511f0c0cdc3c68ec148"], "statement_hash": "17fbf9d18d0e96ef1a721c19c437bf89ecef8f04cab7582bd523f0113032f39d"}}, {"rule": 2, "type": "equivalent", "target": "fed9c6638ecf6c98360ab0480ba15153", "evidence": {"same_day": true, "patch_ids": ["59d7fb42c074f511f0c0cdc3c68ec148"], "statement_hash": "17fbf9d18d0e96ef1a721c19c437bf89ecef8f04cab7582bd523f0113032f39d"}}], "version": "16.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "37d3f9744bf2b8d1637ce780deb57e16", "kind": "equivalent", "version": "15.6", "label": "15.6", "title": "修复 ALTER TEXT SEARCH CONFIGURATION ... MAPPING 命令中重复令牌名称的问题", "evidence": {"same_day": true, "patch_ids": ["59d7fb42c074f511f0c0cdc3c68ec148"], "statement_hash": "17fbf9d18d0e96ef1a721c19c437bf89ecef8f04cab7582bd523f0113032f39d"}, "url": "/docs/compare/?release=15.6#15.6-a39445518cb2f6b9", "source_url": "/docs/release/15.6/#ZH-AUTO-RELEASE-15-SECT2-24"}, {"db_id": "3147846bb87660ecdec407c2ea72cdb5", "kind": "equivalent", "version": "14.11", "label": "14.11", "title": "修复 ALTER TEXT SEARCH CONFIGURATION ... MAPPING 命令中重复令牌名称的问题", "evidence": {"same_day": true, "patch_ids": ["59d7fb42c074f511f0c0cdc3c68ec148"], "statement_hash": "17fbf9d18d0e96ef1a721c19c437bf89ecef8f04cab7582bd523f0113032f39d"}, "url": "/docs/compare/?release=14.11#14.11-80461e6b84289af4", "source_url": "/docs/release/14.11/#ZH-AUTO-RELEASE-14-SECT2-24"}, {"db_id": "fed9c6638ecf6c98360ab0480ba15153", "kind": "equivalent", "version": "13.14", "label": "13.14", "title": "修复 ALTER TEXT SEARCH CONFIGURATION ... MAPPING 命令中重复令牌名称的问题", "evidence": {"same_day": true, "patch_ids": ["59d7fb42c074f511f0c0cdc3c68ec148"], "statement_hash": "17fbf9d18d0e96ef1a721c19c437bf89ecef8f04cab7582bd523f0113032f39d"}, "url": "/docs/compare/?release=13.14#13.14-7711319fdd385b6a", "source_url": "/docs/release/13.14/#id-1.11.6.15.5"}, {"db_id": "c48208e5f6ca172aa035b8a394ccfad3", "kind": "equivalent", "version": "12.18", "label": "12.18", "title": "修复 ALTER TEXT SEARCH CONFIGURATION ... MAPPING 命令中重复令牌名称的问题", "evidence": {"same_day": true, "patch_ids": ["59d7fb42c074f511f0c0cdc3c68ec148"], "statement_hash": "17fbf9d18d0e96ef1a721c19c437bf89ecef8f04cab7582bd523f0113032f39d"}, "url": "/docs/compare/?release=12.18#12.18-44f75ae507d7e0ed", "source_url": "/docs/release/12.18/#id-1.11.6.10.6"}]}, {"id": "16.2-de343c8ba67d6130", "cves": [], "html": "<p>修复使用重复角色名称的 <code>DROP ROLE</code>（Michael Paquier）<a href=\"https://postgr.es/c/f57a580fd\">§</a></p>\n<p>之前这会导致 <span>“<span>tuple already updated by self</span>”</span> 失败。现在改为忽略重复项。</p>", "text": "修复使用重复角色名称的 DROP ROLE（Michael Paquier）§ 之前这会导致 “tuple already updated by self” 失败。现在改为忽略重复项。", "title": "修复使用重复角色名称的 DROP ROLE", "commits": ["f57a580fd"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/16.2/#RELEASE-16-2-CHANGES", "source_hash": "3a3088256a0472f5e07dd27e10c3f624540782815d37f1d2cc28b0026c88bdde", "section_path": ["变更"], "commit_groups": [["50b797dc9", "f57a580fd"]], "identity_text": "Fix DROP ROLE with duplicate role names (Michael Paquier) Previously this led to a tuple already updated by self failure. Instead, ignore the duplicate.", "commit_aliases": ["50b797dc9", "f57a580fd"], "source_commits": ["f57a580fd"], "source_entry_id": "16.2/changes/018", "db_id": "c3e427f296a6dae40e16de89aaf93c8c", "patch_ids": ["3595d898df6d6779a689b267db6d9d0a"], "statement_hash": "f23a7f9226f4c44748d8152c43fb9ee76a2075a7477d977e78cb150b8170226a", "relations": [], "version": "16.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.2-4059e72fcb62d121", "cves": [], "html": "<p>在 <code>DROP STATISTICS</code> 时正确锁定关联的表（Tomas Vondra）<a href=\"https://postgr.es/c/ee32b824d\">§</a></p>\n<p>未能获取锁可能导致当 <code>DROP</code> 与 <code>ANALYZE</code> 并发执行时出现 <span>“<span>tuple concurrently deleted</span>”</span> 错误。</p>", "text": "在 DROP STATISTICS 时正确锁定关联的表（Tomas Vondra）§ 未能获取锁可能导致当 DROP 与 ANALYZE 并发执行时出现 “tuple concurrently deleted” 错误。", "title": "在 DROP STATISTICS 时正确锁定关联的表", "commits": ["ee32b824d"], "section": "变更", "category": "improvement", "source_url": "/docs/release/16.2/#RELEASE-16-2-CHANGES", "source_hash": "f82b9da29935a78646904fc83db42fe80bf08a7d5451c542564b9f0b2d7a2424", "section_path": ["变更"], "commit_groups": [["0177fc773", "1e468ea4e", "28f84f72f", "4f8d3c5b5", "9dd50e92e", "ee32b824d"]], "identity_text": "Properly lock the associated table during DROP STATISTICS (Tomas Vondra) Failure to acquire the lock could result in tuple concurrently deleted errors if the DROP executes concurrently with ANALYZE.", "commit_aliases": ["0177fc773", "1e468ea4e", "28f84f72f", "4f8d3c5b5", "9dd50e92e", "ee32b824d"], "source_commits": ["ee32b824d"], "source_entry_id": "16.2/changes/019", "db_id": "f53a542dad5b39419f1a307a67681a2e", "patch_ids": ["f16c9c7ec57931ea85e8740a3fb03d7e"], "statement_hash": "451569a51d133adbebd64f73605358e17699e1d449b12795d224bdeac91e9152", "relations": [{"rule": 2, "type": "equivalent", "target": "4f8167a414274067d5ff2fb24f246974", "evidence": {"same_day": true, "patch_ids": ["f16c9c7ec57931ea85e8740a3fb03d7e"], "statement_hash": "451569a51d133adbebd64f73605358e17699e1d449b12795d224bdeac91e9152"}}, {"rule": 2, "type": "equivalent", "target": "9a773a50382345e3f9583697c417d4dc", "evidence": {"same_day": true, "patch_ids": ["f16c9c7ec57931ea85e8740a3fb03d7e"], "statement_hash": "451569a51d133adbebd64f73605358e17699e1d449b12795d224bdeac91e9152"}}, {"rule": 2, "type": "equivalent", "target": "c8eb98328fe35b9ba5095f63f4870d6b", "evidence": {"same_day": true, "patch_ids": ["f16c9c7ec57931ea85e8740a3fb03d7e"], "statement_hash": "451569a51d133adbebd64f73605358e17699e1d449b12795d224bdeac91e9152"}}, {"rule": 2, "type": "equivalent", "target": "f1a21bf5d51dc4c6f3c2fad8a4b5eaa4", "evidence": {"same_day": true, "patch_ids": ["f16c9c7ec57931ea85e8740a3fb03d7e"], "statement_hash": "451569a51d133adbebd64f73605358e17699e1d449b12795d224bdeac91e9152"}}], "version": "16.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "9a773a50382345e3f9583697c417d4dc", "kind": "equivalent", "version": "15.6", "label": "15.6", "title": "在 DROP STATISTICS 时正确锁定关联的表", "evidence": {"same_day": true, "patch_ids": ["f16c9c7ec57931ea85e8740a3fb03d7e"], "statement_hash": "451569a51d133adbebd64f73605358e17699e1d449b12795d224bdeac91e9152"}, "url": "/docs/compare/?release=15.6#15.6-8722bc10efff7ad9", "source_url": "/docs/release/15.6/#ZH-AUTO-RELEASE-15-SECT2-24"}, {"db_id": "4f8167a414274067d5ff2fb24f246974", "kind": "equivalent", "version": "14.11", "label": "14.11", "title": "在 DROP STATISTICS 时正确锁定关联的表", "evidence": {"same_day": true, "patch_ids": ["f16c9c7ec57931ea85e8740a3fb03d7e"], "statement_hash": "451569a51d133adbebd64f73605358e17699e1d449b12795d224bdeac91e9152"}, "url": "/docs/compare/?release=14.11#14.11-c5b5d48f57a2fe05", "source_url": "/docs/release/14.11/#ZH-AUTO-RELEASE-14-SECT2-24"}, {"db_id": "c8eb98328fe35b9ba5095f63f4870d6b", "kind": "equivalent", "version": "13.14", "label": "13.14", "title": "在 DROP STATISTICS 时正确锁定关联的表", "evidence": {"same_day": true, "patch_ids": ["f16c9c7ec57931ea85e8740a3fb03d7e"], "statement_hash": "451569a51d133adbebd64f73605358e17699e1d449b12795d224bdeac91e9152"}, "url": "/docs/compare/?release=13.14#13.14-498ae9786f933cd4", "source_url": "/docs/release/13.14/#id-1.11.6.15.5"}, {"db_id": "f1a21bf5d51dc4c6f3c2fad8a4b5eaa4", "kind": "equivalent", "version": "12.18", "label": "12.18", "title": "在 DROP STATISTICS 时正确锁定关联的表", "evidence": {"same_day": true, "patch_ids": ["f16c9c7ec57931ea85e8740a3fb03d7e"], "statement_hash": "451569a51d133adbebd64f73605358e17699e1d449b12795d224bdeac91e9152"}, "url": "/docs/compare/?release=12.18#12.18-7838c89209d33043", "source_url": "/docs/release/12.18/#id-1.11.6.10.6"}]}, {"id": "16.2-e7306407956080b9", "cves": [], "html": "<p>修复 <code>GENERATED</code> 和 <code>DEFAULT</code> 表达式中的函数波动性检查（Tom Lane）<a href=\"https://postgr.es/c/f07a3039c\">§</a></p>\n<p>这些位置可能未能检测到易变函数默认参数表达式的插入，或者判定一个多态函数是易变的，而实际上对于相关的数据类型它是不可变的。这可能导致不正确地拒绝或接受 <code>GENERATED</code> 子句，或在 <code>ALTER TABLE ADD COLUMN</code> 中错误地应用常量默认值优化。</p>", "text": "修复 GENERATED 和 DEFAULT 表达式中的函数波动性检查（Tom Lane）§ 这些位置可能未能检测到易变函数默认参数表达式的插入，或者判定一个多态函数是易变的，而实际上对于相关的数据类型它是不可变的。这可能导致不正确地拒绝或接受 GENERATED 子句，或在 ALTER TABLE ADD COLUMN 中错误地应用常量默认值优化。", "title": "修复 GENERATED 和 DEFAULT 表达式中的函数波动性检查", "commits": ["f07a3039c"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/16.2/#RELEASE-16-2-CHANGES", "source_hash": "6c6c83589a192ec94b50d2eaab984f2cead518720ae5c343474175c7bbef90f2", "section_path": ["变更"], "commit_groups": [["5c11104c7", "743ddafc7", "9057ddbef", "9bd0f74ea", "abd1b1325", "f07a3039c"]], "identity_text": "Fix function volatility checking for GENERATED and DEFAULT expressions (Tom Lane) These places could fail to detect insertion of a volatile function default-argument expression, or decide that a polymorphic function is volatile although it is actually immutable on the datatype of interest. This could lead to improperly rejecting or accepting a GENERATED clause, or to mistakenly applying the constant-default-value optimization in ALTER TABLE ADD COLUMN.", "commit_aliases": ["5c11104c7", "743ddafc7", "9057ddbef", "9bd0f74ea", "abd1b1325", "f07a3039c"], "source_commits": ["f07a3039c"], "source_entry_id": "16.2/changes/020", "db_id": "3af23fdfef5c14ac7c990f2cba39b742", "patch_ids": ["f473dd7bcd43a9f9b35c9dc37b725494"], "statement_hash": "49e7a013ce62950f4943323bee73252b556841c7b97927881273c99b9cfa8dde", "relations": [{"rule": 2, "type": "equivalent", "target": "73d149cede93fdfc7c476d053cab1af0", "evidence": {"same_day": true, "patch_ids": ["f473dd7bcd43a9f9b35c9dc37b725494"], "statement_hash": "49e7a013ce62950f4943323bee73252b556841c7b97927881273c99b9cfa8dde"}}, {"rule": 2, "type": "equivalent", "target": "78d499950c57f2f4a1419533d7aa3ce1", "evidence": {"same_day": true, "patch_ids": ["f473dd7bcd43a9f9b35c9dc37b725494"], "statement_hash": "49e7a013ce62950f4943323bee73252b556841c7b97927881273c99b9cfa8dde"}}, {"rule": 2, "type": "equivalent", "target": "d1d96d30a69bc54cec2e786f82986b55", "evidence": {"same_day": true, "patch_ids": ["f473dd7bcd43a9f9b35c9dc37b725494"], "statement_hash": "49e7a013ce62950f4943323bee73252b556841c7b97927881273c99b9cfa8dde"}}, {"rule": 2, "type": "equivalent", "target": "dff500e9e35ffc0d7775ac5b79b4855d", "evidence": {"same_day": true, "patch_ids": ["f473dd7bcd43a9f9b35c9dc37b725494"], "statement_hash": "49e7a013ce62950f4943323bee73252b556841c7b97927881273c99b9cfa8dde"}}], "version": "16.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "73d149cede93fdfc7c476d053cab1af0", "kind": "equivalent", "version": "15.6", "label": "15.6", "title": "修复 GENERATED 和 DEFAULT 表达式中的函数波动性检查", "evidence": {"same_day": true, "patch_ids": ["f473dd7bcd43a9f9b35c9dc37b725494"], "statement_hash": "49e7a013ce62950f4943323bee73252b556841c7b97927881273c99b9cfa8dde"}, "url": "/docs/compare/?release=15.6#15.6-275db0f1ddcede3a", "source_url": "/docs/release/15.6/#ZH-AUTO-RELEASE-15-SECT2-24"}, {"db_id": "78d499950c57f2f4a1419533d7aa3ce1", "kind": "equivalent", "version": "14.11", "label": "14.11", "title": "修复 GENERATED 和 DEFAULT 表达式中的函数波动性检查", "evidence": {"same_day": true, "patch_ids": ["f473dd7bcd43a9f9b35c9dc37b725494"], "statement_hash": "49e7a013ce62950f4943323bee73252b556841c7b97927881273c99b9cfa8dde"}, "url": "/docs/compare/?release=14.11#14.11-95b1054f2ac5f590", "source_url": "/docs/release/14.11/#ZH-AUTO-RELEASE-14-SECT2-24"}, {"db_id": "d1d96d30a69bc54cec2e786f82986b55", "kind": "equivalent", "version": "13.14", "label": "13.14", "title": "修复 GENERATED 和 DEFAULT 表达式中的函数波动性检查", "evidence": {"same_day": true, "patch_ids": ["f473dd7bcd43a9f9b35c9dc37b725494"], "statement_hash": "49e7a013ce62950f4943323bee73252b556841c7b97927881273c99b9cfa8dde"}, "url": "/docs/compare/?release=13.14#13.14-f3c3222a522043da", "source_url": "/docs/release/13.14/#id-1.11.6.15.5"}, {"db_id": "dff500e9e35ffc0d7775ac5b79b4855d", "kind": "equivalent", "version": "12.18", "label": "12.18", "title": "修复 GENERATED 和 DEFAULT 表达式中的函数波动性检查", "evidence": {"same_day": true, "patch_ids": ["f473dd7bcd43a9f9b35c9dc37b725494"], "statement_hash": "49e7a013ce62950f4943323bee73252b556841c7b97927881273c99b9cfa8dde"}, "url": "/docs/compare/?release=12.18#12.18-5cf233c28783912c", "source_url": "/docs/release/12.18/#id-1.11.6.10.6"}]}, {"id": "16.2-26c80eb4dc7181c3", "cves": [], "html": "<p>检测新目录缓存条目在展开其字段时变为过时的情况（Tom Lane）<a href=\"https://postgr.es/c/7e2561e1a\">§</a> <a href=\"https://postgr.es/c/56dcd71de\">§</a></p>\n<p>我们在将目录元组插入目录缓存之前会展开其中的行外字段。这涉及数据库访问，可能导致目录缓存条目的失效 — 但新条目尚不在缓存中，所以我们未能察觉它也应该失效。结果是一个竞态条件，其中已经过时的缓存条目可能被创建，然后无限期地持续存在。这会导致难以预测的异常行为。通过在展开后重新检查元组的可见性来修复此问题。</p>", "text": "检测新目录缓存条目在展开其字段时变为过时的情况（Tom Lane）§ § 我们在将目录元组插入目录缓存之前会展开其中的行外字段。这涉及数据库访问，可能导致目录缓存条目的失效 — 但新条目尚不在缓存中，所以我们未能察觉它也应该失效。结果是一个竞态条件，其中已经过时的缓存条目可能被创建，然后无限期地持续存在。这会导致难以预测的异常行为。通过在展开后重新检查元组的可见性来修复此问题。", "title": "检测新目录缓存条目在展开其字段时变为过时的情况", "commits": ["56dcd71de", "7e2561e1a"], "section": "变更", "category": "improvement", "source_url": "/docs/release/16.2/#RELEASE-16-2-CHANGES", "source_hash": "002130128321e4d810305d63d9c06c2d071344bd887b3834ca2232162f5d9869", "section_path": ["变更"], "commit_groups": [["2a46a0df4", "3b4d85cf1", "7e2561e1a", "98e03f957", "ad98fb142", "db122d426"], ["475b3ea3c", "56dcd71de", "7ceeb57ba", "96c019ffa", "d29a4fbac", "d41358f4b"]], "identity_text": "Detect that a new catalog cache entry became stale while detoasting its fields (Tom Lane) We expand any out-of-line fields in a catalog tuple before inserting it into the catalog caches. That involves database access which might cause invalidation of catalog cache entries — but the new entry isn't in the cache yet, so we would miss noticing that it should get invalidated. The result is a race condition in which an already-stale cache entry could get made, and then persist indefinitely. This would lead to hard-to-predict misbehavior. Fix by rechecking the tuple's visibility after detoasting.", "commit_aliases": ["2a46a0df4", "3b4d85cf1", "475b3ea3c", "56dcd71de", "7ceeb57ba", "7e2561e1a", "96c019ffa", "98e03f957", "ad98fb142", "d29a4fbac", "d41358f4b", "db122d426"], "source_commits": ["56dcd71de", "7e2561e1a"], "source_entry_id": "16.2/changes/021", "db_id": "583ae0d5aaa8513cfe4fa001f0acf10a", "patch_ids": ["52adc22f7e9127149ea3465a1f666b1b", "8f38a167545caff809df52a7908322cd"], "statement_hash": "020bd9b1f058ad0ed3f4984d9bb28313d69034c42bc0cdb19de9ed8f794507c1", "relations": [{"rule": 2, "type": "equivalent", "target": "0f3e6462b9a06ec443192f85a341b28a", "evidence": {"same_day": true, "patch_ids": ["52adc22f7e9127149ea3465a1f666b1b", "8f38a167545caff809df52a7908322cd"], "statement_hash": "020bd9b1f058ad0ed3f4984d9bb28313d69034c42bc0cdb19de9ed8f794507c1"}}, {"rule": 2, "type": "equivalent", "target": "48a20702e9c5f1c7910ebe53cfafc893", "evidence": {"same_day": true, "patch_ids": ["52adc22f7e9127149ea3465a1f666b1b", "8f38a167545caff809df52a7908322cd"], "statement_hash": "020bd9b1f058ad0ed3f4984d9bb28313d69034c42bc0cdb19de9ed8f794507c1"}}, {"rule": 2, "type": "equivalent", "target": "6e4ff4564f959e95f303ecee3808b06b", "evidence": {"same_day": true, "patch_ids": ["52adc22f7e9127149ea3465a1f666b1b", "8f38a167545caff809df52a7908322cd"], "statement_hash": "020bd9b1f058ad0ed3f4984d9bb28313d69034c42bc0cdb19de9ed8f794507c1"}}, {"rule": 2, "type": "equivalent", "target": "c5fe09639e128d1bedf8b8f20bb6dd2a", "evidence": {"same_day": true, "patch_ids": ["52adc22f7e9127149ea3465a1f666b1b", "8f38a167545caff809df52a7908322cd"], "statement_hash": "020bd9b1f058ad0ed3f4984d9bb28313d69034c42bc0cdb19de9ed8f794507c1"}}], "version": "16.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "c5fe09639e128d1bedf8b8f20bb6dd2a", "kind": "equivalent", "version": "15.6", "label": "15.6", "title": "检测新目录缓存条目在展开其字段时变为过时的情况", "evidence": {"same_day": true, "patch_ids": ["52adc22f7e9127149ea3465a1f666b1b", "8f38a167545caff809df52a7908322cd"], "statement_hash": "020bd9b1f058ad0ed3f4984d9bb28313d69034c42bc0cdb19de9ed8f794507c1"}, "url": "/docs/compare/?release=15.6#15.6-86ef17c63b10fe39", "source_url": "/docs/release/15.6/#ZH-AUTO-RELEASE-15-SECT2-24"}, {"db_id": "6e4ff4564f959e95f303ecee3808b06b", "kind": "equivalent", "version": "14.11", "label": "14.11", "title": "检测新目录缓存条目在展开其字段时变为过时的情况", "evidence": {"same_day": true, "patch_ids": ["52adc22f7e9127149ea3465a1f666b1b", "8f38a167545caff809df52a7908322cd"], "statement_hash": "020bd9b1f058ad0ed3f4984d9bb28313d69034c42bc0cdb19de9ed8f794507c1"}, "url": "/docs/compare/?release=14.11#14.11-2ff054716fdf65d3", "source_url": "/docs/release/14.11/#ZH-AUTO-RELEASE-14-SECT2-24"}, {"db_id": "48a20702e9c5f1c7910ebe53cfafc893", "kind": "equivalent", "version": "13.14", "label": "13.14", "title": "检测新目录缓存条目在展开其字段时变为过时的情况", "evidence": {"same_day": true, "patch_ids": ["52adc22f7e9127149ea3465a1f666b1b", "8f38a167545caff809df52a7908322cd"], "statement_hash": "020bd9b1f058ad0ed3f4984d9bb28313d69034c42bc0cdb19de9ed8f794507c1"}, "url": "/docs/compare/?release=13.14#13.14-bc362f16a8a3f6cd", "source_url": "/docs/release/13.14/#id-1.11.6.15.5"}, {"db_id": "0f3e6462b9a06ec443192f85a341b28a", "kind": "equivalent", "version": "12.18", "label": "12.18", "title": "检测新目录缓存条目在展开其字段时变为过时的情况", "evidence": {"same_day": true, "patch_ids": ["52adc22f7e9127149ea3465a1f666b1b", "8f38a167545caff809df52a7908322cd"], "statement_hash": "020bd9b1f058ad0ed3f4984d9bb28313d69034c42bc0cdb19de9ed8f794507c1"}, "url": "/docs/compare/?release=12.18#12.18-d1e01af7d8579d5a", "source_url": "/docs/release/12.18/#id-1.11.6.10.6"}]}, {"id": "16.2-0e37cf19d5e15650", "cves": [], "html": "<p>修复某些平台上边缘情况的整数溢出检测错误（Dean Rasheed）<a href=\"https://postgr.es/c/c396aca2b\">§</a></p>\n<p>计算 <code>0 - INT64_MIN</code> 应该导致溢出错误，在大多数平台上确实如此。然而，既没有整数溢出内置函数也没有 128 位整数的平台无法发现该溢出，而是返回 <code>INT64_MIN</code>。</p>", "text": "修复某些平台上边缘情况的整数溢出检测错误（Dean Rasheed）§ 计算 0 - INT64_MIN 应该导致溢出错误，在大多数平台上确实如此。然而，既没有整数溢出内置函数也没有 128 位整数的平台无法发现该溢出，而是返回 INT64_MIN。", "title": "修复某些平台上边缘情况的整数溢出检测错误", "commits": ["c396aca2b"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/16.2/#RELEASE-16-2-CHANGES", "source_hash": "15c20f56030440d67b2627d3231384b8f91823d10e48fa3455645f73cc4d6c6c", "section_path": ["变更"], "commit_groups": [["0e3e8fbd3", "308a69a98", "4f4a0010a", "b17a02be2", "c396aca2b", "dea12b40d"]], "identity_text": "Fix edge-case integer overflow detection bug on some platforms (Dean Rasheed) Computing 0 - INT64_MIN should result in an overflow error, and did on most platforms. However, platforms with neither integer overflow builtins nor 128-bit integers would fail to spot the overflow, instead returning INT64_MIN.", "commit_aliases": ["0e3e8fbd3", "308a69a98", "4f4a0010a", "b17a02be2", "c396aca2b", "dea12b40d"], "source_commits": ["c396aca2b"], "source_entry_id": "16.2/changes/022", "db_id": "fcb277177cea13e33ba10b1c10e41909", "patch_ids": ["82a15d4cd4a2310cbb92246bf216d271"], "statement_hash": "7730fefab0e656680e93141cff04fcf16a30df441b796ed55609364a34da3aad", "relations": [{"rule": 2, "type": "equivalent", "target": "9ae2597ce5e1aaabce7f2048ab4ea88c", "evidence": {"same_day": true, "patch_ids": ["82a15d4cd4a2310cbb92246bf216d271"], "statement_hash": "7730fefab0e656680e93141cff04fcf16a30df441b796ed55609364a34da3aad"}}, {"rule": 2, "type": "equivalent", "target": "b1b21a631a61aa8614cb93a2c203d6e9", "evidence": {"same_day": true, "patch_ids": ["82a15d4cd4a2310cbb92246bf216d271"], "statement_hash": "7730fefab0e656680e93141cff04fcf16a30df441b796ed55609364a34da3aad"}}, {"rule": 2, "type": "equivalent", "target": "d4034ceb9d9c0faf46dbbd48f333bbd2", "evidence": {"same_day": true, "patch_ids": ["82a15d4cd4a2310cbb92246bf216d271"], "statement_hash": "7730fefab0e656680e93141cff04fcf16a30df441b796ed55609364a34da3aad"}}, {"rule": 2, "type": "equivalent", "target": "fdface3bcadd11cbe9bb7a2f20183624", "evidence": {"same_day": true, "patch_ids": ["82a15d4cd4a2310cbb92246bf216d271"], "statement_hash": "7730fefab0e656680e93141cff04fcf16a30df441b796ed55609364a34da3aad"}}], "version": "16.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "9ae2597ce5e1aaabce7f2048ab4ea88c", "kind": "equivalent", "version": "15.6", "label": "15.6", "title": "修复某些平台上边缘情况的整数溢出检测错误", "evidence": {"same_day": true, "patch_ids": ["82a15d4cd4a2310cbb92246bf216d271"], "statement_hash": "7730fefab0e656680e93141cff04fcf16a30df441b796ed55609364a34da3aad"}, "url": "/docs/compare/?release=15.6#15.6-44644ff93444fee2", "source_url": "/docs/release/15.6/#ZH-AUTO-RELEASE-15-SECT2-24"}, {"db_id": "fdface3bcadd11cbe9bb7a2f20183624", "kind": "equivalent", "version": "14.11", "label": "14.11", "title": "修复某些平台上边缘情况的整数溢出检测错误", "evidence": {"same_day": true, "patch_ids": ["82a15d4cd4a2310cbb92246bf216d271"], "statement_hash": "7730fefab0e656680e93141cff04fcf16a30df441b796ed55609364a34da3aad"}, "url": "/docs/compare/?release=14.11#14.11-496bfa182bbcf6e7", "source_url": "/docs/release/14.11/#ZH-AUTO-RELEASE-14-SECT2-24"}, {"db_id": "d4034ceb9d9c0faf46dbbd48f333bbd2", "kind": "equivalent", "version": "13.14", "label": "13.14", "title": "修复某些平台上边缘情况的整数溢出检测错误", "evidence": {"same_day": true, "patch_ids": ["82a15d4cd4a2310cbb92246bf216d271"], "statement_hash": "7730fefab0e656680e93141cff04fcf16a30df441b796ed55609364a34da3aad"}, "url": "/docs/compare/?release=13.14#13.14-49f3f74dc209607b", "source_url": "/docs/release/13.14/#id-1.11.6.15.5"}, {"db_id": "b1b21a631a61aa8614cb93a2c203d6e9", "kind": "equivalent", "version": "12.18", "label": "12.18", "title": "修复某些平台上边缘情况的整数溢出检测错误", "evidence": {"same_day": true, "patch_ids": ["82a15d4cd4a2310cbb92246bf216d271"], "statement_hash": "7730fefab0e656680e93141cff04fcf16a30df441b796ed55609364a34da3aad"}, "url": "/docs/compare/?release=12.18#12.18-0f5298ebbdd296bc", "source_url": "/docs/release/12.18/#id-1.11.6.10.6"}]}, {"id": "16.2-94942a978b12503c", "cves": [], "html": "<p>检测在 <code>timestamp</code> 上加减 <code>interval</code> 时的儒略日溢出（Tom Lane）<a href=\"https://postgr.es/c/7204aea83\">§</a></p>\n<p>某些应该导致超出范围错误的情况反而产生了不正确的结果。</p>", "text": "检测在 timestamp 上加减 interval 时的儒略日溢出（Tom Lane）§ 某些应该导致超出范围错误的情况反而产生了不正确的结果。", "title": "检测在 timestamp 上加减 interval 时的儒略日溢出", "commits": ["7204aea83"], "section": "变更", "category": "improvement", "source_url": "/docs/release/16.2/#RELEASE-16-2-CHANGES", "source_hash": "464294dd8bb2b1f40fcbaba4202c0ad6dce2daa09beae40d0bc41246efd3011c", "section_path": ["变更"], "commit_groups": [["25cd2d640", "3eb8a87f6", "425127bed", "7204aea83", "86b6243a8", "c3bdb25fb"]], "identity_text": "Detect Julian-date overflow when adding or subtracting an interval to/from a timestamp (Tom Lane) Some cases that should cause an out-of-range error produced an incorrect result instead.", "commit_aliases": ["25cd2d640", "3eb8a87f6", "425127bed", "7204aea83", "86b6243a8", "c3bdb25fb"], "source_commits": ["7204aea83"], "source_entry_id": "16.2/changes/023", "db_id": "7a3480d795a76723d2b534f16cb3bf39", "patch_ids": ["0cb77fc7d36ae7646c0b2446cf6fa828"], "statement_hash": "4eacdbe954a40841ea03585e5ae572f801259d9f095d8666cbe8042b7221fa79", "relations": [{"rule": 2, "type": "equivalent", "target": "02fce217b28bb48875b4e6ddfb4843cf", "evidence": {"same_day": true, "patch_ids": ["0cb77fc7d36ae7646c0b2446cf6fa828"], "statement_hash": "4eacdbe954a40841ea03585e5ae572f801259d9f095d8666cbe8042b7221fa79"}}, {"rule": 2, "type": "equivalent", "target": "067f418da4ddfd783db86cee2711079c", "evidence": {"same_day": true, "patch_ids": ["0cb77fc7d36ae7646c0b2446cf6fa828"], "statement_hash": "4eacdbe954a40841ea03585e5ae572f801259d9f095d8666cbe8042b7221fa79"}}, {"rule": 2, "type": "equivalent", "target": "11448edd0757699ee4a8a223c6a0fae9", "evidence": {"same_day": true, "patch_ids": ["0cb77fc7d36ae7646c0b2446cf6fa828"], "statement_hash": "4eacdbe954a40841ea03585e5ae572f801259d9f095d8666cbe8042b7221fa79"}}, {"rule": 2, "type": "equivalent", "target": "ad68c0ac4d0bf6a2b70d8e4d787a3331", "evidence": {"same_day": true, "patch_ids": ["0cb77fc7d36ae7646c0b2446cf6fa828"], "statement_hash": "4eacdbe954a40841ea03585e5ae572f801259d9f095d8666cbe8042b7221fa79"}}], "version": "16.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "02fce217b28bb48875b4e6ddfb4843cf", "kind": "equivalent", "version": "15.6", "label": "15.6", "title": "检测在 timestamp 上加减 interval 时的儒略日溢出", "evidence": {"same_day": true, "patch_ids": ["0cb77fc7d36ae7646c0b2446cf6fa828"], "statement_hash": "4eacdbe954a40841ea03585e5ae572f801259d9f095d8666cbe8042b7221fa79"}, "url": "/docs/compare/?release=15.6#15.6-c1489ba5c7b1b06a", "source_url": "/docs/release/15.6/#ZH-AUTO-RELEASE-15-SECT2-24"}, {"db_id": "11448edd0757699ee4a8a223c6a0fae9", "kind": "equivalent", "version": "14.11", "label": "14.11", "title": "检测在 timestamp 上加减 interval 时的儒略日溢出", "evidence": {"same_day": true, "patch_ids": ["0cb77fc7d36ae7646c0b2446cf6fa828"], "statement_hash": "4eacdbe954a40841ea03585e5ae572f801259d9f095d8666cbe8042b7221fa79"}, "url": "/docs/compare/?release=14.11#14.11-9ae1775ef7d64f22", "source_url": "/docs/release/14.11/#ZH-AUTO-RELEASE-14-SECT2-24"}, {"db_id": "ad68c0ac4d0bf6a2b70d8e4d787a3331", "kind": "equivalent", "version": "13.14", "label": "13.14", "title": "检测在 timestamp 上加减 interval 时的儒略日溢出", "evidence": {"same_day": true, "patch_ids": ["0cb77fc7d36ae7646c0b2446cf6fa828"], "statement_hash": "4eacdbe954a40841ea03585e5ae572f801259d9f095d8666cbe8042b7221fa79"}, "url": "/docs/compare/?release=13.14#13.14-67558370fa6393fb", "source_url": "/docs/release/13.14/#id-1.11.6.15.5"}, {"db_id": "067f418da4ddfd783db86cee2711079c", "kind": "equivalent", "version": "12.18", "label": "12.18", "title": "检测在 timestamp 上加减 interval 时的儒略日溢出", "evidence": {"same_day": true, "patch_ids": ["0cb77fc7d36ae7646c0b2446cf6fa828"], "statement_hash": "4eacdbe954a40841ea03585e5ae572f801259d9f095d8666cbe8042b7221fa79"}, "url": "/docs/compare/?release=12.18#12.18-20a068c454b1d4ba", "source_url": "/docs/release/12.18/#id-1.11.6.10.6"}]}, {"id": "16.2-ab176581fb5ca10a", "cves": [], "html": "<p>增加 <code>interval_mul()</code> 和 <code>interval_div()</code> 中的更多溢出检查（Dean Rasheed）<a href=\"https://postgr.es/c/72d0c135b\">§</a></p>\n<p>某些应该导致超出范围错误的情况反而产生了不正确的结果。</p>", "text": "增加 interval_mul() 和 interval_div() 中的更多溢出检查（Dean Rasheed）§ 某些应该导致超出范围错误的情况反而产生了不正确的结果。", "title": "增加 interval_mul() 和 interval_div() 中的更多溢出检查", "commits": ["72d0c135b"], "section": "变更", "category": "improvement", "source_url": "/docs/release/16.2/#RELEASE-16-2-CHANGES", "source_hash": "4884004812d471022912931da2e5fa29fa27bce3c6e0ac8a2452d63eb92874eb", "section_path": ["变更"], "commit_groups": [["2851aa7d1", "2ffcebdba", "428770aad", "72d0c135b", "b218fbb7a", "f499d2b20"]], "identity_text": "Add more checks for overflow in interval_mul() and interval_div() (Dean Rasheed) Some cases that should cause an out-of-range error produced an incorrect result instead.", "commit_aliases": ["2851aa7d1", "2ffcebdba", "428770aad", "72d0c135b", "b218fbb7a", "f499d2b20"], "source_commits": ["72d0c135b"], "source_entry_id": "16.2/changes/024", "db_id": "91c46ee778e8f275975ba82261732a1a", "patch_ids": ["82e60d126c84521cecebda182adfbba1"], "statement_hash": "f2c5877e9ed93f017ebaa9c70f2f67221b192af36f1677ae1bc265b4c6ee0898", "relations": [{"rule": 2, "type": "equivalent", "target": "4cfaa5a4b7ae46a8f1a9753ff06c2dcc", "evidence": {"same_day": true, "patch_ids": ["82e60d126c84521cecebda182adfbba1"], "statement_hash": "f2c5877e9ed93f017ebaa9c70f2f67221b192af36f1677ae1bc265b4c6ee0898"}}, {"rule": 2, "type": "equivalent", "target": "54e5cb43a81ad7f52fbbe8544bf1a81b", "evidence": {"same_day": true, "patch_ids": ["82e60d126c84521cecebda182adfbba1"], "statement_hash": "f2c5877e9ed93f017ebaa9c70f2f67221b192af36f1677ae1bc265b4c6ee0898"}}, {"rule": 2, "type": "equivalent", "target": "6c9273221fcf8bf8f52c758d26971163", "evidence": {"same_day": true, "patch_ids": ["82e60d126c84521cecebda182adfbba1"], "statement_hash": "f2c5877e9ed93f017ebaa9c70f2f67221b192af36f1677ae1bc265b4c6ee0898"}}, {"rule": 2, "type": "equivalent", "target": "d1f1f8887f7d168c8e7150a76bc2adba", "evidence": {"same_day": true, "patch_ids": ["82e60d126c84521cecebda182adfbba1"], "statement_hash": "f2c5877e9ed93f017ebaa9c70f2f67221b192af36f1677ae1bc265b4c6ee0898"}}], "version": "16.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "54e5cb43a81ad7f52fbbe8544bf1a81b", "kind": "equivalent", "version": "15.6", "label": "15.6", "title": "增加 interval_mul() 和 interval_div() 中的更多溢出检查", "evidence": {"same_day": true, "patch_ids": ["82e60d126c84521cecebda182adfbba1"], "statement_hash": "f2c5877e9ed93f017ebaa9c70f2f67221b192af36f1677ae1bc265b4c6ee0898"}, "url": "/docs/compare/?release=15.6#15.6-48dfa7dfb5640554", "source_url": "/docs/release/15.6/#ZH-AUTO-RELEASE-15-SECT2-24"}, {"db_id": "4cfaa5a4b7ae46a8f1a9753ff06c2dcc", "kind": "equivalent", "version": "14.11", "label": "14.11", "title": "增加 interval_mul() 和 interval_div() 中的更多溢出检查", "evidence": {"same_day": true, "patch_ids": ["82e60d126c84521cecebda182adfbba1"], "statement_hash": "f2c5877e9ed93f017ebaa9c70f2f67221b192af36f1677ae1bc265b4c6ee0898"}, "url": "/docs/compare/?release=14.11#14.11-ee1a6971df424096", "source_url": "/docs/release/14.11/#ZH-AUTO-RELEASE-14-SECT2-24"}, {"db_id": "d1f1f8887f7d168c8e7150a76bc2adba", "kind": "equivalent", "version": "13.14", "label": "13.14", "title": "增加 interval_mul() 和 interval_div() 中的更多溢出检查", "evidence": {"same_day": true, "patch_ids": ["82e60d126c84521cecebda182adfbba1"], "statement_hash": "f2c5877e9ed93f017ebaa9c70f2f67221b192af36f1677ae1bc265b4c6ee0898"}, "url": "/docs/compare/?release=13.14#13.14-cdcc01c80cf10dc8", "source_url": "/docs/release/13.14/#id-1.11.6.15.5"}, {"db_id": "6c9273221fcf8bf8f52c758d26971163", "kind": "equivalent", "version": "12.18", "label": "12.18", "title": "增加 interval_mul() 和 interval_div() 中的更多溢出检查", "evidence": {"same_day": true, "patch_ids": ["82e60d126c84521cecebda182adfbba1"], "statement_hash": "f2c5877e9ed93f017ebaa9c70f2f67221b192af36f1677ae1bc265b4c6ee0898"}, "url": "/docs/compare/?release=12.18#12.18-ed62d475b8f946b0", "source_url": "/docs/release/12.18/#id-1.11.6.10.6"}]}, {"id": "16.2-f11ca137dc40867b", "cves": [], "html": "<p>允许 <code>scram_SaltedPassword()</code> 被中断（Bowen Shi）<a href=\"https://postgr.es/c/07cb7bc1c\">§</a></p>\n<p>当 <code>scram_iterations</code> 值较大时，此函数可能需要很长时间运行。允许其被查询取消请求中断。</p>", "text": "允许 scram_SaltedPassword() 被中断（Bowen Shi）§ 当 scram_iterations 值较大时，此函数可能需要很长时间运行。允许其被查询取消请求中断。", "title": "允许 scram_SaltedPassword() 被中断", "commits": ["07cb7bc1c"], "section": "变更", "category": "improvement", "source_url": "/docs/release/16.2/#RELEASE-16-2-CHANGES", "source_hash": "5eea1de18698f002242e85667e66df54c2aaac8d840d7a3ce201361ae17e13e6", "section_path": ["变更"], "commit_groups": [["07cb7bc1c", "14f2f9eb1"]], "identity_text": "Allow scram_SaltedPassword() to be interrupted (Bowen Shi) With large scram_iterations values, this function could take a long time to run. Allow it to be interrupted by query cancel requests.", "commit_aliases": ["07cb7bc1c", "14f2f9eb1"], "source_commits": ["07cb7bc1c"], "source_entry_id": "16.2/changes/025", "db_id": "a230cb1f1d72844b9b7800f059b8a951", "patch_ids": ["8e8d46c0bfbbf014e2fcb570de5a9a8f"], "statement_hash": "33cf0c31755d2a7379453cfaa00148dfe10effb33828783372ba657387243de1", "relations": [], "version": "16.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.2-a4cff4d0b6050cc8", "cves": [], "html": "<p>确保在更改 <code>stats_fetch_consistency</code> 后丢弃缓存的统计信息（Shinya Kato）<a href=\"https://postgr.es/c/781bc121d\">§</a></p>\n<p>在某些代码路径中，可能会返回过期的统计信息。</p>", "text": "确保在更改 stats_fetch_consistency 后丢弃缓存的统计信息（Shinya Kato）§ 在某些代码路径中，可能会返回过期的统计信息。", "title": "确保在更改 stats_fetch_consistency 后丢弃缓存的统计信息", "commits": ["781bc121d"], "section": "变更", "category": "improvement", "source_url": "/docs/release/16.2/#RELEASE-16-2-CHANGES", "source_hash": "926bbbd2db8f7ef0c44a3494358a9bf53e0bf3186cbdc352a57cff77682ec57e", "section_path": ["变更"], "commit_groups": [["171d21f50", "235c09efb", "781bc121d"]], "identity_text": "Ensure cached statistics are discarded after a change to stats_fetch_consistency (Shinya Kato) In some code paths, it was possible for stale statistics to be returned.", "commit_aliases": ["171d21f50", "235c09efb", "781bc121d"], "source_commits": ["781bc121d"], "source_entry_id": "16.2/changes/026", "db_id": "8f4e8dc135e62ccf67b4b19e877a1bed", "patch_ids": ["6891575048a40472c72fb9435e1bddd7"], "statement_hash": "d93765e3bf00ac740f65a18d8db79413995154171269b2926fce1cee75b9565d", "relations": [{"rule": 2, "type": "equivalent", "target": "c6f6b891f6b2dffba5e4ffac890a4f16", "evidence": {"same_day": true, "patch_ids": ["6891575048a40472c72fb9435e1bddd7"], "statement_hash": "d93765e3bf00ac740f65a18d8db79413995154171269b2926fce1cee75b9565d"}}], "version": "16.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "c6f6b891f6b2dffba5e4ffac890a4f16", "kind": "equivalent", "version": "15.6", "label": "15.6", "title": "确保在更改 stats_fetch_consistency 后丢弃缓存的统计信息", "evidence": {"same_day": true, "patch_ids": ["6891575048a40472c72fb9435e1bddd7"], "statement_hash": "d93765e3bf00ac740f65a18d8db79413995154171269b2926fce1cee75b9565d"}, "url": "/docs/compare/?release=15.6#15.6-a8f85de6be842446", "source_url": "/docs/release/15.6/#ZH-AUTO-RELEASE-15-SECT2-24"}]}, {"id": "16.2-c93324afbe448847", "cves": [], "html": "<p>使 <code>pg_file_settings</code> 视图检查具有 <code>backend</code> 或 <code>superuser-backend</code> 上下文的设置中未应用值的有效性（Tom Lane）<a href=\"https://postgr.es/c/e87252ceb\">§</a></p>\n<p>无效值未按预期在视图中标注。这个问题未被发现是因为这些组中的设置非常少。</p>", "text": "使 pg_file_settings 视图检查具有 backend 或 superuser-backend 上下文的设置中未应用值的有效性（Tom Lane）§ 无效值未按预期在视图中标注。这个问题未被发现是因为这些组中的设置非常少。", "title": "使 pg_file_settings 视图检查具有 backend 或 superuser-backend 上下文的设置中未应用值的有效性", "commits": ["e87252ceb"], "section": "变更", "category": "improvement", "source_url": "/docs/release/16.2/#RELEASE-16-2-CHANGES", "source_hash": "17830d577d805d569abc1b85ffbd4250b35f4890dc0e9171a3109b1641960343", "section_path": ["变更"], "commit_groups": [["059de3ca4", "76dd3d94a", "bf4f30a0f", "cb88f44ec", "e87252ceb", "ea61b1cf6"]], "identity_text": "Make the pg_file_settings view check validity of unapplied values for settings with backend or superuser-backend context (Tom Lane) Invalid values were not noted in the view as intended. This escaped detection because there are very few settings in these groups.", "commit_aliases": ["059de3ca4", "76dd3d94a", "bf4f30a0f", "cb88f44ec", "e87252ceb", "ea61b1cf6"], "source_commits": ["e87252ceb"], "source_entry_id": "16.2/changes/027", "db_id": "3db29245757c2275cb1906dc50fe70af", "patch_ids": ["83901b2ec1e9cfa9da75130b0aad30fd"], "statement_hash": "96d107e58974e79f27b826497e0b37ef0fe9dc5206908adc1747db24a55f2c64", "relations": [{"rule": 2, "type": "equivalent", "target": "87f43c47b524ff08895c779faefc4768", "evidence": {"same_day": true, "patch_ids": ["83901b2ec1e9cfa9da75130b0aad30fd"], "statement_hash": "96d107e58974e79f27b826497e0b37ef0fe9dc5206908adc1747db24a55f2c64"}}, {"rule": 2, "type": "equivalent", "target": "9d77e0300e534680ba5da44c58825f64", "evidence": {"same_day": true, "patch_ids": ["83901b2ec1e9cfa9da75130b0aad30fd"], "statement_hash": "96d107e58974e79f27b826497e0b37ef0fe9dc5206908adc1747db24a55f2c64"}}, {"rule": 2, "type": "equivalent", "target": "a9460abd7d8abc77ed4bcee18e729774", "evidence": {"same_day": true, "patch_ids": ["83901b2ec1e9cfa9da75130b0aad30fd"], "statement_hash": "96d107e58974e79f27b826497e0b37ef0fe9dc5206908adc1747db24a55f2c64"}}, {"rule": 2, "type": "equivalent", "target": "b7c596be60fb44827b20c134c9ee3d1d", "evidence": {"same_day": true, "patch_ids": ["83901b2ec1e9cfa9da75130b0aad30fd"], "statement_hash": "96d107e58974e79f27b826497e0b37ef0fe9dc5206908adc1747db24a55f2c64"}}], "version": "16.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "9d77e0300e534680ba5da44c58825f64", "kind": "equivalent", "version": "15.6", "label": "15.6", "title": "使 pg_file_settings 视图检查具有 backend 或 superuser-backend 上下文的设置中未应用值的有效性", "evidence": {"same_day": true, "patch_ids": ["83901b2ec1e9cfa9da75130b0aad30fd"], "statement_hash": "96d107e58974e79f27b826497e0b37ef0fe9dc5206908adc1747db24a55f2c64"}, "url": "/docs/compare/?release=15.6#15.6-6c8cc55ac92797bd", "source_url": "/docs/release/15.6/#ZH-AUTO-RELEASE-15-SECT2-24"}, {"db_id": "b7c596be60fb44827b20c134c9ee3d1d", "kind": "equivalent", "version": "14.11", "label": "14.11", "title": "使 pg_file_settings 视图检查具有 backend 或 superuser-backend 上下文的设置中未应用值的有效性", "evidence": {"same_day": true, "patch_ids": ["83901b2ec1e9cfa9da75130b0aad30fd"], "statement_hash": "96d107e58974e79f27b826497e0b37ef0fe9dc5206908adc1747db24a55f2c64"}, "url": "/docs/compare/?release=14.11#14.11-d712b0572113fbb3", "source_url": "/docs/release/14.11/#ZH-AUTO-RELEASE-14-SECT2-24"}, {"db_id": "a9460abd7d8abc77ed4bcee18e729774", "kind": "equivalent", "version": "13.14", "label": "13.14", "title": "使 pg_file_settings 视图检查具有 backend 或 superuser-backend 上下文的设置中未应用值的有效性", "evidence": {"same_day": true, "patch_ids": ["83901b2ec1e9cfa9da75130b0aad30fd"], "statement_hash": "96d107e58974e79f27b826497e0b37ef0fe9dc5206908adc1747db24a55f2c64"}, "url": "/docs/compare/?release=13.14#13.14-34cdcac299f419d7", "source_url": "/docs/release/13.14/#id-1.11.6.15.5"}, {"db_id": "87f43c47b524ff08895c779faefc4768", "kind": "equivalent", "version": "12.18", "label": "12.18", "title": "使 pg_file_settings 视图检查具有 backend 或 superuser-backend 上下文的设置中未应用值的有效性", "evidence": {"same_day": true, "patch_ids": ["83901b2ec1e9cfa9da75130b0aad30fd"], "statement_hash": "96d107e58974e79f27b826497e0b37ef0fe9dc5206908adc1747db24a55f2c64"}, "url": "/docs/compare/?release=12.18#12.18-10451df50692a3ab", "source_url": "/docs/release/12.18/#id-1.11.6.10.6"}]}, {"id": "16.2-433a4a94d844681e", "cves": [], "html": "<p>在将现有索引匹配到新分区索引时也匹配排序规则（Peter Eisentraut）<a href=\"https://postgr.es/c/267f33f68\">§</a></p>\n<p>之前我们可能接受与分区键对应元素排序规则不同的索引，可能导致异常行为。</p>", "text": "在将现有索引匹配到新分区索引时也匹配排序规则（Peter Eisentraut）§ 之前我们可能接受与分区键对应元素排序规则不同的索引，可能导致异常行为。", "title": "在将现有索引匹配到新分区索引时也匹配排序规则", "commits": ["267f33f68"], "section": "变更", "category": "improvement", "source_url": "/docs/release/16.2/#RELEASE-16-2-CHANGES", "source_hash": "08d137582c05076052262201ab7c92ea093ad955494fd9c5c0f4ada000e5ed6c", "section_path": ["变更"], "commit_groups": [["15d485921", "267f33f68", "3c49fa2af", "5d40b3c4f", "a11c9c42e", "e846fc491"]], "identity_text": "Match collation too when matching an existing index to a new partitioned index (Peter Eisentraut) Previously we could accept an index that has a different collation from the corresponding element of the partition key, possibly leading to misbehavior.", "commit_aliases": ["15d485921", "267f33f68", "3c49fa2af", "5d40b3c4f", "a11c9c42e", "e846fc491"], "source_commits": ["267f33f68"], "source_entry_id": "16.2/changes/028", "db_id": "5e2f13ea40694ee201d6ea97646ceff9", "patch_ids": ["fe175bc907b34d79fe401aa5b36d3080"], "statement_hash": "f56f9e808c59a1f6bd6b8a4822f5e59596f81dffed58bb3886f1548bab004a30", "relations": [{"rule": 2, "type": "equivalent", "target": "5965d27d60362bec0e997845e716f978", "evidence": {"same_day": true, "patch_ids": ["fe175bc907b34d79fe401aa5b36d3080"], "statement_hash": "f56f9e808c59a1f6bd6b8a4822f5e59596f81dffed58bb3886f1548bab004a30"}}, {"rule": 2, "type": "equivalent", "target": "66a79b159f03bba15cd6ddaf61dfe586", "evidence": {"same_day": true, "patch_ids": ["fe175bc907b34d79fe401aa5b36d3080"], "statement_hash": "f56f9e808c59a1f6bd6b8a4822f5e59596f81dffed58bb3886f1548bab004a30"}}, {"rule": 2, "type": "equivalent", "target": "ef929832ab06891062003322b8acf97a", "evidence": {"same_day": true, "patch_ids": ["fe175bc907b34d79fe401aa5b36d3080"], "statement_hash": "f56f9e808c59a1f6bd6b8a4822f5e59596f81dffed58bb3886f1548bab004a30"}}, {"rule": 2, "type": "equivalent", "target": "f4fad4bf8c6879c9c18eabf3589d9bad", "evidence": {"same_day": true, "patch_ids": ["fe175bc907b34d79fe401aa5b36d3080"], "statement_hash": "f56f9e808c59a1f6bd6b8a4822f5e59596f81dffed58bb3886f1548bab004a30"}}], "version": "16.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "5965d27d60362bec0e997845e716f978", "kind": "equivalent", "version": "15.6", "label": "15.6", "title": "在将现有索引匹配到新分区索引时也匹配排序规则", "evidence": {"same_day": true, "patch_ids": ["fe175bc907b34d79fe401aa5b36d3080"], "statement_hash": "f56f9e808c59a1f6bd6b8a4822f5e59596f81dffed58bb3886f1548bab004a30"}, "url": "/docs/compare/?release=15.6#15.6-73edf18a0505f77a", "source_url": "/docs/release/15.6/#ZH-AUTO-RELEASE-15-SECT2-24"}, {"db_id": "66a79b159f03bba15cd6ddaf61dfe586", "kind": "equivalent", "version": "14.11", "label": "14.11", "title": "在将现有索引匹配到新分区索引时也匹配排序规则", "evidence": {"same_day": true, "patch_ids": ["fe175bc907b34d79fe401aa5b36d3080"], "statement_hash": "f56f9e808c59a1f6bd6b8a4822f5e59596f81dffed58bb3886f1548bab004a30"}, "url": "/docs/compare/?release=14.11#14.11-895decac6d4f16d3", "source_url": "/docs/release/14.11/#ZH-AUTO-RELEASE-14-SECT2-24"}, {"db_id": "f4fad4bf8c6879c9c18eabf3589d9bad", "kind": "equivalent", "version": "13.14", "label": "13.14", "title": "在将现有索引匹配到新分区索引时也匹配排序规则", "evidence": {"same_day": true, "patch_ids": ["fe175bc907b34d79fe401aa5b36d3080"], "statement_hash": "f56f9e808c59a1f6bd6b8a4822f5e59596f81dffed58bb3886f1548bab004a30"}, "url": "/docs/compare/?release=13.14#13.14-d58c000a843a9003", "source_url": "/docs/release/13.14/#id-1.11.6.15.5"}, {"db_id": "ef929832ab06891062003322b8acf97a", "kind": "equivalent", "version": "12.18", "label": "12.18", "title": "在将现有索引匹配到新分区索引时也匹配排序规则", "evidence": {"same_day": true, "patch_ids": ["fe175bc907b34d79fe401aa5b36d3080"], "statement_hash": "f56f9e808c59a1f6bd6b8a4822f5e59596f81dffed58bb3886f1548bab004a30"}, "url": "/docs/compare/?release=12.18#12.18-9999f9be63bf9c77", "source_url": "/docs/release/12.18/#id-1.11.6.10.6"}]}, {"id": "16.2-cce255972b31d03d", "cves": [], "html": "<p>避免在对分区索引执行 <code>REINDEX INDEX</code> 时子索引被并发删除导致的失败（Fei Changhong）<a href=\"https://postgr.es/c/c030e263e\">§</a> <a href=\"https://postgr.es/c/7ce65c6f7\">§</a></p>", "text": "避免在对分区索引执行 REINDEX INDEX 时子索引被并发删除导致的失败（Fei Changhong）§ §", "title": "避免在对分区索引执行 REINDEX INDEX 时子索引被并发删除导致的失败", "commits": ["7ce65c6f7", "c030e263e"], "section": "变更", "category": "improvement", "source_url": "/docs/release/16.2/#RELEASE-16-2-CHANGES", "source_hash": "e49f59e4a0c6e1cdfd564217b98999d71669a9568be0c0d042c8b8518b2886d9", "section_path": ["变更"], "commit_groups": [["0ae3b4662", "a0c19de11", "b6f2e019d", "c030e263e"], ["1cf2dba84", "7ce65c6f7", "8013850c8", "b685b41cf"]], "identity_text": "Avoid failure if a child index is dropped concurrently with REINDEX INDEX on a partitioned index (Fei Changhong)", "commit_aliases": ["0ae3b4662", "1cf2dba84", "7ce65c6f7", "8013850c8", "a0c19de11", "b685b41cf", "b6f2e019d", "c030e263e"], "source_commits": ["7ce65c6f7", "c030e263e"], "source_entry_id": "16.2/changes/029", "db_id": "9c4ead9868ec582088a7bca4604bbc7f", "patch_ids": ["3e9072ded3fa59975045dc698618d63e", "96984d187a98bf909c41d0e0ac9ff090"], "statement_hash": "ebba88e3b4fe8e68c521561f874e3eb96fa15481c73c6e1c59fca51eac079a07", "relations": [{"rule": 2, "type": "equivalent", "target": "77fd2069f941d58a616702d85f27ee33", "evidence": {"same_day": true, "patch_ids": ["3e9072ded3fa59975045dc698618d63e", "96984d187a98bf909c41d0e0ac9ff090"], "statement_hash": "ebba88e3b4fe8e68c521561f874e3eb96fa15481c73c6e1c59fca51eac079a07"}}, {"rule": 2, "type": "equivalent", "target": "f19047683bc71876bd0749a4a424ed11", "evidence": {"same_day": true, "patch_ids": ["3e9072ded3fa59975045dc698618d63e", "96984d187a98bf909c41d0e0ac9ff090"], "statement_hash": "ebba88e3b4fe8e68c521561f874e3eb96fa15481c73c6e1c59fca51eac079a07"}}], "version": "16.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "77fd2069f941d58a616702d85f27ee33", "kind": "equivalent", "version": "15.6", "label": "15.6", "title": "避免在对分区索引执行 REINDEX INDEX 时子索引被并发删除导致的失败", "evidence": {"same_day": true, "patch_ids": ["3e9072ded3fa59975045dc698618d63e", "96984d187a98bf909c41d0e0ac9ff090"], "statement_hash": "ebba88e3b4fe8e68c521561f874e3eb96fa15481c73c6e1c59fca51eac079a07"}, "url": "/docs/compare/?release=15.6#15.6-4f1998186db7bd3f", "source_url": "/docs/release/15.6/#ZH-AUTO-RELEASE-15-SECT2-24"}, {"db_id": "f19047683bc71876bd0749a4a424ed11", "kind": "equivalent", "version": "14.11", "label": "14.11", "title": "避免在对分区索引执行 REINDEX INDEX 时子索引被并发删除导致的失败", "evidence": {"same_day": true, "patch_ids": ["3e9072ded3fa59975045dc698618d63e", "96984d187a98bf909c41d0e0ac9ff090"], "statement_hash": "ebba88e3b4fe8e68c521561f874e3eb96fa15481c73c6e1c59fca51eac079a07"}, "url": "/docs/compare/?release=14.11#14.11-f9338b959c8198c9", "source_url": "/docs/release/14.11/#ZH-AUTO-RELEASE-14-SECT2-24"}]}, {"id": "16.2-c1cb14e4dc7dcb20", "cves": [], "html": "<p>修复清理 GIN 索引内部页面不完整分裂时的锁定不足问题（Fei Changhong，Heikki Linnakangas）<a href=\"https://postgr.es/c/b899e00e7\">§</a></p>\n<p>代码尝试使用共享锁而非排他锁来完成此操作。如果两个进程同时尝试清理，这可能导致索引损坏。</p>", "text": "修复清理 GIN 索引内部页面不完整分裂时的锁定不足问题（Fei Changhong，Heikki Linnakangas）§ 代码尝试使用共享锁而非排他锁来完成此操作。如果两个进程同时尝试清理，这可能导致索引损坏。", "title": "修复清理 GIN 索引内部页面不完整分裂时的锁定不足问题", "commits": ["b899e00e7"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/16.2/#RELEASE-16-2-CHANGES", "source_hash": "39d9fab8943c9b15e749051388510f02872b11cc7c9ddc7d4e095233f322fac2", "section_path": ["变更"], "commit_groups": [["6a1ea02c4", "b899e00e7", "e43425f48", "e6511fe64", "e74c91665", "f120c0872"]], "identity_text": "Fix insufficient locking when cleaning up an incomplete split of a GIN index's internal page (Fei Changhong, Heikki Linnakangas) The code tried to do this with shared rather than exclusive lock on the buffer. This could lead to index corruption if two processes attempted the cleanup concurrently.", "commit_aliases": ["6a1ea02c4", "b899e00e7", "e43425f48", "e6511fe64", "e74c91665", "f120c0872"], "source_commits": ["b899e00e7"], "source_entry_id": "16.2/changes/030", "db_id": "330aad59c32f5b30bdeb1f4cc701ddfd", "patch_ids": ["0b65e24d04b97cc1fe6b8156ddedbf7e"], "statement_hash": "ce4c1dfa316b698d2be3921cd0c6c399307e915c28b4cd58cad1004b9ceb0179", "relations": [{"rule": 2, "type": "equivalent", "target": "0c9ac9a07148fe78e223533939713637", "evidence": {"same_day": true, "patch_ids": ["0b65e24d04b97cc1fe6b8156ddedbf7e"], "statement_hash": "ce4c1dfa316b698d2be3921cd0c6c399307e915c28b4cd58cad1004b9ceb0179"}}, {"rule": 2, "type": "equivalent", "target": "1ba9c93eb037fb3add268f3af5007e87", "evidence": {"same_day": true, "patch_ids": ["0b65e24d04b97cc1fe6b8156ddedbf7e"], "statement_hash": "ce4c1dfa316b698d2be3921cd0c6c399307e915c28b4cd58cad1004b9ceb0179"}}, {"rule": 2, "type": "equivalent", "target": "40910f3e0c91ee7e288e9cf67052777d", "evidence": {"same_day": true, "patch_ids": ["0b65e24d04b97cc1fe6b8156ddedbf7e"], "statement_hash": "ce4c1dfa316b698d2be3921cd0c6c399307e915c28b4cd58cad1004b9ceb0179"}}, {"rule": 2, "type": "equivalent", "target": "c3f3a147bc5f0bfc0e343208ec810d09", "evidence": {"same_day": true, "patch_ids": ["0b65e24d04b97cc1fe6b8156ddedbf7e"], "statement_hash": "ce4c1dfa316b698d2be3921cd0c6c399307e915c28b4cd58cad1004b9ceb0179"}}], "version": "16.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "0c9ac9a07148fe78e223533939713637", "kind": "equivalent", "version": "15.6", "label": "15.6", "title": "修复清理 GIN 索引内部页面不完整分裂时的锁定不足问题", "evidence": {"same_day": true, "patch_ids": ["0b65e24d04b97cc1fe6b8156ddedbf7e"], "statement_hash": "ce4c1dfa316b698d2be3921cd0c6c399307e915c28b4cd58cad1004b9ceb0179"}, "url": "/docs/compare/?release=15.6#15.6-c669a8aebf3355d6", "source_url": "/docs/release/15.6/#ZH-AUTO-RELEASE-15-SECT2-24"}, {"db_id": "40910f3e0c91ee7e288e9cf67052777d", "kind": "equivalent", "version": "14.11", "label": "14.11", "title": "修复清理 GIN 索引内部页面不完整分裂时的锁定不足问题", "evidence": {"same_day": true, "patch_ids": ["0b65e24d04b97cc1fe6b8156ddedbf7e"], "statement_hash": "ce4c1dfa316b698d2be3921cd0c6c399307e915c28b4cd58cad1004b9ceb0179"}, "url": "/docs/compare/?release=14.11#14.11-2bdf6d5cbdc7827a", "source_url": "/docs/release/14.11/#ZH-AUTO-RELEASE-14-SECT2-24"}, {"db_id": "1ba9c93eb037fb3add268f3af5007e87", "kind": "equivalent", "version": "13.14", "label": "13.14", "title": "修复清理 GIN 索引内部页面不完整分裂时的锁定不足问题", "evidence": {"same_day": true, "patch_ids": ["0b65e24d04b97cc1fe6b8156ddedbf7e"], "statement_hash": "ce4c1dfa316b698d2be3921cd0c6c399307e915c28b4cd58cad1004b9ceb0179"}, "url": "/docs/compare/?release=13.14#13.14-eecf5551134ff3df", "source_url": "/docs/release/13.14/#id-1.11.6.15.5"}, {"db_id": "c3f3a147bc5f0bfc0e343208ec810d09", "kind": "equivalent", "version": "12.18", "label": "12.18", "title": "修复清理 GIN 索引内部页面不完整分裂时的锁定不足问题", "evidence": {"same_day": true, "patch_ids": ["0b65e24d04b97cc1fe6b8156ddedbf7e"], "statement_hash": "ce4c1dfa316b698d2be3921cd0c6c399307e915c28b4cd58cad1004b9ceb0179"}, "url": "/docs/compare/?release=12.18#12.18-d109a9fa39955ab0", "source_url": "/docs/release/12.18/#id-1.11.6.10.6"}]}, {"id": "16.2-8ac48afaa8992315", "cves": [], "html": "<p>避免在 GIN 索引插入中过早释放缓冲区固定（Tom Lane）<a href=\"https://postgr.es/c/f76b975d5\">§</a></p>\n<p>如果索引根页面的分裂与我们自己的插入并发发生，代码可能报告 <span>“<span>buffer NNNN is not owned by resource owner</span>”</span>。</p>", "text": "避免在 GIN 索引插入中过早释放缓冲区固定（Tom Lane）§ 如果索引根页面的分裂与我们自己的插入并发发生，代码可能报告 “buffer NNNN is not owned by resource owner”。", "title": "避免在 GIN 索引插入中过早释放缓冲区固定", "commits": ["f76b975d5"], "section": "变更", "category": "improvement", "source_url": "/docs/release/16.2/#RELEASE-16-2-CHANGES", "source_hash": "a6827fd67314f08177c19e155a1055d8163e4df7ee1d23c6e6b9b0716cb33889", "section_path": ["变更"], "commit_groups": [["4c73ec604", "5a6937ec9", "5c62ecf6e", "c859d688b", "d900e74e0", "f76b975d5"]], "identity_text": "Avoid premature release of buffer pin in GIN index insertion (Tom Lane) If an index root page split occurs concurrently with our own insertion, the code could fail with buffer NNNN is not owned by resource owner.", "commit_aliases": ["4c73ec604", "5a6937ec9", "5c62ecf6e", "c859d688b", "d900e74e0", "f76b975d5"], "source_commits": ["f76b975d5"], "source_entry_id": "16.2/changes/031", "db_id": "439485a9b20eaa41f5de58eb093eb06b", "patch_ids": ["3f249d155b5c2df541d28789fb465925"], "statement_hash": "bb4ac73864cb8b0290e8d72da8ec147875338049505cecf89c4646f61249feb5", "relations": [{"rule": 2, "type": "equivalent", "target": "0e900f8d28f2621d5ed94bbcce3de62a", "evidence": {"same_day": true, "patch_ids": ["3f249d155b5c2df541d28789fb465925"], "statement_hash": "bb4ac73864cb8b0290e8d72da8ec147875338049505cecf89c4646f61249feb5"}}, {"rule": 2, "type": "equivalent", "target": "30792f0b586fc34673ee37b2668327a6", "evidence": {"same_day": true, "patch_ids": ["3f249d155b5c2df541d28789fb465925"], "statement_hash": "bb4ac73864cb8b0290e8d72da8ec147875338049505cecf89c4646f61249feb5"}}, {"rule": 2, "type": "equivalent", "target": "4c02e926b24e937b6203c2bcfe1c0586", "evidence": {"same_day": true, "patch_ids": ["3f249d155b5c2df541d28789fb465925"], "statement_hash": "bb4ac73864cb8b0290e8d72da8ec147875338049505cecf89c4646f61249feb5"}}, {"rule": 2, "type": "equivalent", "target": "a7f7285e23b96dab36479d6ae9473b2e", "evidence": {"same_day": true, "patch_ids": ["3f249d155b5c2df541d28789fb465925"], "statement_hash": "bb4ac73864cb8b0290e8d72da8ec147875338049505cecf89c4646f61249feb5"}}], "version": "16.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "a7f7285e23b96dab36479d6ae9473b2e", "kind": "equivalent", "version": "15.6", "label": "15.6", "title": "避免在 GIN 索引插入中过早释放缓冲区固定", "evidence": {"same_day": true, "patch_ids": ["3f249d155b5c2df541d28789fb465925"], "statement_hash": "bb4ac73864cb8b0290e8d72da8ec147875338049505cecf89c4646f61249feb5"}, "url": "/docs/compare/?release=15.6#15.6-afdfe4a6efe63f20", "source_url": "/docs/release/15.6/#ZH-AUTO-RELEASE-15-SECT2-24"}, {"db_id": "30792f0b586fc34673ee37b2668327a6", "kind": "equivalent", "version": "14.11", "label": "14.11", "title": "避免在 GIN 索引插入中过早释放缓冲区固定", "evidence": {"same_day": true, "patch_ids": ["3f249d155b5c2df541d28789fb465925"], "statement_hash": "bb4ac73864cb8b0290e8d72da8ec147875338049505cecf89c4646f61249feb5"}, "url": "/docs/compare/?release=14.11#14.11-d60f13b710117e2a", "source_url": "/docs/release/14.11/#ZH-AUTO-RELEASE-14-SECT2-24"}, {"db_id": "0e900f8d28f2621d5ed94bbcce3de62a", "kind": "equivalent", "version": "13.14", "label": "13.14", "title": "避免在 GIN 索引插入中过早释放缓冲区固定", "evidence": {"same_day": true, "patch_ids": ["3f249d155b5c2df541d28789fb465925"], "statement_hash": "bb4ac73864cb8b0290e8d72da8ec147875338049505cecf89c4646f61249feb5"}, "url": "/docs/compare/?release=13.14#13.14-c6db61ffe5134ee9", "source_url": "/docs/release/13.14/#id-1.11.6.15.5"}, {"db_id": "4c02e926b24e937b6203c2bcfe1c0586", "kind": "equivalent", "version": "12.18", "label": "12.18", "title": "避免在 GIN 索引插入中过早释放缓冲区固定", "evidence": {"same_day": true, "patch_ids": ["3f249d155b5c2df541d28789fb465925"], "statement_hash": "bb4ac73864cb8b0290e8d72da8ec147875338049505cecf89c4646f61249feb5"}, "url": "/docs/compare/?release=12.18#12.18-6e5145973214fd42", "source_url": "/docs/release/12.18/#id-1.11.6.10.6"}]}, {"id": "16.2-9806aab5cbb12475", "cves": [], "html": "<p>避免分区 SP-GiST 索引的失败（Tom Lane）<a href=\"https://postgr.es/c/0977bd64e\">§</a></p>\n<p>尝试使用这类索引可能导致 <span>“<span>No such file or directory</span>”</span> 错误。</p>", "text": "避免分区 SP-GiST 索引的失败（Tom Lane）§ 尝试使用这类索引可能导致 “No such file or directory” 错误。", "title": "避免分区 SP-GiST 索引的失败", "commits": ["0977bd64e"], "section": "变更", "category": "improvement", "source_url": "/docs/release/16.2/#RELEASE-16-2-CHANGES", "source_hash": "2cc6bca5bdf04ad41d5efbb84660697fef3061760f7c5545df4c651c235a878c", "section_path": ["变更"], "commit_groups": [["0977bd64e", "1771ec9a8", "375f441bd", "903737c5b", "ab04c1901", "cc3865150"]], "identity_text": "Avoid failure with partitioned SP-GiST indexes (Tom Lane) Trying to use an index of this kind could lead to No such file or directory errors.", "commit_aliases": ["0977bd64e", "1771ec9a8", "375f441bd", "903737c5b", "ab04c1901", "cc3865150"], "source_commits": ["0977bd64e"], "source_entry_id": "16.2/changes/032", "db_id": "fb1ba0226cde492bcdfb5ed498002fbd", "patch_ids": ["103c5aa6495f7fbe1fbc2370aaad0b6a"], "statement_hash": "b3d2b70befd4413165a072b5539fef07de41a06e18ae938319c3e1c3a256d455", "relations": [{"rule": 2, "type": "equivalent", "target": "16474720954945b50e674d14f5578461", "evidence": {"same_day": true, "patch_ids": ["103c5aa6495f7fbe1fbc2370aaad0b6a"], "statement_hash": "b3d2b70befd4413165a072b5539fef07de41a06e18ae938319c3e1c3a256d455"}}, {"rule": 2, "type": "equivalent", "target": "af135e7bd056dec3344629f7c6fc5938", "evidence": {"same_day": true, "patch_ids": ["103c5aa6495f7fbe1fbc2370aaad0b6a"], "statement_hash": "b3d2b70befd4413165a072b5539fef07de41a06e18ae938319c3e1c3a256d455"}}, {"rule": 2, "type": "equivalent", "target": "d3c7940e315cc5fc8d6cf1035388baa1", "evidence": {"same_day": true, "patch_ids": ["103c5aa6495f7fbe1fbc2370aaad0b6a"], "statement_hash": "b3d2b70befd4413165a072b5539fef07de41a06e18ae938319c3e1c3a256d455"}}, {"rule": 2, "type": "equivalent", "target": "e072e61fc5941781dd2c3286c4ff7421", "evidence": {"same_day": true, "patch_ids": ["103c5aa6495f7fbe1fbc2370aaad0b6a"], "statement_hash": "b3d2b70befd4413165a072b5539fef07de41a06e18ae938319c3e1c3a256d455"}}], "version": "16.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "af135e7bd056dec3344629f7c6fc5938", "kind": "equivalent", "version": "15.6", "label": "15.6", "title": "避免分区 SP-GiST 索引的失败", "evidence": {"same_day": true, "patch_ids": ["103c5aa6495f7fbe1fbc2370aaad0b6a"], "statement_hash": "b3d2b70befd4413165a072b5539fef07de41a06e18ae938319c3e1c3a256d455"}, "url": "/docs/compare/?release=15.6#15.6-90baa090b5b70728", "source_url": "/docs/release/15.6/#ZH-AUTO-RELEASE-15-SECT2-24"}, {"db_id": "d3c7940e315cc5fc8d6cf1035388baa1", "kind": "equivalent", "version": "14.11", "label": "14.11", "title": "避免分区 SP-GiST 索引的失败", "evidence": {"same_day": true, "patch_ids": ["103c5aa6495f7fbe1fbc2370aaad0b6a"], "statement_hash": "b3d2b70befd4413165a072b5539fef07de41a06e18ae938319c3e1c3a256d455"}, "url": "/docs/compare/?release=14.11#14.11-7d51929feb67d0f6", "source_url": "/docs/release/14.11/#ZH-AUTO-RELEASE-14-SECT2-24"}, {"db_id": "16474720954945b50e674d14f5578461", "kind": "equivalent", "version": "13.14", "label": "13.14", "title": "避免分区 SP-GiST 索引的失败", "evidence": {"same_day": true, "patch_ids": ["103c5aa6495f7fbe1fbc2370aaad0b6a"], "statement_hash": "b3d2b70befd4413165a072b5539fef07de41a06e18ae938319c3e1c3a256d455"}, "url": "/docs/compare/?release=13.14#13.14-42a1eab36f5a74c6", "source_url": "/docs/release/13.14/#id-1.11.6.15.5"}, {"db_id": "e072e61fc5941781dd2c3286c4ff7421", "kind": "equivalent", "version": "12.18", "label": "12.18", "title": "避免分区 SP-GiST 索引的失败", "evidence": {"same_day": true, "patch_ids": ["103c5aa6495f7fbe1fbc2370aaad0b6a"], "statement_hash": "b3d2b70befd4413165a072b5539fef07de41a06e18ae938319c3e1c3a256d455"}, "url": "/docs/compare/?release=12.18#12.18-33878e0e5856175c", "source_url": "/docs/release/12.18/#id-1.11.6.10.6"}]}, {"id": "16.2-9f815e2c7b969205-1", "cves": [], "html": "<p>修复大对象的所有权检查（Tom Lane）<a href=\"https://postgr.es/c/152bfc0af\">§</a></p>\n<p>需要所有权权限的大对象操作会因 <span>“<span>unrecognized class ID: 2613</span>”</span> 而失败，除非由超级用户运行。</p>", "text": "修复大对象的所有权检查（Tom Lane）§ 需要所有权权限的大对象操作会因 “unrecognized class ID: 2613” 而失败，除非由超级用户运行。", "title": "修复大对象的所有权检查", "commits": ["152bfc0af"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/16.2/#RELEASE-16-2-CHANGES", "source_hash": "ab98225522c9b11e949c7d2c77576d930306e02900315dcf7f65bcf00d559e0d", "section_path": ["变更"], "commit_groups": [["152bfc0af", "55b5c67da", "59bd34c2f", "7a99fb6e1", "ba66f2533", "f552f2be2"]], "identity_text": "Fix ownership tests for large objects (Tom Lane) Operations on large objects that require ownership privilege failed with unrecognized class ID: 2613, unless run by a superuser.", "commit_aliases": ["152bfc0af", "55b5c67da", "59bd34c2f", "7a99fb6e1", "ba66f2533", "f552f2be2"], "source_commits": ["152bfc0af"], "source_entry_id": "16.2/changes/033", "db_id": "1687451cb0d2d633e50ac97d82a6da6d", "patch_ids": ["e4fcc6453104b25ea29d72873517f170"], "statement_hash": "1985bbaeccdb14dc25e055da3ffed1cfdc4dcde50059702e8073c95496fab523", "relations": [{"rule": 2, "type": "related", "target": "13699f4f3899ac05ef5c9f9f56f38d62", "evidence": {"same_day": true, "patch_ids": ["e4fcc6453104b25ea29d72873517f170"], "ambiguous_patch_ids": ["e4fcc6453104b25ea29d72873517f170"]}}, {"rule": 2, "type": "related", "target": "6411fc0dc1989d2d2bc66d075712fdcd", "evidence": {"same_day": true, "patch_ids": ["e4fcc6453104b25ea29d72873517f170"], "ambiguous_patch_ids": ["e4fcc6453104b25ea29d72873517f170"]}}, {"rule": 2, "type": "related", "target": "64b8edb75ecd0de4824145d278c0e35d", "evidence": {"same_day": true, "patch_ids": ["e4fcc6453104b25ea29d72873517f170"], "ambiguous_patch_ids": ["e4fcc6453104b25ea29d72873517f170"]}}, {"rule": 2, "type": "related", "target": "83b69e7b5675917d023c93bee92e490b", "evidence": {"same_day": true, "patch_ids": ["e4fcc6453104b25ea29d72873517f170"], "ambiguous_patch_ids": ["e4fcc6453104b25ea29d72873517f170"]}}, {"rule": 2, "type": "related", "target": "b52db6d54c1a1d1e6a35b86ca71886d8", "evidence": {"same_day": true, "patch_ids": ["e4fcc6453104b25ea29d72873517f170"], "ambiguous_patch_ids": ["e4fcc6453104b25ea29d72873517f170"]}}], "version": "16.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "64b8edb75ecd0de4824145d278c0e35d", "kind": "related", "version": "16.2", "label": "16.2", "title": "修复大对象的所有权变更报告", "evidence": {"same_day": true, "patch_ids": ["e4fcc6453104b25ea29d72873517f170"], "ambiguous_patch_ids": ["e4fcc6453104b25ea29d72873517f170"]}, "url": "/docs/compare/?release=16.2#16.2-9f815e2c7b969205-2", "source_url": "/docs/release/16.2/#RELEASE-16-2-CHANGES"}, {"db_id": "b52db6d54c1a1d1e6a35b86ca71886d8", "kind": "related", "version": "15.6", "label": "15.6", "title": "修复大对象的所有权变更报告", "evidence": {"same_day": true, "patch_ids": ["e4fcc6453104b25ea29d72873517f170"], "ambiguous_patch_ids": ["e4fcc6453104b25ea29d72873517f170"]}, "url": "/docs/compare/?release=15.6#15.6-9f815e2c7b969205", "source_url": "/docs/release/15.6/#ZH-AUTO-RELEASE-15-SECT2-24"}, {"db_id": "13699f4f3899ac05ef5c9f9f56f38d62", "kind": "related", "version": "14.11", "label": "14.11", "title": "修复大对象的所有权变更报告", "evidence": {"same_day": true, "patch_ids": ["e4fcc6453104b25ea29d72873517f170"], "ambiguous_patch_ids": ["e4fcc6453104b25ea29d72873517f170"]}, "url": "/docs/compare/?release=14.11#14.11-9f815e2c7b969205", "source_url": "/docs/release/14.11/#ZH-AUTO-RELEASE-14-SECT2-24"}, {"db_id": "6411fc0dc1989d2d2bc66d075712fdcd", "kind": "related", "version": "13.14", "label": "13.14", "title": "修复大对象的所有权变更报告", "evidence": {"same_day": true, "patch_ids": ["e4fcc6453104b25ea29d72873517f170"], "ambiguous_patch_ids": ["e4fcc6453104b25ea29d72873517f170"]}, "url": "/docs/compare/?release=13.14#13.14-491175e41e7325c7", "source_url": "/docs/release/13.14/#id-1.11.6.15.5"}, {"db_id": "83b69e7b5675917d023c93bee92e490b", "kind": "related", "version": "12.18", "label": "12.18", "title": "修复大对象的所有权变更报告", "evidence": {"same_day": true, "patch_ids": ["e4fcc6453104b25ea29d72873517f170"], "ambiguous_patch_ids": ["e4fcc6453104b25ea29d72873517f170"]}, "url": "/docs/compare/?release=12.18#12.18-6e0b346d129d4063", "source_url": "/docs/release/12.18/#id-1.11.6.10.6"}]}, {"id": "16.2-9f815e2c7b969205-2", "cves": [], "html": "<p>修复大对象的所有权变更报告（Tom Lane）<a href=\"https://postgr.es/c/152bfc0af\">§</a></p>\n<p>无操作的 <code>ALTER LARGE OBJECT OWNER</code> 命令（即选择现有所有者的命令）向 <code>PostAlterHook</code> 传递了错误的类 ID，可能会混淆使用该钩子的任何扩展。</p>", "text": "修复大对象的所有权变更报告（Tom Lane）§ 无操作的 ALTER LARGE OBJECT OWNER 命令（即选择现有所有者的命令）向 PostAlterHook 传递了错误的类 ID，可能会混淆使用该钩子的任何扩展。", "title": "修复大对象的所有权变更报告", "commits": ["152bfc0af"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/16.2/#RELEASE-16-2-CHANGES", "source_hash": "8dd6c59dca83e5870320cc77ec6ba904d87f193586491933c75a4d235f863241", "section_path": ["变更"], "commit_groups": [["152bfc0af", "55b5c67da", "59bd34c2f", "7a99fb6e1", "ba66f2533", "f552f2be2"]], "identity_text": "Fix ownership change reporting for large objects (Tom Lane) A no-op ALTER LARGE OBJECT OWNER command (that is, one selecting the existing owner) passed the wrong class ID to the PostAlterHook, probably confusing any extension using that hook.", "commit_aliases": ["152bfc0af", "55b5c67da", "59bd34c2f", "7a99fb6e1", "ba66f2533", "f552f2be2"], "source_commits": ["152bfc0af"], "source_entry_id": "16.2/changes/034", "db_id": "64b8edb75ecd0de4824145d278c0e35d", "patch_ids": ["e4fcc6453104b25ea29d72873517f170"], "statement_hash": "7306e68a222d47eb279562cb160080e1360168e1b5d1e1341aa1cc543ea2cce8", "relations": [{"rule": 2, "type": "equivalent", "target": "13699f4f3899ac05ef5c9f9f56f38d62", "evidence": {"same_day": true, "patch_ids": ["e4fcc6453104b25ea29d72873517f170"], "statement_hash": "7306e68a222d47eb279562cb160080e1360168e1b5d1e1341aa1cc543ea2cce8", "ambiguous_patch_ids": ["e4fcc6453104b25ea29d72873517f170"]}}, {"rule": 2, "type": "related", "target": "1687451cb0d2d633e50ac97d82a6da6d", "evidence": {"same_day": true, "patch_ids": ["e4fcc6453104b25ea29d72873517f170"], "ambiguous_patch_ids": ["e4fcc6453104b25ea29d72873517f170"]}}, {"rule": 2, "type": "equivalent", "target": "6411fc0dc1989d2d2bc66d075712fdcd", "evidence": {"same_day": true, "patch_ids": ["e4fcc6453104b25ea29d72873517f170"], "statement_hash": "7306e68a222d47eb279562cb160080e1360168e1b5d1e1341aa1cc543ea2cce8", "ambiguous_patch_ids": ["e4fcc6453104b25ea29d72873517f170"]}}, {"rule": 2, "type": "equivalent", "target": "83b69e7b5675917d023c93bee92e490b", "evidence": {"same_day": true, "patch_ids": ["e4fcc6453104b25ea29d72873517f170"], "statement_hash": "7306e68a222d47eb279562cb160080e1360168e1b5d1e1341aa1cc543ea2cce8", "ambiguous_patch_ids": ["e4fcc6453104b25ea29d72873517f170"]}}, {"rule": 2, "type": "equivalent", "target": "b52db6d54c1a1d1e6a35b86ca71886d8", "evidence": {"same_day": true, "patch_ids": ["e4fcc6453104b25ea29d72873517f170"], "statement_hash": "7306e68a222d47eb279562cb160080e1360168e1b5d1e1341aa1cc543ea2cce8", "ambiguous_patch_ids": ["e4fcc6453104b25ea29d72873517f170"]}}], "version": "16.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "1687451cb0d2d633e50ac97d82a6da6d", "kind": "related", "version": "16.2", "label": "16.2", "title": "修复大对象的所有权检查", "evidence": {"same_day": true, "patch_ids": ["e4fcc6453104b25ea29d72873517f170"], "ambiguous_patch_ids": ["e4fcc6453104b25ea29d72873517f170"]}, "url": "/docs/compare/?release=16.2#16.2-9f815e2c7b969205-1", "source_url": "/docs/release/16.2/#RELEASE-16-2-CHANGES"}, {"db_id": "b52db6d54c1a1d1e6a35b86ca71886d8", "kind": "equivalent", "version": "15.6", "label": "15.6", "title": "修复大对象的所有权变更报告", "evidence": {"same_day": true, "patch_ids": ["e4fcc6453104b25ea29d72873517f170"], "statement_hash": "7306e68a222d47eb279562cb160080e1360168e1b5d1e1341aa1cc543ea2cce8", "ambiguous_patch_ids": ["e4fcc6453104b25ea29d72873517f170"]}, "url": "/docs/compare/?release=15.6#15.6-9f815e2c7b969205", "source_url": "/docs/release/15.6/#ZH-AUTO-RELEASE-15-SECT2-24"}, {"db_id": "13699f4f3899ac05ef5c9f9f56f38d62", "kind": "equivalent", "version": "14.11", "label": "14.11", "title": "修复大对象的所有权变更报告", "evidence": {"same_day": true, "patch_ids": ["e4fcc6453104b25ea29d72873517f170"], "statement_hash": "7306e68a222d47eb279562cb160080e1360168e1b5d1e1341aa1cc543ea2cce8", "ambiguous_patch_ids": ["e4fcc6453104b25ea29d72873517f170"]}, "url": "/docs/compare/?release=14.11#14.11-9f815e2c7b969205", "source_url": "/docs/release/14.11/#ZH-AUTO-RELEASE-14-SECT2-24"}, {"db_id": "6411fc0dc1989d2d2bc66d075712fdcd", "kind": "equivalent", "version": "13.14", "label": "13.14", "title": "修复大对象的所有权变更报告", "evidence": {"same_day": true, "patch_ids": ["e4fcc6453104b25ea29d72873517f170"], "statement_hash": "7306e68a222d47eb279562cb160080e1360168e1b5d1e1341aa1cc543ea2cce8", "ambiguous_patch_ids": ["e4fcc6453104b25ea29d72873517f170"]}, "url": "/docs/compare/?release=13.14#13.14-491175e41e7325c7", "source_url": "/docs/release/13.14/#id-1.11.6.15.5"}, {"db_id": "83b69e7b5675917d023c93bee92e490b", "kind": "equivalent", "version": "12.18", "label": "12.18", "title": "修复大对象的所有权变更报告", "evidence": {"same_day": true, "patch_ids": ["e4fcc6453104b25ea29d72873517f170"], "statement_hash": "7306e68a222d47eb279562cb160080e1360168e1b5d1e1341aa1cc543ea2cce8", "ambiguous_patch_ids": ["e4fcc6453104b25ea29d72873517f170"]}, "url": "/docs/compare/?release=12.18#12.18-6e0b346d129d4063", "source_url": "/docs/release/12.18/#id-1.11.6.10.6"}]}, {"id": "16.2-3cc5813373771ed0", "cves": [], "html": "<p>修复 <code>EXPLAIN (BUFFERS)</code> 中 I/O 计时数据的报告（Michael Paquier）<a href=\"https://postgr.es/c/db69101a1\">§</a></p>\n<p>标记为 <span>“<span>shared/local</span>”</span> 的数字实际上仅指共享缓冲区，因此将该标签更改为 <span>“<span>shared</span>”</span>。</p>", "text": "修复 EXPLAIN (BUFFERS) 中 I/O 计时数据的报告（Michael Paquier）§ 标记为 “shared/local” 的数字实际上仅指共享缓冲区，因此将该标签更改为 “shared”。", "title": "修复 EXPLAIN (BUFFERS) 中 I/O 计时数据的报告", "commits": ["db69101a1"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/16.2/#RELEASE-16-2-CHANGES", "source_hash": "e597357b433711c641855d2d2b495563d51791b7005b14a28e98bce4141e84a4", "section_path": ["变更"], "commit_groups": [["8dd70828b", "db69101a1"]], "identity_text": "Fix reporting of I/O timing data in EXPLAIN (BUFFERS) (Michael Paquier) The numbers labeled as shared/local actually refer only to shared buffers, so change that label to shared.", "commit_aliases": ["8dd70828b", "db69101a1"], "source_commits": ["db69101a1"], "source_entry_id": "16.2/changes/035", "db_id": "08226d202a917f1d9552d0fb9f0ad0e2", "patch_ids": ["b7cd681c428409e8736be2016f19c81e"], "statement_hash": "b90bf9fd60fd3c523c158b48c3e0cd2ceb6c587003e7e4d252218ffa8273fbb5", "relations": [{"rule": 2, "type": "equivalent", "target": "f15ab53e08594513b51caa9620bf4449", "evidence": {"same_day": true, "patch_ids": ["b7cd681c428409e8736be2016f19c81e"], "statement_hash": "b90bf9fd60fd3c523c158b48c3e0cd2ceb6c587003e7e4d252218ffa8273fbb5"}}], "version": "16.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "f15ab53e08594513b51caa9620bf4449", "kind": "equivalent", "version": "15.6", "label": "15.6", "title": "修复 EXPLAIN (BUFFERS) 中 I/O 计时数据的报告", "evidence": {"same_day": true, "patch_ids": ["b7cd681c428409e8736be2016f19c81e"], "statement_hash": "b90bf9fd60fd3c523c158b48c3e0cd2ceb6c587003e7e4d252218ffa8273fbb5"}, "url": "/docs/compare/?release=15.6#15.6-3cc5813373771ed0", "source_url": "/docs/release/15.6/#ZH-AUTO-RELEASE-15-SECT2-24"}]}, {"id": "16.2-c14a350204765f54", "cves": [], "html": "<p>确保 <code>CREATE DATABASE</code> 的持久性（Noah Misch）<a href=\"https://postgr.es/c/6d423e9ff\">§</a> <a href=\"https://postgr.es/c/48a6bf5c4\">§</a></p>\n<p>如果在 <code>CREATE DATABASE</code> 期间或之后不久发生操作系统崩溃，恢复可能失败，或者后续连接到新数据库可能失败。如果在该时间窗口内进行了基础备份，在尝试使用该备份时可能观察到类似问题。症状为数据库目录、<code>PG_VERSION</code> 文件或 <code>pg_filenode.map</code> 文件缺失或为空。</p>", "text": "确保 CREATE DATABASE 的持久性（Noah Misch）§ § 如果在 CREATE DATABASE 期间或之后不久发生操作系统崩溃，恢复可能失败，或者后续连接到新数据库可能失败。如果在该时间窗口内进行了基础备份，在尝试使用该备份时可能观察到类似问题。症状为数据库目录、PG_VERSION 文件或 pg_filenode.map 文件缺失或为空。", "title": "确保 CREATE DATABASE 的持久性", "commits": ["48a6bf5c4", "6d423e9ff"], "section": "变更", "category": "improvement", "source_url": "/docs/release/16.2/#RELEASE-16-2-CHANGES", "source_hash": "72bb4e92c218b813fc1e68170eb93b969d1e36f58d0dac5ee9a24a673b1eb417", "section_path": ["变更"], "commit_groups": [["0b6517a3b", "48a6bf5c4", "8fa4a1ac6"], ["6d423e9ff", "d493bed28", "df220714e"]], "identity_text": "Ensure durability of CREATE DATABASE (Noah Misch) If an operating system crash occurred during or shortly after CREATE DATABASE, recovery could fail, or subsequent connections to the new database could fail. If a base backup was taken in that window, similar problems could be observed when trying to use the backup. The symptom would be that the database directory, PG_VERSION file, or pg_filenode.map file was missing or empty.", "commit_aliases": ["0b6517a3b", "48a6bf5c4", "6d423e9ff", "8fa4a1ac6", "d493bed28", "df220714e"], "source_commits": ["48a6bf5c4", "6d423e9ff"], "source_entry_id": "16.2/changes/036", "db_id": "0600b9b18b77da7f3f6e989fdf532617", "patch_ids": ["bc065b37938e0f3864e33470e2cc4e9d", "f221104fc5fa335ca10a73e3229c03c0"], "statement_hash": "9b0e2cacbd3ad9d67c5bec3c851f1fca0704072736904dadb2cbbd80a8c274fc", "relations": [{"rule": 2, "type": "equivalent", "target": "d9ac943d7a8bcedba14f48e140835daa", "evidence": {"same_day": true, "patch_ids": ["bc065b37938e0f3864e33470e2cc4e9d", "f221104fc5fa335ca10a73e3229c03c0"], "statement_hash": "9b0e2cacbd3ad9d67c5bec3c851f1fca0704072736904dadb2cbbd80a8c274fc"}}], "version": "16.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "d9ac943d7a8bcedba14f48e140835daa", "kind": "equivalent", "version": "15.6", "label": "15.6", "title": "确保 CREATE DATABASE 的持久性", "evidence": {"same_day": true, "patch_ids": ["bc065b37938e0f3864e33470e2cc4e9d", "f221104fc5fa335ca10a73e3229c03c0"], "statement_hash": "9b0e2cacbd3ad9d67c5bec3c851f1fca0704072736904dadb2cbbd80a8c274fc"}, "url": "/docs/compare/?release=15.6#15.6-ad87be641f81e502", "source_url": "/docs/release/15.6/#ZH-AUTO-RELEASE-15-SECT2-24"}]}, {"id": "16.2-d324805180111688", "cves": [], "html": "<p>在从备份开始和结束恢复时增加更多 <code>LOG</code> 消息（Andres Freund）<a href=\"https://postgr.es/c/edbd1b41a\">§</a></p>\n<p>此更改在 postmaster 日志中提供了额外信息，可能有助于诊断恢复问题。</p>", "text": "在从备份开始和结束恢复时增加更多 LOG 消息（Andres Freund）§ 此更改在 postmaster 日志中提供了额外信息，可能有助于诊断恢复问题。", "title": "在从备份开始和结束恢复时增加更多 LOG 消息", "commits": ["edbd1b41a"], "section": "变更", "category": "improvement", "source_url": "/docs/release/16.2/#RELEASE-16-2-CHANGES", "source_hash": "ba099188f8350c7bf1fbdadaee610bc0eaa27c9ccd4ff281da91c8ae567092a5", "section_path": ["变更"], "commit_groups": [["1d35f705e", "8b34cff33", "edbd1b41a"]], "identity_text": "Add more LOG messages when starting and ending recovery from a backup (Andres Freund) This change provides additional information in the postmaster log that may be useful for diagnosing recovery problems.", "commit_aliases": ["1d35f705e", "8b34cff33", "edbd1b41a"], "source_commits": ["edbd1b41a"], "source_entry_id": "16.2/changes/037", "db_id": "9cd394066681d267db871196e7aac9a5", "patch_ids": ["a50efcd5666996dbc2b769e9fc73c42b"], "statement_hash": "fc125fe4957e77365c8b9d6e75a054f541f54eb80bbc54f4190ca7952ede7020", "relations": [{"rule": 2, "type": "related", "target": "081db8f02dd3ff1c924983d249d21687", "evidence": {"same_day": false, "patch_ids": ["a50efcd5666996dbc2b769e9fc73c42b"]}}, {"rule": 2, "type": "equivalent", "target": "d9ceaf3109bc4845b8831721fb3487e2", "evidence": {"same_day": true, "patch_ids": ["a50efcd5666996dbc2b769e9fc73c42b"], "statement_hash": "fc125fe4957e77365c8b9d6e75a054f541f54eb80bbc54f4190ca7952ede7020"}}], "version": "16.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "081db8f02dd3ff1c924983d249d21687", "kind": "related", "version": "17.0", "label": "17.0", "title": "添加与从备份恢复 WAL 相关的日志消息", "evidence": {"same_day": false, "patch_ids": ["a50efcd5666996dbc2b769e9fc73c42b"]}, "url": "/docs/compare/?release=17.0#17.0-a754f9aefb902646", "source_url": "/docs/release/17.0/#RELEASE-17-MONITORING"}, {"db_id": "d9ceaf3109bc4845b8831721fb3487e2", "kind": "equivalent", "version": "15.6", "label": "15.6", "title": "在从备份开始和结束恢复时增加更多 LOG 消息", "evidence": {"same_day": true, "patch_ids": ["a50efcd5666996dbc2b769e9fc73c42b"], "statement_hash": "fc125fe4957e77365c8b9d6e75a054f541f54eb80bbc54f4190ca7952ede7020"}, "url": "/docs/compare/?release=15.6#15.6-5a8bcf4afae18890", "source_url": "/docs/release/15.6/#ZH-AUTO-RELEASE-15-SECT2-24"}]}, {"id": "16.2-59dc6aa13dd6622f", "cves": [], "html": "<p>防止备库在子事务期间错误处理已死亡的索引元组（Fei Changhong）<a href=\"https://postgr.es/c/0e2c05af9\">§</a></p>\n<p><code>startedInRecovery</code> 标志在子事务中没有被正确设置。这仅影响已死亡索引元组的处理。它可能允许子事务中的查询忽略它应该返回的索引条目（如果它们在主库上已经死亡，但对备库事务来说还未死亡），或过早地将在主库上尚未死亡的索引条目标记为已死亡。目前尚不清楚后一种情况是否有严重后果，但这不是预期的行为。</p>", "text": "防止备库在子事务期间错误处理已死亡的索引元组（Fei Changhong）§ startedInRecovery 标志在子事务中没有被正确设置。这仅影响已死亡索引元组的处理。它可能允许子事务中的查询忽略它应该返回的索引条目（如果它们在主库上已经死亡，但对备库事务来说还未死亡），或过早地将在主库上尚未死亡的索引条目标记为已死亡。目前尚不清楚后一种情况是否有严重后果，但这不是预期的行为。", "title": "防止备库在子事务期间错误处理已死亡的索引元组", "commits": ["0e2c05af9"], "section": "变更", "category": "improvement", "source_url": "/docs/release/16.2/#RELEASE-16-2-CHANGES", "source_hash": "441c1775a3c83276b2734e0e5e8dc3f86ac8361fc4fc5370eebb66b954dab2b4", "section_path": ["变更"], "commit_groups": [["0cfd3ddfe", "0e2c05af9", "4d45ecc92", "8a7cbfce1", "d99294e77", "f5d8f59ca"]], "identity_text": "Prevent standby servers from incorrectly processing dead index tuples during subtransactions (Fei Changhong) The startedInRecovery flag was not correctly set for a subtransaction. This affects only processing of dead index tuples. It could allow a query in a subtransaction to ignore index entries that it should return (if they are already dead on the primary server, but not dead to the standby transaction), or to prematurely mark index entries as dead that are not yet dead on the primary. It is not clear that the latter case has any serious consequences, but it's not the intended behavior.", "commit_aliases": ["0cfd3ddfe", "0e2c05af9", "4d45ecc92", "8a7cbfce1", "d99294e77", "f5d8f59ca"], "source_commits": ["0e2c05af9"], "source_entry_id": "16.2/changes/038", "db_id": "643ac4ea8dca981aeeb222e413dfe6be", "patch_ids": ["d8054d0d0f88bcda0a22d2d9c164b76e"], "statement_hash": "916bca202b1433e57348dda0ca4a0c821d2b375b7d9b9e070bb66661212afd25", "relations": [{"rule": 2, "type": "equivalent", "target": "961375cdb7d155a66b947339e8ac3bd9", "evidence": {"same_day": true, "patch_ids": ["d8054d0d0f88bcda0a22d2d9c164b76e"], "statement_hash": "916bca202b1433e57348dda0ca4a0c821d2b375b7d9b9e070bb66661212afd25"}}, {"rule": 2, "type": "equivalent", "target": "b58d324934eab625022f743ff0a8ce31", "evidence": {"same_day": true, "patch_ids": ["d8054d0d0f88bcda0a22d2d9c164b76e"], "statement_hash": "916bca202b1433e57348dda0ca4a0c821d2b375b7d9b9e070bb66661212afd25"}}, {"rule": 2, "type": "equivalent", "target": "cd20f791b54451c43b0fa44ddbef31fd", "evidence": {"same_day": true, "patch_ids": ["d8054d0d0f88bcda0a22d2d9c164b76e"], "statement_hash": "916bca202b1433e57348dda0ca4a0c821d2b375b7d9b9e070bb66661212afd25"}}, {"rule": 2, "type": "equivalent", "target": "e2b30c2391d0185c788ee6352d86b9fb", "evidence": {"same_day": true, "patch_ids": ["d8054d0d0f88bcda0a22d2d9c164b76e"], "statement_hash": "916bca202b1433e57348dda0ca4a0c821d2b375b7d9b9e070bb66661212afd25"}}], "version": "16.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "b58d324934eab625022f743ff0a8ce31", "kind": "equivalent", "version": "15.6", "label": "15.6", "title": "防止备库在子事务期间错误处理已死亡的索引元组", "evidence": {"same_day": true, "patch_ids": ["d8054d0d0f88bcda0a22d2d9c164b76e"], "statement_hash": "916bca202b1433e57348dda0ca4a0c821d2b375b7d9b9e070bb66661212afd25"}, "url": "/docs/compare/?release=15.6#15.6-31cdd3df4b3a9585", "source_url": "/docs/release/15.6/#ZH-AUTO-RELEASE-15-SECT2-24"}, {"db_id": "961375cdb7d155a66b947339e8ac3bd9", "kind": "equivalent", "version": "14.11", "label": "14.11", "title": "防止备库在子事务期间错误处理已死亡的索引元组", "evidence": {"same_day": true, "patch_ids": ["d8054d0d0f88bcda0a22d2d9c164b76e"], "statement_hash": "916bca202b1433e57348dda0ca4a0c821d2b375b7d9b9e070bb66661212afd25"}, "url": "/docs/compare/?release=14.11#14.11-299161cef5078868", "source_url": "/docs/release/14.11/#ZH-AUTO-RELEASE-14-SECT2-24"}, {"db_id": "e2b30c2391d0185c788ee6352d86b9fb", "kind": "equivalent", "version": "13.14", "label": "13.14", "title": "防止备库在子事务期间错误处理已死亡的索引元组", "evidence": {"same_day": true, "patch_ids": ["d8054d0d0f88bcda0a22d2d9c164b76e"], "statement_hash": "916bca202b1433e57348dda0ca4a0c821d2b375b7d9b9e070bb66661212afd25"}, "url": "/docs/compare/?release=13.14#13.14-da30d33023f44966", "source_url": "/docs/release/13.14/#id-1.11.6.15.5"}, {"db_id": "cd20f791b54451c43b0fa44ddbef31fd", "kind": "equivalent", "version": "12.18", "label": "12.18", "title": "防止备库在子事务期间错误处理已死亡的索引元组", "evidence": {"same_day": true, "patch_ids": ["d8054d0d0f88bcda0a22d2d9c164b76e"], "statement_hash": "916bca202b1433e57348dda0ca4a0c821d2b375b7d9b9e070bb66661212afd25"}, "url": "/docs/compare/?release=12.18#12.18-96c4a5d59fffd71e", "source_url": "/docs/release/12.18/#id-1.11.6.10.6"}]}, {"id": "16.2-ae0b4bfd6f58e9b4", "cves": [], "html": "<p>修复 walreceiver 进程中的信号处理（Heikki Linnakangas）<a href=\"https://postgr.es/c/c5a6d5337\">§</a></p>\n<p>恢复了一个使 walreceiver 在等待建立复制连接期间对 <span>SIGTERM</span> 无响应的更改。</p>", "text": "修复 walreceiver 进程中的信号处理（Heikki Linnakangas）§ 恢复了一个使 walreceiver 在等待建立复制连接期间对 SIGTERM 无响应的更改。", "title": "修复 walreceiver 进程中的信号处理", "commits": ["c5a6d5337"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/16.2/#RELEASE-16-2-CHANGES", "source_hash": "cd30254652b80305cedd9e883dc7ad54629be612886b55dfa05cedac04baa3af", "section_path": ["变更"], "commit_groups": [["21ef4d4d8", "c5a6d5337"]], "identity_text": "Fix signal handling in walreceiver processes (Heikki Linnakangas) Revert a change that made walreceivers non-responsive to SIGTERM while waiting for the replication connection to be established.", "commit_aliases": ["21ef4d4d8", "c5a6d5337"], "source_commits": ["c5a6d5337"], "source_entry_id": "16.2/changes/039", "db_id": "1706bf779ca8c2f0a547a4e5f110c3f6", "patch_ids": ["b72a01f17933c35fc5f5725eda897945"], "statement_hash": "a9bee310b9ebb2b8b6cda4ffcbfbfb0f12b1f1b76f1386cb92f2f9d88a97431d", "relations": [], "version": "16.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.2-17b126054a243286", "cves": [], "html": "<p>修复检查记录是否能放入 WAL 解码缓冲区时的整数溢出隐患（Thomas Munro）<a href=\"https://postgr.es/c/8ca56620c\">§</a></p>\n<p>此错误似乎只是潜在的，除非在 64 位平台上运行 32 位的 <span>PostgreSQL</span> 构建。</p>", "text": "修复检查记录是否能放入 WAL 解码缓冲区时的整数溢出隐患（Thomas Munro）§ 此错误似乎只是潜在的，除非在 64 位平台上运行 32 位的 PostgreSQL 构建。", "title": "修复检查记录是否能放入 WAL 解码缓冲区时的整数溢出隐患", "commits": ["8ca56620c"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/16.2/#RELEASE-16-2-CHANGES", "source_hash": "1a693703dfc962353daec2114a6ead899d5777fcd92b0d157acb13064e2fa2fb", "section_path": ["变更"], "commit_groups": [["8ca56620c", "b9f687f5a", "cd7f19da3"]], "identity_text": "Fix integer overflow hazard in checking whether a record will fit into the WAL decoding buffer (Thomas Munro) This bug appears to be only latent except when running a 32-bit PostgreSQL build on a 64-bit platform.", "commit_aliases": ["8ca56620c", "b9f687f5a", "cd7f19da3"], "source_commits": ["8ca56620c"], "source_entry_id": "16.2/changes/040", "db_id": "5c775eaea0782d4b1d874f765a602c24", "patch_ids": ["d8d7e067d36aa375510d6e28a4fa7120"], "statement_hash": "abbff4e28689cf7bf64d4c7d1fc334710f9a8ce1290bf45369575651731f0852", "relations": [{"rule": 2, "type": "equivalent", "target": "76f7cd102fcb64e0ef0f4827d21ae135", "evidence": {"same_day": true, "patch_ids": ["d8d7e067d36aa375510d6e28a4fa7120"], "statement_hash": "abbff4e28689cf7bf64d4c7d1fc334710f9a8ce1290bf45369575651731f0852"}}], "version": "16.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "76f7cd102fcb64e0ef0f4827d21ae135", "kind": "equivalent", "version": "15.6", "label": "15.6", "title": "修复检查记录是否能放入 WAL 解码缓冲区时的整数溢出隐患", "evidence": {"same_day": true, "patch_ids": ["d8d7e067d36aa375510d6e28a4fa7120"], "statement_hash": "abbff4e28689cf7bf64d4c7d1fc334710f9a8ce1290bf45369575651731f0852"}, "url": "/docs/compare/?release=15.6#15.6-cd57259af01dd683", "source_url": "/docs/release/15.6/#ZH-AUTO-RELEASE-15-SECT2-24"}]}, {"id": "16.2-86d10b7fea7df6c7", "cves": [], "html": "<p>修复逻辑复制应用工作进程、其表同步工作进程和尝试修改订阅的会话进程之间的死锁（Shlok Kyal）<a href=\"https://postgr.es/c/01cc92fa6\">§</a></p>\n<p>死锁循环中的一条边不涉及锁等待，因此死锁未被检测到，会持续存在直到手动干预。</p>", "text": "修复逻辑复制应用工作进程、其表同步工作进程和尝试修改订阅的会话进程之间的死锁（Shlok Kyal）§ 死锁循环中的一条边不涉及锁等待，因此死锁未被检测到，会持续存在直到手动干预。", "title": "修复逻辑复制应用工作进程、其表同步工作进程和尝试修改订阅的会话进程之间的死锁", "commits": ["01cc92fa6"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/16.2/#RELEASE-16-2-CHANGES", "source_hash": "c22895b95b7c5f8749ee1c1abf1be4cc91eeedb88a00246ed32ce9b6b04e05d9", "section_path": ["变更"], "commit_groups": [["01cc92fa6", "332b43063", "3f86867d5", "8d7d2197f", "b47ea4f3d", "e81e617f3"]], "identity_text": "Fix deadlock between a logical replication apply worker, its tablesync worker, and a session process trying to alter the subscription (Shlok Kyal) One edge of the deadlock loop did not involve a lock wait, so the deadlock went undetected and would persist until manual intervention.", "commit_aliases": ["01cc92fa6", "332b43063", "3f86867d5", "8d7d2197f", "b47ea4f3d", "e81e617f3"], "source_commits": ["01cc92fa6"], "source_entry_id": "16.2/changes/041", "db_id": "2a011962b460c2ba9e7ce01c4df22901", "patch_ids": ["5aa8956856b741064c4dd397b8d86172"], "statement_hash": "9644ae9b670e5855502359ee44deb1d70dbfc5123d7656c777122618dcc47f1f", "relations": [{"rule": 2, "type": "equivalent", "target": "a16b5724c7373619ea8caa35f2b5239a", "evidence": {"same_day": true, "patch_ids": ["5aa8956856b741064c4dd397b8d86172"], "statement_hash": "9644ae9b670e5855502359ee44deb1d70dbfc5123d7656c777122618dcc47f1f"}}, {"rule": 2, "type": "equivalent", "target": "c38912d1c2ceb29d1db3b23aaf238c85", "evidence": {"same_day": true, "patch_ids": ["5aa8956856b741064c4dd397b8d86172"], "statement_hash": "9644ae9b670e5855502359ee44deb1d70dbfc5123d7656c777122618dcc47f1f"}}, {"rule": 2, "type": "equivalent", "target": "ce1b6ec0e1a165e554f641b1ab0be72a", "evidence": {"same_day": true, "patch_ids": ["5aa8956856b741064c4dd397b8d86172"], "statement_hash": "9644ae9b670e5855502359ee44deb1d70dbfc5123d7656c777122618dcc47f1f"}}, {"rule": 2, "type": "equivalent", "target": "fed1930920c400f602fd8c892c9284b9", "evidence": {"same_day": true, "patch_ids": ["5aa8956856b741064c4dd397b8d86172"], "statement_hash": "9644ae9b670e5855502359ee44deb1d70dbfc5123d7656c777122618dcc47f1f"}}], "version": "16.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "a16b5724c7373619ea8caa35f2b5239a", "kind": "equivalent", "version": "15.6", "label": "15.6", "title": "修复逻辑复制应用工作进程、其表同步工作进程和尝试修改订阅的会话进程之间的死锁", "evidence": {"same_day": true, "patch_ids": ["5aa8956856b741064c4dd397b8d86172"], "statement_hash": "9644ae9b670e5855502359ee44deb1d70dbfc5123d7656c777122618dcc47f1f"}, "url": "/docs/compare/?release=15.6#15.6-48a084e107535f56", "source_url": "/docs/release/15.6/#ZH-AUTO-RELEASE-15-SECT2-24"}, {"db_id": "ce1b6ec0e1a165e554f641b1ab0be72a", "kind": "equivalent", "version": "14.11", "label": "14.11", "title": "修复逻辑复制应用工作进程、其表同步工作进程和尝试修改订阅的会话进程之间的死锁", "evidence": {"same_day": true, "patch_ids": ["5aa8956856b741064c4dd397b8d86172"], "statement_hash": "9644ae9b670e5855502359ee44deb1d70dbfc5123d7656c777122618dcc47f1f"}, "url": "/docs/compare/?release=14.11#14.11-2a2c07f7cfda5d98", "source_url": "/docs/release/14.11/#ZH-AUTO-RELEASE-14-SECT2-24"}, {"db_id": "fed1930920c400f602fd8c892c9284b9", "kind": "equivalent", "version": "13.14", "label": "13.14", "title": "修复逻辑复制应用工作进程、其表同步工作进程和尝试修改订阅的会话进程之间的死锁", "evidence": {"same_day": true, "patch_ids": ["5aa8956856b741064c4dd397b8d86172"], "statement_hash": "9644ae9b670e5855502359ee44deb1d70dbfc5123d7656c777122618dcc47f1f"}, "url": "/docs/compare/?release=13.14#13.14-3f22dc610490e54a", "source_url": "/docs/release/13.14/#id-1.11.6.15.5"}, {"db_id": "c38912d1c2ceb29d1db3b23aaf238c85", "kind": "equivalent", "version": "12.18", "label": "12.18", "title": "修复逻辑复制应用工作进程、其表同步工作进程和尝试修改订阅的会话进程之间的死锁", "evidence": {"same_day": true, "patch_ids": ["5aa8956856b741064c4dd397b8d86172"], "statement_hash": "9644ae9b670e5855502359ee44deb1d70dbfc5123d7656c777122618dcc47f1f"}, "url": "/docs/compare/?release=12.18#12.18-4cd8e3d52da44b71", "source_url": "/docs/release/12.18/#id-1.11.6.10.6"}]}, {"id": "16.2-aab8faa68684d1d2", "cves": [], "html": "<p>确保 <span>pgoutput</span> 逻辑复制插件正确传输列默认值（Nikhil Benesch）<a href=\"https://postgr.es/c/d7ca9209c\">§</a></p>\n<p><code>ALTER TABLE ADD COLUMN</code> 为新列设置常量默认值时会避免重写现有元组，而是期望读取代码在缺少该列的元组中插入正确的默认值。如果随后对该表启动了复制，<span>pgoutput</span> 会为此类列传输 NULL 而非正确的默认值，导致订阅端的复制不正确。</p>", "text": "确保 pgoutput 逻辑复制插件正确传输列默认值（Nikhil Benesch）§ ALTER TABLE ADD COLUMN 为新列设置常量默认值时会避免重写现有元组，而是期望读取代码在缺少该列的元组中插入正确的默认值。如果随后对该表启动了复制，pgoutput 会为此类列传输 NULL 而非正确的默认值，导致订阅端的复制不正确。", "title": "确保 pgoutput 逻辑复制插件正确传输列默认值", "commits": ["d7ca9209c"], "section": "变更", "category": "improvement", "source_url": "/docs/release/16.2/#RELEASE-16-2-CHANGES", "source_hash": "4edd754aacc4380e4e4dddb1e90381a62d025f6d3ad5c7c8a79f53979e06009a", "section_path": ["变更"], "commit_groups": [["360392fa2", "a77fb8c68", "d7ca9209c"]], "identity_text": "Ensure that column default values are correctly transmitted by the pgoutput logical replication plugin (Nikhil Benesch) ALTER TABLE ADD COLUMN with a constant default value for the new column avoids rewriting existing tuples, instead expecting that reading code will insert the correct default into a tuple that lacks that column. If replication was subsequently initiated on the table, pgoutput would transmit NULL instead of the correct default for such a column, causing incorrect replication on the subscriber.", "commit_aliases": ["360392fa2", "a77fb8c68", "d7ca9209c"], "source_commits": ["d7ca9209c"], "source_entry_id": "16.2/changes/042", "db_id": "0462df9836ae1164cd02af995893e788", "patch_ids": ["0e4d1567b6ef71efb881a1d05d081545"], "statement_hash": "9c978dc577f402308a4c9d847f0fc4f29572d8e6e3beffcd925c0b5c1b6dd8f5", "relations": [{"rule": 2, "type": "equivalent", "target": "085de1a2f444609e2ca254e582309d76", "evidence": {"same_day": true, "patch_ids": ["0e4d1567b6ef71efb881a1d05d081545"], "statement_hash": "9c978dc577f402308a4c9d847f0fc4f29572d8e6e3beffcd925c0b5c1b6dd8f5"}}], "version": "16.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "085de1a2f444609e2ca254e582309d76", "kind": "equivalent", "version": "15.6", "label": "15.6", "title": "确保 pgoutput 逻辑复制插件正确传输列默认值", "evidence": {"same_day": true, "patch_ids": ["0e4d1567b6ef71efb881a1d05d081545"], "statement_hash": "9c978dc577f402308a4c9d847f0fc4f29572d8e6e3beffcd925c0b5c1b6dd8f5"}, "url": "/docs/compare/?release=15.6#15.6-98b34e8ff9c545ff", "source_url": "/docs/release/15.6/#ZH-AUTO-RELEASE-15-SECT2-24"}]}, {"id": "16.2-0615e54b964f4d99", "cves": [], "html": "<p>修复对无列表的逻辑复制初始同步失败问题（Vignesh C）<a href=\"https://postgr.es/c/1b6da28e0\">§</a></p>\n<p>此情况会生成格式不正确的 <code>COPY</code> 命令。</p>", "text": "修复对无列表的逻辑复制初始同步失败问题（Vignesh C）§ 此情况会生成格式不正确的 COPY 命令。", "title": "修复对无列表的逻辑复制初始同步失败问题", "commits": ["1b6da28e0"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/16.2/#RELEASE-16-2-CHANGES", "source_hash": "6ad2d37c3b0935caa2ea0a211a5e10edc8073d7c17eda85378e7cad0025e1cf6", "section_path": ["变更"], "commit_groups": [["1b6da28e0", "57aae65ae", "eeb0ebad7"]], "identity_text": "Fix failure of logical replication's initial sync for a table with no columns (Vignesh C) This case generated an improperly-formatted COPY command.", "commit_aliases": ["1b6da28e0", "57aae65ae", "eeb0ebad7"], "source_commits": ["1b6da28e0"], "source_entry_id": "16.2/changes/043", "db_id": "f61a5d9749ea89c9cc17794ff6e6862b", "patch_ids": ["360bcd7b0c8d6656f16e6f6cac5fb577"], "statement_hash": "5efac7df2bd63737fbd9c9cbc2cafdebd337e107b3f3a809b60bd17e37ae20ef", "relations": [{"rule": 2, "type": "equivalent", "target": "031b903465b88513f1f83be897a89ba9", "evidence": {"same_day": true, "patch_ids": ["360bcd7b0c8d6656f16e6f6cac5fb577"], "statement_hash": "5efac7df2bd63737fbd9c9cbc2cafdebd337e107b3f3a809b60bd17e37ae20ef"}}], "version": "16.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "031b903465b88513f1f83be897a89ba9", "kind": "equivalent", "version": "15.6", "label": "15.6", "title": "修复对无列表的逻辑复制初始同步失败问题", "evidence": {"same_day": true, "patch_ids": ["360bcd7b0c8d6656f16e6f6cac5fb577"], "statement_hash": "5efac7df2bd63737fbd9c9cbc2cafdebd337e107b3f3a809b60bd17e37ae20ef"}, "url": "/docs/compare/?release=15.6#15.6-35c972a171c2f04d", "source_url": "/docs/release/15.6/#ZH-AUTO-RELEASE-15-SECT2-24"}]}, {"id": "16.2-d32496e44f4b6cdb", "cves": [], "html": "<p>在使用前重新验证订阅的连接字符串（Vignesh C）<a href=\"https://postgr.es/c/4c03ac7e2\">§</a> <a href=\"https://postgr.es/c/5b5318c38\">§</a></p>\n<p>这旨在检测订阅创建时没有密码（超级用户允许这样做）但随后订阅所有者被更改为非超级用户的情况。</p>", "text": "在使用前重新验证订阅的连接字符串（Vignesh C）§ § 这旨在检测订阅创建时没有密码（超级用户允许这样做）但随后订阅所有者被更改为非超级用户的情况。", "title": "在使用前重新验证订阅的连接字符串", "commits": ["4c03ac7e2", "5b5318c38"], "section": "变更", "category": "improvement", "source_url": "/docs/release/16.2/#RELEASE-16-2-CHANGES", "source_hash": "8496bdccb378fa00655ceea2fba397026704109c4d56e16613847aef7311b3e5", "section_path": ["变更"], "commit_groups": [["4c03ac7e2", "5c3166905"], ["5b5318c38", "dd3ca8cbb"]], "identity_text": "Re-validate a subscription's connection string before use (Vignesh C) This is meant to detect cases where a subscription was created without a password (which is allowed to superusers) but then the subscription owner is changed to a non-superuser.", "commit_aliases": ["4c03ac7e2", "5b5318c38", "5c3166905", "dd3ca8cbb"], "source_commits": ["4c03ac7e2", "5b5318c38"], "source_entry_id": "16.2/changes/044", "db_id": "ca9dffdaa8c89726f30b33a3cf93a9b4", "patch_ids": ["206cbe667a3193448d459059e3d5f467", "d17580743c903bc38e10857184e5ffc8"], "statement_hash": "dc877242287cabb88712184284ecd40275ad08d8b7d0439c20e0bf2a2a2b5208", "relations": [], "version": "16.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.2-bb0f9ba5625071cb", "cves": [], "html": "<p>当新客户端在未响应服务器的密码质询就断开连接时，返回正确的状态码（Liu Lang，Tom Lane）<a href=\"https://postgr.es/c/fb464a1ae\">§</a></p>\n<p>在某些情况下，我们会将此视为可记录的错误，但这不是预期的行为，并且容易产生日志噪音，因为常见的客户端如 <span>psql</span> 经常这样做。这也可能混淆使用 <code>ClientAuthentication_hook</code> 的扩展。</p>", "text": "当新客户端在未响应服务器的密码质询就断开连接时，返回正确的状态码（Liu Lang，Tom Lane）§ 在某些情况下，我们会将此视为可记录的错误，但这不是预期的行为，并且容易产生日志噪音，因为常见的客户端如 psql 经常这样做。这也可能混淆使用 ClientAuthentication_hook 的扩展。", "title": "当新客户端在未响应服务器的密码质询就断开连接时，返回正确的状态码", "commits": ["fb464a1ae"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/16.2/#RELEASE-16-2-CHANGES", "source_hash": "75bacdb99bbbe07281075910341824a5d46abcaaabf9b1418bd7a32d0b69e101", "section_path": ["变更"], "commit_groups": [["5810888c5", "9b042e27e", "a0d016393", "aaf09c592", "c20f2aab6", "fb464a1ae"]], "identity_text": "Return the correct status code when a new client disconnects without responding to the server's password challenge (Liu Lang, Tom Lane) In some cases we'd treat this as a loggable error, which was not the intention and tends to create log spam, since common clients like psql frequently do this. It may also confuse extensions that use ClientAuthentication_hook.", "commit_aliases": ["5810888c5", "9b042e27e", "a0d016393", "aaf09c592", "c20f2aab6", "fb464a1ae"], "source_commits": ["fb464a1ae"], "source_entry_id": "16.2/changes/045", "db_id": "33fbccb8567dde20cdf813eaa2e4248b", "patch_ids": ["600fcbcda940242cb8d07b72efe79e97"], "statement_hash": "dd6a6a810583727dbdb3901944b520c2d84ccf7e68513457882ccb692a87862d", "relations": [{"rule": 2, "type": "equivalent", "target": "5cf518121904488a1036b2e34fe940c5", "evidence": {"same_day": true, "patch_ids": ["600fcbcda940242cb8d07b72efe79e97"], "statement_hash": "dd6a6a810583727dbdb3901944b520c2d84ccf7e68513457882ccb692a87862d"}}, {"rule": 2, "type": "equivalent", "target": "60e58262460d69efc497e3febbee984c", "evidence": {"same_day": true, "patch_ids": ["600fcbcda940242cb8d07b72efe79e97"], "statement_hash": "dd6a6a810583727dbdb3901944b520c2d84ccf7e68513457882ccb692a87862d"}}, {"rule": 2, "type": "equivalent", "target": "a76f6c33750d5e4102f0d752d98e06bd", "evidence": {"same_day": true, "patch_ids": ["600fcbcda940242cb8d07b72efe79e97"], "statement_hash": "dd6a6a810583727dbdb3901944b520c2d84ccf7e68513457882ccb692a87862d"}}, {"rule": 2, "type": "equivalent", "target": "fb5a68741b6be3d251b7acab87a5294d", "evidence": {"same_day": true, "patch_ids": ["600fcbcda940242cb8d07b72efe79e97"], "statement_hash": "dd6a6a810583727dbdb3901944b520c2d84ccf7e68513457882ccb692a87862d"}}], "version": "16.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "fb5a68741b6be3d251b7acab87a5294d", "kind": "equivalent", "version": "15.6", "label": "15.6", "title": "当新客户端在未响应服务器的密码质询就断开连接时，返回正确的状态码", "evidence": {"same_day": true, "patch_ids": ["600fcbcda940242cb8d07b72efe79e97"], "statement_hash": "dd6a6a810583727dbdb3901944b520c2d84ccf7e68513457882ccb692a87862d"}, "url": "/docs/compare/?release=15.6#15.6-5e8c6bbee0808fca", "source_url": "/docs/release/15.6/#ZH-AUTO-RELEASE-15-SECT2-24"}, {"db_id": "60e58262460d69efc497e3febbee984c", "kind": "equivalent", "version": "14.11", "label": "14.11", "title": "当新客户端在未响应服务器的密码质询就断开连接时，返回正确的状态码", "evidence": {"same_day": true, "patch_ids": ["600fcbcda940242cb8d07b72efe79e97"], "statement_hash": "dd6a6a810583727dbdb3901944b520c2d84ccf7e68513457882ccb692a87862d"}, "url": "/docs/compare/?release=14.11#14.11-3d419ee2f4ec59f9", "source_url": "/docs/release/14.11/#ZH-AUTO-RELEASE-14-SECT2-24"}, {"db_id": "a76f6c33750d5e4102f0d752d98e06bd", "kind": "equivalent", "version": "13.14", "label": "13.14", "title": "当新客户端在未响应服务器的密码质询就断开连接时，返回正确的状态码", "evidence": {"same_day": true, "patch_ids": ["600fcbcda940242cb8d07b72efe79e97"], "statement_hash": "dd6a6a810583727dbdb3901944b520c2d84ccf7e68513457882ccb692a87862d"}, "url": "/docs/compare/?release=13.14#13.14-8051e06c3258cadd", "source_url": "/docs/release/13.14/#id-1.11.6.15.5"}, {"db_id": "5cf518121904488a1036b2e34fe940c5", "kind": "equivalent", "version": "12.18", "label": "12.18", "title": "当新客户端在未响应服务器的密码质询就断开连接时，返回正确的状态码", "evidence": {"same_day": true, "patch_ids": ["600fcbcda940242cb8d07b72efe79e97"], "statement_hash": "dd6a6a810583727dbdb3901944b520c2d84ccf7e68513457882ccb692a87862d"}, "url": "/docs/compare/?release=12.18#12.18-de446b52ea4fe9f3", "source_url": "/docs/release/12.18/#id-1.11.6.10.6"}]}, {"id": "16.2-ee528136ff09b5e4", "cves": [], "html": "<p>修复与 <span>OpenSSL</span> 3.2 的不兼容性（Tristan Partin，Bo Andreson）<a href=\"https://postgr.es/c/efa8f6064\">§</a></p>\n<p>使用 BIO <span>“<span>app_data</span>”</span> 字段进行我们的私有存储，而不是假定可以使用 <span>“<span>data</span>”</span> 字段。此错误此前不会造成问题，但在 3.2 中会导致崩溃和双重释放错误。</p>", "text": "修复与 OpenSSL 3.2 的不兼容性（Tristan Partin，Bo Andreson）§ 使用 BIO “app_data” 字段进行我们的私有存储，而不是假定可以使用 “data” 字段。此错误此前不会造成问题，但在 3.2 中会导致崩溃和双重释放错误。", "title": "修复与 OpenSSL 3.2 的不兼容性", "commits": ["efa8f6064"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/16.2/#RELEASE-16-2-CHANGES", "source_hash": "451217e58ea9fe95200ac362bb5e6adc0a3a54649ec2d5b7229087926ad356a7", "section_path": ["变更"], "commit_groups": [["0bd682246", "5dd30bb54", "b2b1f1288", "c82207a54", "efa8f6064", "efb804682"]], "identity_text": "Fix incompatibility with OpenSSL 3.2 (Tristan Partin, Bo Andreson) Use the BIO app_data field for our private storage, instead of assuming it's okay to use the data field. This mistake didn't cause problems before, but with 3.2 it leads to crashes and complaints about double frees.", "commit_aliases": ["0bd682246", "5dd30bb54", "b2b1f1288", "c82207a54", "efa8f6064", "efb804682"], "source_commits": ["efa8f6064"], "source_entry_id": "16.2/changes/046", "db_id": "c6175c8583bad1e59d4bb8fc14f711c1", "patch_ids": ["328af78cb482a331443286ce33c08610"], "statement_hash": "656abe98066ffff1bdf4db5407c4228dfb200c39542c14526553d63fbadd2822", "relations": [{"rule": 2, "type": "equivalent", "target": "10899645f953979ed38c090627cf12b1", "evidence": {"same_day": true, "patch_ids": ["328af78cb482a331443286ce33c08610"], "statement_hash": "656abe98066ffff1bdf4db5407c4228dfb200c39542c14526553d63fbadd2822"}}, {"rule": 2, "type": "equivalent", "target": "28737f413863cd4983759979f7d59a6a", "evidence": {"same_day": true, "patch_ids": ["328af78cb482a331443286ce33c08610"], "statement_hash": "656abe98066ffff1bdf4db5407c4228dfb200c39542c14526553d63fbadd2822"}}, {"rule": 2, "type": "equivalent", "target": "5b1578fd1e16d620c13d42b9a134fbd5", "evidence": {"same_day": true, "patch_ids": ["328af78cb482a331443286ce33c08610"], "statement_hash": "656abe98066ffff1bdf4db5407c4228dfb200c39542c14526553d63fbadd2822"}}, {"rule": 2, "type": "equivalent", "target": "f1025ad6e278e9daa4b80572ad09348d", "evidence": {"same_day": true, "patch_ids": ["328af78cb482a331443286ce33c08610"], "statement_hash": "656abe98066ffff1bdf4db5407c4228dfb200c39542c14526553d63fbadd2822"}}], "version": "16.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "10899645f953979ed38c090627cf12b1", "kind": "equivalent", "version": "15.6", "label": "15.6", "title": "修复与 OpenSSL 3.2 的不兼容性", "evidence": {"same_day": true, "patch_ids": ["328af78cb482a331443286ce33c08610"], "statement_hash": "656abe98066ffff1bdf4db5407c4228dfb200c39542c14526553d63fbadd2822"}, "url": "/docs/compare/?release=15.6#15.6-297f1bf9fc592bbb", "source_url": "/docs/release/15.6/#ZH-AUTO-RELEASE-15-SECT2-24"}, {"db_id": "5b1578fd1e16d620c13d42b9a134fbd5", "kind": "equivalent", "version": "14.11", "label": "14.11", "title": "修复与 OpenSSL 3.2 的不兼容性", "evidence": {"same_day": true, "patch_ids": ["328af78cb482a331443286ce33c08610"], "statement_hash": "656abe98066ffff1bdf4db5407c4228dfb200c39542c14526553d63fbadd2822"}, "url": "/docs/compare/?release=14.11#14.11-3333b88f7c26e326", "source_url": "/docs/release/14.11/#ZH-AUTO-RELEASE-14-SECT2-24"}, {"db_id": "28737f413863cd4983759979f7d59a6a", "kind": "equivalent", "version": "13.14", "label": "13.14", "title": "修复与 OpenSSL 3.2 的不兼容性", "evidence": {"same_day": true, "patch_ids": ["328af78cb482a331443286ce33c08610"], "statement_hash": "656abe98066ffff1bdf4db5407c4228dfb200c39542c14526553d63fbadd2822"}, "url": "/docs/compare/?release=13.14#13.14-9cb54a2eb67835df", "source_url": "/docs/release/13.14/#id-1.11.6.15.5"}, {"db_id": "f1025ad6e278e9daa4b80572ad09348d", "kind": "equivalent", "version": "12.18", "label": "12.18", "title": "修复与 OpenSSL 3.2 的不兼容性", "evidence": {"same_day": true, "patch_ids": ["328af78cb482a331443286ce33c08610"], "statement_hash": "656abe98066ffff1bdf4db5407c4228dfb200c39542c14526553d63fbadd2822"}, "url": "/docs/compare/?release=12.18#12.18-0615c0d27eeefd45", "source_url": "/docs/release/12.18/#id-1.11.6.10.6"}]}, {"id": "16.2-a041a277f7f9ff3e", "cves": [], "html": "<p>对 <span>OpenSSL</span> 在错误时不设置 <code>errno</code> 的情况更加谨慎（Tom Lane）<a href=\"https://postgr.es/c/ebbd499d4\">§</a></p>\n<p>如果 <code>errno</code> 未被设置，则假设所报告失败的原因是读取到 EOF。这修复了罕见的奇怪错误报告情况，如 <span>“<span>could not accept SSL connection: Success</span>”</span>。</p>", "text": "对 OpenSSL 在错误时不设置 errno 的情况更加谨慎（Tom Lane）§ 如果 errno 未被设置，则假设所报告失败的原因是读取到 EOF。这修复了罕见的奇怪错误报告情况，如 “could not accept SSL connection: Success”。", "title": "对 OpenSSL 在错误时不设置 errno 的情况更加谨慎", "commits": ["ebbd499d4"], "section": "变更", "category": "improvement", "source_url": "/docs/release/16.2/#RELEASE-16-2-CHANGES", "source_hash": "a949d40655d64e5db69908a7d9439fb155dd5e9d33a70c33ce5253baed57e509", "section_path": ["变更"], "commit_groups": [["07ce24326", "0a5c46a7a", "271d24f31", "551d4b28e", "87b46ad90", "ebbd499d4"]], "identity_text": "Be more wary about OpenSSL not setting errno on error (Tom Lane) If errno isn't set, assume the cause of the reported failure is read EOF. This fixes rare cases of strange error reports like could not accept SSL connection: Success.", "commit_aliases": ["07ce24326", "0a5c46a7a", "271d24f31", "551d4b28e", "87b46ad90", "ebbd499d4"], "source_commits": ["ebbd499d4"], "source_entry_id": "16.2/changes/047", "db_id": "8782a0c0fcd5cafe4d742791bcd3f1a2", "patch_ids": ["6953425a2eea7ac6a84cd756ce018c20"], "statement_hash": "142b60a1651d51549066bc5185eb65aa2405b3132a6ba713c52373d399121598", "relations": [{"rule": 2, "type": "equivalent", "target": "0de405b5c63b3a733340c6841dcf22e7", "evidence": {"same_day": true, "patch_ids": ["6953425a2eea7ac6a84cd756ce018c20"], "statement_hash": "142b60a1651d51549066bc5185eb65aa2405b3132a6ba713c52373d399121598"}}, {"rule": 2, "type": "equivalent", "target": "1dfca4b39e12431aa4c5699122612283", "evidence": {"same_day": true, "patch_ids": ["6953425a2eea7ac6a84cd756ce018c20"], "statement_hash": "142b60a1651d51549066bc5185eb65aa2405b3132a6ba713c52373d399121598"}}, {"rule": 2, "type": "equivalent", "target": "3c6a174cd2fc223e4c2c3cc5482fa7bb", "evidence": {"same_day": true, "patch_ids": ["6953425a2eea7ac6a84cd756ce018c20"], "statement_hash": "142b60a1651d51549066bc5185eb65aa2405b3132a6ba713c52373d399121598"}}, {"rule": 2, "type": "equivalent", "target": "e0758f0fbda71a97e2ca58da6b506b83", "evidence": {"same_day": true, "patch_ids": ["6953425a2eea7ac6a84cd756ce018c20"], "statement_hash": "142b60a1651d51549066bc5185eb65aa2405b3132a6ba713c52373d399121598"}}], "version": "16.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "e0758f0fbda71a97e2ca58da6b506b83", "kind": "equivalent", "version": "15.6", "label": "15.6", "title": "对 OpenSSL 在错误时不设置 errno 的情况更加谨慎", "evidence": {"same_day": true, "patch_ids": ["6953425a2eea7ac6a84cd756ce018c20"], "statement_hash": "142b60a1651d51549066bc5185eb65aa2405b3132a6ba713c52373d399121598"}, "url": "/docs/compare/?release=15.6#15.6-a42d9aca1f0d71fb", "source_url": "/docs/release/15.6/#ZH-AUTO-RELEASE-15-SECT2-24"}, {"db_id": "1dfca4b39e12431aa4c5699122612283", "kind": "equivalent", "version": "14.11", "label": "14.11", "title": "对 OpenSSL 在错误时不设置 errno 的情况更加谨慎", "evidence": {"same_day": true, "patch_ids": ["6953425a2eea7ac6a84cd756ce018c20"], "statement_hash": "142b60a1651d51549066bc5185eb65aa2405b3132a6ba713c52373d399121598"}, "url": "/docs/compare/?release=14.11#14.11-0dea5424443cf80d", "source_url": "/docs/release/14.11/#ZH-AUTO-RELEASE-14-SECT2-24"}, {"db_id": "3c6a174cd2fc223e4c2c3cc5482fa7bb", "kind": "equivalent", "version": "13.14", "label": "13.14", "title": "对 OpenSSL 在错误时不设置 errno 的情况更加谨慎", "evidence": {"same_day": true, "patch_ids": ["6953425a2eea7ac6a84cd756ce018c20"], "statement_hash": "142b60a1651d51549066bc5185eb65aa2405b3132a6ba713c52373d399121598"}, "url": "/docs/compare/?release=13.14#13.14-09dfe84dec6cece6", "source_url": "/docs/release/13.14/#id-1.11.6.15.5"}, {"db_id": "0de405b5c63b3a733340c6841dcf22e7", "kind": "equivalent", "version": "12.18", "label": "12.18", "title": "对 OpenSSL 在错误时不设置 errno 的情况更加谨慎", "evidence": {"same_day": true, "patch_ids": ["6953425a2eea7ac6a84cd756ce018c20"], "statement_hash": "142b60a1651d51549066bc5185eb65aa2405b3132a6ba713c52373d399121598"}, "url": "/docs/compare/?release=12.18#12.18-1d79ae9588ceab26", "source_url": "/docs/release/12.18/#id-1.11.6.10.6"}]}, {"id": "16.2-90dd1f4784150aee", "cves": [], "html": "<p>修复外部数据包装器的 <code>ForeignAsyncRequest</code> 函数失败时的文件描述符泄漏（Heikki Linnakangas）<a href=\"https://postgr.es/c/501cfd07d\">§</a></p>", "text": "修复外部数据包装器的 ForeignAsyncRequest 函数失败时的文件描述符泄漏（Heikki Linnakangas）§", "title": "修复外部数据包装器的 ForeignAsyncRequest 函数失败时的文件描述符泄漏", "commits": ["501cfd07d"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/16.2/#RELEASE-16-2-CHANGES", "source_hash": "d66b9b7bc588c65390fa59dc542455f1ee79182eed6e7dac1eb343d9b463ccde", "section_path": ["变更"], "commit_groups": [["481d7d1c0", "501cfd07d", "555276f85"]], "identity_text": "Fix file descriptor leakage when a foreign data wrapper's ForeignAsyncRequest function fails (Heikki Linnakangas)", "commit_aliases": ["481d7d1c0", "501cfd07d", "555276f85"], "source_commits": ["501cfd07d"], "source_entry_id": "16.2/changes/048", "db_id": "abab8b4ee8e0c786b90d6233b2266e45", "patch_ids": ["5ae7a33def33628c59e90da0fe0849a5"], "statement_hash": "5ac2abc6fd1f7a97ea4808b20c6be5c23735a7a9f3e47de498b6f0b109d68a07", "relations": [{"rule": 2, "type": "equivalent", "target": "5e6122a0e0303d0aa03b4770c84a0936", "evidence": {"same_day": true, "patch_ids": ["5ae7a33def33628c59e90da0fe0849a5"], "statement_hash": "5ac2abc6fd1f7a97ea4808b20c6be5c23735a7a9f3e47de498b6f0b109d68a07"}}, {"rule": 2, "type": "equivalent", "target": "8c1f436e76b3e60e5e733e473d7c24eb", "evidence": {"same_day": true, "patch_ids": ["5ae7a33def33628c59e90da0fe0849a5"], "statement_hash": "5ac2abc6fd1f7a97ea4808b20c6be5c23735a7a9f3e47de498b6f0b109d68a07"}}], "version": "16.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "8c1f436e76b3e60e5e733e473d7c24eb", "kind": "equivalent", "version": "15.6", "label": "15.6", "title": "修复外部数据包装器的 ForeignAsyncRequest 函数失败时的文件描述符泄漏", "evidence": {"same_day": true, "patch_ids": ["5ae7a33def33628c59e90da0fe0849a5"], "statement_hash": "5ac2abc6fd1f7a97ea4808b20c6be5c23735a7a9f3e47de498b6f0b109d68a07"}, "url": "/docs/compare/?release=15.6#15.6-030039be627bf1c9", "source_url": "/docs/release/15.6/#ZH-AUTO-RELEASE-15-SECT2-24"}, {"db_id": "5e6122a0e0303d0aa03b4770c84a0936", "kind": "equivalent", "version": "14.11", "label": "14.11", "title": "修复外部数据包装器的 ForeignAsyncRequest 函数失败时的文件描述符泄漏", "evidence": {"same_day": true, "patch_ids": ["5ae7a33def33628c59e90da0fe0849a5"], "statement_hash": "5ac2abc6fd1f7a97ea4808b20c6be5c23735a7a9f3e47de498b6f0b109d68a07"}, "url": "/docs/compare/?release=14.11#14.11-030039be627bf1c9", "source_url": "/docs/release/14.11/#ZH-AUTO-RELEASE-14-SECT2-24"}]}, {"id": "16.2-d4080fe2d23dd7be", "cves": [], "html": "<p>修复 <code>CREATE SUBSCRIPTION</code> 中连接字符串验证的轻微内存泄漏（Jeff Davis）<a href=\"https://postgr.es/c/41820e640\">§</a></p>", "text": "修复 CREATE SUBSCRIPTION 中连接字符串验证的轻微内存泄漏（Jeff Davis）§", "title": "修复 CREATE SUBSCRIPTION 中连接字符串验证的轻微内存泄漏", "commits": ["41820e640"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/16.2/#RELEASE-16-2-CHANGES", "source_hash": "373ef3afd691a65cc1338bc731f0bce5d89e544978e69fb2ed17813debdaecc7", "section_path": ["变更"], "commit_groups": [["41820e640", "45da69371"]], "identity_text": "Fix minor memory leak in connection string validation for CREATE SUBSCRIPTION (Jeff Davis)", "commit_aliases": ["41820e640", "45da69371"], "source_commits": ["41820e640"], "source_entry_id": "16.2/changes/049", "db_id": "bbdb303057d532b1429b960e31336f82", "patch_ids": ["5c037c2e8cf837ebcf0686bba97987b8"], "statement_hash": "70922d0fee36214f5855bd7fd1db0e82507b22c8da2dc3741196f9ac6a038b9c", "relations": [], "version": "16.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.2-3adf2cfa4d0122a0", "cves": [], "html": "<p>将文件相关系统调用的 <span>ENOMEM</span> 错误报告为 <code>ERRCODE_OUT_OF_MEMORY</code>，而不是 <code>ERRCODE_INTERNAL_ERROR</code>（Alexander Kuzmenkov）<a href=\"https://postgr.es/c/a15378100\">§</a></p>", "text": "将文件相关系统调用的 ENOMEM 错误报告为 ERRCODE_OUT_OF_MEMORY，而不是 ERRCODE_INTERNAL_ERROR（Alexander Kuzmenkov）§", "title": "将文件相关系统调用的 ENOMEM 错误报告为 ERRCODE_OUT_OF_MEMORY，而不是 ERRCODE_INTERNAL_ERROR", "commits": ["a15378100"], "section": "变更", "category": "improvement", "source_url": "/docs/release/16.2/#RELEASE-16-2-CHANGES", "source_hash": "51a52db484a33b27dce45a3e3bdc51d8a348d5578e74ab8e4f466f51da2021c6", "section_path": ["变更"], "commit_groups": [["29df29dad", "329b96882", "3766b8b64", "4493bfb70", "a15378100", "e4e63cd98"]], "identity_text": "Report ENOMEM errors from file-related system calls as ERRCODE_OUT_OF_MEMORY, not ERRCODE_INTERNAL_ERROR (Alexander Kuzmenkov)", "commit_aliases": ["29df29dad", "329b96882", "3766b8b64", "4493bfb70", "a15378100", "e4e63cd98"], "source_commits": ["a15378100"], "source_entry_id": "16.2/changes/050", "db_id": "b1439968b24ab8133db23604b012cdab", "patch_ids": ["f611e3eb84cbec92661c9597a375b4b5"], "statement_hash": "4171bab64e20886662592f4aad293d6f821b3eef377f0d50613431ecc81dc8c7", "relations": [{"rule": 2, "type": "equivalent", "target": "19b2e20fa5218c5a6d99697ef2e95695", "evidence": {"same_day": true, "patch_ids": ["f611e3eb84cbec92661c9597a375b4b5"], "statement_hash": "4171bab64e20886662592f4aad293d6f821b3eef377f0d50613431ecc81dc8c7"}}, {"rule": 2, "type": "equivalent", "target": "538b243e9d7cc07264ad0c8d83bb1fb2", "evidence": {"same_day": true, "patch_ids": ["f611e3eb84cbec92661c9597a375b4b5"], "statement_hash": "4171bab64e20886662592f4aad293d6f821b3eef377f0d50613431ecc81dc8c7"}}, {"rule": 2, "type": "equivalent", "target": "ba3e89b7c0673f1ee6510b2faea72e6e", "evidence": {"same_day": true, "patch_ids": ["f611e3eb84cbec92661c9597a375b4b5"], "statement_hash": "4171bab64e20886662592f4aad293d6f821b3eef377f0d50613431ecc81dc8c7"}}, {"rule": 2, "type": "equivalent", "target": "fb1e7b7167a7374d5d30c2fd0a4ed096", "evidence": {"same_day": true, "patch_ids": ["f611e3eb84cbec92661c9597a375b4b5"], "statement_hash": "4171bab64e20886662592f4aad293d6f821b3eef377f0d50613431ecc81dc8c7"}}], "version": "16.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "19b2e20fa5218c5a6d99697ef2e95695", "kind": "equivalent", "version": "15.6", "label": "15.6", "title": "将文件相关系统调用的 ENOMEM 错误报告为 ERRCODE_OUT_OF_MEMORY，而不是 ERRCODE_INTERNAL_ERROR", "evidence": {"same_day": true, "patch_ids": ["f611e3eb84cbec92661c9597a375b4b5"], "statement_hash": "4171bab64e20886662592f4aad293d6f821b3eef377f0d50613431ecc81dc8c7"}, "url": "/docs/compare/?release=15.6#15.6-c0636dcdda44c3f5", "source_url": "/docs/release/15.6/#ZH-AUTO-RELEASE-15-SECT2-24"}, {"db_id": "fb1e7b7167a7374d5d30c2fd0a4ed096", "kind": "equivalent", "version": "14.11", "label": "14.11", "title": "将文件相关系统调用的 ENOMEM 错误报告为 ERRCODE_OUT_OF_MEMORY，而不是 ERRCODE_INTERNAL_ERROR", "evidence": {"same_day": true, "patch_ids": ["f611e3eb84cbec92661c9597a375b4b5"], "statement_hash": "4171bab64e20886662592f4aad293d6f821b3eef377f0d50613431ecc81dc8c7"}, "url": "/docs/compare/?release=14.11#14.11-08f8aa283cbbd9ca", "source_url": "/docs/release/14.11/#ZH-AUTO-RELEASE-14-SECT2-24"}, {"db_id": "538b243e9d7cc07264ad0c8d83bb1fb2", "kind": "equivalent", "version": "13.14", "label": "13.14", "title": "将文件相关系统调用的 ENOMEM 错误报告为 ERRCODE_OUT_OF_MEMORY，而不是 ERRCODE_INTERNAL_ERROR", "evidence": {"same_day": true, "patch_ids": ["f611e3eb84cbec92661c9597a375b4b5"], "statement_hash": "4171bab64e20886662592f4aad293d6f821b3eef377f0d50613431ecc81dc8c7"}, "url": "/docs/compare/?release=13.14#13.14-071efdcc752f6080", "source_url": "/docs/release/13.14/#id-1.11.6.15.5"}, {"db_id": "ba3e89b7c0673f1ee6510b2faea72e6e", "kind": "equivalent", "version": "12.18", "label": "12.18", "title": "将文件相关系统调用的 ENOMEM 错误报告为 ERRCODE_OUT_OF_MEMORY，而不是 ERRCODE_INTERNAL_ERROR", "evidence": {"same_day": true, "patch_ids": ["f611e3eb84cbec92661c9597a375b4b5"], "statement_hash": "4171bab64e20886662592f4aad293d6f821b3eef377f0d50613431ecc81dc8c7"}, "url": "/docs/compare/?release=12.18#12.18-7f9aa4a1fdac32af", "source_url": "/docs/release/12.18/#id-1.11.6.10.6"}]}, {"id": "16.2-f248f2124b74198e", "cves": [], "html": "<p>在 <span>PL/pgSQL</span> 中，支持作为 SQL 标准体的 <code>CREATE FUNCTION</code>/<code>CREATE PROCEDURE</code> SQL 命令（Tom Lane）<a href=\"https://postgr.es/c/00f941356\">§</a></p>\n<p>之前，由于函数体中出现的分号，此类情况会以解析错误失败。</p>", "text": "在 PL/pgSQL 中，支持作为 SQL 标准体的 CREATE FUNCTION/CREATE PROCEDURE SQL 命令（Tom Lane）§ 之前，由于函数体中出现的分号，此类情况会以解析错误失败。", "title": "在 PL/pgSQL 中，支持作为 SQL 标准体的 CREATE FUNCTION/CREATE PROCEDURE SQL 命令", "commits": ["00f941356"], "section": "变更", "category": "improvement", "source_url": "/docs/release/16.2/#RELEASE-16-2-CHANGES", "source_hash": "b7aa0229369d4f4df027ab64ea6c69372db7379033bd7d0d2fc7d5cf3f827a3a", "section_path": ["变更"], "commit_groups": [["00f941356", "57b440ec1", "b7e8f27d1", "de2d393a8"]], "identity_text": "In PL/pgSQL, support SQL commands that are CREATE FUNCTION/CREATE PROCEDURE with SQL-standard bodies (Tom Lane) Previously, such cases failed with parsing errors due to the semicolon(s) appearing in the function body.", "commit_aliases": ["00f941356", "57b440ec1", "b7e8f27d1", "de2d393a8"], "source_commits": ["00f941356"], "source_entry_id": "16.2/changes/051", "db_id": "241793796a88e9d5acb7324979611ecc", "patch_ids": ["4e2d77d8fccb5f490fab7588ecfba026"], "statement_hash": "19f8f1339b6ccce81f7f136af228fc4e75eface20936e1ce24a32281866579a6", "relations": [{"rule": 2, "type": "equivalent", "target": "28ab47a378973898906c6bbb3f71a73e", "evidence": {"same_day": true, "patch_ids": ["4e2d77d8fccb5f490fab7588ecfba026"], "statement_hash": "19f8f1339b6ccce81f7f136af228fc4e75eface20936e1ce24a32281866579a6"}}, {"rule": 2, "type": "equivalent", "target": "8f5f688e3de93c0b866a00ec5280ae79", "evidence": {"same_day": true, "patch_ids": ["4e2d77d8fccb5f490fab7588ecfba026"], "statement_hash": "19f8f1339b6ccce81f7f136af228fc4e75eface20936e1ce24a32281866579a6"}}], "version": "16.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "8f5f688e3de93c0b866a00ec5280ae79", "kind": "equivalent", "version": "15.6", "label": "15.6", "title": "在 PL/pgSQL 中，支持作为 SQL 标准体的 CREATE FUNCTION/CREATE PROCEDURE SQL 命令", "evidence": {"same_day": true, "patch_ids": ["4e2d77d8fccb5f490fab7588ecfba026"], "statement_hash": "19f8f1339b6ccce81f7f136af228fc4e75eface20936e1ce24a32281866579a6"}, "url": "/docs/compare/?release=15.6#15.6-3972a58b1b22224b", "source_url": "/docs/release/15.6/#ZH-AUTO-RELEASE-15-SECT2-24"}, {"db_id": "28ab47a378973898906c6bbb3f71a73e", "kind": "equivalent", "version": "14.11", "label": "14.11", "title": "在 PL/pgSQL 中，支持作为 SQL 标准体的 CREATE FUNCTION/CREATE PROCEDURE SQL 命令", "evidence": {"same_day": true, "patch_ids": ["4e2d77d8fccb5f490fab7588ecfba026"], "statement_hash": "19f8f1339b6ccce81f7f136af228fc4e75eface20936e1ce24a32281866579a6"}, "url": "/docs/compare/?release=14.11#14.11-7e07b5be0c57ecf5", "source_url": "/docs/release/14.11/#ZH-AUTO-RELEASE-14-SECT2-24"}]}, {"id": "16.2-65c145ab3d40beb5", "cves": [], "html": "<p>修复 <span>libpq</span> 在管道中处理错误的问题（Álvaro Herrera）<a href=\"https://postgr.es/c/878aa41f8\">§</a> <a href=\"https://postgr.es/c/39aab1108\">§</a></p>\n<p>如果由于查询问题以外的原因（例如连接丢失）返回错误，管道状态可能会失去同步。这可能导致调用应用程序进入忙等循环。</p>", "text": "修复 libpq 在管道中处理错误的问题（Álvaro Herrera）§ § 如果由于查询问题以外的原因（例如连接丢失）返回错误，管道状态可能会失去同步。这可能导致调用应用程序进入忙等循环。", "title": "修复 libpq 在管道中处理错误的问题", "commits": ["39aab1108", "878aa41f8"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/16.2/#RELEASE-16-2-CHANGES", "source_hash": "364ef505bfe90c238d6bc85a11e7a65f4b52dc783ef6b6007d725e334f86fd66", "section_path": ["变更"], "commit_groups": [["1171c6e74", "878aa41f8", "b8ba7344e", "f89681816"], ["2b656cbd2", "39aab1108", "7a7c8c98a", "c6605c1bd"]], "identity_text": "Fix libpq's handling of errors in pipelines (Álvaro Herrera) The pipeline state could get out of sync if an error is returned for reasons other than a query problem (for example, if the connection is lost). Potentially this would lead to a busy-loop in the calling application.", "commit_aliases": ["1171c6e74", "2b656cbd2", "39aab1108", "7a7c8c98a", "878aa41f8", "b8ba7344e", "c6605c1bd", "f89681816"], "source_commits": ["39aab1108", "878aa41f8"], "source_entry_id": "16.2/changes/052", "db_id": "fde5ec6c5f03851da77b86511892f699", "patch_ids": ["c7e1c6c364c7268e98adf207888e84c4", "deccbe885e235f68b1ddecbd9287c961"], "statement_hash": "6a46288632cb9f38c6b91bdc520c17c212b0c851be375b48185d4c590e263c4b", "relations": [{"rule": 2, "type": "equivalent", "target": "22ff048da37a02f19da8bf04eedfb061", "evidence": {"same_day": true, "patch_ids": ["c7e1c6c364c7268e98adf207888e84c4", "deccbe885e235f68b1ddecbd9287c961"], "statement_hash": "6a46288632cb9f38c6b91bdc520c17c212b0c851be375b48185d4c590e263c4b"}}, {"rule": 2, "type": "equivalent", "target": "913e7113740498d6890012a1d1a0a3de", "evidence": {"same_day": true, "patch_ids": ["c7e1c6c364c7268e98adf207888e84c4", "deccbe885e235f68b1ddecbd9287c961"], "statement_hash": "6a46288632cb9f38c6b91bdc520c17c212b0c851be375b48185d4c590e263c4b"}}], "version": "16.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "22ff048da37a02f19da8bf04eedfb061", "kind": "equivalent", "version": "15.6", "label": "15.6", "title": "修复 libpq 在管道中处理错误的问题", "evidence": {"same_day": true, "patch_ids": ["c7e1c6c364c7268e98adf207888e84c4", "deccbe885e235f68b1ddecbd9287c961"], "statement_hash": "6a46288632cb9f38c6b91bdc520c17c212b0c851be375b48185d4c590e263c4b"}, "url": "/docs/compare/?release=15.6#15.6-78793248f5874f6b", "source_url": "/docs/release/15.6/#ZH-AUTO-RELEASE-15-SECT2-24"}, {"db_id": "913e7113740498d6890012a1d1a0a3de", "kind": "equivalent", "version": "14.11", "label": "14.11", "title": "修复 libpq 在管道中处理错误的问题", "evidence": {"same_day": true, "patch_ids": ["c7e1c6c364c7268e98adf207888e84c4", "deccbe885e235f68b1ddecbd9287c961"], "statement_hash": "6a46288632cb9f38c6b91bdc520c17c212b0c851be375b48185d4c590e263c4b"}, "url": "/docs/compare/?release=14.11#14.11-70bd00d580efa935", "source_url": "/docs/release/14.11/#ZH-AUTO-RELEASE-14-SECT2-24"}]}, {"id": "16.2-c7a2605e51ffbfa6", "cves": [], "html": "<p>使 <span>libpq</span> 的 <code>PQsendFlushRequest()</code> 函数在与其他 <code>PQsend</code> 函数相同的规则下刷新客户端输出缓冲区（Jelte Fennema-Nio）<a href=\"https://postgr.es/c/42f832685\">§</a></p>\n<p>在管道模式下，可能仍然需要额外调用 <code>PQflush()</code>；但此更改消除了一些不一致性。</p>", "text": "使 libpq 的 PQsendFlushRequest() 函数在与其他 PQsend 函数相同的规则下刷新客户端输出缓冲区（Jelte Fennema-Nio）§ 在管道模式下，可能仍然需要额外调用 PQflush()；但此更改消除了一些不一致性。", "title": "使 libpq 的 PQsendFlushRequest() 函数在与其他 PQsend 函数相同的规则下刷新客户端输出缓冲区", "commits": ["42f832685"], "section": "变更", "category": "improvement", "source_url": "/docs/release/16.2/#RELEASE-16-2-CHANGES", "source_hash": "00ecc4b8fb1aa881f1a12ba53ebf5938dbdca769e4f20fd4581f7b1a85c6fef5", "section_path": ["变更"], "commit_groups": [["0e28091d5", "1a5594b95", "42f832685", "99fa98766"]], "identity_text": "Make libpq's PQsendFlushRequest() function flush the client output buffer under the same rules as other PQsend functions (Jelte Fennema-Nio) In pipeline mode, it may still be necessary to call PQflush() as well; but this change removes some inconsistency.", "commit_aliases": ["0e28091d5", "1a5594b95", "42f832685", "99fa98766"], "source_commits": ["42f832685"], "source_entry_id": "16.2/changes/053", "db_id": "589959955da12b0bf8fbacfa83ad2c00", "patch_ids": ["5e981c205ea144c50dd6b6bc37d4ae79"], "statement_hash": "480223a6b647c6d91a295b7a38cfeddf6cc7eada1e92bbcd47b2d8a51c4a40bf", "relations": [{"rule": 2, "type": "equivalent", "target": "b73b5f2e92253df66c8059a8ba1ff869", "evidence": {"same_day": true, "patch_ids": ["5e981c205ea144c50dd6b6bc37d4ae79"], "statement_hash": "480223a6b647c6d91a295b7a38cfeddf6cc7eada1e92bbcd47b2d8a51c4a40bf"}}, {"rule": 2, "type": "equivalent", "target": "f406b37dbbc0fa4a0674fd76e1b87262", "evidence": {"same_day": true, "patch_ids": ["5e981c205ea144c50dd6b6bc37d4ae79"], "statement_hash": "480223a6b647c6d91a295b7a38cfeddf6cc7eada1e92bbcd47b2d8a51c4a40bf"}}], "version": "16.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "b73b5f2e92253df66c8059a8ba1ff869", "kind": "equivalent", "version": "15.6", "label": "15.6", "title": "使 libpq 的 PQsendFlushRequest() 函数在与其他 PQsend 函数相同的规则下刷新客户端输出缓冲区", "evidence": {"same_day": true, "patch_ids": ["5e981c205ea144c50dd6b6bc37d4ae79"], "statement_hash": "480223a6b647c6d91a295b7a38cfeddf6cc7eada1e92bbcd47b2d8a51c4a40bf"}, "url": "/docs/compare/?release=15.6#15.6-1774be8063f76e4c", "source_url": "/docs/release/15.6/#ZH-AUTO-RELEASE-15-SECT2-24"}, {"db_id": "f406b37dbbc0fa4a0674fd76e1b87262", "kind": "equivalent", "version": "14.11", "label": "14.11", "title": "使 libpq 的 PQsendFlushRequest() 函数在与其他 PQsend 函数相同的规则下刷新客户端输出缓冲区", "evidence": {"same_day": true, "patch_ids": ["5e981c205ea144c50dd6b6bc37d4ae79"], "statement_hash": "480223a6b647c6d91a295b7a38cfeddf6cc7eada1e92bbcd47b2d8a51c4a40bf"}, "url": "/docs/compare/?release=14.11#14.11-1d2e577f8e981aa3", "source_url": "/docs/release/14.11/#ZH-AUTO-RELEASE-14-SECT2-24"}]}, {"id": "16.2-827568cbe1530108", "cves": [], "html": "<p>避免 <span>libpq</span> 在两个不同线程中并发初始化 OpenSSL 支持时的竞态条件（Willi Mann，Michael Paquier）<a href=\"https://postgr.es/c/8984480b5\">§</a></p>", "text": "避免 libpq 在两个不同线程中并发初始化 OpenSSL 支持时的竞态条件（Willi Mann，Michael Paquier）§", "title": "避免 libpq 在两个不同线程中并发初始化 OpenSSL 支持时的竞态条件", "commits": ["8984480b5"], "section": "变更", "category": "improvement", "source_url": "/docs/release/16.2/#RELEASE-16-2-CHANGES", "source_hash": "f027f2024bad4d1c78bf7fc6d41325160c06d5bed65c2110464c99d4cff5e1ca", "section_path": ["变更"], "commit_groups": [["01eca6a91", "0217a7444", "09f680d11", "8984480b5", "b97226815", "c3b79223f"]], "identity_text": "Avoid race condition when libpq initializes OpenSSL support concurrently in two different threads (Willi Mann, Michael Paquier)", "commit_aliases": ["01eca6a91", "0217a7444", "09f680d11", "8984480b5", "b97226815", "c3b79223f"], "source_commits": ["8984480b5"], "source_entry_id": "16.2/changes/054", "db_id": "718ff93ce220b68d866fe6b6b336927b", "patch_ids": ["4ed2d02fdf5c543f32d1f8787b3a9d87"], "statement_hash": "fae8589fc045dd74996920395c918b35d5bb0ebbb6050512a5ff85ea661c8069", "relations": [{"rule": 2, "type": "equivalent", "target": "64d68e04213dc453dcf3964f2289b306", "evidence": {"same_day": true, "patch_ids": ["4ed2d02fdf5c543f32d1f8787b3a9d87"], "statement_hash": "fae8589fc045dd74996920395c918b35d5bb0ebbb6050512a5ff85ea661c8069"}}, {"rule": 2, "type": "equivalent", "target": "7fafa5567665e704d69bece4003ba049", "evidence": {"same_day": true, "patch_ids": ["4ed2d02fdf5c543f32d1f8787b3a9d87"], "statement_hash": "fae8589fc045dd74996920395c918b35d5bb0ebbb6050512a5ff85ea661c8069"}}, {"rule": 2, "type": "equivalent", "target": "c3a27a028d4e9a50d52b983d239c6e73", "evidence": {"same_day": true, "patch_ids": ["4ed2d02fdf5c543f32d1f8787b3a9d87"], "statement_hash": "fae8589fc045dd74996920395c918b35d5bb0ebbb6050512a5ff85ea661c8069"}}, {"rule": 2, "type": "equivalent", "target": "f3a8efa144dcc1244369dd482a70b568", "evidence": {"same_day": true, "patch_ids": ["4ed2d02fdf5c543f32d1f8787b3a9d87"], "statement_hash": "fae8589fc045dd74996920395c918b35d5bb0ebbb6050512a5ff85ea661c8069"}}], "version": "16.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "c3a27a028d4e9a50d52b983d239c6e73", "kind": "equivalent", "version": "15.6", "label": "15.6", "title": "避免 libpq 在两个不同线程中并发初始化 OpenSSL 支持时的竞态条件", "evidence": {"same_day": true, "patch_ids": ["4ed2d02fdf5c543f32d1f8787b3a9d87"], "statement_hash": "fae8589fc045dd74996920395c918b35d5bb0ebbb6050512a5ff85ea661c8069"}, "url": "/docs/compare/?release=15.6#15.6-82d539774c9a70c2", "source_url": "/docs/release/15.6/#ZH-AUTO-RELEASE-15-SECT2-24"}, {"db_id": "7fafa5567665e704d69bece4003ba049", "kind": "equivalent", "version": "14.11", "label": "14.11", "title": "避免 libpq 在两个不同线程中并发初始化 OpenSSL 支持时的竞态条件", "evidence": {"same_day": true, "patch_ids": ["4ed2d02fdf5c543f32d1f8787b3a9d87"], "statement_hash": "fae8589fc045dd74996920395c918b35d5bb0ebbb6050512a5ff85ea661c8069"}, "url": "/docs/compare/?release=14.11#14.11-5fbdf887231ea656", "source_url": "/docs/release/14.11/#ZH-AUTO-RELEASE-14-SECT2-24"}, {"db_id": "64d68e04213dc453dcf3964f2289b306", "kind": "equivalent", "version": "13.14", "label": "13.14", "title": "避免 libpq 在两个不同线程中并发初始化 OpenSSL 支持时的竞态条件", "evidence": {"same_day": true, "patch_ids": ["4ed2d02fdf5c543f32d1f8787b3a9d87"], "statement_hash": "fae8589fc045dd74996920395c918b35d5bb0ebbb6050512a5ff85ea661c8069"}, "url": "/docs/compare/?release=13.14#13.14-a4b424fae74598d4", "source_url": "/docs/release/13.14/#id-1.11.6.15.5"}, {"db_id": "f3a8efa144dcc1244369dd482a70b568", "kind": "equivalent", "version": "12.18", "label": "12.18", "title": "避免 libpq 在两个不同线程中并发初始化 OpenSSL 支持时的竞态条件", "evidence": {"same_day": true, "patch_ids": ["4ed2d02fdf5c543f32d1f8787b3a9d87"], "statement_hash": "fae8589fc045dd74996920395c918b35d5bb0ebbb6050512a5ff85ea661c8069"}, "url": "/docs/compare/?release=12.18#12.18-198aa8d38017304f", "source_url": "/docs/release/12.18/#id-1.11.6.10.6"}]}, {"id": "16.2-8b35bdb19ba43861", "cves": [], "html": "<p>修复 GSSAPI 数据传输中与时间相关的失败（Tom Lane）<a href=\"https://postgr.es/c/85eb77185\">§</a></p>\n<p>在非阻塞模式下使用 GSSAPI 加密时，<span>libpq</span> 有时会报告 <span>“<span>GSSAPI caller failed to retransmit all data needing to be retried</span>”</span>。</p>", "text": "修复 GSSAPI 数据传输中与时间相关的失败（Tom Lane）§ 在非阻塞模式下使用 GSSAPI 加密时，libpq 有时会报告 “GSSAPI caller failed to retransmit all data needing to be retried”。", "title": "修复 GSSAPI 数据传输中与时间相关的失败", "commits": ["85eb77185"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/16.2/#RELEASE-16-2-CHANGES", "source_hash": "6cadac39c3f3661b958c5f2474630c0bbbec2ceaff9024f2761e6a829021f880", "section_path": ["变更"], "commit_groups": [["18fad508b", "5abdfd88f", "85eb77185", "8f23e6a45", "a50053777", "d053a879b"]], "identity_text": "Fix timing-dependent failure in GSSAPI data transmission (Tom Lane) When using GSSAPI encryption in non-blocking mode, libpq sometimes failed with GSSAPI caller failed to retransmit all data needing to be retried.", "commit_aliases": ["18fad508b", "5abdfd88f", "85eb77185", "8f23e6a45", "a50053777", "d053a879b"], "source_commits": ["85eb77185"], "source_entry_id": "16.2/changes/055", "db_id": "06e24af44b58190bceeeeeb4622ba2d6", "patch_ids": ["374e76c0c990e89c224b09f0831eae4e"], "statement_hash": "f66b7d052b80eb0940ee004e312188d8b4dbda3fc663a87eff9da76c562aad52", "relations": [{"rule": 2, "type": "equivalent", "target": "26258719d8dae9621aa9117ad4422092", "evidence": {"same_day": true, "patch_ids": ["374e76c0c990e89c224b09f0831eae4e"], "statement_hash": "f66b7d052b80eb0940ee004e312188d8b4dbda3fc663a87eff9da76c562aad52"}}, {"rule": 2, "type": "equivalent", "target": "a03d0fe615fb2448bb621e4b63a37bf8", "evidence": {"same_day": true, "patch_ids": ["374e76c0c990e89c224b09f0831eae4e"], "statement_hash": "f66b7d052b80eb0940ee004e312188d8b4dbda3fc663a87eff9da76c562aad52"}}, {"rule": 2, "type": "equivalent", "target": "c0f1156bbbecb2b0880e4ce6f2ab3a8b", "evidence": {"same_day": true, "patch_ids": ["374e76c0c990e89c224b09f0831eae4e"], "statement_hash": "f66b7d052b80eb0940ee004e312188d8b4dbda3fc663a87eff9da76c562aad52"}}, {"rule": 2, "type": "equivalent", "target": "d7142464a559e3f113b2c9fe54148cb0", "evidence": {"same_day": true, "patch_ids": ["374e76c0c990e89c224b09f0831eae4e"], "statement_hash": "f66b7d052b80eb0940ee004e312188d8b4dbda3fc663a87eff9da76c562aad52"}}], "version": "16.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "a03d0fe615fb2448bb621e4b63a37bf8", "kind": "equivalent", "version": "15.6", "label": "15.6", "title": "修复 GSSAPI 数据传输中与时间相关的失败", "evidence": {"same_day": true, "patch_ids": ["374e76c0c990e89c224b09f0831eae4e"], "statement_hash": "f66b7d052b80eb0940ee004e312188d8b4dbda3fc663a87eff9da76c562aad52"}, "url": "/docs/compare/?release=15.6#15.6-e956a64c990b3f52", "source_url": "/docs/release/15.6/#ZH-AUTO-RELEASE-15-SECT2-24"}, {"db_id": "c0f1156bbbecb2b0880e4ce6f2ab3a8b", "kind": "equivalent", "version": "14.11", "label": "14.11", "title": "修复 GSSAPI 数据传输中与时间相关的失败", "evidence": {"same_day": true, "patch_ids": ["374e76c0c990e89c224b09f0831eae4e"], "statement_hash": "f66b7d052b80eb0940ee004e312188d8b4dbda3fc663a87eff9da76c562aad52"}, "url": "/docs/compare/?release=14.11#14.11-da924a3adcaa7e8b", "source_url": "/docs/release/14.11/#ZH-AUTO-RELEASE-14-SECT2-24"}, {"db_id": "26258719d8dae9621aa9117ad4422092", "kind": "equivalent", "version": "13.14", "label": "13.14", "title": "修复 GSSAPI 数据传输中与时间相关的失败", "evidence": {"same_day": true, "patch_ids": ["374e76c0c990e89c224b09f0831eae4e"], "statement_hash": "f66b7d052b80eb0940ee004e312188d8b4dbda3fc663a87eff9da76c562aad52"}, "url": "/docs/compare/?release=13.14#13.14-52b6180e41098860", "source_url": "/docs/release/13.14/#id-1.11.6.15.5"}, {"db_id": "d7142464a559e3f113b2c9fe54148cb0", "kind": "equivalent", "version": "12.18", "label": "12.18", "title": "修复 GSSAPI 数据传输中与时间相关的失败", "evidence": {"same_day": true, "patch_ids": ["374e76c0c990e89c224b09f0831eae4e"], "statement_hash": "f66b7d052b80eb0940ee004e312188d8b4dbda3fc663a87eff9da76c562aad52"}, "url": "/docs/compare/?release=12.18#12.18-9230ec25b931f9ce", "source_url": "/docs/release/12.18/#id-1.11.6.10.6"}]}, {"id": "16.2-a232c42f24d3b701", "cves": [], "html": "<p>更改 <span>initdb</span> 以始终取消注释 <code>postgresql.conf</code> 中 <code>lc_<em><code>xxx</code></em></code> 参数的条目（Kyotaro Horiguchi）<a href=\"https://postgr.es/c/ba33775fd\">§</a></p>\n<p><span>initdb</span> 在 v16 之前是这样工作的，现在又恢复了此行为。此更改导致 <span>initdb</span> 的 <code>--no-locale</code> 选项对 <code>lc_messages</code> 未产生预期效果。</p>", "text": "更改 initdb 以始终取消注释 postgresql.conf 中 lc_xxx 参数的条目（Kyotaro Horiguchi）§ initdb 在 v16 之前是这样工作的，现在又恢复了此行为。此更改导致 initdb 的 --no-locale 选项对 lc_messages 未产生预期效果。", "title": "更改 initdb 以始终取消注释 postgresql.conf 中 lc_xxx 参数的条目", "commits": ["ba33775fd"], "section": "变更", "category": "improvement", "source_url": "/docs/release/16.2/#RELEASE-16-2-CHANGES", "source_hash": "394edb618b7ac14e93bc51c271c02c8ee4681eef81133cda9cda7693d81d73bf", "section_path": ["变更"], "commit_groups": [["3d185cfc0", "ba33775fd"]], "identity_text": "Change initdb to always un-comment the postgresql.conf entries for the lc_xxx parameters (Kyotaro Horiguchi) initdb used to work this way before v16, and now it does again. The change caused initdb's --no-locale option to not have the intended effect on lc_messages.", "commit_aliases": ["3d185cfc0", "ba33775fd"], "source_commits": ["ba33775fd"], "source_entry_id": "16.2/changes/056", "db_id": "be8d97bd4c59c591007c119e438fccdd", "patch_ids": ["21ea6cf919b164cfc23a7b95db1492c2"], "statement_hash": "093f4c274541fc25fbe52ad51b40fd81dbc6e45fa122832264b08625dc1c1b05", "relations": [], "version": "16.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.2-cbfc5bf96ee5d7ea", "cves": [], "html": "<p>在 <span>pg_dump</span> 中，不要导出扩展成员对象的 RLS 策略或安全标签（Tom Lane，Jacob Champion）<a href=\"https://postgr.es/c/64d2467fc\">§</a> <a href=\"https://postgr.es/c/f1674ac6b\">§</a></p>\n<p>之前，导出中会包含设置这些属性的命令，这实际上是不正确的，因为它们应该被视为扩展的内部事务。此外，恢复用户可能没有足够的权限来设置它们，导出用户也可能没有足够的权限来导出它们（因为导出 RLS 策略需要获取其表上的锁）。</p>", "text": "在 pg_dump 中，不要导出扩展成员对象的 RLS 策略或安全标签（Tom Lane，Jacob Champion）§ § 之前，导出中会包含设置这些属性的命令，这实际上是不正确的，因为它们应该被视为扩展的内部事务。此外，恢复用户可能没有足够的权限来设置它们，导出用户也可能没有足够的权限来导出它们（因为导出 RLS 策略需要获取其表上的锁）。", "title": "在 pg_dump 中，不要导出扩展成员对象的 RLS 策略或安全标签", "commits": ["64d2467fc", "f1674ac6b"], "section": "变更", "category": "improvement", "source_url": "/docs/release/16.2/#RELEASE-16-2-CHANGES", "source_hash": "7aa6c3e3e97c0cecaad5d45570eacfff162ea941bc048b4a975d54a4866c6b66", "section_path": ["变更"], "commit_groups": [["15439205d", "64d2467fc", "891afa84c", "9e08789d4", "a70f2a57f", "f15147df6"], ["1e3f461e8", "63c1b4d88", "7836f6838", "c532be99d", "e43790342", "f1674ac6b"]], "identity_text": "In pg_dump, don't dump RLS policies or security labels for extension member objects (Tom Lane, Jacob Champion) Previously, commands would be included in the dump to set these properties, which is really incorrect since they should be considered as internal affairs of the extension. Moreover, the restoring user might not have adequate privilege to set them, and indeed the dumping user might not have enough privilege to dump them (since dumping RLS policies requires acquiring lock on their table).", "commit_aliases": ["15439205d", "1e3f461e8", "63c1b4d88", "64d2467fc", "7836f6838", "891afa84c", "9e08789d4", "a70f2a57f", "c532be99d", "e43790342", "f15147df6", "f1674ac6b"], "source_commits": ["64d2467fc", "f1674ac6b"], "source_entry_id": "16.2/changes/057", "db_id": "3dcb86e2b99ea276f57844cef4ecca3c", "patch_ids": ["7e63c2ba6908240f784865cc6d95b2ba", "b36425e1dff7f2f720d69cf4057afd0c"], "statement_hash": "1623f63f6eaf0d0038dece8862f590c7b41398b1b44a584af77b6ff73e073360", "relations": [{"rule": 2, "type": "equivalent", "target": "631bc217f4a8a4f33e9fad6d4631187a", "evidence": {"same_day": true, "patch_ids": ["7e63c2ba6908240f784865cc6d95b2ba", "b36425e1dff7f2f720d69cf4057afd0c"], "statement_hash": "1623f63f6eaf0d0038dece8862f590c7b41398b1b44a584af77b6ff73e073360"}}, {"rule": 2, "type": "equivalent", "target": "64380aed532b7133629c450f0f558a8a", "evidence": {"same_day": true, "patch_ids": ["7e63c2ba6908240f784865cc6d95b2ba", "b36425e1dff7f2f720d69cf4057afd0c"], "statement_hash": "1623f63f6eaf0d0038dece8862f590c7b41398b1b44a584af77b6ff73e073360"}}, {"rule": 2, "type": "equivalent", "target": "6cc80b1ab137b214de78b71f339ce3d5", "evidence": {"same_day": true, "patch_ids": ["7e63c2ba6908240f784865cc6d95b2ba", "b36425e1dff7f2f720d69cf4057afd0c"], "statement_hash": "1623f63f6eaf0d0038dece8862f590c7b41398b1b44a584af77b6ff73e073360"}}, {"rule": 2, "type": "equivalent", "target": "df4617c9e2c7bd1c4f9bf02865e63970", "evidence": {"same_day": true, "patch_ids": ["7e63c2ba6908240f784865cc6d95b2ba", "b36425e1dff7f2f720d69cf4057afd0c"], "statement_hash": "1623f63f6eaf0d0038dece8862f590c7b41398b1b44a584af77b6ff73e073360"}}], "version": "16.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "631bc217f4a8a4f33e9fad6d4631187a", "kind": "equivalent", "version": "15.6", "label": "15.6", "title": "在 pg_dump 中，不要导出扩展成员对象的 RLS 策略或安全标签", "evidence": {"same_day": true, "patch_ids": ["7e63c2ba6908240f784865cc6d95b2ba", "b36425e1dff7f2f720d69cf4057afd0c"], "statement_hash": "1623f63f6eaf0d0038dece8862f590c7b41398b1b44a584af77b6ff73e073360"}, "url": "/docs/compare/?release=15.6#15.6-10709b005edd4c31", "source_url": "/docs/release/15.6/#ZH-AUTO-RELEASE-15-SECT2-24"}, {"db_id": "6cc80b1ab137b214de78b71f339ce3d5", "kind": "equivalent", "version": "14.11", "label": "14.11", "title": "在 pg_dump 中，不要导出扩展成员对象的 RLS 策略或安全标签", "evidence": {"same_day": true, "patch_ids": ["7e63c2ba6908240f784865cc6d95b2ba", "b36425e1dff7f2f720d69cf4057afd0c"], "statement_hash": "1623f63f6eaf0d0038dece8862f590c7b41398b1b44a584af77b6ff73e073360"}, "url": "/docs/compare/?release=14.11#14.11-8994910fc3e802cf", "source_url": "/docs/release/14.11/#ZH-AUTO-RELEASE-14-SECT2-24"}, {"db_id": "df4617c9e2c7bd1c4f9bf02865e63970", "kind": "equivalent", "version": "13.14", "label": "13.14", "title": "在 pg_dump 中，不要导出扩展成员对象的 RLS 策略或安全标签", "evidence": {"same_day": true, "patch_ids": ["7e63c2ba6908240f784865cc6d95b2ba", "b36425e1dff7f2f720d69cf4057afd0c"], "statement_hash": "1623f63f6eaf0d0038dece8862f590c7b41398b1b44a584af77b6ff73e073360"}, "url": "/docs/compare/?release=13.14#13.14-477fd44d42be8f00", "source_url": "/docs/release/13.14/#id-1.11.6.15.5"}, {"db_id": "64380aed532b7133629c450f0f558a8a", "kind": "equivalent", "version": "12.18", "label": "12.18", "title": "在 pg_dump 中，不要导出扩展成员对象的 RLS 策略或安全标签", "evidence": {"same_day": true, "patch_ids": ["7e63c2ba6908240f784865cc6d95b2ba", "b36425e1dff7f2f720d69cf4057afd0c"], "statement_hash": "1623f63f6eaf0d0038dece8862f590c7b41398b1b44a584af77b6ff73e073360"}, "url": "/docs/compare/?release=12.18#12.18-3e4e1d41ce8bfc3b", "source_url": "/docs/release/12.18/#id-1.11.6.10.6"}]}, {"id": "16.2-a638873d0f413325", "cves": [], "html": "<p>在 <span>pg_dump</span> 中，如果扩展统计对象的底层表没有被导出，则不要导出该统计对象（Rian McGuire，Tom Lane）<a href=\"https://postgr.es/c/b2c9936a7\">§</a></p>\n<p>这与索引等其他依赖对象的行为保持一致。</p>", "text": "在 pg_dump 中，如果扩展统计对象的底层表没有被导出，则不要导出该统计对象（Rian McGuire，Tom Lane）§ 这与索引等其他依赖对象的行为保持一致。", "title": "在 pg_dump 中，如果扩展统计对象的底层表没有被导出，则不要导出该统计对象", "commits": ["b2c9936a7"], "section": "变更", "category": "improvement", "source_url": "/docs/release/16.2/#RELEASE-16-2-CHANGES", "source_hash": "3c8c653ae7e25d060d8eda6cc4e798627e1b8632b02240634087c0b5e8a6ff92", "section_path": ["变更"], "commit_groups": [["1e0841426", "69d7edb06", "7418767f1", "8d4e8b746", "aa2e323ee", "b2c9936a7"]], "identity_text": "In pg_dump, don't dump an extended statistics object if its underlying table isn't being dumped (Rian McGuire, Tom Lane) This conforms to the behavior for other dependent objects such as indexes.", "commit_aliases": ["1e0841426", "69d7edb06", "7418767f1", "8d4e8b746", "aa2e323ee", "b2c9936a7"], "source_commits": ["b2c9936a7"], "source_entry_id": "16.2/changes/058", "db_id": "96c22c4152e27eecc355832d7bd9b07b", "patch_ids": ["d9dd86c5006edff8bc1d1459d5980be6"], "statement_hash": "4a44dcc65d5f1a458ade5e891a43e04f0b32041636081e5f424b265a22549389", "relations": [{"rule": 2, "type": "equivalent", "target": "120d13fedf0801db04a09cc4297c16a8", "evidence": {"same_day": true, "patch_ids": ["d9dd86c5006edff8bc1d1459d5980be6"], "statement_hash": "4a44dcc65d5f1a458ade5e891a43e04f0b32041636081e5f424b265a22549389"}}, {"rule": 2, "type": "equivalent", "target": "22571a9636c6150390d9c2326367d5bb", "evidence": {"same_day": true, "patch_ids": ["d9dd86c5006edff8bc1d1459d5980be6"], "statement_hash": "4a44dcc65d5f1a458ade5e891a43e04f0b32041636081e5f424b265a22549389"}}, {"rule": 2, "type": "equivalent", "target": "282546f068c1df1036615bb3f20a68eb", "evidence": {"same_day": true, "patch_ids": ["d9dd86c5006edff8bc1d1459d5980be6"], "statement_hash": "4a44dcc65d5f1a458ade5e891a43e04f0b32041636081e5f424b265a22549389"}}, {"rule": 2, "type": "equivalent", "target": "4a3706b4ba11a45fa34962e4e044f0cb", "evidence": {"same_day": true, "patch_ids": ["d9dd86c5006edff8bc1d1459d5980be6"], "statement_hash": "4a44dcc65d5f1a458ade5e891a43e04f0b32041636081e5f424b265a22549389"}}], "version": "16.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "22571a9636c6150390d9c2326367d5bb", "kind": "equivalent", "version": "15.6", "label": "15.6", "title": "在 pg_dump 中，如果扩展统计对象的底层表没有被导出，则不要导出该统计对象", "evidence": {"same_day": true, "patch_ids": ["d9dd86c5006edff8bc1d1459d5980be6"], "statement_hash": "4a44dcc65d5f1a458ade5e891a43e04f0b32041636081e5f424b265a22549389"}, "url": "/docs/compare/?release=15.6#15.6-0aa1bf3343297291", "source_url": "/docs/release/15.6/#ZH-AUTO-RELEASE-15-SECT2-24"}, {"db_id": "282546f068c1df1036615bb3f20a68eb", "kind": "equivalent", "version": "14.11", "label": "14.11", "title": "在 pg_dump 中，如果扩展统计对象的底层表没有被导出，则不要导出该统计对象", "evidence": {"same_day": true, "patch_ids": ["d9dd86c5006edff8bc1d1459d5980be6"], "statement_hash": "4a44dcc65d5f1a458ade5e891a43e04f0b32041636081e5f424b265a22549389"}, "url": "/docs/compare/?release=14.11#14.11-6a74d524e88cd981", "source_url": "/docs/release/14.11/#ZH-AUTO-RELEASE-14-SECT2-24"}, {"db_id": "120d13fedf0801db04a09cc4297c16a8", "kind": "equivalent", "version": "13.14", "label": "13.14", "title": "在 pg_dump 中，如果扩展统计对象的底层表没有被导出，则不要导出该统计对象", "evidence": {"same_day": true, "patch_ids": ["d9dd86c5006edff8bc1d1459d5980be6"], "statement_hash": "4a44dcc65d5f1a458ade5e891a43e04f0b32041636081e5f424b265a22549389"}, "url": "/docs/compare/?release=13.14#13.14-bee8bd7b7098fa40", "source_url": "/docs/release/13.14/#id-1.11.6.15.5"}, {"db_id": "4a3706b4ba11a45fa34962e4e044f0cb", "kind": "equivalent", "version": "12.18", "label": "12.18", "title": "在 pg_dump 中，如果扩展统计对象的底层表没有被导出，则不要导出该统计对象", "evidence": {"same_day": true, "patch_ids": ["d9dd86c5006edff8bc1d1459d5980be6"], "statement_hash": "4a44dcc65d5f1a458ade5e891a43e04f0b32041636081e5f424b265a22549389"}, "url": "/docs/compare/?release=12.18#12.18-7ce08d4a7a298b32", "source_url": "/docs/release/12.18/#id-1.11.6.10.6"}]}, {"id": "16.2-9c74722746b54d16", "cves": [], "html": "<p>在 <span>pg_dump</span> 的一个代码路径中正确检测内存不足（Daniel Gustafsson）<a href=\"https://postgr.es/c/5b5db413d\">§</a></p>", "text": "在 pg_dump 的一个代码路径中正确检测内存不足（Daniel Gustafsson）§", "title": "在 pg_dump 的一个代码路径中正确检测内存不足", "commits": ["5b5db413d"], "section": "变更", "category": "improvement", "source_url": "/docs/release/16.2/#RELEASE-16-2-CHANGES", "source_hash": "5b51095b953186f7eb4e95505233bf0a4a799a3b6b74f1eb7ba89472d99ff78f", "section_path": ["变更"], "commit_groups": [["30e54d5c5", "5b5db413d"]], "identity_text": "Properly detect out-of-memory in one code path in pg_dump (Daniel Gustafsson)", "commit_aliases": ["30e54d5c5", "5b5db413d"], "source_commits": ["5b5db413d"], "source_entry_id": "16.2/changes/059", "db_id": "b119d720246eb1a4ca37e1cac7a76578", "patch_ids": ["3493fae5bcbd8748f99bbfa64f857458"], "statement_hash": "16a862de0d2be2c947a6388c0c4aac1df960b0d4fd9ba105026a2efdd9df5d12", "relations": [], "version": "16.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.2-36a08452636ed0c4", "cves": [], "html": "<p>使 <span>pgbench</span> 脚本以未关闭的管道结束时报告错误（Anthonin Bonnefoy）<a href=\"https://postgr.es/c/07b53de70\">§</a></p>\n<p>之前，如果 <code>\\startpipeline</code> 命令缺少匹配的 <code>\\endpipeline</code>，<span>pgbench</span> 会出现奇怪的行为。这看起来像是脚本错误而不是 <span>pgbench</span> 需要优雅处理的情况，因此抛出错误。</p>", "text": "使 pgbench 脚本以未关闭的管道结束时报告错误（Anthonin Bonnefoy）§ 之前，如果 \\startpipeline 命令缺少匹配的 \\endpipeline，pgbench 会出现奇怪的行为。这看起来像是脚本错误而不是 pgbench 需要优雅处理的情况，因此抛出错误。", "title": "使 pgbench 脚本以未关闭的管道结束时报告错误", "commits": ["07b53de70"], "section": "变更", "category": "improvement", "source_url": "/docs/release/16.2/#RELEASE-16-2-CHANGES", "source_hash": "5e4b10193ecab50bd248931f98d9e906bc4447ffd171abd22e5bc9f1c64b8092", "section_path": ["变更"], "commit_groups": [["07b53de70", "3fd36be52", "49f7c6c44", "85ecff891"]], "identity_text": "Make it an error for a pgbench script to end with an open pipeline (Anthonin Bonnefoy) Previously, pgbench would behave oddly if a \\startpipeline command lacked a matching \\endpipeline. This seems like a scripting mistake rather than a case that pgbench needs to handle nicely, so throw an error.", "commit_aliases": ["07b53de70", "3fd36be52", "49f7c6c44", "85ecff891"], "source_commits": ["07b53de70"], "source_entry_id": "16.2/changes/060", "db_id": "137cc5aafdefbdddb14aa9a5a2bdab7a", "patch_ids": ["be589759b7852d72a2966a6122528c60"], "statement_hash": "4160fb4220613671306ce1823b6a4c9429508bb23ba7c928896ccca2ecdd03bb", "relations": [{"rule": 2, "type": "equivalent", "target": "57f03ae7151a54e1cc66f3e0ca62dd3c", "evidence": {"same_day": true, "patch_ids": ["be589759b7852d72a2966a6122528c60"], "statement_hash": "4160fb4220613671306ce1823b6a4c9429508bb23ba7c928896ccca2ecdd03bb"}}, {"rule": 2, "type": "equivalent", "target": "7fc7276e6ff771e8af612a513a320f20", "evidence": {"same_day": true, "patch_ids": ["be589759b7852d72a2966a6122528c60"], "statement_hash": "4160fb4220613671306ce1823b6a4c9429508bb23ba7c928896ccca2ecdd03bb"}}], "version": "16.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "57f03ae7151a54e1cc66f3e0ca62dd3c", "kind": "equivalent", "version": "15.6", "label": "15.6", "title": "使 pgbench 脚本以未关闭的管道结束时报告错误", "evidence": {"same_day": true, "patch_ids": ["be589759b7852d72a2966a6122528c60"], "statement_hash": "4160fb4220613671306ce1823b6a4c9429508bb23ba7c928896ccca2ecdd03bb"}, "url": "/docs/compare/?release=15.6#15.6-a88cdc403af17279", "source_url": "/docs/release/15.6/#ZH-AUTO-RELEASE-15-SECT2-24"}, {"db_id": "7fc7276e6ff771e8af612a513a320f20", "kind": "equivalent", "version": "14.11", "label": "14.11", "title": "使 pgbench 脚本以未关闭的管道结束时报告错误", "evidence": {"same_day": true, "patch_ids": ["be589759b7852d72a2966a6122528c60"], "statement_hash": "4160fb4220613671306ce1823b6a4c9429508bb23ba7c928896ccca2ecdd03bb"}, "url": "/docs/compare/?release=14.11#14.11-c37ded006c770591", "source_url": "/docs/release/14.11/#ZH-AUTO-RELEASE-14-SECT2-24"}]}, {"id": "16.2-7a69ebec4cc012dc", "cves": [], "html": "<p>修复 <code>contrib/intarray</code> 中当包含等于 <code>INT_MAX</code> 的元素的数组被插入到 <code>gist__int_ops</code> 索引时的崩溃（Alexander Lakhin，Tom Lane）<a href=\"https://postgr.es/c/cf6f802bf\">§</a></p>", "text": "修复 contrib/intarray 中当包含等于 INT_MAX 的元素的数组被插入到 gist__int_ops 索引时的崩溃（Alexander Lakhin，Tom Lane）§", "title": "修复 contrib/intarray 中当包含等于 INT_MAX 的元素的数组被插入到 gist__int_ops 索引时的崩溃", "commits": ["cf6f802bf"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/16.2/#RELEASE-16-2-CHANGES", "source_hash": "69f061b75965831dc9d179962bb72ba23ba48c6561ef79b893805bfdb256e550", "section_path": ["变更"], "commit_groups": [["1c7443521", "9034a2d51", "90e8b86fc", "940ab02b5", "9e7432faf", "cf6f802bf"]], "identity_text": "Fix crash in contrib/intarray if an array with an element equal to INT_MAX is inserted into a gist__int_ops index (Alexander Lakhin, Tom Lane)", "commit_aliases": ["1c7443521", "9034a2d51", "90e8b86fc", "940ab02b5", "9e7432faf", "cf6f802bf"], "source_commits": ["cf6f802bf"], "source_entry_id": "16.2/changes/061", "db_id": "48fb3e8080f1fbf35b01976b87c3ba36", "patch_ids": ["a6caa670c76efb4e1ffb72a3f784d637"], "statement_hash": "099e165d7fc2500965d9f130a12440a33cd76a91c3ebebe5ae050880b319bc34", "relations": [{"rule": 2, "type": "equivalent", "target": "3d298de44492bd26d739cfccace03e80", "evidence": {"same_day": true, "patch_ids": ["a6caa670c76efb4e1ffb72a3f784d637"], "statement_hash": "099e165d7fc2500965d9f130a12440a33cd76a91c3ebebe5ae050880b319bc34"}}, {"rule": 2, "type": "equivalent", "target": "b853a21e2df1f9939d1667422f113ac9", "evidence": {"same_day": true, "patch_ids": ["a6caa670c76efb4e1ffb72a3f784d637"], "statement_hash": "099e165d7fc2500965d9f130a12440a33cd76a91c3ebebe5ae050880b319bc34"}}, {"rule": 2, "type": "equivalent", "target": "db9d9fa146cfdeb48c51f8a28c6d61f7", "evidence": {"same_day": true, "patch_ids": ["a6caa670c76efb4e1ffb72a3f784d637"], "statement_hash": "099e165d7fc2500965d9f130a12440a33cd76a91c3ebebe5ae050880b319bc34"}}, {"rule": 2, "type": "equivalent", "target": "ddef6ee4e8dbdfed5abce5395d46645d", "evidence": {"same_day": true, "patch_ids": ["a6caa670c76efb4e1ffb72a3f784d637"], "statement_hash": "099e165d7fc2500965d9f130a12440a33cd76a91c3ebebe5ae050880b319bc34"}}], "version": "16.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "3d298de44492bd26d739cfccace03e80", "kind": "equivalent", "version": "15.6", "label": "15.6", "title": "修复 contrib/intarray 中当包含等于 INT_MAX 的元素的数组被插入到 gist__int_ops 索引时的崩溃", "evidence": {"same_day": true, "patch_ids": ["a6caa670c76efb4e1ffb72a3f784d637"], "statement_hash": "099e165d7fc2500965d9f130a12440a33cd76a91c3ebebe5ae050880b319bc34"}, "url": "/docs/compare/?release=15.6#15.6-615989c8ea7b3a99", "source_url": "/docs/release/15.6/#ZH-AUTO-RELEASE-15-SECT2-24"}, {"db_id": "b853a21e2df1f9939d1667422f113ac9", "kind": "equivalent", "version": "14.11", "label": "14.11", "title": "修复 contrib/intarray 中当包含等于 INT_MAX 的元素的数组被插入到 gist__int_ops 索引时的崩溃", "evidence": {"same_day": true, "patch_ids": ["a6caa670c76efb4e1ffb72a3f784d637"], "statement_hash": "099e165d7fc2500965d9f130a12440a33cd76a91c3ebebe5ae050880b319bc34"}, "url": "/docs/compare/?release=14.11#14.11-22b1b6b26dffe4ec", "source_url": "/docs/release/14.11/#ZH-AUTO-RELEASE-14-SECT2-24"}, {"db_id": "db9d9fa146cfdeb48c51f8a28c6d61f7", "kind": "equivalent", "version": "13.14", "label": "13.14", "title": "修复 contrib/intarray 中当包含等于 INT_MAX 的元素的数组被插入到 gist__int_ops 索引时的崩溃", "evidence": {"same_day": true, "patch_ids": ["a6caa670c76efb4e1ffb72a3f784d637"], "statement_hash": "099e165d7fc2500965d9f130a12440a33cd76a91c3ebebe5ae050880b319bc34"}, "url": "/docs/compare/?release=13.14#13.14-6bd6d6e0fc2d8452", "source_url": "/docs/release/13.14/#id-1.11.6.15.5"}, {"db_id": "ddef6ee4e8dbdfed5abce5395d46645d", "kind": "equivalent", "version": "12.18", "label": "12.18", "title": "修复 contrib/intarray 中当包含等于 INT_MAX 的元素的数组被插入到 gist__int_ops 索引时的崩溃", "evidence": {"same_day": true, "patch_ids": ["a6caa670c76efb4e1ffb72a3f784d637"], "statement_hash": "099e165d7fc2500965d9f130a12440a33cd76a91c3ebebe5ae050880b319bc34"}, "url": "/docs/compare/?release=12.18#12.18-80a87e90701eed78", "source_url": "/docs/release/12.18/#id-1.11.6.10.6"}]}, {"id": "16.2-b5e9566f13d31c99", "cves": [], "html": "<p>当 <code>contrib/pageinspect</code> 的 <code>hash_bitmap_info()</code> 函数应用于分区 hash 索引时报告更好的错误（Alexander Lakhin，Michael Paquier）<a href=\"https://postgr.es/c/7f68b1462\">§</a></p>", "text": "当 contrib/pageinspect 的 hash_bitmap_info() 函数应用于分区 hash 索引时报告更好的错误（Alexander Lakhin，Michael Paquier）§", "title": "当 contrib/pageinspect 的 hash_bitmap_info() 函数应用于分区 hash 索引时报告更好的错误", "commits": ["7f68b1462"], "section": "变更", "category": "improvement", "source_url": "/docs/release/16.2/#RELEASE-16-2-CHANGES", "source_hash": "148a59c020ea4b93cdc10bab80140a6c2e33a7a7784b909a1dfe9212a503fd49", "section_path": ["变更"], "commit_groups": [["208470136", "2e08440d6", "586c6a091", "7f68b1462", "bfbe4a146", "f610d4f11"]], "identity_text": "Report a better error when contrib/pageinspect's hash_bitmap_info() function is applied to a partitioned hash index (Alexander Lakhin, Michael Paquier)", "commit_aliases": ["208470136", "2e08440d6", "586c6a091", "7f68b1462", "bfbe4a146", "f610d4f11"], "source_commits": ["7f68b1462"], "source_entry_id": "16.2/changes/062", "db_id": "60a14b6e1ae9222798f9ed04c0f8f564", "patch_ids": ["4a9a9b124c20d9b9e0984633db238139"], "statement_hash": "3ec047bdb4ba9df80ea1b9560cd509b894b649988b48e4e65150c2792c532a69", "relations": [{"rule": 2, "type": "equivalent", "target": "69851714104768799da0b2647c039ed0", "evidence": {"same_day": true, "patch_ids": ["4a9a9b124c20d9b9e0984633db238139"], "statement_hash": "3ec047bdb4ba9df80ea1b9560cd509b894b649988b48e4e65150c2792c532a69"}}, {"rule": 2, "type": "equivalent", "target": "a40dbeddc3b3369704c32f258194e999", "evidence": {"same_day": true, "patch_ids": ["4a9a9b124c20d9b9e0984633db238139"], "statement_hash": "3ec047bdb4ba9df80ea1b9560cd509b894b649988b48e4e65150c2792c532a69"}}, {"rule": 2, "type": "equivalent", "target": "ced1b486c2187f854d5523c562b8f3b0", "evidence": {"same_day": true, "patch_ids": ["4a9a9b124c20d9b9e0984633db238139"], "statement_hash": "3ec047bdb4ba9df80ea1b9560cd509b894b649988b48e4e65150c2792c532a69"}}, {"rule": 2, "type": "equivalent", "target": "ece9264db04c3d20bdfa0d99719ed177", "evidence": {"same_day": true, "patch_ids": ["4a9a9b124c20d9b9e0984633db238139"], "statement_hash": "3ec047bdb4ba9df80ea1b9560cd509b894b649988b48e4e65150c2792c532a69"}}], "version": "16.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "ced1b486c2187f854d5523c562b8f3b0", "kind": "equivalent", "version": "15.6", "label": "15.6", "title": "当 contrib/pageinspect 的 hash_bitmap_info() 函数应用于分区 hash 索引时报告更好的错误", "evidence": {"same_day": true, "patch_ids": ["4a9a9b124c20d9b9e0984633db238139"], "statement_hash": "3ec047bdb4ba9df80ea1b9560cd509b894b649988b48e4e65150c2792c532a69"}, "url": "/docs/compare/?release=15.6#15.6-2ea31d4eb971f484", "source_url": "/docs/release/15.6/#ZH-AUTO-RELEASE-15-SECT2-24"}, {"db_id": "a40dbeddc3b3369704c32f258194e999", "kind": "equivalent", "version": "14.11", "label": "14.11", "title": "当 contrib/pageinspect 的 hash_bitmap_info() 函数应用于分区 hash 索引时报告更好的错误", "evidence": {"same_day": true, "patch_ids": ["4a9a9b124c20d9b9e0984633db238139"], "statement_hash": "3ec047bdb4ba9df80ea1b9560cd509b894b649988b48e4e65150c2792c532a69"}, "url": "/docs/compare/?release=14.11#14.11-e88f9b182ee947ce", "source_url": "/docs/release/14.11/#ZH-AUTO-RELEASE-14-SECT2-24"}, {"db_id": "69851714104768799da0b2647c039ed0", "kind": "equivalent", "version": "13.14", "label": "13.14", "title": "当 contrib/pageinspect 的 hash_bitmap_info() 函数应用于分区 hash 索引时报告更好的错误", "evidence": {"same_day": true, "patch_ids": ["4a9a9b124c20d9b9e0984633db238139"], "statement_hash": "3ec047bdb4ba9df80ea1b9560cd509b894b649988b48e4e65150c2792c532a69"}, "url": "/docs/compare/?release=13.14#13.14-57a32755d0dc9a67", "source_url": "/docs/release/13.14/#id-1.11.6.15.5"}, {"db_id": "ece9264db04c3d20bdfa0d99719ed177", "kind": "equivalent", "version": "12.18", "label": "12.18", "title": "当 contrib/pageinspect 的 hash_bitmap_info() 函数应用于分区 hash 索引时报告更好的错误", "evidence": {"same_day": true, "patch_ids": ["4a9a9b124c20d9b9e0984633db238139"], "statement_hash": "3ec047bdb4ba9df80ea1b9560cd509b894b649988b48e4e65150c2792c532a69"}, "url": "/docs/compare/?release=12.18#12.18-cb0d6d429b83017d", "source_url": "/docs/release/12.18/#id-1.11.6.10.6"}]}, {"id": "16.2-08ebc3eda4b6c0ee", "cves": [], "html": "<p>当 <code>contrib/pgstattuple</code> 的 <code>pgstathashindex()</code> 函数应用于分区 hash 索引时报告更好的错误（Alexander Lakhin）<a href=\"https://postgr.es/c/b4948ed66\">§</a></p>", "text": "当 contrib/pgstattuple 的 pgstathashindex() 函数应用于分区 hash 索引时报告更好的错误（Alexander Lakhin）§", "title": "当 contrib/pgstattuple 的 pgstathashindex() 函数应用于分区 hash 索引时报告更好的错误", "commits": ["b4948ed66"], "section": "变更", "category": "improvement", "source_url": "/docs/release/16.2/#RELEASE-16-2-CHANGES", "source_hash": "304ff8c46bf1896e6e62aa850d8ade96d29d4260ee5aaba37445c4dbaafee0fc", "section_path": ["变更"], "commit_groups": [["a8dd62ef4", "b4948ed66", "b4c1d255c", "b745f1680", "bd2d3c928", "f729fdab4"]], "identity_text": "Report a better error when contrib/pgstattuple's pgstathashindex() function is applied to a partitioned hash index (Alexander Lakhin)", "commit_aliases": ["a8dd62ef4", "b4948ed66", "b4c1d255c", "b745f1680", "bd2d3c928", "f729fdab4"], "source_commits": ["b4948ed66"], "source_entry_id": "16.2/changes/063", "db_id": "79592c7ccbc93f8c93f5fd9b89f8a903", "patch_ids": ["a7ffa8d4ea6d0809a54f80ab93f61ab8"], "statement_hash": "05058690f7fb820755524a4375cfe78121249d745dd7fa90b18aec11a2f94860", "relations": [{"rule": 2, "type": "equivalent", "target": "4d737355f33fbe896bee766b85d5a7df", "evidence": {"same_day": true, "patch_ids": ["a7ffa8d4ea6d0809a54f80ab93f61ab8"], "statement_hash": "05058690f7fb820755524a4375cfe78121249d745dd7fa90b18aec11a2f94860"}}, {"rule": 2, "type": "equivalent", "target": "60ea498b840c6f946e2899d20b20fe72", "evidence": {"same_day": true, "patch_ids": ["a7ffa8d4ea6d0809a54f80ab93f61ab8"], "statement_hash": "05058690f7fb820755524a4375cfe78121249d745dd7fa90b18aec11a2f94860"}}, {"rule": 2, "type": "equivalent", "target": "6af75074f7a37949ef9df77a8ac8f790", "evidence": {"same_day": true, "patch_ids": ["a7ffa8d4ea6d0809a54f80ab93f61ab8"], "statement_hash": "05058690f7fb820755524a4375cfe78121249d745dd7fa90b18aec11a2f94860"}}, {"rule": 2, "type": "equivalent", "target": "e6a2d9f6a6d270f83044ca38ffe5d602", "evidence": {"same_day": true, "patch_ids": ["a7ffa8d4ea6d0809a54f80ab93f61ab8"], "statement_hash": "05058690f7fb820755524a4375cfe78121249d745dd7fa90b18aec11a2f94860"}}], "version": "16.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "e6a2d9f6a6d270f83044ca38ffe5d602", "kind": "equivalent", "version": "15.6", "label": "15.6", "title": "当 contrib/pgstattuple 的 pgstathashindex() 函数应用于分区 hash 索引时报告更好的错误", "evidence": {"same_day": true, "patch_ids": ["a7ffa8d4ea6d0809a54f80ab93f61ab8"], "statement_hash": "05058690f7fb820755524a4375cfe78121249d745dd7fa90b18aec11a2f94860"}, "url": "/docs/compare/?release=15.6#15.6-f36a9296035df066", "source_url": "/docs/release/15.6/#ZH-AUTO-RELEASE-15-SECT2-24"}, {"db_id": "6af75074f7a37949ef9df77a8ac8f790", "kind": "equivalent", "version": "14.11", "label": "14.11", "title": "当 contrib/pgstattuple 的 pgstathashindex() 函数应用于分区 hash 索引时报告更好的错误", "evidence": {"same_day": true, "patch_ids": ["a7ffa8d4ea6d0809a54f80ab93f61ab8"], "statement_hash": "05058690f7fb820755524a4375cfe78121249d745dd7fa90b18aec11a2f94860"}, "url": "/docs/compare/?release=14.11#14.11-fdf216f738d801fe", "source_url": "/docs/release/14.11/#ZH-AUTO-RELEASE-14-SECT2-24"}, {"db_id": "60ea498b840c6f946e2899d20b20fe72", "kind": "equivalent", "version": "13.14", "label": "13.14", "title": "当 contrib/pgstattuple 的 pgstathashindex() 函数应用于分区 hash 索引时报告更好的错误", "evidence": {"same_day": true, "patch_ids": ["a7ffa8d4ea6d0809a54f80ab93f61ab8"], "statement_hash": "05058690f7fb820755524a4375cfe78121249d745dd7fa90b18aec11a2f94860"}, "url": "/docs/compare/?release=13.14#13.14-1945f39e0d38023e", "source_url": "/docs/release/13.14/#id-1.11.6.15.5"}, {"db_id": "4d737355f33fbe896bee766b85d5a7df", "kind": "equivalent", "version": "12.18", "label": "12.18", "title": "当 contrib/pgstattuple 的 pgstathashindex() 函数应用于分区 hash 索引时报告更好的错误", "evidence": {"same_day": true, "patch_ids": ["a7ffa8d4ea6d0809a54f80ab93f61ab8"], "statement_hash": "05058690f7fb820755524a4375cfe78121249d745dd7fa90b18aec11a2f94860"}, "url": "/docs/compare/?release=12.18#12.18-d3296278aef3ff90", "source_url": "/docs/release/12.18/#id-1.11.6.10.6"}]}, {"id": "16.2-043e88eefe16789f", "cves": [], "html": "<p>在 Windows 上，在 <span>pg_ctl</span> 和 <span>pg_regress</span> 中启动子进程时抑制自动运行选项（Kyotaro Horiguchi）<a href=\"https://postgr.es/c/714bfb781\">§</a> <a href=\"https://postgr.es/c/506c77f9b\">§</a></p>\n<p>当通过 <code>cmd.exe</code> 启动子进程时，传递 <code>/D</code> 标志以防止执行注册表中指定的任何自动运行命令。这可以避免可能令人意外的副作用。</p>", "text": "在 Windows 上，在 pg_ctl 和 pg_regress 中启动子进程时抑制自动运行选项（Kyotaro Horiguchi）§ § 当通过 cmd.exe 启动子进程时，传递 /D 标志以防止执行注册表中指定的任何自动运行命令。这可以避免可能令人意外的副作用。", "title": "在 Windows 上，在 pg_ctl 和 pg_regress 中启动子进程时抑制自动运行选项", "commits": ["506c77f9b", "714bfb781"], "section": "变更", "category": "improvement", "source_url": "/docs/release/16.2/#RELEASE-16-2-CHANGES", "source_hash": "9a8f5f164f7e7715fbdc23c332bcb94a54d030fb13a27e4e301bb65cc7f574e0", "section_path": ["变更"], "commit_groups": [["2a0eb80ae", "4a7475e9a", "506c77f9b", "7e7d827f5", "b83747a8a", "e50a52b2b"], ["33d1be06a", "4c6944223", "714bfb781", "9886744a3", "9e70e6564", "c8aab699e"]], "identity_text": "On Windows, suppress autorun options when launching subprocesses in pg_ctl and pg_regress (Kyotaro Horiguchi) When launching a child process via cmd.exe, pass the /D flag to prevent executing any autorun commands specified in the registry. This avoids possibly-surprising side effects.", "commit_aliases": ["2a0eb80ae", "33d1be06a", "4a7475e9a", "4c6944223", "506c77f9b", "714bfb781", "7e7d827f5", "9886744a3", "9e70e6564", "b83747a8a", "c8aab699e", "e50a52b2b"], "source_commits": ["506c77f9b", "714bfb781"], "source_entry_id": "16.2/changes/064", "db_id": "554c074758ea19873a6d5d5882dd5b8d", "patch_ids": ["3781582c9355dae5905c5da2426727cf", "97fd06ae20847c50d0187cf9bceebbc2"], "statement_hash": "ead137f53a5414cad531a6351154e698045882ecb2093bfc9099117eedabf999", "relations": [{"rule": 2, "type": "equivalent", "target": "3c0060b6e310be3855a1d0790a3b8120", "evidence": {"same_day": true, "patch_ids": ["3781582c9355dae5905c5da2426727cf", "97fd06ae20847c50d0187cf9bceebbc2"], "statement_hash": "ead137f53a5414cad531a6351154e698045882ecb2093bfc9099117eedabf999"}}, {"rule": 2, "type": "equivalent", "target": "b15769ee4b74e61a9ef47d81d60d453b", "evidence": {"same_day": true, "patch_ids": ["3781582c9355dae5905c5da2426727cf", "97fd06ae20847c50d0187cf9bceebbc2"], "statement_hash": "ead137f53a5414cad531a6351154e698045882ecb2093bfc9099117eedabf999"}}, {"rule": 2, "type": "equivalent", "target": "c85d072d7ee46d465c92f647e14dc965", "evidence": {"same_day": true, "patch_ids": ["3781582c9355dae5905c5da2426727cf", "97fd06ae20847c50d0187cf9bceebbc2"], "statement_hash": "ead137f53a5414cad531a6351154e698045882ecb2093bfc9099117eedabf999"}}, {"rule": 2, "type": "equivalent", "target": "f7a1f603248f26206e323c3dcf75f1f8", "evidence": {"same_day": true, "patch_ids": ["3781582c9355dae5905c5da2426727cf", "97fd06ae20847c50d0187cf9bceebbc2"], "statement_hash": "ead137f53a5414cad531a6351154e698045882ecb2093bfc9099117eedabf999"}}], "version": "16.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "c85d072d7ee46d465c92f647e14dc965", "kind": "equivalent", "version": "15.6", "label": "15.6", "title": "在 Windows 上，在 pg_ctl 和 pg_regress 中启动子进程时抑制自动运行选项", "evidence": {"same_day": true, "patch_ids": ["3781582c9355dae5905c5da2426727cf", "97fd06ae20847c50d0187cf9bceebbc2"], "statement_hash": "ead137f53a5414cad531a6351154e698045882ecb2093bfc9099117eedabf999"}, "url": "/docs/compare/?release=15.6#15.6-b1b53f2c1c9dc772", "source_url": "/docs/release/15.6/#ZH-AUTO-RELEASE-15-SECT2-24"}, {"db_id": "3c0060b6e310be3855a1d0790a3b8120", "kind": "equivalent", "version": "14.11", "label": "14.11", "title": "在 Windows 上，在 pg_ctl 和 pg_regress 中启动子进程时抑制自动运行选项", "evidence": {"same_day": true, "patch_ids": ["3781582c9355dae5905c5da2426727cf", "97fd06ae20847c50d0187cf9bceebbc2"], "statement_hash": "ead137f53a5414cad531a6351154e698045882ecb2093bfc9099117eedabf999"}, "url": "/docs/compare/?release=14.11#14.11-12efae956186c4c7", "source_url": "/docs/release/14.11/#ZH-AUTO-RELEASE-14-SECT2-24"}, {"db_id": "f7a1f603248f26206e323c3dcf75f1f8", "kind": "equivalent", "version": "13.14", "label": "13.14", "title": "在 Windows 上，在 pg_ctl 和 pg_regress 中启动子进程时抑制自动运行选项", "evidence": {"same_day": true, "patch_ids": ["3781582c9355dae5905c5da2426727cf", "97fd06ae20847c50d0187cf9bceebbc2"], "statement_hash": "ead137f53a5414cad531a6351154e698045882ecb2093bfc9099117eedabf999"}, "url": "/docs/compare/?release=13.14#13.14-9bfe81b91d0ad9a4", "source_url": "/docs/release/13.14/#id-1.11.6.15.5"}, {"db_id": "b15769ee4b74e61a9ef47d81d60d453b", "kind": "equivalent", "version": "12.18", "label": "12.18", "title": "在 Windows 上，在 pg_ctl 和 pg_regress 中启动子进程时抑制自动运行选项", "evidence": {"same_day": true, "patch_ids": ["3781582c9355dae5905c5da2426727cf", "97fd06ae20847c50d0187cf9bceebbc2"], "statement_hash": "ead137f53a5414cad531a6351154e698045882ecb2093bfc9099117eedabf999"}, "url": "/docs/compare/?release=12.18#12.18-42f132408b629b64", "source_url": "/docs/release/12.18/#id-1.11.6.10.6"}]}, {"id": "16.2-b92f894099d14f5d", "cves": [], "html": "<p>将 <code>is_valid_ascii()</code> 从 <code>mb/pg_wchar.h</code> 移到 <code>utils/ascii.h</code>（Jubilee Young）<a href=\"https://postgr.es/c/1b924a86e\">§</a></p>\n<p>此更改避免了在 <code>pg_wchar.h</code> 中包含 <code>&lt;simd.h&gt;</code> 的需要，这给某些第三方代码造成了问题。</p>", "text": "将 is_valid_ascii() 从 mb/pg_wchar.h 移到 utils/ascii.h（Jubilee Young）§ 此更改避免了在 pg_wchar.h 中包含 <simd.h> 的需要，这给某些第三方代码造成了问题。", "title": "将 is_valid_ascii() 从 mb/pg_wchar.h 移到 utils/ascii.h", "commits": ["1b924a86e"], "section": "变更", "category": "improvement", "source_url": "/docs/release/16.2/#RELEASE-16-2-CHANGES", "source_hash": "946ad196c46fb5d03b3ff3372afddf401810a7c035f1005d847f2ce5c1267f1c", "section_path": ["变更"], "commit_groups": [["1b924a86e", "3726c1cb0", "97287bdfa"]], "identity_text": "Move is_valid_ascii() from mb/pg_wchar.h to utils/ascii.h (Jubilee Young) This change avoids the need to include <simd.h> in pg_wchar.h, which was causing problems for some third-party code.", "commit_aliases": ["1b924a86e", "3726c1cb0", "97287bdfa"], "source_commits": ["1b924a86e"], "source_entry_id": "16.2/changes/065", "db_id": "73fb5c9cb4ccd9b699174f8026598034", "patch_ids": ["1bf86559d0664127b7bf520537e3878b"], "statement_hash": "eaf855ea809ed2767fb007e3065d006e8f103ab26945c15b482d97e070d603ee", "relations": [{"rule": 2, "type": "equivalent", "target": "671fe8856cb9db967e06f0dd6bc24757", "evidence": {"same_day": true, "patch_ids": ["1bf86559d0664127b7bf520537e3878b"], "statement_hash": "eaf855ea809ed2767fb007e3065d006e8f103ab26945c15b482d97e070d603ee"}}], "version": "16.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "671fe8856cb9db967e06f0dd6bc24757", "kind": "equivalent", "version": "15.6", "label": "15.6", "title": "将 is_valid_ascii() 从 mb/pg_wchar.h 移到 utils/ascii.h", "evidence": {"same_day": true, "patch_ids": ["1bf86559d0664127b7bf520537e3878b"], "statement_hash": "eaf855ea809ed2767fb007e3065d006e8f103ab26945c15b482d97e070d603ee"}, "url": "/docs/compare/?release=15.6#15.6-049ad83bfee8018c", "source_url": "/docs/release/15.6/#ZH-AUTO-RELEASE-15-SECT2-24"}]}, {"id": "16.2-b9dcde36e4f352c5", "cves": [], "html": "<p>修复 <span>libxml2</span> 版本 2.12.0 及更高版本的编译失败（Tom Lane）<a href=\"https://postgr.es/c/e02fea093\">§</a></p>", "text": "修复 libxml2 版本 2.12.0 及更高版本的编译失败（Tom Lane）§", "title": "修复 libxml2 版本 2.12.0 及更高版本的编译失败", "commits": ["e02fea093"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/16.2/#RELEASE-16-2-CHANGES", "source_hash": "e21ccac75f3546aa4db5a501ea77eb0ad5545f5bfc0ff609074ce5a06e74ec97", "section_path": ["变更"], "commit_groups": [["29e25a6b1", "3f8ac13b1", "400928b83", "7c53b1977", "b2fd1dab9", "e02fea093"]], "identity_text": "Fix compilation failures with libxml2 version 2.12.0 and later (Tom Lane)", "commit_aliases": ["29e25a6b1", "3f8ac13b1", "400928b83", "7c53b1977", "b2fd1dab9", "e02fea093"], "source_commits": ["e02fea093"], "source_entry_id": "16.2/changes/066", "db_id": "cf51a8d5908dd95461315a23ba0c3802", "patch_ids": ["c3068db00f8e4e1e01ad59212b7c05d8"], "statement_hash": "c24297547676c4f8ac71b5b4c7aafc41f3a4230c08ced5632a96ab2797eddbc1", "relations": [{"rule": 2, "type": "equivalent", "target": "5b023ed30bacc5f4fb787f48395c843c", "evidence": {"same_day": true, "patch_ids": ["c3068db00f8e4e1e01ad59212b7c05d8"], "statement_hash": "c24297547676c4f8ac71b5b4c7aafc41f3a4230c08ced5632a96ab2797eddbc1"}}, {"rule": 2, "type": "equivalent", "target": "84765c4db2cb2b24425ccefc7ba28835", "evidence": {"same_day": true, "patch_ids": ["c3068db00f8e4e1e01ad59212b7c05d8"], "statement_hash": "c24297547676c4f8ac71b5b4c7aafc41f3a4230c08ced5632a96ab2797eddbc1"}}, {"rule": 2, "type": "equivalent", "target": "a74d3fbfd01e0c53072646eafb436e28", "evidence": {"same_day": true, "patch_ids": ["c3068db00f8e4e1e01ad59212b7c05d8"], "statement_hash": "c24297547676c4f8ac71b5b4c7aafc41f3a4230c08ced5632a96ab2797eddbc1"}}, {"rule": 2, "type": "equivalent", "target": "cfa3857553a74ef417ebc674152e66cd", "evidence": {"same_day": true, "patch_ids": ["c3068db00f8e4e1e01ad59212b7c05d8"], "statement_hash": "c24297547676c4f8ac71b5b4c7aafc41f3a4230c08ced5632a96ab2797eddbc1"}}], "version": "16.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "84765c4db2cb2b24425ccefc7ba28835", "kind": "equivalent", "version": "15.6", "label": "15.6", "title": "修复 libxml2 版本 2.12.0 及更高版本的编译失败", "evidence": {"same_day": true, "patch_ids": ["c3068db00f8e4e1e01ad59212b7c05d8"], "statement_hash": "c24297547676c4f8ac71b5b4c7aafc41f3a4230c08ced5632a96ab2797eddbc1"}, "url": "/docs/compare/?release=15.6#15.6-578292a0f0dd28b9", "source_url": "/docs/release/15.6/#ZH-AUTO-RELEASE-15-SECT2-24"}, {"db_id": "cfa3857553a74ef417ebc674152e66cd", "kind": "equivalent", "version": "14.11", "label": "14.11", "title": "修复 libxml2 版本 2.12.0 及更高版本的编译失败", "evidence": {"same_day": true, "patch_ids": ["c3068db00f8e4e1e01ad59212b7c05d8"], "statement_hash": "c24297547676c4f8ac71b5b4c7aafc41f3a4230c08ced5632a96ab2797eddbc1"}, "url": "/docs/compare/?release=14.11#14.11-230caf5f7381826b", "source_url": "/docs/release/14.11/#ZH-AUTO-RELEASE-14-SECT2-24"}, {"db_id": "a74d3fbfd01e0c53072646eafb436e28", "kind": "equivalent", "version": "13.14", "label": "13.14", "title": "修复 libxml2 版本 2.12.0 及更高版本的编译失败", "evidence": {"same_day": true, "patch_ids": ["c3068db00f8e4e1e01ad59212b7c05d8"], "statement_hash": "c24297547676c4f8ac71b5b4c7aafc41f3a4230c08ced5632a96ab2797eddbc1"}, "url": "/docs/compare/?release=13.14#13.14-5cc0e559e039d052", "source_url": "/docs/release/13.14/#id-1.11.6.15.5"}, {"db_id": "5b023ed30bacc5f4fb787f48395c843c", "kind": "equivalent", "version": "12.18", "label": "12.18", "title": "修复 libxml2 版本 2.12.0 及更高版本的编译失败", "evidence": {"same_day": true, "patch_ids": ["c3068db00f8e4e1e01ad59212b7c05d8"], "statement_hash": "c24297547676c4f8ac71b5b4c7aafc41f3a4230c08ced5632a96ab2797eddbc1"}, "url": "/docs/compare/?release=12.18#12.18-25d5b332757b7fa1", "source_url": "/docs/release/12.18/#id-1.11.6.10.6"}]}, {"id": "16.2-8b50a3eca88c2305", "cves": [], "html": "<p>修复 Windows 上 <code>WAL_DEBUG</code> 代码的编译失败（Bharath Rupireddy）<a href=\"https://postgr.es/c/6248a2bb9\">§</a></p>", "text": "修复 Windows 上 WAL_DEBUG 代码的编译失败（Bharath Rupireddy）§", "title": "修复 Windows 上 WAL_DEBUG 代码的编译失败", "commits": ["6248a2bb9"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/16.2/#RELEASE-16-2-CHANGES", "source_hash": "aab5a67c8d485adf2fb56361a3a38db9a8534e09c59a92caf7c97de2547c06f0", "section_path": ["变更"], "commit_groups": [["6248a2bb9", "7636725b9", "7d5a74033", "87ed81a87", "c49b6cab1"]], "identity_text": "Fix compilation failure of WAL_DEBUG code on Windows (Bharath Rupireddy)", "commit_aliases": ["6248a2bb9", "7636725b9", "7d5a74033", "87ed81a87", "c49b6cab1"], "source_commits": ["6248a2bb9"], "source_entry_id": "16.2/changes/067", "db_id": "027a86f4702107495d259ee331d02bcb", "patch_ids": ["022827532688c908995e60e24cfa6e16"], "statement_hash": "87792dc421350af5ba9e40a71b3954e60a90cb3bbc6507b896a527c307712c29", "relations": [{"rule": 2, "type": "equivalent", "target": "62c12b150976d9e4a728590efdec7383", "evidence": {"same_day": true, "patch_ids": ["022827532688c908995e60e24cfa6e16"], "statement_hash": "87792dc421350af5ba9e40a71b3954e60a90cb3bbc6507b896a527c307712c29"}}, {"rule": 2, "type": "equivalent", "target": "eeb8d7afe7ee51660773ad6e82d5bd18", "evidence": {"same_day": true, "patch_ids": ["022827532688c908995e60e24cfa6e16"], "statement_hash": "87792dc421350af5ba9e40a71b3954e60a90cb3bbc6507b896a527c307712c29"}}, {"rule": 2, "type": "equivalent", "target": "f6f5eff34366ea7c9cbbb23d48ca6ed8", "evidence": {"same_day": true, "patch_ids": ["022827532688c908995e60e24cfa6e16"], "statement_hash": "87792dc421350af5ba9e40a71b3954e60a90cb3bbc6507b896a527c307712c29"}}], "version": "16.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "f6f5eff34366ea7c9cbbb23d48ca6ed8", "kind": "equivalent", "version": "15.6", "label": "15.6", "title": "修复 Windows 上 WAL_DEBUG 代码的编译失败", "evidence": {"same_day": true, "patch_ids": ["022827532688c908995e60e24cfa6e16"], "statement_hash": "87792dc421350af5ba9e40a71b3954e60a90cb3bbc6507b896a527c307712c29"}, "url": "/docs/compare/?release=15.6#15.6-69cb42c7e0537291", "source_url": "/docs/release/15.6/#ZH-AUTO-RELEASE-15-SECT2-24"}, {"db_id": "eeb8d7afe7ee51660773ad6e82d5bd18", "kind": "equivalent", "version": "14.11", "label": "14.11", "title": "修复 Windows 上 WAL_DEBUG 代码的编译失败", "evidence": {"same_day": true, "patch_ids": ["022827532688c908995e60e24cfa6e16"], "statement_hash": "87792dc421350af5ba9e40a71b3954e60a90cb3bbc6507b896a527c307712c29"}, "url": "/docs/compare/?release=14.11#14.11-9d36e93a60e9b065", "source_url": "/docs/release/14.11/#ZH-AUTO-RELEASE-14-SECT2-24"}, {"db_id": "62c12b150976d9e4a728590efdec7383", "kind": "equivalent", "version": "13.14", "label": "13.14", "title": "修复 Windows 上 WAL_DEBUG 代码的编译失败", "evidence": {"same_day": true, "patch_ids": ["022827532688c908995e60e24cfa6e16"], "statement_hash": "87792dc421350af5ba9e40a71b3954e60a90cb3bbc6507b896a527c307712c29"}, "url": "/docs/compare/?release=13.14#13.14-8e51e1d841166f85", "source_url": "/docs/release/13.14/#id-1.11.6.15.5"}]}, {"id": "16.2-1f841c2a3a0e759a", "cves": [], "html": "<p>抑制来自 Python 头文件的编译器警告（Peter Eisentraut，Tom Lane）<a href=\"https://postgr.es/c/b0115e7e2\">§</a> <a href=\"https://postgr.es/c/c72049dbc\">§</a></p>\n<p>我们首选的编译器选项会对最近版本的 Python 头文件中出现的构造产生警告。使用 <span>gcc</span> 时，我们可以通过 pragma 来抑制这些警告。</p>", "text": "抑制来自 Python 头文件的编译器警告（Peter Eisentraut，Tom Lane）§ § 我们首选的编译器选项会对最近版本的 Python 头文件中出现的构造产生警告。使用 gcc 时，我们可以通过 pragma 来抑制这些警告。", "title": "抑制来自 Python 头文件的编译器警告", "commits": ["b0115e7e2", "c72049dbc"], "section": "变更", "category": "improvement", "source_url": "/docs/release/16.2/#RELEASE-16-2-CHANGES", "source_hash": "1efdd2df4506a4b9989d73a44ddbe5e25590fe4e42d429564fffdb4bebb9fce1", "section_path": ["变更"], "commit_groups": [["1613e2fae", "48e797164", "58c3151bb", "5f8d6d709", "7978eee02", "b0115e7e2"], ["a46972e30", "c72049dbc"]], "identity_text": "Suppress compiler warnings from Python's header files (Peter Eisentraut, Tom Lane) Our preferred compiler options provoke warnings about constructs appearing in recent versions of Python's header files. When using gcc, we can suppress these warnings with a pragma.", "commit_aliases": ["1613e2fae", "48e797164", "58c3151bb", "5f8d6d709", "7978eee02", "a46972e30", "b0115e7e2", "c72049dbc"], "source_commits": ["b0115e7e2", "c72049dbc"], "source_entry_id": "16.2/changes/068", "db_id": "7aab31d140db77b63e20f63fab3c7226", "patch_ids": ["cc2e4cd52878c88c793cc6b854570752", "ce647614af681e740eb4f0bb231c518e"], "statement_hash": "be7583e43343143809ddbfb2e6688e2ce2ad8098d5a2a76ade77a174d24256dc", "relations": [{"rule": 2, "type": "equivalent", "target": "852ed81542d3d9b27d0161e5e9981cc7", "evidence": {"same_day": true, "patch_ids": ["cc2e4cd52878c88c793cc6b854570752", "ce647614af681e740eb4f0bb231c518e"], "statement_hash": "be7583e43343143809ddbfb2e6688e2ce2ad8098d5a2a76ade77a174d24256dc"}}, {"rule": 2, "type": "equivalent", "target": "954096699c950007ddb245ff03ff0b59", "evidence": {"same_day": true, "patch_ids": ["cc2e4cd52878c88c793cc6b854570752", "ce647614af681e740eb4f0bb231c518e"], "statement_hash": "be7583e43343143809ddbfb2e6688e2ce2ad8098d5a2a76ade77a174d24256dc"}}, {"rule": 2, "type": "equivalent", "target": "a341a2ebfecf616114635bbd56556a17", "evidence": {"same_day": true, "patch_ids": ["cc2e4cd52878c88c793cc6b854570752", "ce647614af681e740eb4f0bb231c518e"], "statement_hash": "be7583e43343143809ddbfb2e6688e2ce2ad8098d5a2a76ade77a174d24256dc"}}, {"rule": 2, "type": "equivalent", "target": "a41cccb943226c738e1b328908799d48", "evidence": {"same_day": true, "patch_ids": ["cc2e4cd52878c88c793cc6b854570752", "ce647614af681e740eb4f0bb231c518e"], "statement_hash": "be7583e43343143809ddbfb2e6688e2ce2ad8098d5a2a76ade77a174d24256dc"}}], "version": "16.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "852ed81542d3d9b27d0161e5e9981cc7", "kind": "equivalent", "version": "15.6", "label": "15.6", "title": "抑制来自 Python 头文件的编译器警告", "evidence": {"same_day": true, "patch_ids": ["cc2e4cd52878c88c793cc6b854570752", "ce647614af681e740eb4f0bb231c518e"], "statement_hash": "be7583e43343143809ddbfb2e6688e2ce2ad8098d5a2a76ade77a174d24256dc"}, "url": "/docs/compare/?release=15.6#15.6-5990a632889fcc7d", "source_url": "/docs/release/15.6/#ZH-AUTO-RELEASE-15-SECT2-24"}, {"db_id": "a341a2ebfecf616114635bbd56556a17", "kind": "equivalent", "version": "14.11", "label": "14.11", "title": "抑制来自 Python 头文件的编译器警告", "evidence": {"same_day": true, "patch_ids": ["cc2e4cd52878c88c793cc6b854570752", "ce647614af681e740eb4f0bb231c518e"], "statement_hash": "be7583e43343143809ddbfb2e6688e2ce2ad8098d5a2a76ade77a174d24256dc"}, "url": "/docs/compare/?release=14.11#14.11-29439e87a30e7f36", "source_url": "/docs/release/14.11/#ZH-AUTO-RELEASE-14-SECT2-24"}, {"db_id": "a41cccb943226c738e1b328908799d48", "kind": "equivalent", "version": "13.14", "label": "13.14", "title": "抑制来自 Python 头文件的编译器警告", "evidence": {"same_day": true, "patch_ids": ["cc2e4cd52878c88c793cc6b854570752", "ce647614af681e740eb4f0bb231c518e"], "statement_hash": "be7583e43343143809ddbfb2e6688e2ce2ad8098d5a2a76ade77a174d24256dc"}, "url": "/docs/compare/?release=13.14#13.14-25aeba382ae85c87", "source_url": "/docs/release/13.14/#id-1.11.6.15.5"}, {"db_id": "954096699c950007ddb245ff03ff0b59", "kind": "equivalent", "version": "12.18", "label": "12.18", "title": "抑制来自 Python 头文件的编译器警告", "evidence": {"same_day": true, "patch_ids": ["cc2e4cd52878c88c793cc6b854570752", "ce647614af681e740eb4f0bb231c518e"], "statement_hash": "be7583e43343143809ddbfb2e6688e2ce2ad8098d5a2a76ade77a174d24256dc"}, "url": "/docs/compare/?release=12.18#12.18-ba7d9137d000264f", "source_url": "/docs/release/12.18/#id-1.11.6.10.6"}]}, {"id": "16.2-a360209be5141d14", "cves": [], "html": "<p>避免使用 LLVM 18 编译时的弃用警告（Thomas Munro）<a href=\"https://postgr.es/c/60ba7cae7\">§</a></p>", "text": "避免使用 LLVM 18 编译时的弃用警告（Thomas Munro）§", "title": "避免使用 LLVM 18 编译时的弃用警告", "commits": ["60ba7cae7"], "section": "变更", "category": "improvement", "source_url": "/docs/release/16.2/#RELEASE-16-2-CHANGES", "source_hash": "4259ae36fab811ba98b81227069ed95ef8934621d59c470edce02dbf1c3071f8", "section_path": ["变更"], "commit_groups": [["364283c92", "60ba7cae7", "67f7aaa38", "70a82f40a", "d060cb658", "d282e88e5"]], "identity_text": "Avoid deprecation warning when compiling with LLVM 18 (Thomas Munro)", "commit_aliases": ["364283c92", "60ba7cae7", "67f7aaa38", "70a82f40a", "d060cb658", "d282e88e5"], "source_commits": ["60ba7cae7"], "source_entry_id": "16.2/changes/069", "db_id": "38cf791b99b2210f2c266f40a8f67536", "patch_ids": ["62590aec0a16f94a7a8f03888db6a2b4"], "statement_hash": "98e4b8ae0f557b68a31d2d03ab7a859e39a66bb28d541809440301e6a2e65f5e", "relations": [{"rule": 2, "type": "equivalent", "target": "07b2cc619138096345010991487d75c2", "evidence": {"same_day": true, "patch_ids": ["62590aec0a16f94a7a8f03888db6a2b4"], "statement_hash": "98e4b8ae0f557b68a31d2d03ab7a859e39a66bb28d541809440301e6a2e65f5e"}}, {"rule": 2, "type": "equivalent", "target": "424ab5c3dd6eee398b813cdf12d9b14d", "evidence": {"same_day": true, "patch_ids": ["62590aec0a16f94a7a8f03888db6a2b4"], "statement_hash": "98e4b8ae0f557b68a31d2d03ab7a859e39a66bb28d541809440301e6a2e65f5e"}}, {"rule": 2, "type": "equivalent", "target": "441367980f74dbbac5d3e8a2ef709734", "evidence": {"same_day": true, "patch_ids": ["62590aec0a16f94a7a8f03888db6a2b4"], "statement_hash": "98e4b8ae0f557b68a31d2d03ab7a859e39a66bb28d541809440301e6a2e65f5e"}}, {"rule": 2, "type": "equivalent", "target": "52ecf09ff2e503c183ee0ffe79ec0197", "evidence": {"same_day": true, "patch_ids": ["62590aec0a16f94a7a8f03888db6a2b4"], "statement_hash": "98e4b8ae0f557b68a31d2d03ab7a859e39a66bb28d541809440301e6a2e65f5e"}}], "version": "16.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "07b2cc619138096345010991487d75c2", "kind": "equivalent", "version": "15.6", "label": "15.6", "title": "避免使用 LLVM 18 编译时的弃用警告", "evidence": {"same_day": true, "patch_ids": ["62590aec0a16f94a7a8f03888db6a2b4"], "statement_hash": "98e4b8ae0f557b68a31d2d03ab7a859e39a66bb28d541809440301e6a2e65f5e"}, "url": "/docs/compare/?release=15.6#15.6-310a2d24692789ec", "source_url": "/docs/release/15.6/#ZH-AUTO-RELEASE-15-SECT2-24"}, {"db_id": "441367980f74dbbac5d3e8a2ef709734", "kind": "equivalent", "version": "14.11", "label": "14.11", "title": "避免使用 LLVM 18 编译时的弃用警告", "evidence": {"same_day": true, "patch_ids": ["62590aec0a16f94a7a8f03888db6a2b4"], "statement_hash": "98e4b8ae0f557b68a31d2d03ab7a859e39a66bb28d541809440301e6a2e65f5e"}, "url": "/docs/compare/?release=14.11#14.11-5765a26271a1f411", "source_url": "/docs/release/14.11/#ZH-AUTO-RELEASE-14-SECT2-24"}, {"db_id": "424ab5c3dd6eee398b813cdf12d9b14d", "kind": "equivalent", "version": "13.14", "label": "13.14", "title": "避免使用 LLVM 18 编译时的弃用警告", "evidence": {"same_day": true, "patch_ids": ["62590aec0a16f94a7a8f03888db6a2b4"], "statement_hash": "98e4b8ae0f557b68a31d2d03ab7a859e39a66bb28d541809440301e6a2e65f5e"}, "url": "/docs/compare/?release=13.14#13.14-3d01be243b5e5b12", "source_url": "/docs/release/13.14/#id-1.11.6.15.5"}, {"db_id": "52ecf09ff2e503c183ee0ffe79ec0197", "kind": "equivalent", "version": "12.18", "label": "12.18", "title": "避免使用 LLVM 18 编译时的弃用警告", "evidence": {"same_day": true, "patch_ids": ["62590aec0a16f94a7a8f03888db6a2b4"], "statement_hash": "98e4b8ae0f557b68a31d2d03ab7a859e39a66bb28d541809440301e6a2e65f5e"}, "url": "/docs/compare/?release=12.18#12.18-c691a771a4885e10", "source_url": "/docs/release/12.18/#id-1.11.6.10.6"}]}, {"id": "16.2-4a392c3f7e46b545", "cves": [], "html": "<p>更新时区数据文件至 <span>tzdata</span> 2024a 版本，包括格陵兰、哈萨克斯坦和巴勒斯坦的夏令时法律变更，以及南极站 Casey 和 Vostok 的修正。同时还有越南、多伦多和密克隆的历史修正。（Tom Lane）<a href=\"https://postgr.es/c/b4fb76fb5\">§</a></p>", "text": "更新时区数据文件至 tzdata 2024a 版本，包括格陵兰、哈萨克斯坦和巴勒斯坦的夏令时法律变更，以及南极站 Casey 和 Vostok 的修正。同时还有越南、多伦多和密克隆的历史修正。（Tom Lane）§", "title": "更新时区数据文件至 tzdata 2024a 版本，包括格陵兰、哈萨克斯坦和巴勒斯坦的夏令时法律变更，以及南极站 Casey 和 Vostok 的修正。同时还有越南、多伦多和密克隆的历史修正。", "commits": ["b4fb76fb5"], "section": "变更", "category": "improvement", "source_url": "/docs/release/16.2/#RELEASE-16-2-CHANGES", "source_hash": "d5a71006b8a70977ef7fa2abc00d435f941ca9827f79db9f954fa8295bfd9fd8", "section_path": ["变更"], "commit_groups": [["272a7c303", "35b8b2c4a", "970b1aeeb", "ac3afc3f7", "b4fb76fb5", "b59ae79b7"]], "identity_text": "Update time zone data files to tzdata release 2024a for DST law changes in Greenland, Kazakhstan, and Palestine, plus corrections for the Antarctic stations Casey and Vostok. Also historical corrections for Vietnam, Toronto, and Miquelon. (Tom Lane)", "commit_aliases": ["272a7c303", "35b8b2c4a", "970b1aeeb", "ac3afc3f7", "b4fb76fb5", "b59ae79b7"], "source_commits": ["b4fb76fb5"], "source_entry_id": "16.2/changes/070", "db_id": "426b3a43b768dc823f4a36a714eac17e", "patch_ids": ["c9211f023d841b87aaec6289a28b7882"], "statement_hash": "5153f2e47f97cf80ee445cf8a3567e7ee99fe4574fbc1f09a5a84bbd1d5ddeef", "relations": [{"rule": 2, "type": "equivalent", "target": "49a4ae4ab31e8e73c07ad6e3458b93d2", "evidence": {"same_day": true, "patch_ids": ["c9211f023d841b87aaec6289a28b7882"], "statement_hash": "5153f2e47f97cf80ee445cf8a3567e7ee99fe4574fbc1f09a5a84bbd1d5ddeef"}}, {"rule": 2, "type": "equivalent", "target": "51de5d170db40b14ddb7b74efa896319", "evidence": {"same_day": true, "patch_ids": ["c9211f023d841b87aaec6289a28b7882"], "statement_hash": "5153f2e47f97cf80ee445cf8a3567e7ee99fe4574fbc1f09a5a84bbd1d5ddeef"}}, {"rule": 2, "type": "equivalent", "target": "56ed1ab3c922815168f213dca6bcbda8", "evidence": {"same_day": true, "patch_ids": ["c9211f023d841b87aaec6289a28b7882"], "statement_hash": "5153f2e47f97cf80ee445cf8a3567e7ee99fe4574fbc1f09a5a84bbd1d5ddeef"}}, {"rule": 2, "type": "equivalent", "target": "a62371416253ddeb63d47c8450f87d6f", "evidence": {"same_day": true, "patch_ids": ["c9211f023d841b87aaec6289a28b7882"]}}], "version": "16.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "49a4ae4ab31e8e73c07ad6e3458b93d2", "kind": "equivalent", "version": "15.6", "label": "15.6", "title": "更新时区数据文件至 tzdata 2024a 版本，包括格陵兰、哈萨克斯坦和巴勒斯坦的夏令时法律变更，以及南极站 Casey 和 Vostok 的修正。同时还有越南、多伦多和密克隆的历史修正。", "evidence": {"same_day": true, "patch_ids": ["c9211f023d841b87aaec6289a28b7882"], "statement_hash": "5153f2e47f97cf80ee445cf8a3567e7ee99fe4574fbc1f09a5a84bbd1d5ddeef"}, "url": "/docs/compare/?release=15.6#15.6-958d2d41c82492fe", "source_url": "/docs/release/15.6/#ZH-AUTO-RELEASE-15-SECT2-24"}, {"db_id": "56ed1ab3c922815168f213dca6bcbda8", "kind": "equivalent", "version": "14.11", "label": "14.11", "title": "更新时区数据文件至 tzdata 2024a 版本，包括格陵兰、哈萨克斯坦和巴勒斯坦的夏令时法律变更，以及南极站 Casey 和 Vostok 的修正。同时还有越南、多伦多和密克隆的历史修正。", "evidence": {"same_day": true, "patch_ids": ["c9211f023d841b87aaec6289a28b7882"], "statement_hash": "5153f2e47f97cf80ee445cf8a3567e7ee99fe4574fbc1f09a5a84bbd1d5ddeef"}, "url": "/docs/compare/?release=14.11#14.11-278be291ed45b115", "source_url": "/docs/release/14.11/#ZH-AUTO-RELEASE-14-SECT2-24"}, {"db_id": "51de5d170db40b14ddb7b74efa896319", "kind": "equivalent", "version": "13.14", "label": "13.14", "title": "更新时区数据文件至 tzdata 2024a 版本，包括格陵兰、哈萨克斯坦和巴勒斯坦的夏令时法律变更，以及南极站 Casey 和 Vostok 的修正。同时还有越南、多伦多和密克隆的历史修正。", "evidence": {"same_day": true, "patch_ids": ["c9211f023d841b87aaec6289a28b7882"], "statement_hash": "5153f2e47f97cf80ee445cf8a3567e7ee99fe4574fbc1f09a5a84bbd1d5ddeef"}, "url": "/docs/compare/?release=13.14#13.14-3d06a8fc4b93b5e9", "source_url": "/docs/release/13.14/#id-1.11.6.15.5"}, {"db_id": "a62371416253ddeb63d47c8450f87d6f", "kind": "equivalent", "version": "12.18", "label": "12.18", "title": "将时区数据文件更新到 tzdata 2024a 版，以反映格陵兰、哈萨克斯坦和巴勒斯坦的夏令时法规变更，并修正南极洲凯西站和沃斯托克站的数据。另有越南、多伦多和密克隆的历史数据修正", "evidence": {"same_day": true, "patch_ids": ["c9211f023d841b87aaec6289a28b7882"]}, "url": "/docs/compare/?release=12.18#12.18-b31932417e5ba000", "source_url": "/docs/release/12.18/#id-1.11.6.10.6"}]}]}], "stats": [{"key": "all", "label": "全部变更", "count": 70}, {"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": 39}], "total": 70, "release_count": 1, "cross_major": false, "cve_count": 1, "cves": [{"id": "CVE-2024-0985", "url": "https://www.postgresql.org/support/security/CVE-2024-0985/", "fixed": {"12": "12.18", "13": "13.14", "14": "14.11", "15": "15.6", "16": "16.2"}, "score": 8.0, "title": "加强 REFRESH MATERIALIZED VIEW CONCURRENTLY 中的安全限制", "vector": "AV:N/AC:L/PR:L/UI:R/S:U/C:H/I:H/A:H", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2024-0985", "affected": {"12": "12", "13": "13", "14": "14", "15": "15", "16": "16"}, "component": "core server", "published": {"12": "2024-02-08", "13": "2024-02-08", "14": "2024-02-08", "15": "2024-02-08", "16": "2024-02-08"}, "introduced": {}, "cvss_version": "3.0", "description_en": "UPDATE (June 19, 2024) : Added v16 as impacted. Updated description to clarify the attack vector.\n\nLate privilege drop in REFRESH MATERIALIZED VIEW CONCURRENTLY in PostgreSQL allows an object creator to execute arbitrary SQL functions as the command issuer. The command intends to run SQL functions as the owner of the materialized view, enabling safe refresh of untrusted materialized views. The victim is a superuser or member of one of the attacker's roles. The attack requires luring the victim into running REFRESH MATERIALIZED VIEW CONCURRENTLY on the attacker's materialized view.", "affected_ranges": [{"from": "0", "until": "12.18"}, {"from": "13", "until": "13.14"}, {"from": "14", "until": "14.11"}, {"from": "15", "until": "15.6"}, {"from": "16", "until": "16.2"}], "first_published": "2024-02-08", "fixed_version": "16.2"}], "cve_available": true, "remaining_cves": [], "security_regressions": [], "warnings": [], "candidate_count": 70, "already_in_source_count": 0, "duplicate_count": 0, "excluded_count": 0, "exclusions": [], "source_as_of": "2026-09-26", "security_as_of": "2026-09-26"}