{"format": 1, "mode": "release", "from_release": null, "to_release": {"date": "2024-11-14", "build": "13.17", "major": "13", "minor": 17, "manual": "13", "status": "stable", "doc_git": "", "version": "13.17", "eol_date": "2025-11-13", "date_text": "2024-11-14", "supported": false, "manual_url": "/docs/13/release-13-17.html", "source_url": "/docs/release/13.17/", "entry_count": 38, "placeholder": false, "content_hash": "dc8c7790d955af681886adf86b944642032cfc4aeb85e729399b2752ae95d20a", "manual_build": "13.23", "source_as_of": "", "changes_count": 38, "doc_loaded_at": "2026-09-26T02:56:40.428744", "migration_html": "<p>对于运行 13.X 的用户，不需要执行导出/恢复。</p>\n<p>但是，如果曾经从一个带有指向另一个分区表的外键引用的分区表中分离过分区，且未删除原分区，则可能需要修复目录和/或数据损坏，详见下面的第五条变更日志条目。</p>\n<p>此外，如果是从早于 13.14 的版本升级，请参见<a href=\"/docs/13/release-13-14.html\" title=\"E.10. 发布版本 13.14\">第 E.10 节</a>。</p>", "compatibility_count": 0, "label": "13.17", "status_label": "历史版本", "eol": "2025-11-13", "age_days": 685, "support_days": -321}, "groups": [{"date": "2024-11-14", "build": "13.17", "major": "13", "minor": 17, "manual": "13", "status": "stable", "doc_git": "", "version": "13.17", "eol_date": "2025-11-13", "date_text": "2024-11-14", "supported": false, "manual_url": "/docs/13/release-13-17.html", "source_url": "/docs/release/13.17/", "entry_count": 38, "placeholder": false, "content_hash": "dc8c7790d955af681886adf86b944642032cfc4aeb85e729399b2752ae95d20a", "manual_build": "13.23", "source_as_of": "", "changes_count": 38, "doc_loaded_at": "2026-09-26T02:56:40.428744", "migration_html": "<p>对于运行 13.X 的用户，不需要执行导出/恢复。</p>\n<p>但是，如果曾经从一个带有指向另一个分区表的外键引用的分区表中分离过分区，且未删除原分区，则可能需要修复目录和/或数据损坏，详见下面的第五条变更日志条目。</p>\n<p>此外，如果是从早于 13.14 的版本升级，请参见<a href=\"/docs/13/release-13-14.html\" title=\"E.10. 发布版本 13.14\">第 E.10 节</a>。</p>", "compatibility_count": 0, "label": "13.17", "status_label": "历史版本", "eol": "2025-11-13", "age_days": 685, "support_days": -321, "entries": [{"id": "13.17-262bcda4a82de7e4", "cves": ["CVE-2024-10976"], "html": "<p>确保当 RLS 应用于非顶级表引用时，缓存的执行计划被标记为依赖于调用角色（Nathan Bossart）<a href=\"https://postgr.es/c/952ff31e2\">§</a></p>\n<p>如果查询中的 CTE、子查询、子链接、安全调用者视图或强制类型转换投影引用了具有行级安全策略的表，我们忽略了将结果执行计划标记为可能依赖于执行它的角色。这可能导致同一会话中后续的查询执行使用错误的执行计划，然后返回或隐藏本应被隐藏或返回的行。</p>\n<p><span>PostgreSQL</span> 项目感谢 Wolfgang Walther 报告此问题。（CVE-2024-10976）</p>", "text": "确保当 RLS 应用于非顶级表引用时，缓存的执行计划被标记为依赖于调用角色（Nathan Bossart）§ 如果查询中的 CTE、子查询、子链接、安全调用者视图或强制类型转换投影引用了具有行级安全策略的表，我们忽略了将结果执行计划标记为可能依赖于执行它的角色。这可能导致同一会话中后续的查询执行使用错误的执行计划，然后返回或隐藏本应被隐藏或返回的行。 PostgreSQL 项目感谢 Wolfgang Walther 报告此问题。（CVE-2024-10976）", "title": "确保当 RLS 应用于非顶级表引用时，缓存的执行计划被标记为依赖于调用角色", "commits": ["952ff31e2"], "section": "变更", "category": "security", "source_url": "/docs/release/13.17/#id-1.11.6.12.5", "source_hash": "209fe154b2f2fe3449cc921a1bd20acc63fe180a3cd1ae3095c02e1e66ae6820", "section_path": ["变更"], "commit_groups": [["448525e8a", "4e51030af", "562289460", "6db5ea8de", "952ff31e2", "cd7ab5753", "edcda9bb4"]], "identity_text": "Ensure cached plans are marked as dependent on the calling role when RLS applies to a non-top-level table reference (Nathan Bossart) If a CTE, subquery, sublink, security invoker view, or coercion projection in a query references a table with row-level security policies, we neglected to mark the resulting plan as potentially dependent on which role is executing it. This could lead to later query executions in the same session using the wrong plan, and then returning or hiding rows that should have been hidden or returned instead. The PostgreSQL Project thanks Wolfgang Walther for reporting this problem. (CVE-2024-10976)", "commit_aliases": ["448525e8a", "4e51030af", "562289460", "6db5ea8de", "952ff31e2", "cd7ab5753", "edcda9bb4"], "source_commits": ["952ff31e2"], "source_entry_id": "13.17/changes/001", "db_id": "ea98dde20d96595ff5781f5e31b89a94", "patch_ids": ["ca54ff224e161547e3903f7a9428139f"], "statement_hash": "82d6eb24bb8a5aec8698c503aa82a36159755dd2df1cbbbd79a94e884e5c2fa3", "relations": [{"rule": 2, "type": "equivalent", "target": "6cb074d8615f9e4b6de7509ab5409206", "evidence": {"same_day": true, "patch_ids": ["ca54ff224e161547e3903f7a9428139f"], "statement_hash": "82d6eb24bb8a5aec8698c503aa82a36159755dd2df1cbbbd79a94e884e5c2fa3"}}, {"rule": 2, "type": "equivalent", "target": "903f54d13a35a580860ec5919ffd9391", "evidence": {"same_day": true, "patch_ids": ["ca54ff224e161547e3903f7a9428139f"], "statement_hash": "82d6eb24bb8a5aec8698c503aa82a36159755dd2df1cbbbd79a94e884e5c2fa3"}}, {"rule": 2, "type": "equivalent", "target": "b35299d8c2b91ca42ad730d56fe1d557", "evidence": {"same_day": true, "patch_ids": ["ca54ff224e161547e3903f7a9428139f"], "statement_hash": "82d6eb24bb8a5aec8698c503aa82a36159755dd2df1cbbbd79a94e884e5c2fa3"}}, {"rule": 2, "type": "equivalent", "target": "d44f16c4afb566a4218e3268550f233b", "evidence": {"same_day": true, "patch_ids": ["ca54ff224e161547e3903f7a9428139f"], "statement_hash": "82d6eb24bb8a5aec8698c503aa82a36159755dd2df1cbbbd79a94e884e5c2fa3"}}, {"rule": 2, "type": "equivalent", "target": "dd2d2a0ef524c238108a866aed2a3928", "evidence": {"same_day": true, "patch_ids": ["ca54ff224e161547e3903f7a9428139f"], "statement_hash": "82d6eb24bb8a5aec8698c503aa82a36159755dd2df1cbbbd79a94e884e5c2fa3"}}], "version": "13.17", "category_label": "安全相关", "also_in": [], "variants": [], "related_changes": [{"db_id": "903f54d13a35a580860ec5919ffd9391", "kind": "equivalent", "version": "17.1", "label": "17.1", "title": "确保当 RLS 应用于非顶级表引用时，缓存的执行计划被标记为依赖于调用角色", "evidence": {"same_day": true, "patch_ids": ["ca54ff224e161547e3903f7a9428139f"], "statement_hash": "82d6eb24bb8a5aec8698c503aa82a36159755dd2df1cbbbd79a94e884e5c2fa3"}, "url": "/docs/compare/?release=17.1#17.1-4318690b9c90f7f0", "source_url": "/docs/release/17.1/#RELEASE-17-1-CHANGES"}, {"db_id": "d44f16c4afb566a4218e3268550f233b", "kind": "equivalent", "version": "16.5", "label": "16.5", "title": "确保当 RLS 应用于非顶级表引用时，缓存的执行计划被标记为依赖于调用角色", "evidence": {"same_day": true, "patch_ids": ["ca54ff224e161547e3903f7a9428139f"], "statement_hash": "82d6eb24bb8a5aec8698c503aa82a36159755dd2df1cbbbd79a94e884e5c2fa3"}, "url": "/docs/compare/?release=16.5#16.5-8836d65ec119a87b", "source_url": "/docs/release/16.5/#RELEASE-16-5-CHANGES"}, {"db_id": "6cb074d8615f9e4b6de7509ab5409206", "kind": "equivalent", "version": "15.9", "label": "15.9", "title": "确保当 RLS 应用于非顶级表引用时，缓存的执行计划被标记为依赖于调用角色", "evidence": {"same_day": true, "patch_ids": ["ca54ff224e161547e3903f7a9428139f"], "statement_hash": "82d6eb24bb8a5aec8698c503aa82a36159755dd2df1cbbbd79a94e884e5c2fa3"}, "url": "/docs/compare/?release=15.9#15.9-0df8f5c6c57017c1", "source_url": "/docs/release/15.9/#ZH-AUTO-RELEASE-15-SECT2-18"}, {"db_id": "b35299d8c2b91ca42ad730d56fe1d557", "kind": "equivalent", "version": "14.14", "label": "14.14", "title": "确保当 RLS 应用于非顶级表引用时，缓存的执行计划被标记为依赖于调用角色", "evidence": {"same_day": true, "patch_ids": ["ca54ff224e161547e3903f7a9428139f"], "statement_hash": "82d6eb24bb8a5aec8698c503aa82a36159755dd2df1cbbbd79a94e884e5c2fa3"}, "url": "/docs/compare/?release=14.14#14.14-ef2b342695c66732", "source_url": "/docs/release/14.14/#ZH-AUTO-RELEASE-14-SECT2-18"}, {"db_id": "dd2d2a0ef524c238108a866aed2a3928", "kind": "equivalent", "version": "12.21", "label": "12.21", "title": "确保当 RLS 应用于非顶级表引用时，缓存的执行计划被标记为依赖于调用角色", "evidence": {"same_day": true, "patch_ids": ["ca54ff224e161547e3903f7a9428139f"], "statement_hash": "82d6eb24bb8a5aec8698c503aa82a36159755dd2df1cbbbd79a94e884e5c2fa3"}, "url": "/docs/compare/?release=12.21#12.21-024fbe5032a8d0a7", "source_url": "/docs/release/12.21/#id-1.11.6.7.6"}]}, {"id": "13.17-6c940adbb9729591", "cves": ["CVE-2024-10977"], "html": "<p>使 <span>libpq</span> 丢弃在 SSL 或 GSS 协议协商期间收到的错误消息（Jacob Champion）<a href=\"https://postgr.es/c/7b49707b7\">§</a></p>\n<p>在加密协商完成之前收到的错误消息可能是由中间人注入的，而不是真正的服务器输出。报告该消息会带来各种安全隐患；例如，该消息可能伪造查询结果，粗心的用户可能会误以为是正确的输出。最好的方案似乎是丢弃这类数据，仅依赖 <span>libpq</span> 自身对连接失败的报告。</p>\n<p><span>PostgreSQL</span> 项目感谢 Jacob Champion 报告此问题。（CVE-2024-10977）</p>", "text": "使 libpq 丢弃在 SSL 或 GSS 协议协商期间收到的错误消息（Jacob Champion）§ 在加密协商完成之前收到的错误消息可能是由中间人注入的，而不是真正的服务器输出。报告该消息会带来各种安全隐患；例如，该消息可能伪造查询结果，粗心的用户可能会误以为是正确的输出。最好的方案似乎是丢弃这类数据，仅依赖 libpq 自身对连接失败的报告。 PostgreSQL 项目感谢 Jacob Champion 报告此问题。（CVE-2024-10977）", "title": "使 libpq 丢弃在 SSL 或 GSS 协议协商期间收到的错误消息", "commits": ["7b49707b7"], "section": "变更", "category": "security", "source_url": "/docs/release/13.17/#id-1.11.6.12.5", "source_hash": "f24c67787dde60221cc2dd4d463d48446755dfcd1494716a646b06720028adba", "section_path": ["变更"], "commit_groups": [["2a951ef0a", "67d28bd02", "7b49707b7", "a5cc4c667", "bf8835ea9", "d2c3e31c1", "e6c945476"]], "identity_text": "Make libpq discard error messages received during SSL or GSS protocol negotiation (Jacob Champion) An error message received before encryption negotiation is completed might have been injected by a man-in-the-middle, rather than being real server output. Reporting it opens the door to various security hazards; for example, the message might spoof a query result that a careless user could mistake for correct output. The best answer seems to be to discard such data and rely only on libpq's own report of the connection failure. The PostgreSQL Project thanks Jacob Champion for reporting this problem. (CVE-2024-10977)", "commit_aliases": ["2a951ef0a", "67d28bd02", "7b49707b7", "a5cc4c667", "bf8835ea9", "d2c3e31c1", "e6c945476"], "source_commits": ["7b49707b7"], "source_entry_id": "13.17/changes/002", "db_id": "606e86fc061b8305117b462b0fb72f7e", "patch_ids": ["7f0305d2fb23504e1e6db659e7871ef3"], "statement_hash": "2d14a7d8ffe6fb8029b15b61d067c13cf4746fb098542feefffa1d74e35bfa6e", "relations": [{"rule": 2, "type": "equivalent", "target": "041d5a2ad83eeef120f71cbf6b017715", "evidence": {"same_day": true, "patch_ids": ["7f0305d2fb23504e1e6db659e7871ef3"], "statement_hash": "2d14a7d8ffe6fb8029b15b61d067c13cf4746fb098542feefffa1d74e35bfa6e"}}, {"rule": 2, "type": "equivalent", "target": "170ef4172dbf8227246b2fd10f547eaf", "evidence": {"same_day": true, "patch_ids": ["7f0305d2fb23504e1e6db659e7871ef3"], "statement_hash": "2d14a7d8ffe6fb8029b15b61d067c13cf4746fb098542feefffa1d74e35bfa6e"}}, {"rule": 2, "type": "equivalent", "target": "343aad3da37d507acbe87e3c07339848", "evidence": {"same_day": true, "patch_ids": ["7f0305d2fb23504e1e6db659e7871ef3"], "statement_hash": "2d14a7d8ffe6fb8029b15b61d067c13cf4746fb098542feefffa1d74e35bfa6e"}}, {"rule": 2, "type": "equivalent", "target": "91332def933a0204d60d03b6aee60a2f", "evidence": {"same_day": true, "patch_ids": ["7f0305d2fb23504e1e6db659e7871ef3"], "statement_hash": "2d14a7d8ffe6fb8029b15b61d067c13cf4746fb098542feefffa1d74e35bfa6e"}}, {"rule": 2, "type": "equivalent", "target": "f603cc7c23c00c33a7aaf0a8f34e4e09", "evidence": {"same_day": true, "patch_ids": ["7f0305d2fb23504e1e6db659e7871ef3"], "statement_hash": "2d14a7d8ffe6fb8029b15b61d067c13cf4746fb098542feefffa1d74e35bfa6e"}}], "version": "13.17", "category_label": "安全相关", "also_in": [], "variants": [], "related_changes": [{"db_id": "91332def933a0204d60d03b6aee60a2f", "kind": "equivalent", "version": "17.1", "label": "17.1", "title": "使 libpq 丢弃在 SSL 或 GSS 协议协商期间收到的错误消息", "evidence": {"same_day": true, "patch_ids": ["7f0305d2fb23504e1e6db659e7871ef3"], "statement_hash": "2d14a7d8ffe6fb8029b15b61d067c13cf4746fb098542feefffa1d74e35bfa6e"}, "url": "/docs/compare/?release=17.1#17.1-1082f03d8cb14619", "source_url": "/docs/release/17.1/#RELEASE-17-1-CHANGES"}, {"db_id": "170ef4172dbf8227246b2fd10f547eaf", "kind": "equivalent", "version": "16.5", "label": "16.5", "title": "使 libpq 丢弃在 SSL 或 GSS 协议协商期间收到的错误消息", "evidence": {"same_day": true, "patch_ids": ["7f0305d2fb23504e1e6db659e7871ef3"], "statement_hash": "2d14a7d8ffe6fb8029b15b61d067c13cf4746fb098542feefffa1d74e35bfa6e"}, "url": "/docs/compare/?release=16.5#16.5-9d380df74be2cafb", "source_url": "/docs/release/16.5/#RELEASE-16-5-CHANGES"}, {"db_id": "f603cc7c23c00c33a7aaf0a8f34e4e09", "kind": "equivalent", "version": "15.9", "label": "15.9", "title": "使 libpq 丢弃在 SSL 或 GSS 协议协商期间收到的错误消息", "evidence": {"same_day": true, "patch_ids": ["7f0305d2fb23504e1e6db659e7871ef3"], "statement_hash": "2d14a7d8ffe6fb8029b15b61d067c13cf4746fb098542feefffa1d74e35bfa6e"}, "url": "/docs/compare/?release=15.9#15.9-5728e455ef5ad54b", "source_url": "/docs/release/15.9/#ZH-AUTO-RELEASE-15-SECT2-18"}, {"db_id": "343aad3da37d507acbe87e3c07339848", "kind": "equivalent", "version": "14.14", "label": "14.14", "title": "使 libpq 丢弃在 SSL 或 GSS 协议协商期间收到的错误消息", "evidence": {"same_day": true, "patch_ids": ["7f0305d2fb23504e1e6db659e7871ef3"], "statement_hash": "2d14a7d8ffe6fb8029b15b61d067c13cf4746fb098542feefffa1d74e35bfa6e"}, "url": "/docs/compare/?release=14.14#14.14-8e4bd7f9b172bf1c", "source_url": "/docs/release/14.14/#ZH-AUTO-RELEASE-14-SECT2-18"}, {"db_id": "041d5a2ad83eeef120f71cbf6b017715", "kind": "equivalent", "version": "12.21", "label": "12.21", "title": "使 libpq 丢弃在 SSL 或 GSS 协议协商期间收到的错误消息", "evidence": {"same_day": true, "patch_ids": ["7f0305d2fb23504e1e6db659e7871ef3"], "statement_hash": "2d14a7d8ffe6fb8029b15b61d067c13cf4746fb098542feefffa1d74e35bfa6e"}, "url": "/docs/compare/?release=12.21#12.21-6fc5c9c88c8d9ac9", "source_url": "/docs/release/12.21/#id-1.11.6.7.6"}]}, {"id": "13.17-d57adda36139a851", "cves": ["CVE-2024-10978"], "html": "<p>修复 <code>SET SESSION AUTHORIZATION</code> 与 <code>SET ROLE</code> 之间意外的交互（Tom Lane）<a href=\"https://postgr.es/c/76123ded6\">§</a> <a href=\"https://postgr.es/c/dc7378793\">§</a></p>\n<p>SQL 标准要求 <code>SET SESSION AUTHORIZATION</code> 具有执行 <code>SET ROLE NONE</code> 的副作用。我们对此的实现有缺陷，导致两个设置之间产生了超出预期的交互。值得注意的是，回滚一个执行了 <code>SET SESSION AUTHORIZATION</code> 的事务会将 <code>ROLE</code> 恢复为 <code>NONE</code>，即使之前并非如此，因此有效用户 ID 现在可能与事务之前不同。在函数 <code>SET</code> 子句中临时设置 <code>session_authorization</code> 也有类似的效果。一个相关的错误是，如果并行工作进程检查 <code>current_setting('role')</code>，它会看到 <code>none</code>，即使它应该看到其他值。</p>\n<p><span>PostgreSQL</span> 项目感谢 Tom Lane 报告此问题。（CVE-2024-10978）</p>", "text": "修复 SET SESSION AUTHORIZATION 与 SET ROLE 之间意外的交互（Tom Lane）§ § SQL 标准要求 SET SESSION AUTHORIZATION 具有执行 SET ROLE NONE 的副作用。我们对此的实现有缺陷，导致两个设置之间产生了超出预期的交互。值得注意的是，回滚一个执行了 SET SESSION AUTHORIZATION 的事务会将 ROLE 恢复为 NONE，即使之前并非如此，因此有效用户 ID 现在可能与事务之前不同。在函数 SET 子句中临时设置 session_authorization 也有类似的效果。一个相关的错误是，如果并行工作进程检查 current_setting('role')，它会看到 none，即使它应该看到其他值。 PostgreSQL 项目感谢 Tom Lane 报告此问题。（CVE-2024-10978）", "title": "修复 SET SESSION AUTHORIZATION 与 SET ROLE 之间意外的交互", "commits": ["76123ded6", "dc7378793"], "section": "变更", "category": "security", "source_url": "/docs/release/13.17/#id-1.11.6.12.5", "source_hash": "6640e4fc05837d1341377ab024cdc9f9e5a450377f25b320a7476e6903616bf7", "section_path": ["变更"], "commit_groups": [["00b94e8e2", "0edad8654", "109a32380", "73c9f91a1", "95f5a5237", "dc7378793", "f4f5d27d8"], ["2a68808e2", "4c9d96f74", "5a2fed911", "76123ded6", "a5d2e6205", "ae340d031", "cd82afdda"]], "identity_text": "Fix unintended interactions between SET SESSION AUTHORIZATION and SET ROLE (Tom Lane) The SQL standard mandates that SET SESSION AUTHORIZATION have a side-effect of doing SET ROLE NONE. Our implementation of that was flawed, creating more interaction between the two settings than intended. Notably, rolling back a transaction that had done SET SESSION AUTHORIZATION would revert ROLE to NONE even if that had not been the previous state, so that the effective user ID might now be different from what it had been before the transaction. Transiently setting session_authorization in a function SET clause had a similar effect. A related bug was that if a parallel worker inspected current_setting('role'), it saw none even when it should see something else. The PostgreSQL Project thanks Tom Lane for reporting this problem. (CVE-2024-10978)", "commit_aliases": ["00b94e8e2", "0edad8654", "109a32380", "2a68808e2", "4c9d96f74", "5a2fed911", "73c9f91a1", "76123ded6", "95f5a5237", "a5d2e6205", "ae340d031", "cd82afdda", "dc7378793", "f4f5d27d8"], "source_commits": ["76123ded6", "dc7378793"], "source_entry_id": "13.17/changes/003", "db_id": "97797a7d809da6dc757cde719790fc0c", "patch_ids": ["0f53d135f12041c1e76d37093ce742db", "eba6518020c128bdd7288f5ccdcffc71"], "statement_hash": "a437824687a1e0387cf26cd2c9b09d3e61606ea0fa5e129b3302117736a6fe88", "relations": [{"rule": 2, "type": "equivalent", "target": "604f59cff9d6f5774f9b68abcf08958c", "evidence": {"same_day": true, "patch_ids": ["0f53d135f12041c1e76d37093ce742db", "eba6518020c128bdd7288f5ccdcffc71"], "statement_hash": "a437824687a1e0387cf26cd2c9b09d3e61606ea0fa5e129b3302117736a6fe88"}}, {"rule": 2, "type": "equivalent", "target": "b1a4466d9937d8744821f08d11640f15", "evidence": {"same_day": true, "patch_ids": ["0f53d135f12041c1e76d37093ce742db", "eba6518020c128bdd7288f5ccdcffc71"], "statement_hash": "a437824687a1e0387cf26cd2c9b09d3e61606ea0fa5e129b3302117736a6fe88"}}, {"rule": 2, "type": "equivalent", "target": "bc5ed2f456883b22d022a9a61741e828", "evidence": {"same_day": true, "patch_ids": ["0f53d135f12041c1e76d37093ce742db", "eba6518020c128bdd7288f5ccdcffc71"], "statement_hash": "a437824687a1e0387cf26cd2c9b09d3e61606ea0fa5e129b3302117736a6fe88"}}, {"rule": 2, "type": "equivalent", "target": "f64aff32abbe75ed4c780fc509e778f6", "evidence": {"same_day": true, "patch_ids": ["0f53d135f12041c1e76d37093ce742db", "eba6518020c128bdd7288f5ccdcffc71"], "statement_hash": "a437824687a1e0387cf26cd2c9b09d3e61606ea0fa5e129b3302117736a6fe88"}}, {"rule": 2, "type": "equivalent", "target": "fcbd66ab269c152eb9da16b5b1eeba9d", "evidence": {"same_day": true, "patch_ids": ["0f53d135f12041c1e76d37093ce742db", "eba6518020c128bdd7288f5ccdcffc71"], "statement_hash": "a437824687a1e0387cf26cd2c9b09d3e61606ea0fa5e129b3302117736a6fe88"}}], "version": "13.17", "category_label": "安全相关", "also_in": [], "variants": [], "related_changes": [{"db_id": "fcbd66ab269c152eb9da16b5b1eeba9d", "kind": "equivalent", "version": "17.1", "label": "17.1", "title": "修复 SET SESSION AUTHORIZATION 与 SET ROLE 之间意外的交互", "evidence": {"same_day": true, "patch_ids": ["0f53d135f12041c1e76d37093ce742db", "eba6518020c128bdd7288f5ccdcffc71"], "statement_hash": "a437824687a1e0387cf26cd2c9b09d3e61606ea0fa5e129b3302117736a6fe88"}, "url": "/docs/compare/?release=17.1#17.1-bcd14383964f2685", "source_url": "/docs/release/17.1/#RELEASE-17-1-CHANGES"}, {"db_id": "f64aff32abbe75ed4c780fc509e778f6", "kind": "equivalent", "version": "16.5", "label": "16.5", "title": "修复 SET SESSION AUTHORIZATION 与 SET ROLE 之间意外的交互", "evidence": {"same_day": true, "patch_ids": ["0f53d135f12041c1e76d37093ce742db", "eba6518020c128bdd7288f5ccdcffc71"], "statement_hash": "a437824687a1e0387cf26cd2c9b09d3e61606ea0fa5e129b3302117736a6fe88"}, "url": "/docs/compare/?release=16.5#16.5-315f7321f2990e19", "source_url": "/docs/release/16.5/#RELEASE-16-5-CHANGES"}, {"db_id": "b1a4466d9937d8744821f08d11640f15", "kind": "equivalent", "version": "15.9", "label": "15.9", "title": "修复 SET SESSION AUTHORIZATION 与 SET ROLE 之间意外的交互", "evidence": {"same_day": true, "patch_ids": ["0f53d135f12041c1e76d37093ce742db", "eba6518020c128bdd7288f5ccdcffc71"], "statement_hash": "a437824687a1e0387cf26cd2c9b09d3e61606ea0fa5e129b3302117736a6fe88"}, "url": "/docs/compare/?release=15.9#15.9-edbb19d6ec7f223e", "source_url": "/docs/release/15.9/#ZH-AUTO-RELEASE-15-SECT2-18"}, {"db_id": "604f59cff9d6f5774f9b68abcf08958c", "kind": "equivalent", "version": "14.14", "label": "14.14", "title": "修复 SET SESSION AUTHORIZATION 与 SET ROLE 之间意外的交互", "evidence": {"same_day": true, "patch_ids": ["0f53d135f12041c1e76d37093ce742db", "eba6518020c128bdd7288f5ccdcffc71"], "statement_hash": "a437824687a1e0387cf26cd2c9b09d3e61606ea0fa5e129b3302117736a6fe88"}, "url": "/docs/compare/?release=14.14#14.14-4b483cb165d6e486", "source_url": "/docs/release/14.14/#ZH-AUTO-RELEASE-14-SECT2-18"}, {"db_id": "bc5ed2f456883b22d022a9a61741e828", "kind": "equivalent", "version": "12.21", "label": "12.21", "title": "修复 SET SESSION AUTHORIZATION 与 SET ROLE 之间意外的交互", "evidence": {"same_day": true, "patch_ids": ["0f53d135f12041c1e76d37093ce742db", "eba6518020c128bdd7288f5ccdcffc71"], "statement_hash": "a437824687a1e0387cf26cd2c9b09d3e61606ea0fa5e129b3302117736a6fe88"}, "url": "/docs/compare/?release=12.21#12.21-77f2e83b58681f50", "source_url": "/docs/release/12.21/#id-1.11.6.7.6"}]}, {"id": "13.17-458fde2a378dd869", "cves": ["CVE-2024-10979"], "html": "<p>防止受信任的 PL/Perl 代码更改环境变量（Andrew Dunstan，Noah Misch）<a href=\"https://postgr.es/c/e428cd058\">§</a> <a href=\"https://postgr.es/c/6bccd7b03\">§</a> <a href=\"https://postgr.es/c/9f97c31c2\">§</a> <a href=\"https://postgr.es/c/0bd9560d9\">§</a></p>\n<p>操纵进程环境变量（如 <code>PATH</code>）的能力会给攻击者提供执行任意代码的机会。因此，<span>“<span>受信任的</span>”</span> PL 不应提供这样的能力。为修复 <code>plperl</code>，将 <code>%ENV</code> 替换为一个绑定的 hash，该 hash 会拒绝任何修改尝试并发出警告。不受信任的 <code>plperlu</code> 保留更改环境的能力。</p>\n<p><span>PostgreSQL</span> 项目感谢 Coby Abrams 报告此问题。（CVE-2024-10979）</p>", "text": "防止受信任的 PL/Perl 代码更改环境变量（Andrew Dunstan，Noah Misch）§ § § § 操纵进程环境变量（如 PATH）的能力会给攻击者提供执行任意代码的机会。因此，“受信任的” PL 不应提供这样的能力。为修复 plperl，将 %ENV 替换为一个绑定的 hash，该 hash 会拒绝任何修改尝试并发出警告。不受信任的 plperlu 保留更改环境的能力。 PostgreSQL 项目感谢 Coby Abrams 报告此问题。（CVE-2024-10979）", "title": "防止受信任的 PL/Perl 代码更改环境变量", "commits": ["0bd9560d9", "6bccd7b03", "9f97c31c2", "e428cd058"], "section": "变更", "category": "security", "source_url": "/docs/release/13.17/#id-1.11.6.12.5", "source_hash": "e55f642190281e56c03cc7a639c563f26367b314078afbbd85d5db84e50529c1", "section_path": ["变更"], "commit_groups": [["0bd9560d9", "256e34653", "64df88700", "8d19f3fea", "9fc1c3a02", "c4252c9ef", "c834b375a"], ["168579e23"], ["16ed4f4d0", "1e457468f", "9f97c31c2", "c1fff7b1b", "c335264c9"], ["2ab12d860", "3ebcfa54d", "8fe3e697a", "b7e3a52a8", "d15ec27c9", "e428cd058", "e530835c6"], ["4cd4f3b97", "6bccd7b03", "88269df4d", "a34c33fd2", "b1e58defb", "f89bd92c9"]], "identity_text": "Prevent trusted PL/Perl code from changing environment variables (Andrew Dunstan, Noah Misch) The ability to manipulate process environment variables such as PATH gives an attacker opportunities to execute arbitrary code. Therefore, trusted PLs must not offer the ability to do that. To fix plperl, replace %ENV with a tied hash that rejects any modification attempt with a warning. Untrusted plperlu retains the ability to change the environment. The PostgreSQL Project thanks Coby Abrams for reporting this problem. (CVE-2024-10979)", "commit_aliases": ["0bd9560d9", "168579e23", "16ed4f4d0", "1e457468f", "256e34653", "2ab12d860", "3ebcfa54d", "4cd4f3b97", "64df88700", "6bccd7b03", "88269df4d", "8d19f3fea", "8fe3e697a", "9f97c31c2", "9fc1c3a02", "a34c33fd2", "b1e58defb", "b7e3a52a8", "c1fff7b1b", "c335264c9", "c4252c9ef", "c834b375a", "d15ec27c9", "e428cd058", "e530835c6", "f89bd92c9"], "source_commits": ["0bd9560d9", "168579e23", "6bccd7b03", "9f97c31c2", "e428cd058"], "source_entry_id": "13.17/changes/004", "db_id": "e8bdec3e3e6cd8239b40cec431d635ac", "patch_ids": ["1af95cf54ee9908abe88fa7a3ffd5abe", "3ffa60097fb5097805f3eb797ff822d0", "4b5346a4224ce3743b7a7f567408da6f", "836669172595edcd77e373a3f0fbe3c5", "949df75f7944a4ee7452f9fa31e2ea86"], "statement_hash": "298ced72d35046c9614efe5d933839f66d4cb8e7b59aa240ad80fd1c39e896ec", "relations": [{"rule": 2, "type": "equivalent", "target": "0a701592b8a9b3174c5f3918bbef8dd6", "evidence": {"same_day": true, "patch_ids": ["1af95cf54ee9908abe88fa7a3ffd5abe", "3ffa60097fb5097805f3eb797ff822d0", "4b5346a4224ce3743b7a7f567408da6f", "836669172595edcd77e373a3f0fbe3c5", "949df75f7944a4ee7452f9fa31e2ea86"], "statement_hash": "298ced72d35046c9614efe5d933839f66d4cb8e7b59aa240ad80fd1c39e896ec"}}, {"rule": 2, "type": "equivalent", "target": "2066e4f8fce90840b573e98b707266c8", "evidence": {"same_day": true, "patch_ids": ["1af95cf54ee9908abe88fa7a3ffd5abe", "3ffa60097fb5097805f3eb797ff822d0", "4b5346a4224ce3743b7a7f567408da6f", "836669172595edcd77e373a3f0fbe3c5", "949df75f7944a4ee7452f9fa31e2ea86"], "statement_hash": "298ced72d35046c9614efe5d933839f66d4cb8e7b59aa240ad80fd1c39e896ec"}}, {"rule": 2, "type": "equivalent", "target": "48c45a7465e356c96eee7b77e513f0c9", "evidence": {"same_day": true, "patch_ids": ["1af95cf54ee9908abe88fa7a3ffd5abe", "3ffa60097fb5097805f3eb797ff822d0", "4b5346a4224ce3743b7a7f567408da6f", "836669172595edcd77e373a3f0fbe3c5", "949df75f7944a4ee7452f9fa31e2ea86"], "statement_hash": "298ced72d35046c9614efe5d933839f66d4cb8e7b59aa240ad80fd1c39e896ec"}}, {"rule": 2, "type": "equivalent", "target": "88cb0753c619cb8ffb55dd3992fec3ae", "evidence": {"same_day": true, "patch_ids": ["1af95cf54ee9908abe88fa7a3ffd5abe", "3ffa60097fb5097805f3eb797ff822d0", "4b5346a4224ce3743b7a7f567408da6f", "836669172595edcd77e373a3f0fbe3c5", "949df75f7944a4ee7452f9fa31e2ea86"], "statement_hash": "298ced72d35046c9614efe5d933839f66d4cb8e7b59aa240ad80fd1c39e896ec"}}, {"rule": 2, "type": "equivalent", "target": "e6325045df38d2253c8faef82c16e050", "evidence": {"same_day": true, "patch_ids": ["1af95cf54ee9908abe88fa7a3ffd5abe", "3ffa60097fb5097805f3eb797ff822d0", "4b5346a4224ce3743b7a7f567408da6f", "836669172595edcd77e373a3f0fbe3c5", "949df75f7944a4ee7452f9fa31e2ea86"], "statement_hash": "298ced72d35046c9614efe5d933839f66d4cb8e7b59aa240ad80fd1c39e896ec"}}], "version": "13.17", "category_label": "安全相关", "also_in": [], "variants": [], "related_changes": [{"db_id": "88cb0753c619cb8ffb55dd3992fec3ae", "kind": "equivalent", "version": "17.1", "label": "17.1", "title": "防止受信任的 PL/Perl 代码更改环境变量", "evidence": {"same_day": true, "patch_ids": ["1af95cf54ee9908abe88fa7a3ffd5abe", "3ffa60097fb5097805f3eb797ff822d0", "4b5346a4224ce3743b7a7f567408da6f", "836669172595edcd77e373a3f0fbe3c5", "949df75f7944a4ee7452f9fa31e2ea86"], "statement_hash": "298ced72d35046c9614efe5d933839f66d4cb8e7b59aa240ad80fd1c39e896ec"}, "url": "/docs/compare/?release=17.1#17.1-17e0d808d28707ff", "source_url": "/docs/release/17.1/#RELEASE-17-1-CHANGES"}, {"db_id": "e6325045df38d2253c8faef82c16e050", "kind": "equivalent", "version": "16.5", "label": "16.5", "title": "防止受信任的 PL/Perl 代码更改环境变量", "evidence": {"same_day": true, "patch_ids": ["1af95cf54ee9908abe88fa7a3ffd5abe", "3ffa60097fb5097805f3eb797ff822d0", "4b5346a4224ce3743b7a7f567408da6f", "836669172595edcd77e373a3f0fbe3c5", "949df75f7944a4ee7452f9fa31e2ea86"], "statement_hash": "298ced72d35046c9614efe5d933839f66d4cb8e7b59aa240ad80fd1c39e896ec"}, "url": "/docs/compare/?release=16.5#16.5-3b4f7138a28e92e1", "source_url": "/docs/release/16.5/#RELEASE-16-5-CHANGES"}, {"db_id": "0a701592b8a9b3174c5f3918bbef8dd6", "kind": "equivalent", "version": "15.9", "label": "15.9", "title": "防止受信任的 PL/Perl 代码更改环境变量", "evidence": {"same_day": true, "patch_ids": ["1af95cf54ee9908abe88fa7a3ffd5abe", "3ffa60097fb5097805f3eb797ff822d0", "4b5346a4224ce3743b7a7f567408da6f", "836669172595edcd77e373a3f0fbe3c5", "949df75f7944a4ee7452f9fa31e2ea86"], "statement_hash": "298ced72d35046c9614efe5d933839f66d4cb8e7b59aa240ad80fd1c39e896ec"}, "url": "/docs/compare/?release=15.9#15.9-c9b0c46ba6e5aa14", "source_url": "/docs/release/15.9/#ZH-AUTO-RELEASE-15-SECT2-18"}, {"db_id": "48c45a7465e356c96eee7b77e513f0c9", "kind": "equivalent", "version": "14.14", "label": "14.14", "title": "防止受信任的 PL/Perl 代码更改环境变量", "evidence": {"same_day": true, "patch_ids": ["1af95cf54ee9908abe88fa7a3ffd5abe", "3ffa60097fb5097805f3eb797ff822d0", "4b5346a4224ce3743b7a7f567408da6f", "836669172595edcd77e373a3f0fbe3c5", "949df75f7944a4ee7452f9fa31e2ea86"], "statement_hash": "298ced72d35046c9614efe5d933839f66d4cb8e7b59aa240ad80fd1c39e896ec"}, "url": "/docs/compare/?release=14.14#14.14-cc2f3258f095a62a", "source_url": "/docs/release/14.14/#ZH-AUTO-RELEASE-14-SECT2-18"}, {"db_id": "2066e4f8fce90840b573e98b707266c8", "kind": "equivalent", "version": "12.21", "label": "12.21", "title": "防止受信任的 PL/Perl 代码更改环境变量", "evidence": {"same_day": true, "patch_ids": ["1af95cf54ee9908abe88fa7a3ffd5abe", "3ffa60097fb5097805f3eb797ff822d0", "4b5346a4224ce3743b7a7f567408da6f", "836669172595edcd77e373a3f0fbe3c5", "949df75f7944a4ee7452f9fa31e2ea86"], "statement_hash": "298ced72d35046c9614efe5d933839f66d4cb8e7b59aa240ad80fd1c39e896ec"}, "url": "/docs/compare/?release=12.21#12.21-1e5606f9a5aeeb3a", "source_url": "/docs/release/12.21/#id-1.11.6.7.6"}]}, {"id": "13.17-81cbf6771f847538", "cves": [], "html": "<p>修复在附加或分离表分区时外键约束的目录状态更新（Jehan-Guillaume de Rorthais，Tender Wang，Álvaro Herrera）<a href=\"https://postgr.es/c/d20194cea\">§</a></p>\n<p>如果被引用表是分区表，则独立的引用表与作为分区的引用表需要不同的目录条目。<code>ATTACH/DETACH PARTITION</code> 命令未能正确执行此转换。特别是在 <code>DETACH</code> 之后，现在独立的表将缺少外键强制触发器，这可能导致该表后来包含违反外键约束的行。随后的重新 <code>ATTACH</code> 也可能失败并产生令人意外的错误。</p>\n<p>修复方法是对现在独立的表的每个有问题的约束执行 <code>ALTER TABLE DROP CONSTRAINT</code>，然后重新添加该约束。如果重新添加约束失败，说明已经有错误数据混入。需要手动恢复引用表和被引用表之间的一致性，然后重新添加约束。</p>\n<p>以下查询可用于识别损坏的约束，并构造重建它们所需的命令：</p>\n<pre>SELECT conrelid::pg_catalog.regclass AS \"constrained table\",\n       conname AS constraint,\n       confrelid::pg_catalog.regclass AS \"references\",\n       pg_catalog.format('ALTER TABLE %s DROP CONSTRAINT %I;',\n                         conrelid::pg_catalog.regclass, conname) AS \"drop\",\n       pg_catalog.format('ALTER TABLE %s ADD CONSTRAINT %I %s;',\n                         conrelid::pg_catalog.regclass, conname,\n                         pg_catalog.pg_get_constraintdef(oid)) AS \"add\"\nFROM pg_catalog.pg_constraint c\nWHERE contype = 'f' AND conparentid = 0 AND\n   (SELECT count(*) FROM pg_catalog.pg_constraint c2\n    WHERE c2.conparentid = c.oid) &lt;&gt;\n   ((SELECT count(*) FROM pg_catalog.pg_inherits i\n    WHERE (i.inhparent = c.conrelid OR i.inhparent = c.confrelid) AND\n      EXISTS (SELECT 1 FROM pg_catalog.pg_partitioned_table\n              WHERE partrelid = i.inhparent)) +\n    CASE WHEN pg_catalog.pg_partition_root(conrelid) = confrelid THEN\n              (SELECT count(*) FROM pg_catalog.pg_partition_tree(confrelid)\n                WHERE level = 1)\n         ELSE 0 END);\n</pre>\n<p>由于一个或多个 <code>ADD CONSTRAINT</code> 步骤可能会失败，应将查询输出保存到文件中，然后尝试执行每个步骤。</p>", "text": "修复在附加或分离表分区时外键约束的目录状态更新（Jehan-Guillaume de Rorthais，Tender Wang，Álvaro Herrera）§ 如果被引用表是分区表，则独立的引用表与作为分区的引用表需要不同的目录条目。ATTACH/DETACH PARTITION 命令未能正确执行此转换。特别是在 DETACH 之后，现在独立的表将缺少外键强制触发器，这可能导致该表后来包含违反外键约束的行。随后的重新 ATTACH 也可能失败并产生令人意外的错误。 修复方法是对现在独立的表的每个有问题的约束执行 ALTER TABLE DROP CONSTRAINT，然后重新添加该约束。如果重新添加约束失败，说明已经有错误数据混入。需要手动恢复引用表和被引用表之间的一致性，然后重新添加约束。 以下查询可用于识别损坏的约束，并构造重建它们所需的命令： SELECT conrelid::pg_catalog.regclass AS \"constrained table\", conname AS constraint, confrelid::pg_catalog.regclass AS \"references\", pg_catalog.format('ALTER TABLE %s DROP CONSTRAINT %I;', conrelid::pg_catalog.regclass, conname) AS \"drop\", pg_catalog.format('ALTER TABLE %s ADD CONSTRAINT %I %s;', conrelid::pg_catalog.regclass, conname, pg_catalog.pg_get_constraintdef(oid)) AS \"add\" FROM pg_catalog.pg_constraint c WHERE contype = 'f' AND conparentid = 0 AND (SELECT count(*) FROM pg_catalog.pg_constraint c2 WHERE c2.conparentid = c.oid) <> ((SELECT count(*) FROM pg_catalog.pg_inherits i WHERE (i.inhparent = c.conrelid OR i.inhparent = c.confrelid) AND EXISTS (SELECT 1 FROM pg_catalog.pg_partitioned_table WHERE partrelid = i.inhparent)) + CASE WHEN pg_catalog.pg_partition_root(conrelid) = confrelid THEN (SELECT count(*) FROM pg_catalog.pg_partition_tree(confrelid) WHERE level = 1) ELSE 0 END); 由于一个或多个 ADD CONSTRAINT 步骤可能会失败，应将查询输出保存到文件中，然后尝试执行每个步骤。", "title": "修复在附加或分离表分区时外键约束的目录状态更新", "commits": ["d20194cea"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/13.17/#id-1.11.6.12.5", "source_hash": "c3542fc1f97de45a9ef3fd21be5904e5052bedbd3553d65e4a7f75424dea7bee", "section_path": ["变更"], "commit_groups": [["1b216fcef", "2d5fe5140", "936ab6de9", "f7d510a38"], ["2aaf2a28b", "46a8c27a7", "53af9491a", "5914a22f6", "5d83bad6b", "d20194cea"]], "identity_text": "Fix updates of catalog state for foreign-key constraints when attaching or detaching table partitions (Jehan-Guillaume de Rorthais, Tender Wang, Álvaro Herrera) If the referenced table is partitioned, then different catalog entries are needed for a referencing table that is stand-alone versus one that is a partition. ATTACH/DETACH PARTITION commands failed to perform this conversion correctly. In particular, after DETACH the now stand-alone table would be missing foreign-key enforcement triggers, which could result in the table later containing rows that fail the foreign-key constraint. A subsequent re-ATTACH could fail with surprising errors, too. The way to fix this is to do ALTER TABLE DROP CONSTRAINT on the now stand-alone table for each faulty constraint, and then re-add the constraint. If re-adding the constraint fails, then some erroneous data has crept in. You will need to manually re-establish consistency between the referencing and referenced tables, then re-add the constraint. This query can be used to identify broken constraints and construct the commands needed to recreate them: SELECT conrelid::pg_catalog.regclass AS \"constrained table\", conname AS constraint, confrelid::pg_catalog.regclass AS \"references\", pg_catalog.format('ALTER TABLE %s DROP CONSTRAINT %I;', conrelid::pg_catalog.regclass, conname) AS \"drop\", pg_catalog.format('ALTER TABLE %s ADD CONSTRAINT %I %s;', conrelid::pg_catalog.regclass, conname, pg_catalog.pg_get_constraintdef(oid)) AS \"add\" FROM pg_catalog.pg_constraint c WHERE contype = 'f' AND conparentid = 0 AND (SELECT count(*) FROM pg_catalog.pg_constraint c2 WHERE c2.conparentid = c.oid) <> ((SELECT count(*) FROM pg_catalog.pg_inherits i WHERE (i.inhparent = c.conrelid OR i.inhparent = c.confrelid) AND EXISTS (SELECT 1 FROM pg_catalog.pg_partitioned_table WHERE partrelid = i.inhparent)) + CASE WHEN pg_catalog.pg_partition_root(conrelid) = confrelid THEN (SELECT count(*) FROM pg_catalog.pg_partition_tree(confrelid) WHERE level = 1) ELSE 0 END); Since it is possible that one or more of the ADD CONSTRAINT steps will fail, you should save the query's output in a file and then attempt to perform each step.", "commit_aliases": ["1b216fcef", "2aaf2a28b", "2d5fe5140", "46a8c27a7", "53af9491a", "5914a22f6", "5d83bad6b", "936ab6de9", "d20194cea", "f7d510a38"], "source_commits": ["2d5fe5140", "d20194cea"], "source_entry_id": "13.17/changes/005", "db_id": "05faec547b57fcd479d5d3834fbd050e", "patch_ids": ["23f1d10b491a02db8ab57e96c92545eb", "ed2dc06153d479005be94f40dd042561"], "statement_hash": "86082e9ffcfe999a98bf0e5b7bb48f150126be81b185d979806bb20b3809fa03", "relations": [{"rule": 2, "type": "equivalent", "target": "2e62d425855f2ef72a74f21c1ec997db", "evidence": {"same_day": true, "patch_ids": ["23f1d10b491a02db8ab57e96c92545eb", "ed2dc06153d479005be94f40dd042561"], "statement_hash": "86082e9ffcfe999a98bf0e5b7bb48f150126be81b185d979806bb20b3809fa03"}}, {"rule": 2, "type": "equivalent", "target": "748d33942f3736ea94422866a8d7bc90", "evidence": {"same_day": true, "patch_ids": ["23f1d10b491a02db8ab57e96c92545eb", "ed2dc06153d479005be94f40dd042561"], "statement_hash": "86082e9ffcfe999a98bf0e5b7bb48f150126be81b185d979806bb20b3809fa03"}}, {"rule": 2, "type": "equivalent", "target": "876e0bbaabd424006a6c9bb02ee056db", "evidence": {"same_day": true, "patch_ids": ["23f1d10b491a02db8ab57e96c92545eb", "ed2dc06153d479005be94f40dd042561"], "statement_hash": "86082e9ffcfe999a98bf0e5b7bb48f150126be81b185d979806bb20b3809fa03"}}, {"rule": 2, "type": "equivalent", "target": "c371525cbc62547fea8074194d0bbf97", "evidence": {"same_day": true, "patch_ids": ["23f1d10b491a02db8ab57e96c92545eb", "ed2dc06153d479005be94f40dd042561"], "statement_hash": "86082e9ffcfe999a98bf0e5b7bb48f150126be81b185d979806bb20b3809fa03"}}], "version": "13.17", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "748d33942f3736ea94422866a8d7bc90", "kind": "equivalent", "version": "17.1", "label": "17.1", "title": "修复在附加或分离表分区时外键约束的目录状态更新", "evidence": {"same_day": true, "patch_ids": ["23f1d10b491a02db8ab57e96c92545eb", "ed2dc06153d479005be94f40dd042561"], "statement_hash": "86082e9ffcfe999a98bf0e5b7bb48f150126be81b185d979806bb20b3809fa03"}, "url": "/docs/compare/?release=17.1#17.1-3b34b5efc6680e84", "source_url": "/docs/release/17.1/#RELEASE-17-1-CHANGES"}, {"db_id": "2e62d425855f2ef72a74f21c1ec997db", "kind": "equivalent", "version": "16.5", "label": "16.5", "title": "修复在附加或分离表分区时外键约束的目录状态更新", "evidence": {"same_day": true, "patch_ids": ["23f1d10b491a02db8ab57e96c92545eb", "ed2dc06153d479005be94f40dd042561"], "statement_hash": "86082e9ffcfe999a98bf0e5b7bb48f150126be81b185d979806bb20b3809fa03"}, "url": "/docs/compare/?release=16.5#16.5-da80fe139c5ca832", "source_url": "/docs/release/16.5/#RELEASE-16-5-CHANGES"}, {"db_id": "c371525cbc62547fea8074194d0bbf97", "kind": "equivalent", "version": "15.9", "label": "15.9", "title": "修复在附加或分离表分区时外键约束的目录状态更新", "evidence": {"same_day": true, "patch_ids": ["23f1d10b491a02db8ab57e96c92545eb", "ed2dc06153d479005be94f40dd042561"], "statement_hash": "86082e9ffcfe999a98bf0e5b7bb48f150126be81b185d979806bb20b3809fa03"}, "url": "/docs/compare/?release=15.9#15.9-da80fe139c5ca832", "source_url": "/docs/release/15.9/#ZH-AUTO-RELEASE-15-SECT2-18"}, {"db_id": "876e0bbaabd424006a6c9bb02ee056db", "kind": "equivalent", "version": "14.14", "label": "14.14", "title": "修复在附加或分离表分区时外键约束的目录状态更新", "evidence": {"same_day": true, "patch_ids": ["23f1d10b491a02db8ab57e96c92545eb", "ed2dc06153d479005be94f40dd042561"], "statement_hash": "86082e9ffcfe999a98bf0e5b7bb48f150126be81b185d979806bb20b3809fa03"}, "url": "/docs/compare/?release=14.14#14.14-84ee07415a5a9237", "source_url": "/docs/release/14.14/#ZH-AUTO-RELEASE-14-SECT2-18"}]}, {"id": "13.17-d9877c8e8dbf0761", "cves": [], "html": "<p>如果要附加的表具有引用该分区表的外键，则禁止 <code>ALTER TABLE ATTACH PARTITION</code>（Álvaro Herrera）<a href=\"https://postgr.es/c/2ee02c98d\">§</a> <a href=\"https://postgr.es/c/ebbfa2ae3\">§</a></p>\n<p>这种配置不被支持，其他创建方式已经会失败。</p>", "text": "如果要附加的表具有引用该分区表的外键，则禁止 ALTER TABLE ATTACH PARTITION（Álvaro Herrera）§ § 这种配置不被支持，其他创建方式已经会失败。", "title": "如果要附加的表具有引用该分区表的外键，则禁止 ALTER TABLE ATTACH PARTITION", "commits": ["2ee02c98d", "ebbfa2ae3"], "section": "变更", "category": "improvement", "source_url": "/docs/release/13.17/#id-1.11.6.12.5", "source_hash": "cd46ac4afb543ee62b43a5ba44da24485c70ff3aaf3aa954e5ca930045276e5c", "section_path": ["变更"], "commit_groups": [["17ed92e1f", "2ee02c98d", "344f9f5e2", "8c0944ac8", "a90bdd7a4", "ada34d714", "e97121d90"], ["38f506470", "57c8b8726", "a54a5c426", "cae459d11", "ebbfa2ae3"]], "identity_text": "Disallow ALTER TABLE ATTACH PARTITION if the table to be attached has a foreign key referencing the partitioned table (Álvaro Herrera) This arrangement is not supported, and other ways of creating it already fail.", "commit_aliases": ["17ed92e1f", "2ee02c98d", "344f9f5e2", "38f506470", "57c8b8726", "8c0944ac8", "a54a5c426", "a90bdd7a4", "ada34d714", "cae459d11", "e97121d90", "ebbfa2ae3"], "source_commits": ["2ee02c98d", "ebbfa2ae3"], "source_entry_id": "13.17/changes/006", "db_id": "3ef5275da8050889643e46ab6bd1ca07", "patch_ids": ["26534124d026a7bd02c41aa25189696c", "5e6a42c7ca6240cc053de20d236d070e"], "statement_hash": "d11d59378ad7a3ce5ce951fdeed67301496390e5f6101d0b0d55d9f4653a1640", "relations": [{"rule": 2, "type": "equivalent", "target": "05e1ab975855ff2b37339187244b0683", "evidence": {"same_day": true, "patch_ids": ["26534124d026a7bd02c41aa25189696c", "5e6a42c7ca6240cc053de20d236d070e"], "statement_hash": "d11d59378ad7a3ce5ce951fdeed67301496390e5f6101d0b0d55d9f4653a1640"}}, {"rule": 2, "type": "equivalent", "target": "1bb99dd07683f0991c15ade49154ee82", "evidence": {"same_day": true, "patch_ids": ["26534124d026a7bd02c41aa25189696c", "5e6a42c7ca6240cc053de20d236d070e"], "statement_hash": "d11d59378ad7a3ce5ce951fdeed67301496390e5f6101d0b0d55d9f4653a1640"}}, {"rule": 2, "type": "equivalent", "target": "6f7484110ba7fdc4a4f2230481405bbb", "evidence": {"same_day": true, "patch_ids": ["26534124d026a7bd02c41aa25189696c", "5e6a42c7ca6240cc053de20d236d070e"], "statement_hash": "d11d59378ad7a3ce5ce951fdeed67301496390e5f6101d0b0d55d9f4653a1640"}}, {"rule": 2, "type": "equivalent", "target": "d1f7382b7e3180af558acf06f1d2bcf3", "evidence": {"same_day": true, "patch_ids": ["26534124d026a7bd02c41aa25189696c", "5e6a42c7ca6240cc053de20d236d070e"], "statement_hash": "d11d59378ad7a3ce5ce951fdeed67301496390e5f6101d0b0d55d9f4653a1640"}}], "version": "13.17", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "d1f7382b7e3180af558acf06f1d2bcf3", "kind": "equivalent", "version": "16.5", "label": "16.5", "title": "如果要附加的表具有引用该分区表的外键，则禁止 ALTER TABLE ATTACH PARTITION", "evidence": {"same_day": true, "patch_ids": ["26534124d026a7bd02c41aa25189696c", "5e6a42c7ca6240cc053de20d236d070e"], "statement_hash": "d11d59378ad7a3ce5ce951fdeed67301496390e5f6101d0b0d55d9f4653a1640"}, "url": "/docs/compare/?release=16.5#16.5-704d4bb5c7c65e61", "source_url": "/docs/release/16.5/#RELEASE-16-5-CHANGES"}, {"db_id": "6f7484110ba7fdc4a4f2230481405bbb", "kind": "equivalent", "version": "15.9", "label": "15.9", "title": "如果要附加的表具有引用该分区表的外键，则禁止 ALTER TABLE ATTACH PARTITION", "evidence": {"same_day": true, "patch_ids": ["26534124d026a7bd02c41aa25189696c", "5e6a42c7ca6240cc053de20d236d070e"], "statement_hash": "d11d59378ad7a3ce5ce951fdeed67301496390e5f6101d0b0d55d9f4653a1640"}, "url": "/docs/compare/?release=15.9#15.9-43c8ae0b67e9452f", "source_url": "/docs/release/15.9/#ZH-AUTO-RELEASE-15-SECT2-18"}, {"db_id": "05e1ab975855ff2b37339187244b0683", "kind": "equivalent", "version": "14.14", "label": "14.14", "title": "如果要附加的表具有引用该分区表的外键，则禁止 ALTER TABLE ATTACH PARTITION", "evidence": {"same_day": true, "patch_ids": ["26534124d026a7bd02c41aa25189696c", "5e6a42c7ca6240cc053de20d236d070e"], "statement_hash": "d11d59378ad7a3ce5ce951fdeed67301496390e5f6101d0b0d55d9f4653a1640"}, "url": "/docs/compare/?release=14.14#14.14-43c8ae0b67e9452f", "source_url": "/docs/release/14.14/#ZH-AUTO-RELEASE-14-SECT2-18"}, {"db_id": "1bb99dd07683f0991c15ade49154ee82", "kind": "equivalent", "version": "12.21", "label": "12.21", "title": "如果要附加的表具有引用该分区表的外键，则禁止 ALTER TABLE ATTACH PARTITION", "evidence": {"same_day": true, "patch_ids": ["26534124d026a7bd02c41aa25189696c", "5e6a42c7ca6240cc053de20d236d070e"], "statement_hash": "d11d59378ad7a3ce5ce951fdeed67301496390e5f6101d0b0d55d9f4653a1640"}, "url": "/docs/compare/?release=12.21#12.21-477eae579e09426e", "source_url": "/docs/release/12.21/#id-1.11.6.7.6"}]}, {"id": "13.17-b9ea968190d4d09e", "cves": [], "html": "<p>当查询中键列的排序规则与分区键的排序规则不匹配时，不使用分区级连接或分组（Jian He，Webbo Han）<a href=\"https://postgr.es/c/054701a2b\">§</a> <a href=\"https://postgr.es/c/ff65f695c\">§</a></p>\n<p>这样的执行计划可能产生不正确的结果。</p>", "text": "当查询中键列的排序规则与分区键的排序规则不匹配时，不使用分区级连接或分组（Jian He，Webbo Han）§ § 这样的执行计划可能产生不正确的结果。", "title": "当查询中键列的排序规则与分区键的排序规则不匹配时，不使用分区级连接或分组", "commits": ["054701a2b", "ff65f695c"], "section": "变更", "category": "improvement", "source_url": "/docs/release/13.17/#id-1.11.6.12.5", "source_hash": "484e64e4539efabaa0d49bdaafd5b1d4efc3a245d00cda39c8b453d1e12b64d9", "section_path": ["变更"], "commit_groups": [["054701a2b", "075acdd93", "33040b171", "62df5484f", "9c4757491", "a0cdfc889", "f734b6b4d"], ["0a620659c", "46d9be5ef", "90fe6251c", "96f9b29a3", "b6484ca95", "dd2f8ebee", "ff65f695c"]], "identity_text": "Don't use partitionwise joins or grouping if the query's collation for the key column doesn't match the partition key's collation (Jian He, Webbo Han) Such plans could produce incorrect results.", "commit_aliases": ["054701a2b", "075acdd93", "0a620659c", "33040b171", "46d9be5ef", "62df5484f", "90fe6251c", "96f9b29a3", "9c4757491", "a0cdfc889", "b6484ca95", "dd2f8ebee", "f734b6b4d", "ff65f695c"], "source_commits": ["054701a2b", "ff65f695c"], "source_entry_id": "13.17/changes/007", "db_id": "97084b07a26e28d94fdf228d94460f63", "patch_ids": ["53c85220dd3488287a3c68a4008b4e8d", "77fd1bde27634394090ee891d7579f1e"], "statement_hash": "1eb1116b9e982b95403ab2910d839e7e5699beec39e01affdecbe6a60de4283b", "relations": [{"rule": 2, "type": "equivalent", "target": "2ef513eca41dc1e5b7f619bb844c48c4", "evidence": {"same_day": true, "patch_ids": ["53c85220dd3488287a3c68a4008b4e8d", "77fd1bde27634394090ee891d7579f1e"], "statement_hash": "1eb1116b9e982b95403ab2910d839e7e5699beec39e01affdecbe6a60de4283b"}}, {"rule": 2, "type": "equivalent", "target": "627f4d65ab84d4ed8aa805e9a4e5c849", "evidence": {"same_day": true, "patch_ids": ["53c85220dd3488287a3c68a4008b4e8d", "77fd1bde27634394090ee891d7579f1e"], "statement_hash": "1eb1116b9e982b95403ab2910d839e7e5699beec39e01affdecbe6a60de4283b"}}, {"rule": 2, "type": "equivalent", "target": "cf9cca4c2bbd52000591f7989aa5d6a1", "evidence": {"same_day": true, "patch_ids": ["53c85220dd3488287a3c68a4008b4e8d", "77fd1bde27634394090ee891d7579f1e"], "statement_hash": "1eb1116b9e982b95403ab2910d839e7e5699beec39e01affdecbe6a60de4283b"}}, {"rule": 2, "type": "equivalent", "target": "ee502d77983c018bbc01ab92640da315", "evidence": {"same_day": true, "patch_ids": ["53c85220dd3488287a3c68a4008b4e8d", "77fd1bde27634394090ee891d7579f1e"], "statement_hash": "1eb1116b9e982b95403ab2910d839e7e5699beec39e01affdecbe6a60de4283b"}}, {"rule": 2, "type": "equivalent", "target": "fa1ae7acee5e324651d15e2e1046939b", "evidence": {"same_day": true, "patch_ids": ["53c85220dd3488287a3c68a4008b4e8d", "77fd1bde27634394090ee891d7579f1e"], "statement_hash": "1eb1116b9e982b95403ab2910d839e7e5699beec39e01affdecbe6a60de4283b"}}], "version": "13.17", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "2ef513eca41dc1e5b7f619bb844c48c4", "kind": "equivalent", "version": "17.1", "label": "17.1", "title": "当查询中键列的排序规则与分区键的排序规则不匹配时，不使用分区级连接或分组", "evidence": {"same_day": true, "patch_ids": ["53c85220dd3488287a3c68a4008b4e8d", "77fd1bde27634394090ee891d7579f1e"], "statement_hash": "1eb1116b9e982b95403ab2910d839e7e5699beec39e01affdecbe6a60de4283b"}, "url": "/docs/compare/?release=17.1#17.1-068ad9165df3c428", "source_url": "/docs/release/17.1/#RELEASE-17-1-CHANGES"}, {"db_id": "cf9cca4c2bbd52000591f7989aa5d6a1", "kind": "equivalent", "version": "16.5", "label": "16.5", "title": "当查询中键列的排序规则与分区键的排序规则不匹配时，不使用分区级连接或分组", "evidence": {"same_day": true, "patch_ids": ["53c85220dd3488287a3c68a4008b4e8d", "77fd1bde27634394090ee891d7579f1e"], "statement_hash": "1eb1116b9e982b95403ab2910d839e7e5699beec39e01affdecbe6a60de4283b"}, "url": "/docs/compare/?release=16.5#16.5-5f8a220ad7c1cc27", "source_url": "/docs/release/16.5/#RELEASE-16-5-CHANGES"}, {"db_id": "fa1ae7acee5e324651d15e2e1046939b", "kind": "equivalent", "version": "15.9", "label": "15.9", "title": "当查询中键列的排序规则与分区键的排序规则不匹配时，不使用分区级连接或分组", "evidence": {"same_day": true, "patch_ids": ["53c85220dd3488287a3c68a4008b4e8d", "77fd1bde27634394090ee891d7579f1e"], "statement_hash": "1eb1116b9e982b95403ab2910d839e7e5699beec39e01affdecbe6a60de4283b"}, "url": "/docs/compare/?release=15.9#15.9-8ebf3b7cfddc2170", "source_url": "/docs/release/15.9/#ZH-AUTO-RELEASE-15-SECT2-18"}, {"db_id": "627f4d65ab84d4ed8aa805e9a4e5c849", "kind": "equivalent", "version": "14.14", "label": "14.14", "title": "当查询中键列的排序规则与分区键的排序规则不匹配时，不使用分区级连接或分组", "evidence": {"same_day": true, "patch_ids": ["53c85220dd3488287a3c68a4008b4e8d", "77fd1bde27634394090ee891d7579f1e"], "statement_hash": "1eb1116b9e982b95403ab2910d839e7e5699beec39e01affdecbe6a60de4283b"}, "url": "/docs/compare/?release=14.14#14.14-8ebf3b7cfddc2170", "source_url": "/docs/release/14.14/#ZH-AUTO-RELEASE-14-SECT2-18"}, {"db_id": "ee502d77983c018bbc01ab92640da315", "kind": "equivalent", "version": "12.21", "label": "12.21", "title": "当查询中键列的排序规则与分区键的排序规则不匹配时，不使用分区级连接或分组", "evidence": {"same_day": true, "patch_ids": ["53c85220dd3488287a3c68a4008b4e8d", "77fd1bde27634394090ee891d7579f1e"], "statement_hash": "1eb1116b9e982b95403ab2910d839e7e5699beec39e01affdecbe6a60de4283b"}, "url": "/docs/compare/?release=12.21#12.21-77ba4c09c5b839fb", "source_url": "/docs/release/12.21/#id-1.11.6.7.6"}]}, {"id": "13.17-efb0a0d37ad61667", "cves": [], "html": "<p>修复当 <code>UNION ALL</code> 成员查询的输出需要排序，且排序列为表达式时，可能出现的 <span>“<span>could not find pathkey item to sort</span>”</span> 错误（Andrei Lepikhov，Tom Lane）<a href=\"https://postgr.es/c/76de4b182\">§</a></p>", "text": "修复当 UNION ALL 成员查询的输出需要排序，且排序列为表达式时，可能出现的 “could not find pathkey item to sort” 错误（Andrei Lepikhov，Tom Lane）§", "title": "修复当 UNION ALL 成员查询的输出需要排序，且排序列为表达式时，可能出现的 “could not find pathkey item to sort” 错误", "commits": ["76de4b182"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/13.17/#id-1.11.6.12.5", "source_hash": "a71bb297b500dad89ef9100260f8dda6bd58c9b8b3892b5605f76d6d8deacca4", "section_path": ["变更"], "commit_groups": [["4ca708eb3", "4f3bccbaa", "54889ea64", "64635c8af", "76de4b182", "9f954177b"]], "identity_text": "Fix possible could not find pathkey item to sort error when the output of a UNION ALL member query needs to be sorted, and the sort column is an expression (Andrei Lepikhov, Tom Lane)", "commit_aliases": ["4ca708eb3", "4f3bccbaa", "54889ea64", "64635c8af", "76de4b182", "9f954177b"], "source_commits": ["76de4b182"], "source_entry_id": "13.17/changes/008", "db_id": "ca2eee005279ddc6420fd718cf7a897a", "patch_ids": ["851fca37ceef957abb601c18faa263b5"], "statement_hash": "afa400b024db10207e61464eb9b9dd7d142af55b749abd50764fd1bc68e7cb60", "relations": [{"rule": 2, "type": "equivalent", "target": "78d8af16e96b804627c6aa71fc3b7bfd", "evidence": {"same_day": true, "patch_ids": ["851fca37ceef957abb601c18faa263b5"], "statement_hash": "afa400b024db10207e61464eb9b9dd7d142af55b749abd50764fd1bc68e7cb60"}}, {"rule": 2, "type": "equivalent", "target": "cee14d7708f551fdd0d1b77687c63987", "evidence": {"same_day": true, "patch_ids": ["851fca37ceef957abb601c18faa263b5"], "statement_hash": "afa400b024db10207e61464eb9b9dd7d142af55b749abd50764fd1bc68e7cb60"}}, {"rule": 2, "type": "equivalent", "target": "d58826be74b98e827838dbb875a238b3", "evidence": {"same_day": true, "patch_ids": ["851fca37ceef957abb601c18faa263b5"], "statement_hash": "afa400b024db10207e61464eb9b9dd7d142af55b749abd50764fd1bc68e7cb60"}}, {"rule": 2, "type": "equivalent", "target": "e8a3a31febb736280206edb58844057a", "evidence": {"same_day": true, "patch_ids": ["851fca37ceef957abb601c18faa263b5"], "statement_hash": "afa400b024db10207e61464eb9b9dd7d142af55b749abd50764fd1bc68e7cb60"}}], "version": "13.17", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "cee14d7708f551fdd0d1b77687c63987", "kind": "equivalent", "version": "17.1", "label": "17.1", "title": "修复当 UNION ALL 成员查询的输出需要排序，且排序列为表达式时，可能出现的 “could not find pathkey item to sort” 错误", "evidence": {"same_day": true, "patch_ids": ["851fca37ceef957abb601c18faa263b5"], "statement_hash": "afa400b024db10207e61464eb9b9dd7d142af55b749abd50764fd1bc68e7cb60"}, "url": "/docs/compare/?release=17.1#17.1-10bcbc67bced25f2", "source_url": "/docs/release/17.1/#RELEASE-17-1-CHANGES"}, {"db_id": "78d8af16e96b804627c6aa71fc3b7bfd", "kind": "equivalent", "version": "16.5", "label": "16.5", "title": "修复当 UNION ALL 成员查询的输出需要排序，且排序列为表达式时，可能出现的 “could not find pathkey item to sort” 错误", "evidence": {"same_day": true, "patch_ids": ["851fca37ceef957abb601c18faa263b5"], "statement_hash": "afa400b024db10207e61464eb9b9dd7d142af55b749abd50764fd1bc68e7cb60"}, "url": "/docs/compare/?release=16.5#16.5-3442c0bcef2d3f7e", "source_url": "/docs/release/16.5/#RELEASE-16-5-CHANGES"}, {"db_id": "e8a3a31febb736280206edb58844057a", "kind": "equivalent", "version": "15.9", "label": "15.9", "title": "修复当 UNION ALL 成员查询的输出需要排序，且排序列为表达式时，可能出现的 “could not find pathkey item to sort” 错误", "evidence": {"same_day": true, "patch_ids": ["851fca37ceef957abb601c18faa263b5"], "statement_hash": "afa400b024db10207e61464eb9b9dd7d142af55b749abd50764fd1bc68e7cb60"}, "url": "/docs/compare/?release=15.9#15.9-ca8577e9b6c5e871", "source_url": "/docs/release/15.9/#ZH-AUTO-RELEASE-15-SECT2-18"}, {"db_id": "d58826be74b98e827838dbb875a238b3", "kind": "equivalent", "version": "14.14", "label": "14.14", "title": "修复当 UNION ALL 成员查询的输出需要排序，且排序列为表达式时，可能出现的 “could not find pathkey item to sort” 错误", "evidence": {"same_day": true, "patch_ids": ["851fca37ceef957abb601c18faa263b5"], "statement_hash": "afa400b024db10207e61464eb9b9dd7d142af55b749abd50764fd1bc68e7cb60"}, "url": "/docs/compare/?release=14.14#14.14-ca8577e9b6c5e871", "source_url": "/docs/release/14.14/#ZH-AUTO-RELEASE-14-SECT2-18"}]}, {"id": "13.17-4fdea91072d659b8", "cves": [], "html": "<p>允许取消大型 hash 索引构建第二阶段的操作（Pavel Borisov）<a href=\"https://postgr.es/c/b27215dbb\">§</a></p>", "text": "允许取消大型 hash 索引构建第二阶段的操作（Pavel Borisov）§", "title": "允许取消大型 hash 索引构建第二阶段的操作", "commits": ["b27215dbb"], "section": "变更", "category": "improvement", "source_url": "/docs/release/13.17/#id-1.11.6.12.5", "source_hash": "18d0bd7780ec1c40a7d1fadf238257868088856e43882658a507ab75c088c15c", "section_path": ["变更"], "commit_groups": [["418c6a2c7", "813ade548", "b27215dbb", "b49013f2e", "d23109f4b", "e0857898b", "fae55f0bb"]], "identity_text": "Allow cancellation of the second stage of index build for large hash indexes (Pavel Borisov)", "commit_aliases": ["418c6a2c7", "813ade548", "b27215dbb", "b49013f2e", "d23109f4b", "e0857898b", "fae55f0bb"], "source_commits": ["b27215dbb"], "source_entry_id": "13.17/changes/009", "db_id": "26bec80c41216ba0d9b86e27f74e0d86", "patch_ids": ["357c33010c6794e2ea9a97e21f6ec180"], "statement_hash": "c1ae224c9d0a0978da1699bc0686d1cffed701895de5fcf3a743e1d2275ebaf9", "relations": [{"rule": 2, "type": "equivalent", "target": "5048ec52b48f1202a06b5f02a10e935d", "evidence": {"same_day": true, "patch_ids": ["357c33010c6794e2ea9a97e21f6ec180"], "statement_hash": "c1ae224c9d0a0978da1699bc0686d1cffed701895de5fcf3a743e1d2275ebaf9"}}, {"rule": 2, "type": "equivalent", "target": "d0c422d2da3c5396208196b5099adf32", "evidence": {"same_day": true, "patch_ids": ["357c33010c6794e2ea9a97e21f6ec180"], "statement_hash": "c1ae224c9d0a0978da1699bc0686d1cffed701895de5fcf3a743e1d2275ebaf9"}}, {"rule": 2, "type": "equivalent", "target": "d6c9d693487a306135f91e07c816e32d", "evidence": {"same_day": true, "patch_ids": ["357c33010c6794e2ea9a97e21f6ec180"], "statement_hash": "c1ae224c9d0a0978da1699bc0686d1cffed701895de5fcf3a743e1d2275ebaf9"}}, {"rule": 2, "type": "equivalent", "target": "eecbf747c1063772bdabd7a37b1610bc", "evidence": {"same_day": true, "patch_ids": ["357c33010c6794e2ea9a97e21f6ec180"], "statement_hash": "c1ae224c9d0a0978da1699bc0686d1cffed701895de5fcf3a743e1d2275ebaf9"}}], "version": "13.17", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "d6c9d693487a306135f91e07c816e32d", "kind": "equivalent", "version": "16.5", "label": "16.5", "title": "允许取消大型 hash 索引构建第二阶段的操作", "evidence": {"same_day": true, "patch_ids": ["357c33010c6794e2ea9a97e21f6ec180"], "statement_hash": "c1ae224c9d0a0978da1699bc0686d1cffed701895de5fcf3a743e1d2275ebaf9"}, "url": "/docs/compare/?release=16.5#16.5-c79d2256c0960a37", "source_url": "/docs/release/16.5/#RELEASE-16-5-CHANGES"}, {"db_id": "d0c422d2da3c5396208196b5099adf32", "kind": "equivalent", "version": "15.9", "label": "15.9", "title": "允许取消大型 hash 索引构建第二阶段的操作", "evidence": {"same_day": true, "patch_ids": ["357c33010c6794e2ea9a97e21f6ec180"], "statement_hash": "c1ae224c9d0a0978da1699bc0686d1cffed701895de5fcf3a743e1d2275ebaf9"}, "url": "/docs/compare/?release=15.9#15.9-6db3ad9188c6ce8d", "source_url": "/docs/release/15.9/#ZH-AUTO-RELEASE-15-SECT2-18"}, {"db_id": "eecbf747c1063772bdabd7a37b1610bc", "kind": "equivalent", "version": "14.14", "label": "14.14", "title": "允许取消大型 hash 索引构建第二阶段的操作", "evidence": {"same_day": true, "patch_ids": ["357c33010c6794e2ea9a97e21f6ec180"], "statement_hash": "c1ae224c9d0a0978da1699bc0686d1cffed701895de5fcf3a743e1d2275ebaf9"}, "url": "/docs/compare/?release=14.14#14.14-6db3ad9188c6ce8d", "source_url": "/docs/release/14.14/#ZH-AUTO-RELEASE-14-SECT2-18"}, {"db_id": "5048ec52b48f1202a06b5f02a10e935d", "kind": "equivalent", "version": "12.21", "label": "12.21", "title": "允许取消大型 hash 索引构建第二阶段的操作", "evidence": {"same_day": true, "patch_ids": ["357c33010c6794e2ea9a97e21f6ec180"], "statement_hash": "c1ae224c9d0a0978da1699bc0686d1cffed701895de5fcf3a743e1d2275ebaf9"}, "url": "/docs/compare/?release=12.21#12.21-269b91135c62907d", "source_url": "/docs/release/12.21/#id-1.11.6.7.6"}]}, {"id": "13.17-5fb93fb0ee8ca05b", "cves": [], "html": "<p>修复 <code>COPY (<em><code>query</code></em>) TO ...</code> 中的断言失败或令人困惑的错误消息，当 <em><code>query</code></em> 被 <code>DO INSTEAD NOTIFY</code> 规则重写时（Tender Wang，Tom Lane）<a href=\"https://postgr.es/c/beab395a4\">§</a></p>", "text": "修复 COPY (query) TO ... 中的断言失败或令人困惑的错误消息，当 query 被 DO INSTEAD NOTIFY 规则重写时（Tender Wang，Tom Lane）§", "title": "修复 COPY (query) TO ... 中的断言失败或令人困惑的错误消息，当 query 被 DO INSTEAD NOTIFY 规则重写时", "commits": ["beab395a4"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/13.17/#id-1.11.6.12.5", "source_hash": "554d6fd4a8f8f8721c57625f6b073ce12bfda9d569788789052ddf1422039284", "section_path": ["变更"], "commit_groups": [["3685ad618", "5e94f616c", "68ad9816c", "6a57a457c", "6c3b2d204", "beab395a4", "c80a1e048"]], "identity_text": "Fix assertion failure or confusing error message for COPY (query) TO ..., when the query is rewritten by a DO INSTEAD NOTIFY rule (Tender Wang, Tom Lane)", "commit_aliases": ["3685ad618", "5e94f616c", "68ad9816c", "6a57a457c", "6c3b2d204", "beab395a4", "c80a1e048"], "source_commits": ["beab395a4"], "source_entry_id": "13.17/changes/010", "db_id": "774c30d3167cc04d5c0d9c1f499874d4", "patch_ids": ["9e6edee75f519a17ae85b3d74f29066d"], "statement_hash": "f76efad6a1200651434e7559fafcf67c584e31fbb14732fafabf39c5020b7d74", "relations": [{"rule": 2, "type": "equivalent", "target": "4164513d723b4a8d82303cc7b6f6bf52", "evidence": {"same_day": true, "patch_ids": ["9e6edee75f519a17ae85b3d74f29066d"], "statement_hash": "f76efad6a1200651434e7559fafcf67c584e31fbb14732fafabf39c5020b7d74"}}, {"rule": 2, "type": "equivalent", "target": "54e4681cc9f3a4699d374b15ebaebf9a", "evidence": {"same_day": true, "patch_ids": ["9e6edee75f519a17ae85b3d74f29066d"], "statement_hash": "f76efad6a1200651434e7559fafcf67c584e31fbb14732fafabf39c5020b7d74"}}, {"rule": 2, "type": "equivalent", "target": "83485ef02bbc0c01b4b407ab922cc34b", "evidence": {"same_day": true, "patch_ids": ["9e6edee75f519a17ae85b3d74f29066d"], "statement_hash": "f76efad6a1200651434e7559fafcf67c584e31fbb14732fafabf39c5020b7d74"}}, {"rule": 2, "type": "equivalent", "target": "86ef642b3ead7de535851b9f33134f73", "evidence": {"same_day": true, "patch_ids": ["9e6edee75f519a17ae85b3d74f29066d"], "statement_hash": "f76efad6a1200651434e7559fafcf67c584e31fbb14732fafabf39c5020b7d74"}}, {"rule": 2, "type": "equivalent", "target": "cb2aad1f1ce1b4266ea310af2b16064b", "evidence": {"same_day": true, "patch_ids": ["9e6edee75f519a17ae85b3d74f29066d"], "statement_hash": "f76efad6a1200651434e7559fafcf67c584e31fbb14732fafabf39c5020b7d74"}}], "version": "13.17", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "54e4681cc9f3a4699d374b15ebaebf9a", "kind": "equivalent", "version": "17.1", "label": "17.1", "title": "修复 COPY (query) TO ... 中的断言失败或令人困惑的错误消息，当 query 被 DO INSTEAD NOTIFY 规则重写时", "evidence": {"same_day": true, "patch_ids": ["9e6edee75f519a17ae85b3d74f29066d"], "statement_hash": "f76efad6a1200651434e7559fafcf67c584e31fbb14732fafabf39c5020b7d74"}, "url": "/docs/compare/?release=17.1#17.1-ef0f21203944cfe0", "source_url": "/docs/release/17.1/#RELEASE-17-1-CHANGES"}, {"db_id": "4164513d723b4a8d82303cc7b6f6bf52", "kind": "equivalent", "version": "16.5", "label": "16.5", "title": "修复 COPY (query) TO ... 中的断言失败或令人困惑的错误消息，当 query 被 DO INSTEAD NOTIFY 规则重写时", "evidence": {"same_day": true, "patch_ids": ["9e6edee75f519a17ae85b3d74f29066d"], "statement_hash": "f76efad6a1200651434e7559fafcf67c584e31fbb14732fafabf39c5020b7d74"}, "url": "/docs/compare/?release=16.5#16.5-3b984973784dc595", "source_url": "/docs/release/16.5/#RELEASE-16-5-CHANGES"}, {"db_id": "86ef642b3ead7de535851b9f33134f73", "kind": "equivalent", "version": "15.9", "label": "15.9", "title": "修复 COPY (query) TO ... 中的断言失败或令人困惑的错误消息，当 query 被 DO INSTEAD NOTIFY 规则重写时", "evidence": {"same_day": true, "patch_ids": ["9e6edee75f519a17ae85b3d74f29066d"], "statement_hash": "f76efad6a1200651434e7559fafcf67c584e31fbb14732fafabf39c5020b7d74"}, "url": "/docs/compare/?release=15.9#15.9-bc8526feff92fb55", "source_url": "/docs/release/15.9/#ZH-AUTO-RELEASE-15-SECT2-18"}, {"db_id": "83485ef02bbc0c01b4b407ab922cc34b", "kind": "equivalent", "version": "14.14", "label": "14.14", "title": "修复 COPY (query) TO ... 中的断言失败或令人困惑的错误消息，当 query 被 DO INSTEAD NOTIFY 规则重写时", "evidence": {"same_day": true, "patch_ids": ["9e6edee75f519a17ae85b3d74f29066d"], "statement_hash": "f76efad6a1200651434e7559fafcf67c584e31fbb14732fafabf39c5020b7d74"}, "url": "/docs/compare/?release=14.14#14.14-bc8526feff92fb55", "source_url": "/docs/release/14.14/#ZH-AUTO-RELEASE-14-SECT2-18"}, {"db_id": "cb2aad1f1ce1b4266ea310af2b16064b", "kind": "equivalent", "version": "12.21", "label": "12.21", "title": "修复 COPY (query) TO ... 中的断言失败或令人困惑的错误消息，当 query 被 DO INSTEAD NOTIFY 规则重写时", "evidence": {"same_day": true, "patch_ids": ["9e6edee75f519a17ae85b3d74f29066d"], "statement_hash": "f76efad6a1200651434e7559fafcf67c584e31fbb14732fafabf39c5020b7d74"}, "url": "/docs/compare/?release=12.21#12.21-481b27b62c098efd", "source_url": "/docs/release/12.21/#id-1.11.6.7.6"}]}, {"id": "13.17-e6044003af017b6b", "cves": [], "html": "<p>修复并行哈希连接中倾斜数据的检测（Thomas Munro）<a href=\"https://postgr.es/c/45329466f\">§</a></p>\n<p>在对哈希连接的内侧进行重新分区（因为某个分区累积了过多元组）之后，我们会检查该分区的所有元组是否都进入了同一个子分区，这表明它们都具有相同的 hash 值，进一步重新分区无法改善情况。此检查在某些情况下出现故障，允许重复进行无效的重新分区，最终导致资源耗尽错误。</p>", "text": "修复并行哈希连接中倾斜数据的检测（Thomas Munro）§ 在对哈希连接的内侧进行重新分区（因为某个分区累积了过多元组）之后，我们会检查该分区的所有元组是否都进入了同一个子分区，这表明它们都具有相同的 hash 值，进一步重新分区无法改善情况。此检查在某些情况下出现故障，允许重复进行无效的重新分区，最终导致资源耗尽错误。", "title": "修复并行哈希连接中倾斜数据的检测", "commits": ["45329466f"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/13.17/#id-1.11.6.12.5", "source_hash": "0c8cb725531b1ebc61e5c518f6ce6cbc2fdef04d1068d0804a1c16776994e6f9", "section_path": ["变更"], "commit_groups": [["1831545ca", "20d948994", "45329466f", "4ac5d33a8", "4fa80a6d7", "53edc9485", "98c7c7152"]], "identity_text": "Fix detection of skewed data during parallel hash join (Thomas Munro) After repartitioning the inner side of a hash join because one partition has accumulated too many tuples, we check to see if all the partition's tuples went into the same child partition, which suggests that they all have the same hash value and further repartitioning cannot improve matters. This check malfunctioned in some cases, allowing repeated futile repartitioning which would eventually end in a resource-exhaustion error.", "commit_aliases": ["1831545ca", "20d948994", "45329466f", "4ac5d33a8", "4fa80a6d7", "53edc9485", "98c7c7152"], "source_commits": ["45329466f"], "source_entry_id": "13.17/changes/011", "db_id": "03ee90d315a15e51dce8adcb971d89f1", "patch_ids": ["7362d49781c8e327ea7028e1016e585a"], "statement_hash": "fa6804a4a344918b582b6ac7902d741b5ac887f9ad98549ab7d9385fef747aca", "relations": [{"rule": 2, "type": "equivalent", "target": "048fdbfa8e9162623b00f1d70e94b6ac", "evidence": {"same_day": true, "patch_ids": ["7362d49781c8e327ea7028e1016e585a"], "statement_hash": "fa6804a4a344918b582b6ac7902d741b5ac887f9ad98549ab7d9385fef747aca"}}, {"rule": 2, "type": "equivalent", "target": "a96042f3ea4378e7a4b4b4338d73d449", "evidence": {"same_day": true, "patch_ids": ["7362d49781c8e327ea7028e1016e585a"], "statement_hash": "fa6804a4a344918b582b6ac7902d741b5ac887f9ad98549ab7d9385fef747aca"}}, {"rule": 2, "type": "equivalent", "target": "b05be16ba65111ded4a1d3c19fdb9312", "evidence": {"same_day": true, "patch_ids": ["7362d49781c8e327ea7028e1016e585a"], "statement_hash": "fa6804a4a344918b582b6ac7902d741b5ac887f9ad98549ab7d9385fef747aca"}}, {"rule": 2, "type": "equivalent", "target": "e30b28541dd86d403967862c42bc08f9", "evidence": {"same_day": true, "patch_ids": ["7362d49781c8e327ea7028e1016e585a"], "statement_hash": "fa6804a4a344918b582b6ac7902d741b5ac887f9ad98549ab7d9385fef747aca"}}, {"rule": 2, "type": "equivalent", "target": "fa86fc8bc18de09fe710b60de685febf", "evidence": {"same_day": true, "patch_ids": ["7362d49781c8e327ea7028e1016e585a"], "statement_hash": "fa6804a4a344918b582b6ac7902d741b5ac887f9ad98549ab7d9385fef747aca"}}], "version": "13.17", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "e30b28541dd86d403967862c42bc08f9", "kind": "equivalent", "version": "17.1", "label": "17.1", "title": "修复并行哈希连接中倾斜数据的检测", "evidence": {"same_day": true, "patch_ids": ["7362d49781c8e327ea7028e1016e585a"], "statement_hash": "fa6804a4a344918b582b6ac7902d741b5ac887f9ad98549ab7d9385fef747aca"}, "url": "/docs/compare/?release=17.1#17.1-1201638a8dc57296", "source_url": "/docs/release/17.1/#RELEASE-17-1-CHANGES"}, {"db_id": "a96042f3ea4378e7a4b4b4338d73d449", "kind": "equivalent", "version": "16.5", "label": "16.5", "title": "修复并行哈希连接中倾斜数据的检测", "evidence": {"same_day": true, "patch_ids": ["7362d49781c8e327ea7028e1016e585a"], "statement_hash": "fa6804a4a344918b582b6ac7902d741b5ac887f9ad98549ab7d9385fef747aca"}, "url": "/docs/compare/?release=16.5#16.5-ffd53f421ada5fe4", "source_url": "/docs/release/16.5/#RELEASE-16-5-CHANGES"}, {"db_id": "fa86fc8bc18de09fe710b60de685febf", "kind": "equivalent", "version": "15.9", "label": "15.9", "title": "修复并行哈希连接中倾斜数据的检测", "evidence": {"same_day": true, "patch_ids": ["7362d49781c8e327ea7028e1016e585a"], "statement_hash": "fa6804a4a344918b582b6ac7902d741b5ac887f9ad98549ab7d9385fef747aca"}, "url": "/docs/compare/?release=15.9#15.9-155d262faf162f65", "source_url": "/docs/release/15.9/#ZH-AUTO-RELEASE-15-SECT2-18"}, {"db_id": "b05be16ba65111ded4a1d3c19fdb9312", "kind": "equivalent", "version": "14.14", "label": "14.14", "title": "修复并行哈希连接中倾斜数据的检测", "evidence": {"same_day": true, "patch_ids": ["7362d49781c8e327ea7028e1016e585a"], "statement_hash": "fa6804a4a344918b582b6ac7902d741b5ac887f9ad98549ab7d9385fef747aca"}, "url": "/docs/compare/?release=14.14#14.14-155d262faf162f65", "source_url": "/docs/release/14.14/#ZH-AUTO-RELEASE-14-SECT2-18"}, {"db_id": "048fdbfa8e9162623b00f1d70e94b6ac", "kind": "equivalent", "version": "12.21", "label": "12.21", "title": "修复并行哈希连接中倾斜数据的检测", "evidence": {"same_day": true, "patch_ids": ["7362d49781c8e327ea7028e1016e585a"], "statement_hash": "fa6804a4a344918b582b6ac7902d741b5ac887f9ad98549ab7d9385fef747aca"}, "url": "/docs/compare/?release=12.21#12.21-73d99a8f643a7855", "source_url": "/docs/release/12.21/#id-1.11.6.7.6"}]}, {"id": "13.17-931669dbd60ef42e", "cves": [], "html": "<p>修复提交可串行化事务时的竞态条件（Heikki Linnakangas）<a href=\"https://postgr.es/c/8e607a5a4\">§</a></p>\n<p>对最近提交的事务的错误处理可能导致断言失败或 <span>“<span>could not access status of transaction</span>”</span> 错误。</p>", "text": "修复提交可串行化事务时的竞态条件（Heikki Linnakangas）§ 对最近提交的事务的错误处理可能导致断言失败或 “could not access status of transaction” 错误。", "title": "修复提交可串行化事务时的竞态条件", "commits": ["8e607a5a4"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/13.17/#id-1.11.6.12.5", "source_hash": "d69238867a6323ecddf79a386ebe8ecae3a839289c558384936a65aee40c3593", "section_path": ["变更"], "commit_groups": [["1a43de5e0", "22665f210", "234f6d09e", "520ec2474", "8e607a5a4", "d97419b85", "e2ec3afeb"]], "identity_text": "Fix race condition in committing a serializable transaction (Heikki Linnakangas) Mis-processing of a recently committed transaction could lead to an assertion failure or a could not access status of transaction error.", "commit_aliases": ["1a43de5e0", "22665f210", "234f6d09e", "520ec2474", "8e607a5a4", "d97419b85", "e2ec3afeb"], "source_commits": ["8e607a5a4"], "source_entry_id": "13.17/changes/012", "db_id": "9d7aef7128d747f9da974e84661075b5", "patch_ids": ["50ee9517aec4d41dcce331b3b6ce522b"], "statement_hash": "b5d2ea04c0310cbcc15167692a36d7b1bf670c6b55bc6b9f9fd87d19f0f9841f", "relations": [{"rule": 2, "type": "equivalent", "target": "27eb3d253909c90211a31b92e07b5435", "evidence": {"same_day": true, "patch_ids": ["50ee9517aec4d41dcce331b3b6ce522b"], "statement_hash": "b5d2ea04c0310cbcc15167692a36d7b1bf670c6b55bc6b9f9fd87d19f0f9841f"}}, {"rule": 2, "type": "equivalent", "target": "2f2fe7df64cf13ea880ead2a8d3d62e9", "evidence": {"same_day": true, "patch_ids": ["50ee9517aec4d41dcce331b3b6ce522b"], "statement_hash": "b5d2ea04c0310cbcc15167692a36d7b1bf670c6b55bc6b9f9fd87d19f0f9841f"}}, {"rule": 2, "type": "equivalent", "target": "380c69c0cf382608fe08f3d07bad3f89", "evidence": {"same_day": true, "patch_ids": ["50ee9517aec4d41dcce331b3b6ce522b"], "statement_hash": "b5d2ea04c0310cbcc15167692a36d7b1bf670c6b55bc6b9f9fd87d19f0f9841f"}}, {"rule": 2, "type": "equivalent", "target": "aa302a2149b51d8fa114ce51bd412401", "evidence": {"same_day": true, "patch_ids": ["50ee9517aec4d41dcce331b3b6ce522b"], "statement_hash": "b5d2ea04c0310cbcc15167692a36d7b1bf670c6b55bc6b9f9fd87d19f0f9841f"}}, {"rule": 2, "type": "equivalent", "target": "c64ee6e02d4ad8836d4e6457c472a782", "evidence": {"same_day": true, "patch_ids": ["50ee9517aec4d41dcce331b3b6ce522b"], "statement_hash": "b5d2ea04c0310cbcc15167692a36d7b1bf670c6b55bc6b9f9fd87d19f0f9841f"}}], "version": "13.17", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "27eb3d253909c90211a31b92e07b5435", "kind": "equivalent", "version": "17.1", "label": "17.1", "title": "修复提交可串行化事务时的竞态条件", "evidence": {"same_day": true, "patch_ids": ["50ee9517aec4d41dcce331b3b6ce522b"], "statement_hash": "b5d2ea04c0310cbcc15167692a36d7b1bf670c6b55bc6b9f9fd87d19f0f9841f"}, "url": "/docs/compare/?release=17.1#17.1-ecfde73d7e43d4db", "source_url": "/docs/release/17.1/#RELEASE-17-1-CHANGES"}, {"db_id": "380c69c0cf382608fe08f3d07bad3f89", "kind": "equivalent", "version": "16.5", "label": "16.5", "title": "修复提交可串行化事务时的竞态条件", "evidence": {"same_day": true, "patch_ids": ["50ee9517aec4d41dcce331b3b6ce522b"], "statement_hash": "b5d2ea04c0310cbcc15167692a36d7b1bf670c6b55bc6b9f9fd87d19f0f9841f"}, "url": "/docs/compare/?release=16.5#16.5-6e05c8fb8dbf997f", "source_url": "/docs/release/16.5/#RELEASE-16-5-CHANGES"}, {"db_id": "2f2fe7df64cf13ea880ead2a8d3d62e9", "kind": "equivalent", "version": "15.9", "label": "15.9", "title": "修复提交可串行化事务时的竞态条件", "evidence": {"same_day": true, "patch_ids": ["50ee9517aec4d41dcce331b3b6ce522b"], "statement_hash": "b5d2ea04c0310cbcc15167692a36d7b1bf670c6b55bc6b9f9fd87d19f0f9841f"}, "url": "/docs/compare/?release=15.9#15.9-7f680ba4913bffb0", "source_url": "/docs/release/15.9/#ZH-AUTO-RELEASE-15-SECT2-18"}, {"db_id": "c64ee6e02d4ad8836d4e6457c472a782", "kind": "equivalent", "version": "14.14", "label": "14.14", "title": "修复提交可串行化事务时的竞态条件", "evidence": {"same_day": true, "patch_ids": ["50ee9517aec4d41dcce331b3b6ce522b"], "statement_hash": "b5d2ea04c0310cbcc15167692a36d7b1bf670c6b55bc6b9f9fd87d19f0f9841f"}, "url": "/docs/compare/?release=14.14#14.14-46c1b12f7598344b", "source_url": "/docs/release/14.14/#ZH-AUTO-RELEASE-14-SECT2-18"}, {"db_id": "aa302a2149b51d8fa114ce51bd412401", "kind": "equivalent", "version": "12.21", "label": "12.21", "title": "修复提交可串行化事务时的竞态条件", "evidence": {"same_day": true, "patch_ids": ["50ee9517aec4d41dcce331b3b6ce522b"], "statement_hash": "b5d2ea04c0310cbcc15167692a36d7b1bf670c6b55bc6b9f9fd87d19f0f9841f"}, "url": "/docs/compare/?release=12.21#12.21-644a55d942e8f80b", "source_url": "/docs/release/12.21/#id-1.11.6.7.6"}]}, {"id": "13.17-69d902e126a99392", "cves": [], "html": "<p>修复 <code>COMMIT PREPARED</code> 中导致产生孤立 2PC 文件的竞态条件（wuchengwen）<a href=\"https://postgr.es/c/7bfaa4671\">§</a></p>\n<p>并发的 <code>PREPARE TRANSACTION</code> 可能导致 <code>COMMIT PREPARED</code> 不删除已完成事务的磁盘上两阶段状态文件。虽然没有立即的不良影响，但随后的崩溃恢复可能因 <span>“<span>could not access status of transaction</span>”</span> 而失败，需要手动删除孤立文件才能恢复服务。</p>", "text": "修复 COMMIT PREPARED 中导致产生孤立 2PC 文件的竞态条件（wuchengwen）§ 并发的 PREPARE TRANSACTION 可能导致 COMMIT PREPARED 不删除已完成事务的磁盘上两阶段状态文件。虽然没有立即的不良影响，但随后的崩溃恢复可能因 “could not access status of transaction” 而失败，需要手动删除孤立文件才能恢复服务。", "title": "修复 COMMIT PREPARED 中导致产生孤立 2PC 文件的竞态条件", "commits": ["7bfaa4671"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/13.17/#id-1.11.6.12.5", "source_hash": "0a5fd7484a8b6aa505e71b9bc1ff70c6a3c452000fb4a3378bd49ed015634201", "section_path": ["变更"], "commit_groups": [["34d751ba7", "41ab45680", "5f1510787", "7bfaa4671", "7de9b64a5", "cf4401fe6", "f250cb29d"]], "identity_text": "Fix race condition in COMMIT PREPARED that resulted in orphaned 2PC files (wuchengwen) A concurrent PREPARE TRANSACTION could cause COMMIT PREPARED to not remove the on-disk two-phase state file for the completed transaction. There was no immediate ill effect, but a subsequent crash-and-recovery could fail with could not access status of transaction, requiring manual removal of the orphaned file to restore service.", "commit_aliases": ["34d751ba7", "41ab45680", "5f1510787", "7bfaa4671", "7de9b64a5", "cf4401fe6", "f250cb29d"], "source_commits": ["7bfaa4671"], "source_entry_id": "13.17/changes/013", "db_id": "c05f86a4de6b5f601947b64d282719ca", "patch_ids": ["6088f50b8046f302c3beb339a56355ba"], "statement_hash": "cfa0936fc0b2e98b73ed3e04821e1f500d31070b5605e6cc02a01c8717a898ee", "relations": [{"rule": 2, "type": "equivalent", "target": "763ffedfbb0f41b4be36e6b088363681", "evidence": {"same_day": true, "patch_ids": ["6088f50b8046f302c3beb339a56355ba"], "statement_hash": "cfa0936fc0b2e98b73ed3e04821e1f500d31070b5605e6cc02a01c8717a898ee"}}, {"rule": 2, "type": "equivalent", "target": "76d396403610291a5a7c4f03a06cb422", "evidence": {"same_day": true, "patch_ids": ["6088f50b8046f302c3beb339a56355ba"], "statement_hash": "cfa0936fc0b2e98b73ed3e04821e1f500d31070b5605e6cc02a01c8717a898ee"}}, {"rule": 2, "type": "equivalent", "target": "bea0f2d5ddea7da80e3feff830b6d010", "evidence": {"same_day": true, "patch_ids": ["6088f50b8046f302c3beb339a56355ba"], "statement_hash": "cfa0936fc0b2e98b73ed3e04821e1f500d31070b5605e6cc02a01c8717a898ee"}}, {"rule": 2, "type": "equivalent", "target": "d637378d79e21e218865b8859bf16c95", "evidence": {"same_day": true, "patch_ids": ["6088f50b8046f302c3beb339a56355ba"], "statement_hash": "cfa0936fc0b2e98b73ed3e04821e1f500d31070b5605e6cc02a01c8717a898ee"}}, {"rule": 2, "type": "equivalent", "target": "fee42a020ebd314e966a67dc4fd89ce0", "evidence": {"same_day": true, "patch_ids": ["6088f50b8046f302c3beb339a56355ba"], "statement_hash": "cfa0936fc0b2e98b73ed3e04821e1f500d31070b5605e6cc02a01c8717a898ee"}}], "version": "13.17", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "bea0f2d5ddea7da80e3feff830b6d010", "kind": "equivalent", "version": "17.1", "label": "17.1", "title": "修复 COMMIT PREPARED 中导致产生孤立 2PC 文件的竞态条件", "evidence": {"same_day": true, "patch_ids": ["6088f50b8046f302c3beb339a56355ba"], "statement_hash": "cfa0936fc0b2e98b73ed3e04821e1f500d31070b5605e6cc02a01c8717a898ee"}, "url": "/docs/compare/?release=17.1#17.1-88bc5224bd702550", "source_url": "/docs/release/17.1/#RELEASE-17-1-CHANGES"}, {"db_id": "76d396403610291a5a7c4f03a06cb422", "kind": "equivalent", "version": "16.5", "label": "16.5", "title": "修复 COMMIT PREPARED 中导致产生孤立 2PC 文件的竞态条件", "evidence": {"same_day": true, "patch_ids": ["6088f50b8046f302c3beb339a56355ba"], "statement_hash": "cfa0936fc0b2e98b73ed3e04821e1f500d31070b5605e6cc02a01c8717a898ee"}, "url": "/docs/compare/?release=16.5#16.5-5b237a45542da2c0", "source_url": "/docs/release/16.5/#RELEASE-16-5-CHANGES"}, {"db_id": "d637378d79e21e218865b8859bf16c95", "kind": "equivalent", "version": "15.9", "label": "15.9", "title": "修复 COMMIT PREPARED 中导致产生孤立 2PC 文件的竞态条件", "evidence": {"same_day": true, "patch_ids": ["6088f50b8046f302c3beb339a56355ba"], "statement_hash": "cfa0936fc0b2e98b73ed3e04821e1f500d31070b5605e6cc02a01c8717a898ee"}, "url": "/docs/compare/?release=15.9#15.9-e59a7ce835379266", "source_url": "/docs/release/15.9/#ZH-AUTO-RELEASE-15-SECT2-18"}, {"db_id": "763ffedfbb0f41b4be36e6b088363681", "kind": "equivalent", "version": "14.14", "label": "14.14", "title": "修复 COMMIT PREPARED 中导致产生孤立 2PC 文件的竞态条件", "evidence": {"same_day": true, "patch_ids": ["6088f50b8046f302c3beb339a56355ba"], "statement_hash": "cfa0936fc0b2e98b73ed3e04821e1f500d31070b5605e6cc02a01c8717a898ee"}, "url": "/docs/compare/?release=14.14#14.14-e59a7ce835379266", "source_url": "/docs/release/14.14/#ZH-AUTO-RELEASE-14-SECT2-18"}, {"db_id": "fee42a020ebd314e966a67dc4fd89ce0", "kind": "equivalent", "version": "12.21", "label": "12.21", "title": "修复 COMMIT PREPARED 中导致产生孤立 2PC 文件的竞态条件", "evidence": {"same_day": true, "patch_ids": ["6088f50b8046f302c3beb339a56355ba"], "statement_hash": "cfa0936fc0b2e98b73ed3e04821e1f500d31070b5605e6cc02a01c8717a898ee"}, "url": "/docs/compare/?release=12.21#12.21-de738b840880f990", "source_url": "/docs/release/12.21/#id-1.11.6.7.6"}]}, {"id": "13.17-eb3d25b2db47e7fb", "cves": [], "html": "<p>避免在 <code>VACUUM FULL</code> 期间跳过无效 toast 索引后发生无效内存访问（Tender Wang）<a href=\"https://postgr.es/c/911eda9f3\">§</a></p>\n<p>在此代码路径中，跟踪尚待重建索引的列表未被正确更新，可能导致后续的断言失败或崩溃。</p>", "text": "避免在 VACUUM FULL 期间跳过无效 toast 索引后发生无效内存访问（Tender Wang）§ 在此代码路径中，跟踪尚待重建索引的列表未被正确更新，可能导致后续的断言失败或崩溃。", "title": "避免在 VACUUM FULL 期间跳过无效 toast 索引后发生无效内存访问", "commits": ["911eda9f3"], "section": "变更", "category": "improvement", "source_url": "/docs/release/13.17/#id-1.11.6.12.5", "source_hash": "49fef78671f47750763b81393d914ed03800d825b43c4e83ecfec81b385bb8c5", "section_path": ["变更"], "commit_groups": [["09620ea09", "1532599a8", "2f33e68a5", "6530b869c", "911eda9f3", "a613edc5c", "afbd3dc7d"]], "identity_text": "Avoid invalid memory accesses after skipping an invalid toast index during VACUUM FULL (Tender Wang) A list tracking yet-to-be-rebuilt indexes was not properly updated in this code path, risking assertion failures or crashes later on.", "commit_aliases": ["09620ea09", "1532599a8", "2f33e68a5", "6530b869c", "911eda9f3", "a613edc5c", "afbd3dc7d"], "source_commits": ["911eda9f3"], "source_entry_id": "13.17/changes/014", "db_id": "106d9520e3c63f93b40539e2e4af49e0", "patch_ids": ["81efeb0ba74685566da2e5420921a3e7"], "statement_hash": "ec3fe73e0a77635a8340b27cfe913ce27c149d6fee837cbdeb82cdd8cb82e830", "relations": [{"rule": 2, "type": "equivalent", "target": "0b3f94fa1108fab11a7b96dd657b84a7", "evidence": {"same_day": true, "patch_ids": ["81efeb0ba74685566da2e5420921a3e7"], "statement_hash": "ec3fe73e0a77635a8340b27cfe913ce27c149d6fee837cbdeb82cdd8cb82e830"}}, {"rule": 2, "type": "equivalent", "target": "1446a781b5279a1f8b293d6edeb8e669", "evidence": {"same_day": true, "patch_ids": ["81efeb0ba74685566da2e5420921a3e7"], "statement_hash": "ec3fe73e0a77635a8340b27cfe913ce27c149d6fee837cbdeb82cdd8cb82e830"}}, {"rule": 2, "type": "equivalent", "target": "2aaf09439019047f1fc7a22a4ccdb591", "evidence": {"same_day": true, "patch_ids": ["81efeb0ba74685566da2e5420921a3e7"], "statement_hash": "ec3fe73e0a77635a8340b27cfe913ce27c149d6fee837cbdeb82cdd8cb82e830"}}, {"rule": 2, "type": "equivalent", "target": "d36f2ced4ebc024e44bc91d6067e5445", "evidence": {"same_day": true, "patch_ids": ["81efeb0ba74685566da2e5420921a3e7"], "statement_hash": "ec3fe73e0a77635a8340b27cfe913ce27c149d6fee837cbdeb82cdd8cb82e830"}}, {"rule": 2, "type": "equivalent", "target": "e25dfeb7ac4ac21c564edacd49428b4d", "evidence": {"same_day": true, "patch_ids": ["81efeb0ba74685566da2e5420921a3e7"], "statement_hash": "ec3fe73e0a77635a8340b27cfe913ce27c149d6fee837cbdeb82cdd8cb82e830"}}], "version": "13.17", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "e25dfeb7ac4ac21c564edacd49428b4d", "kind": "equivalent", "version": "17.1", "label": "17.1", "title": "避免在 VACUUM FULL 期间跳过无效 toast 索引后发生无效内存访问", "evidence": {"same_day": true, "patch_ids": ["81efeb0ba74685566da2e5420921a3e7"], "statement_hash": "ec3fe73e0a77635a8340b27cfe913ce27c149d6fee837cbdeb82cdd8cb82e830"}, "url": "/docs/compare/?release=17.1#17.1-c8cc3d6338bd9132", "source_url": "/docs/release/17.1/#RELEASE-17-1-CHANGES"}, {"db_id": "0b3f94fa1108fab11a7b96dd657b84a7", "kind": "equivalent", "version": "16.5", "label": "16.5", "title": "避免在 VACUUM FULL 期间跳过无效 toast 索引后发生无效内存访问", "evidence": {"same_day": true, "patch_ids": ["81efeb0ba74685566da2e5420921a3e7"], "statement_hash": "ec3fe73e0a77635a8340b27cfe913ce27c149d6fee837cbdeb82cdd8cb82e830"}, "url": "/docs/compare/?release=16.5#16.5-c5c6df0edba188ad", "source_url": "/docs/release/16.5/#RELEASE-16-5-CHANGES"}, {"db_id": "d36f2ced4ebc024e44bc91d6067e5445", "kind": "equivalent", "version": "15.9", "label": "15.9", "title": "避免在 VACUUM FULL 期间跳过无效 toast 索引后发生无效内存访问", "evidence": {"same_day": true, "patch_ids": ["81efeb0ba74685566da2e5420921a3e7"], "statement_hash": "ec3fe73e0a77635a8340b27cfe913ce27c149d6fee837cbdeb82cdd8cb82e830"}, "url": "/docs/compare/?release=15.9#15.9-6b1daddcdf483623", "source_url": "/docs/release/15.9/#ZH-AUTO-RELEASE-15-SECT2-18"}, {"db_id": "1446a781b5279a1f8b293d6edeb8e669", "kind": "equivalent", "version": "14.14", "label": "14.14", "title": "避免在 VACUUM FULL 期间跳过无效 toast 索引后发生无效内存访问", "evidence": {"same_day": true, "patch_ids": ["81efeb0ba74685566da2e5420921a3e7"], "statement_hash": "ec3fe73e0a77635a8340b27cfe913ce27c149d6fee837cbdeb82cdd8cb82e830"}, "url": "/docs/compare/?release=14.14#14.14-6b1daddcdf483623", "source_url": "/docs/release/14.14/#ZH-AUTO-RELEASE-14-SECT2-18"}, {"db_id": "2aaf09439019047f1fc7a22a4ccdb591", "kind": "equivalent", "version": "12.21", "label": "12.21", "title": "避免在 VACUUM FULL 期间跳过无效 toast 索引后发生无效内存访问", "evidence": {"same_day": true, "patch_ids": ["81efeb0ba74685566da2e5420921a3e7"], "statement_hash": "ec3fe73e0a77635a8340b27cfe913ce27c149d6fee837cbdeb82cdd8cb82e830"}, "url": "/docs/compare/?release=12.21#12.21-8e2f6fd17a9d3c8d", "source_url": "/docs/release/12.21/#id-1.11.6.7.6"}]}, {"id": "13.17-ceead3a3466e6797", "cves": [], "html": "<p>修复<span>“<span>就地</span>”</span>目录更新可能丢失的问题（Noah Misch）<a href=\"https://postgr.es/c/a8ad1929d\">§</a> <a href=\"https://postgr.es/c/14c57cb63\">§</a> <a href=\"https://postgr.es/c/db1992455\">§</a> <a href=\"https://postgr.es/c/3e5ea478d\">§</a> <a href=\"https://postgr.es/c/2a912bc1a\">§</a> <a href=\"https://postgr.es/c/6b01cac0b\">§</a> <a href=\"https://postgr.es/c/4dc0c933f\">§</a></p>\n<p>普通行更新会写入行的新版本以保留事务的回滚能力。然而，某些系统目录更新是有意设计为非事务性的，并通过对行的就地更新来完成。这些补丁修复了可能导致就地更新效果丢失的竞态条件。例如，可能会忘记已将 <code>pg_class</code>.<code>relhasindex</code> 设置为 true，从而阻止新索引的更新，进而导致索引损坏。</p>", "text": "修复“就地”目录更新可能丢失的问题（Noah Misch）§ § § § § § § 普通行更新会写入行的新版本以保留事务的回滚能力。然而，某些系统目录更新是有意设计为非事务性的，并通过对行的就地更新来完成。这些补丁修复了可能导致就地更新效果丢失的竞态条件。例如，可能会忘记已将 pg_class.relhasindex 设置为 true，从而阻止新索引的更新，进而导致索引损坏。", "title": "修复“就地”目录更新可能丢失的问题", "commits": ["14c57cb63", "2a912bc1a", "3e5ea478d", "4dc0c933f", "6b01cac0b", "a8ad1929d", "db1992455"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/13.17/#id-1.11.6.12.5", "source_hash": "f51ecf9f929a4b2d11e8498d8a7b8ef5c7c360ea3358f2d25c8de4e085e32be8", "section_path": ["变更"], "commit_groups": [["0bcb9d079", "6b01cac0b", "6c837c237", "6d5b4031b", "b412f402d", "bb3054297", "d729f1ea5"], ["0d5a3d757", "159bf0f31", "4c922821e", "5a33a39a8", "b9ee1339b", "da99df15c", "db1992455"], ["0fe002d0c", "11e3f288f", "2a912bc1a", "30d47ec8c", "370bc7740", "9aef6f19a", "c2139db11"], ["14c57cb63", "3b7a689e1", "51ff46de2", "5c837f8fa", "aac2c9b4f", "cafcc3ad0", "f51b34b3e"], ["2d63c964f", "3e5ea478d", "a0c0078b1", "ad24b7565", "d34ffbaa1", "e11907682", "e947224cb"], ["4dc0c933f", "54bc22fbf", "766809db3", "803655e66", "825c72c07", "d14e94ac4", "f8f9110b4"], ["63f019805", "7354b680a", "82c2d9e02", "8590c942c", "a07e03fd8", "a8ad1929d", "fd27b878c"]], "identity_text": "Fix ways in which an in place catalog update could be lost (Noah Misch) Normal row updates write a new version of the row to preserve rollback-ability of the transaction. However, certain system catalog updates are intentionally non-transactional and are done with an in-place update of the row. These patches fix race conditions that could cause the effects of an in-place update to be lost. As an example, it was possible to forget having set pg_class.relhasindex to true, preventing updates of the new index and thus causing index corruption.", "commit_aliases": ["0bcb9d079", "0d5a3d757", "0fe002d0c", "11e3f288f", "14c57cb63", "159bf0f31", "2a912bc1a", "2d63c964f", "30d47ec8c", "370bc7740", "3b7a689e1", "3e5ea478d", "4c922821e", "4dc0c933f", "51ff46de2", "54bc22fbf", "5a33a39a8", "5c837f8fa", "63f019805", "6b01cac0b", "6c837c237", "6d5b4031b", "7354b680a", "766809db3", "803655e66", "825c72c07", "82c2d9e02", "8590c942c", "9aef6f19a", "a07e03fd8", "a0c0078b1", "a8ad1929d", "aac2c9b4f", "ad24b7565", "b412f402d", "b9ee1339b", "bb3054297", "c2139db11", "cafcc3ad0", "d14e94ac4", "d34ffbaa1", "d729f1ea5", "da99df15c", "db1992455", "e11907682", "e947224cb", "f51b34b3e", "f8f9110b4", "fd27b878c"], "source_commits": ["14c57cb63", "2a912bc1a", "3e5ea478d", "4dc0c933f", "6b01cac0b", "a8ad1929d", "db1992455"], "source_entry_id": "13.17/changes/015", "db_id": "a4c7b80cea1f3d86e1ebeb039d46f949", "patch_ids": ["05b36e4e33fd5338dd25a15409b13e9d", "4f1bae07616ee0fb5c5e4b46d54b5b36", "52eab8bd7a63e7f7075f0714ca6383fa", "5387ff70b9b13df766dc4ee83ea4d5cd", "7bf6a28b82f24f6f29d6185ab745fd01", "7d9fe8d7f162d4973084bac117e13458", "92e91d174f3975b9ee8fcabe365fe864"], "statement_hash": "88c284eb649a92e2feb03789cc1cd0df323723b9ec13679075dc970edc5ba242", "relations": [{"rule": 2, "type": "equivalent", "target": "264c00d4fe4a150e75d61a097ff123db", "evidence": {"same_day": true, "patch_ids": ["05b36e4e33fd5338dd25a15409b13e9d", "4f1bae07616ee0fb5c5e4b46d54b5b36", "52eab8bd7a63e7f7075f0714ca6383fa", "5387ff70b9b13df766dc4ee83ea4d5cd", "7bf6a28b82f24f6f29d6185ab745fd01", "7d9fe8d7f162d4973084bac117e13458", "92e91d174f3975b9ee8fcabe365fe864"], "statement_hash": "88c284eb649a92e2feb03789cc1cd0df323723b9ec13679075dc970edc5ba242"}}, {"rule": 2, "type": "equivalent", "target": "4da4c3bde6ab372410d0ea2f0c14cf1c", "evidence": {"same_day": true, "patch_ids": ["05b36e4e33fd5338dd25a15409b13e9d", "4f1bae07616ee0fb5c5e4b46d54b5b36", "52eab8bd7a63e7f7075f0714ca6383fa", "5387ff70b9b13df766dc4ee83ea4d5cd", "7bf6a28b82f24f6f29d6185ab745fd01", "7d9fe8d7f162d4973084bac117e13458", "92e91d174f3975b9ee8fcabe365fe864"], "statement_hash": "88c284eb649a92e2feb03789cc1cd0df323723b9ec13679075dc970edc5ba242"}}, {"rule": 2, "type": "equivalent", "target": "d2a35756cee793f15aeedced3c6988ef", "evidence": {"same_day": true, "patch_ids": ["05b36e4e33fd5338dd25a15409b13e9d", "4f1bae07616ee0fb5c5e4b46d54b5b36", "52eab8bd7a63e7f7075f0714ca6383fa", "5387ff70b9b13df766dc4ee83ea4d5cd", "7bf6a28b82f24f6f29d6185ab745fd01", "7d9fe8d7f162d4973084bac117e13458", "92e91d174f3975b9ee8fcabe365fe864"], "statement_hash": "88c284eb649a92e2feb03789cc1cd0df323723b9ec13679075dc970edc5ba242"}}, {"rule": 2, "type": "equivalent", "target": "e51e9f0ae27bbcd0efa98e7f734afd4e", "evidence": {"same_day": true, "patch_ids": ["05b36e4e33fd5338dd25a15409b13e9d", "4f1bae07616ee0fb5c5e4b46d54b5b36", "52eab8bd7a63e7f7075f0714ca6383fa", "5387ff70b9b13df766dc4ee83ea4d5cd", "7bf6a28b82f24f6f29d6185ab745fd01", "7d9fe8d7f162d4973084bac117e13458", "92e91d174f3975b9ee8fcabe365fe864"], "statement_hash": "88c284eb649a92e2feb03789cc1cd0df323723b9ec13679075dc970edc5ba242"}}, {"rule": 2, "type": "equivalent", "target": "eb830ff75d360e6a0f3b6bfc80c31645", "evidence": {"same_day": true, "patch_ids": ["05b36e4e33fd5338dd25a15409b13e9d", "4f1bae07616ee0fb5c5e4b46d54b5b36", "52eab8bd7a63e7f7075f0714ca6383fa", "5387ff70b9b13df766dc4ee83ea4d5cd", "7bf6a28b82f24f6f29d6185ab745fd01", "7d9fe8d7f162d4973084bac117e13458", "92e91d174f3975b9ee8fcabe365fe864"], "statement_hash": "88c284eb649a92e2feb03789cc1cd0df323723b9ec13679075dc970edc5ba242"}}], "version": "13.17", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "d2a35756cee793f15aeedced3c6988ef", "kind": "equivalent", "version": "17.1", "label": "17.1", "title": "修复“就地”目录更新可能丢失的问题", "evidence": {"same_day": true, "patch_ids": ["05b36e4e33fd5338dd25a15409b13e9d", "4f1bae07616ee0fb5c5e4b46d54b5b36", "52eab8bd7a63e7f7075f0714ca6383fa", "5387ff70b9b13df766dc4ee83ea4d5cd", "7bf6a28b82f24f6f29d6185ab745fd01", "7d9fe8d7f162d4973084bac117e13458", "92e91d174f3975b9ee8fcabe365fe864"], "statement_hash": "88c284eb649a92e2feb03789cc1cd0df323723b9ec13679075dc970edc5ba242"}, "url": "/docs/compare/?release=17.1#17.1-4ba0c00b7077008e", "source_url": "/docs/release/17.1/#RELEASE-17-1-CHANGES"}, {"db_id": "264c00d4fe4a150e75d61a097ff123db", "kind": "equivalent", "version": "16.5", "label": "16.5", "title": "修复“就地”目录更新可能丢失的问题", "evidence": {"same_day": true, "patch_ids": ["05b36e4e33fd5338dd25a15409b13e9d", "4f1bae07616ee0fb5c5e4b46d54b5b36", "52eab8bd7a63e7f7075f0714ca6383fa", "5387ff70b9b13df766dc4ee83ea4d5cd", "7bf6a28b82f24f6f29d6185ab745fd01", "7d9fe8d7f162d4973084bac117e13458", "92e91d174f3975b9ee8fcabe365fe864"], "statement_hash": "88c284eb649a92e2feb03789cc1cd0df323723b9ec13679075dc970edc5ba242"}, "url": "/docs/compare/?release=16.5#16.5-f36a0a1cb407bc0d", "source_url": "/docs/release/16.5/#RELEASE-16-5-CHANGES"}, {"db_id": "eb830ff75d360e6a0f3b6bfc80c31645", "kind": "equivalent", "version": "15.9", "label": "15.9", "title": "修复“就地”目录更新可能丢失的问题", "evidence": {"same_day": true, "patch_ids": ["05b36e4e33fd5338dd25a15409b13e9d", "4f1bae07616ee0fb5c5e4b46d54b5b36", "52eab8bd7a63e7f7075f0714ca6383fa", "5387ff70b9b13df766dc4ee83ea4d5cd", "7bf6a28b82f24f6f29d6185ab745fd01", "7d9fe8d7f162d4973084bac117e13458", "92e91d174f3975b9ee8fcabe365fe864"], "statement_hash": "88c284eb649a92e2feb03789cc1cd0df323723b9ec13679075dc970edc5ba242"}, "url": "/docs/compare/?release=15.9#15.9-08a0d7fc06fd04f8", "source_url": "/docs/release/15.9/#ZH-AUTO-RELEASE-15-SECT2-18"}, {"db_id": "e51e9f0ae27bbcd0efa98e7f734afd4e", "kind": "equivalent", "version": "14.14", "label": "14.14", "title": "修复“就地”目录更新可能丢失的问题", "evidence": {"same_day": true, "patch_ids": ["05b36e4e33fd5338dd25a15409b13e9d", "4f1bae07616ee0fb5c5e4b46d54b5b36", "52eab8bd7a63e7f7075f0714ca6383fa", "5387ff70b9b13df766dc4ee83ea4d5cd", "7bf6a28b82f24f6f29d6185ab745fd01", "7d9fe8d7f162d4973084bac117e13458", "92e91d174f3975b9ee8fcabe365fe864"], "statement_hash": "88c284eb649a92e2feb03789cc1cd0df323723b9ec13679075dc970edc5ba242"}, "url": "/docs/compare/?release=14.14#14.14-08a0d7fc06fd04f8", "source_url": "/docs/release/14.14/#ZH-AUTO-RELEASE-14-SECT2-18"}, {"db_id": "4da4c3bde6ab372410d0ea2f0c14cf1c", "kind": "equivalent", "version": "12.21", "label": "12.21", "title": "修复“就地”目录更新可能丢失的问题", "evidence": {"same_day": true, "patch_ids": ["05b36e4e33fd5338dd25a15409b13e9d", "4f1bae07616ee0fb5c5e4b46d54b5b36", "52eab8bd7a63e7f7075f0714ca6383fa", "5387ff70b9b13df766dc4ee83ea4d5cd", "7bf6a28b82f24f6f29d6185ab745fd01", "7d9fe8d7f162d4973084bac117e13458", "92e91d174f3975b9ee8fcabe365fe864"], "statement_hash": "88c284eb649a92e2feb03789cc1cd0df323723b9ec13679075dc970edc5ba242"}, "url": "/docs/compare/?release=12.21#12.21-608f82caf4cfab8e", "source_url": "/docs/release/12.21/#id-1.11.6.7.6"}]}, {"id": "13.17-c138e4e18d01025b", "cves": [], "html": "<p>在恢复结束时重置目录缓存（Noah Misch）<a href=\"https://postgr.es/c/67f30c79a\">§</a></p>\n<p>这可以防止由于使用目录缓存中的陈旧数据而导致就地目录更新丢失的场景。</p>", "text": "在恢复结束时重置目录缓存（Noah Misch）§ 这可以防止由于使用目录缓存中的陈旧数据而导致就地目录更新丢失的场景。", "title": "在恢复结束时重置目录缓存", "commits": ["67f30c79a"], "section": "变更", "category": "improvement", "source_url": "/docs/release/13.17/#id-1.11.6.12.5", "source_hash": "33e60b3b3624d6a48ea312d57dddd3fca4fcb0f7fc9c93df419b8e927565cfec", "section_path": ["变更"], "commit_groups": [["3baf804b7", "67f30c79a", "a4668c99f", "d36b4d8ec", "da9950456", "dca68242a"]], "identity_text": "Reset catalog caches at end of recovery (Noah Misch) This prevents scenarios wherein an in-place catalog update could be lost due to using stale data from a catalog cache.", "commit_aliases": ["3baf804b7", "67f30c79a", "a4668c99f", "d36b4d8ec", "da9950456", "dca68242a"], "source_commits": ["67f30c79a"], "source_entry_id": "13.17/changes/016", "db_id": "d884bf75960c7349cddc766f955ef4bf", "patch_ids": ["d8e905ab86ebcc2061ec15f9561d12f7"], "statement_hash": "4a224b02222ca1034c36288808b35d4c4bbb6cecb363130697849647bca3a4a8", "relations": [{"rule": 2, "type": "equivalent", "target": "03f38df95d5ba9b19ea98e287c5941dd", "evidence": {"same_day": true, "patch_ids": ["d8e905ab86ebcc2061ec15f9561d12f7"], "statement_hash": "4a224b02222ca1034c36288808b35d4c4bbb6cecb363130697849647bca3a4a8"}}, {"rule": 2, "type": "equivalent", "target": "0f22f13259952ee505c2fd5ecc2f32c3", "evidence": {"same_day": true, "patch_ids": ["d8e905ab86ebcc2061ec15f9561d12f7"], "statement_hash": "4a224b02222ca1034c36288808b35d4c4bbb6cecb363130697849647bca3a4a8"}}, {"rule": 2, "type": "equivalent", "target": "aa00e5eea147d8a44ee23eca484f52e9", "evidence": {"same_day": true, "patch_ids": ["d8e905ab86ebcc2061ec15f9561d12f7"], "statement_hash": "4a224b02222ca1034c36288808b35d4c4bbb6cecb363130697849647bca3a4a8"}}, {"rule": 2, "type": "equivalent", "target": "cd21f7315c06a0f5655474428e16bbac", "evidence": {"same_day": true, "patch_ids": ["d8e905ab86ebcc2061ec15f9561d12f7"], "statement_hash": "4a224b02222ca1034c36288808b35d4c4bbb6cecb363130697849647bca3a4a8"}}, {"rule": 2, "type": "equivalent", "target": "f79d9965bc861d1581bcbd5e1c99f922", "evidence": {"same_day": true, "patch_ids": ["d8e905ab86ebcc2061ec15f9561d12f7"], "statement_hash": "4a224b02222ca1034c36288808b35d4c4bbb6cecb363130697849647bca3a4a8"}}], "version": "13.17", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "f79d9965bc861d1581bcbd5e1c99f922", "kind": "equivalent", "version": "17.1", "label": "17.1", "title": "在恢复结束时重置系统目录缓存", "evidence": {"same_day": true, "patch_ids": ["d8e905ab86ebcc2061ec15f9561d12f7"], "statement_hash": "4a224b02222ca1034c36288808b35d4c4bbb6cecb363130697849647bca3a4a8"}, "url": "/docs/compare/?release=17.1#17.1-fdd8a7b553e4e858", "source_url": "/docs/release/17.1/#RELEASE-17-1-CHANGES"}, {"db_id": "aa00e5eea147d8a44ee23eca484f52e9", "kind": "equivalent", "version": "16.5", "label": "16.5", "title": "在恢复结束时重置系统目录缓存", "evidence": {"same_day": true, "patch_ids": ["d8e905ab86ebcc2061ec15f9561d12f7"], "statement_hash": "4a224b02222ca1034c36288808b35d4c4bbb6cecb363130697849647bca3a4a8"}, "url": "/docs/compare/?release=16.5#16.5-fdd8a7b553e4e858", "source_url": "/docs/release/16.5/#RELEASE-16-5-CHANGES"}, {"db_id": "0f22f13259952ee505c2fd5ecc2f32c3", "kind": "equivalent", "version": "15.9", "label": "15.9", "title": "在恢复结束时重置系统目录缓存", "evidence": {"same_day": true, "patch_ids": ["d8e905ab86ebcc2061ec15f9561d12f7"], "statement_hash": "4a224b02222ca1034c36288808b35d4c4bbb6cecb363130697849647bca3a4a8"}, "url": "/docs/compare/?release=15.9#15.9-fdd8a7b553e4e858", "source_url": "/docs/release/15.9/#ZH-AUTO-RELEASE-15-SECT2-18"}, {"db_id": "03f38df95d5ba9b19ea98e287c5941dd", "kind": "equivalent", "version": "14.14", "label": "14.14", "title": "在恢复结束时重置系统目录缓存", "evidence": {"same_day": true, "patch_ids": ["d8e905ab86ebcc2061ec15f9561d12f7"], "statement_hash": "4a224b02222ca1034c36288808b35d4c4bbb6cecb363130697849647bca3a4a8"}, "url": "/docs/compare/?release=14.14#14.14-fdd8a7b553e4e858", "source_url": "/docs/release/14.14/#ZH-AUTO-RELEASE-14-SECT2-18"}, {"db_id": "cd21f7315c06a0f5655474428e16bbac", "kind": "equivalent", "version": "12.21", "label": "12.21", "title": "在恢复结束时重置目录缓存", "evidence": {"same_day": true, "patch_ids": ["d8e905ab86ebcc2061ec15f9561d12f7"], "statement_hash": "4a224b02222ca1034c36288808b35d4c4bbb6cecb363130697849647bca3a4a8"}, "url": "/docs/compare/?release=12.21#12.21-865e40421a2a7155", "source_url": "/docs/release/12.21/#id-1.11.6.7.6"}]}, {"id": "13.17-a3b4a4de7beb4cf2", "cves": [], "html": "<p>避免在持有中断抑制时使用并行查询（Francesco Degrassi，Noah Misch，Tom Lane）<a href=\"https://postgr.es/c/916b8ae47\">§</a> <a href=\"https://postgr.es/c/62685876f\">§</a></p>\n<p>这种情况在正常情况下不会发生，但可以通过测试场景达到，例如使用 SQL 语言函数作为 B-树支持函数（这对于生产使用来说太慢了）。如果确实发生，将导致无限期等待。</p>", "text": "避免在持有中断抑制时使用并行查询（Francesco Degrassi，Noah Misch，Tom Lane）§ § 这种情况在正常情况下不会发生，但可以通过测试场景达到，例如使用 SQL 语言函数作为 B-树支持函数（这对于生产使用来说太慢了）。如果确实发生，将导致无限期等待。", "title": "避免在持有中断抑制时使用并行查询", "commits": ["62685876f", "916b8ae47"], "section": "变更", "category": "improvement", "source_url": "/docs/release/13.17/#id-1.11.6.12.5", "source_hash": "499fbcd437c5624d72a9089a46285d80e411cc9ab41758ea2888d1287bb391d7", "section_path": ["变更"], "commit_groups": [["06424e9a2", "62685876f", "6e39ca6e7", "943b65358", "989ccd26c", "b8df69049", "bcbdb176e"], ["2370582ab", "507b72bd9", "5c698e898", "6f6521de9", "884860bfc", "916b8ae47", "ac04aa84a"]], "identity_text": "Avoid using parallel query while holding off interrupts (Francesco Degrassi, Noah Misch, Tom Lane) This situation cannot arise normally, but it can be reached with test scenarios such as using a SQL-language function as B-tree support (which would be far too slow for production usage). If it did occur it would result in an indefinite wait.", "commit_aliases": ["06424e9a2", "2370582ab", "507b72bd9", "5c698e898", "62685876f", "6e39ca6e7", "6f6521de9", "884860bfc", "916b8ae47", "943b65358", "989ccd26c", "ac04aa84a", "b8df69049", "bcbdb176e"], "source_commits": ["62685876f", "916b8ae47"], "source_entry_id": "13.17/changes/017", "db_id": "9c64f11a2ea10f08b521f113632af16e", "patch_ids": ["29bb688d4e8208d2082e4f499367d4b5", "d51d4f1f90e0ae612393573f187e5578"], "statement_hash": "adf8c98c039a0012402ced84be2f8e79013c496b233860353a2dbe702b0840c0", "relations": [{"rule": 2, "type": "equivalent", "target": "16437a71fa6942226ce8d635a44db8db", "evidence": {"same_day": true, "patch_ids": ["29bb688d4e8208d2082e4f499367d4b5", "d51d4f1f90e0ae612393573f187e5578"], "statement_hash": "adf8c98c039a0012402ced84be2f8e79013c496b233860353a2dbe702b0840c0"}}, {"rule": 2, "type": "equivalent", "target": "24cc8c07aade56116be077eb7b3a6c97", "evidence": {"same_day": true, "patch_ids": ["29bb688d4e8208d2082e4f499367d4b5", "d51d4f1f90e0ae612393573f187e5578"], "statement_hash": "adf8c98c039a0012402ced84be2f8e79013c496b233860353a2dbe702b0840c0"}}, {"rule": 2, "type": "equivalent", "target": "934d89fc2549c8cbadcbf480ec891705", "evidence": {"same_day": true, "patch_ids": ["29bb688d4e8208d2082e4f499367d4b5", "d51d4f1f90e0ae612393573f187e5578"], "statement_hash": "adf8c98c039a0012402ced84be2f8e79013c496b233860353a2dbe702b0840c0"}}, {"rule": 2, "type": "equivalent", "target": "b3f625cf27046112c2282ec0557cc30f", "evidence": {"same_day": true, "patch_ids": ["29bb688d4e8208d2082e4f499367d4b5", "d51d4f1f90e0ae612393573f187e5578"], "statement_hash": "adf8c98c039a0012402ced84be2f8e79013c496b233860353a2dbe702b0840c0"}}, {"rule": 2, "type": "equivalent", "target": "cba213b0d62e0ab3a4bf32c1f5643e83", "evidence": {"same_day": true, "patch_ids": ["29bb688d4e8208d2082e4f499367d4b5", "d51d4f1f90e0ae612393573f187e5578"], "statement_hash": "adf8c98c039a0012402ced84be2f8e79013c496b233860353a2dbe702b0840c0"}}], "version": "13.17", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "934d89fc2549c8cbadcbf480ec891705", "kind": "equivalent", "version": "17.1", "label": "17.1", "title": "避免在持有中断抑制时使用并行查询", "evidence": {"same_day": true, "patch_ids": ["29bb688d4e8208d2082e4f499367d4b5", "d51d4f1f90e0ae612393573f187e5578"], "statement_hash": "adf8c98c039a0012402ced84be2f8e79013c496b233860353a2dbe702b0840c0"}, "url": "/docs/compare/?release=17.1#17.1-06c66c306e1e689d", "source_url": "/docs/release/17.1/#RELEASE-17-1-CHANGES"}, {"db_id": "b3f625cf27046112c2282ec0557cc30f", "kind": "equivalent", "version": "16.5", "label": "16.5", "title": "避免在持有中断抑制时使用并行查询", "evidence": {"same_day": true, "patch_ids": ["29bb688d4e8208d2082e4f499367d4b5", "d51d4f1f90e0ae612393573f187e5578"], "statement_hash": "adf8c98c039a0012402ced84be2f8e79013c496b233860353a2dbe702b0840c0"}, "url": "/docs/compare/?release=16.5#16.5-89c96f632f7ca5f9", "source_url": "/docs/release/16.5/#RELEASE-16-5-CHANGES"}, {"db_id": "24cc8c07aade56116be077eb7b3a6c97", "kind": "equivalent", "version": "15.9", "label": "15.9", "title": "避免在持有中断抑制时使用并行查询", "evidence": {"same_day": true, "patch_ids": ["29bb688d4e8208d2082e4f499367d4b5", "d51d4f1f90e0ae612393573f187e5578"], "statement_hash": "adf8c98c039a0012402ced84be2f8e79013c496b233860353a2dbe702b0840c0"}, "url": "/docs/compare/?release=15.9#15.9-e6ab251303d53866", "source_url": "/docs/release/15.9/#ZH-AUTO-RELEASE-15-SECT2-18"}, {"db_id": "cba213b0d62e0ab3a4bf32c1f5643e83", "kind": "equivalent", "version": "14.14", "label": "14.14", "title": "避免在持有中断抑制时使用并行查询", "evidence": {"same_day": true, "patch_ids": ["29bb688d4e8208d2082e4f499367d4b5", "d51d4f1f90e0ae612393573f187e5578"], "statement_hash": "adf8c98c039a0012402ced84be2f8e79013c496b233860353a2dbe702b0840c0"}, "url": "/docs/compare/?release=14.14#14.14-e6ab251303d53866", "source_url": "/docs/release/14.14/#ZH-AUTO-RELEASE-14-SECT2-18"}, {"db_id": "16437a71fa6942226ce8d635a44db8db", "kind": "equivalent", "version": "12.21", "label": "12.21", "title": "避免在持有中断抑制时使用并行查询", "evidence": {"same_day": true, "patch_ids": ["29bb688d4e8208d2082e4f499367d4b5", "d51d4f1f90e0ae612393573f187e5578"], "statement_hash": "adf8c98c039a0012402ced84be2f8e79013c496b233860353a2dbe702b0840c0"}, "url": "/docs/compare/?release=12.21#12.21-62e4bb5238c85fde", "source_url": "/docs/release/12.21/#id-1.11.6.7.6"}]}, {"id": "13.17-89e363b82c1b24e0", "cves": [], "html": "<p>防止在过度深层嵌套的 XML 输入中 <span>libxml2</span> 的栈溢出（Tom Lane，致谢 Nick Wellnhofer）<a href=\"https://postgr.es/c/4310dfa25\">§</a></p>\n<p>使用 <code>xmlXPathCtxtCompile()</code> 而非 <code>xmlXPathCompile()</code>，因为后者在 2.13.4 之前的 <span>libxml2</span> 版本中未能保护自身免受递归到栈溢出的影响。</p>", "text": "防止在过度深层嵌套的 XML 输入中 libxml2 的栈溢出（Tom Lane，致谢 Nick Wellnhofer）§ 使用 xmlXPathCtxtCompile() 而非 xmlXPathCompile()，因为后者在 2.13.4 之前的 libxml2 版本中未能保护自身免受递归到栈溢出的影响。", "title": "防止在过度深层嵌套的 XML 输入中 libxml2 的栈溢出（Tom Lane，致谢 Nick Wellnhofer）", "commits": ["4310dfa25"], "section": "变更", "category": "improvement", "source_url": "/docs/release/13.17/#id-1.11.6.12.5", "source_hash": "b225d34eebf9dc6f813b2a1f14e39a3429295698fb81993b0f54dbedde320091", "section_path": ["变更"], "commit_groups": [["0206795d2", "4310dfa25", "4c9bf947a", "634804885", "7721fff06", "b9645dca1", "d5622acb3"]], "identity_text": "Guard against stack overflow in libxml2 with too-deeply-nested XML input (Tom Lane, with hat tip to Nick Wellnhofer) Use xmlXPathCtxtCompile() rather than xmlXPathCompile(), because the latter fails to protect itself against recursion-to-stack-overflow in libxml2 releases before 2.13.4.", "commit_aliases": ["0206795d2", "4310dfa25", "4c9bf947a", "634804885", "7721fff06", "b9645dca1", "d5622acb3"], "source_commits": ["4310dfa25"], "source_entry_id": "13.17/changes/018", "db_id": "284405867bc11c8393948bd5814d9f40", "patch_ids": ["89f6197fe179277beb1025522a4e5108"], "statement_hash": "d7e4a3259f68be32572ee03fbdd0a2c55e1b6227b3dbcc4108ccb011321b09ef", "relations": [{"rule": 2, "type": "equivalent", "target": "40dfa6b23d9e3bc3817169a1102b2032", "evidence": {"same_day": true, "patch_ids": ["89f6197fe179277beb1025522a4e5108"], "statement_hash": "d7e4a3259f68be32572ee03fbdd0a2c55e1b6227b3dbcc4108ccb011321b09ef"}}, {"rule": 2, "type": "equivalent", "target": "630eda49517b961e9959fda824669fc1", "evidence": {"same_day": true, "patch_ids": ["89f6197fe179277beb1025522a4e5108"], "statement_hash": "d7e4a3259f68be32572ee03fbdd0a2c55e1b6227b3dbcc4108ccb011321b09ef"}}, {"rule": 2, "type": "equivalent", "target": "8a1ca140f9102ce17d1751cc83badecc", "evidence": {"same_day": true, "patch_ids": ["89f6197fe179277beb1025522a4e5108"], "statement_hash": "d7e4a3259f68be32572ee03fbdd0a2c55e1b6227b3dbcc4108ccb011321b09ef"}}, {"rule": 2, "type": "equivalent", "target": "bce36664e6517b944dbea324e877997c", "evidence": {"same_day": true, "patch_ids": ["89f6197fe179277beb1025522a4e5108"], "statement_hash": "d7e4a3259f68be32572ee03fbdd0a2c55e1b6227b3dbcc4108ccb011321b09ef"}}], "version": "13.17", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "40dfa6b23d9e3bc3817169a1102b2032", "kind": "equivalent", "version": "16.5", "label": "16.5", "title": "防止在过度深层嵌套的 XML 输入中 libxml2 的栈溢出（Tom Lane，致谢 Nick Wellnhofer）", "evidence": {"same_day": true, "patch_ids": ["89f6197fe179277beb1025522a4e5108"], "statement_hash": "d7e4a3259f68be32572ee03fbdd0a2c55e1b6227b3dbcc4108ccb011321b09ef"}, "url": "/docs/compare/?release=16.5#16.5-2067fd91bcb7bde1", "source_url": "/docs/release/16.5/#RELEASE-16-5-CHANGES"}, {"db_id": "630eda49517b961e9959fda824669fc1", "kind": "equivalent", "version": "15.9", "label": "15.9", "title": "防止在过度深层嵌套的 XML 输入中 libxml2 的栈溢出（Tom Lane，致谢 Nick Wellnhofer）", "evidence": {"same_day": true, "patch_ids": ["89f6197fe179277beb1025522a4e5108"], "statement_hash": "d7e4a3259f68be32572ee03fbdd0a2c55e1b6227b3dbcc4108ccb011321b09ef"}, "url": "/docs/compare/?release=15.9#15.9-76d6754f1abd705e", "source_url": "/docs/release/15.9/#ZH-AUTO-RELEASE-15-SECT2-18"}, {"db_id": "8a1ca140f9102ce17d1751cc83badecc", "kind": "equivalent", "version": "14.14", "label": "14.14", "title": "防止在过度深层嵌套的 XML 输入中 libxml2 的栈溢出（Tom Lane，致谢 Nick Wellnhofer）", "evidence": {"same_day": true, "patch_ids": ["89f6197fe179277beb1025522a4e5108"], "statement_hash": "d7e4a3259f68be32572ee03fbdd0a2c55e1b6227b3dbcc4108ccb011321b09ef"}, "url": "/docs/compare/?release=14.14#14.14-76d6754f1abd705e", "source_url": "/docs/release/14.14/#ZH-AUTO-RELEASE-14-SECT2-18"}, {"db_id": "bce36664e6517b944dbea324e877997c", "kind": "equivalent", "version": "12.21", "label": "12.21", "title": "防止在过度深层嵌套的 XML 输入中 libxml2 的栈溢出（Tom Lane，致谢 Nick Wellnhofer）", "evidence": {"same_day": true, "patch_ids": ["89f6197fe179277beb1025522a4e5108"], "statement_hash": "d7e4a3259f68be32572ee03fbdd0a2c55e1b6227b3dbcc4108ccb011321b09ef"}, "url": "/docs/compare/?release=12.21#12.21-c3eb63761e953199", "source_url": "/docs/release/12.21/#id-1.11.6.7.6"}]}, {"id": "13.17-bf39855040bac5b5", "cves": [], "html": "<p>修复 <code>EXPLAIN</code> 中的 <span>“<span>failed to find plan for subquery/CTE</span>”</span> 错误（Richard Guo，Tom Lane）<a href=\"https://postgr.es/c/016f44364\">§</a> <a href=\"https://postgr.es/c/3ad35d502\">§</a></p>\n<p>当试图打印子查询的 RECORD 类型输出的字段引用，而该子查询已从执行计划中完全优化掉时（至少在具有常量为假的 <code>WHERE</code> 条件时可能发生），就会出现这种情况。执行计划中不再有任何内容可以标识原始字段名，因此回退到对第 <em><code>N</code></em> 个记录列打印 <code>f<em><code>N</code></em></code>。（如果记录输出来自 <code>ROW()</code> 构造器，这实际上也是正确的做法。）</p>", "text": "修复 EXPLAIN 中的 “failed to find plan for subquery/CTE” 错误（Richard Guo，Tom Lane）§ § 当试图打印子查询的 RECORD 类型输出的字段引用，而该子查询已从执行计划中完全优化掉时（至少在具有常量为假的 WHERE 条件时可能发生），就会出现这种情况。执行计划中不再有任何内容可以标识原始字段名，因此回退到对第 N 个记录列打印 fN。（如果记录输出来自 ROW() 构造器，这实际上也是正确的做法。）", "title": "修复 EXPLAIN 中的 “failed to find plan for subquery/CTE” 错误", "commits": ["016f44364", "3ad35d502"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/13.17/#id-1.11.6.12.5", "source_hash": "cb05cab66e4f5335f382e642133deded3c1af6a1f062c9c739bdd2f744c7cff5", "section_path": ["变更"], "commit_groups": [["016f44364", "16e67bc5f", "9db6650a5", "aed881386", "b2be5cb2a", "bc5446a21"], ["03f679475", "12010f414", "120dd0337", "3ad35d502", "7408772de", "81a12a447", "b919a97a6"]], "identity_text": "Fix failed to find plan for subquery/CTE errors in EXPLAIN (Richard Guo, Tom Lane) This case arose while trying to print references to fields of a RECORD-type output of a subquery when the subquery has been optimized out of the plan altogether (which is possible at least in the case that it has a constant-false WHERE condition). Nothing remains in the plan to identify the original field names, so fall back to printing fN for the N'th record column. (That's actually the right thing anyway, if the record output arose from a ROW() constructor.)", "commit_aliases": ["016f44364", "03f679475", "12010f414", "120dd0337", "16e67bc5f", "3ad35d502", "7408772de", "81a12a447", "9db6650a5", "aed881386", "b2be5cb2a", "b919a97a6", "bc5446a21"], "source_commits": ["016f44364", "3ad35d502"], "source_entry_id": "13.17/changes/019", "db_id": "ac5769f43019e5f23e9a0fe73092e7ca", "patch_ids": ["c02585f2d3502e9a984ab065bafafee1", "d44264fd77792ea19a4bcd3e21e1132e"], "statement_hash": "f2bc8910ea63d256031232e8d93571fc67a0186e4f19da43ac639f818f785ae3", "relations": [{"rule": 2, "type": "equivalent", "target": "20437cd2932c21a684d5cbcb1b232062", "evidence": {"same_day": true, "patch_ids": ["c02585f2d3502e9a984ab065bafafee1", "d44264fd77792ea19a4bcd3e21e1132e"], "statement_hash": "f2bc8910ea63d256031232e8d93571fc67a0186e4f19da43ac639f818f785ae3"}}, {"rule": 2, "type": "equivalent", "target": "89f804f6f43a10a99ad741244445ba00", "evidence": {"same_day": true, "patch_ids": ["c02585f2d3502e9a984ab065bafafee1", "d44264fd77792ea19a4bcd3e21e1132e"], "statement_hash": "f2bc8910ea63d256031232e8d93571fc67a0186e4f19da43ac639f818f785ae3"}}, {"rule": 2, "type": "equivalent", "target": "e45708974263bd78f635258cebcf0b79", "evidence": {"same_day": true, "patch_ids": ["c02585f2d3502e9a984ab065bafafee1", "d44264fd77792ea19a4bcd3e21e1132e"], "statement_hash": "f2bc8910ea63d256031232e8d93571fc67a0186e4f19da43ac639f818f785ae3"}}, {"rule": 2, "type": "equivalent", "target": "f6cda6332c8c789dc6ceacd8cb136c70", "evidence": {"same_day": true, "patch_ids": ["c02585f2d3502e9a984ab065bafafee1", "d44264fd77792ea19a4bcd3e21e1132e"], "statement_hash": "f2bc8910ea63d256031232e8d93571fc67a0186e4f19da43ac639f818f785ae3"}}], "version": "13.17", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "20437cd2932c21a684d5cbcb1b232062", "kind": "equivalent", "version": "16.5", "label": "16.5", "title": "修复 EXPLAIN 中的 “failed to find plan for subquery/CTE” 错误", "evidence": {"same_day": true, "patch_ids": ["c02585f2d3502e9a984ab065bafafee1", "d44264fd77792ea19a4bcd3e21e1132e"], "statement_hash": "f2bc8910ea63d256031232e8d93571fc67a0186e4f19da43ac639f818f785ae3"}, "url": "/docs/compare/?release=16.5#16.5-2cdf90ede335175a", "source_url": "/docs/release/16.5/#RELEASE-16-5-CHANGES"}, {"db_id": "89f804f6f43a10a99ad741244445ba00", "kind": "equivalent", "version": "15.9", "label": "15.9", "title": "修复 EXPLAIN 中的 “failed to find plan for subquery/CTE” 错误", "evidence": {"same_day": true, "patch_ids": ["c02585f2d3502e9a984ab065bafafee1", "d44264fd77792ea19a4bcd3e21e1132e"], "statement_hash": "f2bc8910ea63d256031232e8d93571fc67a0186e4f19da43ac639f818f785ae3"}, "url": "/docs/compare/?release=15.9#15.9-9f33cae8074522d6", "source_url": "/docs/release/15.9/#ZH-AUTO-RELEASE-15-SECT2-18"}, {"db_id": "f6cda6332c8c789dc6ceacd8cb136c70", "kind": "equivalent", "version": "14.14", "label": "14.14", "title": "修复 EXPLAIN 中的 “failed to find plan for subquery/CTE” 错误", "evidence": {"same_day": true, "patch_ids": ["c02585f2d3502e9a984ab065bafafee1", "d44264fd77792ea19a4bcd3e21e1132e"], "statement_hash": "f2bc8910ea63d256031232e8d93571fc67a0186e4f19da43ac639f818f785ae3"}, "url": "/docs/compare/?release=14.14#14.14-9f33cae8074522d6", "source_url": "/docs/release/14.14/#ZH-AUTO-RELEASE-14-SECT2-18"}, {"db_id": "e45708974263bd78f635258cebcf0b79", "kind": "equivalent", "version": "12.21", "label": "12.21", "title": "修复 EXPLAIN 中的 “failed to find plan for subquery/CTE” 错误", "evidence": {"same_day": true, "patch_ids": ["c02585f2d3502e9a984ab065bafafee1", "d44264fd77792ea19a4bcd3e21e1132e"], "statement_hash": "f2bc8910ea63d256031232e8d93571fc67a0186e4f19da43ac639f818f785ae3"}, "url": "/docs/compare/?release=12.21#12.21-80ef0195f813208d", "source_url": "/docs/release/12.21/#id-1.11.6.7.6"}]}, {"id": "13.17-dc1cb312513d3c1b", "cves": [], "html": "<p>在更改生成列的类型时，禁止使用 <code>USING</code> 子句（Peter Eisentraut）<a href=\"https://postgr.es/c/7589d5c5b\">§</a></p>\n<p>生成列已经有一个指定列内容的表达式，因此包含 <code>USING</code> 没有意义。</p>", "text": "在更改生成列的类型时，禁止使用 USING 子句（Peter Eisentraut）§ 生成列已经有一个指定列内容的表达式，因此包含 USING 没有意义。", "title": "在更改生成列的类型时，禁止使用 USING 子句", "commits": ["7589d5c5b"], "section": "变更", "category": "improvement", "source_url": "/docs/release/13.17/#id-1.11.6.12.5", "source_hash": "f59af1a912bb3ba0e05044bf5578635c1552c85af92c8213153f2992939dc3a1", "section_path": ["变更"], "commit_groups": [["1c57ae795", "4d68a0432", "5867ee005", "7589d5c5b", "cf49a606c", "ecd19a3cc", "fdbf7e46a"]], "identity_text": "Disallow a USING clause when altering the type of a generated column (Peter Eisentraut) A generated column already has an expression specifying the column contents, so including USING doesn't make sense.", "commit_aliases": ["1c57ae795", "4d68a0432", "5867ee005", "7589d5c5b", "cf49a606c", "ecd19a3cc", "fdbf7e46a"], "source_commits": ["7589d5c5b"], "source_entry_id": "13.17/changes/020", "db_id": "4fa3666fc411a964e89b0f8b36573a87", "patch_ids": ["f346192daaed534da9b954e32a5dc49f"], "statement_hash": "90fa98e04389e8615bd5982a0eb26b6267823f1954bdd94909544227bce1284d", "relations": [{"rule": 2, "type": "equivalent", "target": "590d700585eb31db78a313098629f34b", "evidence": {"same_day": true, "patch_ids": ["f346192daaed534da9b954e32a5dc49f"], "statement_hash": "90fa98e04389e8615bd5982a0eb26b6267823f1954bdd94909544227bce1284d"}}, {"rule": 2, "type": "equivalent", "target": "adcb28ae0f0b3aaa94e625195f50cfa8", "evidence": {"same_day": true, "patch_ids": ["f346192daaed534da9b954e32a5dc49f"], "statement_hash": "90fa98e04389e8615bd5982a0eb26b6267823f1954bdd94909544227bce1284d"}}, {"rule": 2, "type": "equivalent", "target": "d3d2269b03644a330ddfb5b92e0335e0", "evidence": {"same_day": true, "patch_ids": ["f346192daaed534da9b954e32a5dc49f"], "statement_hash": "90fa98e04389e8615bd5982a0eb26b6267823f1954bdd94909544227bce1284d"}}, {"rule": 2, "type": "equivalent", "target": "f91625a9d72cb7e07d828e4724fb1c4a", "evidence": {"same_day": true, "patch_ids": ["f346192daaed534da9b954e32a5dc49f"], "statement_hash": "90fa98e04389e8615bd5982a0eb26b6267823f1954bdd94909544227bce1284d"}}], "version": "13.17", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "d3d2269b03644a330ddfb5b92e0335e0", "kind": "equivalent", "version": "16.5", "label": "16.5", "title": "在更改生成列的类型时，禁止使用 USING 子句", "evidence": {"same_day": true, "patch_ids": ["f346192daaed534da9b954e32a5dc49f"], "statement_hash": "90fa98e04389e8615bd5982a0eb26b6267823f1954bdd94909544227bce1284d"}, "url": "/docs/compare/?release=16.5#16.5-2661b11912ac799d", "source_url": "/docs/release/16.5/#RELEASE-16-5-CHANGES"}, {"db_id": "f91625a9d72cb7e07d828e4724fb1c4a", "kind": "equivalent", "version": "15.9", "label": "15.9", "title": "在更改生成列的类型时，禁止使用 USING 子句", "evidence": {"same_day": true, "patch_ids": ["f346192daaed534da9b954e32a5dc49f"], "statement_hash": "90fa98e04389e8615bd5982a0eb26b6267823f1954bdd94909544227bce1284d"}, "url": "/docs/compare/?release=15.9#15.9-03771aa746105d7a", "source_url": "/docs/release/15.9/#ZH-AUTO-RELEASE-15-SECT2-18"}, {"db_id": "adcb28ae0f0b3aaa94e625195f50cfa8", "kind": "equivalent", "version": "14.14", "label": "14.14", "title": "在更改生成列的类型时，禁止使用 USING 子句", "evidence": {"same_day": true, "patch_ids": ["f346192daaed534da9b954e32a5dc49f"], "statement_hash": "90fa98e04389e8615bd5982a0eb26b6267823f1954bdd94909544227bce1284d"}, "url": "/docs/compare/?release=14.14#14.14-03771aa746105d7a", "source_url": "/docs/release/14.14/#ZH-AUTO-RELEASE-14-SECT2-18"}, {"db_id": "590d700585eb31db78a313098629f34b", "kind": "equivalent", "version": "12.21", "label": "12.21", "title": "在更改生成列的类型时，禁止使用 USING 子句", "evidence": {"same_day": true, "patch_ids": ["f346192daaed534da9b954e32a5dc49f"], "statement_hash": "90fa98e04389e8615bd5982a0eb26b6267823f1954bdd94909544227bce1284d"}, "url": "/docs/compare/?release=12.21#12.21-579dc6d417705681", "source_url": "/docs/release/12.21/#id-1.11.6.7.6"}]}, {"id": "13.17-650fc419fd974de2", "cves": [], "html": "<p>在 <code>pg_cursors</code> 视图中忽略尚未定义的 Portal（Tom Lane）<a href=\"https://postgr.es/c/4a17acd0d\">§</a></p>\n<p>用户定义的检查该视图的代码可能在新游标正在设置时被调用，如果发生这种情况，将导致空指针解引用。通过将该视图定义为排除未完全设置的游标来避免此问题。</p>", "text": "在 pg_cursors 视图中忽略尚未定义的 Portal（Tom Lane）§ 用户定义的检查该视图的代码可能在新游标正在设置时被调用，如果发生这种情况，将导致空指针解引用。通过将该视图定义为排除未完全设置的游标来避免此问题。", "title": "在 pg_cursors 视图中忽略尚未定义的 Portal", "commits": ["4a17acd0d"], "section": "变更", "category": "improvement", "source_url": "/docs/release/13.17/#id-1.11.6.12.5", "source_hash": "04be5dc4847b61aaf41ad3af6af97f674ff3dcb3315b31cac28e482e84552b15", "section_path": ["变更"], "commit_groups": [["3922c9e9f", "3daeb539a", "4a17acd0d", "5c17f5a63", "5de77b609", "aef75219c", "f8d9a9f21"]], "identity_text": "Ignore not-yet-defined Portals in the pg_cursors view (Tom Lane) It is possible for user-defined code that inspects this view to be called while a new cursor is being set up, and if that happens a null pointer dereference would ensue. Avoid the problem by defining the view to exclude incompletely-set-up cursors.", "commit_aliases": ["3922c9e9f", "3daeb539a", "4a17acd0d", "5c17f5a63", "5de77b609", "aef75219c", "f8d9a9f21"], "source_commits": ["4a17acd0d"], "source_entry_id": "13.17/changes/021", "db_id": "40f352ad57f1a44a74ee73d5e8b2ba7a", "patch_ids": ["150c787bf9f6ccaebe4514733bd41ba1"], "statement_hash": "998476f5c947153e08f4173ddb5a0d8d8fef2921423b11177f8d3c0c9eebb8a8", "relations": [{"rule": 2, "type": "equivalent", "target": "0867725684ed36138f7bb9cafd5966fb", "evidence": {"same_day": true, "patch_ids": ["150c787bf9f6ccaebe4514733bd41ba1"], "statement_hash": "998476f5c947153e08f4173ddb5a0d8d8fef2921423b11177f8d3c0c9eebb8a8"}}, {"rule": 2, "type": "equivalent", "target": "8615a3985a1a6e36d471474894e4ae49", "evidence": {"same_day": true, "patch_ids": ["150c787bf9f6ccaebe4514733bd41ba1"], "statement_hash": "998476f5c947153e08f4173ddb5a0d8d8fef2921423b11177f8d3c0c9eebb8a8"}}, {"rule": 2, "type": "equivalent", "target": "ab7451fa47782439c78a591f71331c6f", "evidence": {"same_day": true, "patch_ids": ["150c787bf9f6ccaebe4514733bd41ba1"], "statement_hash": "998476f5c947153e08f4173ddb5a0d8d8fef2921423b11177f8d3c0c9eebb8a8"}}, {"rule": 2, "type": "equivalent", "target": "b75478fe3e881ec9e4d469c23af9882f", "evidence": {"same_day": true, "patch_ids": ["150c787bf9f6ccaebe4514733bd41ba1"], "statement_hash": "998476f5c947153e08f4173ddb5a0d8d8fef2921423b11177f8d3c0c9eebb8a8"}}, {"rule": 2, "type": "equivalent", "target": "d675c60f3cd5aca2145214c45e0e293f", "evidence": {"same_day": true, "patch_ids": ["150c787bf9f6ccaebe4514733bd41ba1"], "statement_hash": "998476f5c947153e08f4173ddb5a0d8d8fef2921423b11177f8d3c0c9eebb8a8"}}], "version": "13.17", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "ab7451fa47782439c78a591f71331c6f", "kind": "equivalent", "version": "17.1", "label": "17.1", "title": "在 pg_cursors 视图中忽略尚未定义的 Portal", "evidence": {"same_day": true, "patch_ids": ["150c787bf9f6ccaebe4514733bd41ba1"], "statement_hash": "998476f5c947153e08f4173ddb5a0d8d8fef2921423b11177f8d3c0c9eebb8a8"}, "url": "/docs/compare/?release=17.1#17.1-aef3a8801b632b69", "source_url": "/docs/release/17.1/#RELEASE-17-1-CHANGES"}, {"db_id": "b75478fe3e881ec9e4d469c23af9882f", "kind": "equivalent", "version": "16.5", "label": "16.5", "title": "在 pg_cursors 视图中忽略尚未定义的 Portal", "evidence": {"same_day": true, "patch_ids": ["150c787bf9f6ccaebe4514733bd41ba1"], "statement_hash": "998476f5c947153e08f4173ddb5a0d8d8fef2921423b11177f8d3c0c9eebb8a8"}, "url": "/docs/compare/?release=16.5#16.5-c4b555a66d26fe62", "source_url": "/docs/release/16.5/#RELEASE-16-5-CHANGES"}, {"db_id": "0867725684ed36138f7bb9cafd5966fb", "kind": "equivalent", "version": "15.9", "label": "15.9", "title": "在 pg_cursors 视图中忽略尚未定义的 Portal", "evidence": {"same_day": true, "patch_ids": ["150c787bf9f6ccaebe4514733bd41ba1"], "statement_hash": "998476f5c947153e08f4173ddb5a0d8d8fef2921423b11177f8d3c0c9eebb8a8"}, "url": "/docs/compare/?release=15.9#15.9-2c83eaafe3f48038", "source_url": "/docs/release/15.9/#ZH-AUTO-RELEASE-15-SECT2-18"}, {"db_id": "8615a3985a1a6e36d471474894e4ae49", "kind": "equivalent", "version": "14.14", "label": "14.14", "title": "在 pg_cursors 视图中忽略尚未定义的 Portal", "evidence": {"same_day": true, "patch_ids": ["150c787bf9f6ccaebe4514733bd41ba1"], "statement_hash": "998476f5c947153e08f4173ddb5a0d8d8fef2921423b11177f8d3c0c9eebb8a8"}, "url": "/docs/compare/?release=14.14#14.14-2c83eaafe3f48038", "source_url": "/docs/release/14.14/#ZH-AUTO-RELEASE-14-SECT2-18"}, {"db_id": "d675c60f3cd5aca2145214c45e0e293f", "kind": "equivalent", "version": "12.21", "label": "12.21", "title": "在 pg_cursors 视图中忽略尚未定义的 Portal", "evidence": {"same_day": true, "patch_ids": ["150c787bf9f6ccaebe4514733bd41ba1"], "statement_hash": "998476f5c947153e08f4173ddb5a0d8d8fef2921423b11177f8d3c0c9eebb8a8"}, "url": "/docs/compare/?release=12.21#12.21-1f7e358387ad1aa5", "source_url": "/docs/release/12.21/#id-1.11.6.7.6"}]}, {"id": "13.17-f2d64b8488ba0701", "cves": [], "html": "<p>减少逻辑解码的内存消耗（Masahiko Sawada）<a href=\"https://postgr.es/c/cb988b04d\">§</a></p>\n<p>使用较小的默认块大小来存储逻辑复制期间接收的元组数据。这减少了内存浪费，据报告在处理长时间运行的事务时内存浪费会很严重，甚至导致内存不足错误。</p>", "text": "减少逻辑解码的内存消耗（Masahiko Sawada）§ 使用较小的默认块大小来存储逻辑复制期间接收的元组数据。这减少了内存浪费，据报告在处理长时间运行的事务时内存浪费会很严重，甚至导致内存不足错误。", "title": "减少逻辑解码的内存消耗", "commits": ["cb988b04d"], "section": "变更", "category": "improvement", "source_url": "/docs/release/13.17/#id-1.11.6.12.5", "source_hash": "30a388c233ba40ad373cb22900cf97e5c5405d30d11ce434604bf5d897ba0320", "section_path": ["变更"], "commit_groups": [["05e982cdc", "1b9b6cc34", "4a675f318", "53fa68b3b", "5c1ed0a51", "cb988b04d", "eef9cc4dc"]], "identity_text": "Reduce memory consumption of logical decoding (Masahiko Sawada) Use a smaller default block size to store tuple data received during logical replication. This reduces memory wastage, which has been reported to be severe while processing long-running transactions, even leading to out-of-memory failures.", "commit_aliases": ["05e982cdc", "1b9b6cc34", "4a675f318", "53fa68b3b", "5c1ed0a51", "cb988b04d", "eef9cc4dc"], "source_commits": ["cb988b04d"], "source_entry_id": "13.17/changes/022", "db_id": "31bd9403607ae022bbb2521df351cbfc", "patch_ids": ["473ac57f52486f7e2341aa56eec194c2"], "statement_hash": "41677895da3ee075c9b726464616a279de0b41105d90638c0e57718cefefc690", "relations": [{"rule": 2, "type": "equivalent", "target": "3d9fd2ba6502c820c1ac0c749da6c3d2", "evidence": {"same_day": true, "patch_ids": ["473ac57f52486f7e2341aa56eec194c2"], "statement_hash": "41677895da3ee075c9b726464616a279de0b41105d90638c0e57718cefefc690"}}, {"rule": 2, "type": "equivalent", "target": "4727ddf86fcb969c81cd421d0cdb58de", "evidence": {"same_day": true, "patch_ids": ["473ac57f52486f7e2341aa56eec194c2"], "statement_hash": "41677895da3ee075c9b726464616a279de0b41105d90638c0e57718cefefc690"}}, {"rule": 2, "type": "equivalent", "target": "97c3269bffd0c820b06905fbe2d464f9", "evidence": {"same_day": true, "patch_ids": ["473ac57f52486f7e2341aa56eec194c2"], "statement_hash": "41677895da3ee075c9b726464616a279de0b41105d90638c0e57718cefefc690"}}, {"rule": 2, "type": "equivalent", "target": "9bf3080cc388d1bf67d4b4ef7f8fa15d", "evidence": {"same_day": true, "patch_ids": ["473ac57f52486f7e2341aa56eec194c2"], "statement_hash": "41677895da3ee075c9b726464616a279de0b41105d90638c0e57718cefefc690"}}, {"rule": 2, "type": "equivalent", "target": "a4f89dcd882799f19e8888f9472f9d26", "evidence": {"same_day": true, "patch_ids": ["473ac57f52486f7e2341aa56eec194c2"], "statement_hash": "41677895da3ee075c9b726464616a279de0b41105d90638c0e57718cefefc690"}}], "version": "13.17", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "97c3269bffd0c820b06905fbe2d464f9", "kind": "equivalent", "version": "17.1", "label": "17.1", "title": "减少逻辑解码的内存消耗", "evidence": {"same_day": true, "patch_ids": ["473ac57f52486f7e2341aa56eec194c2"], "statement_hash": "41677895da3ee075c9b726464616a279de0b41105d90638c0e57718cefefc690"}, "url": "/docs/compare/?release=17.1#17.1-d43fbbbbd1a290af", "source_url": "/docs/release/17.1/#RELEASE-17-1-CHANGES"}, {"db_id": "3d9fd2ba6502c820c1ac0c749da6c3d2", "kind": "equivalent", "version": "16.5", "label": "16.5", "title": "减少逻辑解码的内存消耗", "evidence": {"same_day": true, "patch_ids": ["473ac57f52486f7e2341aa56eec194c2"], "statement_hash": "41677895da3ee075c9b726464616a279de0b41105d90638c0e57718cefefc690"}, "url": "/docs/compare/?release=16.5#16.5-196b5d37b1ff6140", "source_url": "/docs/release/16.5/#RELEASE-16-5-CHANGES"}, {"db_id": "4727ddf86fcb969c81cd421d0cdb58de", "kind": "equivalent", "version": "15.9", "label": "15.9", "title": "减少逻辑解码的内存消耗", "evidence": {"same_day": true, "patch_ids": ["473ac57f52486f7e2341aa56eec194c2"], "statement_hash": "41677895da3ee075c9b726464616a279de0b41105d90638c0e57718cefefc690"}, "url": "/docs/compare/?release=15.9#15.9-6255a3cff82754f5", "source_url": "/docs/release/15.9/#ZH-AUTO-RELEASE-15-SECT2-18"}, {"db_id": "9bf3080cc388d1bf67d4b4ef7f8fa15d", "kind": "equivalent", "version": "14.14", "label": "14.14", "title": "减少逻辑解码的内存消耗", "evidence": {"same_day": true, "patch_ids": ["473ac57f52486f7e2341aa56eec194c2"], "statement_hash": "41677895da3ee075c9b726464616a279de0b41105d90638c0e57718cefefc690"}, "url": "/docs/compare/?release=14.14#14.14-6255a3cff82754f5", "source_url": "/docs/release/14.14/#ZH-AUTO-RELEASE-14-SECT2-18"}, {"db_id": "a4f89dcd882799f19e8888f9472f9d26", "kind": "equivalent", "version": "12.21", "label": "12.21", "title": "减少逻辑解码的内存消耗", "evidence": {"same_day": true, "patch_ids": ["473ac57f52486f7e2341aa56eec194c2"], "statement_hash": "41677895da3ee075c9b726464616a279de0b41105d90638c0e57718cefefc690"}, "url": "/docs/compare/?release=12.21#12.21-4155de347ff97daf", "source_url": "/docs/release/12.21/#id-1.11.6.7.6"}]}, {"id": "13.17-138f4895947b0867", "cves": [], "html": "<p>重新禁用无状态（TLSv1.2）会话票证的发送（Daniel Gustafsson）<a href=\"https://postgr.es/c/f925b7f65\">§</a></p>\n<p>之前为防止发送有状态（TLSv1.3）会话票证所做的更改，意外地重新启用了无状态会话票证的发送。因此，虽然我们打算防止客户端认为支持 TLS 会话恢复，但某些客户端仍然这样认为了。</p>", "text": "重新禁用无状态（TLSv1.2）会话票证的发送（Daniel Gustafsson）§ 之前为防止发送有状态（TLSv1.3）会话票证所做的更改，意外地重新启用了无状态会话票证的发送。因此，虽然我们打算防止客户端认为支持 TLS 会话恢复，但某些客户端仍然这样认为了。", "title": "重新禁用无状态（TLSv1.2）会话票证的发送", "commits": ["f925b7f65"], "section": "变更", "category": "improvement", "source_url": "/docs/release/13.17/#id-1.11.6.12.5", "source_hash": "5ec85d912071b6ccf201502a68ee7e8be4cfe13781c39ac7bd60b20dc9cd2933", "section_path": ["变更"], "commit_groups": [["19021d28c", "23c200940", "4fdb6558c", "8cea8c023", "9333174af", "cd98a142c", "f925b7f65"]], "identity_text": "Re-disable sending of stateless (TLSv1.2) session tickets (Daniel Gustafsson) A previous change to prevent sending of stateful (TLSv1.3) session tickets accidentally re-enabled sending of stateless ones. Thus, while we intended to prevent clients from thinking that TLS session resumption is supported, some still did.", "commit_aliases": ["19021d28c", "23c200940", "4fdb6558c", "8cea8c023", "9333174af", "cd98a142c", "f925b7f65"], "source_commits": ["f925b7f65"], "source_entry_id": "13.17/changes/023", "db_id": "751972ec7ea7a60526e5a72b76c17a8a", "patch_ids": ["e6cebfad3aad0c8d072f2f1918b6b6b7"], "statement_hash": "81b778f3e948b5314b4543d7cf5e204e3fa6d1ec0472f15d70c418f10b090349", "relations": [{"rule": 2, "type": "equivalent", "target": "0112f28fcf5a23da6e718911b44abaca", "evidence": {"same_day": true, "patch_ids": ["e6cebfad3aad0c8d072f2f1918b6b6b7"], "statement_hash": "81b778f3e948b5314b4543d7cf5e204e3fa6d1ec0472f15d70c418f10b090349"}}, {"rule": 2, "type": "equivalent", "target": "8b55ef2525d8a3bae6123e95c9b829df", "evidence": {"same_day": true, "patch_ids": ["e6cebfad3aad0c8d072f2f1918b6b6b7"], "statement_hash": "81b778f3e948b5314b4543d7cf5e204e3fa6d1ec0472f15d70c418f10b090349"}}, {"rule": 2, "type": "equivalent", "target": "b7359ad3db7de24046dc28f08b2bd62d", "evidence": {"same_day": true, "patch_ids": ["e6cebfad3aad0c8d072f2f1918b6b6b7"], "statement_hash": "81b778f3e948b5314b4543d7cf5e204e3fa6d1ec0472f15d70c418f10b090349"}}, {"rule": 2, "type": "equivalent", "target": "bd557a920afa38bea90dd6845c8f405c", "evidence": {"same_day": true, "patch_ids": ["e6cebfad3aad0c8d072f2f1918b6b6b7"], "statement_hash": "81b778f3e948b5314b4543d7cf5e204e3fa6d1ec0472f15d70c418f10b090349"}}], "version": "13.17", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "8b55ef2525d8a3bae6123e95c9b829df", "kind": "equivalent", "version": "16.5", "label": "16.5", "title": "重新禁用无状态（TLSv1.2）会话票证的发送", "evidence": {"same_day": true, "patch_ids": ["e6cebfad3aad0c8d072f2f1918b6b6b7"], "statement_hash": "81b778f3e948b5314b4543d7cf5e204e3fa6d1ec0472f15d70c418f10b090349"}, "url": "/docs/compare/?release=16.5#16.5-9b152971f2d7e6bd", "source_url": "/docs/release/16.5/#RELEASE-16-5-CHANGES"}, {"db_id": "bd557a920afa38bea90dd6845c8f405c", "kind": "equivalent", "version": "15.9", "label": "15.9", "title": "重新禁用无状态（TLSv1.2）会话票证的发送", "evidence": {"same_day": true, "patch_ids": ["e6cebfad3aad0c8d072f2f1918b6b6b7"], "statement_hash": "81b778f3e948b5314b4543d7cf5e204e3fa6d1ec0472f15d70c418f10b090349"}, "url": "/docs/compare/?release=15.9#15.9-cecd585ff0a2367d", "source_url": "/docs/release/15.9/#ZH-AUTO-RELEASE-15-SECT2-18"}, {"db_id": "0112f28fcf5a23da6e718911b44abaca", "kind": "equivalent", "version": "14.14", "label": "14.14", "title": "重新禁用无状态（TLSv1.2）会话票证的发送", "evidence": {"same_day": true, "patch_ids": ["e6cebfad3aad0c8d072f2f1918b6b6b7"], "statement_hash": "81b778f3e948b5314b4543d7cf5e204e3fa6d1ec0472f15d70c418f10b090349"}, "url": "/docs/compare/?release=14.14#14.14-cecd585ff0a2367d", "source_url": "/docs/release/14.14/#ZH-AUTO-RELEASE-14-SECT2-18"}, {"db_id": "b7359ad3db7de24046dc28f08b2bd62d", "kind": "equivalent", "version": "12.21", "label": "12.21", "title": "重新禁用无状态（TLSv1.2）会话票证的发送", "evidence": {"same_day": true, "patch_ids": ["e6cebfad3aad0c8d072f2f1918b6b6b7"], "statement_hash": "81b778f3e948b5314b4543d7cf5e204e3fa6d1ec0472f15d70c418f10b090349"}, "url": "/docs/compare/?release=12.21#12.21-66ba8ce250ce6155", "source_url": "/docs/release/12.21/#id-1.11.6.7.6"}]}, {"id": "13.17-fe1daeeaab3f92bc", "cves": [], "html": "<p>避免在删除具有大量 ACL（权限）条目的数据库时出现 <span>“<span>wrong tuple length</span>”</span> 错误（Ayush Tiwari）<a href=\"https://postgr.es/c/33c615f76\">§</a> <a href=\"https://postgr.es/c/4e7531fda\">§</a></p>", "text": "避免在删除具有大量 ACL（权限）条目的数据库时出现 “wrong tuple length” 错误（Ayush Tiwari）§ §", "title": "避免在删除具有大量 ACL（权限）条目的数据库时出现 “wrong tuple length” 错误", "commits": ["33c615f76", "4e7531fda"], "section": "变更", "category": "improvement", "source_url": "/docs/release/13.17/#id-1.11.6.12.5", "source_hash": "be958383d97f179dd6ba180db1bc145ffb3b50c92a00c4d1acfbf2d372d46de2", "section_path": ["变更"], "commit_groups": [["0f92b230f", "33c615f76", "545794515", "b3bb1e24b", "d1da80115", "df9c5fb58", "f18d3e47f"], ["3acbe198e", "4e7531fda", "5cb902e9d", "9d42627bc", "de8770b47", "e498d22e2", "f6991cafa"]], "identity_text": "Avoid wrong tuple length failure when dropping a database with many ACL (permission) entries (Ayush Tiwari)", "commit_aliases": ["0f92b230f", "33c615f76", "3acbe198e", "4e7531fda", "545794515", "5cb902e9d", "9d42627bc", "b3bb1e24b", "d1da80115", "de8770b47", "df9c5fb58", "e498d22e2", "f18d3e47f", "f6991cafa"], "source_commits": ["33c615f76", "4e7531fda"], "source_entry_id": "13.17/changes/024", "db_id": "41492e09655ab5d4b5a09e54d3a9bee4", "patch_ids": ["8d282756f28ac5a3716c5f0b5cf4b9d9", "e86654af09b77a529a5157f8c108279d"], "statement_hash": "85fb96fd8690635fad800c5e79ed3c68d63e664df40723b8626cb0020370d713", "relations": [{"rule": 2, "type": "equivalent", "target": "271885603384cb84f85433af970c06d9", "evidence": {"same_day": true, "patch_ids": ["8d282756f28ac5a3716c5f0b5cf4b9d9", "e86654af09b77a529a5157f8c108279d"], "statement_hash": "85fb96fd8690635fad800c5e79ed3c68d63e664df40723b8626cb0020370d713"}}, {"rule": 2, "type": "equivalent", "target": "4a896eab071facdbf18037ed73f3c567", "evidence": {"same_day": true, "patch_ids": ["8d282756f28ac5a3716c5f0b5cf4b9d9", "e86654af09b77a529a5157f8c108279d"], "statement_hash": "85fb96fd8690635fad800c5e79ed3c68d63e664df40723b8626cb0020370d713"}}, {"rule": 2, "type": "equivalent", "target": "706415eac03c3f63985780d67f0dea0a", "evidence": {"same_day": true, "patch_ids": ["8d282756f28ac5a3716c5f0b5cf4b9d9", "e86654af09b77a529a5157f8c108279d"], "statement_hash": "85fb96fd8690635fad800c5e79ed3c68d63e664df40723b8626cb0020370d713"}}, {"rule": 2, "type": "equivalent", "target": "7a39555a8182bb0eac9479acc405fbf4", "evidence": {"same_day": true, "patch_ids": ["8d282756f28ac5a3716c5f0b5cf4b9d9", "e86654af09b77a529a5157f8c108279d"], "statement_hash": "85fb96fd8690635fad800c5e79ed3c68d63e664df40723b8626cb0020370d713"}}], "version": "13.17", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "271885603384cb84f85433af970c06d9", "kind": "equivalent", "version": "16.5", "label": "16.5", "title": "避免在删除具有大量 ACL（权限）条目的数据库时出现 “wrong tuple length” 错误", "evidence": {"same_day": true, "patch_ids": ["8d282756f28ac5a3716c5f0b5cf4b9d9", "e86654af09b77a529a5157f8c108279d"], "statement_hash": "85fb96fd8690635fad800c5e79ed3c68d63e664df40723b8626cb0020370d713"}, "url": "/docs/compare/?release=16.5#16.5-5df4fab8f81b1aa7", "source_url": "/docs/release/16.5/#RELEASE-16-5-CHANGES"}, {"db_id": "706415eac03c3f63985780d67f0dea0a", "kind": "equivalent", "version": "15.9", "label": "15.9", "title": "避免在删除具有大量 ACL（权限）条目的数据库时出现 “wrong tuple length” 错误", "evidence": {"same_day": true, "patch_ids": ["8d282756f28ac5a3716c5f0b5cf4b9d9", "e86654af09b77a529a5157f8c108279d"], "statement_hash": "85fb96fd8690635fad800c5e79ed3c68d63e664df40723b8626cb0020370d713"}, "url": "/docs/compare/?release=15.9#15.9-82e6abef04eb1687", "source_url": "/docs/release/15.9/#ZH-AUTO-RELEASE-15-SECT2-18"}, {"db_id": "4a896eab071facdbf18037ed73f3c567", "kind": "equivalent", "version": "14.14", "label": "14.14", "title": "避免在删除具有大量 ACL（权限）条目的数据库时出现 “wrong tuple length” 错误", "evidence": {"same_day": true, "patch_ids": ["8d282756f28ac5a3716c5f0b5cf4b9d9", "e86654af09b77a529a5157f8c108279d"], "statement_hash": "85fb96fd8690635fad800c5e79ed3c68d63e664df40723b8626cb0020370d713"}, "url": "/docs/compare/?release=14.14#14.14-82e6abef04eb1687", "source_url": "/docs/release/14.14/#ZH-AUTO-RELEASE-14-SECT2-18"}, {"db_id": "7a39555a8182bb0eac9479acc405fbf4", "kind": "equivalent", "version": "12.21", "label": "12.21", "title": "避免在删除具有大量 ACL（权限）条目的数据库时出现 “wrong tuple length” 错误", "evidence": {"same_day": true, "patch_ids": ["8d282756f28ac5a3716c5f0b5cf4b9d9", "e86654af09b77a529a5157f8c108279d"], "statement_hash": "85fb96fd8690635fad800c5e79ed3c68d63e664df40723b8626cb0020370d713"}, "url": "/docs/compare/?release=12.21#12.21-674ac12cd654f851", "source_url": "/docs/release/12.21/#id-1.11.6.7.6"}]}, {"id": "13.17-b27e98af747e5bea", "cves": [], "html": "<p>允许在并行工作进程中调整 <code>session_authorization</code> 和 <code>role</code> 设置（Tom Lane）<a href=\"https://postgr.es/c/adf9808fa\">§</a></p>\n<p>我们的代码打算允许可修改的服务器设置通过函数 <code>SET</code> 子句来设置，但在并行工作进程中不允许其他方式。这两个设置的 <code>SET</code> 子句却失败了。</p>", "text": "允许在并行工作进程中调整 session_authorization 和 role 设置（Tom Lane）§ 我们的代码打算允许可修改的服务器设置通过函数 SET 子句来设置，但在并行工作进程中不允许其他方式。这两个设置的 SET 子句却失败了。", "title": "允许在并行工作进程中调整 session_authorization 和 role 设置", "commits": ["adf9808fa"], "section": "变更", "category": "improvement", "source_url": "/docs/release/13.17/#id-1.11.6.12.5", "source_hash": "926b1dcca1a19281956703c12a9c196fa68e52a856d6844928ed10e7782fb8de", "section_path": ["变更"], "commit_groups": [["2b8d33f66", "2f4e895be", "364de74cf", "546a26b3d", "adc28d01e", "adf9808fa", "f3ab5d3a2"]], "identity_text": "Allow adjusting the session_authorization and role settings in parallel workers (Tom Lane) Our code intends to allow modifiable server settings to be set by function SET clauses, but not otherwise within a parallel worker. SET clauses failed for these two settings, though.", "commit_aliases": ["2b8d33f66", "2f4e895be", "364de74cf", "546a26b3d", "adc28d01e", "adf9808fa", "f3ab5d3a2"], "source_commits": ["adf9808fa"], "source_entry_id": "13.17/changes/025", "db_id": "611c3b75ebbcbbd2adb6cfdfa6e7e07b", "patch_ids": ["9fb0285de811e96636692fdb994eebb2"], "statement_hash": "5584c2740898df1554e42dd82a98e9e375572dd4071ba58d7df321bcacfcde9f", "relations": [{"rule": 2, "type": "equivalent", "target": "0362b2ef242ed449636a217791aa2a71", "evidence": {"same_day": true, "patch_ids": ["9fb0285de811e96636692fdb994eebb2"], "statement_hash": "5584c2740898df1554e42dd82a98e9e375572dd4071ba58d7df321bcacfcde9f"}}, {"rule": 2, "type": "equivalent", "target": "14b0a73709a61b5ec2efaf845842d432", "evidence": {"same_day": true, "patch_ids": ["9fb0285de811e96636692fdb994eebb2"], "statement_hash": "5584c2740898df1554e42dd82a98e9e375572dd4071ba58d7df321bcacfcde9f"}}, {"rule": 2, "type": "equivalent", "target": "238c4d36e07a222e4ad07db597043d52", "evidence": {"same_day": true, "patch_ids": ["9fb0285de811e96636692fdb994eebb2"], "statement_hash": "5584c2740898df1554e42dd82a98e9e375572dd4071ba58d7df321bcacfcde9f"}}, {"rule": 2, "type": "equivalent", "target": "fae8672f676a263baa391712d9542d80", "evidence": {"same_day": true, "patch_ids": ["9fb0285de811e96636692fdb994eebb2"], "statement_hash": "5584c2740898df1554e42dd82a98e9e375572dd4071ba58d7df321bcacfcde9f"}}], "version": "13.17", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "14b0a73709a61b5ec2efaf845842d432", "kind": "equivalent", "version": "16.5", "label": "16.5", "title": "允许在并行工作进程中调整 session_authorization 和 role 设置", "evidence": {"same_day": true, "patch_ids": ["9fb0285de811e96636692fdb994eebb2"], "statement_hash": "5584c2740898df1554e42dd82a98e9e375572dd4071ba58d7df321bcacfcde9f"}, "url": "/docs/compare/?release=16.5#16.5-a390e6e9d7c4fcd5", "source_url": "/docs/release/16.5/#RELEASE-16-5-CHANGES"}, {"db_id": "0362b2ef242ed449636a217791aa2a71", "kind": "equivalent", "version": "15.9", "label": "15.9", "title": "允许在并行工作进程中调整 session_authorization 和 role 设置", "evidence": {"same_day": true, "patch_ids": ["9fb0285de811e96636692fdb994eebb2"], "statement_hash": "5584c2740898df1554e42dd82a98e9e375572dd4071ba58d7df321bcacfcde9f"}, "url": "/docs/compare/?release=15.9#15.9-c4d927bdb3125aa1", "source_url": "/docs/release/15.9/#ZH-AUTO-RELEASE-15-SECT2-18"}, {"db_id": "fae8672f676a263baa391712d9542d80", "kind": "equivalent", "version": "14.14", "label": "14.14", "title": "允许在并行工作进程中调整 session_authorization 和 role 设置", "evidence": {"same_day": true, "patch_ids": ["9fb0285de811e96636692fdb994eebb2"], "statement_hash": "5584c2740898df1554e42dd82a98e9e375572dd4071ba58d7df321bcacfcde9f"}, "url": "/docs/compare/?release=14.14#14.14-c4d927bdb3125aa1", "source_url": "/docs/release/14.14/#ZH-AUTO-RELEASE-14-SECT2-18"}, {"db_id": "238c4d36e07a222e4ad07db597043d52", "kind": "equivalent", "version": "12.21", "label": "12.21", "title": "允许在并行工作进程中调整 session_authorization 和 role 设置", "evidence": {"same_day": true, "patch_ids": ["9fb0285de811e96636692fdb994eebb2"], "statement_hash": "5584c2740898df1554e42dd82a98e9e375572dd4071ba58d7df321bcacfcde9f"}, "url": "/docs/compare/?release=12.21#12.21-80c4e1f975e4b720", "source_url": "/docs/release/12.21/#id-1.11.6.7.6"}]}, {"id": "13.17-f7cac22714a4f7fa", "cves": [], "html": "<p>修复当 <code>CALL</code> 位于 PL/pgSQL 的 <code>EXCEPTION</code> 块中时，从 <code>CALL</code> 语句参数列表中调用的稳定函数的行为（Tom Lane）<a href=\"https://postgr.es/c/0d83ced3c\">§</a></p>\n<p>与我们之前季度发布中的类似修复一样，这种情况允许此类函数被传递错误的快照，导致它们看到自外部事务开始以来修改的行的过时值。</p>", "text": "修复当 CALL 位于 PL/pgSQL 的 EXCEPTION 块中时，从 CALL 语句参数列表中调用的稳定函数的行为（Tom Lane）§ 与我们之前季度发布中的类似修复一样，这种情况允许此类函数被传递错误的快照，导致它们看到自外部事务开始以来修改的行的过时值。", "title": "修复当 CALL 位于 PL/pgSQL 的 EXCEPTION 块中时，从 CALL 语句参数列表中调用的稳定函数的行为", "commits": ["0d83ced3c"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/13.17/#id-1.11.6.12.5", "source_hash": "be7241f91e3ae7c7575474dbada46fc8bf04e1e290ff9ac1fdb2c3837e76e743", "section_path": ["变更"], "commit_groups": [["0d83ced3c", "25d639eea", "ab13c46ff", "b35231989", "b5eef7539", "c96de42c4", "cf1443d67"]], "identity_text": "Fix behavior of stable functions called from a CALL statement's argument list, when the CALL is within a PL/pgSQL EXCEPTION block (Tom Lane) As with a similar fix in our previous quarterly releases, this case allowed such functions to be passed the wrong snapshot, causing them to see stale values of rows modified since the start of the outer transaction.", "commit_aliases": ["0d83ced3c", "25d639eea", "ab13c46ff", "b35231989", "b5eef7539", "c96de42c4", "cf1443d67"], "source_commits": ["0d83ced3c"], "source_entry_id": "13.17/changes/026", "db_id": "a04abc49096f3811d441a2197b029a6f", "patch_ids": ["ae436882c6ec585ee00e5aaf3b0ba982"], "statement_hash": "87a8d9c87ab798ec77011d823d44a15cc22322eb4a68938b54bef8818a6709c9", "relations": [{"rule": 2, "type": "equivalent", "target": "5d81893dc288c0936c9c48f30ecb9eb4", "evidence": {"same_day": true, "patch_ids": ["ae436882c6ec585ee00e5aaf3b0ba982"], "statement_hash": "87a8d9c87ab798ec77011d823d44a15cc22322eb4a68938b54bef8818a6709c9"}}, {"rule": 2, "type": "equivalent", "target": "701cddbee61b49f9376bd78f39126e40", "evidence": {"same_day": true, "patch_ids": ["ae436882c6ec585ee00e5aaf3b0ba982"], "statement_hash": "87a8d9c87ab798ec77011d823d44a15cc22322eb4a68938b54bef8818a6709c9"}}, {"rule": 2, "type": "equivalent", "target": "983c4b91d18d1194eb6f789b54cbff5b", "evidence": {"same_day": true, "patch_ids": ["ae436882c6ec585ee00e5aaf3b0ba982"], "statement_hash": "87a8d9c87ab798ec77011d823d44a15cc22322eb4a68938b54bef8818a6709c9"}}, {"rule": 2, "type": "equivalent", "target": "c070d073d2b607186446f019fee68129", "evidence": {"same_day": true, "patch_ids": ["ae436882c6ec585ee00e5aaf3b0ba982"], "statement_hash": "87a8d9c87ab798ec77011d823d44a15cc22322eb4a68938b54bef8818a6709c9"}}, {"rule": 2, "type": "equivalent", "target": "efdb2a8ecc917aaf8d1032ff897f1f9d", "evidence": {"same_day": true, "patch_ids": ["ae436882c6ec585ee00e5aaf3b0ba982"], "statement_hash": "87a8d9c87ab798ec77011d823d44a15cc22322eb4a68938b54bef8818a6709c9"}}], "version": "13.17", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "5d81893dc288c0936c9c48f30ecb9eb4", "kind": "equivalent", "version": "17.1", "label": "17.1", "title": "修复当 CALL 位于 PL/pgSQL 的 EXCEPTION 块中时，从 CALL 语句参数列表中调用的稳定函数的行为", "evidence": {"same_day": true, "patch_ids": ["ae436882c6ec585ee00e5aaf3b0ba982"], "statement_hash": "87a8d9c87ab798ec77011d823d44a15cc22322eb4a68938b54bef8818a6709c9"}, "url": "/docs/compare/?release=17.1#17.1-42a6ede2406a0663", "source_url": "/docs/release/17.1/#RELEASE-17-1-CHANGES"}, {"db_id": "983c4b91d18d1194eb6f789b54cbff5b", "kind": "equivalent", "version": "16.5", "label": "16.5", "title": "修复当 CALL 位于 PL/pgSQL 的 EXCEPTION 块中时，从 CALL 语句参数列表中调用的稳定函数的行为", "evidence": {"same_day": true, "patch_ids": ["ae436882c6ec585ee00e5aaf3b0ba982"], "statement_hash": "87a8d9c87ab798ec77011d823d44a15cc22322eb4a68938b54bef8818a6709c9"}, "url": "/docs/compare/?release=16.5#16.5-4b8849d9ca73753c", "source_url": "/docs/release/16.5/#RELEASE-16-5-CHANGES"}, {"db_id": "701cddbee61b49f9376bd78f39126e40", "kind": "equivalent", "version": "15.9", "label": "15.9", "title": "修复当 CALL 位于 PL/pgSQL 的 EXCEPTION 块中时，从 CALL 语句参数列表中调用的稳定函数的行为", "evidence": {"same_day": true, "patch_ids": ["ae436882c6ec585ee00e5aaf3b0ba982"], "statement_hash": "87a8d9c87ab798ec77011d823d44a15cc22322eb4a68938b54bef8818a6709c9"}, "url": "/docs/compare/?release=15.9#15.9-f03b3171c22729d1", "source_url": "/docs/release/15.9/#ZH-AUTO-RELEASE-15-SECT2-18"}, {"db_id": "efdb2a8ecc917aaf8d1032ff897f1f9d", "kind": "equivalent", "version": "14.14", "label": "14.14", "title": "修复当 CALL 位于 PL/pgSQL 的 EXCEPTION 块中时，从 CALL 语句参数列表中调用的稳定函数的行为", "evidence": {"same_day": true, "patch_ids": ["ae436882c6ec585ee00e5aaf3b0ba982"], "statement_hash": "87a8d9c87ab798ec77011d823d44a15cc22322eb4a68938b54bef8818a6709c9"}, "url": "/docs/compare/?release=14.14#14.14-f03b3171c22729d1", "source_url": "/docs/release/14.14/#ZH-AUTO-RELEASE-14-SECT2-18"}, {"db_id": "c070d073d2b607186446f019fee68129", "kind": "equivalent", "version": "12.21", "label": "12.21", "title": "修复当 CALL 位于 PL/pgSQL 的 EXCEPTION 块中时，从 CALL 语句参数列表中调用的稳定函数的行为", "evidence": {"same_day": true, "patch_ids": ["ae436882c6ec585ee00e5aaf3b0ba982"], "statement_hash": "87a8d9c87ab798ec77011d823d44a15cc22322eb4a68938b54bef8818a6709c9"}, "url": "/docs/compare/?release=12.21#12.21-2c76105ecb91906f", "source_url": "/docs/release/12.21/#id-1.11.6.7.6"}]}, {"id": "13.17-61d7b37fac36face", "cves": [], "html": "<p>以与其他整数值选项相同的方式解析 <span>libpq</span> 的 <code>keepalives</code> 连接选项（Yuto Sasaki）<a href=\"https://postgr.es/c/2120eda94\">§</a></p>\n<p>此处使用的代码拒绝选项值中的尾部空白，与其他情况不同。这在 <span>ecpg</span> 的使用中被证明是有问题的。</p>", "text": "以与其他整数值选项相同的方式解析 libpq 的 keepalives 连接选项（Yuto Sasaki）§ 此处使用的代码拒绝选项值中的尾部空白，与其他情况不同。这在 ecpg 的使用中被证明是有问题的。", "title": "以与其他整数值选项相同的方式解析 libpq 的 keepalives 连接选项", "commits": ["2120eda94"], "section": "变更", "category": "improvement", "source_url": "/docs/release/13.17/#id-1.11.6.12.5", "source_hash": "878d51ee68f65ed75a0fe2d18d109b9a02b2ae66254b80422c63ddbb5d0ea1f2", "section_path": ["变更"], "commit_groups": [["2120eda94", "47d8a15de", "65f431aff", "920d51979", "bb8c89dbc", "c7a201053", "e7af9b52f"]], "identity_text": "Parse libpq's keepalives connection option in the same way as other integer-valued options (Yuto Sasaki) The coding used here rejected trailing whitespace in the option value, unlike other cases. This turns out to be problematic in ecpg's usage, for example.", "commit_aliases": ["2120eda94", "47d8a15de", "65f431aff", "920d51979", "bb8c89dbc", "c7a201053", "e7af9b52f"], "source_commits": ["2120eda94"], "source_entry_id": "13.17/changes/027", "db_id": "9bc5dfea58bdf41e6947b117f85b50b7", "patch_ids": ["2465fb0d4f04066f288d72fdd4794d59"], "statement_hash": "a4d5a5b5497f1afbbc05c01b4425859a1934a91bc6ee484bfab9a95cf7fd1946", "relations": [{"rule": 2, "type": "equivalent", "target": "727c393e1ef5548b5eeebdcd27d10beb", "evidence": {"same_day": true, "patch_ids": ["2465fb0d4f04066f288d72fdd4794d59"], "statement_hash": "a4d5a5b5497f1afbbc05c01b4425859a1934a91bc6ee484bfab9a95cf7fd1946"}}, {"rule": 2, "type": "equivalent", "target": "7e09a91933f87c4ae53f0fb08ec6ceee", "evidence": {"same_day": true, "patch_ids": ["2465fb0d4f04066f288d72fdd4794d59"], "statement_hash": "a4d5a5b5497f1afbbc05c01b4425859a1934a91bc6ee484bfab9a95cf7fd1946"}}, {"rule": 2, "type": "equivalent", "target": "b1abc23dad8d1bb9fecf44d14b4d8519", "evidence": {"same_day": true, "patch_ids": ["2465fb0d4f04066f288d72fdd4794d59"], "statement_hash": "a4d5a5b5497f1afbbc05c01b4425859a1934a91bc6ee484bfab9a95cf7fd1946"}}, {"rule": 2, "type": "equivalent", "target": "d8a0a55bc2ad3a1eeb862bcaaf0da1c6", "evidence": {"same_day": true, "patch_ids": ["2465fb0d4f04066f288d72fdd4794d59"], "statement_hash": "a4d5a5b5497f1afbbc05c01b4425859a1934a91bc6ee484bfab9a95cf7fd1946"}}, {"rule": 2, "type": "equivalent", "target": "f43516cc9cb41aef226fbd6ec1a2178e", "evidence": {"same_day": true, "patch_ids": ["2465fb0d4f04066f288d72fdd4794d59"], "statement_hash": "a4d5a5b5497f1afbbc05c01b4425859a1934a91bc6ee484bfab9a95cf7fd1946"}}], "version": "13.17", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "7e09a91933f87c4ae53f0fb08ec6ceee", "kind": "equivalent", "version": "17.1", "label": "17.1", "title": "以与其他整数值选项相同的方式解析 libpq 的 keepalives 连接选项", "evidence": {"same_day": true, "patch_ids": ["2465fb0d4f04066f288d72fdd4794d59"], "statement_hash": "a4d5a5b5497f1afbbc05c01b4425859a1934a91bc6ee484bfab9a95cf7fd1946"}, "url": "/docs/compare/?release=17.1#17.1-a922aa3daef9edf6", "source_url": "/docs/release/17.1/#RELEASE-17-1-CHANGES"}, {"db_id": "f43516cc9cb41aef226fbd6ec1a2178e", "kind": "equivalent", "version": "16.5", "label": "16.5", "title": "以与其他整数值选项相同的方式解析 libpq 的 keepalives 连接选项", "evidence": {"same_day": true, "patch_ids": ["2465fb0d4f04066f288d72fdd4794d59"], "statement_hash": "a4d5a5b5497f1afbbc05c01b4425859a1934a91bc6ee484bfab9a95cf7fd1946"}, "url": "/docs/compare/?release=16.5#16.5-421b9f7051ea9b30", "source_url": "/docs/release/16.5/#RELEASE-16-5-CHANGES"}, {"db_id": "b1abc23dad8d1bb9fecf44d14b4d8519", "kind": "equivalent", "version": "15.9", "label": "15.9", "title": "以与其他整数值选项相同的方式解析 libpq 的 keepalives 连接选项", "evidence": {"same_day": true, "patch_ids": ["2465fb0d4f04066f288d72fdd4794d59"], "statement_hash": "a4d5a5b5497f1afbbc05c01b4425859a1934a91bc6ee484bfab9a95cf7fd1946"}, "url": "/docs/compare/?release=15.9#15.9-11149b752f003764", "source_url": "/docs/release/15.9/#ZH-AUTO-RELEASE-15-SECT2-18"}, {"db_id": "727c393e1ef5548b5eeebdcd27d10beb", "kind": "equivalent", "version": "14.14", "label": "14.14", "title": "以与其他整数值选项相同的方式解析 libpq 的 keepalives 连接选项", "evidence": {"same_day": true, "patch_ids": ["2465fb0d4f04066f288d72fdd4794d59"], "statement_hash": "a4d5a5b5497f1afbbc05c01b4425859a1934a91bc6ee484bfab9a95cf7fd1946"}, "url": "/docs/compare/?release=14.14#14.14-11149b752f003764", "source_url": "/docs/release/14.14/#ZH-AUTO-RELEASE-14-SECT2-18"}, {"db_id": "d8a0a55bc2ad3a1eeb862bcaaf0da1c6", "kind": "equivalent", "version": "12.21", "label": "12.21", "title": "以与其他整数值选项相同的方式解析 libpq 的 keepalives 连接选项", "evidence": {"same_day": true, "patch_ids": ["2465fb0d4f04066f288d72fdd4794d59"], "statement_hash": "a4d5a5b5497f1afbbc05c01b4425859a1934a91bc6ee484bfab9a95cf7fd1946"}, "url": "/docs/compare/?release=12.21#12.21-908e622976bf6b0d", "source_url": "/docs/release/12.21/#id-1.11.6.7.6"}]}, {"id": "13.17-d22cefbf78809722", "cves": [], "html": "<p>避免在 <span>ecpglib</span> 中使用 <code>pnstrdup()</code>（Jacob Champion）<a href=\"https://postgr.es/c/f0096ef13\">§</a></p>\n<p>该函数在内存不足时会调用 <code>exit()</code>，这在库中是不可取的。调用代码已经正确地处理了分配失败。</p>", "text": "避免在 ecpglib 中使用 pnstrdup()（Jacob Champion）§ 该函数在内存不足时会调用 exit()，这在库中是不可取的。调用代码已经正确地处理了分配失败。", "title": "避免在 ecpglib 中使用 pnstrdup()", "commits": ["f0096ef13"], "section": "变更", "category": "improvement", "source_url": "/docs/release/13.17/#id-1.11.6.12.5", "source_hash": "137f724f096fb4d28824b4bceba4502ebea7bbf6b55ae34ae6fd5ab6135a0c17", "section_path": ["变更"], "commit_groups": [["2de129b35", "355718553", "5388216f6", "e9e05c655", "ee2997c67", "f0096ef13"]], "identity_text": "Avoid use of pnstrdup() in ecpglib (Jacob Champion) That function will call exit() on out-of-memory, which is undesirable in a library. The calling code already handles allocation failures properly.", "commit_aliases": ["2de129b35", "355718553", "5388216f6", "e9e05c655", "ee2997c67", "f0096ef13"], "source_commits": ["f0096ef13"], "source_entry_id": "13.17/changes/028", "db_id": "d227915d2c4bbd6a8755f5311e2f7db1", "patch_ids": ["aad0b32a3b2b7c4e04d02c5df0b96e6f"], "statement_hash": "c4c1fbf1d07295cdccc11904baac054eb7bc87b8eaf664b1e08cd18c4a2b8a82", "relations": [{"rule": 2, "type": "equivalent", "target": "042869ea8dcb0154523e3e0c3b61a89c", "evidence": {"same_day": true, "patch_ids": ["aad0b32a3b2b7c4e04d02c5df0b96e6f"], "statement_hash": "c4c1fbf1d07295cdccc11904baac054eb7bc87b8eaf664b1e08cd18c4a2b8a82"}}, {"rule": 2, "type": "equivalent", "target": "b158e79c86a58397b5394264ab4306ce", "evidence": {"same_day": true, "patch_ids": ["aad0b32a3b2b7c4e04d02c5df0b96e6f"], "statement_hash": "c4c1fbf1d07295cdccc11904baac054eb7bc87b8eaf664b1e08cd18c4a2b8a82"}}, {"rule": 2, "type": "equivalent", "target": "c87a6f5d287dca2ea06dad48546d0c33", "evidence": {"same_day": true, "patch_ids": ["aad0b32a3b2b7c4e04d02c5df0b96e6f"], "statement_hash": "c4c1fbf1d07295cdccc11904baac054eb7bc87b8eaf664b1e08cd18c4a2b8a82"}}], "version": "13.17", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "c87a6f5d287dca2ea06dad48546d0c33", "kind": "equivalent", "version": "16.5", "label": "16.5", "title": "避免在 ecpglib 中使用 pnstrdup()", "evidence": {"same_day": true, "patch_ids": ["aad0b32a3b2b7c4e04d02c5df0b96e6f"], "statement_hash": "c4c1fbf1d07295cdccc11904baac054eb7bc87b8eaf664b1e08cd18c4a2b8a82"}, "url": "/docs/compare/?release=16.5#16.5-362e68bb37dda23a", "source_url": "/docs/release/16.5/#RELEASE-16-5-CHANGES"}, {"db_id": "b158e79c86a58397b5394264ab4306ce", "kind": "equivalent", "version": "15.9", "label": "15.9", "title": "避免在 ecpglib 中使用 pnstrdup()", "evidence": {"same_day": true, "patch_ids": ["aad0b32a3b2b7c4e04d02c5df0b96e6f"], "statement_hash": "c4c1fbf1d07295cdccc11904baac054eb7bc87b8eaf664b1e08cd18c4a2b8a82"}, "url": "/docs/compare/?release=15.9#15.9-6e6cc05fc1fea0a7", "source_url": "/docs/release/15.9/#ZH-AUTO-RELEASE-15-SECT2-18"}, {"db_id": "042869ea8dcb0154523e3e0c3b61a89c", "kind": "equivalent", "version": "14.14", "label": "14.14", "title": "避免在 ecpglib 中使用 pnstrdup()", "evidence": {"same_day": true, "patch_ids": ["aad0b32a3b2b7c4e04d02c5df0b96e6f"], "statement_hash": "c4c1fbf1d07295cdccc11904baac054eb7bc87b8eaf664b1e08cd18c4a2b8a82"}, "url": "/docs/compare/?release=14.14#14.14-6e6cc05fc1fea0a7", "source_url": "/docs/release/14.14/#ZH-AUTO-RELEASE-14-SECT2-18"}]}, {"id": "13.17-b43cbde21c10350a", "cves": [], "html": "<p>修复 <span>ecpglib</span> 中解析不正确日期时间输入时的越界读取（Bruce Momjian，Pavel Nekrasov）<a href=\"https://postgr.es/c/fcafbaadf\">§</a></p>\n<p>有可能试图读取常量数组起始位置之前的位置。不过实际影响似乎很小。</p>", "text": "修复 ecpglib 中解析不正确日期时间输入时的越界读取（Bruce Momjian，Pavel Nekrasov）§ 有可能试图读取常量数组起始位置之前的位置。不过实际影响似乎很小。", "title": "修复 ecpglib 中解析不正确日期时间输入时的越界读取", "commits": ["fcafbaadf"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/13.17/#id-1.11.6.12.5", "source_hash": "1fedbc52a7cc9c7e044df110c845e946fea70423e14ae8e4d0b98100b93eaad1", "section_path": ["变更"], "commit_groups": [["2c37cb26f", "335501fb2", "9a51d4af1", "9ecfd8a48", "a0bff38d1", "a1e613b81", "fcafbaadf"]], "identity_text": "In ecpglib, fix out-of-bounds read when parsing incorrect datetime input (Bruce Momjian, Pavel Nekrasov) It was possible to try to read the location just before the start of a constant array. Real-world consequences seem minimal, though.", "commit_aliases": ["2c37cb26f", "335501fb2", "9a51d4af1", "9ecfd8a48", "a0bff38d1", "a1e613b81", "fcafbaadf"], "source_commits": ["fcafbaadf"], "source_entry_id": "13.17/changes/029", "db_id": "80eee80256c0e6b71e65aa9e92670dff", "patch_ids": ["6d12442b6d9d80d7f2923a3854691932"], "statement_hash": "fd725ea9d4ad0f110ed972492b2c7c4b3e8b7f15383cdca60a5609f422c83ea1", "relations": [{"rule": 2, "type": "equivalent", "target": "0e0f03b7d096ceb8efb241246cfdfc73", "evidence": {"same_day": true, "patch_ids": ["6d12442b6d9d80d7f2923a3854691932"], "statement_hash": "fd725ea9d4ad0f110ed972492b2c7c4b3e8b7f15383cdca60a5609f422c83ea1"}}, {"rule": 2, "type": "equivalent", "target": "1e77eaf900773e6236b6ffb21cd7fc1b", "evidence": {"same_day": true, "patch_ids": ["6d12442b6d9d80d7f2923a3854691932"], "statement_hash": "fd725ea9d4ad0f110ed972492b2c7c4b3e8b7f15383cdca60a5609f422c83ea1"}}, {"rule": 2, "type": "equivalent", "target": "3e8175be0a09cac5e3bff6077bbc630c", "evidence": {"same_day": true, "patch_ids": ["6d12442b6d9d80d7f2923a3854691932"], "statement_hash": "fd725ea9d4ad0f110ed972492b2c7c4b3e8b7f15383cdca60a5609f422c83ea1"}}, {"rule": 2, "type": "equivalent", "target": "7f2e5e6d89138f85f6e1120a399ebc31", "evidence": {"same_day": true, "patch_ids": ["6d12442b6d9d80d7f2923a3854691932"], "statement_hash": "fd725ea9d4ad0f110ed972492b2c7c4b3e8b7f15383cdca60a5609f422c83ea1"}}, {"rule": 2, "type": "equivalent", "target": "e34de0e447f0c8752a64af2e4886b995", "evidence": {"same_day": true, "patch_ids": ["6d12442b6d9d80d7f2923a3854691932"], "statement_hash": "fd725ea9d4ad0f110ed972492b2c7c4b3e8b7f15383cdca60a5609f422c83ea1"}}], "version": "13.17", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "1e77eaf900773e6236b6ffb21cd7fc1b", "kind": "equivalent", "version": "17.1", "label": "17.1", "title": "修复 ecpglib 中解析不正确日期时间输入时的越界读取", "evidence": {"same_day": true, "patch_ids": ["6d12442b6d9d80d7f2923a3854691932"], "statement_hash": "fd725ea9d4ad0f110ed972492b2c7c4b3e8b7f15383cdca60a5609f422c83ea1"}, "url": "/docs/compare/?release=17.1#17.1-529ff7381233cffe", "source_url": "/docs/release/17.1/#RELEASE-17-1-CHANGES"}, {"db_id": "e34de0e447f0c8752a64af2e4886b995", "kind": "equivalent", "version": "16.5", "label": "16.5", "title": "修复 ecpglib 中解析不正确日期时间输入时的越界读取", "evidence": {"same_day": true, "patch_ids": ["6d12442b6d9d80d7f2923a3854691932"], "statement_hash": "fd725ea9d4ad0f110ed972492b2c7c4b3e8b7f15383cdca60a5609f422c83ea1"}, "url": "/docs/compare/?release=16.5#16.5-21e8b24e87f4a12e", "source_url": "/docs/release/16.5/#RELEASE-16-5-CHANGES"}, {"db_id": "3e8175be0a09cac5e3bff6077bbc630c", "kind": "equivalent", "version": "15.9", "label": "15.9", "title": "修复 ecpglib 中解析不正确日期时间输入时的越界读取", "evidence": {"same_day": true, "patch_ids": ["6d12442b6d9d80d7f2923a3854691932"], "statement_hash": "fd725ea9d4ad0f110ed972492b2c7c4b3e8b7f15383cdca60a5609f422c83ea1"}, "url": "/docs/compare/?release=15.9#15.9-f6611c4aafbac4c8", "source_url": "/docs/release/15.9/#ZH-AUTO-RELEASE-15-SECT2-18"}, {"db_id": "7f2e5e6d89138f85f6e1120a399ebc31", "kind": "equivalent", "version": "14.14", "label": "14.14", "title": "修复 ecpglib 中解析不正确日期时间输入时的越界读取", "evidence": {"same_day": true, "patch_ids": ["6d12442b6d9d80d7f2923a3854691932"], "statement_hash": "fd725ea9d4ad0f110ed972492b2c7c4b3e8b7f15383cdca60a5609f422c83ea1"}, "url": "/docs/compare/?release=14.14#14.14-f6611c4aafbac4c8", "source_url": "/docs/release/14.14/#ZH-AUTO-RELEASE-14-SECT2-18"}, {"db_id": "0e0f03b7d096ceb8efb241246cfdfc73", "kind": "equivalent", "version": "12.21", "label": "12.21", "title": "修复 ecpglib 中解析不正确日期时间输入时的越界读取", "evidence": {"same_day": true, "patch_ids": ["6d12442b6d9d80d7f2923a3854691932"], "statement_hash": "fd725ea9d4ad0f110ed972492b2c7c4b3e8b7f15383cdca60a5609f422c83ea1"}, "url": "/docs/compare/?release=12.21#12.21-0da18d838f26abf4", "source_url": "/docs/release/12.21/#id-1.11.6.7.6"}]}, {"id": "13.17-d9fae3f62828b503", "cves": [], "html": "<p>在 <span>pg_rewind</span> 的调试输出中包含源时间线历史（Heikki Linnakangas）<a href=\"https://postgr.es/c/c943e2aae\">§</a></p>\n<p>这本来就是设计意图，但由于编码错误，源历史总是打印为空。</p>", "text": "在 pg_rewind 的调试输出中包含源时间线历史（Heikki Linnakangas）§ 这本来就是设计意图，但由于编码错误，源历史总是打印为空。", "title": "在 pg_rewind 的调试输出中包含源时间线历史", "commits": ["c943e2aae"], "section": "变更", "category": "improvement", "source_url": "/docs/release/13.17/#id-1.11.6.12.5", "source_hash": "83e853b570f7ca603e0250d14688b8264a081aa1eb532c14b8f184b3e25c0f15", "section_path": ["变更"], "commit_groups": [["49dc191bd", "8b86e289f", "a7bf3e668", "b5a5027c9", "bb5592cac", "c943e2aae", "e8240dbd8"]], "identity_text": "Include the source timeline history in pg_rewind's debug output (Heikki Linnakangas) This was the intention to begin with, but a coding error caused the source history to always print as empty.", "commit_aliases": ["49dc191bd", "8b86e289f", "a7bf3e668", "b5a5027c9", "bb5592cac", "c943e2aae", "e8240dbd8"], "source_commits": ["c943e2aae"], "source_entry_id": "13.17/changes/030", "db_id": "c474ed30f6b3c5edbb697495f905fcc8", "patch_ids": ["f2c950789fc0c2fbdcaf3218cacac165"], "statement_hash": "8dd3f5dd631f192019968700ac8f3c905d0f77a8380407ff7393c8740898e587", "relations": [{"rule": 2, "type": "equivalent", "target": "3a7ab35f3f0a0137fc7e78326632f035", "evidence": {"same_day": true, "patch_ids": ["f2c950789fc0c2fbdcaf3218cacac165"], "statement_hash": "8dd3f5dd631f192019968700ac8f3c905d0f77a8380407ff7393c8740898e587"}}, {"rule": 2, "type": "equivalent", "target": "6ebb357a3219db78d705a9a5670870b3", "evidence": {"same_day": true, "patch_ids": ["f2c950789fc0c2fbdcaf3218cacac165"], "statement_hash": "8dd3f5dd631f192019968700ac8f3c905d0f77a8380407ff7393c8740898e587"}}, {"rule": 2, "type": "equivalent", "target": "7ddad22cccbc198a72a8d2b34da825cb", "evidence": {"same_day": true, "patch_ids": ["f2c950789fc0c2fbdcaf3218cacac165"], "statement_hash": "8dd3f5dd631f192019968700ac8f3c905d0f77a8380407ff7393c8740898e587"}}, {"rule": 2, "type": "equivalent", "target": "d2003ff732300dcffb43d4c6a3f330a5", "evidence": {"same_day": true, "patch_ids": ["f2c950789fc0c2fbdcaf3218cacac165"], "statement_hash": "8dd3f5dd631f192019968700ac8f3c905d0f77a8380407ff7393c8740898e587"}}], "version": "13.17", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "6ebb357a3219db78d705a9a5670870b3", "kind": "equivalent", "version": "16.5", "label": "16.5", "title": "在 pg_rewind 的调试输出中包含源时间线历史", "evidence": {"same_day": true, "patch_ids": ["f2c950789fc0c2fbdcaf3218cacac165"], "statement_hash": "8dd3f5dd631f192019968700ac8f3c905d0f77a8380407ff7393c8740898e587"}, "url": "/docs/compare/?release=16.5#16.5-df1413edc097bcbe", "source_url": "/docs/release/16.5/#RELEASE-16-5-CHANGES"}, {"db_id": "3a7ab35f3f0a0137fc7e78326632f035", "kind": "equivalent", "version": "15.9", "label": "15.9", "title": "在 pg_rewind 的调试输出中包含源时间线历史", "evidence": {"same_day": true, "patch_ids": ["f2c950789fc0c2fbdcaf3218cacac165"], "statement_hash": "8dd3f5dd631f192019968700ac8f3c905d0f77a8380407ff7393c8740898e587"}, "url": "/docs/compare/?release=15.9#15.9-ad8c015dfb3ae41d", "source_url": "/docs/release/15.9/#ZH-AUTO-RELEASE-15-SECT2-18"}, {"db_id": "d2003ff732300dcffb43d4c6a3f330a5", "kind": "equivalent", "version": "14.14", "label": "14.14", "title": "在 pg_rewind 的调试输出中包含源时间线历史", "evidence": {"same_day": true, "patch_ids": ["f2c950789fc0c2fbdcaf3218cacac165"], "statement_hash": "8dd3f5dd631f192019968700ac8f3c905d0f77a8380407ff7393c8740898e587"}, "url": "/docs/compare/?release=14.14#14.14-ad8c015dfb3ae41d", "source_url": "/docs/release/14.14/#ZH-AUTO-RELEASE-14-SECT2-18"}, {"db_id": "7ddad22cccbc198a72a8d2b34da825cb", "kind": "equivalent", "version": "12.21", "label": "12.21", "title": "在 pg_rewind 的调试输出中包含源时间线历史", "evidence": {"same_day": true, "patch_ids": ["f2c950789fc0c2fbdcaf3218cacac165"], "statement_hash": "8dd3f5dd631f192019968700ac8f3c905d0f77a8380407ff7393c8740898e587"}, "url": "/docs/compare/?release=12.21#12.21-723553f306b2eece", "source_url": "/docs/release/12.21/#id-1.11.6.7.6"}]}, {"id": "13.17-c01049553a0f3bc4", "cves": [], "html": "<p>修复 Windows 上关于连接点的行为异常，特别是在 <span>pg_rewind</span> 中（Alexandra Wang）<a href=\"https://postgr.es/c/fa56aa23f\">§</a> <a href=\"https://postgr.es/c/bb509a464\">§</a> <a href=\"https://postgr.es/c/ee219102d\">§</a> <a href=\"https://postgr.es/c/5c0b7581b\">§</a> <a href=\"https://postgr.es/c/56b39cce7\">§</a> <a href=\"https://postgr.es/c/b4363fc66\">§</a> <a href=\"https://postgr.es/c/a5abacecb\">§</a> <a href=\"https://postgr.es/c/f1cf64167\">§</a> <a href=\"https://postgr.es/c/a9beed676\">§</a></p>\n<p>这涉及回溯应用 Thomas Munro、Peter Eisentraut、Alexander Lakhin 和 Juan José Santamaría Flecha 之前的修复。这些更改最初出于谨慎未被回溯应用，但它们在较新分支中已使用足够长的时间，可以认为是安全的。</p>", "text": "修复 Windows 上关于连接点的行为异常，特别是在 pg_rewind 中（Alexandra Wang）§ § § § § § § § § 这涉及回溯应用 Thomas Munro、Peter Eisentraut、Alexander Lakhin 和 Juan José Santamaría Flecha 之前的修复。这些更改最初出于谨慎未被回溯应用，但它们在较新分支中已使用足够长的时间，可以认为是安全的。", "title": "修复 Windows 上关于连接点的行为异常，特别是在 pg_rewind 中", "commits": ["56b39cce7", "5c0b7581b", "a5abacecb", "a9beed676", "b4363fc66", "bb509a464", "ee219102d", "f1cf64167", "fa56aa23f"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/13.17/#id-1.11.6.12.5", "source_hash": "319bb43860125ae59b80d77d9de6cd4d95cfa7ce637fa0b975c53f53f6886085", "section_path": ["变更"], "commit_groups": [["02a4ec478", "b9d4a927d", "fa56aa23f"], ["1bf47d897", "56b39cce7"], ["5c0b7581b", "ce14dbbca"], ["895f23d9e", "b73c1496d", "ee219102d"], ["8a5e4982f", "bb509a464", "f2a4a137b"], ["a5abacecb"], ["a9beed676"], ["b4363fc66"], ["ca9921936", "f95ad555d"], ["f1cf64167"]], "identity_text": "Fix misbehavior with junction points on Windows, particularly in pg_rewind (Alexandra Wang) This entailed back-patching previous fixes by Thomas Munro, Peter Eisentraut, Alexander Lakhin, and Juan José Santamaría Flecha. Those changes were originally not back-patched out of caution, but they have been in use in later branches for long enough to deem them safe.", "commit_aliases": ["02a4ec478", "1bf47d897", "56b39cce7", "5c0b7581b", "895f23d9e", "8a5e4982f", "a5abacecb", "a9beed676", "b4363fc66", "b73c1496d", "b9d4a927d", "bb509a464", "ca9921936", "ce14dbbca", "ee219102d", "f1cf64167", "f2a4a137b", "f95ad555d", "fa56aa23f"], "source_commits": ["56b39cce7", "5c0b7581b", "a5abacecb", "a9beed676", "b4363fc66", "bb509a464", "ee219102d", "f1cf64167", "f95ad555d", "fa56aa23f"], "source_entry_id": "13.17/changes/031", "db_id": "502c42113b0ffbf4117eaa6a70ba8817", "patch_ids": ["2367f10830213c8844d772a0724fac8c", "59758ed1ee0679f646895f75f81fc2f9", "6853cdcef57f545b15fb0f3236539cc5", "80036b64e01a1dd8f63906de0005ef89", "8d1de573a4f56fd430c3ab54f20629c1", "9372f3cf07474718ef52f8ba1e3536ab", "97acafde32cae5d9dc50a7ae5fdb851a", "9fdfeb31fd142d388a37c78c98cd37e3", "ce63ed21549d684cca6657d678c60603", "f9d785deb60838f4f14a5aec352e87d0"], "statement_hash": "368d7f8ca123d9f36b6da362757d7451bda0369cff3cf846305c9812de382599", "relations": [{"rule": 2, "type": "equivalent", "target": "3e0cb2667efbeb4113e3e9863480946b", "evidence": {"same_day": true, "patch_ids": ["2367f10830213c8844d772a0724fac8c", "59758ed1ee0679f646895f75f81fc2f9", "6853cdcef57f545b15fb0f3236539cc5", "80036b64e01a1dd8f63906de0005ef89", "8d1de573a4f56fd430c3ab54f20629c1", "9372f3cf07474718ef52f8ba1e3536ab", "97acafde32cae5d9dc50a7ae5fdb851a", "9fdfeb31fd142d388a37c78c98cd37e3", "ce63ed21549d684cca6657d678c60603", "f9d785deb60838f4f14a5aec352e87d0"], "statement_hash": "368d7f8ca123d9f36b6da362757d7451bda0369cff3cf846305c9812de382599"}}, {"rule": 2, "type": "equivalent", "target": "a94627421d95631b838074496a47017f", "evidence": {"same_day": true, "patch_ids": ["2367f10830213c8844d772a0724fac8c", "59758ed1ee0679f646895f75f81fc2f9", "6853cdcef57f545b15fb0f3236539cc5", "80036b64e01a1dd8f63906de0005ef89", "8d1de573a4f56fd430c3ab54f20629c1", "9372f3cf07474718ef52f8ba1e3536ab", "97acafde32cae5d9dc50a7ae5fdb851a", "9fdfeb31fd142d388a37c78c98cd37e3", "ce63ed21549d684cca6657d678c60603", "f9d785deb60838f4f14a5aec352e87d0"], "statement_hash": "368d7f8ca123d9f36b6da362757d7451bda0369cff3cf846305c9812de382599"}}], "version": "13.17", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "a94627421d95631b838074496a47017f", "kind": "equivalent", "version": "15.9", "label": "15.9", "title": "修复 Windows 上连接点的异常行为，特别是在 pg_rewind 中", "evidence": {"same_day": true, "patch_ids": ["2367f10830213c8844d772a0724fac8c", "59758ed1ee0679f646895f75f81fc2f9", "6853cdcef57f545b15fb0f3236539cc5", "80036b64e01a1dd8f63906de0005ef89", "8d1de573a4f56fd430c3ab54f20629c1", "9372f3cf07474718ef52f8ba1e3536ab", "97acafde32cae5d9dc50a7ae5fdb851a", "9fdfeb31fd142d388a37c78c98cd37e3", "ce63ed21549d684cca6657d678c60603", "f9d785deb60838f4f14a5aec352e87d0"], "statement_hash": "368d7f8ca123d9f36b6da362757d7451bda0369cff3cf846305c9812de382599"}, "url": "/docs/compare/?release=15.9#15.9-89ce85d7e17acc71", "source_url": "/docs/release/15.9/#ZH-AUTO-RELEASE-15-SECT2-18"}, {"db_id": "3e0cb2667efbeb4113e3e9863480946b", "kind": "equivalent", "version": "14.14", "label": "14.14", "title": "修复 Windows 上关于连接点的行为异常，特别是在 pg_rewind 中", "evidence": {"same_day": true, "patch_ids": ["2367f10830213c8844d772a0724fac8c", "59758ed1ee0679f646895f75f81fc2f9", "6853cdcef57f545b15fb0f3236539cc5", "80036b64e01a1dd8f63906de0005ef89", "8d1de573a4f56fd430c3ab54f20629c1", "9372f3cf07474718ef52f8ba1e3536ab", "97acafde32cae5d9dc50a7ae5fdb851a", "9fdfeb31fd142d388a37c78c98cd37e3", "ce63ed21549d684cca6657d678c60603", "f9d785deb60838f4f14a5aec352e87d0"], "statement_hash": "368d7f8ca123d9f36b6da362757d7451bda0369cff3cf846305c9812de382599"}, "url": "/docs/compare/?release=14.14#14.14-88de2f731af4b600", "source_url": "/docs/release/14.14/#ZH-AUTO-RELEASE-14-SECT2-18"}]}, {"id": "13.17-39b4d508a3ebe1d9", "cves": [], "html": "<p>避免尝试在 <span>vacuumdb</span> 和并行 <span>reindexdb</span> 中重新索引临时表和索引（VaibhaveS，Michael Paquier，Fujii Masao，Nathan Bossart）<a href=\"https://postgr.es/c/9db4598c9\">§</a> <a href=\"https://postgr.es/c/9410f7cbf\">§</a> <a href=\"https://postgr.es/c/d4ade0baf\">§</a></p>\n<p>重新索引其他会话的临时表是不可能的，但在某些代码路径中缺少跳过它们的检查，导致了不必要的失败。</p>", "text": "避免尝试在 vacuumdb 和并行 reindexdb 中重新索引临时表和索引（VaibhaveS，Michael Paquier，Fujii Masao，Nathan Bossart）§ § § 重新索引其他会话的临时表是不可能的，但在某些代码路径中缺少跳过它们的检查，导致了不必要的失败。", "title": "避免尝试在 vacuumdb 和并行 reindexdb 中重新索引临时表和索引", "commits": ["9410f7cbf", "9db4598c9", "d4ade0baf"], "section": "变更", "category": "improvement", "source_url": "/docs/release/13.17/#id-1.11.6.12.5", "source_hash": "84d6c0892e4837882e14bc9843336d1fe64518193d222d92a3d0b9aecc531a7b", "section_path": ["变更"], "commit_groups": [["1ab67c9df", "1ea4d9c00", "60c618216", "74eaa0544", "85cb21df6", "9db4598c9", "ef57a7135"], ["20cfec896", "653ce5b8b", "77f154681", "88e1153cb", "92cc21d15", "9410f7cbf"], ["5bd26e652", "5e0431c32", "6d047c6a9", "8318f2b17", "ce6f27857", "d4ade0baf", "eba8cc1af"]], "identity_text": "Avoid trying to reindex temporary tables and indexes in vacuumdb and in parallel reindexdb (VaibhaveS, Michael Paquier, Fujii Masao, Nathan Bossart) Reindexing other sessions' temporary tables cannot work, but the check to skip them was missing in some code paths, leading to unwanted failures.", "commit_aliases": ["1ab67c9df", "1ea4d9c00", "20cfec896", "5bd26e652", "5e0431c32", "60c618216", "653ce5b8b", "6d047c6a9", "74eaa0544", "77f154681", "8318f2b17", "85cb21df6", "88e1153cb", "92cc21d15", "9410f7cbf", "9db4598c9", "ce6f27857", "d4ade0baf", "eba8cc1af", "ef57a7135"], "source_commits": ["9410f7cbf", "9db4598c9", "d4ade0baf"], "source_entry_id": "13.17/changes/032", "db_id": "fd6538cb5adf6f39f27bb662e664a7b0", "patch_ids": ["88d23a2fb54459ed87e6d9da412427b4", "b800062e19c05574a49e585e0e072c6b", "ca0e63af13382f01a85afb5f0c50571a"], "statement_hash": "d9443e8290f2ce00659f5cfbdc3500bd28f29dc7b0b8d62c1b26bb2d148d98ac", "relations": [{"rule": 2, "type": "equivalent", "target": "49202512ec90fd67899e292bbdf47393", "evidence": {"same_day": true, "patch_ids": ["88d23a2fb54459ed87e6d9da412427b4", "b800062e19c05574a49e585e0e072c6b", "ca0e63af13382f01a85afb5f0c50571a"], "statement_hash": "d9443e8290f2ce00659f5cfbdc3500bd28f29dc7b0b8d62c1b26bb2d148d98ac"}}, {"rule": 2, "type": "equivalent", "target": "4be0746ae3d31d3a67d4e6575952b2be", "evidence": {"same_day": true, "patch_ids": ["88d23a2fb54459ed87e6d9da412427b4", "b800062e19c05574a49e585e0e072c6b", "ca0e63af13382f01a85afb5f0c50571a"], "statement_hash": "d9443e8290f2ce00659f5cfbdc3500bd28f29dc7b0b8d62c1b26bb2d148d98ac"}}, {"rule": 2, "type": "equivalent", "target": "d6cdd8b6ec59725f8484ea9b6958f9c0", "evidence": {"same_day": true, "patch_ids": ["88d23a2fb54459ed87e6d9da412427b4", "b800062e19c05574a49e585e0e072c6b", "ca0e63af13382f01a85afb5f0c50571a"], "statement_hash": "d9443e8290f2ce00659f5cfbdc3500bd28f29dc7b0b8d62c1b26bb2d148d98ac"}}, {"rule": 2, "type": "equivalent", "target": "e18a9312e9c8aad0f30fdc47f2803910", "evidence": {"same_day": true, "patch_ids": ["88d23a2fb54459ed87e6d9da412427b4", "b800062e19c05574a49e585e0e072c6b", "ca0e63af13382f01a85afb5f0c50571a"], "statement_hash": "d9443e8290f2ce00659f5cfbdc3500bd28f29dc7b0b8d62c1b26bb2d148d98ac"}}, {"rule": 2, "type": "equivalent", "target": "fa418bc3e162a87cba139153560d10be", "evidence": {"same_day": true, "patch_ids": ["88d23a2fb54459ed87e6d9da412427b4", "b800062e19c05574a49e585e0e072c6b", "ca0e63af13382f01a85afb5f0c50571a"], "statement_hash": "d9443e8290f2ce00659f5cfbdc3500bd28f29dc7b0b8d62c1b26bb2d148d98ac"}}], "version": "13.17", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "49202512ec90fd67899e292bbdf47393", "kind": "equivalent", "version": "17.1", "label": "17.1", "title": "避免尝试在 vacuumdb 和并行 reindexdb 中重新索引临时表和索引", "evidence": {"same_day": true, "patch_ids": ["88d23a2fb54459ed87e6d9da412427b4", "b800062e19c05574a49e585e0e072c6b", "ca0e63af13382f01a85afb5f0c50571a"], "statement_hash": "d9443e8290f2ce00659f5cfbdc3500bd28f29dc7b0b8d62c1b26bb2d148d98ac"}, "url": "/docs/compare/?release=17.1#17.1-8ee5d1afad85ebfb", "source_url": "/docs/release/17.1/#RELEASE-17-1-CHANGES"}, {"db_id": "4be0746ae3d31d3a67d4e6575952b2be", "kind": "equivalent", "version": "16.5", "label": "16.5", "title": "避免尝试在 vacuumdb 和并行 reindexdb 中重新索引临时表和索引", "evidence": {"same_day": true, "patch_ids": ["88d23a2fb54459ed87e6d9da412427b4", "b800062e19c05574a49e585e0e072c6b", "ca0e63af13382f01a85afb5f0c50571a"], "statement_hash": "d9443e8290f2ce00659f5cfbdc3500bd28f29dc7b0b8d62c1b26bb2d148d98ac"}, "url": "/docs/compare/?release=16.5#16.5-d6310735ce407b5d", "source_url": "/docs/release/16.5/#RELEASE-16-5-CHANGES"}, {"db_id": "e18a9312e9c8aad0f30fdc47f2803910", "kind": "equivalent", "version": "15.9", "label": "15.9", "title": "避免尝试在 vacuumdb 和并行 reindexdb 中重新索引临时表和索引", "evidence": {"same_day": true, "patch_ids": ["88d23a2fb54459ed87e6d9da412427b4", "b800062e19c05574a49e585e0e072c6b", "ca0e63af13382f01a85afb5f0c50571a"], "statement_hash": "d9443e8290f2ce00659f5cfbdc3500bd28f29dc7b0b8d62c1b26bb2d148d98ac"}, "url": "/docs/compare/?release=15.9#15.9-d361402759971b18", "source_url": "/docs/release/15.9/#ZH-AUTO-RELEASE-15-SECT2-18"}, {"db_id": "fa418bc3e162a87cba139153560d10be", "kind": "equivalent", "version": "14.14", "label": "14.14", "title": "避免尝试在 vacuumdb 和并行 reindexdb 中重新索引临时表和索引", "evidence": {"same_day": true, "patch_ids": ["88d23a2fb54459ed87e6d9da412427b4", "b800062e19c05574a49e585e0e072c6b", "ca0e63af13382f01a85afb5f0c50571a"], "statement_hash": "d9443e8290f2ce00659f5cfbdc3500bd28f29dc7b0b8d62c1b26bb2d148d98ac"}, "url": "/docs/compare/?release=14.14#14.14-d361402759971b18", "source_url": "/docs/release/14.14/#ZH-AUTO-RELEASE-14-SECT2-18"}, {"db_id": "d6cdd8b6ec59725f8484ea9b6958f9c0", "kind": "equivalent", "version": "12.21", "label": "12.21", "title": "避免尝试在 vacuumdb 和并行 reindexdb 中重新索引临时表和索引", "evidence": {"same_day": true, "patch_ids": ["88d23a2fb54459ed87e6d9da412427b4", "b800062e19c05574a49e585e0e072c6b", "ca0e63af13382f01a85afb5f0c50571a"], "statement_hash": "d9443e8290f2ce00659f5cfbdc3500bd28f29dc7b0b8d62c1b26bb2d148d98ac"}, "url": "/docs/compare/?release=12.21#12.21-f1b420bde0d9e3c5", "source_url": "/docs/release/12.21/#id-1.11.6.7.6"}]}, {"id": "13.17-77971363ea91964b", "cves": [], "html": "<p>允许在 <code>contrib/pageinspect</code> 和 <code>contrib/pgstattuple</code> 的相关函数中检查序列关系（Nathan Bossart，Ayush Vatsa）<a href=\"https://postgr.es/c/ca902529c\">§</a> <a href=\"https://postgr.es/c/ef46a73f6\">§</a></p>\n<p>过去这是允许的，但在引入表的非默认访问方法时被破坏了。</p>", "text": "允许在 contrib/pageinspect 和 contrib/pgstattuple 的相关函数中检查序列关系（Nathan Bossart，Ayush Vatsa）§ § 过去这是允许的，但在引入表的非默认访问方法时被破坏了。", "title": "允许在 contrib/pageinspect 和 contrib/pgstattuple 的相关函数中检查序列关系", "commits": ["ca902529c", "ef46a73f6"], "section": "变更", "category": "improvement", "source_url": "/docs/release/13.17/#id-1.11.6.12.5", "source_hash": "c4da8330c1474299ad5f1288496ff9444e6e413460d05c498880ce2ef4b8b5a8", "section_path": ["变更"], "commit_groups": [["05036a315", "2bd4c06bb", "6ea7f04b7", "8a94af8a2", "ca902529c", "dd5670fa5", "e03042a70"], ["0938a4ecd", "0970889e3", "70d1c664f", "9b3c3c0fc", "a63aef5e4", "e0277d90a", "ef46a73f6"]], "identity_text": "Allow inspection of sequence relations in relevant functions of contrib/pageinspect and contrib/pgstattuple (Nathan Bossart, Ayush Vatsa) This had been allowed in the past, but it got broken during the introduction of non-default access methods for tables.", "commit_aliases": ["05036a315", "0938a4ecd", "0970889e3", "2bd4c06bb", "6ea7f04b7", "70d1c664f", "8a94af8a2", "9b3c3c0fc", "a63aef5e4", "ca902529c", "dd5670fa5", "e0277d90a", "e03042a70", "ef46a73f6"], "source_commits": ["ca902529c", "ef46a73f6"], "source_entry_id": "13.17/changes/033", "db_id": "03b84081d9a124bbff41a4b04ebf562f", "patch_ids": ["42607cf1670c1e6f54c2db93a4f87637", "4ea9692746d01246926aaef18834c48e"], "statement_hash": "e17543b54d63db5e1b768cb6082c83cf991030bcee9a6310dbaa9e678e78e094", "relations": [{"rule": 2, "type": "equivalent", "target": "8f236080cf585e387738b16c66cb82c4", "evidence": {"same_day": true, "patch_ids": ["42607cf1670c1e6f54c2db93a4f87637", "4ea9692746d01246926aaef18834c48e"], "statement_hash": "e17543b54d63db5e1b768cb6082c83cf991030bcee9a6310dbaa9e678e78e094"}}, {"rule": 2, "type": "equivalent", "target": "9ecd00988fd179b6cd66c574b4887c56", "evidence": {"same_day": true, "patch_ids": ["42607cf1670c1e6f54c2db93a4f87637", "4ea9692746d01246926aaef18834c48e"], "statement_hash": "e17543b54d63db5e1b768cb6082c83cf991030bcee9a6310dbaa9e678e78e094"}}, {"rule": 2, "type": "equivalent", "target": "ce78e870113246629b5a74061f2915d6", "evidence": {"same_day": true, "patch_ids": ["42607cf1670c1e6f54c2db93a4f87637", "4ea9692746d01246926aaef18834c48e"], "statement_hash": "e17543b54d63db5e1b768cb6082c83cf991030bcee9a6310dbaa9e678e78e094"}}, {"rule": 2, "type": "equivalent", "target": "f7765db8d8b93f77135b60920b1690ce", "evidence": {"same_day": true, "patch_ids": ["42607cf1670c1e6f54c2db93a4f87637", "4ea9692746d01246926aaef18834c48e"], "statement_hash": "e17543b54d63db5e1b768cb6082c83cf991030bcee9a6310dbaa9e678e78e094"}}], "version": "13.17", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "f7765db8d8b93f77135b60920b1690ce", "kind": "equivalent", "version": "16.5", "label": "16.5", "title": "允许在 contrib/pageinspect 和 contrib/pgstattuple 的相关函数中检查序列关系", "evidence": {"same_day": true, "patch_ids": ["42607cf1670c1e6f54c2db93a4f87637", "4ea9692746d01246926aaef18834c48e"], "statement_hash": "e17543b54d63db5e1b768cb6082c83cf991030bcee9a6310dbaa9e678e78e094"}, "url": "/docs/compare/?release=16.5#16.5-e3fdd4d63d51092b", "source_url": "/docs/release/16.5/#RELEASE-16-5-CHANGES"}, {"db_id": "ce78e870113246629b5a74061f2915d6", "kind": "equivalent", "version": "15.9", "label": "15.9", "title": "允许在 contrib/pageinspect 和 contrib/pgstattuple 的相关函数中检查序列关系", "evidence": {"same_day": true, "patch_ids": ["42607cf1670c1e6f54c2db93a4f87637", "4ea9692746d01246926aaef18834c48e"], "statement_hash": "e17543b54d63db5e1b768cb6082c83cf991030bcee9a6310dbaa9e678e78e094"}, "url": "/docs/compare/?release=15.9#15.9-9eb6aa649d1f5a9e", "source_url": "/docs/release/15.9/#ZH-AUTO-RELEASE-15-SECT2-18"}, {"db_id": "8f236080cf585e387738b16c66cb82c4", "kind": "equivalent", "version": "14.14", "label": "14.14", "title": "允许在 contrib/pageinspect 和 contrib/pgstattuple 的相关函数中检查序列关系", "evidence": {"same_day": true, "patch_ids": ["42607cf1670c1e6f54c2db93a4f87637", "4ea9692746d01246926aaef18834c48e"], "statement_hash": "e17543b54d63db5e1b768cb6082c83cf991030bcee9a6310dbaa9e678e78e094"}, "url": "/docs/compare/?release=14.14#14.14-2522a5fb06b1ab76", "source_url": "/docs/release/14.14/#ZH-AUTO-RELEASE-14-SECT2-18"}, {"db_id": "9ecd00988fd179b6cd66c574b4887c56", "kind": "equivalent", "version": "12.21", "label": "12.21", "title": "允许在 contrib/pageinspect 和 contrib/pgstattuple 的相关函数中检查序列关系", "evidence": {"same_day": true, "patch_ids": ["42607cf1670c1e6f54c2db93a4f87637", "4ea9692746d01246926aaef18834c48e"], "statement_hash": "e17543b54d63db5e1b768cb6082c83cf991030bcee9a6310dbaa9e678e78e094"}, "url": "/docs/compare/?release=12.21#12.21-5165c3b88920c915", "source_url": "/docs/release/12.21/#id-1.11.6.7.6"}]}, {"id": "13.17-385afd66c806f38e", "cves": [], "html": "<p>修复 ARM64 平台上不正确的 LLVM 生成代码（Thomas Munro，Anthonin Bonnefoy）<a href=\"https://postgr.es/c/e88d824a4\">§</a></p>\n<p>在 ARM 平台上使用 JIT 编译时，生成的代码无法支持超过 32 位的重定位距离，使得在大内存系统上不巧的代码放置可能导致服务器崩溃。</p>", "text": "修复 ARM64 平台上不正确的 LLVM 生成代码（Thomas Munro，Anthonin Bonnefoy）§ 在 ARM 平台上使用 JIT 编译时，生成的代码无法支持超过 32 位的重定位距离，使得在大内存系统上不巧的代码放置可能导致服务器崩溃。", "title": "修复 ARM64 平台上不正确的 LLVM 生成代码", "commits": ["e88d824a4"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/13.17/#id-1.11.6.12.5", "source_hash": "1252acc4b19495ce6e0d64fac30f9513ef991cc9f52783c09854c25bf97f4cb8", "section_path": ["变更"], "commit_groups": [["0b022ddf3", "19bf81c06", "50c1453a3", "9044fc1d4", "b7467ab71", "e88d824a4", "ee67b73f5"]], "identity_text": "Fix incorrect LLVM-generated code on ARM64 platforms (Thomas Munro, Anthonin Bonnefoy) When using JIT compilation on ARM platforms, the generated code could not support relocation distances exceeding 32 bits, allowing unlucky placement of generated code to cause server crashes on large-memory systems.", "commit_aliases": ["0b022ddf3", "19bf81c06", "50c1453a3", "9044fc1d4", "b7467ab71", "e88d824a4", "ee67b73f5"], "source_commits": ["e88d824a4"], "source_entry_id": "13.17/changes/034", "db_id": "07627c1366b7fc7a15a84f72711baf63", "patch_ids": ["57596ae59679a29ff707f6ee94229715"], "statement_hash": "e47f7abeabc7e940d49bb38787f3599b68c6feb47468e84b0e0a8e4edf13924a", "relations": [{"rule": 2, "type": "equivalent", "target": "2638bd1adab380229ce1a042d31b374e", "evidence": {"same_day": true, "patch_ids": ["57596ae59679a29ff707f6ee94229715"], "statement_hash": "e47f7abeabc7e940d49bb38787f3599b68c6feb47468e84b0e0a8e4edf13924a"}}, {"rule": 2, "type": "equivalent", "target": "30c20b6563426a9899fdec9ce9437eed", "evidence": {"same_day": true, "patch_ids": ["57596ae59679a29ff707f6ee94229715"], "statement_hash": "e47f7abeabc7e940d49bb38787f3599b68c6feb47468e84b0e0a8e4edf13924a"}}, {"rule": 2, "type": "equivalent", "target": "552f755d17bee102cb50bf545ecb949c", "evidence": {"same_day": true, "patch_ids": ["57596ae59679a29ff707f6ee94229715"], "statement_hash": "e47f7abeabc7e940d49bb38787f3599b68c6feb47468e84b0e0a8e4edf13924a"}}, {"rule": 2, "type": "equivalent", "target": "8b66c7a2971a68b203b33def34a61729", "evidence": {"same_day": true, "patch_ids": ["57596ae59679a29ff707f6ee94229715"], "statement_hash": "e47f7abeabc7e940d49bb38787f3599b68c6feb47468e84b0e0a8e4edf13924a"}}, {"rule": 2, "type": "equivalent", "target": "a4a3b2371863ab88daa8190444068bd5", "evidence": {"same_day": true, "patch_ids": ["57596ae59679a29ff707f6ee94229715"], "statement_hash": "e47f7abeabc7e940d49bb38787f3599b68c6feb47468e84b0e0a8e4edf13924a"}}], "version": "13.17", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "552f755d17bee102cb50bf545ecb949c", "kind": "equivalent", "version": "17.1", "label": "17.1", "title": "修复 ARM64 平台上不正确的 LLVM 生成代码", "evidence": {"same_day": true, "patch_ids": ["57596ae59679a29ff707f6ee94229715"], "statement_hash": "e47f7abeabc7e940d49bb38787f3599b68c6feb47468e84b0e0a8e4edf13924a"}, "url": "/docs/compare/?release=17.1#17.1-340a46645824a2bd", "source_url": "/docs/release/17.1/#RELEASE-17-1-CHANGES"}, {"db_id": "30c20b6563426a9899fdec9ce9437eed", "kind": "equivalent", "version": "16.5", "label": "16.5", "title": "修复 ARM64 平台上不正确的 LLVM 生成代码", "evidence": {"same_day": true, "patch_ids": ["57596ae59679a29ff707f6ee94229715"], "statement_hash": "e47f7abeabc7e940d49bb38787f3599b68c6feb47468e84b0e0a8e4edf13924a"}, "url": "/docs/compare/?release=16.5#16.5-88ba539f0cf804a2", "source_url": "/docs/release/16.5/#RELEASE-16-5-CHANGES"}, {"db_id": "8b66c7a2971a68b203b33def34a61729", "kind": "equivalent", "version": "15.9", "label": "15.9", "title": "修复 ARM64 平台上不正确的 LLVM 生成代码", "evidence": {"same_day": true, "patch_ids": ["57596ae59679a29ff707f6ee94229715"], "statement_hash": "e47f7abeabc7e940d49bb38787f3599b68c6feb47468e84b0e0a8e4edf13924a"}, "url": "/docs/compare/?release=15.9#15.9-dbfbd3d4f9ba03db", "source_url": "/docs/release/15.9/#ZH-AUTO-RELEASE-15-SECT2-18"}, {"db_id": "a4a3b2371863ab88daa8190444068bd5", "kind": "equivalent", "version": "14.14", "label": "14.14", "title": "修复 ARM64 平台上不正确的 LLVM 生成代码", "evidence": {"same_day": true, "patch_ids": ["57596ae59679a29ff707f6ee94229715"], "statement_hash": "e47f7abeabc7e940d49bb38787f3599b68c6feb47468e84b0e0a8e4edf13924a"}, "url": "/docs/compare/?release=14.14#14.14-dbfbd3d4f9ba03db", "source_url": "/docs/release/14.14/#ZH-AUTO-RELEASE-14-SECT2-18"}, {"db_id": "2638bd1adab380229ce1a042d31b374e", "kind": "equivalent", "version": "12.21", "label": "12.21", "title": "修复 ARM64 平台上不正确的 LLVM 生成代码", "evidence": {"same_day": true, "patch_ids": ["57596ae59679a29ff707f6ee94229715"], "statement_hash": "e47f7abeabc7e940d49bb38787f3599b68c6feb47468e84b0e0a8e4edf13924a"}, "url": "/docs/compare/?release=12.21#12.21-92ba1b32a98f8d2f", "source_url": "/docs/release/12.21/#id-1.11.6.7.6"}]}, {"id": "13.17-80971931f1cef36f", "cves": [], "html": "<p>修复一些假设进程启动时间（表示为 <code>time_t</code>）能够放入 <code>long</code> 值的地方（Max Johnson，Nathan Bossart）<a href=\"https://postgr.es/c/b255493ae\">§</a></p>\n<p>在 <code>long</code> 为 32 位的平台上（尤其是 Windows），此代码会在 2038 年之后失败。大多数失败似乎仅影响外观，但值得注意的是，<code>pg_ctl start</code> 会挂起。</p>", "text": "修复一些假设进程启动时间（表示为 time_t）能够放入 long 值的地方（Max Johnson，Nathan Bossart）§ 在 long 为 32 位的平台上（尤其是 Windows），此代码会在 2038 年之后失败。大多数失败似乎仅影响外观，但值得注意的是，pg_ctl start 会挂起。", "title": "修复一些假设进程启动时间（表示为 time_t）能够放入 long 值的地方", "commits": ["b255493ae"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/13.17/#id-1.11.6.12.5", "source_hash": "573503df72c7ff8eca256b7114d9c43f9ec81b4a034e07e8a661e8398bcd44e8", "section_path": ["变更"], "commit_groups": [["01731eeea", "5cea7168d", "5d6187d2a", "8aaf88b63", "a356d23fd", "b255493ae", "c91d0af0a"]], "identity_text": "Fix a few places that assumed that process start time (represented as a time_t) will fit into a long value (Max Johnson, Nathan Bossart) On platforms where long is 32 bits (notably Windows), this coding would fail after Y2038. Most of the failures appear only cosmetic, but notably pg_ctl start would hang.", "commit_aliases": ["01731eeea", "5cea7168d", "5d6187d2a", "8aaf88b63", "a356d23fd", "b255493ae", "c91d0af0a"], "source_commits": ["b255493ae"], "source_entry_id": "13.17/changes/035", "db_id": "075f70893c63574e821b74eb0753f209", "patch_ids": ["311a0df3693d4634968109ecf37f38ef"], "statement_hash": "9bb727c9c397393857e4ccd2faa4c4036a18202a3c985dc2a675dd4791f86377", "relations": [{"rule": 2, "type": "equivalent", "target": "3084cb6f1a9a83786226f990e093badf", "evidence": {"same_day": true, "patch_ids": ["311a0df3693d4634968109ecf37f38ef"], "statement_hash": "9bb727c9c397393857e4ccd2faa4c4036a18202a3c985dc2a675dd4791f86377"}}, {"rule": 2, "type": "equivalent", "target": "40bc46f4e80e1864b73a7a5e12f75b65", "evidence": {"same_day": true, "patch_ids": ["311a0df3693d4634968109ecf37f38ef"], "statement_hash": "9bb727c9c397393857e4ccd2faa4c4036a18202a3c985dc2a675dd4791f86377"}}, {"rule": 2, "type": "equivalent", "target": "7b562ce18a69f435e1e22679a3930bb0", "evidence": {"same_day": true, "patch_ids": ["311a0df3693d4634968109ecf37f38ef"], "statement_hash": "9bb727c9c397393857e4ccd2faa4c4036a18202a3c985dc2a675dd4791f86377"}}, {"rule": 2, "type": "equivalent", "target": "ac2f9b62f89f5efc11d5918a066d7298", "evidence": {"same_day": true, "patch_ids": ["311a0df3693d4634968109ecf37f38ef"], "statement_hash": "9bb727c9c397393857e4ccd2faa4c4036a18202a3c985dc2a675dd4791f86377"}}, {"rule": 2, "type": "equivalent", "target": "db60254f3e912ac41b205c00ddc90c1f", "evidence": {"same_day": true, "patch_ids": ["311a0df3693d4634968109ecf37f38ef"], "statement_hash": "9bb727c9c397393857e4ccd2faa4c4036a18202a3c985dc2a675dd4791f86377"}}], "version": "13.17", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "3084cb6f1a9a83786226f990e093badf", "kind": "equivalent", "version": "17.1", "label": "17.1", "title": "修复一些假设进程启动时间（表示为 time_t）能够放入 long 值的地方", "evidence": {"same_day": true, "patch_ids": ["311a0df3693d4634968109ecf37f38ef"], "statement_hash": "9bb727c9c397393857e4ccd2faa4c4036a18202a3c985dc2a675dd4791f86377"}, "url": "/docs/compare/?release=17.1#17.1-0b285a27e1ea7d45", "source_url": "/docs/release/17.1/#RELEASE-17-1-CHANGES"}, {"db_id": "ac2f9b62f89f5efc11d5918a066d7298", "kind": "equivalent", "version": "16.5", "label": "16.5", "title": "修复一些假设进程启动时间（表示为 time_t）能够放入 long 值的地方", "evidence": {"same_day": true, "patch_ids": ["311a0df3693d4634968109ecf37f38ef"], "statement_hash": "9bb727c9c397393857e4ccd2faa4c4036a18202a3c985dc2a675dd4791f86377"}, "url": "/docs/compare/?release=16.5#16.5-4e1e853951ded2b7", "source_url": "/docs/release/16.5/#RELEASE-16-5-CHANGES"}, {"db_id": "40bc46f4e80e1864b73a7a5e12f75b65", "kind": "equivalent", "version": "15.9", "label": "15.9", "title": "修复一些假设进程启动时间（表示为 time_t）能够放入 long 值的地方", "evidence": {"same_day": true, "patch_ids": ["311a0df3693d4634968109ecf37f38ef"], "statement_hash": "9bb727c9c397393857e4ccd2faa4c4036a18202a3c985dc2a675dd4791f86377"}, "url": "/docs/compare/?release=15.9#15.9-aa8d1f73d42af12c", "source_url": "/docs/release/15.9/#ZH-AUTO-RELEASE-15-SECT2-18"}, {"db_id": "7b562ce18a69f435e1e22679a3930bb0", "kind": "equivalent", "version": "14.14", "label": "14.14", "title": "修复一些假设进程启动时间（表示为 time_t）能够放入 long 值的地方", "evidence": {"same_day": true, "patch_ids": ["311a0df3693d4634968109ecf37f38ef"], "statement_hash": "9bb727c9c397393857e4ccd2faa4c4036a18202a3c985dc2a675dd4791f86377"}, "url": "/docs/compare/?release=14.14#14.14-aa8d1f73d42af12c", "source_url": "/docs/release/14.14/#ZH-AUTO-RELEASE-14-SECT2-18"}, {"db_id": "db60254f3e912ac41b205c00ddc90c1f", "kind": "equivalent", "version": "12.21", "label": "12.21", "title": "修复一些假设进程启动时间（表示为 time_t）能够放入 long 值的地方", "evidence": {"same_day": true, "patch_ids": ["311a0df3693d4634968109ecf37f38ef"], "statement_hash": "9bb727c9c397393857e4ccd2faa4c4036a18202a3c985dc2a675dd4791f86377"}, "url": "/docs/compare/?release=12.21#12.21-f05c71304b810922", "source_url": "/docs/release/12.21/#id-1.11.6.7.6"}]}, {"id": "13.17-4e3b98dbaecea6e0", "cves": [], "html": "<p>防止在构建 <span>PostgreSQL</span> RPM 包时出现 <span>“<span>nothing provides perl(PostgreSQL::Test::Utils)</span>”</span> 错误（Noah Misch）<a href=\"https://postgr.es/c/382909b63\">§</a></p>", "text": "防止在构建 PostgreSQL RPM 包时出现 “nothing provides perl(PostgreSQL::Test::Utils)” 错误（Noah Misch）§", "title": "防止在构建 PostgreSQL RPM 包时出现 “nothing provides perl(PostgreSQL::Test::Utils)” 错误", "commits": ["382909b63"], "section": "变更", "category": "improvement", "source_url": "/docs/release/13.17/#id-1.11.6.12.5", "source_hash": "da80a2eab86c461a30aaa08a3ffcd3d91737b4e31eb3f89012b33e76c86824c0", "section_path": ["变更"], "commit_groups": [["382909b63", "646b16bca", "ecf7c4846"]], "identity_text": "Prevent nothing provides perl(PostgreSQL::Test::Utils) failures while building RPM packages of PostgreSQL (Noah Misch)", "commit_aliases": ["382909b63", "646b16bca", "ecf7c4846"], "source_commits": ["382909b63"], "source_entry_id": "13.17/changes/036", "db_id": "bc3d17dd75b5271d1029914bb4f7cb0e", "patch_ids": ["57cab846d8f27551569f09c99607ec08"], "statement_hash": "2e4961618e150a24cc6ce48129e9e744e4454e7ec987ed29f64d74899a39f4cb", "relations": [{"rule": 2, "type": "equivalent", "target": "3faedd59e5306cc32423b8486b3db0df", "evidence": {"same_day": true, "patch_ids": ["57cab846d8f27551569f09c99607ec08"], "statement_hash": "2e4961618e150a24cc6ce48129e9e744e4454e7ec987ed29f64d74899a39f4cb"}}, {"rule": 2, "type": "equivalent", "target": "d4d57a7e1bf9462d126ede488c6406cb", "evidence": {"same_day": true, "patch_ids": ["57cab846d8f27551569f09c99607ec08"], "statement_hash": "2e4961618e150a24cc6ce48129e9e744e4454e7ec987ed29f64d74899a39f4cb"}}], "version": "13.17", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "d4d57a7e1bf9462d126ede488c6406cb", "kind": "equivalent", "version": "14.14", "label": "14.14", "title": "防止在构建 PostgreSQL RPM 包时出现 “nothing provides perl(PostgreSQL::Test::Utils)” 错误", "evidence": {"same_day": true, "patch_ids": ["57cab846d8f27551569f09c99607ec08"], "statement_hash": "2e4961618e150a24cc6ce48129e9e744e4454e7ec987ed29f64d74899a39f4cb"}, "url": "/docs/compare/?release=14.14#14.14-6076ed339fa71c54", "source_url": "/docs/release/14.14/#ZH-AUTO-RELEASE-14-SECT2-18"}, {"db_id": "3faedd59e5306cc32423b8486b3db0df", "kind": "equivalent", "version": "12.21", "label": "12.21", "title": "防止在构建 PostgreSQL RPM 包时出现 “nothing provides perl(PostgreSQL::Test::Utils)” 错误", "evidence": {"same_day": true, "patch_ids": ["57cab846d8f27551569f09c99607ec08"], "statement_hash": "2e4961618e150a24cc6ce48129e9e744e4454e7ec987ed29f64d74899a39f4cb"}, "url": "/docs/compare/?release=12.21#12.21-ffe9167fdf2720ec", "source_url": "/docs/release/12.21/#id-1.11.6.7.6"}]}, {"id": "13.17-79111af14fbf9f4d", "cves": [], "html": "<p>修复在 Windows 上使用 Strawberry Perl 构建的问题（Andrew Dunstan）<a href=\"https://postgr.es/c/f40d9e9f1\">§</a></p>", "text": "修复在 Windows 上使用 Strawberry Perl 构建的问题（Andrew Dunstan）§", "title": "修复在 Windows 上使用 Strawberry Perl 构建的问题", "commits": ["f40d9e9f1"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/13.17/#id-1.11.6.12.5", "source_hash": "bce3305701ed7f74d06ec9772e6141209cf4e1103d437f55fff478a32d33c91d", "section_path": ["变更"], "commit_groups": [["0a0db4631", "17c35ab23", "648397b1d", "9f7749464", "bc46104fc", "d94e3b33e", "f40d9e9f1"]], "identity_text": "Fix building with Strawberry Perl on Windows (Andrew Dunstan)", "commit_aliases": ["0a0db4631", "17c35ab23", "648397b1d", "9f7749464", "bc46104fc", "d94e3b33e", "f40d9e9f1"], "source_commits": ["f40d9e9f1"], "source_entry_id": "13.17/changes/037", "db_id": "f0a76369a50f2328f16473a2ddd6dda9", "patch_ids": ["a453eb7388103adefc21b75b8b02f8cb"], "statement_hash": "605d3e050e8e20cd06c4163282d36754cda88519d3eabe9126d2d32c0b9b04ca", "relations": [{"rule": 2, "type": "equivalent", "target": "12e1aa7f417fbd17775147b08a45895b", "evidence": {"same_day": true, "patch_ids": ["a453eb7388103adefc21b75b8b02f8cb"], "statement_hash": "605d3e050e8e20cd06c4163282d36754cda88519d3eabe9126d2d32c0b9b04ca"}}, {"rule": 2, "type": "equivalent", "target": "3d158ad209ec105892f0e640f73fb08e", "evidence": {"same_day": true, "patch_ids": ["a453eb7388103adefc21b75b8b02f8cb"], "statement_hash": "605d3e050e8e20cd06c4163282d36754cda88519d3eabe9126d2d32c0b9b04ca"}}, {"rule": 2, "type": "equivalent", "target": "725db14ca2f334c9e4c0f4ebb8855e33", "evidence": {"same_day": true, "patch_ids": ["a453eb7388103adefc21b75b8b02f8cb"], "statement_hash": "605d3e050e8e20cd06c4163282d36754cda88519d3eabe9126d2d32c0b9b04ca"}}, {"rule": 2, "type": "equivalent", "target": "9faf9d470ae681f8825f29037cddcaa6", "evidence": {"same_day": true, "patch_ids": ["a453eb7388103adefc21b75b8b02f8cb"], "statement_hash": "605d3e050e8e20cd06c4163282d36754cda88519d3eabe9126d2d32c0b9b04ca"}}], "version": "13.17", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "725db14ca2f334c9e4c0f4ebb8855e33", "kind": "equivalent", "version": "16.5", "label": "16.5", "title": "修复在 Windows 上使用 Strawberry Perl 构建的问题", "evidence": {"same_day": true, "patch_ids": ["a453eb7388103adefc21b75b8b02f8cb"], "statement_hash": "605d3e050e8e20cd06c4163282d36754cda88519d3eabe9126d2d32c0b9b04ca"}, "url": "/docs/compare/?release=16.5#16.5-9c75348e1f6429b4", "source_url": "/docs/release/16.5/#RELEASE-16-5-CHANGES"}, {"db_id": "9faf9d470ae681f8825f29037cddcaa6", "kind": "equivalent", "version": "15.9", "label": "15.9", "title": "修复在 Windows 上使用 Strawberry Perl 构建的问题", "evidence": {"same_day": true, "patch_ids": ["a453eb7388103adefc21b75b8b02f8cb"], "statement_hash": "605d3e050e8e20cd06c4163282d36754cda88519d3eabe9126d2d32c0b9b04ca"}, "url": "/docs/compare/?release=15.9#15.9-80a8822b5e0b4f59", "source_url": "/docs/release/15.9/#ZH-AUTO-RELEASE-15-SECT2-18"}, {"db_id": "3d158ad209ec105892f0e640f73fb08e", "kind": "equivalent", "version": "14.14", "label": "14.14", "title": "修复在 Windows 上使用 Strawberry Perl 构建的问题", "evidence": {"same_day": true, "patch_ids": ["a453eb7388103adefc21b75b8b02f8cb"], "statement_hash": "605d3e050e8e20cd06c4163282d36754cda88519d3eabe9126d2d32c0b9b04ca"}, "url": "/docs/compare/?release=14.14#14.14-437ca6af18818ae7", "source_url": "/docs/release/14.14/#ZH-AUTO-RELEASE-14-SECT2-18"}, {"db_id": "12e1aa7f417fbd17775147b08a45895b", "kind": "equivalent", "version": "12.21", "label": "12.21", "title": "修复在 Windows 上使用 Strawberry Perl 构建的问题", "evidence": {"same_day": true, "patch_ids": ["a453eb7388103adefc21b75b8b02f8cb"], "statement_hash": "605d3e050e8e20cd06c4163282d36754cda88519d3eabe9126d2d32c0b9b04ca"}, "url": "/docs/compare/?release=12.21#12.21-cbf30fffa373a27e", "source_url": "/docs/release/12.21/#id-1.11.6.7.6"}]}, {"id": "13.17-7f89a8ce224af673", "cves": [], "html": "<p>将时区数据文件更新为 <span>tzdata</span> 2024b 版本（Tom Lane）<a href=\"https://postgr.es/c/8a8486175\">§</a> <a href=\"https://postgr.es/c/b28b9b19b\">§</a></p>\n<p>此 <span>tzdata</span> 版本将旧的 System-V 兼容性区域名称更改为与对应地理区域重复；例如 <code>PST8PDT</code> 现在是 <code>America/Los_Angeles</code> 的别名。主要可见后果是，对于标准化时区引入之前的时间戳，该区域被认为代表命名位置的本地平均太阳时。例如，在 <code>PST8PDT</code> 中，<code>timestamptz</code> 输入如 <code>1801-01-01 00:00</code> 之前会被渲染为 <code>1801-01-01 00:00:00-08</code>，但现在会被渲染为 <code>1801-01-01 00:00:00-07:52:58</code>。</p>\n<p>另外，包含墨西哥、蒙古和葡萄牙的历史修正。值得注意的是，<code>Asia/Choibalsan</code> 现在是 <code>Asia/Ulaanbaatar</code> 的别名而非独立区域，主要是因为这些区域之间的差异被发现是基于不可靠的数据。</p>", "text": "将时区数据文件更新为 tzdata 2024b 版本（Tom Lane）§ § 此 tzdata 版本将旧的 System-V 兼容性区域名称更改为与对应地理区域重复；例如 PST8PDT 现在是 America/Los_Angeles 的别名。主要可见后果是，对于标准化时区引入之前的时间戳，该区域被认为代表命名位置的本地平均太阳时。例如，在 PST8PDT 中，timestamptz 输入如 1801-01-01 00:00 之前会被渲染为 1801-01-01 00:00:00-08，但现在会被渲染为 1801-01-01 00:00:00-07:52:58。 另外，包含墨西哥、蒙古和葡萄牙的历史修正。值得注意的是，Asia/Choibalsan 现在是 Asia/Ulaanbaatar 的别名而非独立区域，主要是因为这些区域之间的差异被发现是基于不可靠的数据。", "title": "将时区数据文件更新为 tzdata 2024b 版本", "commits": ["8a8486175", "b28b9b19b"], "section": "变更", "category": "improvement", "source_url": "/docs/release/13.17/#id-1.11.6.12.5", "source_hash": "23c4caa923dfd2439a43c0030824d07e6955e309792e82c6533b61730a6820e7", "section_path": ["变更"], "commit_groups": [["205813da4", "2abc88958", "2b94ee58b", "6283ff201", "b27622c90", "b28b9b19b", "b8ea0f675"], ["502e7bf7f", "74f70cb86", "8a8486175", "8f1759c9b", "a0c8d600b", "cad65907e", "dedced73e"]], "identity_text": "Update time zone data files to tzdata release 2024b (Tom Lane) This tzdata release changes the old System-V-compatibility zone names to duplicate the corresponding geographic zones; for example PST8PDT is now an alias for America/Los_Angeles. The main visible consequence is that for timestamps before the introduction of standardized time zones, the zone is considered to represent local mean solar time for the named location. For example, in PST8PDT, timestamptz input such as 1801-01-01 00:00 would previously have been rendered as 1801-01-01 00:00:00-08, but now it is rendered as 1801-01-01 00:00:00-07:52:58. Also, historical corrections for Mexico, Mongolia, and Portugal. Notably, Asia/Choibalsan is now an alias for Asia/Ulaanbaatar rather than being a separate zone, mainly because the differences between those zones were found to be based on untrustworthy data.", "commit_aliases": ["205813da4", "2abc88958", "2b94ee58b", "502e7bf7f", "6283ff201", "74f70cb86", "8a8486175", "8f1759c9b", "a0c8d600b", "b27622c90", "b28b9b19b", "b8ea0f675", "cad65907e", "dedced73e"], "source_commits": ["8a8486175", "b28b9b19b"], "source_entry_id": "13.17/changes/038", "db_id": "1274449aeb7aacfaf5c666d0bc92503b", "patch_ids": ["63ede0d4b2fd58fceb7518481e4a3fb9", "e36eb0380ec7d5aa68f70f9489666862"], "statement_hash": "2cf0cdffc27204b19b415b86a85c91c028acff52c569de8f863fbbddf28cb63a", "relations": [{"rule": 2, "type": "equivalent", "target": "155dade417778c08fcf9278e12df7703", "evidence": {"same_day": true, "patch_ids": ["63ede0d4b2fd58fceb7518481e4a3fb9", "e36eb0380ec7d5aa68f70f9489666862"], "statement_hash": "2cf0cdffc27204b19b415b86a85c91c028acff52c569de8f863fbbddf28cb63a"}}, {"rule": 2, "type": "equivalent", "target": "21566ee3657bf6046ec8c630e59f9fa4", "evidence": {"same_day": true, "patch_ids": ["63ede0d4b2fd58fceb7518481e4a3fb9", "e36eb0380ec7d5aa68f70f9489666862"], "statement_hash": "2cf0cdffc27204b19b415b86a85c91c028acff52c569de8f863fbbddf28cb63a"}}, {"rule": 2, "type": "equivalent", "target": "4a849728f3b1ce4e226253b6eef67b81", "evidence": {"same_day": true, "patch_ids": ["63ede0d4b2fd58fceb7518481e4a3fb9", "e36eb0380ec7d5aa68f70f9489666862"], "statement_hash": "2cf0cdffc27204b19b415b86a85c91c028acff52c569de8f863fbbddf28cb63a"}}, {"rule": 2, "type": "equivalent", "target": "ab359f251915c08c7f1b39b44a7466c5", "evidence": {"same_day": true, "patch_ids": ["63ede0d4b2fd58fceb7518481e4a3fb9", "e36eb0380ec7d5aa68f70f9489666862"], "statement_hash": "2cf0cdffc27204b19b415b86a85c91c028acff52c569de8f863fbbddf28cb63a"}}, {"rule": 2, "type": "equivalent", "target": "ce97a73c25e68d5bdb6e4cafb71fafb1", "evidence": {"same_day": true, "patch_ids": ["63ede0d4b2fd58fceb7518481e4a3fb9", "e36eb0380ec7d5aa68f70f9489666862"], "statement_hash": "2cf0cdffc27204b19b415b86a85c91c028acff52c569de8f863fbbddf28cb63a"}}], "version": "13.17", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "155dade417778c08fcf9278e12df7703", "kind": "equivalent", "version": "17.1", "label": "17.1", "title": "将时区数据文件更新为 tzdata 2024b 版本", "evidence": {"same_day": true, "patch_ids": ["63ede0d4b2fd58fceb7518481e4a3fb9", "e36eb0380ec7d5aa68f70f9489666862"], "statement_hash": "2cf0cdffc27204b19b415b86a85c91c028acff52c569de8f863fbbddf28cb63a"}, "url": "/docs/compare/?release=17.1#17.1-1871d2759b385285", "source_url": "/docs/release/17.1/#RELEASE-17-1-CHANGES"}, {"db_id": "4a849728f3b1ce4e226253b6eef67b81", "kind": "equivalent", "version": "16.5", "label": "16.5", "title": "将时区数据文件更新为 tzdata 2024b 版本", "evidence": {"same_day": true, "patch_ids": ["63ede0d4b2fd58fceb7518481e4a3fb9", "e36eb0380ec7d5aa68f70f9489666862"], "statement_hash": "2cf0cdffc27204b19b415b86a85c91c028acff52c569de8f863fbbddf28cb63a"}, "url": "/docs/compare/?release=16.5#16.5-7dd2d5e1fe0c5f45", "source_url": "/docs/release/16.5/#RELEASE-16-5-CHANGES"}, {"db_id": "ce97a73c25e68d5bdb6e4cafb71fafb1", "kind": "equivalent", "version": "15.9", "label": "15.9", "title": "将时区数据文件更新为 tzdata 2024b 版本", "evidence": {"same_day": true, "patch_ids": ["63ede0d4b2fd58fceb7518481e4a3fb9", "e36eb0380ec7d5aa68f70f9489666862"], "statement_hash": "2cf0cdffc27204b19b415b86a85c91c028acff52c569de8f863fbbddf28cb63a"}, "url": "/docs/compare/?release=15.9#15.9-e9290652fe966969", "source_url": "/docs/release/15.9/#ZH-AUTO-RELEASE-15-SECT2-18"}, {"db_id": "21566ee3657bf6046ec8c630e59f9fa4", "kind": "equivalent", "version": "14.14", "label": "14.14", "title": "将时区数据文件更新为 tzdata 2024b 版本", "evidence": {"same_day": true, "patch_ids": ["63ede0d4b2fd58fceb7518481e4a3fb9", "e36eb0380ec7d5aa68f70f9489666862"], "statement_hash": "2cf0cdffc27204b19b415b86a85c91c028acff52c569de8f863fbbddf28cb63a"}, "url": "/docs/compare/?release=14.14#14.14-e9290652fe966969", "source_url": "/docs/release/14.14/#ZH-AUTO-RELEASE-14-SECT2-18"}, {"db_id": "ab359f251915c08c7f1b39b44a7466c5", "kind": "equivalent", "version": "12.21", "label": "12.21", "title": "将时区数据文件更新为 tzdata 2024b 版本", "evidence": {"same_day": true, "patch_ids": ["63ede0d4b2fd58fceb7518481e4a3fb9", "e36eb0380ec7d5aa68f70f9489666862"], "statement_hash": "2cf0cdffc27204b19b415b86a85c91c028acff52c569de8f863fbbddf28cb63a"}, "url": "/docs/compare/?release=12.21#12.21-2bdd2b23091a19eb", "source_url": "/docs/release/12.21/#id-1.11.6.7.6"}]}]}], "stats": [{"key": "all", "label": "全部变更", "count": 38}, {"key": "feature", "label": "新功能", "count": 0}, {"key": "bugfix", "label": "BUG 修复", "count": 14}, {"key": "security", "label": "安全相关", "count": 4}, {"key": "performance", "label": "性能改进", "count": 0}, {"key": "compatibility", "label": "兼容性变化", "count": 0}, {"key": "improvement", "label": "其他改进", "count": 20}], "total": 38, "release_count": 1, "cross_major": false, "cve_count": 4, "cves": [{"id": "CVE-2024-10979", "url": "https://www.postgresql.org/support/security/CVE-2024-10979/", "fixed": {"12": "12.21", "13": "13.17", "14": "14.14", "15": "15.9", "16": "16.5", "17": "17.1"}, "score": 8.8, "title": "防止受信任的 PL/Perl 代码更改环境变量", "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2024-10979", "affected": {"12": "12", "13": "13", "14": "14", "15": "15", "16": "16", "17": "17"}, "component": "core server", "published": {"12": "2024-11-14", "13": "2024-11-14", "14": "2024-11-14", "15": "2024-11-14", "16": "2024-11-14", "17": "2024-11-14"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Incorrect control of environment variables in PostgreSQL PL/Perl allows an unprivileged database user to change sensitive process environment variables (e.g. PATH ). That often suffices to enable arbitrary code execution, even if the attacker lacks a database server operating system user. Versions before PostgreSQL 17.1, 16.5, 15.9, 14.14, 13.17, and 12.21 are affected.\n\nThe PostgreSQL project thanks Coby Abrams for reporting this problem.", "affected_ranges": [{"from": "0", "until": "12.21"}, {"from": "13", "until": "13.17"}, {"from": "14", "until": "14.14"}, {"from": "15", "until": "15.9"}, {"from": "16", "until": "16.5"}, {"from": "17", "until": "17.1"}], "first_published": "2024-11-14", "fixed_version": "13.17"}, {"id": "CVE-2024-10978", "url": "https://www.postgresql.org/support/security/CVE-2024-10978/", "fixed": {"12": "12.21", "13": "13.17", "14": "14.14", "15": "15.9", "16": "16.5", "17": "17.1"}, "score": 4.2, "title": "修复 SET SESSION AUTHORIZATION 与 SET ROLE 之间意外的交互", "vector": "AV:N/AC:H/PR:L/UI:N/S:U/C:L/I:L/A:N", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2024-10978", "affected": {"12": "12", "13": "13", "14": "14", "15": "15", "16": "16", "17": "17"}, "component": "core server", "published": {"12": "2024-11-14", "13": "2024-11-14", "14": "2024-11-14", "15": "2024-11-14", "16": "2024-11-14", "17": "2024-11-14"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Incorrect privilege assignment in PostgreSQL allows a less-privileged application user to view or change different rows from those intended. An attack requires the application to use SET ROLE , SET SESSION AUTHORIZATION , or an equivalent feature. The problem arises when an application query uses parameters from the attacker or conveys query results to the attacker. If that query reacts to current_setting('role') or the current user ID, it may modify or return data as though the session had not used SET ROLE or SET SESSION AUTHORIZATION . The attacker does not control which incorrect user ID applies. Query text from less-privileged sources is not a concern here, because SET ROLE and SET SESSION AUTHORIZATION are not sandboxes for unvetted queries. Versions before PostgreSQL 17.1, 16.5, 15.9, 14.14, 13.17, and 12.21 are affected.\n\nThe PostgreSQL project thanks Tom Lane for reporting this problem.", "affected_ranges": [{"from": "0", "until": "12.21"}, {"from": "13", "until": "13.17"}, {"from": "14", "until": "14.14"}, {"from": "15", "until": "15.9"}, {"from": "16", "until": "16.5"}, {"from": "17", "until": "17.1"}], "first_published": "2024-11-14", "fixed_version": "13.17"}, {"id": "CVE-2024-10976", "url": "https://www.postgresql.org/support/security/CVE-2024-10976/", "fixed": {"12": "12.21", "13": "13.17", "14": "14.14", "15": "15.9", "16": "16.5", "17": "17.1"}, "score": 4.2, "title": "确保当 RLS 应用于非顶级表引用时，缓存的执行计划被标记为依赖于调用角色", "vector": "AV:N/AC:H/PR:L/UI:N/S:U/C:L/I:L/A:N", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2024-10976", "affected": {"12": "12", "13": "13", "14": "14", "15": "15", "16": "16", "17": "17"}, "component": "core server", "published": {"12": "2024-11-14", "13": "2024-11-14", "14": "2024-11-14", "15": "2024-11-14", "16": "2024-11-14", "17": "2024-11-14"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Incomplete tracking in PostgreSQL of tables with row security allows a reused query to view or change different rows from those intended. CVE-2023-2455 and CVE-2016-2193 fixed most interaction between row security and user ID changes. They missed cases where a subquery, WITH query, security invoker view, or SQL-language function references a table with a row-level security policy. This has the same consequences as the two earlier CVEs. That is to say, it leads to potentially incorrect policies being applied in cases where role-specific policies are used and a given query is planned under one role and then executed under other roles. This scenario can happen under security definer functions or when a common user and query is planned initially and then re-used across multiple SET ROLEs.\n\nApplying an incorrect policy may permit a user to complete otherwise-forbidden reads and modifications. This affects only databases that have used CREATE POLICY to define a row security policy. An attacker must tailor an attack to a particular application's pattern of query plan reuse, user ID changes, and role-specific row security policies. Versions before PostgreSQL 17.1, 16.5, 15.9, 14.14, 13.17, and 12.21 are affected.", "affected_ranges": [{"from": "0", "until": "12.21"}, {"from": "13", "until": "13.17"}, {"from": "14", "until": "14.14"}, {"from": "15", "until": "15.9"}, {"from": "16", "until": "16.5"}, {"from": "17", "until": "17.1"}], "first_published": "2024-11-14", "fixed_version": "13.17"}, {"id": "CVE-2024-10977", "url": "https://www.postgresql.org/support/security/CVE-2024-10977/", "fixed": {"12": "12.21", "13": "13.17", "14": "14.14", "15": "15.9", "16": "16.5", "17": "17.1"}, "score": 3.1, "title": "使 libpq 丢弃在 SSL 或 GSS 协议协商期间收到的错误消息", "vector": "AV:N/AC:H/PR:N/UI:R/S:U/C:N/I:L/A:N", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2024-10977", "affected": {"12": "12", "13": "13", "14": "14", "15": "15", "16": "16", "17": "17"}, "component": "client", "published": {"12": "2024-11-14", "13": "2024-11-14", "14": "2024-11-14", "15": "2024-11-14", "16": "2024-11-14", "17": "2024-11-14"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Client use of server error message in PostgreSQL allows a server not trusted under current SSL or GSS settings to furnish arbitrary non-NUL bytes to the libpq application. For example, a man-in-the-middle attacker could send a long error message that a human or screen-scraper user of psql mistakes for valid query results. This is probably not a concern for clients where the user interface unambiguously indicates the boundary between one error message and other text. Versions before PostgreSQL 17.1, 16.5, 15.9, 14.14, 13.17, and 12.21 are affected.\n\nThe PostgreSQL project thanks Jacob Champion for reporting this problem.", "affected_ranges": [{"from": "0", "until": "12.21"}, {"from": "13", "until": "13.17"}, {"from": "14", "until": "14.14"}, {"from": "15", "until": "15.9"}, {"from": "16", "until": "16.5"}, {"from": "17", "until": "17.1"}], "first_published": "2024-11-14", "fixed_version": "13.17"}], "cve_available": true, "remaining_cves": [], "security_regressions": [], "warnings": [], "candidate_count": 38, "already_in_source_count": 0, "duplicate_count": 0, "excluded_count": 0, "exclusions": [], "source_as_of": "2026-09-26", "security_as_of": "2026-09-26"}