{"format": 1, "mode": "release", "from_release": null, "to_release": {"date": "2022-02-10", "build": "13.6", "major": "13", "minor": 6, "manual": "13", "status": "stable", "doc_git": "", "version": "13.6", "eol_date": "2025-11-13", "date_text": "2022-02-10", "supported": false, "manual_url": "/docs/13/release-13-6.html", "source_url": "/docs/release/13.6/", "entry_count": 41, "placeholder": false, "content_hash": "9f2853e244a8d50c881634455f736b381c842845744a5efd0b873bad514d4d8e", "manual_build": "13.23", "source_as_of": "", "changes_count": 41, "doc_loaded_at": "2026-09-26T02:56:40.428744", "migration_html": "<p>对于运行 13.X 的用户，不需要执行导出/恢复。</p>\n<p>但是，如果曾对 TOAST 表的索引执行 <code>REINDEX CONCURRENTLY</code>，或者发现无法访问 TOAST 数据，请参阅下方变更记录中的第一项。</p>\n<p>此外，如果是从早于 13.5 的版本升级，请参见<a href=\"/docs/13/release-13-5.html\" title=\"E.19. 发布版本 13.5\">第 E.19 节</a>。</p>", "compatibility_count": 0, "label": "13.6", "status_label": "历史版本", "eol": "2025-11-13", "age_days": 1693, "support_days": -321}, "groups": [{"date": "2022-02-10", "build": "13.6", "major": "13", "minor": 6, "manual": "13", "status": "stable", "doc_git": "", "version": "13.6", "eol_date": "2025-11-13", "date_text": "2022-02-10", "supported": false, "manual_url": "/docs/13/release-13-6.html", "source_url": "/docs/release/13.6/", "entry_count": 41, "placeholder": false, "content_hash": "9f2853e244a8d50c881634455f736b381c842845744a5efd0b873bad514d4d8e", "manual_build": "13.23", "source_as_of": "", "changes_count": 41, "doc_loaded_at": "2026-09-26T02:56:40.428744", "migration_html": "<p>对于运行 13.X 的用户，不需要执行导出/恢复。</p>\n<p>但是，如果曾对 TOAST 表的索引执行 <code>REINDEX CONCURRENTLY</code>，或者发现无法访问 TOAST 数据，请参阅下方变更记录中的第一项。</p>\n<p>此外，如果是从早于 13.5 的版本升级，请参见<a href=\"/docs/13/release-13-5.html\" title=\"E.19. 发布版本 13.5\">第 E.19 节</a>。</p>", "compatibility_count": 0, "label": "13.6", "status_label": "历史版本", "eol": "2025-11-13", "age_days": 1693, "support_days": -321, "entries": [{"id": "13.6-e182c2620eb2e9c0", "cves": [], "html": "<p>对 TOAST 表更新强制使用标准锁定协议，以防止 <code>REINDEX CONCURRENTLY</code> 出现问题（Michael Paquier）<a href=\"https://postgr.es/c/9acea52ea\">§</a></p>\n<p>如果对 TOAST 表或 TOAST 表的索引应用 <code>REINDEX CONCURRENTLY</code>，往往会产生损坏的索引。这是因为更新 TOAST 条目的会话立即释放了其 <code>ROW EXCLUSIVE</code> 锁，而不是像其他所有更新那样持有到事务提交。修复方法是使 TOAST 更新按照正常规则持有表锁。任何已损坏的索引都可以通过重建索引来修复。</p>", "text": "对 TOAST 表更新强制使用标准锁定协议，以防止 REINDEX CONCURRENTLY 出现问题（Michael Paquier）§ 如果对 TOAST 表或 TOAST 表的索引应用 REINDEX CONCURRENTLY，往往会产生损坏的索引。这是因为更新 TOAST 条目的会话立即释放了其 ROW EXCLUSIVE 锁，而不是像其他所有更新那样持有到事务提交。修复方法是使 TOAST 更新按照正常规则持有表锁。任何已损坏的索引都可以通过重建索引来修复。", "title": "对 TOAST 表更新强制使用标准锁定协议，以防止 REINDEX CONCURRENTLY 出现问题", "commits": ["9acea52ea"], "section": "变更", "category": "improvement", "source_url": "/docs/release/13.6/#id-1.11.6.23.5", "source_hash": "8794aeb245b9f21bdea08b55e65590b71e8eff2b60ab2843f17d36a02e8b70b0", "section_path": ["变更"], "commit_groups": [["5ed74d874", "64ab21f0e", "9acea52ea", "f99870dd8"]], "identity_text": "Enforce standard locking protocol for TOAST table updates, to prevent problems with REINDEX CONCURRENTLY (Michael Paquier) If applied to a TOAST table or TOAST table's index, REINDEX CONCURRENTLY tended to produce a corrupted index. This happened because sessions updating TOAST entries released their ROW EXCLUSIVE locks immediately, rather than holding them until transaction commit as all other updates do. The fix is to make TOAST updates hold the table lock according to the normal rule. Any existing corrupted indexes can be repaired by reindexing again.", "commit_aliases": ["5ed74d874", "64ab21f0e", "9acea52ea", "f99870dd8"], "source_commits": ["9acea52ea"], "source_entry_id": "13.6/changes/001", "db_id": "6877da8b3bf78a126d7c3deb77091078", "patch_ids": ["975d5b1b3d223d485c53807d40bb1cfc"], "statement_hash": "1297528f4c76d19c5707ad78806ba77f793bf61108569939bb6e9cf07c14512a", "relations": [{"rule": 2, "type": "equivalent", "target": "1b9e90a52ace2d1ca22ee66de14c842e", "evidence": {"same_day": true, "patch_ids": ["975d5b1b3d223d485c53807d40bb1cfc"], "statement_hash": "1297528f4c76d19c5707ad78806ba77f793bf61108569939bb6e9cf07c14512a"}}, {"rule": 2, "type": "equivalent", "target": "a2cf1944e29d87d757200e43ba43520d", "evidence": {"same_day": true, "patch_ids": ["975d5b1b3d223d485c53807d40bb1cfc"], "statement_hash": "1297528f4c76d19c5707ad78806ba77f793bf61108569939bb6e9cf07c14512a"}}], "version": "13.6", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "a2cf1944e29d87d757200e43ba43520d", "kind": "equivalent", "version": "14.2", "label": "14.2", "title": "对 TOAST 表更新强制使用标准锁定协议，以防止 REINDEX CONCURRENTLY 出现问题", "evidence": {"same_day": true, "patch_ids": ["975d5b1b3d223d485c53807d40bb1cfc"], "statement_hash": "1297528f4c76d19c5707ad78806ba77f793bf61108569939bb6e9cf07c14512a"}, "url": "/docs/compare/?release=14.2#14.2-223ee757c2216ddc", "source_url": "/docs/release/14.2/#ZH-AUTO-RELEASE-14-SECT2-42"}, {"db_id": "1b9e90a52ace2d1ca22ee66de14c842e", "kind": "equivalent", "version": "12.10", "label": "12.10", "title": "对 TOAST 表更新强制使用标准锁定协议，以防止 REINDEX CONCURRENTLY 出现问题", "evidence": {"same_day": true, "patch_ids": ["975d5b1b3d223d485c53807d40bb1cfc"], "statement_hash": "1297528f4c76d19c5707ad78806ba77f793bf61108569939bb6e9cf07c14512a"}, "url": "/docs/compare/?release=12.10#12.10-c9ebdfc0dc626009", "source_url": "/docs/release/12.10/#id-1.11.6.18.5"}]}, {"id": "13.6-feeba8df4d192b7c", "cves": [], "html": "<p>避免在统计对象被并发删除时 <code>ALTER STATISTICS</code> 出现空指针崩溃（Tomas Vondra）<a href=\"https://postgr.es/c/267ccc38b\">§</a></p>", "text": "避免在统计对象被并发删除时 ALTER STATISTICS 出现空指针崩溃（Tomas Vondra）§", "title": "避免在统计对象被并发删除时 ALTER STATISTICS 出现空指针崩溃", "commits": ["267ccc38b"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/13.6/#id-1.11.6.23.5", "source_hash": "829230c22d0fe6263fd3e8e54825b5e07760c5469f92fb467da472c537826a2d", "section_path": ["变更"], "commit_groups": [["267ccc38b", "6d554e3fc", "a192243c7"]], "identity_text": "Avoid null-pointer crash in ALTER STATISTICS when the statistics object is dropped concurrently (Tomas Vondra)", "commit_aliases": ["267ccc38b", "6d554e3fc", "a192243c7"], "source_commits": ["267ccc38b"], "source_entry_id": "13.6/changes/002", "db_id": "cb4a0ca81935dc898d802bd0f02757ae", "patch_ids": ["30d0ea60e68b73870dc682b2fe02f3ff"], "statement_hash": "7288f43bd74e232362cac107685adfcc604677c134ac2134faf5187e7e460e48", "relations": [{"rule": 2, "type": "equivalent", "target": "a1c2b3649510a32ece98440e656a1b47", "evidence": {"same_day": true, "patch_ids": ["30d0ea60e68b73870dc682b2fe02f3ff"], "statement_hash": "7288f43bd74e232362cac107685adfcc604677c134ac2134faf5187e7e460e48"}}], "version": "13.6", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "a1c2b3649510a32ece98440e656a1b47", "kind": "equivalent", "version": "14.2", "label": "14.2", "title": "避免在统计对象被并发删除时 ALTER STATISTICS 出现空指针崩溃", "evidence": {"same_day": true, "patch_ids": ["30d0ea60e68b73870dc682b2fe02f3ff"], "statement_hash": "7288f43bd74e232362cac107685adfcc604677c134ac2134faf5187e7e460e48"}, "url": "/docs/compare/?release=14.2#14.2-b4909ad3042706cb", "source_url": "/docs/release/14.2/#ZH-AUTO-RELEASE-14-SECT2-42"}]}, {"id": "13.6-aee2a32333ec1325", "cves": [], "html": "<p>修复并行单子节点 Append 节点的不正确计划创建（David Rowley）<a href=\"https://postgr.es/c/f8807e774\">§</a></p>\n<p>在某些情况下，Append 在不应该被简化时被简化了，导致错误的查询结果（重复行）。</p>", "text": "修复并行单子节点 Append 节点的不正确计划创建（David Rowley）§ 在某些情况下，Append 在不应该被简化时被简化了，导致错误的查询结果（重复行）。", "title": "修复并行单子节点 Append 节点的不正确计划创建", "commits": ["f8807e774"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/13.6/#id-1.11.6.23.5", "source_hash": "ccd4e13f67cf54e4d5b1d912b7ba4ad40d2e1780a5445a65a33653fed770d319", "section_path": ["变更"], "commit_groups": [["2ccd8fb29", "357ff6615", "f8807e774", "f9a74c149"]], "identity_text": "Fix incorrect plan creation for parallel single-child Append nodes (David Rowley) In some cases the Append would be simplified away when it should not be, leading to wrong query results (duplicated rows).", "commit_aliases": ["2ccd8fb29", "357ff6615", "f8807e774", "f9a74c149"], "source_commits": ["f8807e774"], "source_entry_id": "13.6/changes/003", "db_id": "ac8261ab66eaba66676192bf6d5d1eaa", "patch_ids": ["824798e0131b37f7cdb2fde9e9e5da5b"], "statement_hash": "f6ac7ccbb7067f0f58f61b7c751b88f9788f94ff69a334c5909d252b95b09478", "relations": [{"rule": 2, "type": "equivalent", "target": "265a4d6ee8cc6da24988030ae52d6e6a", "evidence": {"same_day": true, "patch_ids": ["824798e0131b37f7cdb2fde9e9e5da5b"], "statement_hash": "f6ac7ccbb7067f0f58f61b7c751b88f9788f94ff69a334c5909d252b95b09478"}}, {"rule": 2, "type": "equivalent", "target": "e1fb660586dfc4dc98f59fae8a8b5298", "evidence": {"same_day": true, "patch_ids": ["824798e0131b37f7cdb2fde9e9e5da5b"], "statement_hash": "f6ac7ccbb7067f0f58f61b7c751b88f9788f94ff69a334c5909d252b95b09478"}}], "version": "13.6", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "265a4d6ee8cc6da24988030ae52d6e6a", "kind": "equivalent", "version": "14.2", "label": "14.2", "title": "修复并行单子节点 Append 节点的不正确计划创建", "evidence": {"same_day": true, "patch_ids": ["824798e0131b37f7cdb2fde9e9e5da5b"], "statement_hash": "f6ac7ccbb7067f0f58f61b7c751b88f9788f94ff69a334c5909d252b95b09478"}, "url": "/docs/compare/?release=14.2#14.2-e564b4a4844bd24c", "source_url": "/docs/release/14.2/#ZH-AUTO-RELEASE-14-SECT2-42"}, {"db_id": "e1fb660586dfc4dc98f59fae8a8b5298", "kind": "equivalent", "version": "12.10", "label": "12.10", "title": "修复并行单子节点 Append 节点的不正确计划创建", "evidence": {"same_day": true, "patch_ids": ["824798e0131b37f7cdb2fde9e9e5da5b"], "statement_hash": "f6ac7ccbb7067f0f58f61b7c751b88f9788f94ff69a334c5909d252b95b09478"}, "url": "/docs/compare/?release=12.10#12.10-c0f859c9433fbd35", "source_url": "/docs/release/12.10/#id-1.11.6.18.5"}]}, {"id": "13.6-f12e79c353bc0af5", "cves": [], "html": "<p>修复当并非所有索引列都可返回时的仅索引扫描计划（Tom Lane）<a href=\"https://postgr.es/c/45ae42714\">§</a> <a href=\"https://postgr.es/c/20d08b2c6\">§</a></p>\n<p>如果一个索引同时具有可返回列和不可返回列，且其中一个不可返回列是使用出现在可返回索引列中的表列的表达式，那么使用该表达式的查询可能会产生一个尝试读取不可返回列的仅索引扫描计划，而不是按预期从可返回列重新计算表达式。不可返回列将读取为 NULL，导致错误的查询结果。</p>", "text": "修复当并非所有索引列都可返回时的仅索引扫描计划（Tom Lane）§ § 如果一个索引同时具有可返回列和不可返回列，且其中一个不可返回列是使用出现在可返回索引列中的表列的表达式，那么使用该表达式的查询可能会产生一个尝试读取不可返回列的仅索引扫描计划，而不是按预期从可返回列重新计算表达式。不可返回列将读取为 NULL，导致错误的查询结果。", "title": "修复当并非所有索引列都可返回时的仅索引扫描计划", "commits": ["20d08b2c6", "45ae42714"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/13.6/#id-1.11.6.23.5", "source_hash": "6305de98fc442b78cf7b12a102096412be52499f4c8cc89a1fa9803f5eab2e0e", "section_path": ["变更"], "commit_groups": [["20d08b2c6", "7d344f004", "9a3ddeb51", "9c4f38908", "d228af79d", "ec3674521"], ["45ae42714", "4ace45677", "70a31a0e3", "cabea571d", "e3a4c7981", "f789b7732"]], "identity_text": "Fix index-only scan plans for cases where not all index columns can be returned (Tom Lane) If an index has both returnable and non-returnable columns, and one of the non-returnable columns is an expression using a table column that appears in a returnable index column, then a query using that expression could result in an index-only scan plan that attempts to read the non-returnable column, instead of recomputing the expression from the returnable column as intended. The non-returnable column would read as NULL, resulting in wrong query results.", "commit_aliases": ["20d08b2c6", "45ae42714", "4ace45677", "70a31a0e3", "7d344f004", "9a3ddeb51", "9c4f38908", "cabea571d", "d228af79d", "e3a4c7981", "ec3674521", "f789b7732"], "source_commits": ["20d08b2c6", "45ae42714"], "source_entry_id": "13.6/changes/004", "db_id": "f0acdbf5115206fd7c14c5d95d3216c9", "patch_ids": ["6d6a4be5086626f54d18cda6266cba19", "760e4f485341b015946c41dd156f7932"], "statement_hash": "0eb73230454f43abdd194f1c7a2723c941bfef6f85f1ba751acac29a7b310f91", "relations": [{"rule": 2, "type": "equivalent", "target": "0c3546786dd2c50531ab322064119a54", "evidence": {"same_day": true, "patch_ids": ["6d6a4be5086626f54d18cda6266cba19", "760e4f485341b015946c41dd156f7932"], "statement_hash": "0eb73230454f43abdd194f1c7a2723c941bfef6f85f1ba751acac29a7b310f91"}}, {"rule": 2, "type": "equivalent", "target": "3977d734db4098da431d57a7fdc66133", "evidence": {"same_day": true, "patch_ids": ["6d6a4be5086626f54d18cda6266cba19", "760e4f485341b015946c41dd156f7932"], "statement_hash": "0eb73230454f43abdd194f1c7a2723c941bfef6f85f1ba751acac29a7b310f91"}}, {"rule": 2, "type": "equivalent", "target": "5559080180bd2f22df9d8a2f127c6c1c", "evidence": {"same_day": true, "patch_ids": ["6d6a4be5086626f54d18cda6266cba19", "760e4f485341b015946c41dd156f7932"], "statement_hash": "0eb73230454f43abdd194f1c7a2723c941bfef6f85f1ba751acac29a7b310f91"}}, {"rule": 2, "type": "equivalent", "target": "f54ef2477e65cc077e969de79adec6bb", "evidence": {"same_day": true, "patch_ids": ["6d6a4be5086626f54d18cda6266cba19", "760e4f485341b015946c41dd156f7932"], "statement_hash": "0eb73230454f43abdd194f1c7a2723c941bfef6f85f1ba751acac29a7b310f91"}}], "version": "13.6", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "0c3546786dd2c50531ab322064119a54", "kind": "equivalent", "version": "14.2", "label": "14.2", "title": "修复当并非所有索引列都可返回时的仅索引扫描计划", "evidence": {"same_day": true, "patch_ids": ["6d6a4be5086626f54d18cda6266cba19", "760e4f485341b015946c41dd156f7932"], "statement_hash": "0eb73230454f43abdd194f1c7a2723c941bfef6f85f1ba751acac29a7b310f91"}, "url": "/docs/compare/?release=14.2#14.2-64f3cb827fa2f009", "source_url": "/docs/release/14.2/#ZH-AUTO-RELEASE-14-SECT2-42"}, {"db_id": "5559080180bd2f22df9d8a2f127c6c1c", "kind": "equivalent", "version": "12.10", "label": "12.10", "title": "修复当并非所有索引列都可返回时的仅索引扫描计划", "evidence": {"same_day": true, "patch_ids": ["6d6a4be5086626f54d18cda6266cba19", "760e4f485341b015946c41dd156f7932"], "statement_hash": "0eb73230454f43abdd194f1c7a2723c941bfef6f85f1ba751acac29a7b310f91"}, "url": "/docs/compare/?release=12.10#12.10-706d6ef31fbe403c", "source_url": "/docs/release/12.10/#id-1.11.6.18.5"}, {"db_id": "f54ef2477e65cc077e969de79adec6bb", "kind": "equivalent", "version": "11.15", "label": "11.15", "title": "修复当并非所有索引列都可返回时的仅索引扫描计划", "evidence": {"same_day": true, "patch_ids": ["6d6a4be5086626f54d18cda6266cba19", "760e4f485341b015946c41dd156f7932"], "statement_hash": "0eb73230454f43abdd194f1c7a2723c941bfef6f85f1ba751acac29a7b310f91"}, "url": "/docs/compare/?release=11.15#11.15-806922f927b7d584", "source_url": "/docs/release/11.15/#id-1.11.6.12.5"}, {"db_id": "3977d734db4098da431d57a7fdc66133", "kind": "equivalent", "version": "10.20", "label": "10.20", "title": "修复当并非所有索引列都可返回时的仅索引扫描计划", "evidence": {"same_day": true, "patch_ids": ["6d6a4be5086626f54d18cda6266cba19", "760e4f485341b015946c41dd156f7932"], "statement_hash": "0eb73230454f43abdd194f1c7a2723c941bfef6f85f1ba751acac29a7b310f91"}, "url": "/docs/compare/?release=10.20#10.20-806922f927b7d584", "source_url": "/docs/release/10.20/#id-1.11.6.8.6"}]}, {"id": "13.6-9761aa54ac8f3c19", "cves": [], "html": "<p>确保将类型转换到未指定的 typmod 时生成 RelabelType 节点而非长度强制函数调用（Tom Lane）<a href=\"https://postgr.es/c/da0d8a454\">§</a></p>\n<p>虽然强制函数应该做正确的事情（即什么都不做），但这种转换效率不必要地低下。</p>", "text": "确保将类型转换到未指定的 typmod 时生成 RelabelType 节点而非长度强制函数调用（Tom Lane）§ 虽然强制函数应该做正确的事情（即什么都不做），但这种转换效率不必要地低下。", "title": "确保将类型转换到未指定的 typmod 时生成 RelabelType 节点而非长度强制函数调用", "commits": ["da0d8a454"], "section": "变更", "category": "improvement", "source_url": "/docs/release/13.6/#id-1.11.6.23.5", "source_hash": "7a7f7d6f3ab37650b8d88fab9c64d37429f726112cafa7c193863f2d6b9a1dc5", "section_path": ["变更"], "commit_groups": [["1acf34586", "9c356f4b2", "c43d72b24", "da0d8a454", "e1fd61c8c", "f9a8bc9f2"]], "identity_text": "Ensure that casting to an unspecified typmod generates a RelabelType node rather than a length-coercion function call (Tom Lane) While the coercion function should do the right thing (nothing), this translation is undesirably inefficient.", "commit_aliases": ["1acf34586", "9c356f4b2", "c43d72b24", "da0d8a454", "e1fd61c8c", "f9a8bc9f2"], "source_commits": ["da0d8a454"], "source_entry_id": "13.6/changes/005", "db_id": "663a5984f62f161ff7a0d4cedd3dd429", "patch_ids": ["c28e7c0bf1d5d009f2e012a5a2fdae5e"], "statement_hash": "effe54fb67849059b520165d0bc2a8ff9433d63b67c41ce681780a957c1cc37d", "relations": [{"rule": 2, "type": "equivalent", "target": "2a7f8ea1f2220e76ca24779d0e546459", "evidence": {"same_day": true, "patch_ids": ["c28e7c0bf1d5d009f2e012a5a2fdae5e"], "statement_hash": "effe54fb67849059b520165d0bc2a8ff9433d63b67c41ce681780a957c1cc37d"}}, {"rule": 2, "type": "equivalent", "target": "2a893e2cfd6603c7a75c0f088b5a6d60", "evidence": {"same_day": true, "patch_ids": ["c28e7c0bf1d5d009f2e012a5a2fdae5e"], "statement_hash": "effe54fb67849059b520165d0bc2a8ff9433d63b67c41ce681780a957c1cc37d"}}, {"rule": 2, "type": "equivalent", "target": "3ffca40a718620457f7a3bf9d087d63b", "evidence": {"same_day": true, "patch_ids": ["c28e7c0bf1d5d009f2e012a5a2fdae5e"], "statement_hash": "effe54fb67849059b520165d0bc2a8ff9433d63b67c41ce681780a957c1cc37d"}}, {"rule": 2, "type": "equivalent", "target": "67da827eb004dcc40e31b9af0ab7ece8", "evidence": {"same_day": true, "patch_ids": ["c28e7c0bf1d5d009f2e012a5a2fdae5e"], "statement_hash": "effe54fb67849059b520165d0bc2a8ff9433d63b67c41ce681780a957c1cc37d"}}], "version": "13.6", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "2a7f8ea1f2220e76ca24779d0e546459", "kind": "equivalent", "version": "14.2", "label": "14.2", "title": "确保将类型转换到未指定的 typmod 时生成 RelabelType 节点而非长度强制函数调用", "evidence": {"same_day": true, "patch_ids": ["c28e7c0bf1d5d009f2e012a5a2fdae5e"], "statement_hash": "effe54fb67849059b520165d0bc2a8ff9433d63b67c41ce681780a957c1cc37d"}, "url": "/docs/compare/?release=14.2#14.2-a99150f111e767f4", "source_url": "/docs/release/14.2/#ZH-AUTO-RELEASE-14-SECT2-42"}, {"db_id": "67da827eb004dcc40e31b9af0ab7ece8", "kind": "equivalent", "version": "12.10", "label": "12.10", "title": "确保将类型转换到未指定的 typmod 时生成 RelabelType 节点而非长度强制函数调用", "evidence": {"same_day": true, "patch_ids": ["c28e7c0bf1d5d009f2e012a5a2fdae5e"], "statement_hash": "effe54fb67849059b520165d0bc2a8ff9433d63b67c41ce681780a957c1cc37d"}, "url": "/docs/compare/?release=12.10#12.10-0bc0132862b52e28", "source_url": "/docs/release/12.10/#id-1.11.6.18.5"}, {"db_id": "3ffca40a718620457f7a3bf9d087d63b", "kind": "equivalent", "version": "11.15", "label": "11.15", "title": "确保将类型转换到未指定的 typmod 时生成 RelabelType 节点而非长度强制函数调用", "evidence": {"same_day": true, "patch_ids": ["c28e7c0bf1d5d009f2e012a5a2fdae5e"], "statement_hash": "effe54fb67849059b520165d0bc2a8ff9433d63b67c41ce681780a957c1cc37d"}, "url": "/docs/compare/?release=11.15#11.15-c0ed51fd463e361c", "source_url": "/docs/release/11.15/#id-1.11.6.12.5"}, {"db_id": "2a893e2cfd6603c7a75c0f088b5a6d60", "kind": "equivalent", "version": "10.20", "label": "10.20", "title": "确保将类型转换到未指定的 typmod 时生成 RelabelType 节点而非长度强制函数调用", "evidence": {"same_day": true, "patch_ids": ["c28e7c0bf1d5d009f2e012a5a2fdae5e"], "statement_hash": "effe54fb67849059b520165d0bc2a8ff9433d63b67c41ce681780a957c1cc37d"}, "url": "/docs/compare/?release=10.20#10.20-c0ed51fd463e361c", "source_url": "/docs/release/10.20/#id-1.11.6.8.6"}]}, {"id": "13.6-340060dc4575a382", "cves": [], "html": "<p>修复 <code>anycompatible</code> 系列数据类型匹配的检查（Tom Lane）<a href=\"https://postgr.es/c/5ad70564f\">§</a></p>\n<p>在某些情况下，解析器会认为具有 <code>anycompatible</code> 系列多态参数的函数或操作符匹配了一组实际上不应匹配的参数。在已报告的案例中，这导致对一个调用匹配了多个操作符，引发操作符歧义错误；但之后出现失败也是可能的。</p>", "text": "修复 anycompatible 系列数据类型匹配的检查（Tom Lane）§ 在某些情况下，解析器会认为具有 anycompatible 系列多态参数的函数或操作符匹配了一组实际上不应匹配的参数。在已报告的案例中，这导致对一个调用匹配了多个操作符，引发操作符歧义错误；但之后出现失败也是可能的。", "title": "修复 anycompatible 系列数据类型匹配的检查", "commits": ["5ad70564f"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/13.6/#id-1.11.6.23.5", "source_hash": "55a77cd228011085b725601e2fba3499f6cadf2b95c5abe27973fe00d23d1a5c", "section_path": ["变更"], "commit_groups": [["5ad70564f", "8e2e0f758", "c025067f6"]], "identity_text": "Fix checking of anycompatible-family data type matches (Tom Lane) In some cases the parser would think that a function or operator with anycompatible-family polymorphic parameters matches a set of arguments that it really shouldn't match. In reported cases, that led to matching more than one operator to a call, leading to ambiguous-operator errors; but a failure later on is also possible.", "commit_aliases": ["5ad70564f", "8e2e0f758", "c025067f6"], "source_commits": ["5ad70564f"], "source_entry_id": "13.6/changes/006", "db_id": "cdfc2ed0ea6ff44d17752a1d16d5a1ce", "patch_ids": ["d9959906aa3103990a6449a0dda85b61"], "statement_hash": "a0af24173f65cb96b1bd0ae83731612477fa494a815bcdc2bfd08751c65a595f", "relations": [{"rule": 2, "type": "equivalent", "target": "e1111027f07b5102db1156306a34b048", "evidence": {"same_day": true, "patch_ids": ["d9959906aa3103990a6449a0dda85b61"], "statement_hash": "a0af24173f65cb96b1bd0ae83731612477fa494a815bcdc2bfd08751c65a595f"}}], "version": "13.6", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "e1111027f07b5102db1156306a34b048", "kind": "equivalent", "version": "14.2", "label": "14.2", "title": "修复 anycompatible 系列数据类型匹配的检查", "evidence": {"same_day": true, "patch_ids": ["d9959906aa3103990a6449a0dda85b61"], "statement_hash": "a0af24173f65cb96b1bd0ae83731612477fa494a815bcdc2bfd08751c65a595f"}, "url": "/docs/compare/?release=14.2#14.2-6fa658bfee0e3f95", "source_url": "/docs/release/14.2/#ZH-AUTO-RELEASE-14-SECT2-42"}]}, {"id": "13.6-51c48133cefb804d", "cves": [], "html": "<p>修复当数据库一致性恰好在 WAL 页面边界处达到时的 WAL 重放失败（Álvaro Herrera）<a href=\"https://postgr.es/c/ef41c3fd6\">§</a></p>", "text": "修复当数据库一致性恰好在 WAL 页面边界处达到时的 WAL 重放失败（Álvaro Herrera）§", "title": "修复当数据库一致性恰好在 WAL 页面边界处达到时的 WAL 重放失败", "commits": ["ef41c3fd6"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/13.6/#id-1.11.6.23.5", "source_hash": "c3131017e199f2b2a36af54870ae757ece145bc45e86f1bcfaf969d66654f20b", "section_path": ["变更"], "commit_groups": [["2c3fddcbb", "44bd3ed33", "72cf39d51", "9c6ab1ef3", "d24dac954", "ef41c3fd6"]], "identity_text": "Fix WAL replay failure when database consistency is reached exactly at a WAL page boundary (Álvaro Herrera)", "commit_aliases": ["2c3fddcbb", "44bd3ed33", "72cf39d51", "9c6ab1ef3", "d24dac954", "ef41c3fd6"], "source_commits": ["ef41c3fd6"], "source_entry_id": "13.6/changes/007", "db_id": "bd3d61ccd0723fd56757dd1d72f63e7a", "patch_ids": ["afd24cd07c5f5b06f4a1e758059cb944"], "statement_hash": "9316113c43ed41782a5c3b28f3ba173d4cab64df113fad082125b66f139a86a7", "relations": [{"rule": 2, "type": "equivalent", "target": "2cc14dd2cde079eb0813d98ae4efc0eb", "evidence": {"same_day": true, "patch_ids": ["afd24cd07c5f5b06f4a1e758059cb944"], "statement_hash": "9316113c43ed41782a5c3b28f3ba173d4cab64df113fad082125b66f139a86a7"}}, {"rule": 2, "type": "equivalent", "target": "835e2fdb54f88b0ae985e0cb4cae1a86", "evidence": {"same_day": true, "patch_ids": ["afd24cd07c5f5b06f4a1e758059cb944"], "statement_hash": "9316113c43ed41782a5c3b28f3ba173d4cab64df113fad082125b66f139a86a7"}}, {"rule": 2, "type": "equivalent", "target": "c855dbf26945305b605c55a5904cde68", "evidence": {"same_day": true, "patch_ids": ["afd24cd07c5f5b06f4a1e758059cb944"], "statement_hash": "9316113c43ed41782a5c3b28f3ba173d4cab64df113fad082125b66f139a86a7"}}, {"rule": 2, "type": "equivalent", "target": "c8ee9f05fcab261ea19e8e933fce2a56", "evidence": {"same_day": true, "patch_ids": ["afd24cd07c5f5b06f4a1e758059cb944"], "statement_hash": "9316113c43ed41782a5c3b28f3ba173d4cab64df113fad082125b66f139a86a7"}}], "version": "13.6", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "c8ee9f05fcab261ea19e8e933fce2a56", "kind": "equivalent", "version": "14.2", "label": "14.2", "title": "修复当数据库一致性恰好在 WAL 页面边界处达到时的 WAL 重放失败", "evidence": {"same_day": true, "patch_ids": ["afd24cd07c5f5b06f4a1e758059cb944"], "statement_hash": "9316113c43ed41782a5c3b28f3ba173d4cab64df113fad082125b66f139a86a7"}, "url": "/docs/compare/?release=14.2#14.2-6a2216d5121007db", "source_url": "/docs/release/14.2/#ZH-AUTO-RELEASE-14-SECT2-42"}, {"db_id": "835e2fdb54f88b0ae985e0cb4cae1a86", "kind": "equivalent", "version": "12.10", "label": "12.10", "title": "修复当数据库一致性恰好在 WAL 页面边界处达到时的 WAL 重放失败", "evidence": {"same_day": true, "patch_ids": ["afd24cd07c5f5b06f4a1e758059cb944"], "statement_hash": "9316113c43ed41782a5c3b28f3ba173d4cab64df113fad082125b66f139a86a7"}, "url": "/docs/compare/?release=12.10#12.10-ebcffd2b569aa583", "source_url": "/docs/release/12.10/#id-1.11.6.18.5"}, {"db_id": "c855dbf26945305b605c55a5904cde68", "kind": "equivalent", "version": "11.15", "label": "11.15", "title": "修复当数据库一致性恰好在 WAL 页面边界处达到时的 WAL 重放失败", "evidence": {"same_day": true, "patch_ids": ["afd24cd07c5f5b06f4a1e758059cb944"], "statement_hash": "9316113c43ed41782a5c3b28f3ba173d4cab64df113fad082125b66f139a86a7"}, "url": "/docs/compare/?release=11.15#11.15-b3b60040801ca437", "source_url": "/docs/release/11.15/#id-1.11.6.12.5"}, {"db_id": "2cc14dd2cde079eb0813d98ae4efc0eb", "kind": "equivalent", "version": "10.20", "label": "10.20", "title": "修复当数据库一致性恰好在 WAL 页面边界处达到时的 WAL 重放失败", "evidence": {"same_day": true, "patch_ids": ["afd24cd07c5f5b06f4a1e758059cb944"], "statement_hash": "9316113c43ed41782a5c3b28f3ba173d4cab64df113fad082125b66f139a86a7"}, "url": "/docs/compare/?release=10.20#10.20-b3b60040801ca437", "source_url": "/docs/release/10.20/#id-1.11.6.8.6"}]}, {"id": "13.6-eb0a7fc4d8a6d8fc", "cves": [], "html": "<p>修复物理副本的启动以容忍事务 ID 回卷（Abhijit Menon-Sen，Tomas Vondra）<a href=\"https://postgr.es/c/e90f258ac\">§</a></p>\n<p>如果副本服务器在主库上的活跃事务集跨越回卷边界时启动（即有些较新的事务的 XID 比较旧的事务小），副本将因 <span>“<span>out-of-order XID insertion in KnownAssignedXids</span>”</span> 而失败。副本会重试，但永远无法越过该错误。</p>", "text": "修复物理副本的启动以容忍事务 ID 回卷（Abhijit Menon-Sen，Tomas Vondra）§ 如果副本服务器在主库上的活跃事务集跨越回卷边界时启动（即有些较新的事务的 XID 比较旧的事务小），副本将因 “out-of-order XID insertion in KnownAssignedXids” 而失败。副本会重试，但永远无法越过该错误。", "title": "修复物理副本的启动以容忍事务 ID 回卷", "commits": ["e90f258ac"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/13.6/#id-1.11.6.23.5", "source_hash": "e4730e3b6ceb3da37a1f75151a849f152d2a946538faec7b52ae5a8181fe78d7", "section_path": ["变更"], "commit_groups": [["4b8af2bf8", "4ef38fbe8", "5cb88648e", "e90f258ac", "f192e1bdf", "fb2f8e534"]], "identity_text": "Fix startup of a physical replica to tolerate transaction ID wraparound (Abhijit Menon-Sen, Tomas Vondra) If a replica server is started while the set of active transactions on the primary crosses a wraparound boundary (so that there are some newer transactions with smaller XIDs than older ones), the replica would fail with out-of-order XID insertion in KnownAssignedXids. The replica would retry, but could never get past that error.", "commit_aliases": ["4b8af2bf8", "4ef38fbe8", "5cb88648e", "e90f258ac", "f192e1bdf", "fb2f8e534"], "source_commits": ["e90f258ac"], "source_entry_id": "13.6/changes/008", "db_id": "dcc67cb4dbf1b8f9e7af4833c39e96b2", "patch_ids": ["21be964fe50f71e6d82659b01ea3f378"], "statement_hash": "e70f568730b7f58e3cdb9f89493055fe2b6262a942607c9523e5e685502510df", "relations": [{"rule": 2, "type": "equivalent", "target": "1c36481a930c06c7940ad0f6d5e1316f", "evidence": {"same_day": true, "patch_ids": ["21be964fe50f71e6d82659b01ea3f378"], "statement_hash": "e70f568730b7f58e3cdb9f89493055fe2b6262a942607c9523e5e685502510df"}}, {"rule": 2, "type": "equivalent", "target": "5e19ddb281299d561bac0326a173a9e8", "evidence": {"same_day": true, "patch_ids": ["21be964fe50f71e6d82659b01ea3f378"], "statement_hash": "e70f568730b7f58e3cdb9f89493055fe2b6262a942607c9523e5e685502510df"}}, {"rule": 2, "type": "equivalent", "target": "6fa4719966ba913196a04b36398afb6b", "evidence": {"same_day": true, "patch_ids": ["21be964fe50f71e6d82659b01ea3f378"], "statement_hash": "e70f568730b7f58e3cdb9f89493055fe2b6262a942607c9523e5e685502510df"}}, {"rule": 2, "type": "equivalent", "target": "e182eef561607dab0750d05cfbef3245", "evidence": {"same_day": true, "patch_ids": ["21be964fe50f71e6d82659b01ea3f378"], "statement_hash": "e70f568730b7f58e3cdb9f89493055fe2b6262a942607c9523e5e685502510df"}}], "version": "13.6", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "5e19ddb281299d561bac0326a173a9e8", "kind": "equivalent", "version": "14.2", "label": "14.2", "title": "修复物理副本的启动以容忍事务 ID 回卷", "evidence": {"same_day": true, "patch_ids": ["21be964fe50f71e6d82659b01ea3f378"], "statement_hash": "e70f568730b7f58e3cdb9f89493055fe2b6262a942607c9523e5e685502510df"}, "url": "/docs/compare/?release=14.2#14.2-937704f82a03e216", "source_url": "/docs/release/14.2/#ZH-AUTO-RELEASE-14-SECT2-42"}, {"db_id": "e182eef561607dab0750d05cfbef3245", "kind": "equivalent", "version": "12.10", "label": "12.10", "title": "修复物理副本的启动以容忍事务 ID 回卷", "evidence": {"same_day": true, "patch_ids": ["21be964fe50f71e6d82659b01ea3f378"], "statement_hash": "e70f568730b7f58e3cdb9f89493055fe2b6262a942607c9523e5e685502510df"}, "url": "/docs/compare/?release=12.10#12.10-272e53fb1458bc32", "source_url": "/docs/release/12.10/#id-1.11.6.18.5"}, {"db_id": "1c36481a930c06c7940ad0f6d5e1316f", "kind": "equivalent", "version": "11.15", "label": "11.15", "title": "修复物理副本的启动以容忍事务 ID 回卷", "evidence": {"same_day": true, "patch_ids": ["21be964fe50f71e6d82659b01ea3f378"], "statement_hash": "e70f568730b7f58e3cdb9f89493055fe2b6262a942607c9523e5e685502510df"}, "url": "/docs/compare/?release=11.15#11.15-028a149f048103a5", "source_url": "/docs/release/11.15/#id-1.11.6.12.5"}, {"db_id": "6fa4719966ba913196a04b36398afb6b", "kind": "equivalent", "version": "10.20", "label": "10.20", "title": "修复物理副本的启动以容忍事务 ID 回卷", "evidence": {"same_day": true, "patch_ids": ["21be964fe50f71e6d82659b01ea3f378"], "statement_hash": "e70f568730b7f58e3cdb9f89493055fe2b6262a942607c9523e5e685502510df"}, "url": "/docs/compare/?release=10.20#10.20-028a149f048103a5", "source_url": "/docs/release/10.20/#id-1.11.6.8.6"}]}, {"id": "13.6-f2c700e2a0b72349", "cves": [], "html": "<p>在逻辑复制中，避免重复传输子表的数据（Hou Zhijie）<a href=\"https://postgr.es/c/3f06c00cf\">§</a></p>\n<p>如果一个发布同时包含子表和父表，并且设置了 <code>publish_via_partition_root</code> 选项，订阅者会对子表和父表都无用地启动同步。确保在这种情况下只同步父表。</p>", "text": "在逻辑复制中，避免重复传输子表的数据（Hou Zhijie）§ 如果一个发布同时包含子表和父表，并且设置了 publish_via_partition_root 选项，订阅者会对子表和父表都无用地启动同步。确保在这种情况下只同步父表。", "title": "在逻辑复制中，避免重复传输子表的数据", "commits": ["3f06c00cf"], "section": "变更", "category": "improvement", "source_url": "/docs/release/13.6/#id-1.11.6.23.5", "source_hash": "e753ce644ca0da0c69b8d2e6be31f5866102afda949b4ac3e8d57aa0305b51fe", "section_path": ["变更"], "commit_groups": [["3f06c00cf", "5e97905a2", "614b77d65"]], "identity_text": "In logical replication, avoid double transmission of a child table's data (Hou Zhijie) If a publication includes both child and parent tables, and has the publish_via_partition_root option set, subscribers uselessly initiated synchronization on both child and parent tables. Ensure that only the parent table is synchronized in such cases.", "commit_aliases": ["3f06c00cf", "5e97905a2", "614b77d65"], "source_commits": ["3f06c00cf"], "source_entry_id": "13.6/changes/009", "db_id": "3f2b16580e9d40a350b3249c6e85989d", "patch_ids": ["023c411fc6c9c27ee0e3ed022e27732d"], "statement_hash": "f3cd6a784be3fbab1674b461d053648a4d5c9ed1853f26fec12f67d3171ee8e0", "relations": [{"rule": 2, "type": "equivalent", "target": "a9477cf4ea60ef686900f10ee9d99ab0", "evidence": {"same_day": true, "patch_ids": ["023c411fc6c9c27ee0e3ed022e27732d"], "statement_hash": "f3cd6a784be3fbab1674b461d053648a4d5c9ed1853f26fec12f67d3171ee8e0"}}], "version": "13.6", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "a9477cf4ea60ef686900f10ee9d99ab0", "kind": "equivalent", "version": "14.2", "label": "14.2", "title": "在逻辑复制中，避免重复传输子表的数据", "evidence": {"same_day": true, "patch_ids": ["023c411fc6c9c27ee0e3ed022e27732d"], "statement_hash": "f3cd6a784be3fbab1674b461d053648a4d5c9ed1853f26fec12f67d3171ee8e0"}, "url": "/docs/compare/?release=14.2#14.2-27b0e32fbb24b5ce", "source_url": "/docs/release/14.2/#ZH-AUTO-RELEASE-14-SECT2-42"}]}, {"id": "13.6-d14d4f7b3e46838d", "cves": [], "html": "<p>移除在逻辑复制连接上发出的 SQL 命令的词法限制（Tom Lane）<a href=\"https://postgr.es/c/d67354d87\">§</a> <a href=\"https://postgr.es/c/c94c6612d\">§</a></p>\n<p>如果 SQL 命令包含未加引号的分号，或包含带有奇数个单引号或双引号的美元引用字面量，或以注释开头，walsender 进程就会失败。此外，错误恢复不正确也可能导致后续命令发生意外错误。</p>", "text": "移除在逻辑复制连接上发出的 SQL 命令的词法限制（Tom Lane）§ § 如果 SQL 命令包含未加引号的分号，或包含带有奇数个单引号或双引号的美元引用字面量，或以注释开头，walsender 进程就会失败。此外，错误恢复不正确也可能导致后续命令发生意外错误。", "title": "移除在逻辑复制连接上发出的 SQL 命令的词法限制", "commits": ["c94c6612d", "d67354d87"], "section": "变更", "category": "improvement", "source_url": "/docs/release/13.6/#id-1.11.6.23.5", "source_hash": "b3f8f6f54e37dc43422415b31c40f819e27bff3974fe47a546851592d0d69d99", "section_path": ["变更"], "commit_groups": [["1efcc5946", "4ec54498c", "689f75d6e", "6aa518614", "9af6d4b5a", "d67354d87"], ["3c06ec6d1", "449a69623", "a8ce5c8d7", "c94c6612d", "daf658982", "ef9706bbc"]], "identity_text": "Remove lexical limitations for SQL commands issued on a logical replication connection (Tom Lane) The walsender process would fail for a SQL command containing an unquoted semicolon, or with dollar-quoted literals containing odd numbers of single or double quote marks, or when the SQL command starts with a comment. Moreover, faulty error recovery could lead to unexpected errors in later commands too.", "commit_aliases": ["1efcc5946", "3c06ec6d1", "449a69623", "4ec54498c", "689f75d6e", "6aa518614", "9af6d4b5a", "a8ce5c8d7", "c94c6612d", "d67354d87", "daf658982", "ef9706bbc"], "source_commits": ["c94c6612d", "d67354d87"], "source_entry_id": "13.6/changes/010", "db_id": "ded3756805bb59acbe7ce106258ed5d9", "patch_ids": ["42ca0aa6a3655a1f62716d258e2406b6", "f025a3e43967cd493a53abf1ad69da60"], "statement_hash": "74357a6460815c3abf3d8c39a075609cb047397d9fea852fd18f587e9574d80b", "relations": [{"rule": 2, "type": "equivalent", "target": "702fbb9541c1100db24efa6c516ec49c", "evidence": {"same_day": true, "patch_ids": ["42ca0aa6a3655a1f62716d258e2406b6", "f025a3e43967cd493a53abf1ad69da60"], "statement_hash": "74357a6460815c3abf3d8c39a075609cb047397d9fea852fd18f587e9574d80b"}}, {"rule": 2, "type": "equivalent", "target": "a6bb3449547ab2fe12c28aba92ca29c9", "evidence": {"same_day": true, "patch_ids": ["42ca0aa6a3655a1f62716d258e2406b6", "f025a3e43967cd493a53abf1ad69da60"], "statement_hash": "74357a6460815c3abf3d8c39a075609cb047397d9fea852fd18f587e9574d80b"}}, {"rule": 2, "type": "equivalent", "target": "b98ea3c8a532b6d7b0e925a6b6c75cf9", "evidence": {"same_day": true, "patch_ids": ["42ca0aa6a3655a1f62716d258e2406b6", "f025a3e43967cd493a53abf1ad69da60"], "statement_hash": "74357a6460815c3abf3d8c39a075609cb047397d9fea852fd18f587e9574d80b"}}, {"rule": 2, "type": "equivalent", "target": "f7c93b4c152223c085640674bceba58a", "evidence": {"same_day": true, "patch_ids": ["42ca0aa6a3655a1f62716d258e2406b6", "f025a3e43967cd493a53abf1ad69da60"], "statement_hash": "74357a6460815c3abf3d8c39a075609cb047397d9fea852fd18f587e9574d80b"}}], "version": "13.6", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "b98ea3c8a532b6d7b0e925a6b6c75cf9", "kind": "equivalent", "version": "14.2", "label": "14.2", "title": "移除在逻辑复制连接上发出的 SQL 命令的词法限制", "evidence": {"same_day": true, "patch_ids": ["42ca0aa6a3655a1f62716d258e2406b6", "f025a3e43967cd493a53abf1ad69da60"], "statement_hash": "74357a6460815c3abf3d8c39a075609cb047397d9fea852fd18f587e9574d80b"}, "url": "/docs/compare/?release=14.2#14.2-34a8b0d995370b03", "source_url": "/docs/release/14.2/#ZH-AUTO-RELEASE-14-SECT2-42"}, {"db_id": "a6bb3449547ab2fe12c28aba92ca29c9", "kind": "equivalent", "version": "12.10", "label": "12.10", "title": "移除在逻辑复制连接上发出的 SQL 命令的词法限制", "evidence": {"same_day": true, "patch_ids": ["42ca0aa6a3655a1f62716d258e2406b6", "f025a3e43967cd493a53abf1ad69da60"], "statement_hash": "74357a6460815c3abf3d8c39a075609cb047397d9fea852fd18f587e9574d80b"}, "url": "/docs/compare/?release=12.10#12.10-b8a115690569b698", "source_url": "/docs/release/12.10/#id-1.11.6.18.5"}, {"db_id": "f7c93b4c152223c085640674bceba58a", "kind": "equivalent", "version": "11.15", "label": "11.15", "title": "移除在逻辑复制连接上发出的 SQL 命令的词法限制", "evidence": {"same_day": true, "patch_ids": ["42ca0aa6a3655a1f62716d258e2406b6", "f025a3e43967cd493a53abf1ad69da60"], "statement_hash": "74357a6460815c3abf3d8c39a075609cb047397d9fea852fd18f587e9574d80b"}, "url": "/docs/compare/?release=11.15#11.15-c83544f428c06c8d", "source_url": "/docs/release/11.15/#id-1.11.6.12.5"}, {"db_id": "702fbb9541c1100db24efa6c516ec49c", "kind": "equivalent", "version": "10.20", "label": "10.20", "title": "移除在逻辑复制连接上发出的 SQL 命令的词法限制", "evidence": {"same_day": true, "patch_ids": ["42ca0aa6a3655a1f62716d258e2406b6", "f025a3e43967cd493a53abf1ad69da60"], "statement_hash": "74357a6460815c3abf3d8c39a075609cb047397d9fea852fd18f587e9574d80b"}, "url": "/docs/compare/?release=10.20#10.20-c83544f428c06c8d", "source_url": "/docs/release/10.20/#id-1.11.6.8.6"}]}, {"id": "13.6-3587c5e0af0d56c6", "cves": [], "html": "<p>修复事务的最后一个子事务的提交时间戳可能丢失的问题（Alex Kingsborough，Kyotaro Horiguchi）<a href=\"https://postgr.es/c/b5f634116\">§</a></p>", "text": "修复事务的最后一个子事务的提交时间戳可能丢失的问题（Alex Kingsborough，Kyotaro Horiguchi）§", "title": "修复事务的最后一个子事务的提交时间戳可能丢失的问题", "commits": ["b5f634116"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/13.6/#id-1.11.6.23.5", "source_hash": "2e083b6cf6f89a11f40eebe5000769fd56b844d2b600508a5293e9da2383c9db", "section_path": ["变更"], "commit_groups": [["0ffe2975c", "1c0452c48", "237d1f317", "84db5169d", "919be95c6", "b5f634116"]], "identity_text": "Fix possible loss of the commit timestamp for the last subtransaction of a transaction (Alex Kingsborough, Kyotaro Horiguchi)", "commit_aliases": ["0ffe2975c", "1c0452c48", "237d1f317", "84db5169d", "919be95c6", "b5f634116"], "source_commits": ["b5f634116"], "source_entry_id": "13.6/changes/011", "db_id": "bbe661559a462cb4f9b5f9207041cac8", "patch_ids": ["5e29229b3a41d4f5688448cc3ff3ce9a"], "statement_hash": "e37e21c1d32b098ac1c4d96a11585890ee50dc422f49080a5e9ebc6e47f654ae", "relations": [{"rule": 2, "type": "equivalent", "target": "15e4cdf07e04f4692c91156a3a5908bb", "evidence": {"same_day": true, "patch_ids": ["5e29229b3a41d4f5688448cc3ff3ce9a"], "statement_hash": "e37e21c1d32b098ac1c4d96a11585890ee50dc422f49080a5e9ebc6e47f654ae"}}, {"rule": 2, "type": "equivalent", "target": "b8eac7e28755e73eb576db067bc4d9dc", "evidence": {"same_day": true, "patch_ids": ["5e29229b3a41d4f5688448cc3ff3ce9a"], "statement_hash": "e37e21c1d32b098ac1c4d96a11585890ee50dc422f49080a5e9ebc6e47f654ae"}}, {"rule": 2, "type": "equivalent", "target": "c7e8f0b202e9f17e8eed39745cb6debd", "evidence": {"same_day": true, "patch_ids": ["5e29229b3a41d4f5688448cc3ff3ce9a"], "statement_hash": "e37e21c1d32b098ac1c4d96a11585890ee50dc422f49080a5e9ebc6e47f654ae"}}, {"rule": 2, "type": "equivalent", "target": "f7107e2d130e3710354c69e1af1dca32", "evidence": {"same_day": true, "patch_ids": ["5e29229b3a41d4f5688448cc3ff3ce9a"], "statement_hash": "e37e21c1d32b098ac1c4d96a11585890ee50dc422f49080a5e9ebc6e47f654ae"}}], "version": "13.6", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "15e4cdf07e04f4692c91156a3a5908bb", "kind": "equivalent", "version": "14.2", "label": "14.2", "title": "修复事务的最后一个子事务的提交时间戳可能丢失的问题", "evidence": {"same_day": true, "patch_ids": ["5e29229b3a41d4f5688448cc3ff3ce9a"], "statement_hash": "e37e21c1d32b098ac1c4d96a11585890ee50dc422f49080a5e9ebc6e47f654ae"}, "url": "/docs/compare/?release=14.2#14.2-1e7e518dc5790ff5", "source_url": "/docs/release/14.2/#ZH-AUTO-RELEASE-14-SECT2-42"}, {"db_id": "f7107e2d130e3710354c69e1af1dca32", "kind": "equivalent", "version": "12.10", "label": "12.10", "title": "修复事务的最后一个子事务的提交时间戳可能丢失的问题", "evidence": {"same_day": true, "patch_ids": ["5e29229b3a41d4f5688448cc3ff3ce9a"], "statement_hash": "e37e21c1d32b098ac1c4d96a11585890ee50dc422f49080a5e9ebc6e47f654ae"}, "url": "/docs/compare/?release=12.10#12.10-66c96e177ff0bc30", "source_url": "/docs/release/12.10/#id-1.11.6.18.5"}, {"db_id": "b8eac7e28755e73eb576db067bc4d9dc", "kind": "equivalent", "version": "11.15", "label": "11.15", "title": "修复事务的最后一个子事务的提交时间戳可能丢失的问题", "evidence": {"same_day": true, "patch_ids": ["5e29229b3a41d4f5688448cc3ff3ce9a"], "statement_hash": "e37e21c1d32b098ac1c4d96a11585890ee50dc422f49080a5e9ebc6e47f654ae"}, "url": "/docs/compare/?release=11.15#11.15-f3a9037e87d00abf", "source_url": "/docs/release/11.15/#id-1.11.6.12.5"}, {"db_id": "c7e8f0b202e9f17e8eed39745cb6debd", "kind": "equivalent", "version": "10.20", "label": "10.20", "title": "修复事务的最后一个子事务的提交时间戳可能丢失的问题", "evidence": {"same_day": true, "patch_ids": ["5e29229b3a41d4f5688448cc3ff3ce9a"], "statement_hash": "e37e21c1d32b098ac1c4d96a11585890ee50dc422f49080a5e9ebc6e47f654ae"}, "url": "/docs/compare/?release=10.20#10.20-f3a9037e87d00abf", "source_url": "/docs/release/10.20/#id-1.11.6.8.6"}]}, {"id": "13.6-2f001a5bdf695b08", "cves": [], "html": "<p>确保在检查点期间对 <code>pg_logical/mappings</code> 子目录执行 <code>fsync</code>（Nathan Bossart）<a href=\"https://postgr.es/c/fd48e5f5d\">§</a></p>\n<p>在某些文件系统上，这一疏忽可能导致在系统崩溃后丢失逻辑重写状态文件。</p>", "text": "确保在检查点期间对 pg_logical/mappings 子目录执行 fsync（Nathan Bossart）§ 在某些文件系统上，这一疏忽可能导致在系统崩溃后丢失逻辑重写状态文件。", "title": "确保在检查点期间对 pg_logical/mappings 子目录执行 fsync", "commits": ["fd48e5f5d"], "section": "变更", "category": "improvement", "source_url": "/docs/release/13.6/#id-1.11.6.23.5", "source_hash": "499179b8b5993e0ca407fd817e4710e18cc997bcc4de46f11e23b2f5921fd001", "section_path": ["变更"], "commit_groups": [["1c6d055ba", "1fabec7d7", "2b7dbe4bd", "2c15b29f7", "f862cc09f", "fd48e5f5d"]], "identity_text": "Be sure to fsync the pg_logical/mappings subdirectory during checkpoints (Nathan Bossart) On some filesystems this oversight could lead to losing logical rewrite status files after a system crash.", "commit_aliases": ["1c6d055ba", "1fabec7d7", "2b7dbe4bd", "2c15b29f7", "f862cc09f", "fd48e5f5d"], "source_commits": ["fd48e5f5d"], "source_entry_id": "13.6/changes/012", "db_id": "aeba13b2c2363418e9446c0d419c8c28", "patch_ids": ["5694260cf9b2bb223a04401f64c318f9"], "statement_hash": "1f1453bd8236e965be91e24abeb4e6f80bfbb755a93d5a93b1ba598d6872f3db", "relations": [{"rule": 2, "type": "equivalent", "target": "353fc59252a3b8ee5c068e5ae44976d5", "evidence": {"same_day": true, "patch_ids": ["5694260cf9b2bb223a04401f64c318f9"], "statement_hash": "1f1453bd8236e965be91e24abeb4e6f80bfbb755a93d5a93b1ba598d6872f3db"}}, {"rule": 2, "type": "equivalent", "target": "72977b01e1df094cf40fd5ba331693af", "evidence": {"same_day": true, "patch_ids": ["5694260cf9b2bb223a04401f64c318f9"], "statement_hash": "1f1453bd8236e965be91e24abeb4e6f80bfbb755a93d5a93b1ba598d6872f3db"}}, {"rule": 2, "type": "equivalent", "target": "a9d08bee6a99170702c162e042d07eee", "evidence": {"same_day": true, "patch_ids": ["5694260cf9b2bb223a04401f64c318f9"], "statement_hash": "1f1453bd8236e965be91e24abeb4e6f80bfbb755a93d5a93b1ba598d6872f3db"}}, {"rule": 2, "type": "equivalent", "target": "cd5e04f92c3bd097a11741b1a43a5ef2", "evidence": {"same_day": true, "patch_ids": ["5694260cf9b2bb223a04401f64c318f9"], "statement_hash": "1f1453bd8236e965be91e24abeb4e6f80bfbb755a93d5a93b1ba598d6872f3db"}}], "version": "13.6", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "72977b01e1df094cf40fd5ba331693af", "kind": "equivalent", "version": "14.2", "label": "14.2", "title": "确保在检查点期间对 pg_logical/mappings 子目录执行 fsync", "evidence": {"same_day": true, "patch_ids": ["5694260cf9b2bb223a04401f64c318f9"], "statement_hash": "1f1453bd8236e965be91e24abeb4e6f80bfbb755a93d5a93b1ba598d6872f3db"}, "url": "/docs/compare/?release=14.2#14.2-f45104475e56fc82", "source_url": "/docs/release/14.2/#ZH-AUTO-RELEASE-14-SECT2-42"}, {"db_id": "a9d08bee6a99170702c162e042d07eee", "kind": "equivalent", "version": "12.10", "label": "12.10", "title": "确保在检查点期间对 pg_logical/mappings 子目录执行 fsync", "evidence": {"same_day": true, "patch_ids": ["5694260cf9b2bb223a04401f64c318f9"], "statement_hash": "1f1453bd8236e965be91e24abeb4e6f80bfbb755a93d5a93b1ba598d6872f3db"}, "url": "/docs/compare/?release=12.10#12.10-9465ddf94b4619da", "source_url": "/docs/release/12.10/#id-1.11.6.18.5"}, {"db_id": "cd5e04f92c3bd097a11741b1a43a5ef2", "kind": "equivalent", "version": "11.15", "label": "11.15", "title": "确保在检查点期间对 pg_logical/mappings 子目录执行 fsync", "evidence": {"same_day": true, "patch_ids": ["5694260cf9b2bb223a04401f64c318f9"], "statement_hash": "1f1453bd8236e965be91e24abeb4e6f80bfbb755a93d5a93b1ba598d6872f3db"}, "url": "/docs/compare/?release=11.15#11.15-1f781ac2c4939236", "source_url": "/docs/release/11.15/#id-1.11.6.12.5"}, {"db_id": "353fc59252a3b8ee5c068e5ae44976d5", "kind": "equivalent", "version": "10.20", "label": "10.20", "title": "确保在检查点期间对 pg_logical/mappings 子目录执行 fsync", "evidence": {"same_day": true, "patch_ids": ["5694260cf9b2bb223a04401f64c318f9"], "statement_hash": "1f1453bd8236e965be91e24abeb4e6f80bfbb755a93d5a93b1ba598d6872f3db"}, "url": "/docs/compare/?release=10.20#10.20-1f781ac2c4939236", "source_url": "/docs/release/10.20/#id-1.11.6.8.6"}]}, {"id": "13.6-ab307f084403f36c", "cves": [], "html": "<p>为分区表构建扩展统计信息（Justin Pryzby）<a href=\"https://postgr.es/c/d6817032d\">§</a></p>\n<p>之前的一个错误修复禁用了为旧式继承树构建扩展统计信息，但它也阻止了为分区表构建这些统计信息，这是一个不必要的限制。此变更允许 <code>ANALYZE</code> 计算分区表的统计对象的值。（但请注意，自动清理本身不处理分区表，因此如果需要维护此类统计信息，必须定期对分区表发出手动 <code>ANALYZE</code>。）</p>", "text": "为分区表构建扩展统计信息（Justin Pryzby）§ 之前的一个错误修复禁用了为旧式继承树构建扩展统计信息，但它也阻止了为分区表构建这些统计信息，这是一个不必要的限制。此变更允许 ANALYZE 计算分区表的统计对象的值。（但请注意，自动清理本身不处理分区表，因此如果需要维护此类统计信息，必须定期对分区表发出手动 ANALYZE。）", "title": "为分区表构建扩展统计信息", "commits": ["d6817032d"], "section": "变更", "category": "improvement", "source_url": "/docs/release/13.6/#id-1.11.6.23.5", "source_hash": "ae7338f012764a35cd9e308ec302c688d7d5f17627dd41cd869bf6e4b8220acf", "section_path": ["变更"], "commit_groups": [["20b9fa308", "491182e52", "9211c2e38", "9d1bcf5dc", "d6817032d", "ea212bd95"]], "identity_text": "Build extended statistics for partitioned tables (Justin Pryzby) A previous bug fix disabled building of extended statistics for old-style inheritance trees, but it also prevented building them for partitioned tables, which was an unnecessary restriction. This change allows ANALYZE to compute values for statistics objects for partitioned tables. (But note that autovacuum does not process partitioned tables as such, so you must periodically issue manual ANALYZE on the partitioned table if you want to maintain such statistics.)", "commit_aliases": ["20b9fa308", "491182e52", "9211c2e38", "9d1bcf5dc", "d6817032d", "ea212bd95"], "source_commits": ["d6817032d"], "source_entry_id": "13.6/changes/013", "db_id": "aa374d98da4fcd59ef0f1454458d4e48", "patch_ids": ["5008b2ffcd6d0349e6db2417b953c8b6"], "statement_hash": "bc97ad1640073834e349e700728976f6f6967d08c4f1f7cfd2d053aa07de91e6", "relations": [{"rule": 2, "type": "equivalent", "target": "8843b85ca94fbd9768cbf9c4db0197dd", "evidence": {"same_day": true, "patch_ids": ["5008b2ffcd6d0349e6db2417b953c8b6"], "statement_hash": "bc97ad1640073834e349e700728976f6f6967d08c4f1f7cfd2d053aa07de91e6"}}, {"rule": 2, "type": "equivalent", "target": "aae20dcb1ae1fa6bd3529412c04f97fb", "evidence": {"same_day": true, "patch_ids": ["5008b2ffcd6d0349e6db2417b953c8b6"], "statement_hash": "bc97ad1640073834e349e700728976f6f6967d08c4f1f7cfd2d053aa07de91e6"}}, {"rule": 2, "type": "equivalent", "target": "c4acacecb3d0ac73df4d51781c2f252b", "evidence": {"same_day": true, "patch_ids": ["5008b2ffcd6d0349e6db2417b953c8b6"], "statement_hash": "bc97ad1640073834e349e700728976f6f6967d08c4f1f7cfd2d053aa07de91e6"}}, {"rule": 2, "type": "equivalent", "target": "cc0037968bcdf035b8f620f0e0277a1a", "evidence": {"same_day": true, "patch_ids": ["5008b2ffcd6d0349e6db2417b953c8b6"], "statement_hash": "bc97ad1640073834e349e700728976f6f6967d08c4f1f7cfd2d053aa07de91e6"}}], "version": "13.6", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "aae20dcb1ae1fa6bd3529412c04f97fb", "kind": "equivalent", "version": "14.2", "label": "14.2", "title": "为分区表构建扩展统计信息", "evidence": {"same_day": true, "patch_ids": ["5008b2ffcd6d0349e6db2417b953c8b6"], "statement_hash": "bc97ad1640073834e349e700728976f6f6967d08c4f1f7cfd2d053aa07de91e6"}, "url": "/docs/compare/?release=14.2#14.2-6916df499a6d9e97", "source_url": "/docs/release/14.2/#ZH-AUTO-RELEASE-14-SECT2-42"}, {"db_id": "8843b85ca94fbd9768cbf9c4db0197dd", "kind": "equivalent", "version": "12.10", "label": "12.10", "title": "为分区表构建扩展统计信息", "evidence": {"same_day": true, "patch_ids": ["5008b2ffcd6d0349e6db2417b953c8b6"], "statement_hash": "bc97ad1640073834e349e700728976f6f6967d08c4f1f7cfd2d053aa07de91e6"}, "url": "/docs/compare/?release=12.10#12.10-eaa41b2f9f420694", "source_url": "/docs/release/12.10/#id-1.11.6.18.5"}, {"db_id": "cc0037968bcdf035b8f620f0e0277a1a", "kind": "equivalent", "version": "11.15", "label": "11.15", "title": "为分区表构建扩展统计信息", "evidence": {"same_day": true, "patch_ids": ["5008b2ffcd6d0349e6db2417b953c8b6"], "statement_hash": "bc97ad1640073834e349e700728976f6f6967d08c4f1f7cfd2d053aa07de91e6"}, "url": "/docs/compare/?release=11.15#11.15-67870a7dff22dade", "source_url": "/docs/release/11.15/#id-1.11.6.12.5"}, {"db_id": "c4acacecb3d0ac73df4d51781c2f252b", "kind": "equivalent", "version": "10.20", "label": "10.20", "title": "为分区表构建扩展统计信息", "evidence": {"same_day": true, "patch_ids": ["5008b2ffcd6d0349e6db2417b953c8b6"], "statement_hash": "bc97ad1640073834e349e700728976f6f6967d08c4f1f7cfd2d053aa07de91e6"}, "url": "/docs/compare/?release=10.20#10.20-67870a7dff22dade", "source_url": "/docs/release/10.20/#id-1.11.6.8.6"}]}, {"id": "13.6-b2a884861b9489a7", "cves": [], "html": "<p>忽略继承树的扩展统计信息（Justin Pryzby）<a href=\"https://postgr.es/c/acfde7c58\">§</a></p>\n<p>目前，扩展统计信息的值只是针对每个表本地计算的，而不是针对整个继承树。但是，在规划跨继承树的查询时，这些值被错误地参考了，可能导致比默认估计更差的结果。</p>", "text": "忽略继承树的扩展统计信息（Justin Pryzby）§ 目前，扩展统计信息的值只是针对每个表本地计算的，而不是针对整个继承树。但是，在规划跨继承树的查询时，这些值被错误地参考了，可能导致比默认估计更差的结果。", "title": "忽略继承树的扩展统计信息", "commits": ["acfde7c58"], "section": "变更", "category": "improvement", "source_url": "/docs/release/13.6/#id-1.11.6.23.5", "source_hash": "22c1add88e397c2f8251ccd8bdbd915132f2cdd35f75bddf1ecc941a5f33e9c1", "section_path": ["变更"], "commit_groups": [["2cc007fd0", "36c4bc6e7", "76569ad6f", "acfde7c58", "b3cac25f4", "ff0e7c7e8"]], "identity_text": "Ignore extended statistics for inheritance trees (Justin Pryzby) Currently, extended statistics values are only computed locally for each table, not for entire inheritance trees. However the values were mistakenly consulted when planning queries across inheritance trees, possibly resulting in worse-than-default estimates.", "commit_aliases": ["2cc007fd0", "36c4bc6e7", "76569ad6f", "acfde7c58", "b3cac25f4", "ff0e7c7e8"], "source_commits": ["acfde7c58"], "source_entry_id": "13.6/changes/014", "db_id": "12dccf5a2d38874c75631fdc6e2825ff", "patch_ids": ["1a76dec3ba82f451e5040c344380c584"], "statement_hash": "eb32924f69c99c9546eadfceb8f59d8f321e57b348a93cb0e762d4483c0c8487", "relations": [{"rule": 2, "type": "equivalent", "target": "2517ef9fb5b245d35d9e3ea766191afc", "evidence": {"same_day": true, "patch_ids": ["1a76dec3ba82f451e5040c344380c584"], "statement_hash": "eb32924f69c99c9546eadfceb8f59d8f321e57b348a93cb0e762d4483c0c8487"}}, {"rule": 2, "type": "equivalent", "target": "3c7141c008821c2af8e2ddc97ba7103e", "evidence": {"same_day": true, "patch_ids": ["1a76dec3ba82f451e5040c344380c584"], "statement_hash": "eb32924f69c99c9546eadfceb8f59d8f321e57b348a93cb0e762d4483c0c8487"}}, {"rule": 2, "type": "equivalent", "target": "82d4f54d56de673bd30c82b48031e6ca", "evidence": {"same_day": true, "patch_ids": ["1a76dec3ba82f451e5040c344380c584"], "statement_hash": "eb32924f69c99c9546eadfceb8f59d8f321e57b348a93cb0e762d4483c0c8487"}}, {"rule": 2, "type": "equivalent", "target": "c91e705bc9c63403f2a68a5332385d72", "evidence": {"same_day": true, "patch_ids": ["1a76dec3ba82f451e5040c344380c584"], "statement_hash": "eb32924f69c99c9546eadfceb8f59d8f321e57b348a93cb0e762d4483c0c8487"}}], "version": "13.6", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "c91e705bc9c63403f2a68a5332385d72", "kind": "equivalent", "version": "14.2", "label": "14.2", "title": "忽略继承树的扩展统计信息", "evidence": {"same_day": true, "patch_ids": ["1a76dec3ba82f451e5040c344380c584"], "statement_hash": "eb32924f69c99c9546eadfceb8f59d8f321e57b348a93cb0e762d4483c0c8487"}, "url": "/docs/compare/?release=14.2#14.2-5a3b094ffe0486c4", "source_url": "/docs/release/14.2/#ZH-AUTO-RELEASE-14-SECT2-42"}, {"db_id": "82d4f54d56de673bd30c82b48031e6ca", "kind": "equivalent", "version": "12.10", "label": "12.10", "title": "忽略继承树的扩展统计信息", "evidence": {"same_day": true, "patch_ids": ["1a76dec3ba82f451e5040c344380c584"], "statement_hash": "eb32924f69c99c9546eadfceb8f59d8f321e57b348a93cb0e762d4483c0c8487"}, "url": "/docs/compare/?release=12.10#12.10-901c77d1f1fb71cb", "source_url": "/docs/release/12.10/#id-1.11.6.18.5"}, {"db_id": "2517ef9fb5b245d35d9e3ea766191afc", "kind": "equivalent", "version": "11.15", "label": "11.15", "title": "忽略继承树的扩展统计信息", "evidence": {"same_day": true, "patch_ids": ["1a76dec3ba82f451e5040c344380c584"], "statement_hash": "eb32924f69c99c9546eadfceb8f59d8f321e57b348a93cb0e762d4483c0c8487"}, "url": "/docs/compare/?release=11.15#11.15-10912216a6ee6584", "source_url": "/docs/release/11.15/#id-1.11.6.12.5"}, {"db_id": "3c7141c008821c2af8e2ddc97ba7103e", "kind": "equivalent", "version": "10.20", "label": "10.20", "title": "忽略继承树的扩展统计信息", "evidence": {"same_day": true, "patch_ids": ["1a76dec3ba82f451e5040c344380c584"], "statement_hash": "eb32924f69c99c9546eadfceb8f59d8f321e57b348a93cb0e762d4483c0c8487"}, "url": "/docs/compare/?release=10.20#10.20-10912216a6ee6584", "source_url": "/docs/release/10.20/#id-1.11.6.8.6"}]}, {"id": "13.6-37d403b13f5f9c1e", "cves": [], "html": "<p>当分区表的行类型在其他地方被用作复合类型时，禁止修改其列的数据类型（Tom Lane）<a href=\"https://postgr.es/c/86d4bbb56\">§</a></p>\n<p>这一限制对于普通表早已存在，但由于疏忽，对分区表未做检查。</p>", "text": "当分区表的行类型在其他地方被用作复合类型时，禁止修改其列的数据类型（Tom Lane）§ 这一限制对于普通表早已存在，但由于疏忽，对分区表未做检查。", "title": "当分区表的行类型在其他地方被用作复合类型时，禁止修改其列的数据类型", "commits": ["86d4bbb56"], "section": "变更", "category": "improvement", "source_url": "/docs/release/13.6/#id-1.11.6.23.5", "source_hash": "730a767976729b8cff05c53099b03b92893b7b2bcd68aa85c79279f531f0140b", "section_path": ["变更"], "commit_groups": [["2ce113a4f", "7ead9925f", "86d4bbb56", "ccc7c3ad8", "e5b044c84", "f285d9583"]], "identity_text": "Disallow altering data type of a partitioned table's columns when the partitioned table's row type is used as a composite type elsewhere (Tom Lane) This restriction has long existed for regular tables, but through an oversight it was not checked for partitioned tables.", "commit_aliases": ["2ce113a4f", "7ead9925f", "86d4bbb56", "ccc7c3ad8", "e5b044c84", "f285d9583"], "source_commits": ["86d4bbb56"], "source_entry_id": "13.6/changes/015", "db_id": "0ca4e6b55209216d9e2fd11102432004", "patch_ids": ["2ce4ffd927395a9e57aa907362ebc53a"], "statement_hash": "1c653a8768b9c658f71d14703c8351d2367bd31bcfd0f2036f035958fcd6fb5b", "relations": [{"rule": 2, "type": "equivalent", "target": "576f15cdc43846a9dd9c25bb4b9f8a1e", "evidence": {"same_day": true, "patch_ids": ["2ce4ffd927395a9e57aa907362ebc53a"], "statement_hash": "1c653a8768b9c658f71d14703c8351d2367bd31bcfd0f2036f035958fcd6fb5b"}}, {"rule": 2, "type": "equivalent", "target": "6722169d655e9575b4970f24c17404bf", "evidence": {"same_day": true, "patch_ids": ["2ce4ffd927395a9e57aa907362ebc53a"], "statement_hash": "1c653a8768b9c658f71d14703c8351d2367bd31bcfd0f2036f035958fcd6fb5b"}}, {"rule": 2, "type": "equivalent", "target": "9e3dd1393b83dffba6deb1f286edc44f", "evidence": {"same_day": true, "patch_ids": ["2ce4ffd927395a9e57aa907362ebc53a"], "statement_hash": "1c653a8768b9c658f71d14703c8351d2367bd31bcfd0f2036f035958fcd6fb5b"}}, {"rule": 2, "type": "equivalent", "target": "ccf6e7ed9a5f4c1b19f99ae662af15b6", "evidence": {"same_day": true, "patch_ids": ["2ce4ffd927395a9e57aa907362ebc53a"], "statement_hash": "1c653a8768b9c658f71d14703c8351d2367bd31bcfd0f2036f035958fcd6fb5b"}}], "version": "13.6", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "ccf6e7ed9a5f4c1b19f99ae662af15b6", "kind": "equivalent", "version": "14.2", "label": "14.2", "title": "当分区表的行类型在其他地方被用作复合类型时，禁止修改其列的数据类型", "evidence": {"same_day": true, "patch_ids": ["2ce4ffd927395a9e57aa907362ebc53a"], "statement_hash": "1c653a8768b9c658f71d14703c8351d2367bd31bcfd0f2036f035958fcd6fb5b"}, "url": "/docs/compare/?release=14.2#14.2-f83d313a8c8730e4", "source_url": "/docs/release/14.2/#ZH-AUTO-RELEASE-14-SECT2-42"}, {"db_id": "6722169d655e9575b4970f24c17404bf", "kind": "equivalent", "version": "12.10", "label": "12.10", "title": "当分区表的行类型在其他地方被用作复合类型时，禁止修改其列的数据类型", "evidence": {"same_day": true, "patch_ids": ["2ce4ffd927395a9e57aa907362ebc53a"], "statement_hash": "1c653a8768b9c658f71d14703c8351d2367bd31bcfd0f2036f035958fcd6fb5b"}, "url": "/docs/compare/?release=12.10#12.10-0251ecb7f9a85e7e", "source_url": "/docs/release/12.10/#id-1.11.6.18.5"}, {"db_id": "576f15cdc43846a9dd9c25bb4b9f8a1e", "kind": "equivalent", "version": "11.15", "label": "11.15", "title": "当分区表的行类型在其他地方被用作复合类型时，禁止修改其列的数据类型", "evidence": {"same_day": true, "patch_ids": ["2ce4ffd927395a9e57aa907362ebc53a"], "statement_hash": "1c653a8768b9c658f71d14703c8351d2367bd31bcfd0f2036f035958fcd6fb5b"}, "url": "/docs/compare/?release=11.15#11.15-b27284b3568a7888", "source_url": "/docs/release/11.15/#id-1.11.6.12.5"}, {"db_id": "9e3dd1393b83dffba6deb1f286edc44f", "kind": "equivalent", "version": "10.20", "label": "10.20", "title": "当分区表的行类型在其他地方被用作复合类型时，禁止修改其列的数据类型", "evidence": {"same_day": true, "patch_ids": ["2ce4ffd927395a9e57aa907362ebc53a"], "statement_hash": "1c653a8768b9c658f71d14703c8351d2367bd31bcfd0f2036f035958fcd6fb5b"}, "url": "/docs/compare/?release=10.20#10.20-b27284b3568a7888", "source_url": "/docs/release/10.20/#id-1.11.6.8.6"}]}, {"id": "13.6-69a2c1e764625c56", "cves": [], "html": "<p>禁止对作为副本标识索引一部分的列执行 <code>ALTER TABLE ... DROP NOT NULL</code>（Haiying Tang，Hou Zhijie）<a href=\"https://postgr.es/c/37827de43\">§</a></p>\n<p>对于主键索引已经存在相同的禁止规则。</p>", "text": "禁止对作为副本标识索引一部分的列执行 ALTER TABLE ... DROP NOT NULL（Haiying Tang，Hou Zhijie）§ 对于主键索引已经存在相同的禁止规则。", "title": "禁止对作为副本标识索引一部分的列执行 ALTER TABLE ... DROP NOT NULL", "commits": ["37827de43"], "section": "变更", "category": "improvement", "source_url": "/docs/release/13.6/#id-1.11.6.23.5", "source_hash": "895805c9be03813e80686fe05b5985b9244346d35f5898627a27bd992be7677b", "section_path": ["变更"], "commit_groups": [["216156fec", "37827de43", "817c469c2", "dffe80e55", "e415916e2", "f0d43947a"]], "identity_text": "Disallow ALTER TABLE ... DROP NOT NULL for a column that is part of a replica identity index (Haiying Tang, Hou Zhijie) The same prohibition already existed for primary key indexes.", "commit_aliases": ["216156fec", "37827de43", "817c469c2", "dffe80e55", "e415916e2", "f0d43947a"], "source_commits": ["37827de43"], "source_entry_id": "13.6/changes/016", "db_id": "3c0b93cbf380e8e5e5ca43337ff71201", "patch_ids": ["8ce3d69167095be8298b4c35c85b0c7c"], "statement_hash": "4e81aeacf9acb2dfc15765c6e413de39aedacdcb33be099b233958cbcd628e7f", "relations": [{"rule": 2, "type": "equivalent", "target": "5c006d06207b434b03dd553059716e71", "evidence": {"same_day": true, "patch_ids": ["8ce3d69167095be8298b4c35c85b0c7c"], "statement_hash": "4e81aeacf9acb2dfc15765c6e413de39aedacdcb33be099b233958cbcd628e7f"}}, {"rule": 2, "type": "equivalent", "target": "9aaada45efe13dbbd5639cea722957a4", "evidence": {"same_day": true, "patch_ids": ["8ce3d69167095be8298b4c35c85b0c7c"], "statement_hash": "4e81aeacf9acb2dfc15765c6e413de39aedacdcb33be099b233958cbcd628e7f"}}, {"rule": 2, "type": "equivalent", "target": "9eaa9fbd5ed4610197b51967455521dd", "evidence": {"same_day": true, "patch_ids": ["8ce3d69167095be8298b4c35c85b0c7c"], "statement_hash": "4e81aeacf9acb2dfc15765c6e413de39aedacdcb33be099b233958cbcd628e7f"}}, {"rule": 2, "type": "equivalent", "target": "b0bdbec7a3ec087b2cc76b8bfdf7c114", "evidence": {"same_day": true, "patch_ids": ["8ce3d69167095be8298b4c35c85b0c7c"], "statement_hash": "4e81aeacf9acb2dfc15765c6e413de39aedacdcb33be099b233958cbcd628e7f"}}], "version": "13.6", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "9aaada45efe13dbbd5639cea722957a4", "kind": "equivalent", "version": "14.2", "label": "14.2", "title": "禁止对作为副本标识索引一部分的列执行 ALTER TABLE ... DROP NOT NULL", "evidence": {"same_day": true, "patch_ids": ["8ce3d69167095be8298b4c35c85b0c7c"], "statement_hash": "4e81aeacf9acb2dfc15765c6e413de39aedacdcb33be099b233958cbcd628e7f"}, "url": "/docs/compare/?release=14.2#14.2-28ca15028588ec39", "source_url": "/docs/release/14.2/#ZH-AUTO-RELEASE-14-SECT2-42"}, {"db_id": "b0bdbec7a3ec087b2cc76b8bfdf7c114", "kind": "equivalent", "version": "12.10", "label": "12.10", "title": "禁止对作为副本标识索引一部分的列执行 ALTER TABLE ... DROP NOT NULL", "evidence": {"same_day": true, "patch_ids": ["8ce3d69167095be8298b4c35c85b0c7c"], "statement_hash": "4e81aeacf9acb2dfc15765c6e413de39aedacdcb33be099b233958cbcd628e7f"}, "url": "/docs/compare/?release=12.10#12.10-a9777f8d8c1fffe6", "source_url": "/docs/release/12.10/#id-1.11.6.18.5"}, {"db_id": "5c006d06207b434b03dd553059716e71", "kind": "equivalent", "version": "11.15", "label": "11.15", "title": "禁止对作为副本标识索引一部分的列执行 ALTER TABLE ... DROP NOT NULL", "evidence": {"same_day": true, "patch_ids": ["8ce3d69167095be8298b4c35c85b0c7c"], "statement_hash": "4e81aeacf9acb2dfc15765c6e413de39aedacdcb33be099b233958cbcd628e7f"}, "url": "/docs/compare/?release=11.15#11.15-f229bfe85605d838", "source_url": "/docs/release/11.15/#id-1.11.6.12.5"}, {"db_id": "9eaa9fbd5ed4610197b51967455521dd", "kind": "equivalent", "version": "10.20", "label": "10.20", "title": "禁止对作为副本标识索引一部分的列执行 ALTER TABLE ... DROP NOT NULL", "evidence": {"same_day": true, "patch_ids": ["8ce3d69167095be8298b4c35c85b0c7c"], "statement_hash": "4e81aeacf9acb2dfc15765c6e413de39aedacdcb33be099b233958cbcd628e7f"}, "url": "/docs/compare/?release=10.20#10.20-f229bfe85605d838", "source_url": "/docs/release/10.20/#id-1.11.6.8.6"}]}, {"id": "13.6-8f2f9c0ca5d41c0d", "cves": [], "html": "<p>在 <code>ALTER TABLE ADD PRIMARY KEY USING INDEX</code> 期间正确更新缓存的表状态（Hou Zhijie）<a href=\"https://postgr.es/c/31b7b4d26\">§</a></p>\n<p>并发会话未能更新其关于表是否具有主键的判断，可能导致不正确的逻辑复制行为。</p>", "text": "在 ALTER TABLE ADD PRIMARY KEY USING INDEX 期间正确更新缓存的表状态（Hou Zhijie）§ 并发会话未能更新其关于表是否具有主键的判断，可能导致不正确的逻辑复制行为。", "title": "在 ALTER TABLE ADD PRIMARY KEY USING INDEX 期间正确更新缓存的表状态", "commits": ["31b7b4d26"], "section": "变更", "category": "improvement", "source_url": "/docs/release/13.6/#id-1.11.6.23.5", "source_hash": "e83b729f2d8a026368eb22e0d9e00147a2bfe2b0ad2cb080127d3eb59b255b22", "section_path": ["变更"], "commit_groups": [["26c841ed1", "31b7b4d26", "3839e29c5", "d8fbbb925", "e2d53c876"]], "identity_text": "Correctly update cached table state during ALTER TABLE ADD PRIMARY KEY USING INDEX (Hou Zhijie) Concurrent sessions failed to update their opinion of whether the table has a primary key, possibly causing incorrect logical replication behavior.", "commit_aliases": ["26c841ed1", "31b7b4d26", "3839e29c5", "d8fbbb925", "e2d53c876"], "source_commits": ["31b7b4d26"], "source_entry_id": "13.6/changes/017", "db_id": "33d2c2207378dd4911a436a62f79868f", "patch_ids": ["b069ef5a8af363aeb7334bca4cb37512"], "statement_hash": "338e1b83c9b06393a63836bc0c247e2f87ad740b9490f47d26ea9fae78bd078b", "relations": [{"rule": 2, "type": "equivalent", "target": "b10597301e7b6b307a774495aec8bfa1", "evidence": {"same_day": true, "patch_ids": ["b069ef5a8af363aeb7334bca4cb37512"], "statement_hash": "338e1b83c9b06393a63836bc0c247e2f87ad740b9490f47d26ea9fae78bd078b"}}, {"rule": 2, "type": "equivalent", "target": "bbc70a772e850789a40a9e845536dd33", "evidence": {"same_day": true, "patch_ids": ["b069ef5a8af363aeb7334bca4cb37512"], "statement_hash": "338e1b83c9b06393a63836bc0c247e2f87ad740b9490f47d26ea9fae78bd078b"}}, {"rule": 2, "type": "equivalent", "target": "ee83a3c90bd5821a07aec9e927c4abe7", "evidence": {"same_day": true, "patch_ids": ["b069ef5a8af363aeb7334bca4cb37512"], "statement_hash": "338e1b83c9b06393a63836bc0c247e2f87ad740b9490f47d26ea9fae78bd078b"}}], "version": "13.6", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "bbc70a772e850789a40a9e845536dd33", "kind": "equivalent", "version": "14.2", "label": "14.2", "title": "在 ALTER TABLE ADD PRIMARY KEY USING INDEX 期间正确更新缓存的表状态", "evidence": {"same_day": true, "patch_ids": ["b069ef5a8af363aeb7334bca4cb37512"], "statement_hash": "338e1b83c9b06393a63836bc0c247e2f87ad740b9490f47d26ea9fae78bd078b"}, "url": "/docs/compare/?release=14.2#14.2-b1ab44c4c9d5582f", "source_url": "/docs/release/14.2/#ZH-AUTO-RELEASE-14-SECT2-42"}, {"db_id": "b10597301e7b6b307a774495aec8bfa1", "kind": "equivalent", "version": "12.10", "label": "12.10", "title": "在 ALTER TABLE ADD PRIMARY KEY USING INDEX 期间正确更新缓存的表状态", "evidence": {"same_day": true, "patch_ids": ["b069ef5a8af363aeb7334bca4cb37512"], "statement_hash": "338e1b83c9b06393a63836bc0c247e2f87ad740b9490f47d26ea9fae78bd078b"}, "url": "/docs/compare/?release=12.10#12.10-4e74f878cc3bdc30", "source_url": "/docs/release/12.10/#id-1.11.6.18.5"}, {"db_id": "ee83a3c90bd5821a07aec9e927c4abe7", "kind": "equivalent", "version": "11.15", "label": "11.15", "title": "在 ALTER TABLE ADD PRIMARY KEY USING INDEX 期间正确更新缓存的表状态", "evidence": {"same_day": true, "patch_ids": ["b069ef5a8af363aeb7334bca4cb37512"], "statement_hash": "338e1b83c9b06393a63836bc0c247e2f87ad740b9490f47d26ea9fae78bd078b"}, "url": "/docs/compare/?release=11.15#11.15-985063658f501afd", "source_url": "/docs/release/11.15/#id-1.11.6.12.5"}]}, {"id": "13.6-d6dfcaebb507fcdb", "cves": [], "html": "<p>在切换 <code>REPLICA IDENTITY</code> 索引时正确更新缓存的表状态（Tang Haiying，Hou Zhijie）<a href=\"https://postgr.es/c/63c3eeddc\">§</a></p>\n<p>并发会话未能更新其关于哪个索引是副本标识索引的判断，可能导致不正确的逻辑复制行为。</p>", "text": "在切换 REPLICA IDENTITY 索引时正确更新缓存的表状态（Tang Haiying，Hou Zhijie）§ 并发会话未能更新其关于哪个索引是副本标识索引的判断，可能导致不正确的逻辑复制行为。", "title": "在切换 REPLICA IDENTITY 索引时正确更新缓存的表状态", "commits": ["63c3eeddc"], "section": "变更", "category": "improvement", "source_url": "/docs/release/13.6/#id-1.11.6.23.5", "source_hash": "c15a68c7c5cd3ff81cddcc44d9f28e910212d86f344a18a148ca3a831e8a8b08", "section_path": ["变更"], "commit_groups": [["232fd72a5", "2c0443c59", "354a1f8d2", "40fb634b1", "63c3eeddc", "9816e2d31"]], "identity_text": "Correctly update cached table state when switching REPLICA IDENTITY index (Tang Haiying, Hou Zhijie) Concurrent sessions failed to update their opinion of which index is the replica identity one, possibly causing incorrect logical replication behavior.", "commit_aliases": ["232fd72a5", "2c0443c59", "354a1f8d2", "40fb634b1", "63c3eeddc", "9816e2d31"], "source_commits": ["63c3eeddc"], "source_entry_id": "13.6/changes/018", "db_id": "1378be9dfccb87e7b66e69689632e51a", "patch_ids": ["66a4d84663fcea7f4a9b64afb656ead7"], "statement_hash": "5d8be96469fe1f59e118d33405de8d34495cdb1fce9f191f32539ec074837ea2", "relations": [{"rule": 2, "type": "equivalent", "target": "5ca4aa0bffa31b14b99d6599b93b687f", "evidence": {"same_day": true, "patch_ids": ["66a4d84663fcea7f4a9b64afb656ead7"], "statement_hash": "5d8be96469fe1f59e118d33405de8d34495cdb1fce9f191f32539ec074837ea2"}}, {"rule": 2, "type": "equivalent", "target": "89dc1b256f0afc6b089d9df3d3e49da9", "evidence": {"same_day": true, "patch_ids": ["66a4d84663fcea7f4a9b64afb656ead7"], "statement_hash": "5d8be96469fe1f59e118d33405de8d34495cdb1fce9f191f32539ec074837ea2"}}, {"rule": 2, "type": "equivalent", "target": "89e90ea19d0ee1afb4af7e14fd35cd0e", "evidence": {"same_day": true, "patch_ids": ["66a4d84663fcea7f4a9b64afb656ead7"], "statement_hash": "5d8be96469fe1f59e118d33405de8d34495cdb1fce9f191f32539ec074837ea2"}}, {"rule": 2, "type": "equivalent", "target": "c26f7b0856872c055b742650418ff302", "evidence": {"same_day": true, "patch_ids": ["66a4d84663fcea7f4a9b64afb656ead7"], "statement_hash": "5d8be96469fe1f59e118d33405de8d34495cdb1fce9f191f32539ec074837ea2"}}], "version": "13.6", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "89dc1b256f0afc6b089d9df3d3e49da9", "kind": "equivalent", "version": "14.2", "label": "14.2", "title": "在切换 REPLICA IDENTITY 索引时正确更新缓存的表状态", "evidence": {"same_day": true, "patch_ids": ["66a4d84663fcea7f4a9b64afb656ead7"], "statement_hash": "5d8be96469fe1f59e118d33405de8d34495cdb1fce9f191f32539ec074837ea2"}, "url": "/docs/compare/?release=14.2#14.2-9fa55932b4079ce8", "source_url": "/docs/release/14.2/#ZH-AUTO-RELEASE-14-SECT2-42"}, {"db_id": "c26f7b0856872c055b742650418ff302", "kind": "equivalent", "version": "12.10", "label": "12.10", "title": "在切换 REPLICA IDENTITY 索引时正确更新缓存的表状态", "evidence": {"same_day": true, "patch_ids": ["66a4d84663fcea7f4a9b64afb656ead7"], "statement_hash": "5d8be96469fe1f59e118d33405de8d34495cdb1fce9f191f32539ec074837ea2"}, "url": "/docs/compare/?release=12.10#12.10-a7d2fe5ed2403fce", "source_url": "/docs/release/12.10/#id-1.11.6.18.5"}, {"db_id": "89e90ea19d0ee1afb4af7e14fd35cd0e", "kind": "equivalent", "version": "11.15", "label": "11.15", "title": "在切换 REPLICA IDENTITY 索引时正确更新缓存的表状态", "evidence": {"same_day": true, "patch_ids": ["66a4d84663fcea7f4a9b64afb656ead7"], "statement_hash": "5d8be96469fe1f59e118d33405de8d34495cdb1fce9f191f32539ec074837ea2"}, "url": "/docs/compare/?release=11.15#11.15-3448589edd418578", "source_url": "/docs/release/11.15/#id-1.11.6.12.5"}, {"db_id": "5ca4aa0bffa31b14b99d6599b93b687f", "kind": "equivalent", "version": "10.20", "label": "10.20", "title": "在切换 REPLICA IDENTITY 索引时正确更新缓存的表状态", "evidence": {"same_day": true, "patch_ids": ["66a4d84663fcea7f4a9b64afb656ead7"], "statement_hash": "5d8be96469fe1f59e118d33405de8d34495cdb1fce9f191f32539ec074837ea2"}, "url": "/docs/compare/?release=10.20#10.20-3448589edd418578", "source_url": "/docs/release/10.20/#id-1.11.6.8.6"}]}, {"id": "13.6-981090259f958991", "cves": [], "html": "<p>允许在计算最旧 xmin 时忽略并行清理和并发索引构建（Masahiko Sawada）<a href=\"https://postgr.es/c/33b6dd83e\">§</a></p>\n<p>这些操作的非并行化实例已经被忽略了，但该逻辑对并行化的情况不起作用。推迟 xmin 范围会产生不良影响，例如延迟清理操作。</p>", "text": "允许在计算最旧 xmin 时忽略并行清理和并发索引构建（Masahiko Sawada）§ 这些操作的非并行化实例已经被忽略了，但该逻辑对并行化的情况不起作用。推迟 xmin 范围会产生不良影响，例如延迟清理操作。", "title": "允许在计算最旧 xmin 时忽略并行清理和并发索引构建", "commits": ["33b6dd83e"], "section": "变更", "category": "improvement", "source_url": "/docs/release/13.6/#id-1.11.6.23.5", "source_hash": "f72340f2941841a67422b3de5b2360d838d66cc788741c0a1a7f8c10f6a9fb29", "section_path": ["变更"], "commit_groups": [["0f0cfb494", "33b6dd83e", "ead49ebc0"]], "identity_text": "Allow parallel vacuuming and concurrent index building to be ignored while computing oldest xmin (Masahiko Sawada) Non-parallelized instances of these operations were already ignored, but the logic did not work for parallelized cases. Holding back the xmin horizon has undesirable effects such as delaying vacuum cleanup.", "commit_aliases": ["0f0cfb494", "33b6dd83e", "ead49ebc0"], "source_commits": ["33b6dd83e"], "source_entry_id": "13.6/changes/019", "db_id": "cf80364adfbefce8005c16b30e3e8f05", "patch_ids": ["7d6c3a1dde333ea48f95d2f5916dd490"], "statement_hash": "92ee98bf387938a1d829c56c8c187d61837812d938be5b62c94f0905968cfe99", "relations": [{"rule": 2, "type": "equivalent", "target": "bf53f775e66f84a5217eb425e780022d", "evidence": {"same_day": true, "patch_ids": ["7d6c3a1dde333ea48f95d2f5916dd490"], "statement_hash": "92ee98bf387938a1d829c56c8c187d61837812d938be5b62c94f0905968cfe99"}}], "version": "13.6", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "bf53f775e66f84a5217eb425e780022d", "kind": "equivalent", "version": "14.2", "label": "14.2", "title": "允许在计算最旧 xmin 时忽略并行清理和并发索引构建", "evidence": {"same_day": true, "patch_ids": ["7d6c3a1dde333ea48f95d2f5916dd490"], "statement_hash": "92ee98bf387938a1d829c56c8c187d61837812d938be5b62c94f0905968cfe99"}, "url": "/docs/compare/?release=14.2#14.2-a27219f4a40721b9", "source_url": "/docs/release/14.2/#ZH-AUTO-RELEASE-14-SECT2-42"}]}, {"id": "13.6-d8e25c1e6729d2cb", "cves": [], "html": "<p>避免在重新分配大量对象所有权的 <code>REASSIGN OWNED BY</code> 操作期间泄漏内存（Justin Pryzby）<a href=\"https://postgr.es/c/7413caabe\">§</a></p>", "text": "避免在重新分配大量对象所有权的 REASSIGN OWNED BY 操作期间泄漏内存（Justin Pryzby）§", "title": "避免在重新分配大量对象所有权的 REASSIGN OWNED BY 操作期间泄漏内存", "commits": ["7413caabe"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/13.6/#id-1.11.6.23.5", "source_hash": "70420a1d5cbfc95ab96fd7a784dbe1830d97093836466a84eb13edf9671491cd", "section_path": ["变更"], "commit_groups": [["5cf08b4db", "7413caabe", "82d354411", "8f4b0200e", "babe545ca", "fec187dc3"]], "identity_text": "Avoid leaking memory during REASSIGN OWNED BY operations that reassign ownership of many objects (Justin Pryzby)", "commit_aliases": ["5cf08b4db", "7413caabe", "82d354411", "8f4b0200e", "babe545ca", "fec187dc3"], "source_commits": ["7413caabe"], "source_entry_id": "13.6/changes/020", "db_id": "ebb581903026a2135d7e0b955f76b9cb", "patch_ids": ["37389d29cbd3332b5562ed64a2d78fad"], "statement_hash": "cf5649ab73e8296f37f54dcc6c9210fd47af428027f5831aa1dbd646abaa2c7f", "relations": [{"rule": 2, "type": "equivalent", "target": "04c3a7cb22b7842a8e07d9fb7a917abf", "evidence": {"same_day": true, "patch_ids": ["37389d29cbd3332b5562ed64a2d78fad"], "statement_hash": "cf5649ab73e8296f37f54dcc6c9210fd47af428027f5831aa1dbd646abaa2c7f"}}, {"rule": 2, "type": "equivalent", "target": "35401e367b3f1e8d809c1c90d1850958", "evidence": {"same_day": true, "patch_ids": ["37389d29cbd3332b5562ed64a2d78fad"], "statement_hash": "cf5649ab73e8296f37f54dcc6c9210fd47af428027f5831aa1dbd646abaa2c7f"}}, {"rule": 2, "type": "equivalent", "target": "7f3d22b6629a39b9172eca6526953aef", "evidence": {"same_day": true, "patch_ids": ["37389d29cbd3332b5562ed64a2d78fad"], "statement_hash": "cf5649ab73e8296f37f54dcc6c9210fd47af428027f5831aa1dbd646abaa2c7f"}}, {"rule": 2, "type": "equivalent", "target": "a71f47eb94e35b9d5bd1b645de958939", "evidence": {"same_day": true, "patch_ids": ["37389d29cbd3332b5562ed64a2d78fad"], "statement_hash": "cf5649ab73e8296f37f54dcc6c9210fd47af428027f5831aa1dbd646abaa2c7f"}}], "version": "13.6", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "7f3d22b6629a39b9172eca6526953aef", "kind": "equivalent", "version": "14.2", "label": "14.2", "title": "避免在重新分配大量对象所有权的 REASSIGN OWNED BY 操作期间泄漏内存", "evidence": {"same_day": true, "patch_ids": ["37389d29cbd3332b5562ed64a2d78fad"], "statement_hash": "cf5649ab73e8296f37f54dcc6c9210fd47af428027f5831aa1dbd646abaa2c7f"}, "url": "/docs/compare/?release=14.2#14.2-098d2ff1710ec9e2", "source_url": "/docs/release/14.2/#ZH-AUTO-RELEASE-14-SECT2-42"}, {"db_id": "35401e367b3f1e8d809c1c90d1850958", "kind": "equivalent", "version": "12.10", "label": "12.10", "title": "避免在重新分配大量对象所有权的 REASSIGN OWNED BY 操作期间泄漏内存", "evidence": {"same_day": true, "patch_ids": ["37389d29cbd3332b5562ed64a2d78fad"], "statement_hash": "cf5649ab73e8296f37f54dcc6c9210fd47af428027f5831aa1dbd646abaa2c7f"}, "url": "/docs/compare/?release=12.10#12.10-307c8b4270f1f3c5", "source_url": "/docs/release/12.10/#id-1.11.6.18.5"}, {"db_id": "04c3a7cb22b7842a8e07d9fb7a917abf", "kind": "equivalent", "version": "11.15", "label": "11.15", "title": "避免在重新分配大量对象所有权的 REASSIGN OWNED BY 操作期间泄漏内存", "evidence": {"same_day": true, "patch_ids": ["37389d29cbd3332b5562ed64a2d78fad"], "statement_hash": "cf5649ab73e8296f37f54dcc6c9210fd47af428027f5831aa1dbd646abaa2c7f"}, "url": "/docs/compare/?release=11.15#11.15-b19db14a059ca107", "source_url": "/docs/release/11.15/#id-1.11.6.12.5"}, {"db_id": "a71f47eb94e35b9d5bd1b645de958939", "kind": "equivalent", "version": "10.20", "label": "10.20", "title": "避免在重新分配大量对象所有权的 REASSIGN OWNED BY 操作期间泄漏内存", "evidence": {"same_day": true, "patch_ids": ["37389d29cbd3332b5562ed64a2d78fad"], "statement_hash": "cf5649ab73e8296f37f54dcc6c9210fd47af428027f5831aa1dbd646abaa2c7f"}, "url": "/docs/compare/?release=10.20#10.20-b19db14a059ca107", "source_url": "/docs/release/10.20/#id-1.11.6.8.6"}]}, {"id": "13.6-0e29ddd86a4272b8", "cves": [], "html": "<p>通过避免不必要的缓存访问，改进 walsender 发送逻辑变更的性能（Hou Zhijie）<a href=\"https://postgr.es/c/3f8062bcf\">§</a></p>", "text": "通过避免不必要的缓存访问，改进 walsender 发送逻辑变更的性能（Hou Zhijie）§", "title": "通过避免不必要的缓存访问，改进 walsender 发送逻辑变更的性能", "commits": ["3f8062bcf"], "section": "变更", "category": "performance", "source_url": "/docs/release/13.6/#id-1.11.6.23.5", "source_hash": "2936d65da5bc382c098409b78ca37ea04cc4b0dcdc7490bceb7a5480b34e046e", "section_path": ["变更"], "commit_groups": [["3f8062bcf", "5ddfebded", "6ce16088b"]], "identity_text": "Improve performance of walsenders sending logical changes by avoiding unnecessary cache accesses (Hou Zhijie)", "commit_aliases": ["3f8062bcf", "5ddfebded", "6ce16088b"], "source_commits": ["3f8062bcf"], "source_entry_id": "13.6/changes/021", "db_id": "4528c188b40734429a65e9d662abefc3", "patch_ids": ["9d30157eb5233b8c1cf4e0782f26e442"], "statement_hash": "09ad0bae47f178c25480c676d4ff03cd346887f3d62d5c9e58577e980bcdf263", "relations": [{"rule": 2, "type": "equivalent", "target": "5fb3241febc54b7fbdea35be110fe0cf", "evidence": {"same_day": true, "patch_ids": ["9d30157eb5233b8c1cf4e0782f26e442"], "statement_hash": "09ad0bae47f178c25480c676d4ff03cd346887f3d62d5c9e58577e980bcdf263"}}], "version": "13.6", "category_label": "性能改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "5fb3241febc54b7fbdea35be110fe0cf", "kind": "equivalent", "version": "14.2", "label": "14.2", "title": "通过避免不必要的缓存访问，改进 walsender 发送逻辑变更的性能", "evidence": {"same_day": true, "patch_ids": ["9d30157eb5233b8c1cf4e0782f26e442"], "statement_hash": "09ad0bae47f178c25480c676d4ff03cd346887f3d62d5c9e58577e980bcdf263"}, "url": "/docs/compare/?release=14.2#14.2-bc5ed175d640f687", "source_url": "/docs/release/14.2/#ZH-AUTO-RELEASE-14-SECT2-42"}]}, {"id": "13.6-145e50957d691dec", "cves": [], "html": "<p>修复 <code>pg_hba_file_rules</code> 视图中 <code>cert</code> 认证方法选项的显示（Magnus Hagander）<a href=\"https://postgr.es/c/81596645c\">§</a></p>\n<p><code>cert</code> 认证方法隐含 <code>clientcert=verify-full</code>，但 <code>pg_hba_file_rules</code> 视图错误地报告了 <code>clientcert=verify-ca</code>。</p>", "text": "修复 pg_hba_file_rules 视图中 cert 认证方法选项的显示（Magnus Hagander）§ cert 认证方法隐含 clientcert=verify-full，但 pg_hba_file_rules 视图错误地报告了 clientcert=verify-ca。", "title": "修复 pg_hba_file_rules 视图中 cert 认证方法选项的显示", "commits": ["81596645c"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/13.6/#id-1.11.6.23.5", "source_hash": "35ff6c8e311bf77c74855791bd4719eee6814e7718112922efb3ad5729f5d8dc", "section_path": ["变更"], "commit_groups": [["2dbb7b9b2", "4afae689e", "81596645c", "aa58f5c53"]], "identity_text": "Fix display of cert authentication method's options in pg_hba_file_rules view (Magnus Hagander) The cert authentication method implies clientcert=verify-full, but the pg_hba_file_rules view incorrectly reported clientcert=verify-ca.", "commit_aliases": ["2dbb7b9b2", "4afae689e", "81596645c", "aa58f5c53"], "source_commits": ["81596645c"], "source_entry_id": "13.6/changes/022", "db_id": "0494caa8b67faac19416909df0e298bf", "patch_ids": ["277e49b1146ad9de62d8e20d8404efcc"], "statement_hash": "f01402e8387a41c92bfbdab95e1e6385eeec12d9e5a7a1734d02cef3311e6b72", "relations": [{"rule": 2, "type": "equivalent", "target": "7e739464a36d8d715cf609e7ea2647b9", "evidence": {"same_day": true, "patch_ids": ["277e49b1146ad9de62d8e20d8404efcc"], "statement_hash": "f01402e8387a41c92bfbdab95e1e6385eeec12d9e5a7a1734d02cef3311e6b72"}}, {"rule": 2, "type": "equivalent", "target": "de2a37cfaf7693a2ca35954a405e0e43", "evidence": {"same_day": true, "patch_ids": ["277e49b1146ad9de62d8e20d8404efcc"], "statement_hash": "f01402e8387a41c92bfbdab95e1e6385eeec12d9e5a7a1734d02cef3311e6b72"}}], "version": "13.6", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "de2a37cfaf7693a2ca35954a405e0e43", "kind": "equivalent", "version": "14.2", "label": "14.2", "title": "修复 pg_hba_file_rules 视图中 cert 认证方法选项的显示", "evidence": {"same_day": true, "patch_ids": ["277e49b1146ad9de62d8e20d8404efcc"], "statement_hash": "f01402e8387a41c92bfbdab95e1e6385eeec12d9e5a7a1734d02cef3311e6b72"}, "url": "/docs/compare/?release=14.2#14.2-4759cdf137658e48", "source_url": "/docs/release/14.2/#ZH-AUTO-RELEASE-14-SECT2-42"}, {"db_id": "7e739464a36d8d715cf609e7ea2647b9", "kind": "equivalent", "version": "12.10", "label": "12.10", "title": "修复 pg_hba_file_rules 视图中 cert 认证方法选项的显示", "evidence": {"same_day": true, "patch_ids": ["277e49b1146ad9de62d8e20d8404efcc"], "statement_hash": "f01402e8387a41c92bfbdab95e1e6385eeec12d9e5a7a1734d02cef3311e6b72"}, "url": "/docs/compare/?release=12.10#12.10-9cc0c57318742d27", "source_url": "/docs/release/12.10/#id-1.11.6.18.5"}]}, {"id": "13.6-45c4efa4c459cb98", "cves": [], "html": "<p>修复出现在 <code>INSERT ... VALUES</code> 规则中的整行变量的显示（Tom Lane）<a href=\"https://postgr.es/c/ca14c4184\">§</a></p>\n<p>整行变量会被打印为 <span>“<span>var.*</span>”</span>，但这允许在规则重新加载时将其展开为各个列，导致不同的语义。附加显式类型转换以防止这种情况，正如我们在其他地方所做的那样。</p>", "text": "修复出现在 INSERT ... VALUES 规则中的整行变量的显示（Tom Lane）§ 整行变量会被打印为 “var.*”，但这允许在规则重新加载时将其展开为各个列，导致不同的语义。附加显式类型转换以防止这种情况，正如我们在其他地方所做的那样。", "title": "修复出现在 INSERT ... VALUES 规则中的整行变量的显示", "commits": ["ca14c4184"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/13.6/#id-1.11.6.23.5", "source_hash": "fccfebd3d418f67d37c19023185fa7ddd52800da673a71d5792b68c778778745", "section_path": ["变更"], "commit_groups": [["3433a1fc7", "3a1bfe256", "43c217512", "45a3cefad", "4aee39ddb", "ca14c4184"]], "identity_text": "Fix display of whole-row variables appearing in INSERT ... VALUES rules (Tom Lane) A whole-row variable would be printed as var.*, but that allows it to be expanded to individual columns when the rule is reloaded, resulting in different semantics. Attach an explicit cast to prevent that, as we do elsewhere.", "commit_aliases": ["3433a1fc7", "3a1bfe256", "43c217512", "45a3cefad", "4aee39ddb", "ca14c4184"], "source_commits": ["ca14c4184"], "source_entry_id": "13.6/changes/023", "db_id": "92aa437edd4a51d207d7c4fffd579af6", "patch_ids": ["10016c48c392ca321ec7b0ec029262f0"], "statement_hash": "051f78aa8f1b46e7fd1cb6cabb206923a29fae04d79d5064034cd5ebb5a5e739", "relations": [{"rule": 2, "type": "equivalent", "target": "030ecea9b763ff7e1be818ec5f1af00a", "evidence": {"same_day": true, "patch_ids": ["10016c48c392ca321ec7b0ec029262f0"], "statement_hash": "051f78aa8f1b46e7fd1cb6cabb206923a29fae04d79d5064034cd5ebb5a5e739"}}, {"rule": 2, "type": "equivalent", "target": "06ea6dd217acc1044df7252b3c6403d8", "evidence": {"same_day": true, "patch_ids": ["10016c48c392ca321ec7b0ec029262f0"], "statement_hash": "051f78aa8f1b46e7fd1cb6cabb206923a29fae04d79d5064034cd5ebb5a5e739"}}, {"rule": 2, "type": "equivalent", "target": "8e41418d131a080ea708bdb94388136b", "evidence": {"same_day": true, "patch_ids": ["10016c48c392ca321ec7b0ec029262f0"], "statement_hash": "051f78aa8f1b46e7fd1cb6cabb206923a29fae04d79d5064034cd5ebb5a5e739"}}, {"rule": 2, "type": "equivalent", "target": "c630bddef5091737f500382c58d35124", "evidence": {"same_day": true, "patch_ids": ["10016c48c392ca321ec7b0ec029262f0"], "statement_hash": "051f78aa8f1b46e7fd1cb6cabb206923a29fae04d79d5064034cd5ebb5a5e739"}}], "version": "13.6", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "06ea6dd217acc1044df7252b3c6403d8", "kind": "equivalent", "version": "14.2", "label": "14.2", "title": "修复出现在 INSERT ... VALUES 规则中的整行变量的显示", "evidence": {"same_day": true, "patch_ids": ["10016c48c392ca321ec7b0ec029262f0"], "statement_hash": "051f78aa8f1b46e7fd1cb6cabb206923a29fae04d79d5064034cd5ebb5a5e739"}, "url": "/docs/compare/?release=14.2#14.2-02b98708eeb2cb49", "source_url": "/docs/release/14.2/#ZH-AUTO-RELEASE-14-SECT2-42"}, {"db_id": "030ecea9b763ff7e1be818ec5f1af00a", "kind": "equivalent", "version": "12.10", "label": "12.10", "title": "修复出现在 INSERT ... VALUES 规则中的整行变量的显示", "evidence": {"same_day": true, "patch_ids": ["10016c48c392ca321ec7b0ec029262f0"], "statement_hash": "051f78aa8f1b46e7fd1cb6cabb206923a29fae04d79d5064034cd5ebb5a5e739"}, "url": "/docs/compare/?release=12.10#12.10-4e8531d8724e4c1f", "source_url": "/docs/release/12.10/#id-1.11.6.18.5"}, {"db_id": "8e41418d131a080ea708bdb94388136b", "kind": "equivalent", "version": "11.15", "label": "11.15", "title": "修复出现在 INSERT ... VALUES 规则中的整行变量的显示", "evidence": {"same_day": true, "patch_ids": ["10016c48c392ca321ec7b0ec029262f0"], "statement_hash": "051f78aa8f1b46e7fd1cb6cabb206923a29fae04d79d5064034cd5ebb5a5e739"}, "url": "/docs/compare/?release=11.15#11.15-8e2d21a6b95633e6", "source_url": "/docs/release/11.15/#id-1.11.6.12.5"}, {"db_id": "c630bddef5091737f500382c58d35124", "kind": "equivalent", "version": "10.20", "label": "10.20", "title": "修复出现在 INSERT ... VALUES 规则中的整行变量的显示", "evidence": {"same_day": true, "patch_ids": ["10016c48c392ca321ec7b0ec029262f0"], "statement_hash": "051f78aa8f1b46e7fd1cb6cabb206923a29fae04d79d5064034cd5ebb5a5e739"}, "url": "/docs/compare/?release=10.20#10.20-8e2d21a6b95633e6", "source_url": "/docs/release/10.20/#id-1.11.6.8.6"}]}, {"id": "13.6-77126c54381e6a63", "cves": [], "html": "<p>修复对空字符串应用 Unicode 字符串规范化时的一字节缓冲区溢出（Michael Paquier）<a href=\"https://postgr.es/c/13c8adf90\">§</a></p>\n<p>由于对齐的考虑，这在实际中的影响是有限的；但在调试构建中，会引发警告。</p>", "text": "修复对空字符串应用 Unicode 字符串规范化时的一字节缓冲区溢出（Michael Paquier）§ 由于对齐的考虑，这在实际中的影响是有限的；但在调试构建中，会引发警告。", "title": "修复对空字符串应用 Unicode 字符串规范化时的一字节缓冲区溢出", "commits": ["13c8adf90"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/13.6/#id-1.11.6.23.5", "source_hash": "d5cd4c09a186995971f32a5019a55e687cc69f647d23b12132d91a25fa7774ac", "section_path": ["变更"], "commit_groups": [["098c13455", "13c8adf90", "b609db715"]], "identity_text": "Fix one-byte buffer overrun when applying Unicode string normalization to an empty string (Michael Paquier) The practical impact of this is limited thanks to alignment considerations; but in debug builds, a warning was raised.", "commit_aliases": ["098c13455", "13c8adf90", "b609db715"], "source_commits": ["13c8adf90"], "source_entry_id": "13.6/changes/024", "db_id": "b4bbc248627debb045e263c05e34b4fb", "patch_ids": ["f2655a0a41a65d6337258763938c25f7"], "statement_hash": "46585fc44a10727d2b01cab246424b2f67c24c4e35b8a865a8e2931f2d6e4f60", "relations": [{"rule": 2, "type": "equivalent", "target": "60fa7fbad5785710ef8c0faced143832", "evidence": {"same_day": true, "patch_ids": ["f2655a0a41a65d6337258763938c25f7"], "statement_hash": "46585fc44a10727d2b01cab246424b2f67c24c4e35b8a865a8e2931f2d6e4f60"}}], "version": "13.6", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "60fa7fbad5785710ef8c0faced143832", "kind": "equivalent", "version": "14.2", "label": "14.2", "title": "修复对空字符串应用 Unicode 字符串规范化时的一字节缓冲区溢出", "evidence": {"same_day": true, "patch_ids": ["f2655a0a41a65d6337258763938c25f7"], "statement_hash": "46585fc44a10727d2b01cab246424b2f67c24c4e35b8a865a8e2931f2d6e4f60"}, "url": "/docs/compare/?release=14.2#14.2-f8cb3da168dbddd6", "source_url": "/docs/release/14.2/#ZH-AUTO-RELEASE-14-SECT2-42"}]}, {"id": "13.6-3b40b4cf01d04af2", "cves": [], "html": "<p>修复或移除一些不正确的断言（Simon Riggs，Michael Paquier，Alexander Lakhin）<a href=\"https://postgr.es/c/29f9fb8fe\">§</a> <a href=\"https://postgr.es/c/33fdd9f85\">§</a> <a href=\"https://postgr.es/c/3f710fc2b\">§</a></p>\n<p>这些错误应该只影响调试构建，不影响生产环境。</p>", "text": "修复或移除一些不正确的断言（Simon Riggs，Michael Paquier，Alexander Lakhin）§ § § 这些错误应该只影响调试构建，不影响生产环境。", "title": "修复或移除一些不正确的断言", "commits": ["29f9fb8fe", "33fdd9f85", "3f710fc2b"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/13.6/#id-1.11.6.23.5", "source_hash": "1ab2d78e77fed2be1de2cb5e41f954c0791d96512469179bbb5cddc064920c74", "section_path": ["变更"], "commit_groups": [["026a93727", "28cd57416", "29f9fb8fe", "6b681cd05", "f185f35a8", "f66885bec"], ["2e577c944", "8a22a40b2"], ["33fdd9f85", "397b43948", "4a8282425", "67a8cb5cb", "b63851a45", "f9db153c2"], ["3f710fc2b", "4be3e005e", "65af1e842", "8abb6c27e", "ece8c7619"]], "identity_text": "Fix or remove some incorrect assertions (Simon Riggs, Michael Paquier, Alexander Lakhin) These errors should affect only debug builds, not production.", "commit_aliases": ["026a93727", "28cd57416", "29f9fb8fe", "2e577c944", "33fdd9f85", "397b43948", "3f710fc2b", "4a8282425", "4be3e005e", "65af1e842", "67a8cb5cb", "6b681cd05", "8a22a40b2", "8abb6c27e", "b63851a45", "ece8c7619", "f185f35a8", "f66885bec", "f9db153c2"], "source_commits": ["29f9fb8fe", "2e577c944", "33fdd9f85", "3f710fc2b"], "source_entry_id": "13.6/changes/025", "db_id": "f96e8261510301b7e6b4e596429c3f48", "patch_ids": ["e3a133f8f71a03785c4daec0b2078bba", "ea3bafa68b1c79d6d628ba9113e4c613", "f30cc8f3d5c4b1d61aeed19029a3e19a", "f898984782ea530315bc420e7ae60fa4"], "statement_hash": "269e94682c47bf30c4ced2e5004361ae311cc5a2c8392c1cd86643397769cfb3", "relations": [{"rule": 2, "type": "equivalent", "target": "3fc6cd941e93a9bfb1e5d292cd017484", "evidence": {"same_day": true, "patch_ids": ["e3a133f8f71a03785c4daec0b2078bba", "ea3bafa68b1c79d6d628ba9113e4c613", "f30cc8f3d5c4b1d61aeed19029a3e19a", "f898984782ea530315bc420e7ae60fa4"], "statement_hash": "269e94682c47bf30c4ced2e5004361ae311cc5a2c8392c1cd86643397769cfb3"}}, {"rule": 2, "type": "equivalent", "target": "6b0f11f753b770ec01c92dc5192e219e", "evidence": {"same_day": true, "patch_ids": ["e3a133f8f71a03785c4daec0b2078bba", "ea3bafa68b1c79d6d628ba9113e4c613", "f30cc8f3d5c4b1d61aeed19029a3e19a", "f898984782ea530315bc420e7ae60fa4"], "statement_hash": "269e94682c47bf30c4ced2e5004361ae311cc5a2c8392c1cd86643397769cfb3"}}, {"rule": 2, "type": "equivalent", "target": "8acbefd35a3150a6fd49ba21ea43a2c9", "evidence": {"same_day": true, "patch_ids": ["e3a133f8f71a03785c4daec0b2078bba", "ea3bafa68b1c79d6d628ba9113e4c613", "f30cc8f3d5c4b1d61aeed19029a3e19a", "f898984782ea530315bc420e7ae60fa4"], "statement_hash": "269e94682c47bf30c4ced2e5004361ae311cc5a2c8392c1cd86643397769cfb3"}}, {"rule": 2, "type": "equivalent", "target": "caa33f6dfae24228955cb4409f9591f8", "evidence": {"same_day": true, "patch_ids": ["e3a133f8f71a03785c4daec0b2078bba", "ea3bafa68b1c79d6d628ba9113e4c613", "f30cc8f3d5c4b1d61aeed19029a3e19a", "f898984782ea530315bc420e7ae60fa4"], "statement_hash": "269e94682c47bf30c4ced2e5004361ae311cc5a2c8392c1cd86643397769cfb3"}}], "version": "13.6", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "caa33f6dfae24228955cb4409f9591f8", "kind": "equivalent", "version": "14.2", "label": "14.2", "title": "修复或移除一些不正确的断言", "evidence": {"same_day": true, "patch_ids": ["e3a133f8f71a03785c4daec0b2078bba", "ea3bafa68b1c79d6d628ba9113e4c613", "f30cc8f3d5c4b1d61aeed19029a3e19a", "f898984782ea530315bc420e7ae60fa4"], "statement_hash": "269e94682c47bf30c4ced2e5004361ae311cc5a2c8392c1cd86643397769cfb3"}, "url": "/docs/compare/?release=14.2#14.2-32f44551b75f3534", "source_url": "/docs/release/14.2/#ZH-AUTO-RELEASE-14-SECT2-42"}, {"db_id": "3fc6cd941e93a9bfb1e5d292cd017484", "kind": "equivalent", "version": "12.10", "label": "12.10", "title": "修复或移除一些不正确的断言", "evidence": {"same_day": true, "patch_ids": ["e3a133f8f71a03785c4daec0b2078bba", "ea3bafa68b1c79d6d628ba9113e4c613", "f30cc8f3d5c4b1d61aeed19029a3e19a", "f898984782ea530315bc420e7ae60fa4"], "statement_hash": "269e94682c47bf30c4ced2e5004361ae311cc5a2c8392c1cd86643397769cfb3"}, "url": "/docs/compare/?release=12.10#12.10-c95981fc934469d5", "source_url": "/docs/release/12.10/#id-1.11.6.18.5"}, {"db_id": "6b0f11f753b770ec01c92dc5192e219e", "kind": "equivalent", "version": "11.15", "label": "11.15", "title": "修复或移除一些不正确的断言", "evidence": {"same_day": true, "patch_ids": ["e3a133f8f71a03785c4daec0b2078bba", "ea3bafa68b1c79d6d628ba9113e4c613", "f30cc8f3d5c4b1d61aeed19029a3e19a", "f898984782ea530315bc420e7ae60fa4"], "statement_hash": "269e94682c47bf30c4ced2e5004361ae311cc5a2c8392c1cd86643397769cfb3"}, "url": "/docs/compare/?release=11.15#11.15-fa57d971c2953099", "source_url": "/docs/release/11.15/#id-1.11.6.12.5"}, {"db_id": "8acbefd35a3150a6fd49ba21ea43a2c9", "kind": "equivalent", "version": "10.20", "label": "10.20", "title": "修复或移除一些不正确的断言", "evidence": {"same_day": true, "patch_ids": ["e3a133f8f71a03785c4daec0b2078bba", "ea3bafa68b1c79d6d628ba9113e4c613", "f30cc8f3d5c4b1d61aeed19029a3e19a", "f898984782ea530315bc420e7ae60fa4"], "statement_hash": "269e94682c47bf30c4ced2e5004361ae311cc5a2c8392c1cd86643397769cfb3"}, "url": "/docs/compare/?release=10.20#10.20-fa57d971c2953099", "source_url": "/docs/release/10.20/#id-1.11.6.8.6"}]}, {"id": "13.6-fc8b603deec8e7b2", "cves": [], "html": "<p>修复在多线程使用 <span>libpq</span> 或 <span>ecpglib</span> 早期报告的错误消息本地化失败的竞态条件（Tom Lane）<a href=\"https://postgr.es/c/64ebb43df\">§</a></p>", "text": "修复在多线程使用 libpq 或 ecpglib 早期报告的错误消息本地化失败的竞态条件（Tom Lane）§", "title": "修复在多线程使用 libpq 或 ecpglib 早期报告的错误消息本地化失败的竞态条件", "commits": ["64ebb43df"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/13.6/#id-1.11.6.23.5", "source_hash": "9aa3afdbe43fb0687b1bdf2277f460f3f4d0ca7aa9f62a5e2024a38e9e418717", "section_path": ["变更"], "commit_groups": [["0c7c94f90", "1f655fdc3", "37f5dc8b8", "5521d8139", "64ebb43df", "f4ebf0dbe"]], "identity_text": "Fix race condition that could lead to failure to localize error messages that are reported early in multi-threaded use of libpq or ecpglib (Tom Lane)", "commit_aliases": ["0c7c94f90", "1f655fdc3", "37f5dc8b8", "5521d8139", "64ebb43df", "f4ebf0dbe"], "source_commits": ["64ebb43df"], "source_entry_id": "13.6/changes/026", "db_id": "61b0d747dede1df3344b2e845449d7bf", "patch_ids": ["291c96a6e5cdb0e775f37d82c03ff284"], "statement_hash": "38c4ab2848c04c017f282aa34141cd5f591b0d60a661434e7a97f5c535293ceb", "relations": [{"rule": 2, "type": "equivalent", "target": "179bbfac9e1a7f101bf6b5b1b793f278", "evidence": {"same_day": true, "patch_ids": ["291c96a6e5cdb0e775f37d82c03ff284"], "statement_hash": "38c4ab2848c04c017f282aa34141cd5f591b0d60a661434e7a97f5c535293ceb"}}, {"rule": 2, "type": "equivalent", "target": "560c16a372995eaed073f2e7d67b407c", "evidence": {"same_day": true, "patch_ids": ["291c96a6e5cdb0e775f37d82c03ff284"], "statement_hash": "38c4ab2848c04c017f282aa34141cd5f591b0d60a661434e7a97f5c535293ceb"}}, {"rule": 2, "type": "equivalent", "target": "68fea31ddb048a05fde17e75029fb6f3", "evidence": {"same_day": true, "patch_ids": ["291c96a6e5cdb0e775f37d82c03ff284"], "statement_hash": "38c4ab2848c04c017f282aa34141cd5f591b0d60a661434e7a97f5c535293ceb"}}, {"rule": 2, "type": "equivalent", "target": "72f5d6a3c9065640cf57e7eac14b873f", "evidence": {"same_day": true, "patch_ids": ["291c96a6e5cdb0e775f37d82c03ff284"], "statement_hash": "38c4ab2848c04c017f282aa34141cd5f591b0d60a661434e7a97f5c535293ceb"}}], "version": "13.6", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "179bbfac9e1a7f101bf6b5b1b793f278", "kind": "equivalent", "version": "14.2", "label": "14.2", "title": "修复在多线程使用 libpq 或 ecpglib 早期报告的错误消息本地化失败的竞态条件", "evidence": {"same_day": true, "patch_ids": ["291c96a6e5cdb0e775f37d82c03ff284"], "statement_hash": "38c4ab2848c04c017f282aa34141cd5f591b0d60a661434e7a97f5c535293ceb"}, "url": "/docs/compare/?release=14.2#14.2-31af7e967c9886de", "source_url": "/docs/release/14.2/#ZH-AUTO-RELEASE-14-SECT2-42"}, {"db_id": "68fea31ddb048a05fde17e75029fb6f3", "kind": "equivalent", "version": "12.10", "label": "12.10", "title": "修复在多线程使用 libpq 或 ecpglib 早期报告的错误消息本地化失败的竞态条件", "evidence": {"same_day": true, "patch_ids": ["291c96a6e5cdb0e775f37d82c03ff284"], "statement_hash": "38c4ab2848c04c017f282aa34141cd5f591b0d60a661434e7a97f5c535293ceb"}, "url": "/docs/compare/?release=12.10#12.10-f8266aed82b21418", "source_url": "/docs/release/12.10/#id-1.11.6.18.5"}, {"db_id": "560c16a372995eaed073f2e7d67b407c", "kind": "equivalent", "version": "11.15", "label": "11.15", "title": "修复在多线程使用 libpq 或 ecpglib 早期报告的错误消息本地化失败的竞态条件", "evidence": {"same_day": true, "patch_ids": ["291c96a6e5cdb0e775f37d82c03ff284"], "statement_hash": "38c4ab2848c04c017f282aa34141cd5f591b0d60a661434e7a97f5c535293ceb"}, "url": "/docs/compare/?release=11.15#11.15-3835054eedd5b8ad", "source_url": "/docs/release/11.15/#id-1.11.6.12.5"}, {"db_id": "72f5d6a3c9065640cf57e7eac14b873f", "kind": "equivalent", "version": "10.20", "label": "10.20", "title": "修复在多线程使用 libpq 或 ecpglib 早期报告的错误消息本地化失败的竞态条件", "evidence": {"same_day": true, "patch_ids": ["291c96a6e5cdb0e775f37d82c03ff284"], "statement_hash": "38c4ab2848c04c017f282aa34141cd5f591b0d60a661434e7a97f5c535293ceb"}, "url": "/docs/compare/?release=10.20#10.20-3835054eedd5b8ad", "source_url": "/docs/release/10.20/#id-1.11.6.8.6"}]}, {"id": "13.6-27b0859303cacd2b", "cves": [], "html": "<p>避免从 <span>libpq</span> 的 <code>PQcancel</code> 函数中调用 <code>strerror</code>（Tom Lane）<a href=\"https://postgr.es/c/f27af7b88\">§</a></p>\n<p><code>PQcancel</code> 应该可以安全地从信号处理程序中调用，但 <code>strerror</code> 不是安全的。这一错误用法仅在向服务器发送取消消息失败的不太可能的情况下才会发生，这也许解释了为什么没有相关报告。</p>", "text": "避免从 libpq 的 PQcancel 函数中调用 strerror（Tom Lane）§ PQcancel 应该可以安全地从信号处理程序中调用，但 strerror 不是安全的。这一错误用法仅在向服务器发送取消消息失败的不太可能的情况下才会发生，这也许解释了为什么没有相关报告。", "title": "避免从 libpq 的 PQcancel 函数中调用 strerror", "commits": ["f27af7b88"], "section": "变更", "category": "improvement", "source_url": "/docs/release/13.6/#id-1.11.6.23.5", "source_hash": "857597683fc87b8a92f59d6a9cd38a0a09b45ca0cec8f1d248d7ea978a651ebb", "section_path": ["变更"], "commit_groups": [["050949877", "38f099ef9", "8b107467c", "9d66c43eb", "f27af7b88", "f3f467b8f"]], "identity_text": "Avoid calling strerror from libpq's PQcancel function (Tom Lane) PQcancel is supposed to be safe to call from a signal handler, but strerror is not safe. The faulty usage only occurred in the unlikely event of failure to send the cancel message to the server, perhaps explaining the lack of reports.", "commit_aliases": ["050949877", "38f099ef9", "8b107467c", "9d66c43eb", "f27af7b88", "f3f467b8f"], "source_commits": ["f27af7b88"], "source_entry_id": "13.6/changes/027", "db_id": "8908f4ff2810107f35f96425443600dc", "patch_ids": ["e574dbc63a73eb38ad4e954d2923de41"], "statement_hash": "bddc059f60b29bdc960f7f36da8ff94f038127a5d5b295f3572911d5c07b805d", "relations": [{"rule": 2, "type": "equivalent", "target": "0513bf329f57f0ccc6396002eebe6830", "evidence": {"same_day": true, "patch_ids": ["e574dbc63a73eb38ad4e954d2923de41"], "statement_hash": "bddc059f60b29bdc960f7f36da8ff94f038127a5d5b295f3572911d5c07b805d"}}, {"rule": 2, "type": "equivalent", "target": "2fb976585cb4ce0c6e80fd570f6305e6", "evidence": {"same_day": true, "patch_ids": ["e574dbc63a73eb38ad4e954d2923de41"], "statement_hash": "bddc059f60b29bdc960f7f36da8ff94f038127a5d5b295f3572911d5c07b805d"}}, {"rule": 2, "type": "equivalent", "target": "7cfb5e36fd110a32db9e68c942b1bc92", "evidence": {"same_day": true, "patch_ids": ["e574dbc63a73eb38ad4e954d2923de41"], "statement_hash": "bddc059f60b29bdc960f7f36da8ff94f038127a5d5b295f3572911d5c07b805d"}}, {"rule": 2, "type": "equivalent", "target": "c49de34fc6ec14b670436080a5f786bd", "evidence": {"same_day": true, "patch_ids": ["e574dbc63a73eb38ad4e954d2923de41"], "statement_hash": "bddc059f60b29bdc960f7f36da8ff94f038127a5d5b295f3572911d5c07b805d"}}], "version": "13.6", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "0513bf329f57f0ccc6396002eebe6830", "kind": "equivalent", "version": "14.2", "label": "14.2", "title": "避免从 libpq 的 PQcancel 函数中调用 strerror", "evidence": {"same_day": true, "patch_ids": ["e574dbc63a73eb38ad4e954d2923de41"], "statement_hash": "bddc059f60b29bdc960f7f36da8ff94f038127a5d5b295f3572911d5c07b805d"}, "url": "/docs/compare/?release=14.2#14.2-baf26e78d93d5f4d", "source_url": "/docs/release/14.2/#ZH-AUTO-RELEASE-14-SECT2-42"}, {"db_id": "2fb976585cb4ce0c6e80fd570f6305e6", "kind": "equivalent", "version": "12.10", "label": "12.10", "title": "避免从 libpq 的 PQcancel 函数中调用 strerror", "evidence": {"same_day": true, "patch_ids": ["e574dbc63a73eb38ad4e954d2923de41"], "statement_hash": "bddc059f60b29bdc960f7f36da8ff94f038127a5d5b295f3572911d5c07b805d"}, "url": "/docs/compare/?release=12.10#12.10-fc892f22c4302a28", "source_url": "/docs/release/12.10/#id-1.11.6.18.5"}, {"db_id": "7cfb5e36fd110a32db9e68c942b1bc92", "kind": "equivalent", "version": "11.15", "label": "11.15", "title": "避免从 libpq 的 PQcancel 函数中调用 strerror", "evidence": {"same_day": true, "patch_ids": ["e574dbc63a73eb38ad4e954d2923de41"], "statement_hash": "bddc059f60b29bdc960f7f36da8ff94f038127a5d5b295f3572911d5c07b805d"}, "url": "/docs/compare/?release=11.15#11.15-951a7587c3962a51", "source_url": "/docs/release/11.15/#id-1.11.6.12.5"}, {"db_id": "c49de34fc6ec14b670436080a5f786bd", "kind": "equivalent", "version": "10.20", "label": "10.20", "title": "避免从 libpq 的 PQcancel 函数中调用 strerror", "evidence": {"same_day": true, "patch_ids": ["e574dbc63a73eb38ad4e954d2923de41"], "statement_hash": "bddc059f60b29bdc960f7f36da8ff94f038127a5d5b295f3572911d5c07b805d"}, "url": "/docs/compare/?release=10.20#10.20-951a7587c3962a51", "source_url": "/docs/release/10.20/#id-1.11.6.8.6"}]}, {"id": "13.6-59cc72f6fd5d3e59", "cves": [], "html": "<p>使 <span>psql</span> 的 <code>\\password</code> 命令默认设置 <code>CURRENT_USER</code> 的密码，而非连接的原始用户名（Tom Lane）<a href=\"https://postgr.es/c/843925fad\">§</a></p>\n<p>这与文档中描述的行为一致，并且避免了在会话开始后执行了 <code>SET ROLE</code> 或 <code>SET SESSION AUTHORIZATION</code> 时可能出现的权限失败。为防止混淆，现在密码提示中包含了要操作的角色名称。</p>", "text": "使 psql 的 \\password 命令默认设置 CURRENT_USER 的密码，而非连接的原始用户名（Tom Lane）§ 这与文档中描述的行为一致，并且避免了在会话开始后执行了 SET ROLE 或 SET SESSION AUTHORIZATION 时可能出现的权限失败。为防止混淆，现在密码提示中包含了要操作的角色名称。", "title": "使 psql 的 \\password 命令默认设置 CURRENT_USER 的密码，而非连接的原始用户名", "commits": ["843925fad"], "section": "变更", "category": "improvement", "source_url": "/docs/release/13.6/#id-1.11.6.23.5", "source_hash": "09866eb450579ef512e2ea5ca89e1c981a522d51d5413a0433e1c1810910918c", "section_path": ["变更"], "commit_groups": [["3bc46e4e9", "523adcc12", "843925fad", "99389cb66", "b062ca508", "d6eb5a0c2"]], "identity_text": "Make psql's \\password command default to setting the password for CURRENT_USER, not the connection's original user name (Tom Lane) This agrees with the documented behavior, and avoids probable permissions failure if SET ROLE or SET SESSION AUTHORIZATION has been done since the session began. To prevent confusion, the role name to be acted on is now included in the password prompt.", "commit_aliases": ["3bc46e4e9", "523adcc12", "843925fad", "99389cb66", "b062ca508", "d6eb5a0c2"], "source_commits": ["843925fad"], "source_entry_id": "13.6/changes/028", "db_id": "ee796632fca28b8125aeb77642ff8793", "patch_ids": ["c349f48ffad73008dc649739097e7b5b"], "statement_hash": "138af04193df6d38c372ce6872a1ea514a395e352428b55f70de73dbfa8fb5ae", "relations": [{"rule": 2, "type": "equivalent", "target": "4714c55d46149586b5d119ffc253a68f", "evidence": {"same_day": true, "patch_ids": ["c349f48ffad73008dc649739097e7b5b"], "statement_hash": "138af04193df6d38c372ce6872a1ea514a395e352428b55f70de73dbfa8fb5ae"}}, {"rule": 2, "type": "equivalent", "target": "84776f05de41df5238bb064738cd3a15", "evidence": {"same_day": true, "patch_ids": ["c349f48ffad73008dc649739097e7b5b"], "statement_hash": "138af04193df6d38c372ce6872a1ea514a395e352428b55f70de73dbfa8fb5ae"}}, {"rule": 2, "type": "equivalent", "target": "84f08b3e4458dc4a884e3495b6687a08", "evidence": {"same_day": true, "patch_ids": ["c349f48ffad73008dc649739097e7b5b"], "statement_hash": "138af04193df6d38c372ce6872a1ea514a395e352428b55f70de73dbfa8fb5ae"}}, {"rule": 2, "type": "equivalent", "target": "e719c1b76bfb3c977de8c80d54db8af0", "evidence": {"same_day": true, "patch_ids": ["c349f48ffad73008dc649739097e7b5b"], "statement_hash": "138af04193df6d38c372ce6872a1ea514a395e352428b55f70de73dbfa8fb5ae"}}], "version": "13.6", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "84776f05de41df5238bb064738cd3a15", "kind": "equivalent", "version": "14.2", "label": "14.2", "title": "使 psql 的 \\password 命令默认设置 CURRENT_USER 的密码，而非连接的原始用户名", "evidence": {"same_day": true, "patch_ids": ["c349f48ffad73008dc649739097e7b5b"], "statement_hash": "138af04193df6d38c372ce6872a1ea514a395e352428b55f70de73dbfa8fb5ae"}, "url": "/docs/compare/?release=14.2#14.2-58f8defda56b9983", "source_url": "/docs/release/14.2/#ZH-AUTO-RELEASE-14-SECT2-42"}, {"db_id": "e719c1b76bfb3c977de8c80d54db8af0", "kind": "equivalent", "version": "12.10", "label": "12.10", "title": "使 psql 的 \\password 命令默认设置 CURRENT_USER 的密码，而非连接的原始用户名", "evidence": {"same_day": true, "patch_ids": ["c349f48ffad73008dc649739097e7b5b"], "statement_hash": "138af04193df6d38c372ce6872a1ea514a395e352428b55f70de73dbfa8fb5ae"}, "url": "/docs/compare/?release=12.10#12.10-2e845f724f6247bd", "source_url": "/docs/release/12.10/#id-1.11.6.18.5"}, {"db_id": "84f08b3e4458dc4a884e3495b6687a08", "kind": "equivalent", "version": "11.15", "label": "11.15", "title": "使 psql 的 \\password 命令默认设置 CURRENT_USER 的密码，而非连接的原始用户名", "evidence": {"same_day": true, "patch_ids": ["c349f48ffad73008dc649739097e7b5b"], "statement_hash": "138af04193df6d38c372ce6872a1ea514a395e352428b55f70de73dbfa8fb5ae"}, "url": "/docs/compare/?release=11.15#11.15-d46e6601c7bc7fb4", "source_url": "/docs/release/11.15/#id-1.11.6.12.5"}, {"db_id": "4714c55d46149586b5d119ffc253a68f", "kind": "equivalent", "version": "10.20", "label": "10.20", "title": "使 psql 的 \\password 命令默认设置 CURRENT_USER 的密码，而非连接的原始用户名", "evidence": {"same_day": true, "patch_ids": ["c349f48ffad73008dc649739097e7b5b"], "statement_hash": "138af04193df6d38c372ce6872a1ea514a395e352428b55f70de73dbfa8fb5ae"}, "url": "/docs/compare/?release=10.20#10.20-d46e6601c7bc7fb4", "source_url": "/docs/release/10.20/#id-1.11.6.8.6"}]}, {"id": "13.6-5840f139b1608d8f", "cves": [], "html": "<p>修复 <span>psql</span> <code>\\d</code> 命令中用于识别父触发器的查询（Justin Pryzby）<a href=\"https://postgr.es/c/90e0f9fd8\">§</a></p>\n<p>之前的代码在分区具有触发器且某个父分区表上存在同名的不相关语句级触发器时，会失败并显示 <span>“<span>more than one row returned by a subquery used as an expression</span>”</span>。</p>", "text": "修复 psql \\d 命令中用于识别父触发器的查询（Justin Pryzby）§ 之前的代码在分区具有触发器且某个父分区表上存在同名的不相关语句级触发器时，会失败并显示 “more than one row returned by a subquery used as an expression”。", "title": "修复 psql \\d 命令中用于识别父触发器的查询", "commits": ["90e0f9fd8"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/13.6/#id-1.11.6.23.5", "source_hash": "22c08097782c0d72d68537dbc3c01ebba3403badf17e796f0498cce683807824", "section_path": ["变更"], "commit_groups": [["3886785b4", "9007d4ea7", "90e0f9fd8"]], "identity_text": "Fix psql \\d command's query for identifying parent triggers (Justin Pryzby) The previous coding failed with more than one row returned by a subquery used as an expression if a partition had triggers and there were unrelated statement-level triggers of the same name on some parent partitioned table.", "commit_aliases": ["3886785b4", "9007d4ea7", "90e0f9fd8"], "source_commits": ["90e0f9fd8"], "source_entry_id": "13.6/changes/029", "db_id": "83b894a00f7a3ae83b40be9540490453", "patch_ids": ["5d27576305f3d0ffb590a746a5dd6bde"], "statement_hash": "892dc45cdc9014a575ac0f6cf3f61712830a7800348215f25f18a5f92fb5493e", "relations": [{"rule": 2, "type": "equivalent", "target": "979769df816c7cd40afe2c4a76ffa8a8", "evidence": {"same_day": true, "patch_ids": ["5d27576305f3d0ffb590a746a5dd6bde"], "statement_hash": "892dc45cdc9014a575ac0f6cf3f61712830a7800348215f25f18a5f92fb5493e"}}], "version": "13.6", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "979769df816c7cd40afe2c4a76ffa8a8", "kind": "equivalent", "version": "14.2", "label": "14.2", "title": "修复 psql \\d 命令中用于识别父触发器的查询", "evidence": {"same_day": true, "patch_ids": ["5d27576305f3d0ffb590a746a5dd6bde"], "statement_hash": "892dc45cdc9014a575ac0f6cf3f61712830a7800348215f25f18a5f92fb5493e"}, "url": "/docs/compare/?release=14.2#14.2-8793603593068cff", "source_url": "/docs/release/14.2/#ZH-AUTO-RELEASE-14-SECT2-42"}]}, {"id": "13.6-cf646c0847bb4da3", "cves": [], "html": "<p>修复 <span>psql</span> 对枚举类型标签值的 Tab 补全（Tom Lane）<a href=\"https://postgr.es/c/90a847e6d\">§</a></p>", "text": "修复 psql 对枚举类型标签值的 Tab 补全（Tom Lane）§", "title": "修复 psql 对枚举类型标签值的 Tab 补全", "commits": ["90a847e6d"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/13.6/#id-1.11.6.23.5", "source_hash": "93e4e47910e6f18214a3a5dd77a2e22959aa863c7be6b73986fd51effdc81ba8", "section_path": ["变更"], "commit_groups": [["90a847e6d", "d91d4338e", "fe7551744"]], "identity_text": "Fix psql's tab-completion of label values for enum types (Tom Lane)", "commit_aliases": ["90a847e6d", "d91d4338e", "fe7551744"], "source_commits": ["90a847e6d"], "source_entry_id": "13.6/changes/030", "db_id": "7f3f2e0a10767a9eb35a52047c5b4b42", "patch_ids": ["85c74fbc7fa64553b61f45e12d241088"], "statement_hash": "0c2ff4c06bbbfd643a5375c29ed2067013966a0c3c3b9c2d49062525187f6ff6", "relations": [{"rule": 2, "type": "equivalent", "target": "25058b6c57003b47fe304a09db495070", "evidence": {"same_day": true, "patch_ids": ["85c74fbc7fa64553b61f45e12d241088"], "statement_hash": "0c2ff4c06bbbfd643a5375c29ed2067013966a0c3c3b9c2d49062525187f6ff6"}}], "version": "13.6", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "25058b6c57003b47fe304a09db495070", "kind": "equivalent", "version": "14.2", "label": "14.2", "title": "修复 psql 对枚举类型标签值的 Tab 补全", "evidence": {"same_day": true, "patch_ids": ["85c74fbc7fa64553b61f45e12d241088"], "statement_hash": "0c2ff4c06bbbfd643a5375c29ed2067013966a0c3c3b9c2d49062525187f6ff6"}, "url": "/docs/compare/?release=14.2#14.2-697dace403d3b991", "source_url": "/docs/release/14.2/#ZH-AUTO-RELEASE-14-SECT2-42"}]}, {"id": "13.6-4a660a5011a14f27", "cves": [], "html": "<p>在 <span>psql</span> 和其他一些客户端程序中，避免在 Ctrl-C 信号处理程序中尝试调用 <code>gettext()</code>（Tom Lane）<a href=\"https://postgr.es/c/d18ec312f\">§</a></p>\n<p>虽然没有已报告的失败可追溯到此错误，但这样做几乎不可能是安全的。</p>", "text": "在 psql 和其他一些客户端程序中，避免在 Ctrl-C 信号处理程序中尝试调用 gettext()（Tom Lane）§ 虽然没有已报告的失败可追溯到此错误，但这样做几乎不可能是安全的。", "title": "在 psql 和其他一些客户端程序中，避免在 Ctrl-C 信号处理程序中尝试调用 gettext()", "commits": ["d18ec312f"], "section": "变更", "category": "improvement", "source_url": "/docs/release/13.6/#id-1.11.6.23.5", "source_hash": "3ff140856b26a5d8b98e0a7246ace0b8310e46f4b5e78a7dfb20ea3cd6509b09", "section_path": ["变更"], "commit_groups": [["2131c049d", "4e8726566", "62bfa554b", "6d1a854c1", "92e6c1c9b", "d18ec312f"]], "identity_text": "In psql and some other client programs, avoid trying to invoke gettext() from a control-C signal handler (Tom Lane) While no reported failures have been traced to this mistake, it seems highly unlikely to be a safe thing to do.", "commit_aliases": ["2131c049d", "4e8726566", "62bfa554b", "6d1a854c1", "92e6c1c9b", "d18ec312f"], "source_commits": ["d18ec312f"], "source_entry_id": "13.6/changes/031", "db_id": "dd81ede7bc9d22fbbf70e4d7896d3105", "patch_ids": ["d3d696ce857e05183ad7d7d24f0a1067"], "statement_hash": "1a9ec1ec7a3c3dd555b08443ef8de8b018891816e9f70d07c794564fb046ce69", "relations": [{"rule": 2, "type": "equivalent", "target": "312ae01f628686c8fbd78be0d62d01f4", "evidence": {"same_day": true, "patch_ids": ["d3d696ce857e05183ad7d7d24f0a1067"], "statement_hash": "1a9ec1ec7a3c3dd555b08443ef8de8b018891816e9f70d07c794564fb046ce69"}}, {"rule": 2, "type": "equivalent", "target": "37aa52c0f37aed6323482336d0a3fa1a", "evidence": {"same_day": true, "patch_ids": ["d3d696ce857e05183ad7d7d24f0a1067"], "statement_hash": "1a9ec1ec7a3c3dd555b08443ef8de8b018891816e9f70d07c794564fb046ce69"}}, {"rule": 2, "type": "equivalent", "target": "d2544048b97f15efc5d1d94a9769cc76", "evidence": {"same_day": true, "patch_ids": ["d3d696ce857e05183ad7d7d24f0a1067"], "statement_hash": "1a9ec1ec7a3c3dd555b08443ef8de8b018891816e9f70d07c794564fb046ce69"}}, {"rule": 2, "type": "equivalent", "target": "ea3ea98a591682809f642b99c9f7dba3", "evidence": {"same_day": true, "patch_ids": ["d3d696ce857e05183ad7d7d24f0a1067"], "statement_hash": "1a9ec1ec7a3c3dd555b08443ef8de8b018891816e9f70d07c794564fb046ce69"}}], "version": "13.6", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "312ae01f628686c8fbd78be0d62d01f4", "kind": "equivalent", "version": "14.2", "label": "14.2", "title": "在 psql 和其他一些客户端程序中，避免在 Ctrl-C 信号处理程序中尝试调用 gettext()", "evidence": {"same_day": true, "patch_ids": ["d3d696ce857e05183ad7d7d24f0a1067"], "statement_hash": "1a9ec1ec7a3c3dd555b08443ef8de8b018891816e9f70d07c794564fb046ce69"}, "url": "/docs/compare/?release=14.2#14.2-74283459e3ee0178", "source_url": "/docs/release/14.2/#ZH-AUTO-RELEASE-14-SECT2-42"}, {"db_id": "37aa52c0f37aed6323482336d0a3fa1a", "kind": "equivalent", "version": "12.10", "label": "12.10", "title": "在 psql 和其他一些客户端程序中，避免在 Ctrl-C 信号处理程序中尝试调用 gettext()", "evidence": {"same_day": true, "patch_ids": ["d3d696ce857e05183ad7d7d24f0a1067"], "statement_hash": "1a9ec1ec7a3c3dd555b08443ef8de8b018891816e9f70d07c794564fb046ce69"}, "url": "/docs/compare/?release=12.10#12.10-6eb20bafdeefa6a5", "source_url": "/docs/release/12.10/#id-1.11.6.18.5"}, {"db_id": "d2544048b97f15efc5d1d94a9769cc76", "kind": "equivalent", "version": "11.15", "label": "11.15", "title": "在 psql 和其他一些客户端程序中，避免在 Ctrl-C 信号处理程序中尝试调用 gettext()", "evidence": {"same_day": true, "patch_ids": ["d3d696ce857e05183ad7d7d24f0a1067"], "statement_hash": "1a9ec1ec7a3c3dd555b08443ef8de8b018891816e9f70d07c794564fb046ce69"}, "url": "/docs/compare/?release=11.15#11.15-28ca354cb54d3373", "source_url": "/docs/release/11.15/#id-1.11.6.12.5"}, {"db_id": "ea3ea98a591682809f642b99c9f7dba3", "kind": "equivalent", "version": "10.20", "label": "10.20", "title": "在 psql 和其他一些客户端程序中，避免在 Ctrl-C 信号处理程序中尝试调用 gettext()", "evidence": {"same_day": true, "patch_ids": ["d3d696ce857e05183ad7d7d24f0a1067"], "statement_hash": "1a9ec1ec7a3c3dd555b08443ef8de8b018891816e9f70d07c794564fb046ce69"}, "url": "/docs/compare/?release=10.20#10.20-28ca354cb54d3373", "source_url": "/docs/release/10.20/#id-1.11.6.8.6"}]}, {"id": "13.6-02827deb1d8f4563", "cves": [], "html": "<p>允许取消 <span>pg_receivewal</span> 和 <span>pg_recvlogical</span> 中的初始密码提示（Tom Lane，Nathan Bossart）<a href=\"https://postgr.es/c/33edf4a3c\">§</a></p>\n<p>之前在这些程序提示输入密码时无法通过 Ctrl-C 终止它们。</p>", "text": "允许取消 pg_receivewal 和 pg_recvlogical 中的初始密码提示（Tom Lane，Nathan Bossart）§ 之前在这些程序提示输入密码时无法通过 Ctrl-C 终止它们。", "title": "允许取消 pg_receivewal 和 pg_recvlogical 中的初始密码提示", "commits": ["33edf4a3c"], "section": "变更", "category": "improvement", "source_url": "/docs/release/13.6/#id-1.11.6.23.5", "source_hash": "4f04ab7ecfa8ecfe0d0bae5e2aff938636fed6f4784f87491d012caebdd8f349", "section_path": ["变更"], "commit_groups": [["282b6d00a", "33edf4a3c", "3bd7556bb", "3ce5d0884", "93295932d", "c2242d364"]], "identity_text": "Allow canceling the initial password prompt in pg_receivewal and pg_recvlogical (Tom Lane, Nathan Bossart) Previously it was impossible to terminate these programs via control-C while they were prompting for a password.", "commit_aliases": ["282b6d00a", "33edf4a3c", "3bd7556bb", "3ce5d0884", "93295932d", "c2242d364"], "source_commits": ["33edf4a3c"], "source_entry_id": "13.6/changes/032", "db_id": "c53751c7c334be5e96a114dceb8476f6", "patch_ids": ["45a975fe3124f0c6801da9a95fd8e72e"], "statement_hash": "b6941078b99b6a88a69507a9ea8f2de23f192f79de8d59cd08899f894d7aa416", "relations": [{"rule": 2, "type": "equivalent", "target": "6a1681b9e213913b7216a8740b8d8008", "evidence": {"same_day": true, "patch_ids": ["45a975fe3124f0c6801da9a95fd8e72e"], "statement_hash": "b6941078b99b6a88a69507a9ea8f2de23f192f79de8d59cd08899f894d7aa416"}}, {"rule": 2, "type": "equivalent", "target": "aa83da2c53e983eedecca77ec02209ae", "evidence": {"same_day": true, "patch_ids": ["45a975fe3124f0c6801da9a95fd8e72e"], "statement_hash": "b6941078b99b6a88a69507a9ea8f2de23f192f79de8d59cd08899f894d7aa416"}}, {"rule": 2, "type": "equivalent", "target": "cfccc237876315ee39750db65b9cf53e", "evidence": {"same_day": true, "patch_ids": ["45a975fe3124f0c6801da9a95fd8e72e"], "statement_hash": "b6941078b99b6a88a69507a9ea8f2de23f192f79de8d59cd08899f894d7aa416"}}, {"rule": 2, "type": "equivalent", "target": "eeb31efce1bcaf4eb179ec2bfc622f67", "evidence": {"same_day": true, "patch_ids": ["45a975fe3124f0c6801da9a95fd8e72e"], "statement_hash": "b6941078b99b6a88a69507a9ea8f2de23f192f79de8d59cd08899f894d7aa416"}}], "version": "13.6", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "cfccc237876315ee39750db65b9cf53e", "kind": "equivalent", "version": "14.2", "label": "14.2", "title": "允许取消 pg_receivewal 和 pg_recvlogical 中的初始密码提示", "evidence": {"same_day": true, "patch_ids": ["45a975fe3124f0c6801da9a95fd8e72e"], "statement_hash": "b6941078b99b6a88a69507a9ea8f2de23f192f79de8d59cd08899f894d7aa416"}, "url": "/docs/compare/?release=14.2#14.2-bc3087b3722d70fc", "source_url": "/docs/release/14.2/#ZH-AUTO-RELEASE-14-SECT2-42"}, {"db_id": "6a1681b9e213913b7216a8740b8d8008", "kind": "equivalent", "version": "12.10", "label": "12.10", "title": "允许取消 pg_receivewal 和 pg_recvlogical 中的初始密码提示", "evidence": {"same_day": true, "patch_ids": ["45a975fe3124f0c6801da9a95fd8e72e"], "statement_hash": "b6941078b99b6a88a69507a9ea8f2de23f192f79de8d59cd08899f894d7aa416"}, "url": "/docs/compare/?release=12.10#12.10-e27c741cf731bb76", "source_url": "/docs/release/12.10/#id-1.11.6.18.5"}, {"db_id": "eeb31efce1bcaf4eb179ec2bfc622f67", "kind": "equivalent", "version": "11.15", "label": "11.15", "title": "允许取消 pg_receivewal 和 pg_recvlogical 中的初始密码提示", "evidence": {"same_day": true, "patch_ids": ["45a975fe3124f0c6801da9a95fd8e72e"], "statement_hash": "b6941078b99b6a88a69507a9ea8f2de23f192f79de8d59cd08899f894d7aa416"}, "url": "/docs/compare/?release=11.15#11.15-2008da08b857d08a", "source_url": "/docs/release/11.15/#id-1.11.6.12.5"}, {"db_id": "aa83da2c53e983eedecca77ec02209ae", "kind": "equivalent", "version": "10.20", "label": "10.20", "title": "允许取消 pg_receivewal 和 pg_recvlogical 中的初始密码提示", "evidence": {"same_day": true, "patch_ids": ["45a975fe3124f0c6801da9a95fd8e72e"], "statement_hash": "b6941078b99b6a88a69507a9ea8f2de23f192f79de8d59cd08899f894d7aa416"}, "url": "/docs/compare/?release=10.20#10.20-2008da08b857d08a", "source_url": "/docs/release/10.20/#id-1.11.6.8.6"}]}, {"id": "13.6-847f8ad7e5efe2e7", "cves": [], "html": "<p>修复 <span>pg_dump</span> 对用户定义类型转换的转储顺序（Tom Lane）<a href=\"https://postgr.es/c/d4f6a36d8\">§</a></p>\n<p>在极少数情况下，输出脚本可能在用户定义类型转换被创建之前就引用了它。</p>", "text": "修复 pg_dump 对用户定义类型转换的转储顺序（Tom Lane）§ 在极少数情况下，输出脚本可能在用户定义类型转换被创建之前就引用了它。", "title": "修复 pg_dump 对用户定义类型转换的转储顺序", "commits": ["d4f6a36d8"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/13.6/#id-1.11.6.23.5", "source_hash": "cf17af33e28ba5fa3f2bc05115c6cd9f548c70144d149829179c88dacad29073", "section_path": ["变更"], "commit_groups": [["0fdf67476", "2b36973d9", "54619a25d", "69949ea68", "b55f2b692", "d4f6a36d8"]], "identity_text": "Fix pg_dump's dump ordering for user-defined casts (Tom Lane) In rare cases, the output script might refer to a user-defined cast before it had been created.", "commit_aliases": ["0fdf67476", "2b36973d9", "54619a25d", "69949ea68", "b55f2b692", "d4f6a36d8"], "source_commits": ["d4f6a36d8"], "source_entry_id": "13.6/changes/033", "db_id": "db01bca554a7ceb79aed44d07a65ba6d", "patch_ids": ["e12fb6e77fcc4c97c954d511f65c482e"], "statement_hash": "d0d997ce7fe7c916864276b63126c62cba25251a4e299e3d17d55f0f6fea1bbb", "relations": [{"rule": 2, "type": "equivalent", "target": "72eed9190b395e011284743716f963c5", "evidence": {"same_day": true, "patch_ids": ["e12fb6e77fcc4c97c954d511f65c482e"], "statement_hash": "d0d997ce7fe7c916864276b63126c62cba25251a4e299e3d17d55f0f6fea1bbb"}}, {"rule": 2, "type": "equivalent", "target": "9be0633436a9b2166bea9414e6b85cd4", "evidence": {"same_day": true, "patch_ids": ["e12fb6e77fcc4c97c954d511f65c482e"], "statement_hash": "d0d997ce7fe7c916864276b63126c62cba25251a4e299e3d17d55f0f6fea1bbb"}}, {"rule": 2, "type": "equivalent", "target": "aadb60c93cfb5e9a3383236d6d98449c", "evidence": {"same_day": true, "patch_ids": ["e12fb6e77fcc4c97c954d511f65c482e"], "statement_hash": "d0d997ce7fe7c916864276b63126c62cba25251a4e299e3d17d55f0f6fea1bbb"}}, {"rule": 2, "type": "equivalent", "target": "c73f1aba1e86bd061e337e562306678f", "evidence": {"same_day": true, "patch_ids": ["e12fb6e77fcc4c97c954d511f65c482e"], "statement_hash": "d0d997ce7fe7c916864276b63126c62cba25251a4e299e3d17d55f0f6fea1bbb"}}], "version": "13.6", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "c73f1aba1e86bd061e337e562306678f", "kind": "equivalent", "version": "14.2", "label": "14.2", "title": "修复 pg_dump 对用户定义类型转换的转储顺序", "evidence": {"same_day": true, "patch_ids": ["e12fb6e77fcc4c97c954d511f65c482e"], "statement_hash": "d0d997ce7fe7c916864276b63126c62cba25251a4e299e3d17d55f0f6fea1bbb"}, "url": "/docs/compare/?release=14.2#14.2-b6538ff0586a0d84", "source_url": "/docs/release/14.2/#ZH-AUTO-RELEASE-14-SECT2-42"}, {"db_id": "aadb60c93cfb5e9a3383236d6d98449c", "kind": "equivalent", "version": "12.10", "label": "12.10", "title": "修复 pg_dump 对用户定义类型转换的转储顺序", "evidence": {"same_day": true, "patch_ids": ["e12fb6e77fcc4c97c954d511f65c482e"], "statement_hash": "d0d997ce7fe7c916864276b63126c62cba25251a4e299e3d17d55f0f6fea1bbb"}, "url": "/docs/compare/?release=12.10#12.10-ba262cb2e2c4d968", "source_url": "/docs/release/12.10/#id-1.11.6.18.5"}, {"db_id": "72eed9190b395e011284743716f963c5", "kind": "equivalent", "version": "11.15", "label": "11.15", "title": "修复 pg_dump 对用户定义类型转换的转储顺序", "evidence": {"same_day": true, "patch_ids": ["e12fb6e77fcc4c97c954d511f65c482e"], "statement_hash": "d0d997ce7fe7c916864276b63126c62cba25251a4e299e3d17d55f0f6fea1bbb"}, "url": "/docs/compare/?release=11.15#11.15-87a7c65809a4cd71", "source_url": "/docs/release/11.15/#id-1.11.6.12.5"}, {"db_id": "9be0633436a9b2166bea9414e6b85cd4", "kind": "equivalent", "version": "10.20", "label": "10.20", "title": "修复 pg_dump 对用户定义类型转换的转储顺序", "evidence": {"same_day": true, "patch_ids": ["e12fb6e77fcc4c97c954d511f65c482e"], "statement_hash": "d0d997ce7fe7c916864276b63126c62cba25251a4e299e3d17d55f0f6fea1bbb"}, "url": "/docs/compare/?release=10.20#10.20-87a7c65809a4cd71", "source_url": "/docs/release/10.20/#id-1.11.6.8.6"}]}, {"id": "13.6-0b7e0db17b06f94e", "cves": [], "html": "<p>修复 <span>pg_dump</span> 的 <code>--inserts</code> 和 <code>--column-inserts</code> 模式以处理同时包含生成列和已删除列的表（Tom Lane）<a href=\"https://postgr.es/c/6fc8b145e\">§</a> <a href=\"https://postgr.es/c/b542e4596\">§</a></p>", "text": "修复 pg_dump 的 --inserts 和 --column-inserts 模式以处理同时包含生成列和已删除列的表（Tom Lane）§ §", "title": "修复 pg_dump 的 --inserts 和 --column-inserts 模式以处理同时包含生成列和已删除列的表", "commits": ["6fc8b145e", "b542e4596"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/13.6/#id-1.11.6.23.5", "source_hash": "c10b8518181eda9e0eb28cfc7f5eab5f20167e854f677ad067d42725729a169d", "section_path": ["变更"], "commit_groups": [["0b126c6a4", "1e7f588ad", "6fc8b145e", "aedc4600d"], ["22d2b6611", "72582531b", "72842a575", "b542e4596", "b599b8f39", "db3a660c6"]], "identity_text": "Fix pg_dump's --inserts and --column-inserts modes to handle tables containing both generated columns and dropped columns (Tom Lane)", "commit_aliases": ["0b126c6a4", "1e7f588ad", "22d2b6611", "6fc8b145e", "72582531b", "72842a575", "aedc4600d", "b542e4596", "b599b8f39", "db3a660c6"], "source_commits": ["6fc8b145e", "b542e4596"], "source_entry_id": "13.6/changes/034", "db_id": "dcb69a229f862719edcdbdff71a9dbb4", "patch_ids": ["13555be6773b5e3cb635e3a96e662f2f", "422677b514ffc74f177f6e57536c0cfa"], "statement_hash": "41d02f661e6a5d153b92192f358bfa041b0a4e87fbf8f31dba2e50133a404bcf", "relations": [{"rule": 2, "type": "equivalent", "target": "19493c411759ab76b9b84729b3e0e13d", "evidence": {"same_day": true, "patch_ids": ["13555be6773b5e3cb635e3a96e662f2f", "422677b514ffc74f177f6e57536c0cfa"], "statement_hash": "41d02f661e6a5d153b92192f358bfa041b0a4e87fbf8f31dba2e50133a404bcf"}}, {"rule": 2, "type": "equivalent", "target": "562a38597bd86e286be3a3a54c084136", "evidence": {"same_day": true, "patch_ids": ["13555be6773b5e3cb635e3a96e662f2f", "422677b514ffc74f177f6e57536c0cfa"], "statement_hash": "41d02f661e6a5d153b92192f358bfa041b0a4e87fbf8f31dba2e50133a404bcf"}}], "version": "13.6", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "562a38597bd86e286be3a3a54c084136", "kind": "equivalent", "version": "14.2", "label": "14.2", "title": "修复 pg_dump 的 --inserts 和 --column-inserts 模式以处理同时包含生成列和已删除列的表", "evidence": {"same_day": true, "patch_ids": ["13555be6773b5e3cb635e3a96e662f2f", "422677b514ffc74f177f6e57536c0cfa"], "statement_hash": "41d02f661e6a5d153b92192f358bfa041b0a4e87fbf8f31dba2e50133a404bcf"}, "url": "/docs/compare/?release=14.2#14.2-a82c9c961a2c21db", "source_url": "/docs/release/14.2/#ZH-AUTO-RELEASE-14-SECT2-42"}, {"db_id": "19493c411759ab76b9b84729b3e0e13d", "kind": "equivalent", "version": "12.10", "label": "12.10", "title": "修复 pg_dump 的 --inserts 和 --column-inserts 模式以处理同时包含生成列和已删除列的表", "evidence": {"same_day": true, "patch_ids": ["13555be6773b5e3cb635e3a96e662f2f", "422677b514ffc74f177f6e57536c0cfa"], "statement_hash": "41d02f661e6a5d153b92192f358bfa041b0a4e87fbf8f31dba2e50133a404bcf"}, "url": "/docs/compare/?release=12.10#12.10-52b8fb77a604ac4f", "source_url": "/docs/release/12.10/#id-1.11.6.18.5"}]}, {"id": "13.6-e400f727e74b3c59", "cves": [], "html": "<p>修复 <span>pg_dump</span> 和 <span>pg_basebackup</span> 中可能错误报告错误的问题（Tom Lane）<a href=\"https://postgr.es/c/c8b5221b5\">§</a> <a href=\"https://postgr.es/c/bbda88c33\">§</a></p>\n<p>之前的代码未能检查某些内核调用的错误，并且在其他情况下可能报告错误的 errno 值。</p>", "text": "修复 pg_dump 和 pg_basebackup 中可能错误报告错误的问题（Tom Lane）§ § 之前的代码未能检查某些内核调用的错误，并且在其他情况下可能报告错误的 errno 值。", "title": "修复 pg_dump 和 pg_basebackup 中可能错误报告错误的问题", "commits": ["bbda88c33", "c8b5221b5"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/13.6/#id-1.11.6.23.5", "source_hash": "21a090281db11480a1b810a5e0f5d428ff0ffbb4ea55b9bbafbe8ee3cf9148f4", "section_path": ["变更"], "commit_groups": [["12bf11889", "3cac2c8ca", "6b413b41b", "bbda88c33"], ["13799bb93", "248c3a937", "53c4a580e", "8378dad4c", "a414eb850", "c8b5221b5"]], "identity_text": "Fix possible mis-reporting of errors in pg_dump and pg_basebackup (Tom Lane) The previous code failed to check for errors from some kernel calls, and could report the wrong errno values in other cases.", "commit_aliases": ["12bf11889", "13799bb93", "248c3a937", "3cac2c8ca", "53c4a580e", "6b413b41b", "8378dad4c", "a414eb850", "bbda88c33", "c8b5221b5"], "source_commits": ["bbda88c33", "c8b5221b5"], "source_entry_id": "13.6/changes/035", "db_id": "0545e39302be21d3a0609ae723549064", "patch_ids": ["dd961137b321f7ff94d0824bd324035a", "ebf11e9edbefe0418df4bbc6a0cccb52"], "statement_hash": "93314841ae6b2fe7f5b77ed2246646519142fac3e8b6c6b6df89f40bb8f2ca46", "relations": [{"rule": 2, "type": "equivalent", "target": "39e7289518c605fbb031bfac93cfe4e0", "evidence": {"same_day": true, "patch_ids": ["dd961137b321f7ff94d0824bd324035a", "ebf11e9edbefe0418df4bbc6a0cccb52"], "statement_hash": "93314841ae6b2fe7f5b77ed2246646519142fac3e8b6c6b6df89f40bb8f2ca46"}}, {"rule": 2, "type": "equivalent", "target": "4514ab4597d72767fa01ca9815f3676b", "evidence": {"same_day": true, "patch_ids": ["dd961137b321f7ff94d0824bd324035a", "ebf11e9edbefe0418df4bbc6a0cccb52"], "statement_hash": "93314841ae6b2fe7f5b77ed2246646519142fac3e8b6c6b6df89f40bb8f2ca46"}}, {"rule": 2, "type": "equivalent", "target": "883afb080411efb9ae98687087cb38c4", "evidence": {"same_day": true, "patch_ids": ["dd961137b321f7ff94d0824bd324035a", "ebf11e9edbefe0418df4bbc6a0cccb52"], "statement_hash": "93314841ae6b2fe7f5b77ed2246646519142fac3e8b6c6b6df89f40bb8f2ca46"}}, {"rule": 2, "type": "equivalent", "target": "d4f698690f870dffacbeecc8713a0b52", "evidence": {"same_day": true, "patch_ids": ["dd961137b321f7ff94d0824bd324035a", "ebf11e9edbefe0418df4bbc6a0cccb52"], "statement_hash": "93314841ae6b2fe7f5b77ed2246646519142fac3e8b6c6b6df89f40bb8f2ca46"}}], "version": "13.6", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "d4f698690f870dffacbeecc8713a0b52", "kind": "equivalent", "version": "14.2", "label": "14.2", "title": "修复 pg_dump 和 pg_basebackup 中可能错误报告错误的问题", "evidence": {"same_day": true, "patch_ids": ["dd961137b321f7ff94d0824bd324035a", "ebf11e9edbefe0418df4bbc6a0cccb52"], "statement_hash": "93314841ae6b2fe7f5b77ed2246646519142fac3e8b6c6b6df89f40bb8f2ca46"}, "url": "/docs/compare/?release=14.2#14.2-30c43ac017b4ea8d", "source_url": "/docs/release/14.2/#ZH-AUTO-RELEASE-14-SECT2-42"}, {"db_id": "39e7289518c605fbb031bfac93cfe4e0", "kind": "equivalent", "version": "12.10", "label": "12.10", "title": "修复 pg_dump 和 pg_basebackup 中可能错误报告错误的问题", "evidence": {"same_day": true, "patch_ids": ["dd961137b321f7ff94d0824bd324035a", "ebf11e9edbefe0418df4bbc6a0cccb52"], "statement_hash": "93314841ae6b2fe7f5b77ed2246646519142fac3e8b6c6b6df89f40bb8f2ca46"}, "url": "/docs/compare/?release=12.10#12.10-95d1b0c9952bfc4e", "source_url": "/docs/release/12.10/#id-1.11.6.18.5"}, {"db_id": "883afb080411efb9ae98687087cb38c4", "kind": "equivalent", "version": "11.15", "label": "11.15", "title": "修复 pg_dump 和 pg_basebackup 中可能错误报告错误的问题", "evidence": {"same_day": true, "patch_ids": ["dd961137b321f7ff94d0824bd324035a", "ebf11e9edbefe0418df4bbc6a0cccb52"], "statement_hash": "93314841ae6b2fe7f5b77ed2246646519142fac3e8b6c6b6df89f40bb8f2ca46"}, "url": "/docs/compare/?release=11.15#11.15-1b4213230bd7a006", "source_url": "/docs/release/11.15/#id-1.11.6.12.5"}, {"db_id": "4514ab4597d72767fa01ca9815f3676b", "kind": "equivalent", "version": "10.20", "label": "10.20", "title": "修复 pg_dump 和 pg_basebackup 中可能错误报告错误的问题", "evidence": {"same_day": true, "patch_ids": ["dd961137b321f7ff94d0824bd324035a", "ebf11e9edbefe0418df4bbc6a0cccb52"], "statement_hash": "93314841ae6b2fe7f5b77ed2246646519142fac3e8b6c6b6df89f40bb8f2ca46"}, "url": "/docs/compare/?release=10.20#10.20-1b4213230bd7a006", "source_url": "/docs/release/10.20/#id-1.11.6.8.6"}]}, {"id": "13.6-60f8c4c632319538", "cves": [], "html": "<p>修复 <code>char(<em><code>N</code></em>)</code> 列上 <code>contrib/btree_gist</code> 索引的仅索引扫描结果（Tom Lane）<a href=\"https://postgr.es/c/823d4c7e2\">§</a></p>\n<p>仅索引扫描返回的列值去除了尾部空格，这不是预期的行为。这是因为数据就是以这种方式存储在索引中的。此修复更改代码以使用预期的空格填充来存储 <code>char(<em><code>N</code></em>)</code> 值。除非你执行 <code>REINDEX</code>，否则此类索引的行为不会立即改变；在更新过程中，去除空格的值将逐渐被替换。不使用仅索引扫描计划的查询在任何情况下都不受影响。</p>", "text": "修复 char(N) 列上 contrib/btree_gist 索引的仅索引扫描结果（Tom Lane）§ 仅索引扫描返回的列值去除了尾部空格，这不是预期的行为。这是因为数据就是以这种方式存储在索引中的。此修复更改代码以使用预期的空格填充来存储 char(N) 值。除非你执行 REINDEX，否则此类索引的行为不会立即改变；在更新过程中，去除空格的值将逐渐被替换。不使用仅索引扫描计划的查询在任何情况下都不受影响。", "title": "修复 char(N) 列上 contrib/btree_gist 索引的仅索引扫描结果", "commits": ["823d4c7e2"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/13.6/#id-1.11.6.23.5", "source_hash": "321ac4b0ad5c3e722306adbb7e4b17802603d2b90187adc8529333c27c55a60c", "section_path": ["变更"], "commit_groups": [["043c1e1a7", "38cbdd22d", "3a69d45af", "54b1cb7eb", "823d4c7e2", "b21986908"]], "identity_text": "Fix results of index-only scans on contrib/btree_gist indexes on char(N) columns (Tom Lane) Index-only scans returned column values with trailing spaces removed, which is not the expected behavior. That happened because that's how the data was stored in the index. This fix changes the code to store char(N) values with the expected amount of space padding. The behavior of such an index will not change immediately unless you REINDEX it; otherwise space-stripped values will be gradually replaced over time during updates. Queries that do not use index-only scan plans will be unaffected in any case.", "commit_aliases": ["043c1e1a7", "38cbdd22d", "3a69d45af", "54b1cb7eb", "823d4c7e2", "b21986908"], "source_commits": ["823d4c7e2"], "source_entry_id": "13.6/changes/036", "db_id": "e6b1208933ac3e7d3ef5a32d4dfae473", "patch_ids": ["e63d9a4e56d10ab4fb3c60dc7ad26680"], "statement_hash": "cb779a0f1247638625893ef73cd2d7e2c16c73155d6631536c3c122191c60fc0", "relations": [{"rule": 2, "type": "equivalent", "target": "3891eee4269b50ab61de96084586a9fa", "evidence": {"same_day": true, "patch_ids": ["e63d9a4e56d10ab4fb3c60dc7ad26680"], "statement_hash": "cb779a0f1247638625893ef73cd2d7e2c16c73155d6631536c3c122191c60fc0"}}, {"rule": 2, "type": "equivalent", "target": "c0154161a375b794afca8de5e9f0bc84", "evidence": {"same_day": true, "patch_ids": ["e63d9a4e56d10ab4fb3c60dc7ad26680"], "statement_hash": "cb779a0f1247638625893ef73cd2d7e2c16c73155d6631536c3c122191c60fc0"}}, {"rule": 2, "type": "equivalent", "target": "dbfab918acba23fe9652fe35f4cadcb6", "evidence": {"same_day": true, "patch_ids": ["e63d9a4e56d10ab4fb3c60dc7ad26680"], "statement_hash": "cb779a0f1247638625893ef73cd2d7e2c16c73155d6631536c3c122191c60fc0"}}, {"rule": 2, "type": "equivalent", "target": "e55f5070f5852aab2dea15f201e4ed0d", "evidence": {"same_day": true, "patch_ids": ["e63d9a4e56d10ab4fb3c60dc7ad26680"], "statement_hash": "cb779a0f1247638625893ef73cd2d7e2c16c73155d6631536c3c122191c60fc0"}}], "version": "13.6", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "3891eee4269b50ab61de96084586a9fa", "kind": "equivalent", "version": "14.2", "label": "14.2", "title": "修复 char(N) 列上 contrib/btree_gist 索引的仅索引扫描结果", "evidence": {"same_day": true, "patch_ids": ["e63d9a4e56d10ab4fb3c60dc7ad26680"], "statement_hash": "cb779a0f1247638625893ef73cd2d7e2c16c73155d6631536c3c122191c60fc0"}, "url": "/docs/compare/?release=14.2#14.2-428f08466b0aaaa7", "source_url": "/docs/release/14.2/#ZH-AUTO-RELEASE-14-SECT2-42"}, {"db_id": "c0154161a375b794afca8de5e9f0bc84", "kind": "equivalent", "version": "12.10", "label": "12.10", "title": "修复 char(N) 列上 contrib/btree_gist 索引的仅索引扫描结果", "evidence": {"same_day": true, "patch_ids": ["e63d9a4e56d10ab4fb3c60dc7ad26680"], "statement_hash": "cb779a0f1247638625893ef73cd2d7e2c16c73155d6631536c3c122191c60fc0"}, "url": "/docs/compare/?release=12.10#12.10-1edd3b473816d39d", "source_url": "/docs/release/12.10/#id-1.11.6.18.5"}, {"db_id": "dbfab918acba23fe9652fe35f4cadcb6", "kind": "equivalent", "version": "11.15", "label": "11.15", "title": "修复 char(N) 列上 contrib/btree_gist 索引的仅索引扫描结果", "evidence": {"same_day": true, "patch_ids": ["e63d9a4e56d10ab4fb3c60dc7ad26680"], "statement_hash": "cb779a0f1247638625893ef73cd2d7e2c16c73155d6631536c3c122191c60fc0"}, "url": "/docs/compare/?release=11.15#11.15-d20392782dcdf1ea", "source_url": "/docs/release/11.15/#id-1.11.6.12.5"}, {"db_id": "e55f5070f5852aab2dea15f201e4ed0d", "kind": "equivalent", "version": "10.20", "label": "10.20", "title": "修复 char(N) 列上 contrib/btree_gist 索引的仅索引扫描结果", "evidence": {"same_day": true, "patch_ids": ["e63d9a4e56d10ab4fb3c60dc7ad26680"], "statement_hash": "cb779a0f1247638625893ef73cd2d7e2c16c73155d6631536c3c122191c60fc0"}, "url": "/docs/compare/?release=10.20#10.20-d20392782dcdf1ea", "source_url": "/docs/release/10.20/#id-1.11.6.8.6"}]}, {"id": "13.6-1e8af647ff73e997", "cves": [], "html": "<p>更改 <span>configure</span> 以使用 Python 的 <span>sysconfig</span> 模块代替已弃用的 <span>distutils</span> 模块来确定如何构建 PL/Python（Peter Eisentraut，Tom Lane，Andres Freund）<a href=\"https://postgr.es/c/4d7d196ff\">§</a></p>\n<p>对于 Python 3.10，这避免了在 <span>configure</span> 时出现关于 <span>distutils</span> 已弃用并计划在 Python 3.12 中移除的警告。想必一旦 3.12 发布，<code>configure --with-python</code> 将会完全失败。这种面向未来的改进确实有一个代价：<span>sysconfig</span> 在 Python 2.7 之前不存在，在 Python 3 分支中在 3.2 之前也不存在，因此不再可能针对早已停止维护的 Python 版本构建 PL/Python。</p>", "text": "更改 configure 以使用 Python 的 sysconfig 模块代替已弃用的 distutils 模块来确定如何构建 PL/Python（Peter Eisentraut，Tom Lane，Andres Freund）§ 对于 Python 3.10，这避免了在 configure 时出现关于 distutils 已弃用并计划在 Python 3.12 中移除的警告。想必一旦 3.12 发布，configure --with-python 将会完全失败。这种面向未来的改进确实有一个代价：sysconfig 在 Python 2.7 之前不存在，在 Python 3 分支中在 3.2 之前也不存在，因此不再可能针对早已停止维护的 Python 版本构建 PL/Python。", "title": "更改 configure 以使用 Python 的 sysconfig 模块代替已弃用的 distutils 模块来确定如何构建 PL/Python", "commits": ["4d7d196ff"], "section": "变更", "category": "improvement", "source_url": "/docs/release/13.6/#id-1.11.6.23.5", "source_hash": "18fea69baad1b977a7d8a345aee01387419a1a4015d2e94ca1b40293bc4290d7", "section_path": ["变更"], "commit_groups": [["4d7d196ff", "803f0b173", "a72c43012", "aa2215d6b", "bd233bdd8", "e41176bd6"]], "identity_text": "Change configure to use Python's sysconfig module, rather than the deprecated distutils module, to determine how to build PL/Python (Peter Eisentraut, Tom Lane, Andres Freund) With Python 3.10, this avoids configure-time warnings about distutils being deprecated and scheduled for removal in Python 3.12. Presumably, once 3.12 is out, configure --with-python would fail altogether. This future-proofing does come at a cost: sysconfig did not exist before Python 2.7, nor before 3.2 in the Python 3 branch, so it is no longer possible to build PL/Python against long-dead Python versions.", "commit_aliases": ["4d7d196ff", "803f0b173", "a72c43012", "aa2215d6b", "bd233bdd8", "e41176bd6"], "source_commits": ["4d7d196ff"], "source_entry_id": "13.6/changes/037", "db_id": "cd104a52ed9b478baa5b2fd6f6ba0df6", "patch_ids": ["17633f3b2e2107e99afa3a585ed0e74a"], "statement_hash": "bf905188b73d06f5cb2ecbe3d4b271f988be37a013dbcc8164a5af135ab9eff3", "relations": [{"rule": 2, "type": "equivalent", "target": "35308604eec5e17cf86e540668d0bb97", "evidence": {"same_day": true, "patch_ids": ["17633f3b2e2107e99afa3a585ed0e74a"], "statement_hash": "bf905188b73d06f5cb2ecbe3d4b271f988be37a013dbcc8164a5af135ab9eff3"}}, {"rule": 2, "type": "equivalent", "target": "6575c0a3a5e7696b37917a7aa00a1fe0", "evidence": {"same_day": true, "patch_ids": ["17633f3b2e2107e99afa3a585ed0e74a"], "statement_hash": "bf905188b73d06f5cb2ecbe3d4b271f988be37a013dbcc8164a5af135ab9eff3"}}, {"rule": 2, "type": "equivalent", "target": "8f5f9065b07dfe76530953852679a6c2", "evidence": {"same_day": true, "patch_ids": ["17633f3b2e2107e99afa3a585ed0e74a"], "statement_hash": "bf905188b73d06f5cb2ecbe3d4b271f988be37a013dbcc8164a5af135ab9eff3"}}, {"rule": 2, "type": "equivalent", "target": "e5f8d0d7a1840cdff9346c8a6796bd1d", "evidence": {"same_day": true, "patch_ids": ["17633f3b2e2107e99afa3a585ed0e74a"], "statement_hash": "bf905188b73d06f5cb2ecbe3d4b271f988be37a013dbcc8164a5af135ab9eff3"}}], "version": "13.6", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "35308604eec5e17cf86e540668d0bb97", "kind": "equivalent", "version": "14.2", "label": "14.2", "title": "更改 configure 以使用 Python 的 sysconfig 模块代替已弃用的 distutils 模块来确定如何构建 PL/Python", "evidence": {"same_day": true, "patch_ids": ["17633f3b2e2107e99afa3a585ed0e74a"], "statement_hash": "bf905188b73d06f5cb2ecbe3d4b271f988be37a013dbcc8164a5af135ab9eff3"}, "url": "/docs/compare/?release=14.2#14.2-86a3be5c3dc22f51", "source_url": "/docs/release/14.2/#ZH-AUTO-RELEASE-14-SECT2-42"}, {"db_id": "e5f8d0d7a1840cdff9346c8a6796bd1d", "kind": "equivalent", "version": "12.10", "label": "12.10", "title": "更改 configure 以使用 Python 的 sysconfig 模块代替已弃用的 distutils 模块来确定如何构建 PL/Python", "evidence": {"same_day": true, "patch_ids": ["17633f3b2e2107e99afa3a585ed0e74a"], "statement_hash": "bf905188b73d06f5cb2ecbe3d4b271f988be37a013dbcc8164a5af135ab9eff3"}, "url": "/docs/compare/?release=12.10#12.10-bb059011c3952eed", "source_url": "/docs/release/12.10/#id-1.11.6.18.5"}, {"db_id": "6575c0a3a5e7696b37917a7aa00a1fe0", "kind": "equivalent", "version": "11.15", "label": "11.15", "title": "更改 configure 以使用 Python 的 sysconfig 模块代替已弃用的 distutils 模块来确定如何构建 PL/Python", "evidence": {"same_day": true, "patch_ids": ["17633f3b2e2107e99afa3a585ed0e74a"], "statement_hash": "bf905188b73d06f5cb2ecbe3d4b271f988be37a013dbcc8164a5af135ab9eff3"}, "url": "/docs/compare/?release=11.15#11.15-96f7c4813d25f750", "source_url": "/docs/release/11.15/#id-1.11.6.12.5"}, {"db_id": "8f5f9065b07dfe76530953852679a6c2", "kind": "equivalent", "version": "10.20", "label": "10.20", "title": "更改 configure 以使用 Python 的 sysconfig 模块代替已弃用的 distutils 模块来确定如何构建 PL/Python", "evidence": {"same_day": true, "patch_ids": ["17633f3b2e2107e99afa3a585ed0e74a"], "statement_hash": "bf905188b73d06f5cb2ecbe3d4b271f988be37a013dbcc8164a5af135ab9eff3"}, "url": "/docs/compare/?release=10.20#10.20-96f7c4813d25f750", "source_url": "/docs/release/10.20/#id-1.11.6.8.6"}]}, {"id": "13.6-5999b888f740dace", "cves": [], "html": "<p>修复在 Windows 上使用 Perl 5.28 及更高版本时的 PL/Perl 编译失败（Victor Wagner）<a href=\"https://postgr.es/c/0dc0fe7b6\">§</a></p>", "text": "修复在 Windows 上使用 Perl 5.28 及更高版本时的 PL/Perl 编译失败（Victor Wagner）§", "title": "修复在 Windows 上使用 Perl 5.28 及更高版本时的 PL/Perl 编译失败", "commits": ["0dc0fe7b6"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/13.6/#id-1.11.6.23.5", "source_hash": "d242c921e4a469d7459189a18269f368ce5755d36f3fd0397a594093e833fef4", "section_path": ["变更"], "commit_groups": [["0dc0fe7b6", "2557a03f8", "8484e3812", "ad95a639a", "c89f40974", "f173738d5"]], "identity_text": "Fix PL/Perl compile failure on Windows with Perl 5.28 and later (Victor Wagner)", "commit_aliases": ["0dc0fe7b6", "2557a03f8", "8484e3812", "ad95a639a", "c89f40974", "f173738d5"], "source_commits": ["0dc0fe7b6"], "source_entry_id": "13.6/changes/038", "db_id": "cf6de335c517ee0115f5122a94bed039", "patch_ids": ["b6bf3209370dcb328129d84ea5053166"], "statement_hash": "fa72a662ece43386bd3ae9823da55d714693d60e4a1bcbfa8adc30fb42ad76c9", "relations": [{"rule": 2, "type": "equivalent", "target": "14d39d737ef3b8ff08f97f3a376b8c2e", "evidence": {"same_day": true, "patch_ids": ["b6bf3209370dcb328129d84ea5053166"], "statement_hash": "fa72a662ece43386bd3ae9823da55d714693d60e4a1bcbfa8adc30fb42ad76c9"}}, {"rule": 2, "type": "equivalent", "target": "62fd56faadbe94d61da3dcdd06c226b1", "evidence": {"same_day": true, "patch_ids": ["b6bf3209370dcb328129d84ea5053166"], "statement_hash": "fa72a662ece43386bd3ae9823da55d714693d60e4a1bcbfa8adc30fb42ad76c9"}}, {"rule": 2, "type": "equivalent", "target": "8d6baf531e215f8a072402ae365789d1", "evidence": {"same_day": true, "patch_ids": ["b6bf3209370dcb328129d84ea5053166"], "statement_hash": "fa72a662ece43386bd3ae9823da55d714693d60e4a1bcbfa8adc30fb42ad76c9"}}, {"rule": 2, "type": "equivalent", "target": "c3e3e800da305ed5949455967311a3b1", "evidence": {"same_day": true, "patch_ids": ["b6bf3209370dcb328129d84ea5053166"], "statement_hash": "fa72a662ece43386bd3ae9823da55d714693d60e4a1bcbfa8adc30fb42ad76c9"}}], "version": "13.6", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "8d6baf531e215f8a072402ae365789d1", "kind": "equivalent", "version": "14.2", "label": "14.2", "title": "修复在 Windows 上使用 Perl 5.28 及更高版本时的 PL/Perl 编译失败", "evidence": {"same_day": true, "patch_ids": ["b6bf3209370dcb328129d84ea5053166"], "statement_hash": "fa72a662ece43386bd3ae9823da55d714693d60e4a1bcbfa8adc30fb42ad76c9"}, "url": "/docs/compare/?release=14.2#14.2-627fd5cb2b89f37d", "source_url": "/docs/release/14.2/#ZH-AUTO-RELEASE-14-SECT2-42"}, {"db_id": "14d39d737ef3b8ff08f97f3a376b8c2e", "kind": "equivalent", "version": "12.10", "label": "12.10", "title": "修复在 Windows 上使用 Perl 5.28 及更高版本时的 PL/Perl 编译失败", "evidence": {"same_day": true, "patch_ids": ["b6bf3209370dcb328129d84ea5053166"], "statement_hash": "fa72a662ece43386bd3ae9823da55d714693d60e4a1bcbfa8adc30fb42ad76c9"}, "url": "/docs/compare/?release=12.10#12.10-91ab34438772d051", "source_url": "/docs/release/12.10/#id-1.11.6.18.5"}, {"db_id": "c3e3e800da305ed5949455967311a3b1", "kind": "equivalent", "version": "11.15", "label": "11.15", "title": "修复在 Windows 上使用 Perl 5.28 及更高版本时的 PL/Perl 编译失败", "evidence": {"same_day": true, "patch_ids": ["b6bf3209370dcb328129d84ea5053166"], "statement_hash": "fa72a662ece43386bd3ae9823da55d714693d60e4a1bcbfa8adc30fb42ad76c9"}, "url": "/docs/compare/?release=11.15#11.15-33a60c7ece98c31c", "source_url": "/docs/release/11.15/#id-1.11.6.12.5"}, {"db_id": "62fd56faadbe94d61da3dcdd06c226b1", "kind": "equivalent", "version": "10.20", "label": "10.20", "title": "修复在 Windows 上使用 Perl 5.28 及更高版本时的 PL/Perl 编译失败", "evidence": {"same_day": true, "patch_ids": ["b6bf3209370dcb328129d84ea5053166"], "statement_hash": "fa72a662ece43386bd3ae9823da55d714693d60e4a1bcbfa8adc30fb42ad76c9"}, "url": "/docs/compare/?release=10.20#10.20-33a60c7ece98c31c", "source_url": "/docs/release/10.20/#id-1.11.6.8.6"}]}, {"id": "13.6-af0245c0acb29b17", "cves": [], "html": "<p>修复在 Python 3.11 及更高版本上的 PL/Python 编译失败（Peter Eisentraut）<a href=\"https://postgr.es/c/04875ae92\">§</a></p>", "text": "修复在 Python 3.11 及更高版本上的 PL/Python 编译失败（Peter Eisentraut）§", "title": "修复在 Python 3.11 及更高版本上的 PL/Python 编译失败", "commits": ["04875ae92"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/13.6/#id-1.11.6.23.5", "source_hash": "db26516f6fb4552c90229ee7e84edcd62d8ae1f23ff496a21bfa1974f80ffd7f", "section_path": ["变更"], "commit_groups": [["04875ae92", "0d335cbd5", "1cc13b83e", "4339e10f0", "99e4d24a9", "a83b1bab0"]], "identity_text": "Fix PL/Python compile failure with Python 3.11 and later (Peter Eisentraut)", "commit_aliases": ["04875ae92", "0d335cbd5", "1cc13b83e", "4339e10f0", "99e4d24a9", "a83b1bab0"], "source_commits": ["04875ae92"], "source_entry_id": "13.6/changes/039", "db_id": "cc51e79e171e73873d1f720c845c6758", "patch_ids": ["7d4135084d39bc7e2e106621eaa276df"], "statement_hash": "7e781dcd910c484fd2707d645511b009a406b02f2e6b79a36e1668e6128cd102", "relations": [{"rule": 2, "type": "equivalent", "target": "13a04fb18f319baf0cb11dfb357a845e", "evidence": {"same_day": true, "patch_ids": ["7d4135084d39bc7e2e106621eaa276df"], "statement_hash": "7e781dcd910c484fd2707d645511b009a406b02f2e6b79a36e1668e6128cd102"}}, {"rule": 2, "type": "equivalent", "target": "3910a9190a9096ab5ee5b9e712f36e78", "evidence": {"same_day": true, "patch_ids": ["7d4135084d39bc7e2e106621eaa276df"], "statement_hash": "7e781dcd910c484fd2707d645511b009a406b02f2e6b79a36e1668e6128cd102"}}, {"rule": 2, "type": "equivalent", "target": "7b1f486dc301f3e6d6d8577142e50624", "evidence": {"same_day": true, "patch_ids": ["7d4135084d39bc7e2e106621eaa276df"], "statement_hash": "7e781dcd910c484fd2707d645511b009a406b02f2e6b79a36e1668e6128cd102"}}, {"rule": 2, "type": "equivalent", "target": "c3d76301262c05d2eeb89dd4fef74911", "evidence": {"same_day": true, "patch_ids": ["7d4135084d39bc7e2e106621eaa276df"], "statement_hash": "7e781dcd910c484fd2707d645511b009a406b02f2e6b79a36e1668e6128cd102"}}], "version": "13.6", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "3910a9190a9096ab5ee5b9e712f36e78", "kind": "equivalent", "version": "14.2", "label": "14.2", "title": "修复在 Python 3.11 及更高版本上的 PL/Python 编译失败", "evidence": {"same_day": true, "patch_ids": ["7d4135084d39bc7e2e106621eaa276df"], "statement_hash": "7e781dcd910c484fd2707d645511b009a406b02f2e6b79a36e1668e6128cd102"}, "url": "/docs/compare/?release=14.2#14.2-cd090e0a6a47e8bc", "source_url": "/docs/release/14.2/#ZH-AUTO-RELEASE-14-SECT2-42"}, {"db_id": "13a04fb18f319baf0cb11dfb357a845e", "kind": "equivalent", "version": "12.10", "label": "12.10", "title": "修复在 Python 3.11 及更高版本上的 PL/Python 编译失败", "evidence": {"same_day": true, "patch_ids": ["7d4135084d39bc7e2e106621eaa276df"], "statement_hash": "7e781dcd910c484fd2707d645511b009a406b02f2e6b79a36e1668e6128cd102"}, "url": "/docs/compare/?release=12.10#12.10-327f34dc5d14308b", "source_url": "/docs/release/12.10/#id-1.11.6.18.5"}, {"db_id": "c3d76301262c05d2eeb89dd4fef74911", "kind": "equivalent", "version": "11.15", "label": "11.15", "title": "修复在 Python 3.11 及更高版本上的 PL/Python 编译失败", "evidence": {"same_day": true, "patch_ids": ["7d4135084d39bc7e2e106621eaa276df"], "statement_hash": "7e781dcd910c484fd2707d645511b009a406b02f2e6b79a36e1668e6128cd102"}, "url": "/docs/compare/?release=11.15#11.15-471d21c27f322d38", "source_url": "/docs/release/11.15/#id-1.11.6.12.5"}, {"db_id": "7b1f486dc301f3e6d6d8577142e50624", "kind": "equivalent", "version": "10.20", "label": "10.20", "title": "修复在 Python 3.11 及更高版本上的 PL/Python 编译失败", "evidence": {"same_day": true, "patch_ids": ["7d4135084d39bc7e2e106621eaa276df"], "statement_hash": "7e781dcd910c484fd2707d645511b009a406b02f2e6b79a36e1668e6128cd102"}, "url": "/docs/compare/?release=10.20#10.20-471d21c27f322d38", "source_url": "/docs/release/10.20/#id-1.11.6.8.6"}]}, {"id": "13.6-cf38a7a54e0e5de1", "cves": [], "html": "<p>增加对使用 Visual Studio 2022 构建的支持（Hans Buschmann）<a href=\"https://postgr.es/c/baef657d3\">§</a></p>", "text": "增加对使用 Visual Studio 2022 构建的支持（Hans Buschmann）§", "title": "增加对使用 Visual Studio 2022 构建的支持", "commits": ["baef657d3"], "section": "变更", "category": "improvement", "source_url": "/docs/release/13.6/#id-1.11.6.23.5", "source_hash": "935d0ce36181f49da2b93de10ccda096c3ecc140f389305d4d719f5dc6273f98", "section_path": ["变更"], "commit_groups": [["0e681fa45", "1061e41ff", "420d5e40b", "82881a9b9", "b2265d305", "baef657d3"]], "identity_text": "Add support for building with Visual Studio 2022 (Hans Buschmann)", "commit_aliases": ["0e681fa45", "1061e41ff", "420d5e40b", "82881a9b9", "b2265d305", "baef657d3"], "source_commits": ["baef657d3"], "source_entry_id": "13.6/changes/040", "db_id": "3fcbfa1a55a79d20d519ca8e6dc5de17", "patch_ids": ["d582ea74e4193a4c295e06a50423dc1f"], "statement_hash": "d804a77ca9d95c3910c2b2ccdb42f2330a1f70cbe3f2d7e38d958d109eb56443", "relations": [{"rule": 2, "type": "equivalent", "target": "06c788e089a803781c51bd01dbdcd963", "evidence": {"same_day": true, "patch_ids": ["d582ea74e4193a4c295e06a50423dc1f"], "statement_hash": "d804a77ca9d95c3910c2b2ccdb42f2330a1f70cbe3f2d7e38d958d109eb56443"}}, {"rule": 2, "type": "equivalent", "target": "6fa75044ec137fbe6a2b518ab58b29a2", "evidence": {"same_day": true, "patch_ids": ["d582ea74e4193a4c295e06a50423dc1f"], "statement_hash": "d804a77ca9d95c3910c2b2ccdb42f2330a1f70cbe3f2d7e38d958d109eb56443"}}, {"rule": 2, "type": "equivalent", "target": "7b3bd9bc50ecd5773c9a397fffb0c304", "evidence": {"same_day": true, "patch_ids": ["d582ea74e4193a4c295e06a50423dc1f"], "statement_hash": "d804a77ca9d95c3910c2b2ccdb42f2330a1f70cbe3f2d7e38d958d109eb56443"}}, {"rule": 2, "type": "equivalent", "target": "fa47bdc36262034bc0dbbe6df7e51282", "evidence": {"same_day": true, "patch_ids": ["d582ea74e4193a4c295e06a50423dc1f"], "statement_hash": "d804a77ca9d95c3910c2b2ccdb42f2330a1f70cbe3f2d7e38d958d109eb56443"}}], "version": "13.6", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "7b3bd9bc50ecd5773c9a397fffb0c304", "kind": "equivalent", "version": "14.2", "label": "14.2", "title": "增加对使用 Visual Studio 2022 构建的支持", "evidence": {"same_day": true, "patch_ids": ["d582ea74e4193a4c295e06a50423dc1f"], "statement_hash": "d804a77ca9d95c3910c2b2ccdb42f2330a1f70cbe3f2d7e38d958d109eb56443"}, "url": "/docs/compare/?release=14.2#14.2-4d53e4bd31504d36", "source_url": "/docs/release/14.2/#ZH-AUTO-RELEASE-14-SECT2-42"}, {"db_id": "06c788e089a803781c51bd01dbdcd963", "kind": "equivalent", "version": "12.10", "label": "12.10", "title": "增加对使用 Visual Studio 2022 构建的支持", "evidence": {"same_day": true, "patch_ids": ["d582ea74e4193a4c295e06a50423dc1f"], "statement_hash": "d804a77ca9d95c3910c2b2ccdb42f2330a1f70cbe3f2d7e38d958d109eb56443"}, "url": "/docs/compare/?release=12.10#12.10-a5e4edbc625bac47", "source_url": "/docs/release/12.10/#id-1.11.6.18.5"}, {"db_id": "6fa75044ec137fbe6a2b518ab58b29a2", "kind": "equivalent", "version": "11.15", "label": "11.15", "title": "增加对使用 Visual Studio 2022 构建的支持", "evidence": {"same_day": true, "patch_ids": ["d582ea74e4193a4c295e06a50423dc1f"], "statement_hash": "d804a77ca9d95c3910c2b2ccdb42f2330a1f70cbe3f2d7e38d958d109eb56443"}, "url": "/docs/compare/?release=11.15#11.15-5874cfe400f444dd", "source_url": "/docs/release/11.15/#id-1.11.6.12.5"}, {"db_id": "fa47bdc36262034bc0dbbe6df7e51282", "kind": "equivalent", "version": "10.20", "label": "10.20", "title": "增加对使用 Visual Studio 2022 构建的支持", "evidence": {"same_day": true, "patch_ids": ["d582ea74e4193a4c295e06a50423dc1f"], "statement_hash": "d804a77ca9d95c3910c2b2ccdb42f2330a1f70cbe3f2d7e38d958d109eb56443"}, "url": "/docs/compare/?release=10.20#10.20-5874cfe400f444dd", "source_url": "/docs/release/10.20/#id-1.11.6.8.6"}]}, {"id": "13.6-c9d016367d2f2887", "cves": [], "html": "<p>允许 MSVC 构建系统中的 <code>.bat</code> 包装脚本无需先切换到其所在目录即可调用（Anton Voloshin，Andrew Dunstan）<a href=\"https://postgr.es/c/f3ded9c46\">§</a> <a href=\"https://postgr.es/c/31680730e\">§</a></p>", "text": "允许 MSVC 构建系统中的 .bat 包装脚本无需先切换到其所在目录即可调用（Anton Voloshin，Andrew Dunstan）§ §", "title": "允许 MSVC 构建系统中的 .bat 包装脚本无需先切换到其所在目录即可调用", "commits": ["31680730e", "f3ded9c46"], "section": "变更", "category": "improvement", "source_url": "/docs/release/13.6/#id-1.11.6.23.5", "source_hash": "ed3a0543a398fd94fd68b251676380151f9ed7d502a5157c9695e160bbda3a2d", "section_path": ["变更"], "commit_groups": [["0a79feeca", "156a846d9", "22d8c2570", "31680730e", "a5bd14d93", "f80900be0"], ["a4cde9153", "a7772e874", "c3879a7b4", "c7fa0f55d", "d897361c7", "f3ded9c46"]], "identity_text": "Allow the .bat wrapper scripts in our MSVC build system to be called without first changing into their directory (Anton Voloshin, Andrew Dunstan)", "commit_aliases": ["0a79feeca", "156a846d9", "22d8c2570", "31680730e", "a4cde9153", "a5bd14d93", "a7772e874", "c3879a7b4", "c7fa0f55d", "d897361c7", "f3ded9c46", "f80900be0"], "source_commits": ["31680730e", "f3ded9c46"], "source_entry_id": "13.6/changes/041", "db_id": "baf4039910310a3004179932096ce9fb", "patch_ids": ["98acb3e9fc6789bc2f255f99063a4f36", "d98a5c9a09005beb37472a230e016339"], "statement_hash": "74a0fa9ad0431273e05110a03879fb26b425d24655a8ae3840f8c1cb5b78399a", "relations": [{"rule": 2, "type": "equivalent", "target": "357e1dce6f8e3fcf96ba664524b6357e", "evidence": {"same_day": true, "patch_ids": ["98acb3e9fc6789bc2f255f99063a4f36", "d98a5c9a09005beb37472a230e016339"], "statement_hash": "74a0fa9ad0431273e05110a03879fb26b425d24655a8ae3840f8c1cb5b78399a"}}, {"rule": 2, "type": "equivalent", "target": "5fe587481566a0b581b28aa2d1fc2f08", "evidence": {"same_day": true, "patch_ids": ["98acb3e9fc6789bc2f255f99063a4f36", "d98a5c9a09005beb37472a230e016339"], "statement_hash": "74a0fa9ad0431273e05110a03879fb26b425d24655a8ae3840f8c1cb5b78399a"}}, {"rule": 2, "type": "equivalent", "target": "decb7196802a8995e15d6d5170ac6598", "evidence": {"same_day": true, "patch_ids": ["98acb3e9fc6789bc2f255f99063a4f36", "d98a5c9a09005beb37472a230e016339"], "statement_hash": "74a0fa9ad0431273e05110a03879fb26b425d24655a8ae3840f8c1cb5b78399a"}}, {"rule": 2, "type": "equivalent", "target": "f51ed18fa8b74327b7b0192f4117facd", "evidence": {"same_day": true, "patch_ids": ["98acb3e9fc6789bc2f255f99063a4f36", "d98a5c9a09005beb37472a230e016339"], "statement_hash": "74a0fa9ad0431273e05110a03879fb26b425d24655a8ae3840f8c1cb5b78399a"}}], "version": "13.6", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "f51ed18fa8b74327b7b0192f4117facd", "kind": "equivalent", "version": "14.2", "label": "14.2", "title": "允许 MSVC 构建系统中的 .bat 包装脚本无需先切换到其所在目录即可调用", "evidence": {"same_day": true, "patch_ids": ["98acb3e9fc6789bc2f255f99063a4f36", "d98a5c9a09005beb37472a230e016339"], "statement_hash": "74a0fa9ad0431273e05110a03879fb26b425d24655a8ae3840f8c1cb5b78399a"}, "url": "/docs/compare/?release=14.2#14.2-793be1be62743d22", "source_url": "/docs/release/14.2/#ZH-AUTO-RELEASE-14-SECT2-42"}, {"db_id": "decb7196802a8995e15d6d5170ac6598", "kind": "equivalent", "version": "12.10", "label": "12.10", "title": "允许 MSVC 构建系统中的 .bat 包装脚本无需先切换到其所在目录即可调用", "evidence": {"same_day": true, "patch_ids": ["98acb3e9fc6789bc2f255f99063a4f36", "d98a5c9a09005beb37472a230e016339"], "statement_hash": "74a0fa9ad0431273e05110a03879fb26b425d24655a8ae3840f8c1cb5b78399a"}, "url": "/docs/compare/?release=12.10#12.10-8a10d70710c3e16e", "source_url": "/docs/release/12.10/#id-1.11.6.18.5"}, {"db_id": "357e1dce6f8e3fcf96ba664524b6357e", "kind": "equivalent", "version": "11.15", "label": "11.15", "title": "允许 MSVC 构建系统中的 .bat 包装脚本无需先切换到其所在目录即可调用", "evidence": {"same_day": true, "patch_ids": ["98acb3e9fc6789bc2f255f99063a4f36", "d98a5c9a09005beb37472a230e016339"], "statement_hash": "74a0fa9ad0431273e05110a03879fb26b425d24655a8ae3840f8c1cb5b78399a"}, "url": "/docs/compare/?release=11.15#11.15-02b5373b6a8421e0", "source_url": "/docs/release/11.15/#id-1.11.6.12.5"}, {"db_id": "5fe587481566a0b581b28aa2d1fc2f08", "kind": "equivalent", "version": "10.20", "label": "10.20", "title": "允许 MSVC 构建系统中的 .bat 包装脚本无需先切换到其所在目录即可调用", "evidence": {"same_day": true, "patch_ids": ["98acb3e9fc6789bc2f255f99063a4f36", "d98a5c9a09005beb37472a230e016339"], "statement_hash": "74a0fa9ad0431273e05110a03879fb26b425d24655a8ae3840f8c1cb5b78399a"}, "url": "/docs/compare/?release=10.20#10.20-02b5373b6a8421e0", "source_url": "/docs/release/10.20/#id-1.11.6.8.6"}]}]}], "stats": [{"key": "all", "label": "全部变更", "count": 41}, {"key": "feature", "label": "新功能", "count": 0}, {"key": "bugfix", "label": "BUG 修复", "count": 21}, {"key": "security", "label": "安全相关", "count": 0}, {"key": "performance", "label": "性能改进", "count": 1}, {"key": "compatibility", "label": "兼容性变化", "count": 0}, {"key": "improvement", "label": "其他改进", "count": 19}], "total": 41, "release_count": 1, "cross_major": false, "cve_count": 0, "cves": [], "cve_available": true, "remaining_cves": [], "security_regressions": [], "warnings": [], "candidate_count": 41, "already_in_source_count": 0, "duplicate_count": 0, "excluded_count": 0, "exclusions": [], "source_as_of": "2026-09-26", "security_as_of": "2026-09-26"}