{"format": 1, "mode": "release", "from_release": null, "to_release": {"date": "2023-08-10", "build": "13.12", "major": "13", "minor": 12, "manual": "13", "status": "stable", "doc_git": "", "version": "13.12", "eol_date": "2025-11-13", "date_text": "2023-08-10", "supported": false, "manual_url": "/docs/13/release-13-12.html", "source_url": "/docs/release/13.12/", "entry_count": 36, "placeholder": false, "content_hash": "45e16caf11e1b6447c8eb8742f36c2114201b04a404e2c7c05cce156110bf0dc", "manual_build": "13.23", "source_as_of": "", "changes_count": 36, "doc_loaded_at": "2026-09-26T02:56:40.428744", "migration_html": "<p>对于运行 13.X 的用户，不需要执行导出/恢复。</p>\n<p>但是，如果使用 BRIN 索引，建议在更新后重建这些索引；请参阅下面的第二个变更条目。</p>\n<p>此外，如果是从早于 13.7 的版本升级，请参见<a href=\"/docs/13/release-13-7.html\" title=\"E.17. 发布版本 13.7\">第 E.17 节</a>。</p>", "compatibility_count": 0, "label": "13.12", "status_label": "历史版本", "eol": "2025-11-13", "age_days": 1147, "support_days": -321}, "groups": [{"date": "2023-08-10", "build": "13.12", "major": "13", "minor": 12, "manual": "13", "status": "stable", "doc_git": "", "version": "13.12", "eol_date": "2025-11-13", "date_text": "2023-08-10", "supported": false, "manual_url": "/docs/13/release-13-12.html", "source_url": "/docs/release/13.12/", "entry_count": 36, "placeholder": false, "content_hash": "45e16caf11e1b6447c8eb8742f36c2114201b04a404e2c7c05cce156110bf0dc", "manual_build": "13.23", "source_as_of": "", "changes_count": 36, "doc_loaded_at": "2026-09-26T02:56:40.428744", "migration_html": "<p>对于运行 13.X 的用户，不需要执行导出/恢复。</p>\n<p>但是，如果使用 BRIN 索引，建议在更新后重建这些索引；请参阅下面的第二个变更条目。</p>\n<p>此外，如果是从早于 13.7 的版本升级，请参见<a href=\"/docs/13/release-13-7.html\" title=\"E.17. 发布版本 13.7\">第 E.17 节</a>。</p>", "compatibility_count": 0, "label": "13.12", "status_label": "历史版本", "eol": "2025-11-13", "age_days": 1147, "support_days": -321, "entries": [{"id": "13.12-7e7794e398a17981", "cves": ["CVE-2023-39417"], "html": "<p>如果模式或所有者名称包含引号、反斜杠或美元符号，则不允许将其替换到扩展脚本中（Noah Misch）<a href=\"https://postgr.es/c/b1b585e0f\">§</a></p>\n<p>此限制可防止受信任的扩展中的 SQL 注入风险。</p>\n<p><span>PostgreSQL</span> 项目感谢 Micah Gates、Valerie Woolard、Tim Carey-Smith 和 Christoph Berg 报告此问题。（CVE-2023-39417）</p>", "text": "如果模式或所有者名称包含引号、反斜杠或美元符号，则不允许将其替换到扩展脚本中（Noah Misch）§ 此限制可防止受信任的扩展中的 SQL 注入风险。 PostgreSQL 项目感谢 Micah Gates、Valerie Woolard、Tim Carey-Smith 和 Christoph Berg 报告此问题。（CVE-2023-39417）", "title": "如果模式或所有者名称包含引号、反斜杠或美元符号，则不允许将其替换到扩展脚本中", "commits": ["b1b585e0f"], "section": "变更", "category": "security", "source_url": "/docs/release/13.12/#id-1.11.6.17.5", "source_hash": "69ad50af34ef26c34f193e9a628d1f7c11420ae1081e4fcb55c6705cb4e86904", "section_path": ["变更"], "commit_groups": [["919ebb023", "b1b585e0f", "cd5f2a357", "d4648a74b", "de494ec14", "eb044d8f0", "f53511010"]], "identity_text": "Disallow substituting a schema or owner name into an extension script if the name contains a quote, backslash, or dollar sign (Noah Misch) This restriction guards against SQL-injection hazards for trusted extensions. The PostgreSQL Project thanks Micah Gates, Valerie Woolard, Tim Carey-Smith, and Christoph Berg for reporting this problem. (CVE-2023-39417)", "commit_aliases": ["919ebb023", "b1b585e0f", "cd5f2a357", "d4648a74b", "de494ec14", "eb044d8f0", "f53511010"], "source_commits": ["b1b585e0f"], "source_entry_id": "13.12/changes/001", "db_id": "905f10b00c23d8b9f0aa97f3673fee9a", "patch_ids": ["d632a8310a44a1dd4482363722906e6f"], "statement_hash": "547bb828bb240e3feac6daf0dbbc30bca373c7b437959e2e15f19f38d18cdc81", "relations": [{"rule": 2, "type": "equivalent", "target": "5d760cb5505031c3afb75b8a5ded21c8", "evidence": {"same_day": true, "patch_ids": ["d632a8310a44a1dd4482363722906e6f"], "statement_hash": "547bb828bb240e3feac6daf0dbbc30bca373c7b437959e2e15f19f38d18cdc81"}}, {"rule": 2, "type": "equivalent", "target": "7fded6f9dac5a0280a2df87572e29a0d", "evidence": {"same_day": true, "patch_ids": ["d632a8310a44a1dd4482363722906e6f"], "statement_hash": "547bb828bb240e3feac6daf0dbbc30bca373c7b437959e2e15f19f38d18cdc81"}}, {"rule": 2, "type": "equivalent", "target": "afe8a3657968f46801b50925881578a5", "evidence": {"same_day": true, "patch_ids": ["d632a8310a44a1dd4482363722906e6f"]}}, {"rule": 2, "type": "equivalent", "target": "f94afefad5df63c780c9f2436c9d6dcf", "evidence": {"same_day": true, "patch_ids": ["d632a8310a44a1dd4482363722906e6f"], "statement_hash": "547bb828bb240e3feac6daf0dbbc30bca373c7b437959e2e15f19f38d18cdc81"}}], "version": "13.12", "category_label": "安全相关", "also_in": [], "variants": [], "related_changes": [{"db_id": "5d760cb5505031c3afb75b8a5ded21c8", "kind": "equivalent", "version": "15.4", "label": "15.4", "title": "如果模式或所有者名称包含引号、反斜杠或美元符号，则不允许将其替换到扩展脚本中", "evidence": {"same_day": true, "patch_ids": ["d632a8310a44a1dd4482363722906e6f"], "statement_hash": "547bb828bb240e3feac6daf0dbbc30bca373c7b437959e2e15f19f38d18cdc81"}, "url": "/docs/compare/?release=15.4#15.4-916b73de52ac811a", "source_url": "/docs/release/15.4/#ZH-AUTO-RELEASE-15-SECT2-28"}, {"db_id": "f94afefad5df63c780c9f2436c9d6dcf", "kind": "equivalent", "version": "14.9", "label": "14.9", "title": "如果模式或所有者名称包含引号、反斜杠或美元符号，则不允许将其替换到扩展脚本中", "evidence": {"same_day": true, "patch_ids": ["d632a8310a44a1dd4482363722906e6f"], "statement_hash": "547bb828bb240e3feac6daf0dbbc30bca373c7b437959e2e15f19f38d18cdc81"}, "url": "/docs/compare/?release=14.9#14.9-478a82e9fe36e0eb", "source_url": "/docs/release/14.9/#ZH-AUTO-RELEASE-14-SECT2-28"}, {"db_id": "7fded6f9dac5a0280a2df87572e29a0d", "kind": "equivalent", "version": "12.16", "label": "12.16", "title": "如果模式或所有者名称包含引号、反斜杠或美元符号，则不允许将其替换到扩展脚本中", "evidence": {"same_day": true, "patch_ids": ["d632a8310a44a1dd4482363722906e6f"], "statement_hash": "547bb828bb240e3feac6daf0dbbc30bca373c7b437959e2e15f19f38d18cdc81"}, "url": "/docs/compare/?release=12.16#12.16-9cd59e5c454decd6", "source_url": "/docs/release/12.16/#id-1.11.6.12.5"}, {"db_id": "afe8a3657968f46801b50925881578a5", "kind": "equivalent", "version": "11.21", "label": "11.21", "title": "如果模式或所有者名称包含引号、反斜杠或美元符号，则不允许将其替换到扩展脚本中", "evidence": {"same_day": true, "patch_ids": ["d632a8310a44a1dd4482363722906e6f"]}, "url": "/docs/compare/?release=11.21#11.21-8c203e10c4238e92", "source_url": "/docs/release/11.21/#id-1.11.6.6.6"}]}, {"id": "13.12-c689e131b36b73fd", "cves": [], "html": "<p>修复 BRIN 索引中空范围（无行）与全 NULL 范围之间的混淆，以及全 NULL 摘要的不正确合并（Tomas Vondra）<a href=\"https://postgr.es/c/6c512fc6e\">§</a> <a href=\"https://postgr.es/c/2b1ab28b9\">§</a></p>\n<p>这些疏忽都可能导致忘记某个 BRIN 索引范围包含 NULL 值，从而可能使后续应当返回 NULL 值的查询遗漏这些值。</p>\n<p>此修复本身不会纠正已有的错误 BRIN 条目。建议对任何可能用于搜索 NULL 值的 BRIN 索引执行 <code>REINDEX</code>。</p>", "text": "修复 BRIN 索引中空范围（无行）与全 NULL 范围之间的混淆，以及全 NULL 摘要的不正确合并（Tomas Vondra）§ § 这些疏忽都可能导致忘记某个 BRIN 索引范围包含 NULL 值，从而可能使后续应当返回 NULL 值的查询遗漏这些值。 此修复本身不会纠正已有的错误 BRIN 条目。建议对任何可能用于搜索 NULL 值的 BRIN 索引执行 REINDEX。", "title": "修复 BRIN 索引中空范围（无行）与全 NULL 范围之间的混淆，以及全 NULL 摘要的不正确合并", "commits": ["2b1ab28b9", "6c512fc6e"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/13.12/#id-1.11.6.17.5", "source_hash": "1210dd4872319541707396eb4fb7fcf3ab1ed171194e7b4700afdcf424b4c262", "section_path": ["变更"], "commit_groups": [["2b1ab28b9", "3ec8a3bfb", "3f1356e5d", "80f64b900", "b511d7323", "d42ffda68"], ["3581cbdcd", "40d465caf", "6c512fc6e", "d78a66d92", "e18769323", "fc7dc728d"]], "identity_text": "Fix confusion between empty (no rows) ranges and all-NULL ranges in BRIN indexes, as well as incorrect merging of all-NULL summaries (Tomas Vondra) Each of these oversights could result in forgetting that a BRIN index range contains any NULL values, potentially allowing subsequent queries that should return NULL values to miss doing so. This fix will not in itself correct faulty BRIN entries. It's recommended to REINDEX any BRIN indexes that may be used to search for nulls.", "commit_aliases": ["2b1ab28b9", "3581cbdcd", "3ec8a3bfb", "3f1356e5d", "40d465caf", "6c512fc6e", "80f64b900", "b511d7323", "d42ffda68", "d78a66d92", "e18769323", "fc7dc728d"], "source_commits": ["2b1ab28b9", "6c512fc6e"], "source_entry_id": "13.12/changes/002", "db_id": "11b6ba567136afc52b96368060d9eb27", "patch_ids": ["70439af6cb78988d1947cf69b8bf78c2", "d68a660acabb371022bbe16aaec1d3f1"], "statement_hash": "b7ca54d70850e1477128353afe1dddfb4d31f58e424300e25b68cd3d2d1330de", "relations": [{"rule": 2, "type": "equivalent", "target": "19135059bdecd2f32c93539aa1f3cfb6", "evidence": {"same_day": true, "patch_ids": ["70439af6cb78988d1947cf69b8bf78c2", "d68a660acabb371022bbe16aaec1d3f1"], "statement_hash": "b7ca54d70850e1477128353afe1dddfb4d31f58e424300e25b68cd3d2d1330de"}}, {"rule": 2, "type": "equivalent", "target": "7bc32e86e27a9d2d7da8107e0b7a7f09", "evidence": {"same_day": true, "patch_ids": ["70439af6cb78988d1947cf69b8bf78c2", "d68a660acabb371022bbe16aaec1d3f1"], "statement_hash": "b7ca54d70850e1477128353afe1dddfb4d31f58e424300e25b68cd3d2d1330de"}}, {"rule": 2, "type": "equivalent", "target": "9abc5f5a50d73214283c739d73f5cdfc", "evidence": {"same_day": true, "patch_ids": ["70439af6cb78988d1947cf69b8bf78c2", "d68a660acabb371022bbe16aaec1d3f1"], "statement_hash": "b7ca54d70850e1477128353afe1dddfb4d31f58e424300e25b68cd3d2d1330de"}}, {"rule": 2, "type": "equivalent", "target": "d3bb49eb1df29529b45d0319f7795c1c", "evidence": {"same_day": true, "patch_ids": ["70439af6cb78988d1947cf69b8bf78c2", "d68a660acabb371022bbe16aaec1d3f1"], "statement_hash": "b7ca54d70850e1477128353afe1dddfb4d31f58e424300e25b68cd3d2d1330de"}}], "version": "13.12", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "9abc5f5a50d73214283c739d73f5cdfc", "kind": "equivalent", "version": "15.4", "label": "15.4", "title": "修复 BRIN 索引中空范围（无行）和全 NULL 范围的混淆，以及全 NULL 摘要的错误合并", "evidence": {"same_day": true, "patch_ids": ["70439af6cb78988d1947cf69b8bf78c2", "d68a660acabb371022bbe16aaec1d3f1"], "statement_hash": "b7ca54d70850e1477128353afe1dddfb4d31f58e424300e25b68cd3d2d1330de"}, "url": "/docs/compare/?release=15.4#15.4-ea955f29ecf4775a", "source_url": "/docs/release/15.4/#ZH-AUTO-RELEASE-15-SECT2-28"}, {"db_id": "7bc32e86e27a9d2d7da8107e0b7a7f09", "kind": "equivalent", "version": "14.9", "label": "14.9", "title": "修复 BRIN 索引中空范围（无行）和全 NULL 范围的混淆，以及全 NULL 摘要的错误合并", "evidence": {"same_day": true, "patch_ids": ["70439af6cb78988d1947cf69b8bf78c2", "d68a660acabb371022bbe16aaec1d3f1"], "statement_hash": "b7ca54d70850e1477128353afe1dddfb4d31f58e424300e25b68cd3d2d1330de"}, "url": "/docs/compare/?release=14.9#14.9-ea955f29ecf4775a", "source_url": "/docs/release/14.9/#ZH-AUTO-RELEASE-14-SECT2-28"}, {"db_id": "d3bb49eb1df29529b45d0319f7795c1c", "kind": "equivalent", "version": "12.16", "label": "12.16", "title": "修复 BRIN 索引中空范围（无行）与全 NULL 范围之间的混淆，以及全 NULL 摘要的不正确合并", "evidence": {"same_day": true, "patch_ids": ["70439af6cb78988d1947cf69b8bf78c2", "d68a660acabb371022bbe16aaec1d3f1"], "statement_hash": "b7ca54d70850e1477128353afe1dddfb4d31f58e424300e25b68cd3d2d1330de"}, "url": "/docs/compare/?release=12.16#12.16-4b47fe48c28b6057", "source_url": "/docs/release/12.16/#id-1.11.6.12.5"}, {"db_id": "19135059bdecd2f32c93539aa1f3cfb6", "kind": "equivalent", "version": "11.21", "label": "11.21", "title": "修复 BRIN 索引中空范围（无行）与全 NULL 范围之间的混淆，以及全 NULL 摘要的不正确合并", "evidence": {"same_day": true, "patch_ids": ["70439af6cb78988d1947cf69b8bf78c2", "d68a660acabb371022bbe16aaec1d3f1"], "statement_hash": "b7ca54d70850e1477128353afe1dddfb4d31f58e424300e25b68cd3d2d1330de"}, "url": "/docs/compare/?release=11.21#11.21-6c1d35e36647aa7b", "source_url": "/docs/release/11.21/#id-1.11.6.6.6"}]}, {"id": "13.12-ad34fa4802d33508", "cves": [], "html": "<p>避免在 <code>DROP DATABASE</code> 被中断时留下损坏的数据库（Andres Freund）<a href=\"https://postgr.es/c/81ce00006\">§</a></p>\n<p>如果 <code>DROP DATABASE</code> 在已开始执行不可逆步骤之后被中断，目标数据库仍然可以访问（因为其 <code>pg_database</code> 行的移除会被回滚），但其内容已损坏。修复方法是在开始执行不可逆操作之前将数据库标记为不可访问。此后的失败将使数据库仍部分存在，但除了再次执行 <code>DROP DATABASE</code> 之外无法对其进行任何操作。</p>", "text": "避免在 DROP DATABASE 被中断时留下损坏的数据库（Andres Freund）§ 如果 DROP DATABASE 在已开始执行不可逆步骤之后被中断，目标数据库仍然可以访问（因为其 pg_database 行的移除会被回滚），但其内容已损坏。修复方法是在开始执行不可逆操作之前将数据库标记为不可访问。此后的失败将使数据库仍部分存在，但除了再次执行 DROP DATABASE 之外无法对其进行任何操作。", "title": "避免在 DROP DATABASE 被中断时留下损坏的数据库", "commits": ["81ce00006"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/13.12/#id-1.11.6.17.5", "source_hash": "5ac02893b5175b259f879ba983bff5786f161a649d0c832eb0f3a46bff2f1300", "section_path": ["变更"], "commit_groups": [["034a9fcd2", "1c38e7ae1", "81ce00006", "a4b4cc1d6", "c66a7d75e", "d11efe830", "f66403749"]], "identity_text": "Avoid leaving a corrupted database behind when DROP DATABASE is interrupted (Andres Freund) If DROP DATABASE was interrupted after it had already begun taking irreversible steps, the target database remained accessible (because the removal of its pg_database row would roll back), but it would have corrupt contents. Fix by marking the database as inaccessible before we begin to perform irreversible operations. A failure after that will leave the database still partially present, but nothing can be done with it except to issue another DROP DATABASE.", "commit_aliases": ["034a9fcd2", "1c38e7ae1", "81ce00006", "a4b4cc1d6", "c66a7d75e", "d11efe830", "f66403749"], "source_commits": ["81ce00006"], "source_entry_id": "13.12/changes/003", "db_id": "9caa5f4d628412099082fd1319969991", "patch_ids": ["1e9c51fdf4b43d9b8ae625cf8df11bc9"], "statement_hash": "0bdf1323b15ffee7eacc4e858004565cb6eecca5b364aabb764018a25447bd33", "relations": [{"rule": 2, "type": "equivalent", "target": "352fb8fef4990f2385a9f9b77ace3a6e", "evidence": {"same_day": true, "patch_ids": ["1e9c51fdf4b43d9b8ae625cf8df11bc9"], "statement_hash": "0bdf1323b15ffee7eacc4e858004565cb6eecca5b364aabb764018a25447bd33"}}, {"rule": 2, "type": "equivalent", "target": "4e5e78a8ac4b3ad2d8ca8b4df3520288", "evidence": {"same_day": true, "patch_ids": ["1e9c51fdf4b43d9b8ae625cf8df11bc9"], "statement_hash": "0bdf1323b15ffee7eacc4e858004565cb6eecca5b364aabb764018a25447bd33"}}, {"rule": 2, "type": "equivalent", "target": "d10b4e72de56a8c53ce083837e2ffd72", "evidence": {"same_day": true, "patch_ids": ["1e9c51fdf4b43d9b8ae625cf8df11bc9"], "statement_hash": "0bdf1323b15ffee7eacc4e858004565cb6eecca5b364aabb764018a25447bd33"}}, {"rule": 2, "type": "equivalent", "target": "f598fe4bfadb4f9b45ea0afd89a43b41", "evidence": {"same_day": true, "patch_ids": ["1e9c51fdf4b43d9b8ae625cf8df11bc9"], "statement_hash": "0bdf1323b15ffee7eacc4e858004565cb6eecca5b364aabb764018a25447bd33"}}], "version": "13.12", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "4e5e78a8ac4b3ad2d8ca8b4df3520288", "kind": "equivalent", "version": "15.4", "label": "15.4", "title": "避免在 DROP DATABASE 被中断时留下损坏的数据库", "evidence": {"same_day": true, "patch_ids": ["1e9c51fdf4b43d9b8ae625cf8df11bc9"], "statement_hash": "0bdf1323b15ffee7eacc4e858004565cb6eecca5b364aabb764018a25447bd33"}, "url": "/docs/compare/?release=15.4#15.4-a9627164d90bab31", "source_url": "/docs/release/15.4/#ZH-AUTO-RELEASE-15-SECT2-28"}, {"db_id": "352fb8fef4990f2385a9f9b77ace3a6e", "kind": "equivalent", "version": "14.9", "label": "14.9", "title": "避免在 DROP DATABASE 被中断时留下损坏的数据库", "evidence": {"same_day": true, "patch_ids": ["1e9c51fdf4b43d9b8ae625cf8df11bc9"], "statement_hash": "0bdf1323b15ffee7eacc4e858004565cb6eecca5b364aabb764018a25447bd33"}, "url": "/docs/compare/?release=14.9#14.9-e4f9b891f851d9b6", "source_url": "/docs/release/14.9/#ZH-AUTO-RELEASE-14-SECT2-28"}, {"db_id": "f598fe4bfadb4f9b45ea0afd89a43b41", "kind": "equivalent", "version": "12.16", "label": "12.16", "title": "避免在 DROP DATABASE 被中断时留下损坏的数据库", "evidence": {"same_day": true, "patch_ids": ["1e9c51fdf4b43d9b8ae625cf8df11bc9"], "statement_hash": "0bdf1323b15ffee7eacc4e858004565cb6eecca5b364aabb764018a25447bd33"}, "url": "/docs/compare/?release=12.16#12.16-a380f83a6d26b264", "source_url": "/docs/release/12.16/#id-1.11.6.12.5"}, {"db_id": "d10b4e72de56a8c53ce083837e2ffd72", "kind": "equivalent", "version": "11.21", "label": "11.21", "title": "避免在 DROP DATABASE 被中断时留下损坏的数据库", "evidence": {"same_day": true, "patch_ids": ["1e9c51fdf4b43d9b8ae625cf8df11bc9"], "statement_hash": "0bdf1323b15ffee7eacc4e858004565cb6eecca5b364aabb764018a25447bd33"}, "url": "/docs/compare/?release=11.21#11.21-bef2b2bf93857f6e", "source_url": "/docs/release/11.21/#id-1.11.6.6.6"}]}, {"id": "13.12-c4b4f1d4dd9ef0db", "cves": [], "html": "<p>确保分区索引在创建时被正确标记为有效或无效（Michael Paquier）<a href=\"https://postgr.es/c/537b70b82\">§</a></p>\n<p>如果新建的分区索引匹配某个分区上已有但无效的索引，该分区索引可能会被过早地标记为有效。这可能导致后续对分区表的查询出现异常行为或断言失败。</p>", "text": "确保分区索引在创建时被正确标记为有效或无效（Michael Paquier）§ 如果新建的分区索引匹配某个分区上已有但无效的索引，该分区索引可能会被过早地标记为有效。这可能导致后续对分区表的查询出现异常行为或断言失败。", "title": "确保分区索引在创建时被正确标记为有效或无效", "commits": ["537b70b82"], "section": "变更", "category": "improvement", "source_url": "/docs/release/13.12/#id-1.11.6.17.5", "source_hash": "364b8bf3592b5462541027c171bee3eb746f7744693bad36d9783345f072b384", "section_path": ["变更"], "commit_groups": [["537b70b82", "663b35f2d", "c75c33de5", "cb4ac3e56", "cfc43aeb3", "dbe0e5c56", "f4691e2e7"]], "identity_text": "Ensure that partitioned indexes are correctly marked as valid or not at creation (Michael Paquier) If a new partitioned index matches an existing but invalid index on one of the partitions, the partitioned index could end up being marked valid prematurely. This could lead to misbehavior or assertion failures in subsequent queries on the partitioned table.", "commit_aliases": ["537b70b82", "663b35f2d", "c75c33de5", "cb4ac3e56", "cfc43aeb3", "dbe0e5c56", "f4691e2e7"], "source_commits": ["537b70b82"], "source_entry_id": "13.12/changes/004", "db_id": "1f01376cbd13df07e7393a69cb30a5e1", "patch_ids": ["405c2d4e234b31dfd4a7fc2992f60ed5"], "statement_hash": "9e2b4dbad7d2d414bced58ea1c65258c434cb6df96396fc0dc070e473c8fdfc5", "relations": [{"rule": 2, "type": "equivalent", "target": "2f1cce71fd84f222666907eaacdbb824", "evidence": {"same_day": true, "patch_ids": ["405c2d4e234b31dfd4a7fc2992f60ed5"], "statement_hash": "9e2b4dbad7d2d414bced58ea1c65258c434cb6df96396fc0dc070e473c8fdfc5"}}, {"rule": 2, "type": "equivalent", "target": "72f9ee8a450e0fdabc5e0a6068bcd637", "evidence": {"same_day": true, "patch_ids": ["405c2d4e234b31dfd4a7fc2992f60ed5"], "statement_hash": "9e2b4dbad7d2d414bced58ea1c65258c434cb6df96396fc0dc070e473c8fdfc5"}}, {"rule": 2, "type": "equivalent", "target": "a6cb1831d983730abc579974f5ffd62e", "evidence": {"same_day": true, "patch_ids": ["405c2d4e234b31dfd4a7fc2992f60ed5"], "statement_hash": "9e2b4dbad7d2d414bced58ea1c65258c434cb6df96396fc0dc070e473c8fdfc5"}}, {"rule": 2, "type": "equivalent", "target": "b516a54d78d9a8327ab9f743eee9c4ce", "evidence": {"same_day": true, "patch_ids": ["405c2d4e234b31dfd4a7fc2992f60ed5"], "statement_hash": "9e2b4dbad7d2d414bced58ea1c65258c434cb6df96396fc0dc070e473c8fdfc5"}}], "version": "13.12", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "2f1cce71fd84f222666907eaacdbb824", "kind": "equivalent", "version": "15.4", "label": "15.4", "title": "确保分区索引在创建时被正确标记为有效或无效", "evidence": {"same_day": true, "patch_ids": ["405c2d4e234b31dfd4a7fc2992f60ed5"], "statement_hash": "9e2b4dbad7d2d414bced58ea1c65258c434cb6df96396fc0dc070e473c8fdfc5"}, "url": "/docs/compare/?release=15.4#15.4-e17ec11ac9f95ac0", "source_url": "/docs/release/15.4/#ZH-AUTO-RELEASE-15-SECT2-28"}, {"db_id": "72f9ee8a450e0fdabc5e0a6068bcd637", "kind": "equivalent", "version": "14.9", "label": "14.9", "title": "确保分区索引在创建时被正确标记为有效或无效", "evidence": {"same_day": true, "patch_ids": ["405c2d4e234b31dfd4a7fc2992f60ed5"], "statement_hash": "9e2b4dbad7d2d414bced58ea1c65258c434cb6df96396fc0dc070e473c8fdfc5"}, "url": "/docs/compare/?release=14.9#14.9-23391a495c14e78b", "source_url": "/docs/release/14.9/#ZH-AUTO-RELEASE-14-SECT2-28"}, {"db_id": "b516a54d78d9a8327ab9f743eee9c4ce", "kind": "equivalent", "version": "12.16", "label": "12.16", "title": "确保分区索引在创建时被正确标记为有效或无效", "evidence": {"same_day": true, "patch_ids": ["405c2d4e234b31dfd4a7fc2992f60ed5"], "statement_hash": "9e2b4dbad7d2d414bced58ea1c65258c434cb6df96396fc0dc070e473c8fdfc5"}, "url": "/docs/compare/?release=12.16#12.16-664a9c6409fbba88", "source_url": "/docs/release/12.16/#id-1.11.6.12.5"}, {"db_id": "a6cb1831d983730abc579974f5ffd62e", "kind": "equivalent", "version": "11.21", "label": "11.21", "title": "确保分区索引在创建时被正确标记为有效或无效", "evidence": {"same_day": true, "patch_ids": ["405c2d4e234b31dfd4a7fc2992f60ed5"], "statement_hash": "9e2b4dbad7d2d414bced58ea1c65258c434cb6df96396fc0dc070e473c8fdfc5"}, "url": "/docs/compare/?release=11.21#11.21-8600613dcf81b9ee", "source_url": "/docs/release/11.21/#id-1.11.6.6.6"}]}, {"id": "13.12-91adcf03c9da47e9", "cves": [], "html": "<p>在 <code>ALTER TABLE ATTACH PARTITION</code> 将分区索引匹配到子索引时忽略无效的子索引（Michael Paquier）<a href=\"https://postgr.es/c/f42844069\">§</a></p>\n<p>这样的索引现在会被忽略，转而创建新的子索引。</p>", "text": "在 ALTER TABLE ATTACH PARTITION 将分区索引匹配到子索引时忽略无效的子索引（Michael Paquier）§ 这样的索引现在会被忽略，转而创建新的子索引。", "title": "在 ALTER TABLE ATTACH PARTITION 将分区索引匹配到子索引时忽略无效的子索引", "commits": ["f42844069"], "section": "变更", "category": "improvement", "source_url": "/docs/release/13.12/#id-1.11.6.17.5", "source_hash": "390bc044f7695758baf1ebafa0be86e95dc9ade5fecfe0cb0b3916a49faeabda", "section_path": ["变更"], "commit_groups": [["6160e221d", "63b292e73", "7aa17b498", "e90e9275f", "f42844069", "fc55c7ff8"]], "identity_text": "Ignore invalid child indexes when matching partitioned indexes to child indexes during ALTER TABLE ATTACH PARTITION (Michael Paquier) Such an index will now be ignored, and a new child index created instead.", "commit_aliases": ["6160e221d", "63b292e73", "7aa17b498", "e90e9275f", "f42844069", "fc55c7ff8"], "source_commits": ["f42844069"], "source_entry_id": "13.12/changes/005", "db_id": "5303d949e3f9f743f72e15618d9ffb24", "patch_ids": ["5b5839b1d237da8a07382b2aad037025"], "statement_hash": "7e35e6978bcc5ff4df37fdb281dff58beebefdaa3550ecf671c4829f881c6034", "relations": [{"rule": 2, "type": "equivalent", "target": "19451ab9ffe34b7e1c649628113d80c9", "evidence": {"same_day": true, "patch_ids": ["5b5839b1d237da8a07382b2aad037025"], "statement_hash": "7e35e6978bcc5ff4df37fdb281dff58beebefdaa3550ecf671c4829f881c6034"}}, {"rule": 2, "type": "equivalent", "target": "7db3a9e4fe3552005d5e3c4b3e85cc1e", "evidence": {"same_day": true, "patch_ids": ["5b5839b1d237da8a07382b2aad037025"], "statement_hash": "7e35e6978bcc5ff4df37fdb281dff58beebefdaa3550ecf671c4829f881c6034"}}, {"rule": 2, "type": "equivalent", "target": "b6be61b317cd1c448068d218b2e2f3cf", "evidence": {"same_day": true, "patch_ids": ["5b5839b1d237da8a07382b2aad037025"], "statement_hash": "7e35e6978bcc5ff4df37fdb281dff58beebefdaa3550ecf671c4829f881c6034"}}, {"rule": 2, "type": "equivalent", "target": "f5b368ba16a4295aae7c91549f6528dc", "evidence": {"same_day": true, "patch_ids": ["5b5839b1d237da8a07382b2aad037025"], "statement_hash": "7e35e6978bcc5ff4df37fdb281dff58beebefdaa3550ecf671c4829f881c6034"}}], "version": "13.12", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "7db3a9e4fe3552005d5e3c4b3e85cc1e", "kind": "equivalent", "version": "15.4", "label": "15.4", "title": "在 ALTER TABLE ATTACH PARTITION 期间将分区索引与子索引匹配时忽略无效的子索引", "evidence": {"same_day": true, "patch_ids": ["5b5839b1d237da8a07382b2aad037025"], "statement_hash": "7e35e6978bcc5ff4df37fdb281dff58beebefdaa3550ecf671c4829f881c6034"}, "url": "/docs/compare/?release=15.4#15.4-1711c42d22b89f72", "source_url": "/docs/release/15.4/#ZH-AUTO-RELEASE-15-SECT2-28"}, {"db_id": "19451ab9ffe34b7e1c649628113d80c9", "kind": "equivalent", "version": "14.9", "label": "14.9", "title": "在 ALTER TABLE ATTACH PARTITION 期间将分区索引与子索引匹配时忽略无效的子索引", "evidence": {"same_day": true, "patch_ids": ["5b5839b1d237da8a07382b2aad037025"], "statement_hash": "7e35e6978bcc5ff4df37fdb281dff58beebefdaa3550ecf671c4829f881c6034"}, "url": "/docs/compare/?release=14.9#14.9-1711c42d22b89f72", "source_url": "/docs/release/14.9/#ZH-AUTO-RELEASE-14-SECT2-28"}, {"db_id": "b6be61b317cd1c448068d218b2e2f3cf", "kind": "equivalent", "version": "12.16", "label": "12.16", "title": "在 ALTER TABLE ATTACH PARTITION 将分区索引匹配到子索引时忽略无效的子索引", "evidence": {"same_day": true, "patch_ids": ["5b5839b1d237da8a07382b2aad037025"], "statement_hash": "7e35e6978bcc5ff4df37fdb281dff58beebefdaa3550ecf671c4829f881c6034"}, "url": "/docs/compare/?release=12.16#12.16-d49485ee25fe1c37", "source_url": "/docs/release/12.16/#id-1.11.6.12.5"}, {"db_id": "f5b368ba16a4295aae7c91549f6528dc", "kind": "equivalent", "version": "11.21", "label": "11.21", "title": "在 ALTER TABLE ATTACH PARTITION 将分区索引匹配到子索引时忽略无效的子索引", "evidence": {"same_day": true, "patch_ids": ["5b5839b1d237da8a07382b2aad037025"], "statement_hash": "7e35e6978bcc5ff4df37fdb281dff58beebefdaa3550ecf671c4829f881c6034"}, "url": "/docs/compare/?release=11.21#11.21-407977fe674b9fb7", "source_url": "/docs/release/11.21/#id-1.11.6.6.6"}]}, {"id": "13.12-4e10fd48a6e44c56", "cves": [], "html": "<p>修复在所有分区都已附加后将分区索引标记为有效时可能出现的失败（Michael Paquier）<a href=\"https://postgr.es/c/c89d74c18\">§</a></p>\n<p>更新索引的 <code>pg_index</code> 条目时可能对其他列使用了过期的数据。报告的一个症状是 <span>“<span>attempted to update invisible tuple</span>”</span> 错误。</p>", "text": "修复在所有分区都已附加后将分区索引标记为有效时可能出现的失败（Michael Paquier）§ 更新索引的 pg_index 条目时可能对其他列使用了过期的数据。报告的一个症状是 “attempted to update invisible tuple” 错误。", "title": "修复在所有分区都已附加后将分区索引标记为有效时可能出现的失败", "commits": ["c89d74c18"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/13.12/#id-1.11.6.17.5", "source_hash": "445292f34521f0d61e08b50d60900e8f48d63b499c1ba3b4d6aed66a9328a2b9", "section_path": ["变更"], "commit_groups": [["31f9d41d6", "38ea6aa90", "954cc2139", "c0dc97c7b", "c89d74c18", "ed2b58c15", "f1d6bcdd8"]], "identity_text": "Fix possible failure when marking a partitioned index valid after all of its partitions have been attached (Michael Paquier) The update of the index's pg_index entry could use stale data for other columns. One reported symptom is an attempted to update invisible tuple error.", "commit_aliases": ["31f9d41d6", "38ea6aa90", "954cc2139", "c0dc97c7b", "c89d74c18", "ed2b58c15", "f1d6bcdd8"], "source_commits": ["c89d74c18"], "source_entry_id": "13.12/changes/006", "db_id": "d50f495c4e556ab483bc7ede7963c4df", "patch_ids": ["0839789bad3ba5e157fcbac6af6991f9"], "statement_hash": "39ecebc872c0e01d20f0d17c8b07b5bbdc28d6ddc4d2b8217ce24d51bb6e321f", "relations": [{"rule": 2, "type": "equivalent", "target": "1ded5ac25852df0466006b18182129d0", "evidence": {"same_day": true, "patch_ids": ["0839789bad3ba5e157fcbac6af6991f9"], "statement_hash": "39ecebc872c0e01d20f0d17c8b07b5bbdc28d6ddc4d2b8217ce24d51bb6e321f"}}, {"rule": 2, "type": "equivalent", "target": "595b19fa6c4adc4d0debb0ebfc3fcb8a", "evidence": {"same_day": true, "patch_ids": ["0839789bad3ba5e157fcbac6af6991f9"], "statement_hash": "39ecebc872c0e01d20f0d17c8b07b5bbdc28d6ddc4d2b8217ce24d51bb6e321f"}}, {"rule": 2, "type": "equivalent", "target": "5af2b222a4f40b592bc17f8629d7d7a6", "evidence": {"same_day": true, "patch_ids": ["0839789bad3ba5e157fcbac6af6991f9"], "statement_hash": "39ecebc872c0e01d20f0d17c8b07b5bbdc28d6ddc4d2b8217ce24d51bb6e321f"}}, {"rule": 2, "type": "equivalent", "target": "bb2aa5462487d25330c6fd6aa3a214ce", "evidence": {"same_day": true, "patch_ids": ["0839789bad3ba5e157fcbac6af6991f9"], "statement_hash": "39ecebc872c0e01d20f0d17c8b07b5bbdc28d6ddc4d2b8217ce24d51bb6e321f"}}], "version": "13.12", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "bb2aa5462487d25330c6fd6aa3a214ce", "kind": "equivalent", "version": "15.4", "label": "15.4", "title": "修复在所有分区都已附加后将分区索引标记为有效时可能出现的失败", "evidence": {"same_day": true, "patch_ids": ["0839789bad3ba5e157fcbac6af6991f9"], "statement_hash": "39ecebc872c0e01d20f0d17c8b07b5bbdc28d6ddc4d2b8217ce24d51bb6e321f"}, "url": "/docs/compare/?release=15.4#15.4-4c4abb957905e6a9", "source_url": "/docs/release/15.4/#ZH-AUTO-RELEASE-15-SECT2-28"}, {"db_id": "5af2b222a4f40b592bc17f8629d7d7a6", "kind": "equivalent", "version": "14.9", "label": "14.9", "title": "修复在所有分区都已附加后将分区索引标记为有效时可能出现的失败", "evidence": {"same_day": true, "patch_ids": ["0839789bad3ba5e157fcbac6af6991f9"], "statement_hash": "39ecebc872c0e01d20f0d17c8b07b5bbdc28d6ddc4d2b8217ce24d51bb6e321f"}, "url": "/docs/compare/?release=14.9#14.9-5249d06862a30ab4", "source_url": "/docs/release/14.9/#ZH-AUTO-RELEASE-14-SECT2-28"}, {"db_id": "595b19fa6c4adc4d0debb0ebfc3fcb8a", "kind": "equivalent", "version": "12.16", "label": "12.16", "title": "修复在所有分区都已附加后将分区索引标记为有效时可能出现的失败", "evidence": {"same_day": true, "patch_ids": ["0839789bad3ba5e157fcbac6af6991f9"], "statement_hash": "39ecebc872c0e01d20f0d17c8b07b5bbdc28d6ddc4d2b8217ce24d51bb6e321f"}, "url": "/docs/compare/?release=12.16#12.16-1c1cef03e6a0caa5", "source_url": "/docs/release/12.16/#id-1.11.6.12.5"}, {"db_id": "1ded5ac25852df0466006b18182129d0", "kind": "equivalent", "version": "11.21", "label": "11.21", "title": "修复在所有分区都已附加后将分区索引标记为有效时可能出现的失败", "evidence": {"same_day": true, "patch_ids": ["0839789bad3ba5e157fcbac6af6991f9"], "statement_hash": "39ecebc872c0e01d20f0d17c8b07b5bbdc28d6ddc4d2b8217ce24d51bb6e321f"}, "url": "/docs/compare/?release=11.21#11.21-9a5c58cdf560e1b9", "source_url": "/docs/release/11.21/#id-1.11.6.6.6"}]}, {"id": "13.12-29d076668929da6a", "cves": [], "html": "<p>修复 <code>ALTER EXTENSION SET SCHEMA</code>，使其在扩展包含扩展模式之外的对象时报告错误（Michael Paquier，Heikki Linnakangas）<a href=\"https://postgr.es/c/f5b075adc\">§</a></p>\n<p>当扩展包含多个模式中的对象时报告错误一直是预期行为；但检查逻辑编写有误，未能检测到某些情况，导致令人意外的行为。</p>", "text": "修复 ALTER EXTENSION SET SCHEMA，使其在扩展包含扩展模式之外的对象时报告错误（Michael Paquier，Heikki Linnakangas）§ 当扩展包含多个模式中的对象时报告错误一直是预期行为；但检查逻辑编写有误，未能检测到某些情况，导致令人意外的行为。", "title": "修复 ALTER EXTENSION SET SCHEMA，使其在扩展包含扩展模式之外的对象时报告错误", "commits": ["f5b075adc"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/13.12/#id-1.11.6.17.5", "source_hash": "6343ec879f8982d6d67f7b3a3d45196e6ff99bd7408a89302b9e9a9b3d306a81", "section_path": ["变更"], "commit_groups": [["02021f1b2", "235e716bc", "55c95f24c", "914e72e6e", "bd5ddbe86", "d1e0f408c", "f5b075adc"]], "identity_text": "Fix ALTER EXTENSION SET SCHEMA to complain if the extension contains any objects outside the extension's schema (Michael Paquier, Heikki Linnakangas) Erroring out if the extension contains objects in multiple schemas was always intended; but the check was mis-coded so that it would fail to detect some cases, leading to surprising behavior.", "commit_aliases": ["02021f1b2", "235e716bc", "55c95f24c", "914e72e6e", "bd5ddbe86", "d1e0f408c", "f5b075adc"], "source_commits": ["f5b075adc"], "source_entry_id": "13.12/changes/007", "db_id": "e172161639ea39f4315e46286124faea", "patch_ids": ["255d1f262a67d01dfc640fced2f0037d"], "statement_hash": "dbd71d5eaf563dab6a26fb79e6a94b5340c9294ffe5c77afd92769eb3bdf1389", "relations": [{"rule": 2, "type": "equivalent", "target": "de8bad652152a2517920f970a3e432ff", "evidence": {"same_day": true, "patch_ids": ["255d1f262a67d01dfc640fced2f0037d"], "statement_hash": "dbd71d5eaf563dab6a26fb79e6a94b5340c9294ffe5c77afd92769eb3bdf1389"}}, {"rule": 2, "type": "equivalent", "target": "e0dceed4a03e1ebf0bc0e405f121201f", "evidence": {"same_day": true, "patch_ids": ["255d1f262a67d01dfc640fced2f0037d"], "statement_hash": "dbd71d5eaf563dab6a26fb79e6a94b5340c9294ffe5c77afd92769eb3bdf1389"}}, {"rule": 2, "type": "equivalent", "target": "ee572e2e78f4e94453e5a2c0d05c2787", "evidence": {"same_day": true, "patch_ids": ["255d1f262a67d01dfc640fced2f0037d"], "statement_hash": "dbd71d5eaf563dab6a26fb79e6a94b5340c9294ffe5c77afd92769eb3bdf1389"}}, {"rule": 2, "type": "equivalent", "target": "f5a835497f9cfa508c293c67a80f1816", "evidence": {"same_day": true, "patch_ids": ["255d1f262a67d01dfc640fced2f0037d"], "statement_hash": "dbd71d5eaf563dab6a26fb79e6a94b5340c9294ffe5c77afd92769eb3bdf1389"}}], "version": "13.12", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "ee572e2e78f4e94453e5a2c0d05c2787", "kind": "equivalent", "version": "15.4", "label": "15.4", "title": "修复 ALTER EXTENSION SET SCHEMA，使其在扩展包含扩展模式之外的对象时报告错误", "evidence": {"same_day": true, "patch_ids": ["255d1f262a67d01dfc640fced2f0037d"], "statement_hash": "dbd71d5eaf563dab6a26fb79e6a94b5340c9294ffe5c77afd92769eb3bdf1389"}, "url": "/docs/compare/?release=15.4#15.4-54bad1819c5bb381", "source_url": "/docs/release/15.4/#ZH-AUTO-RELEASE-15-SECT2-28"}, {"db_id": "e0dceed4a03e1ebf0bc0e405f121201f", "kind": "equivalent", "version": "14.9", "label": "14.9", "title": "修复 ALTER EXTENSION SET SCHEMA，使其在扩展包含扩展模式之外的对象时报告错误", "evidence": {"same_day": true, "patch_ids": ["255d1f262a67d01dfc640fced2f0037d"], "statement_hash": "dbd71d5eaf563dab6a26fb79e6a94b5340c9294ffe5c77afd92769eb3bdf1389"}, "url": "/docs/compare/?release=14.9#14.9-fe4dce7bdf393bae", "source_url": "/docs/release/14.9/#ZH-AUTO-RELEASE-14-SECT2-28"}, {"db_id": "f5a835497f9cfa508c293c67a80f1816", "kind": "equivalent", "version": "12.16", "label": "12.16", "title": "修复 ALTER EXTENSION SET SCHEMA，使其在扩展包含扩展模式之外的对象时报告错误", "evidence": {"same_day": true, "patch_ids": ["255d1f262a67d01dfc640fced2f0037d"], "statement_hash": "dbd71d5eaf563dab6a26fb79e6a94b5340c9294ffe5c77afd92769eb3bdf1389"}, "url": "/docs/compare/?release=12.16#12.16-72554a2aa1e7909d", "source_url": "/docs/release/12.16/#id-1.11.6.12.5"}, {"db_id": "de8bad652152a2517920f970a3e432ff", "kind": "equivalent", "version": "11.21", "label": "11.21", "title": "修复 ALTER EXTENSION SET SCHEMA，使其在扩展包含扩展模式之外的对象时报告错误", "evidence": {"same_day": true, "patch_ids": ["255d1f262a67d01dfc640fced2f0037d"], "statement_hash": "dbd71d5eaf563dab6a26fb79e6a94b5340c9294ffe5c77afd92769eb3bdf1389"}, "url": "/docs/compare/?release=11.21#11.21-04180192a3d944be", "source_url": "/docs/release/11.21/#id-1.11.6.6.6"}]}, {"id": "13.12-5438b35bbfdcd1c0", "cves": [], "html": "<p>不要在规划器中使用部分唯一索引进行唯一性证明（David Rowley）<a href=\"https://postgr.es/c/06286f8a2\">§</a></p>\n<p>这可能产生不正确的计划，因为如果相关索引未用于扫描表，则从表中读取的行的假定唯一性可能不成立。</p>", "text": "不要在规划器中使用部分唯一索引进行唯一性证明（David Rowley）§ 这可能产生不正确的计划，因为如果相关索引未用于扫描表，则从表中读取的行的假定唯一性可能不成立。", "title": "不要在规划器中使用部分唯一索引进行唯一性证明", "commits": ["06286f8a2"], "section": "变更", "category": "improvement", "source_url": "/docs/release/13.12/#id-1.11.6.17.5", "source_hash": "3c3d098977f8e87ef6ab0dbec9ba145afb203ad6d305ff8635f09a535a3aaa23", "section_path": ["变更"], "commit_groups": [["06286f8a2", "73f1c17fc", "7fcd7ef2a", "8f2ec8cc7", "dcef5b052", "f6345f03f"]], "identity_text": "Don't use partial unique indexes for uniqueness proofs in the planner (David Rowley) This could give rise to incorrect plans, since the presumed uniqueness of rows read from a table might not hold if the index in question isn't used to scan the table.", "commit_aliases": ["06286f8a2", "73f1c17fc", "7fcd7ef2a", "8f2ec8cc7", "dcef5b052", "f6345f03f"], "source_commits": ["06286f8a2"], "source_entry_id": "13.12/changes/008", "db_id": "98cf114994cd59d18c8227e4df5bfac1", "patch_ids": ["5afba1ce4cc69cc7e323fb1344fef312"], "statement_hash": "9ad02600c88cc5bc08a077a3c14df97ff15c1de9cf28c99c027dfdd631004db1", "relations": [{"rule": 2, "type": "equivalent", "target": "349d7f9017aaf8b9256d64ef6816ab78", "evidence": {"same_day": true, "patch_ids": ["5afba1ce4cc69cc7e323fb1344fef312"], "statement_hash": "9ad02600c88cc5bc08a077a3c14df97ff15c1de9cf28c99c027dfdd631004db1"}}, {"rule": 2, "type": "equivalent", "target": "366547fc23d4fc6b1e42aa62a1328f90", "evidence": {"same_day": true, "patch_ids": ["5afba1ce4cc69cc7e323fb1344fef312"], "statement_hash": "9ad02600c88cc5bc08a077a3c14df97ff15c1de9cf28c99c027dfdd631004db1"}}, {"rule": 2, "type": "equivalent", "target": "cc2306529c3a6971c1b90c20685a73c2", "evidence": {"same_day": true, "patch_ids": ["5afba1ce4cc69cc7e323fb1344fef312"], "statement_hash": "9ad02600c88cc5bc08a077a3c14df97ff15c1de9cf28c99c027dfdd631004db1"}}, {"rule": 2, "type": "equivalent", "target": "dae596a0e523920e98e3aa3f6f64e748", "evidence": {"same_day": true, "patch_ids": ["5afba1ce4cc69cc7e323fb1344fef312"], "statement_hash": "9ad02600c88cc5bc08a077a3c14df97ff15c1de9cf28c99c027dfdd631004db1"}}], "version": "13.12", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "dae596a0e523920e98e3aa3f6f64e748", "kind": "equivalent", "version": "15.4", "label": "15.4", "title": "不使用部分唯一索引在规划器中进行唯一性证明", "evidence": {"same_day": true, "patch_ids": ["5afba1ce4cc69cc7e323fb1344fef312"], "statement_hash": "9ad02600c88cc5bc08a077a3c14df97ff15c1de9cf28c99c027dfdd631004db1"}, "url": "/docs/compare/?release=15.4#15.4-23bb86304490eb79", "source_url": "/docs/release/15.4/#ZH-AUTO-RELEASE-15-SECT2-28"}, {"db_id": "cc2306529c3a6971c1b90c20685a73c2", "kind": "equivalent", "version": "14.9", "label": "14.9", "title": "不使用部分唯一索引在规划器中进行唯一性证明", "evidence": {"same_day": true, "patch_ids": ["5afba1ce4cc69cc7e323fb1344fef312"], "statement_hash": "9ad02600c88cc5bc08a077a3c14df97ff15c1de9cf28c99c027dfdd631004db1"}, "url": "/docs/compare/?release=14.9#14.9-23bb86304490eb79", "source_url": "/docs/release/14.9/#ZH-AUTO-RELEASE-14-SECT2-28"}, {"db_id": "349d7f9017aaf8b9256d64ef6816ab78", "kind": "equivalent", "version": "12.16", "label": "12.16", "title": "不要在规划器中使用部分唯一索引进行唯一性证明", "evidence": {"same_day": true, "patch_ids": ["5afba1ce4cc69cc7e323fb1344fef312"], "statement_hash": "9ad02600c88cc5bc08a077a3c14df97ff15c1de9cf28c99c027dfdd631004db1"}, "url": "/docs/compare/?release=12.16#12.16-851daa9592e048c3", "source_url": "/docs/release/12.16/#id-1.11.6.12.5"}, {"db_id": "366547fc23d4fc6b1e42aa62a1328f90", "kind": "equivalent", "version": "11.21", "label": "11.21", "title": "不要在规划器中使用部分唯一索引进行唯一性证明", "evidence": {"same_day": true, "patch_ids": ["5afba1ce4cc69cc7e323fb1344fef312"], "statement_hash": "9ad02600c88cc5bc08a077a3c14df97ff15c1de9cf28c99c027dfdd631004db1"}, "url": "/docs/compare/?release=11.21#11.21-3a5b6e6911b7cdd7", "source_url": "/docs/release/11.21/#id-1.11.6.6.6"}]}, {"id": "13.12-8e08d9120f28cde9", "cves": [], "html": "<p>避免为具有伪常量连接子句的外部连接生成不正确的计划（Etsuro Fujita）<a href=\"https://postgr.es/c/730f983ef\">§</a></p>\n<p>规划器目前缺少将伪常量连接子句附加到下推的远程连接的支持，因此在此类情况下禁用远程连接的生成。（更好的解决方案需要对规划器数据结构进行破坏 ABI 的更改，因此必须等到未来的主版本。）</p>", "text": "避免为具有伪常量连接子句的外部连接生成不正确的计划（Etsuro Fujita）§ 规划器目前缺少将伪常量连接子句附加到下推的远程连接的支持，因此在此类情况下禁用远程连接的生成。（更好的解决方案需要对规划器数据结构进行破坏 ABI 的更改，因此必须等到未来的主版本。）", "title": "避免为具有伪常量连接子句的外部连接生成不正确的计划", "commits": ["730f983ef"], "section": "变更", "category": "improvement", "source_url": "/docs/release/13.12/#id-1.11.6.17.5", "source_hash": "6cf0ae0ee1127c4e27a8cc1a15c5b93178171588e55990721cede55eeee719d0", "section_path": ["变更"], "commit_groups": [["695f5deb7", "6f80a8d9c", "730f983ef", "9edf72aa7", "b0e390e6d", "d1ef5631e", "db01f2696"]], "identity_text": "Avoid producing incorrect plans for foreign joins with pseudoconstant join clauses (Etsuro Fujita) The planner currently lacks support for attaching pseudoconstant join clauses to a pushed-down remote join, so disable generation of remote joins in such cases. (A better solution will require ABI-breaking changes of planner data structures, so it will have to wait for a future major release.)", "commit_aliases": ["695f5deb7", "6f80a8d9c", "730f983ef", "9edf72aa7", "b0e390e6d", "d1ef5631e", "db01f2696"], "source_commits": ["730f983ef"], "source_entry_id": "13.12/changes/009", "db_id": "eabb933b406335e4d506383e550c707b", "patch_ids": ["e6c08c6d547d51143066c7f07d8502af"], "statement_hash": "8754d1ab51fe9cd86e7958f9f808235defe2e0f71736edd8c01debd820b36a1a", "relations": [{"rule": 2, "type": "equivalent", "target": "03adba3f4b7e31f4e1dd9d5c7ec6cb25", "evidence": {"same_day": true, "patch_ids": ["e6c08c6d547d51143066c7f07d8502af"], "statement_hash": "8754d1ab51fe9cd86e7958f9f808235defe2e0f71736edd8c01debd820b36a1a"}}, {"rule": 2, "type": "equivalent", "target": "0ad52b2709466527f18cb8accbe58f01", "evidence": {"same_day": true, "patch_ids": ["e6c08c6d547d51143066c7f07d8502af"], "statement_hash": "8754d1ab51fe9cd86e7958f9f808235defe2e0f71736edd8c01debd820b36a1a"}}, {"rule": 2, "type": "equivalent", "target": "248f46710f7b484572f953eb1f738125", "evidence": {"same_day": true, "patch_ids": ["e6c08c6d547d51143066c7f07d8502af"], "statement_hash": "8754d1ab51fe9cd86e7958f9f808235defe2e0f71736edd8c01debd820b36a1a"}}, {"rule": 2, "type": "equivalent", "target": "bf6ab4bf95c50bdff1de6312f9bdd33b", "evidence": {"same_day": true, "patch_ids": ["e6c08c6d547d51143066c7f07d8502af"], "statement_hash": "8754d1ab51fe9cd86e7958f9f808235defe2e0f71736edd8c01debd820b36a1a"}}], "version": "13.12", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "bf6ab4bf95c50bdff1de6312f9bdd33b", "kind": "equivalent", "version": "15.4", "label": "15.4", "title": "避免为具有伪常量连接子句的外部连接生成不正确的计划", "evidence": {"same_day": true, "patch_ids": ["e6c08c6d547d51143066c7f07d8502af"], "statement_hash": "8754d1ab51fe9cd86e7958f9f808235defe2e0f71736edd8c01debd820b36a1a"}, "url": "/docs/compare/?release=15.4#15.4-97a659521f1258cf", "source_url": "/docs/release/15.4/#ZH-AUTO-RELEASE-15-SECT2-28"}, {"db_id": "248f46710f7b484572f953eb1f738125", "kind": "equivalent", "version": "14.9", "label": "14.9", "title": "避免为具有伪常量连接子句的外部连接生成不正确的计划", "evidence": {"same_day": true, "patch_ids": ["e6c08c6d547d51143066c7f07d8502af"], "statement_hash": "8754d1ab51fe9cd86e7958f9f808235defe2e0f71736edd8c01debd820b36a1a"}, "url": "/docs/compare/?release=14.9#14.9-ab3d99f72b4cc541", "source_url": "/docs/release/14.9/#ZH-AUTO-RELEASE-14-SECT2-28"}, {"db_id": "03adba3f4b7e31f4e1dd9d5c7ec6cb25", "kind": "equivalent", "version": "12.16", "label": "12.16", "title": "避免为具有伪常量连接子句的外部连接生成不正确的计划", "evidence": {"same_day": true, "patch_ids": ["e6c08c6d547d51143066c7f07d8502af"], "statement_hash": "8754d1ab51fe9cd86e7958f9f808235defe2e0f71736edd8c01debd820b36a1a"}, "url": "/docs/compare/?release=12.16#12.16-adfbcb77b96d8335", "source_url": "/docs/release/12.16/#id-1.11.6.12.5"}, {"db_id": "0ad52b2709466527f18cb8accbe58f01", "kind": "equivalent", "version": "11.21", "label": "11.21", "title": "避免为具有伪常量连接子句的外部连接生成不正确的计划", "evidence": {"same_day": true, "patch_ids": ["e6c08c6d547d51143066c7f07d8502af"], "statement_hash": "8754d1ab51fe9cd86e7958f9f808235defe2e0f71736edd8c01debd820b36a1a"}, "url": "/docs/compare/?release=11.21#11.21-ee6fd3e8172aa676", "source_url": "/docs/release/11.21/#id-1.11.6.6.6"}]}, {"id": "13.12-3a7d9526af7cba3a", "cves": [], "html": "<p>在展开规则动作时正确处理 RLS 策略表达式和安全屏障视图中的子 SELECT（Tom Lane）<a href=\"https://postgr.es/c/a36d0014f\">§</a></p>", "text": "在展开规则动作时正确处理 RLS 策略表达式和安全屏障视图中的子 SELECT（Tom Lane）§", "title": "在展开规则动作时正确处理 RLS 策略表达式和安全屏障视图中的子 SELECT", "commits": ["a36d0014f"], "section": "变更", "category": "improvement", "source_url": "/docs/release/13.12/#id-1.11.6.17.5", "source_hash": "211452c54cae39d80e79f9e9d02a4b58a56e673ab8195625e655233d77c09571", "section_path": ["变更"], "commit_groups": [["13192a324", "792213f2e", "a36d0014f", "b4110bdbf", "cc6974df1", "d1423c52e"]], "identity_text": "Correctly handle sub-SELECTs in RLS policy expressions and security-barrier views when expanding rule actions (Tom Lane)", "commit_aliases": ["13192a324", "792213f2e", "a36d0014f", "b4110bdbf", "cc6974df1", "d1423c52e"], "source_commits": ["a36d0014f"], "source_entry_id": "13.12/changes/010", "db_id": "6f926f1b8b91c542be33729c45060533", "patch_ids": ["87e5e637be2c84959550d4791a8a9a74"], "statement_hash": "b8199d11cd0af526d9543c60563499d60722d7231613b4b60dd15fc9c5aa6f5f", "relations": [{"rule": 2, "type": "equivalent", "target": "654faad5c860e3eee5520bc62c44b6b0", "evidence": {"same_day": true, "patch_ids": ["87e5e637be2c84959550d4791a8a9a74"], "statement_hash": "b8199d11cd0af526d9543c60563499d60722d7231613b4b60dd15fc9c5aa6f5f"}}, {"rule": 2, "type": "equivalent", "target": "7a2a3579a4515ef7d4074a28f62df14c", "evidence": {"same_day": true, "patch_ids": ["87e5e637be2c84959550d4791a8a9a74"], "statement_hash": "b8199d11cd0af526d9543c60563499d60722d7231613b4b60dd15fc9c5aa6f5f"}}, {"rule": 2, "type": "equivalent", "target": "9dba8314c6f153a985b063fcdfae0be0", "evidence": {"same_day": true, "patch_ids": ["87e5e637be2c84959550d4791a8a9a74"], "statement_hash": "b8199d11cd0af526d9543c60563499d60722d7231613b4b60dd15fc9c5aa6f5f"}}, {"rule": 2, "type": "equivalent", "target": "ddd3e336c70ed38381f9b3ee9044e700", "evidence": {"same_day": true, "patch_ids": ["87e5e637be2c84959550d4791a8a9a74"], "statement_hash": "b8199d11cd0af526d9543c60563499d60722d7231613b4b60dd15fc9c5aa6f5f"}}], "version": "13.12", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "7a2a3579a4515ef7d4074a28f62df14c", "kind": "equivalent", "version": "15.4", "label": "15.4", "title": "在展开规则动作时正确处理 RLS 策略表达式和安全屏障视图中的子 SELECT", "evidence": {"same_day": true, "patch_ids": ["87e5e637be2c84959550d4791a8a9a74"], "statement_hash": "b8199d11cd0af526d9543c60563499d60722d7231613b4b60dd15fc9c5aa6f5f"}, "url": "/docs/compare/?release=15.4#15.4-8cef627212e99c40", "source_url": "/docs/release/15.4/#ZH-AUTO-RELEASE-15-SECT2-28"}, {"db_id": "ddd3e336c70ed38381f9b3ee9044e700", "kind": "equivalent", "version": "14.9", "label": "14.9", "title": "在展开规则动作时正确处理 RLS 策略表达式和安全屏障视图中的子 SELECT", "evidence": {"same_day": true, "patch_ids": ["87e5e637be2c84959550d4791a8a9a74"], "statement_hash": "b8199d11cd0af526d9543c60563499d60722d7231613b4b60dd15fc9c5aa6f5f"}, "url": "/docs/compare/?release=14.9#14.9-e65124a26c453b90", "source_url": "/docs/release/14.9/#ZH-AUTO-RELEASE-14-SECT2-28"}, {"db_id": "9dba8314c6f153a985b063fcdfae0be0", "kind": "equivalent", "version": "12.16", "label": "12.16", "title": "在展开规则动作时正确处理 RLS 策略表达式和安全屏障视图中的子 SELECT", "evidence": {"same_day": true, "patch_ids": ["87e5e637be2c84959550d4791a8a9a74"], "statement_hash": "b8199d11cd0af526d9543c60563499d60722d7231613b4b60dd15fc9c5aa6f5f"}, "url": "/docs/compare/?release=12.16#12.16-84d20c79549276d3", "source_url": "/docs/release/12.16/#id-1.11.6.12.5"}, {"db_id": "654faad5c860e3eee5520bc62c44b6b0", "kind": "equivalent", "version": "11.21", "label": "11.21", "title": "在展开规则动作时正确处理 RLS 策略表达式和安全屏障视图中的子 SELECT", "evidence": {"same_day": true, "patch_ids": ["87e5e637be2c84959550d4791a8a9a74"], "statement_hash": "b8199d11cd0af526d9543c60563499d60722d7231613b4b60dd15fc9c5aa6f5f"}, "url": "/docs/compare/?release=11.21#11.21-0bbad1db3e42c6e0", "source_url": "/docs/release/11.21/#id-1.11.6.6.6"}]}, {"id": "13.12-80a7769d2d0c9b98", "cves": [], "html": "<p>修复 <code>SERIALIZABLE</code> 隔离模式下冲突检测中的竞争条件（Thomas Munro）<a href=\"https://postgr.es/c/fc1547384\">§</a> <a href=\"https://postgr.es/c/8976ac5c5\">§</a> <a href=\"https://postgr.es/c/8f705d7b9\">§</a></p>\n<p>使用位图堆扫描、使用 GIN 索引以及检查初始为空的 B-树索引时可能会遗漏冲突。所有这些情况都可能因不当允许相互冲突的事务提交而破坏可串行性。</p>", "text": "修复 SERIALIZABLE 隔离模式下冲突检测中的竞争条件（Thomas Munro）§ § § 使用位图堆扫描、使用 GIN 索引以及检查初始为空的 B-树索引时可能会遗漏冲突。所有这些情况都可能因不当允许相互冲突的事务提交而破坏可串行性。", "title": "修复 SERIALIZABLE 隔离模式下冲突检测中的竞争条件", "commits": ["8976ac5c5", "8f705d7b9", "fc1547384"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/13.12/#id-1.11.6.17.5", "source_hash": "8a63bf84fc42f4de55bd8e19fd63e34e8f72ce4b9fca347a7cfa2bed3fc82af8", "section_path": ["变更"], "commit_groups": [["0048c3b51", "0cb1fb2c9", "0f275b0ee", "8f705d7b9", "ae6d536ed", "f9b7fc651", "fe88497b4"], ["12529028a", "126552c85", "13f127800", "255a925d3", "d34aa0a2f", "fb663f387", "fc1547384"], ["17b8887c2", "3f7d3a77e", "814f3c8e4", "8976ac5c5", "ab265e985", "bcc93a389", "d03d9a261"]], "identity_text": "Fix race conditions in conflict detection for SERIALIZABLE isolation mode (Thomas Munro) Conflicts could be missed when using bitmap heap scans, when using GIN indexes, and when examining an initially-empty btree index. All these cases could lead to serializability failures due to improperly allowing conflicting transactions to commit.", "commit_aliases": ["0048c3b51", "0cb1fb2c9", "0f275b0ee", "12529028a", "126552c85", "13f127800", "17b8887c2", "255a925d3", "3f7d3a77e", "814f3c8e4", "8976ac5c5", "8f705d7b9", "ab265e985", "ae6d536ed", "bcc93a389", "d03d9a261", "d34aa0a2f", "f9b7fc651", "fb663f387", "fc1547384", "fe88497b4"], "source_commits": ["8976ac5c5", "8f705d7b9", "fc1547384"], "source_entry_id": "13.12/changes/011", "db_id": "78e330af3d5c6df297cc91602fad1de7", "patch_ids": ["33733f0d75b3592e3c72db8cc1874a87", "a83ca373b807defc3810c75de4fb1436", "abb352b1f2a1704bd847ce368df8cadc"], "statement_hash": "be3e194e578eb6aabccabec8d8d2cc1b681792086b817c48b2add704b6424311", "relations": [{"rule": 2, "type": "equivalent", "target": "8f755eef006413880f27be47c33eb2b9", "evidence": {"same_day": true, "patch_ids": ["33733f0d75b3592e3c72db8cc1874a87", "a83ca373b807defc3810c75de4fb1436", "abb352b1f2a1704bd847ce368df8cadc"], "statement_hash": "be3e194e578eb6aabccabec8d8d2cc1b681792086b817c48b2add704b6424311"}}, {"rule": 2, "type": "equivalent", "target": "b5671ea6a0618a2828055dbb8a059ad7", "evidence": {"same_day": true, "patch_ids": ["33733f0d75b3592e3c72db8cc1874a87", "a83ca373b807defc3810c75de4fb1436", "abb352b1f2a1704bd847ce368df8cadc"], "statement_hash": "be3e194e578eb6aabccabec8d8d2cc1b681792086b817c48b2add704b6424311"}}, {"rule": 2, "type": "equivalent", "target": "d6fd42d045943f958886f18f139278ba", "evidence": {"same_day": true, "patch_ids": ["33733f0d75b3592e3c72db8cc1874a87", "a83ca373b807defc3810c75de4fb1436", "abb352b1f2a1704bd847ce368df8cadc"], "statement_hash": "be3e194e578eb6aabccabec8d8d2cc1b681792086b817c48b2add704b6424311"}}, {"rule": 2, "type": "equivalent", "target": "ee2d689288b7738398bde54d793a757b", "evidence": {"same_day": true, "patch_ids": ["33733f0d75b3592e3c72db8cc1874a87", "a83ca373b807defc3810c75de4fb1436", "abb352b1f2a1704bd847ce368df8cadc"], "statement_hash": "be3e194e578eb6aabccabec8d8d2cc1b681792086b817c48b2add704b6424311"}}], "version": "13.12", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "8f755eef006413880f27be47c33eb2b9", "kind": "equivalent", "version": "15.4", "label": "15.4", "title": "修复 SERIALIZABLE 隔离模式下冲突检测中的竞争条件", "evidence": {"same_day": true, "patch_ids": ["33733f0d75b3592e3c72db8cc1874a87", "a83ca373b807defc3810c75de4fb1436", "abb352b1f2a1704bd847ce368df8cadc"], "statement_hash": "be3e194e578eb6aabccabec8d8d2cc1b681792086b817c48b2add704b6424311"}, "url": "/docs/compare/?release=15.4#15.4-28c1ddb26ed27195", "source_url": "/docs/release/15.4/#ZH-AUTO-RELEASE-15-SECT2-28"}, {"db_id": "b5671ea6a0618a2828055dbb8a059ad7", "kind": "equivalent", "version": "14.9", "label": "14.9", "title": "修复 SERIALIZABLE 隔离模式下冲突检测中的竞争条件", "evidence": {"same_day": true, "patch_ids": ["33733f0d75b3592e3c72db8cc1874a87", "a83ca373b807defc3810c75de4fb1436", "abb352b1f2a1704bd847ce368df8cadc"], "statement_hash": "be3e194e578eb6aabccabec8d8d2cc1b681792086b817c48b2add704b6424311"}, "url": "/docs/compare/?release=14.9#14.9-3183d0ef06d07cfd", "source_url": "/docs/release/14.9/#ZH-AUTO-RELEASE-14-SECT2-28"}, {"db_id": "d6fd42d045943f958886f18f139278ba", "kind": "equivalent", "version": "12.16", "label": "12.16", "title": "修复 SERIALIZABLE 隔离模式下冲突检测中的竞争条件", "evidence": {"same_day": true, "patch_ids": ["33733f0d75b3592e3c72db8cc1874a87", "a83ca373b807defc3810c75de4fb1436", "abb352b1f2a1704bd847ce368df8cadc"], "statement_hash": "be3e194e578eb6aabccabec8d8d2cc1b681792086b817c48b2add704b6424311"}, "url": "/docs/compare/?release=12.16#12.16-43dad0cd22873c15", "source_url": "/docs/release/12.16/#id-1.11.6.12.5"}, {"db_id": "ee2d689288b7738398bde54d793a757b", "kind": "equivalent", "version": "11.21", "label": "11.21", "title": "修复 SERIALIZABLE 隔离模式下冲突检测中的竞争条件", "evidence": {"same_day": true, "patch_ids": ["33733f0d75b3592e3c72db8cc1874a87", "a83ca373b807defc3810c75de4fb1436", "abb352b1f2a1704bd847ce368df8cadc"], "statement_hash": "be3e194e578eb6aabccabec8d8d2cc1b681792086b817c48b2add704b6424311"}, "url": "/docs/compare/?release=11.21#11.21-b305c7bfa448314a", "source_url": "/docs/release/11.21/#id-1.11.6.6.6"}]}, {"id": "13.12-b4dd111f12242718", "cves": [], "html": "<p>修复内侧 hash 键包含来自外层嵌套循环的 Param 的哈希连接（Tom Lane）<a href=\"https://postgr.es/c/2f97105e9\">§</a></p>\n<p>当这些 Param 的值发生变化后重新扫描连接时，我们必须重建 hash 表，但之前疏忽了这一点。这可能导致连接输出行缺失。</p>", "text": "修复内侧 hash 键包含来自外层嵌套循环的 Param 的哈希连接（Tom Lane）§ 当这些 Param 的值发生变化后重新扫描连接时，我们必须重建 hash 表，但之前疏忽了这一点。这可能导致连接输出行缺失。", "title": "修复内侧 hash 键包含来自外层嵌套循环的 Param 的哈希连接", "commits": ["2f97105e9"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/13.12/#id-1.11.6.17.5", "source_hash": "eed33556c6b4194ce91b44daaac914215343ec176687a5319d5ecb871432f5c1", "section_path": ["变更"], "commit_groups": [["2f97105e9", "45392626c", "9529b1eb1", "c2f974fff", "d911dce14"]], "identity_text": "Fix hash join with an inner-side hash key that contains Params coming from an outer nested loop (Tom Lane) When rescanning the join after the values of such Params have changed, we must rebuild the hash table, but neglected to do so. This could result in missing join output rows.", "commit_aliases": ["2f97105e9", "45392626c", "9529b1eb1", "c2f974fff", "d911dce14"], "source_commits": ["2f97105e9"], "source_entry_id": "13.12/changes/012", "db_id": "bf698cb034fdc37f684d81bb251c3e9c", "patch_ids": ["14fa05caf16db0ec9c1b252ed430f545"], "statement_hash": "fa9d6484ab97286bb7e19be3ef7103d3261a1747e010cadcf44047fb5d2806ee", "relations": [{"rule": 2, "type": "equivalent", "target": "131d6bcee186ed0dc03d13933d4440c2", "evidence": {"same_day": true, "patch_ids": ["14fa05caf16db0ec9c1b252ed430f545"], "statement_hash": "fa9d6484ab97286bb7e19be3ef7103d3261a1747e010cadcf44047fb5d2806ee"}}, {"rule": 2, "type": "equivalent", "target": "77d0a5e57043f62f908737de1bfd2073", "evidence": {"same_day": true, "patch_ids": ["14fa05caf16db0ec9c1b252ed430f545"], "statement_hash": "fa9d6484ab97286bb7e19be3ef7103d3261a1747e010cadcf44047fb5d2806ee"}}, {"rule": 2, "type": "equivalent", "target": "d8f1f52cd378b80d13c186ca2217e0f6", "evidence": {"same_day": true, "patch_ids": ["14fa05caf16db0ec9c1b252ed430f545"], "statement_hash": "fa9d6484ab97286bb7e19be3ef7103d3261a1747e010cadcf44047fb5d2806ee"}}], "version": "13.12", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "77d0a5e57043f62f908737de1bfd2073", "kind": "equivalent", "version": "15.4", "label": "15.4", "title": "修复当内侧 hash 键包含来自外层嵌套循环的 Param 时的哈希连接问题", "evidence": {"same_day": true, "patch_ids": ["14fa05caf16db0ec9c1b252ed430f545"], "statement_hash": "fa9d6484ab97286bb7e19be3ef7103d3261a1747e010cadcf44047fb5d2806ee"}, "url": "/docs/compare/?release=15.4#15.4-96de7f01a81340a9", "source_url": "/docs/release/15.4/#ZH-AUTO-RELEASE-15-SECT2-28"}, {"db_id": "d8f1f52cd378b80d13c186ca2217e0f6", "kind": "equivalent", "version": "14.9", "label": "14.9", "title": "修复当内侧 hash 键包含来自外层嵌套循环的 Param 时的哈希连接问题", "evidence": {"same_day": true, "patch_ids": ["14fa05caf16db0ec9c1b252ed430f545"], "statement_hash": "fa9d6484ab97286bb7e19be3ef7103d3261a1747e010cadcf44047fb5d2806ee"}, "url": "/docs/compare/?release=14.9#14.9-96de7f01a81340a9", "source_url": "/docs/release/14.9/#ZH-AUTO-RELEASE-14-SECT2-28"}, {"db_id": "131d6bcee186ed0dc03d13933d4440c2", "kind": "equivalent", "version": "12.16", "label": "12.16", "title": "修复内侧 hash 键包含来自外层嵌套循环的 Param 的哈希连接", "evidence": {"same_day": true, "patch_ids": ["14fa05caf16db0ec9c1b252ed430f545"], "statement_hash": "fa9d6484ab97286bb7e19be3ef7103d3261a1747e010cadcf44047fb5d2806ee"}, "url": "/docs/compare/?release=12.16#12.16-bba531bb619e20c7", "source_url": "/docs/release/12.16/#id-1.11.6.12.5"}]}, {"id": "13.12-a84646baeafa1234", "cves": [], "html": "<p>修复尝试更新复合列的字段时的间歇性失败（Tom Lane）<a href=\"https://postgr.es/c/d0ab203bc\">§</a></p>\n<p>如果复合列的整体值宽到需要行外 TOAST 存储，那么在不恰当时机发生的缓存刷新可能导致错误或服务器崩溃。</p>", "text": "修复尝试更新复合列的字段时的间歇性失败（Tom Lane）§ 如果复合列的整体值宽到需要行外 TOAST 存储，那么在不恰当时机发生的缓存刷新可能导致错误或服务器崩溃。", "title": "修复尝试更新复合列的字段时的间歇性失败", "commits": ["d0ab203bc"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/13.12/#id-1.11.6.17.5", "source_hash": "58db75503a49678479e5395cdda018810e1ff829d0655a850e6deb0b1e369c26", "section_path": ["变更"], "commit_groups": [["0789b82a9", "43af714de", "53b93e853", "7f11b7a9c", "cc8cca3c2", "d0ab203bc"]], "identity_text": "Fix intermittent failures when trying to update a field of a composite column (Tom Lane) If the overall value of the composite column is wide enough to require out-of-line toasting, then an unluckily-timed cache flush could cause errors or server crashes.", "commit_aliases": ["0789b82a9", "43af714de", "53b93e853", "7f11b7a9c", "cc8cca3c2", "d0ab203bc"], "source_commits": ["d0ab203bc"], "source_entry_id": "13.12/changes/013", "db_id": "f33a929bb695c66a0bacc15be562f9bd", "patch_ids": ["778dc8501378e28fd91f069a6bf948c9"], "statement_hash": "e8e66f7e93bec2d7b96c0cfc4a7f4b0cb538cd08618dd562ad29563a5ffce33e", "relations": [{"rule": 2, "type": "equivalent", "target": "14da412cc36644c34b37e159cc8c0933", "evidence": {"same_day": true, "patch_ids": ["778dc8501378e28fd91f069a6bf948c9"], "statement_hash": "e8e66f7e93bec2d7b96c0cfc4a7f4b0cb538cd08618dd562ad29563a5ffce33e"}}, {"rule": 2, "type": "equivalent", "target": "581515a46fc41884212da9f328236b48", "evidence": {"same_day": true, "patch_ids": ["778dc8501378e28fd91f069a6bf948c9"], "statement_hash": "e8e66f7e93bec2d7b96c0cfc4a7f4b0cb538cd08618dd562ad29563a5ffce33e"}}, {"rule": 2, "type": "equivalent", "target": "b50182df79de87c30571da4ae8fa33a8", "evidence": {"same_day": true, "patch_ids": ["778dc8501378e28fd91f069a6bf948c9"], "statement_hash": "e8e66f7e93bec2d7b96c0cfc4a7f4b0cb538cd08618dd562ad29563a5ffce33e"}}, {"rule": 2, "type": "equivalent", "target": "ddcffbccac79f08acd7af9c6ff9332fe", "evidence": {"same_day": true, "patch_ids": ["778dc8501378e28fd91f069a6bf948c9"], "statement_hash": "e8e66f7e93bec2d7b96c0cfc4a7f4b0cb538cd08618dd562ad29563a5ffce33e"}}], "version": "13.12", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "14da412cc36644c34b37e159cc8c0933", "kind": "equivalent", "version": "15.4", "label": "15.4", "title": "修复尝试更新复合列的字段时的间歇性失败", "evidence": {"same_day": true, "patch_ids": ["778dc8501378e28fd91f069a6bf948c9"], "statement_hash": "e8e66f7e93bec2d7b96c0cfc4a7f4b0cb538cd08618dd562ad29563a5ffce33e"}, "url": "/docs/compare/?release=15.4#15.4-3f973053e0f3679a", "source_url": "/docs/release/15.4/#ZH-AUTO-RELEASE-15-SECT2-28"}, {"db_id": "581515a46fc41884212da9f328236b48", "kind": "equivalent", "version": "14.9", "label": "14.9", "title": "修复尝试更新复合列的字段时的间歇性失败", "evidence": {"same_day": true, "patch_ids": ["778dc8501378e28fd91f069a6bf948c9"], "statement_hash": "e8e66f7e93bec2d7b96c0cfc4a7f4b0cb538cd08618dd562ad29563a5ffce33e"}, "url": "/docs/compare/?release=14.9#14.9-53784fbdda01552e", "source_url": "/docs/release/14.9/#ZH-AUTO-RELEASE-14-SECT2-28"}, {"db_id": "b50182df79de87c30571da4ae8fa33a8", "kind": "equivalent", "version": "12.16", "label": "12.16", "title": "修复尝试更新复合列的字段时的间歇性失败", "evidence": {"same_day": true, "patch_ids": ["778dc8501378e28fd91f069a6bf948c9"], "statement_hash": "e8e66f7e93bec2d7b96c0cfc4a7f4b0cb538cd08618dd562ad29563a5ffce33e"}, "url": "/docs/compare/?release=12.16#12.16-14349317dfb71dc6", "source_url": "/docs/release/12.16/#id-1.11.6.12.5"}, {"db_id": "ddcffbccac79f08acd7af9c6ff9332fe", "kind": "equivalent", "version": "11.21", "label": "11.21", "title": "修复尝试更新复合列的字段时的间歇性失败", "evidence": {"same_day": true, "patch_ids": ["778dc8501378e28fd91f069a6bf948c9"], "statement_hash": "e8e66f7e93bec2d7b96c0cfc4a7f4b0cb538cd08618dd562ad29563a5ffce33e"}, "url": "/docs/compare/?release=11.21#11.21-bd23b5c13a5c2c8f", "source_url": "/docs/release/11.21/#id-1.11.6.6.6"}]}, {"id": "13.12-b7f6bd606b71f8e4", "cves": [], "html": "<p>防止某些带触发器的 <code>UPDATE</code> 查询中的查询级内存泄漏（Tomas Vondra）<a href=\"https://postgr.es/c/c504aa857\">§</a> <a href=\"https://postgr.es/c/984c23f6f\">§</a></p>", "text": "防止某些带触发器的 UPDATE 查询中的查询级内存泄漏（Tomas Vondra）§ §", "title": "防止某些带触发器的 UPDATE 查询中的查询级内存泄漏", "commits": ["984c23f6f", "c504aa857"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/13.12/#id-1.11.6.17.5", "source_hash": "5a1d7cbdd6ffaea6ba7761477d0b76711cbf78acdae8b01140805a3d912d0ded", "section_path": ["变更"], "commit_groups": [["260dbf19a", "7ae4e7868", "984c23f6f", "9cf85093b", "ce5aaea8c"], ["54e1b8587", "7f528e96c", "c504aa857", "ee87f8b63", "f24523672"]], "identity_text": "Prevent query-lifespan memory leaks in some UPDATE queries with triggers (Tomas Vondra)", "commit_aliases": ["260dbf19a", "54e1b8587", "7ae4e7868", "7f528e96c", "984c23f6f", "9cf85093b", "c504aa857", "ce5aaea8c", "ee87f8b63", "f24523672"], "source_commits": ["984c23f6f", "c504aa857"], "source_entry_id": "13.12/changes/014", "db_id": "c44f76cf2db3a40525fc001d224f72a2", "patch_ids": ["3972da03a018ceba4162ec332f283a96", "a9de48ea9b0829de583cda8a9704ef43"], "statement_hash": "14ffd2c0aafc242ca262a666ad5e329b4531d70e3adfb7e05a9c2c5949c1cf3c", "relations": [{"rule": 2, "type": "equivalent", "target": "8367f3434c1e5eac676255b7d53d64cc", "evidence": {"same_day": true, "patch_ids": ["3972da03a018ceba4162ec332f283a96", "a9de48ea9b0829de583cda8a9704ef43"], "statement_hash": "14ffd2c0aafc242ca262a666ad5e329b4531d70e3adfb7e05a9c2c5949c1cf3c"}}, {"rule": 2, "type": "equivalent", "target": "9b765c59a36433ec54c730804aebabfa", "evidence": {"same_day": true, "patch_ids": ["3972da03a018ceba4162ec332f283a96", "a9de48ea9b0829de583cda8a9704ef43"], "statement_hash": "14ffd2c0aafc242ca262a666ad5e329b4531d70e3adfb7e05a9c2c5949c1cf3c"}}, {"rule": 2, "type": "equivalent", "target": "d221ce3bd7c5a5d8d69121ab1014f849", "evidence": {"same_day": true, "patch_ids": ["3972da03a018ceba4162ec332f283a96", "a9de48ea9b0829de583cda8a9704ef43"], "statement_hash": "14ffd2c0aafc242ca262a666ad5e329b4531d70e3adfb7e05a9c2c5949c1cf3c"}}], "version": "13.12", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "9b765c59a36433ec54c730804aebabfa", "kind": "equivalent", "version": "15.4", "label": "15.4", "title": "防止某些带触发器的 UPDATE 查询中的查询级内存泄漏", "evidence": {"same_day": true, "patch_ids": ["3972da03a018ceba4162ec332f283a96", "a9de48ea9b0829de583cda8a9704ef43"], "statement_hash": "14ffd2c0aafc242ca262a666ad5e329b4531d70e3adfb7e05a9c2c5949c1cf3c"}, "url": "/docs/compare/?release=15.4#15.4-9f325dd88f8ec86c", "source_url": "/docs/release/15.4/#ZH-AUTO-RELEASE-15-SECT2-28"}, {"db_id": "d221ce3bd7c5a5d8d69121ab1014f849", "kind": "equivalent", "version": "14.9", "label": "14.9", "title": "防止某些带触发器的 UPDATE 查询中的查询级内存泄漏", "evidence": {"same_day": true, "patch_ids": ["3972da03a018ceba4162ec332f283a96", "a9de48ea9b0829de583cda8a9704ef43"], "statement_hash": "14ffd2c0aafc242ca262a666ad5e329b4531d70e3adfb7e05a9c2c5949c1cf3c"}, "url": "/docs/compare/?release=14.9#14.9-9ce4fe9a9efbfc12", "source_url": "/docs/release/14.9/#ZH-AUTO-RELEASE-14-SECT2-28"}, {"db_id": "8367f3434c1e5eac676255b7d53d64cc", "kind": "equivalent", "version": "12.16", "label": "12.16", "title": "防止某些带触发器的 UPDATE 查询中的查询级内存泄漏", "evidence": {"same_day": true, "patch_ids": ["3972da03a018ceba4162ec332f283a96", "a9de48ea9b0829de583cda8a9704ef43"], "statement_hash": "14ffd2c0aafc242ca262a666ad5e329b4531d70e3adfb7e05a9c2c5949c1cf3c"}, "url": "/docs/compare/?release=12.16#12.16-00a595ab3aae09a2", "source_url": "/docs/release/12.16/#id-1.11.6.12.5"}]}, {"id": "13.12-f73d60eef865603c", "cves": [], "html": "<p>防止增量排序计划节点重新扫描时的查询级内存泄漏（James Coleman，Laurenz Albe，Tom Lane）<a href=\"https://postgr.es/c/3ce761d5c\">§</a></p>", "text": "防止增量排序计划节点重新扫描时的查询级内存泄漏（James Coleman，Laurenz Albe，Tom Lane）§", "title": "防止增量排序计划节点重新扫描时的查询级内存泄漏", "commits": ["3ce761d5c"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/13.12/#id-1.11.6.17.5", "source_hash": "271308a0bce3ef3c278384d2eda0f7d0b06f6980a0ed6b9e866da6f7a9933339", "section_path": ["变更"], "commit_groups": [["0c5fe4ff6", "3ce761d5c", "98640f960", "9ae7b5d1f", "c1affa38c"]], "identity_text": "Prevent query-lifespan memory leaks when an Incremental Sort plan node is rescanned (James Coleman, Laurenz Albe, Tom Lane)", "commit_aliases": ["0c5fe4ff6", "3ce761d5c", "98640f960", "9ae7b5d1f", "c1affa38c"], "source_commits": ["3ce761d5c"], "source_entry_id": "13.12/changes/015", "db_id": "cd71e892e4af373172a8cd94cbff78cf", "patch_ids": ["331e004ba7f5611f51b9b6c9ceda4fa5"], "statement_hash": "67649ccfe74cfbb9b52a7504941492699769d139e86cfaaf1088370d670cc4f7", "relations": [{"rule": 2, "type": "equivalent", "target": "1c87e2da26db592bd05ba42f1799f848", "evidence": {"same_day": true, "patch_ids": ["331e004ba7f5611f51b9b6c9ceda4fa5"], "statement_hash": "67649ccfe74cfbb9b52a7504941492699769d139e86cfaaf1088370d670cc4f7"}}, {"rule": 2, "type": "equivalent", "target": "9cb975297879c52de850e98714676468", "evidence": {"same_day": true, "patch_ids": ["331e004ba7f5611f51b9b6c9ceda4fa5"], "statement_hash": "67649ccfe74cfbb9b52a7504941492699769d139e86cfaaf1088370d670cc4f7"}}], "version": "13.12", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "9cb975297879c52de850e98714676468", "kind": "equivalent", "version": "15.4", "label": "15.4", "title": "防止增量排序计划节点重新扫描时的查询级内存泄漏", "evidence": {"same_day": true, "patch_ids": ["331e004ba7f5611f51b9b6c9ceda4fa5"], "statement_hash": "67649ccfe74cfbb9b52a7504941492699769d139e86cfaaf1088370d670cc4f7"}, "url": "/docs/compare/?release=15.4#15.4-78d6ce12e34a34b8", "source_url": "/docs/release/15.4/#ZH-AUTO-RELEASE-15-SECT2-28"}, {"db_id": "1c87e2da26db592bd05ba42f1799f848", "kind": "equivalent", "version": "14.9", "label": "14.9", "title": "防止增量排序计划节点重新扫描时的查询级内存泄漏", "evidence": {"same_day": true, "patch_ids": ["331e004ba7f5611f51b9b6c9ceda4fa5"], "statement_hash": "67649ccfe74cfbb9b52a7504941492699769d139e86cfaaf1088370d670cc4f7"}, "url": "/docs/compare/?release=14.9#14.9-06033bf90d2c90cc", "source_url": "/docs/release/14.9/#ZH-AUTO-RELEASE-14-SECT2-28"}]}, {"id": "13.12-4cc3dd9fa65ce2aa", "cves": [], "html": "<p>在 <code>jsonpath</code> 的 <code>datetime()</code> 方法的输入中接受小数秒（Tom Lane）<a href=\"https://postgr.es/c/6f23b5f74\">§</a></p>", "text": "在 jsonpath 的 datetime() 方法的输入中接受小数秒（Tom Lane）§", "title": "在 jsonpath 的 datetime() 方法的输入中接受小数秒", "commits": ["6f23b5f74"], "section": "变更", "category": "improvement", "source_url": "/docs/release/13.12/#id-1.11.6.17.5", "source_hash": "5da85700947d91f22111cb30000ecfbbe64951cb5b3b08f63e1f012d976691eb", "section_path": ["变更"], "commit_groups": [["5eaa05f63", "6f23b5f74", "7398e2722", "bd590d1fe"]], "identity_text": "Accept fractional seconds in the input to jsonpath's datetime() method (Tom Lane)", "commit_aliases": ["5eaa05f63", "6f23b5f74", "7398e2722", "bd590d1fe"], "source_commits": ["6f23b5f74"], "source_entry_id": "13.12/changes/016", "db_id": "0391c164e732c59320ef6d457c47be65", "patch_ids": ["abec4bbd0370ce91443af1234ef3d034"], "statement_hash": "776df4292523025b401399a9b7bee4a5bb7809a72caf626ab469bb8bf1e9abc0", "relations": [{"rule": 2, "type": "equivalent", "target": "69be3f568166330e95aba0ef86371989", "evidence": {"same_day": true, "patch_ids": ["abec4bbd0370ce91443af1234ef3d034"], "statement_hash": "776df4292523025b401399a9b7bee4a5bb7809a72caf626ab469bb8bf1e9abc0"}}, {"rule": 2, "type": "equivalent", "target": "bf2aa8a9cd386e1dd40fc1babdb8be63", "evidence": {"same_day": true, "patch_ids": ["abec4bbd0370ce91443af1234ef3d034"], "statement_hash": "776df4292523025b401399a9b7bee4a5bb7809a72caf626ab469bb8bf1e9abc0"}}], "version": "13.12", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "bf2aa8a9cd386e1dd40fc1babdb8be63", "kind": "equivalent", "version": "15.4", "label": "15.4", "title": "在 jsonpath 的 datetime() 方法的输入中接受分数秒", "evidence": {"same_day": true, "patch_ids": ["abec4bbd0370ce91443af1234ef3d034"], "statement_hash": "776df4292523025b401399a9b7bee4a5bb7809a72caf626ab469bb8bf1e9abc0"}, "url": "/docs/compare/?release=15.4#15.4-09c8cad672dfe4dc", "source_url": "/docs/release/15.4/#ZH-AUTO-RELEASE-15-SECT2-28"}, {"db_id": "69be3f568166330e95aba0ef86371989", "kind": "equivalent", "version": "14.9", "label": "14.9", "title": "在 jsonpath 的 datetime() 方法的输入中接受分数秒", "evidence": {"same_day": true, "patch_ids": ["abec4bbd0370ce91443af1234ef3d034"], "statement_hash": "776df4292523025b401399a9b7bee4a5bb7809a72caf626ab469bb8bf1e9abc0"}, "url": "/docs/compare/?release=14.9#14.9-09c8cad672dfe4dc", "source_url": "/docs/release/14.9/#ZH-AUTO-RELEASE-14-SECT2-28"}]}, {"id": "13.12-33542d44241f9bed", "cves": [], "html": "<p>防止非常复杂的文本检索模式导致栈溢出崩溃（Tom Lane）<a href=\"https://postgr.es/c/b6ab18a99\">§</a></p>", "text": "防止非常复杂的文本检索模式导致栈溢出崩溃（Tom Lane）§", "title": "防止非常复杂的文本检索模式导致栈溢出崩溃", "commits": ["b6ab18a99"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/13.12/#id-1.11.6.17.5", "source_hash": "912bf192d3b08dfdc8b77d7e12d3a1d7293558a32c85cb5976386547a1c2beeb", "section_path": ["变更"], "commit_groups": [["3b4580f5c", "4c61afa47", "691594acd", "a77d90171", "b6ab18a99", "c7f33a197"]], "identity_text": "Prevent stack-overflow crashes with very complex text search patterns (Tom Lane)", "commit_aliases": ["3b4580f5c", "4c61afa47", "691594acd", "a77d90171", "b6ab18a99", "c7f33a197"], "source_commits": ["b6ab18a99"], "source_entry_id": "13.12/changes/017", "db_id": "c04476adb0206ac5adaca2039192ea21", "patch_ids": ["cc7d7f2b6488db8ad5766f488c9d45a6"], "statement_hash": "dda9b0426bfaa92a02734a7a77dbdc263cc5b869cc8cc20f05f3a320a0fa3fa0", "relations": [{"rule": 2, "type": "equivalent", "target": "2e75ce2dc2c396b9760dbfd653ed53ba", "evidence": {"same_day": true, "patch_ids": ["cc7d7f2b6488db8ad5766f488c9d45a6"], "statement_hash": "dda9b0426bfaa92a02734a7a77dbdc263cc5b869cc8cc20f05f3a320a0fa3fa0"}}, {"rule": 2, "type": "equivalent", "target": "83139ba83e7ca914e14fb807404b1a8d", "evidence": {"same_day": true, "patch_ids": ["cc7d7f2b6488db8ad5766f488c9d45a6"], "statement_hash": "dda9b0426bfaa92a02734a7a77dbdc263cc5b869cc8cc20f05f3a320a0fa3fa0"}}, {"rule": 2, "type": "equivalent", "target": "8331baa0174c66a0e5375f9f9beee432", "evidence": {"same_day": true, "patch_ids": ["cc7d7f2b6488db8ad5766f488c9d45a6"], "statement_hash": "dda9b0426bfaa92a02734a7a77dbdc263cc5b869cc8cc20f05f3a320a0fa3fa0"}}, {"rule": 2, "type": "equivalent", "target": "f462fd6e8ba0be366e12b98a5976117c", "evidence": {"same_day": true, "patch_ids": ["cc7d7f2b6488db8ad5766f488c9d45a6"], "statement_hash": "dda9b0426bfaa92a02734a7a77dbdc263cc5b869cc8cc20f05f3a320a0fa3fa0"}}], "version": "13.12", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "2e75ce2dc2c396b9760dbfd653ed53ba", "kind": "equivalent", "version": "15.4", "label": "15.4", "title": "防止使用非常复杂的文本检索模式时的栈溢出崩溃", "evidence": {"same_day": true, "patch_ids": ["cc7d7f2b6488db8ad5766f488c9d45a6"], "statement_hash": "dda9b0426bfaa92a02734a7a77dbdc263cc5b869cc8cc20f05f3a320a0fa3fa0"}, "url": "/docs/compare/?release=15.4#15.4-d6d59320737125d6", "source_url": "/docs/release/15.4/#ZH-AUTO-RELEASE-15-SECT2-28"}, {"db_id": "83139ba83e7ca914e14fb807404b1a8d", "kind": "equivalent", "version": "14.9", "label": "14.9", "title": "防止使用非常复杂的文本检索模式时的栈溢出崩溃", "evidence": {"same_day": true, "patch_ids": ["cc7d7f2b6488db8ad5766f488c9d45a6"], "statement_hash": "dda9b0426bfaa92a02734a7a77dbdc263cc5b869cc8cc20f05f3a320a0fa3fa0"}, "url": "/docs/compare/?release=14.9#14.9-d6d59320737125d6", "source_url": "/docs/release/14.9/#ZH-AUTO-RELEASE-14-SECT2-28"}, {"db_id": "8331baa0174c66a0e5375f9f9beee432", "kind": "equivalent", "version": "12.16", "label": "12.16", "title": "防止非常复杂的文本检索模式导致栈溢出崩溃", "evidence": {"same_day": true, "patch_ids": ["cc7d7f2b6488db8ad5766f488c9d45a6"], "statement_hash": "dda9b0426bfaa92a02734a7a77dbdc263cc5b869cc8cc20f05f3a320a0fa3fa0"}, "url": "/docs/compare/?release=12.16#12.16-8115dcf6abfb9447", "source_url": "/docs/release/12.16/#id-1.11.6.12.5"}, {"db_id": "f462fd6e8ba0be366e12b98a5976117c", "kind": "equivalent", "version": "11.21", "label": "11.21", "title": "防止非常复杂的文本检索模式导致栈溢出崩溃", "evidence": {"same_day": true, "patch_ids": ["cc7d7f2b6488db8ad5766f488c9d45a6"], "statement_hash": "dda9b0426bfaa92a02734a7a77dbdc263cc5b869cc8cc20f05f3a320a0fa3fa0"}, "url": "/docs/compare/?release=11.21#11.21-6909444c10bfdd1b", "source_url": "/docs/release/11.21/#id-1.11.6.6.6"}]}, {"id": "13.12-973d3bc2dbc69d58", "cves": [], "html": "<p>允许 <code>pg_hba.conf</code> 和 <code>pg_ident.conf</code> 中的令牌长度最多为 10240 字节（Tom Lane）<a href=\"https://postgr.es/c/288b4288c\">§</a></p>\n<p>之前 256 字节的限制已被发现对某些使用场景不足。</p>", "text": "允许 pg_hba.conf 和 pg_ident.conf 中的令牌长度最多为 10240 字节（Tom Lane）§ 之前 256 字节的限制已被发现对某些使用场景不足。", "title": "允许 pg_hba.conf 和 pg_ident.conf 中的令牌长度最多为 10240 字节", "commits": ["288b4288c"], "section": "变更", "category": "improvement", "source_url": "/docs/release/13.12/#id-1.11.6.17.5", "source_hash": "8cbca6ff011f1750e37778d7826ea66de3e883a8f7a502e6b9fa83ee9e628a3f", "section_path": ["变更"], "commit_groups": [["0660f74e8", "1d031ad54", "288b4288c", "313ceda2f", "341996248", "38df84c65", "de3f0e3fe"]], "identity_text": "Allow tokens up to 10240 bytes long in pg_hba.conf and pg_ident.conf (Tom Lane) The previous limit of 256 bytes has been found insufficient for some use-cases.", "commit_aliases": ["0660f74e8", "1d031ad54", "288b4288c", "313ceda2f", "341996248", "38df84c65", "de3f0e3fe"], "source_commits": ["288b4288c"], "source_entry_id": "13.12/changes/018", "db_id": "9f4d00733ec0b39cef55b609e58feb5e", "patch_ids": ["98d67cdf3c0ead6326a2a33b279fe8d7"], "statement_hash": "da90a61fea160c5840872e071681e8c69da781986b3995430f7e8f2826c1ef8d", "relations": [{"rule": 2, "type": "equivalent", "target": "5052cdce2ff501e8882fe7b5bd665ea7", "evidence": {"same_day": true, "patch_ids": ["98d67cdf3c0ead6326a2a33b279fe8d7"], "statement_hash": "da90a61fea160c5840872e071681e8c69da781986b3995430f7e8f2826c1ef8d"}}, {"rule": 2, "type": "equivalent", "target": "bb6d76438d51fc5fa20cf73c0a0b64a3", "evidence": {"same_day": true, "patch_ids": ["98d67cdf3c0ead6326a2a33b279fe8d7"], "statement_hash": "da90a61fea160c5840872e071681e8c69da781986b3995430f7e8f2826c1ef8d"}}, {"rule": 2, "type": "equivalent", "target": "c0284c475e03c7f703126c3dcc072f1b", "evidence": {"same_day": true, "patch_ids": ["98d67cdf3c0ead6326a2a33b279fe8d7"], "statement_hash": "da90a61fea160c5840872e071681e8c69da781986b3995430f7e8f2826c1ef8d"}}, {"rule": 2, "type": "related", "target": "c86f7037f349c6b765e98f879e584db3", "evidence": {"same_day": false, "patch_ids": ["98d67cdf3c0ead6326a2a33b279fe8d7"]}}, {"rule": 2, "type": "equivalent", "target": "d12f6a5e5ec54da016372459d525434d", "evidence": {"same_day": true, "patch_ids": ["98d67cdf3c0ead6326a2a33b279fe8d7"], "statement_hash": "da90a61fea160c5840872e071681e8c69da781986b3995430f7e8f2826c1ef8d"}}], "version": "13.12", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "c86f7037f349c6b765e98f879e584db3", "kind": "related", "version": "16.0", "label": "16.0", "title": "允许 pg_hba.conf 令牌具有无限长度", "evidence": {"same_day": false, "patch_ids": ["98d67cdf3c0ead6326a2a33b279fe8d7"]}, "url": "/docs/compare/?release=16.0#16.0-fc6faf9ca3927210", "source_url": "/docs/release/16.0/#RELEASE-16-PG-HBA"}, {"db_id": "bb6d76438d51fc5fa20cf73c0a0b64a3", "kind": "equivalent", "version": "15.4", "label": "15.4", "title": "允许 pg_hba.conf 和 pg_ident.conf 中的令牌长度最多为 10240 字节", "evidence": {"same_day": true, "patch_ids": ["98d67cdf3c0ead6326a2a33b279fe8d7"], "statement_hash": "da90a61fea160c5840872e071681e8c69da781986b3995430f7e8f2826c1ef8d"}, "url": "/docs/compare/?release=15.4#15.4-7454c50b73348dca", "source_url": "/docs/release/15.4/#ZH-AUTO-RELEASE-15-SECT2-28"}, {"db_id": "5052cdce2ff501e8882fe7b5bd665ea7", "kind": "equivalent", "version": "14.9", "label": "14.9", "title": "允许 pg_hba.conf 和 pg_ident.conf 中的令牌长度最多为 10240 字节", "evidence": {"same_day": true, "patch_ids": ["98d67cdf3c0ead6326a2a33b279fe8d7"], "statement_hash": "da90a61fea160c5840872e071681e8c69da781986b3995430f7e8f2826c1ef8d"}, "url": "/docs/compare/?release=14.9#14.9-5bb3aebe0a3a7f93", "source_url": "/docs/release/14.9/#ZH-AUTO-RELEASE-14-SECT2-28"}, {"db_id": "c0284c475e03c7f703126c3dcc072f1b", "kind": "equivalent", "version": "12.16", "label": "12.16", "title": "允许 pg_hba.conf 和 pg_ident.conf 中的令牌长度最多为 10240 字节", "evidence": {"same_day": true, "patch_ids": ["98d67cdf3c0ead6326a2a33b279fe8d7"], "statement_hash": "da90a61fea160c5840872e071681e8c69da781986b3995430f7e8f2826c1ef8d"}, "url": "/docs/compare/?release=12.16#12.16-4587afce7e4f52c0", "source_url": "/docs/release/12.16/#id-1.11.6.12.5"}, {"db_id": "d12f6a5e5ec54da016372459d525434d", "kind": "equivalent", "version": "11.21", "label": "11.21", "title": "允许 pg_hba.conf 和 pg_ident.conf 中的令牌长度最多为 10240 字节", "evidence": {"same_day": true, "patch_ids": ["98d67cdf3c0ead6326a2a33b279fe8d7"], "statement_hash": "da90a61fea160c5840872e071681e8c69da781986b3995430f7e8f2826c1ef8d"}, "url": "/docs/compare/?release=11.21#11.21-2a298c9d8914690f", "source_url": "/docs/release/11.21/#id-1.11.6.6.6"}]}, {"id": "13.12-ae7566497fb9c8c4", "cves": [], "html": "<p>修复 C++ 内存不足情况的错误处理（Heikki Linnakangas）<a href=\"https://postgr.es/c/59c2a6fe9\">§</a></p>\n<p>如果正在使用 JIT，C++ <code>new</code> 调用中的内存不足会导致 <span>PostgreSQL</span> 的 FATAL 错误，而非预期的 C++ 异常。</p>", "text": "修复 C++ 内存不足情况的错误处理（Heikki Linnakangas）§ 如果正在使用 JIT，C++ new 调用中的内存不足会导致 PostgreSQL 的 FATAL 错误，而非预期的 C++ 异常。", "title": "修复 C++ 内存不足情况的错误处理", "commits": ["59c2a6fe9"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/13.12/#id-1.11.6.17.5", "source_hash": "3a1b745ec82dd6450c6a61b55f24d09dad675c1b389be65815baafd93c66721e", "section_path": ["变更"], "commit_groups": [["162aa47c3", "2316ff1ae", "4f4d73466", "59c2a6fe9", "bfb493dba", "dc0b58417", "fa96a74a0"]], "identity_text": "Fix mishandling of C++ out-of-memory conditions (Heikki Linnakangas) If JIT is in use, running out of memory in a C++ new call would lead to a PostgreSQL FATAL error, instead of the expected C++ exception.", "commit_aliases": ["162aa47c3", "2316ff1ae", "4f4d73466", "59c2a6fe9", "bfb493dba", "dc0b58417", "fa96a74a0"], "source_commits": ["59c2a6fe9"], "source_entry_id": "13.12/changes/019", "db_id": "7cebd2d79d0128bc94c2d77bf3728508", "patch_ids": ["0f2bb015425a1155e776a74158ca4a93"], "statement_hash": "b74c6634d11cb3e66f64639c7ad351ac71400257ec790ae2a321eefe3d8cd41f", "relations": [{"rule": 2, "type": "equivalent", "target": "757d3172dbdf2effbbbfc156a10c873f", "evidence": {"same_day": true, "patch_ids": ["0f2bb015425a1155e776a74158ca4a93"], "statement_hash": "b74c6634d11cb3e66f64639c7ad351ac71400257ec790ae2a321eefe3d8cd41f"}}, {"rule": 2, "type": "equivalent", "target": "96898e43e86461d367e2a37792585a0b", "evidence": {"same_day": true, "patch_ids": ["0f2bb015425a1155e776a74158ca4a93"], "statement_hash": "b74c6634d11cb3e66f64639c7ad351ac71400257ec790ae2a321eefe3d8cd41f"}}, {"rule": 2, "type": "equivalent", "target": "ae85f7f04a7d36b6403e07b39e6e4ddf", "evidence": {"same_day": true, "patch_ids": ["0f2bb015425a1155e776a74158ca4a93"], "statement_hash": "b74c6634d11cb3e66f64639c7ad351ac71400257ec790ae2a321eefe3d8cd41f"}}, {"rule": 2, "type": "equivalent", "target": "f75d7d0b1dd8aa9b969fa8e88a6febe4", "evidence": {"same_day": true, "patch_ids": ["0f2bb015425a1155e776a74158ca4a93"], "statement_hash": "b74c6634d11cb3e66f64639c7ad351ac71400257ec790ae2a321eefe3d8cd41f"}}], "version": "13.12", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "ae85f7f04a7d36b6403e07b39e6e4ddf", "kind": "equivalent", "version": "15.4", "label": "15.4", "title": "修复 C++ 内存不足情况的错误处理", "evidence": {"same_day": true, "patch_ids": ["0f2bb015425a1155e776a74158ca4a93"], "statement_hash": "b74c6634d11cb3e66f64639c7ad351ac71400257ec790ae2a321eefe3d8cd41f"}, "url": "/docs/compare/?release=15.4#15.4-1cf0313471a3d44a", "source_url": "/docs/release/15.4/#ZH-AUTO-RELEASE-15-SECT2-28"}, {"db_id": "f75d7d0b1dd8aa9b969fa8e88a6febe4", "kind": "equivalent", "version": "14.9", "label": "14.9", "title": "修复 C++ 内存不足情况的错误处理", "evidence": {"same_day": true, "patch_ids": ["0f2bb015425a1155e776a74158ca4a93"], "statement_hash": "b74c6634d11cb3e66f64639c7ad351ac71400257ec790ae2a321eefe3d8cd41f"}, "url": "/docs/compare/?release=14.9#14.9-b94609a53f1b3e2c", "source_url": "/docs/release/14.9/#ZH-AUTO-RELEASE-14-SECT2-28"}, {"db_id": "96898e43e86461d367e2a37792585a0b", "kind": "equivalent", "version": "12.16", "label": "12.16", "title": "修复 C++ 内存不足情况的错误处理", "evidence": {"same_day": true, "patch_ids": ["0f2bb015425a1155e776a74158ca4a93"], "statement_hash": "b74c6634d11cb3e66f64639c7ad351ac71400257ec790ae2a321eefe3d8cd41f"}, "url": "/docs/compare/?release=12.16#12.16-be08c48a296dc03c", "source_url": "/docs/release/12.16/#id-1.11.6.12.5"}, {"db_id": "757d3172dbdf2effbbbfc156a10c873f", "kind": "equivalent", "version": "11.21", "label": "11.21", "title": "修复 C++ 内存不足情况的错误处理", "evidence": {"same_day": true, "patch_ids": ["0f2bb015425a1155e776a74158ca4a93"], "statement_hash": "b74c6634d11cb3e66f64639c7ad351ac71400257ec790ae2a321eefe3d8cd41f"}, "url": "/docs/compare/?release=11.21#11.21-1d61aea89a3f63a1", "source_url": "/docs/release/11.21/#id-1.11.6.6.6"}]}, {"id": "13.12-05b56ef9a5caea34", "cves": [], "html": "<p>修复 <code>plancache.c</code> 中罕见的空指针崩溃（Tom Lane）<a href=\"https://postgr.es/c/291c02540\">§</a></p>", "text": "修复 plancache.c 中罕见的空指针崩溃（Tom Lane）§", "title": "修复 plancache.c 中罕见的空指针崩溃", "commits": ["291c02540"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/13.12/#id-1.11.6.17.5", "source_hash": "427c277053e8567b7b094c6be0de13b3a1ea597cdc94607407277475a9756396", "section_path": ["变更"], "commit_groups": [["10fd061bb", "291c02540", "9089287aa", "c0f531396", "fbaf65cd6"]], "identity_text": "Fix rare null-pointer crash in plancache.c (Tom Lane)", "commit_aliases": ["10fd061bb", "291c02540", "9089287aa", "c0f531396", "fbaf65cd6"], "source_commits": ["291c02540"], "source_entry_id": "13.12/changes/020", "db_id": "416a3641213c73a32bd35a963e4bee7f", "patch_ids": ["96c6c8d6c752b0095cc461cbc2ca623a"], "statement_hash": "edd65048cd8428912baf8e0c564ad37f1340bfc3012ee146c4ba8c1193c9f274", "relations": [{"rule": 2, "type": "equivalent", "target": "0657ca49a3b5cf68484b851738ad1670", "evidence": {"same_day": true, "patch_ids": ["96c6c8d6c752b0095cc461cbc2ca623a"], "statement_hash": "edd65048cd8428912baf8e0c564ad37f1340bfc3012ee146c4ba8c1193c9f274"}}, {"rule": 2, "type": "equivalent", "target": "c379221b952ffe484034b056c8de56ea", "evidence": {"same_day": true, "patch_ids": ["96c6c8d6c752b0095cc461cbc2ca623a"], "statement_hash": "edd65048cd8428912baf8e0c564ad37f1340bfc3012ee146c4ba8c1193c9f274"}}], "version": "13.12", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "c379221b952ffe484034b056c8de56ea", "kind": "equivalent", "version": "15.4", "label": "15.4", "title": "修复 plancache.c 中罕见的空指针崩溃", "evidence": {"same_day": true, "patch_ids": ["96c6c8d6c752b0095cc461cbc2ca623a"], "statement_hash": "edd65048cd8428912baf8e0c564ad37f1340bfc3012ee146c4ba8c1193c9f274"}, "url": "/docs/compare/?release=15.4#15.4-a2f319dae531d3ef", "source_url": "/docs/release/15.4/#ZH-AUTO-RELEASE-15-SECT2-28"}, {"db_id": "0657ca49a3b5cf68484b851738ad1670", "kind": "equivalent", "version": "14.9", "label": "14.9", "title": "修复 plancache.c 中罕见的空指针崩溃", "evidence": {"same_day": true, "patch_ids": ["96c6c8d6c752b0095cc461cbc2ca623a"], "statement_hash": "edd65048cd8428912baf8e0c564ad37f1340bfc3012ee146c4ba8c1193c9f274"}, "url": "/docs/compare/?release=14.9#14.9-f9e8d7d02893062a", "source_url": "/docs/release/14.9/#ZH-AUTO-RELEASE-14-SECT2-28"}]}, {"id": "13.12-ef678d36af38c6a8", "cves": [], "html": "<p>避免在页面释放导致空闲空间范围合并时丢失对可能有用的共享内存段的跟踪（Dongming Liu）<a href=\"https://postgr.es/c/a0003572f\">§</a></p>\n<p>确保将该段移动到与其新的空闲空间量相应的 <span>“<span>bin</span>”</span> 中，以便后续搜索能够找到它。</p>", "text": "避免在页面释放导致空闲空间范围合并时丢失对可能有用的共享内存段的跟踪（Dongming Liu）§ 确保将该段移动到与其新的空闲空间量相应的 “bin” 中，以便后续搜索能够找到它。", "title": "避免在页面释放导致空闲空间范围合并时丢失对可能有用的共享内存段的跟踪", "commits": ["a0003572f"], "section": "变更", "category": "improvement", "source_url": "/docs/release/13.12/#id-1.11.6.17.5", "source_hash": "5a3d95e4906ae6e604937725ac539200ec09f7f56ed9798f5af3f09ef286e86f", "section_path": ["变更"], "commit_groups": [["03f80daac", "1605623ec", "74ad9b0d1", "9ffb10f18", "a0003572f", "af8f9ec66", "b7ec66731"]], "identity_text": "Avoid losing track of possibly-useful shared memory segments when a page free results in coalescing ranges of free space (Dongming Liu) Ensure that the segment is moved into the appropriate bin for its new amount of free space, so that it will be found by subsequent searches.", "commit_aliases": ["03f80daac", "1605623ec", "74ad9b0d1", "9ffb10f18", "a0003572f", "af8f9ec66", "b7ec66731"], "source_commits": ["a0003572f"], "source_entry_id": "13.12/changes/021", "db_id": "69cd2539014f8f414b8eb920e0de5c0a", "patch_ids": ["42d563bce29c65d2de619aff4f52d2f3"], "statement_hash": "d96072c73a1c0a5c772e596a7a4474dd653e23167ee0da74dd828d6b588d03ec", "relations": [{"rule": 2, "type": "equivalent", "target": "3b7137fa8ef0091fe6770800f3de0330", "evidence": {"same_day": true, "patch_ids": ["42d563bce29c65d2de619aff4f52d2f3"], "statement_hash": "d96072c73a1c0a5c772e596a7a4474dd653e23167ee0da74dd828d6b588d03ec"}}, {"rule": 2, "type": "equivalent", "target": "7aecad2319109a406bf6b86ff10bb49b", "evidence": {"same_day": true, "patch_ids": ["42d563bce29c65d2de619aff4f52d2f3"], "statement_hash": "d96072c73a1c0a5c772e596a7a4474dd653e23167ee0da74dd828d6b588d03ec"}}, {"rule": 2, "type": "equivalent", "target": "dd2140fa9c654962ce9162189f9e402c", "evidence": {"same_day": true, "patch_ids": ["42d563bce29c65d2de619aff4f52d2f3"], "statement_hash": "d96072c73a1c0a5c772e596a7a4474dd653e23167ee0da74dd828d6b588d03ec"}}, {"rule": 2, "type": "equivalent", "target": "f36b990b91a13485cb657c918030eb43", "evidence": {"same_day": true, "patch_ids": ["42d563bce29c65d2de619aff4f52d2f3"], "statement_hash": "d96072c73a1c0a5c772e596a7a4474dd653e23167ee0da74dd828d6b588d03ec"}}], "version": "13.12", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "3b7137fa8ef0091fe6770800f3de0330", "kind": "equivalent", "version": "15.4", "label": "15.4", "title": "避免在页面释放导致空闲空间范围合并时丢失对可能有用的共享内存段的跟踪", "evidence": {"same_day": true, "patch_ids": ["42d563bce29c65d2de619aff4f52d2f3"], "statement_hash": "d96072c73a1c0a5c772e596a7a4474dd653e23167ee0da74dd828d6b588d03ec"}, "url": "/docs/compare/?release=15.4#15.4-42666ece97db5e94", "source_url": "/docs/release/15.4/#ZH-AUTO-RELEASE-15-SECT2-28"}, {"db_id": "dd2140fa9c654962ce9162189f9e402c", "kind": "equivalent", "version": "14.9", "label": "14.9", "title": "避免在页面释放导致空闲空间范围合并时丢失对可能有用的共享内存段的跟踪", "evidence": {"same_day": true, "patch_ids": ["42d563bce29c65d2de619aff4f52d2f3"], "statement_hash": "d96072c73a1c0a5c772e596a7a4474dd653e23167ee0da74dd828d6b588d03ec"}, "url": "/docs/compare/?release=14.9#14.9-4098fc86ec39b3ae", "source_url": "/docs/release/14.9/#ZH-AUTO-RELEASE-14-SECT2-28"}, {"db_id": "f36b990b91a13485cb657c918030eb43", "kind": "equivalent", "version": "12.16", "label": "12.16", "title": "避免在页面释放导致空闲空间范围合并时丢失对可能有用的共享内存段的跟踪", "evidence": {"same_day": true, "patch_ids": ["42d563bce29c65d2de619aff4f52d2f3"], "statement_hash": "d96072c73a1c0a5c772e596a7a4474dd653e23167ee0da74dd828d6b588d03ec"}, "url": "/docs/compare/?release=12.16#12.16-14b5f40e281f3a33", "source_url": "/docs/release/12.16/#id-1.11.6.12.5"}, {"db_id": "7aecad2319109a406bf6b86ff10bb49b", "kind": "equivalent", "version": "11.21", "label": "11.21", "title": "避免在页面释放导致空闲空间范围合并时丢失对可能有用的共享内存段的跟踪", "evidence": {"same_day": true, "patch_ids": ["42d563bce29c65d2de619aff4f52d2f3"], "statement_hash": "d96072c73a1c0a5c772e596a7a4474dd653e23167ee0da74dd828d6b588d03ec"}, "url": "/docs/compare/?release=11.21#11.21-747a0a61546cab58", "source_url": "/docs/release/11.21/#id-1.11.6.6.6"}]}, {"id": "13.12-b73d9abae9f91a71", "cves": [], "html": "<p>允许 <code>VACUUM</code> 在检测到某些类型的 B-树索引损坏后继续执行（Peter Geoghegan）<a href=\"https://postgr.es/c/b6311824f\">§</a> <a href=\"https://postgr.es/c/8f876d15c\">§</a></p>\n<p>如果检测到无效的兄弟页面链接，记录该问题并继续执行，而不是像之前那样抛出错误。只有 <code>REINDEX</code> 才能修复损坏的索引，但阻止 <code>VACUUM</code> 在此之前完成可能会使情况变得更糟。</p>", "text": "允许 VACUUM 在检测到某些类型的 B-树索引损坏后继续执行（Peter Geoghegan）§ § 如果检测到无效的兄弟页面链接，记录该问题并继续执行，而不是像之前那样抛出错误。只有 REINDEX 才能修复损坏的索引，但阻止 VACUUM 在此之前完成可能会使情况变得更糟。", "title": "允许 VACUUM 在检测到某些类型的 B-树索引损坏后继续执行", "commits": ["8f876d15c", "b6311824f"], "section": "变更", "category": "improvement", "source_url": "/docs/release/13.12/#id-1.11.6.17.5", "source_hash": "302a3bb82e4beec197562a0d7ba1f5cc0300db300f739feb3ca79306b04c4584", "section_path": ["变更"], "commit_groups": [["188dad680", "322c9b340", "5abff197c", "6983a5112", "8f876d15c", "a72b503ca"], ["355917c07", "5f0762f14", "63fa0deb3", "642bec1f8", "7ddba19eb", "b6311824f"]], "identity_text": "Allow VACUUM to continue after detecting certain types of b-tree index corruption (Peter Geoghegan) If an invalid sibling-page link is detected, log the issue and press on, rather than throwing an error as before. Nothing short of REINDEX will fix the broken index, but preventing VACUUM from completing until that is done risks making matters far worse.", "commit_aliases": ["188dad680", "322c9b340", "355917c07", "5abff197c", "5f0762f14", "63fa0deb3", "642bec1f8", "6983a5112", "7ddba19eb", "8f876d15c", "a72b503ca", "b6311824f"], "source_commits": ["8f876d15c", "b6311824f"], "source_entry_id": "13.12/changes/022", "db_id": "a9141d6478c75bf3e881cad7473c3845", "patch_ids": ["47fc332937773c1117907b8ce33587f5", "9ad7b4d1741d7488476fc58c7cd30389"], "statement_hash": "e375359809c4d5911f1549c1658db07da6de407caa8f6e0790c788ee51f7ec59", "relations": [{"rule": 2, "type": "equivalent", "target": "0a89bb207effe674187e329750d0375e", "evidence": {"same_day": true, "patch_ids": ["47fc332937773c1117907b8ce33587f5", "9ad7b4d1741d7488476fc58c7cd30389"], "statement_hash": "e375359809c4d5911f1549c1658db07da6de407caa8f6e0790c788ee51f7ec59"}}, {"rule": 2, "type": "equivalent", "target": "2e1e0133c0014a8e79d055f84ec32255", "evidence": {"same_day": true, "patch_ids": ["47fc332937773c1117907b8ce33587f5", "9ad7b4d1741d7488476fc58c7cd30389"], "statement_hash": "e375359809c4d5911f1549c1658db07da6de407caa8f6e0790c788ee51f7ec59"}}, {"rule": 2, "type": "equivalent", "target": "fca791223a053223cf98f2d306ab4d4b", "evidence": {"same_day": true, "patch_ids": ["47fc332937773c1117907b8ce33587f5", "9ad7b4d1741d7488476fc58c7cd30389"], "statement_hash": "e375359809c4d5911f1549c1658db07da6de407caa8f6e0790c788ee51f7ec59"}}, {"rule": 2, "type": "equivalent", "target": "ffc290a79a16a36a3f6292aaf4ce8eba", "evidence": {"same_day": true, "patch_ids": ["47fc332937773c1117907b8ce33587f5", "9ad7b4d1741d7488476fc58c7cd30389"], "statement_hash": "e375359809c4d5911f1549c1658db07da6de407caa8f6e0790c788ee51f7ec59"}}], "version": "13.12", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "fca791223a053223cf98f2d306ab4d4b", "kind": "equivalent", "version": "15.4", "label": "15.4", "title": "允许 VACUUM 在检测到某些类型的 B-树索引损坏后继续执行", "evidence": {"same_day": true, "patch_ids": ["47fc332937773c1117907b8ce33587f5", "9ad7b4d1741d7488476fc58c7cd30389"], "statement_hash": "e375359809c4d5911f1549c1658db07da6de407caa8f6e0790c788ee51f7ec59"}, "url": "/docs/compare/?release=15.4#15.4-92ca09ecfe8e79ab", "source_url": "/docs/release/15.4/#ZH-AUTO-RELEASE-15-SECT2-28"}, {"db_id": "2e1e0133c0014a8e79d055f84ec32255", "kind": "equivalent", "version": "14.9", "label": "14.9", "title": "允许 VACUUM 在检测到某些类型的 B-树索引损坏后继续执行", "evidence": {"same_day": true, "patch_ids": ["47fc332937773c1117907b8ce33587f5", "9ad7b4d1741d7488476fc58c7cd30389"], "statement_hash": "e375359809c4d5911f1549c1658db07da6de407caa8f6e0790c788ee51f7ec59"}, "url": "/docs/compare/?release=14.9#14.9-92ca09ecfe8e79ab", "source_url": "/docs/release/14.9/#ZH-AUTO-RELEASE-14-SECT2-28"}, {"db_id": "ffc290a79a16a36a3f6292aaf4ce8eba", "kind": "equivalent", "version": "12.16", "label": "12.16", "title": "允许 VACUUM 在检测到某些类型的 B-树索引损坏后继续执行", "evidence": {"same_day": true, "patch_ids": ["47fc332937773c1117907b8ce33587f5", "9ad7b4d1741d7488476fc58c7cd30389"], "statement_hash": "e375359809c4d5911f1549c1658db07da6de407caa8f6e0790c788ee51f7ec59"}, "url": "/docs/compare/?release=12.16#12.16-db3b03ae69b7b717", "source_url": "/docs/release/12.16/#id-1.11.6.12.5"}, {"db_id": "0a89bb207effe674187e329750d0375e", "kind": "equivalent", "version": "11.21", "label": "11.21", "title": "允许 VACUUM 在检测到某些类型的 B-树索引损坏后继续执行", "evidence": {"same_day": true, "patch_ids": ["47fc332937773c1117907b8ce33587f5", "9ad7b4d1741d7488476fc58c7cd30389"], "statement_hash": "e375359809c4d5911f1549c1658db07da6de407caa8f6e0790c788ee51f7ec59"}, "url": "/docs/compare/?release=11.21#11.21-1f4155fcca2d6c3d", "source_url": "/docs/release/11.21/#id-1.11.6.6.6"}]}, {"id": "13.12-5386073eae102d79", "cves": [], "html": "<p>确保在 <code>VACUUM</code> 检测到 <code>pg_database</code>.<code>datfrozenxid</code> 或 <code>pg_database</code>.<code>datminmxid</code> 中的无效数据后释放 <code>WrapLimitsVacuumLock</code>（Andres Freund）<a href=\"https://postgr.es/c/53336e8f6\">§</a></p>\n<p>未能释放此锁可能导致后续死锁，尽管如果会话退出或遇到其他错误，该锁会被清理。</p>", "text": "确保在 VACUUM 检测到 pg_database.datfrozenxid 或 pg_database.datminmxid 中的无效数据后释放 WrapLimitsVacuumLock（Andres Freund）§ 未能释放此锁可能导致后续死锁，尽管如果会话退出或遇到其他错误，该锁会被清理。", "title": "确保在 VACUUM 检测到 pg_database.datfrozenxid 或 pg_database.datminmxid 中的无效数据后释放 WrapLimitsVacuumLock", "commits": ["53336e8f6"], "section": "变更", "category": "improvement", "source_url": "/docs/release/13.12/#id-1.11.6.17.5", "source_hash": "955d843b52df6ec9793c25af5b1ae3b591812150c6704301eff1133c53797e36", "section_path": ["变更"], "commit_groups": [["03ccc9569", "1386f0987", "53336e8f6", "7aec84e4c", "82e97b864", "83ecfa9fa", "e246fd423"]], "identity_text": "Ensure that WrapLimitsVacuumLock is released after VACUUM detects invalid data in pg_database.datfrozenxid or pg_database.datminmxid (Andres Freund) Failure to release this lock could lead to a deadlock later, although the lock would be cleaned up if the session exits or encounters some other error.", "commit_aliases": ["03ccc9569", "1386f0987", "53336e8f6", "7aec84e4c", "82e97b864", "83ecfa9fa", "e246fd423"], "source_commits": ["53336e8f6"], "source_entry_id": "13.12/changes/023", "db_id": "894f99c5b8c44b0f88369ccb5cf92d68", "patch_ids": ["1b6b8275886323aadcadf7c2b11b0c8b"], "statement_hash": "5672c1727ae63c393bcd3714d3a6af661200d977ae1ec6b2fb9517889007db99", "relations": [{"rule": 2, "type": "equivalent", "target": "00ed0ec03b25cebab6a578b7a1cb0d5e", "evidence": {"same_day": true, "patch_ids": ["1b6b8275886323aadcadf7c2b11b0c8b"], "statement_hash": "5672c1727ae63c393bcd3714d3a6af661200d977ae1ec6b2fb9517889007db99"}}, {"rule": 2, "type": "equivalent", "target": "9e1c36701bee34cefa6f645874690e82", "evidence": {"same_day": true, "patch_ids": ["1b6b8275886323aadcadf7c2b11b0c8b"], "statement_hash": "5672c1727ae63c393bcd3714d3a6af661200d977ae1ec6b2fb9517889007db99"}}, {"rule": 2, "type": "equivalent", "target": "d39abc48a5fe5355d64052920a291087", "evidence": {"same_day": true, "patch_ids": ["1b6b8275886323aadcadf7c2b11b0c8b"], "statement_hash": "5672c1727ae63c393bcd3714d3a6af661200d977ae1ec6b2fb9517889007db99"}}, {"rule": 2, "type": "equivalent", "target": "ef3bd6456d4a5f2b6208d225b50d162e", "evidence": {"same_day": true, "patch_ids": ["1b6b8275886323aadcadf7c2b11b0c8b"], "statement_hash": "5672c1727ae63c393bcd3714d3a6af661200d977ae1ec6b2fb9517889007db99"}}], "version": "13.12", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "9e1c36701bee34cefa6f645874690e82", "kind": "equivalent", "version": "15.4", "label": "15.4", "title": "确保在 VACUUM 检测到 pg_database.datfrozenxid 或 pg_database.datminmxid 中的无效数据后释放 WrapLimitsVacuumLock", "evidence": {"same_day": true, "patch_ids": ["1b6b8275886323aadcadf7c2b11b0c8b"], "statement_hash": "5672c1727ae63c393bcd3714d3a6af661200d977ae1ec6b2fb9517889007db99"}, "url": "/docs/compare/?release=15.4#15.4-fc31e62c9d8f0773", "source_url": "/docs/release/15.4/#ZH-AUTO-RELEASE-15-SECT2-28"}, {"db_id": "00ed0ec03b25cebab6a578b7a1cb0d5e", "kind": "equivalent", "version": "14.9", "label": "14.9", "title": "确保在 VACUUM 检测到 pg_database.datfrozenxid 或 pg_database.datminmxid 中的无效数据后释放 WrapLimitsVacuumLock", "evidence": {"same_day": true, "patch_ids": ["1b6b8275886323aadcadf7c2b11b0c8b"], "statement_hash": "5672c1727ae63c393bcd3714d3a6af661200d977ae1ec6b2fb9517889007db99"}, "url": "/docs/compare/?release=14.9#14.9-1dea824292b15109", "source_url": "/docs/release/14.9/#ZH-AUTO-RELEASE-14-SECT2-28"}, {"db_id": "ef3bd6456d4a5f2b6208d225b50d162e", "kind": "equivalent", "version": "12.16", "label": "12.16", "title": "确保在 VACUUM 检测到 pg_database.datfrozenxid 或 pg_database.datminmxid 中的无效数据后释放 WrapLimitsVacuumLock", "evidence": {"same_day": true, "patch_ids": ["1b6b8275886323aadcadf7c2b11b0c8b"], "statement_hash": "5672c1727ae63c393bcd3714d3a6af661200d977ae1ec6b2fb9517889007db99"}, "url": "/docs/compare/?release=12.16#12.16-2cec84cf87742742", "source_url": "/docs/release/12.16/#id-1.11.6.12.5"}, {"db_id": "d39abc48a5fe5355d64052920a291087", "kind": "equivalent", "version": "11.21", "label": "11.21", "title": "确保在 VACUUM 检测到 pg_database.datfrozenxid 或 pg_database.datminmxid 中的无效数据后释放 WrapLimitsVacuumLock", "evidence": {"same_day": true, "patch_ids": ["1b6b8275886323aadcadf7c2b11b0c8b"], "statement_hash": "5672c1727ae63c393bcd3714d3a6af661200d977ae1ec6b2fb9517889007db99"}, "url": "/docs/compare/?release=11.21#11.21-b1b8389ad0084b61", "source_url": "/docs/release/11.21/#id-1.11.6.6.6"}]}, {"id": "13.12-89bb2fdb46f2412c", "cves": [], "html": "<p>避免在崩溃恢复期间对预备事务的双重重放（suyu.cmj，Michael Paquier）<a href=\"https://postgr.es/c/db59108a2\">§</a> <a href=\"https://postgr.es/c/b3ca4f0a5\">§</a></p>\n<p>在检查点进行到部分时发生崩溃，且某些两阶段事务状态数据已被该检查点刷新到磁盘后，崩溃恢复可能尝试两次重放预备事务，导致诸如启动进程中 <span>“<span>lock is already held</span>”</span> 之类的致命错误。</p>", "text": "避免在崩溃恢复期间对预备事务的双重重放（suyu.cmj，Michael Paquier）§ § 在检查点进行到部分时发生崩溃，且某些两阶段事务状态数据已被该检查点刷新到磁盘后，崩溃恢复可能尝试两次重放预备事务，导致诸如启动进程中 “lock is already held” 之类的致命错误。", "title": "避免在崩溃恢复期间对预备事务的双重重放", "commits": ["b3ca4f0a5", "db59108a2"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/13.12/#id-1.11.6.17.5", "source_hash": "03fed72890c969bd71f39fedaf9241ae50446d27032d96ef93f44ad419332c11", "section_path": ["变更"], "commit_groups": [["410a0d6bd", "4e465aac3", "6c7bffc09", "763d26205", "926aa6d11", "b3ca4f0a5", "f6ecd2622"], ["442749100", "a878eff6b", "bc0581f8f", "cb0cca188", "d2ee542a2", "db59108a2", "f88bc9f38"]], "identity_text": "Avoid double replay of prepared transactions during crash recovery (suyu.cmj, Michael Paquier) After a crash partway through a checkpoint with some two-phase transaction state data already flushed to disk by this checkpoint, crash recovery could attempt to replay the prepared transaction(s) twice, leading to a fatal error such as lock is already held in the startup process.", "commit_aliases": ["410a0d6bd", "442749100", "4e465aac3", "6c7bffc09", "763d26205", "926aa6d11", "a878eff6b", "b3ca4f0a5", "bc0581f8f", "cb0cca188", "d2ee542a2", "db59108a2", "f6ecd2622", "f88bc9f38"], "source_commits": ["b3ca4f0a5", "db59108a2"], "source_entry_id": "13.12/changes/024", "db_id": "1dd0c2289a3930838087a741e59383ff", "patch_ids": ["3a45aa80b8b14881f3f8228d127209ec", "6af3f18449915f359df7d07ca8fcc1d1"], "statement_hash": "65878e2d2f00a878c28a92bd762f98ee3c581256d85150f377dbdd4e3f6b3642", "relations": [{"rule": 2, "type": "equivalent", "target": "35150195e25fe8d39793a02efbe04a98", "evidence": {"same_day": true, "patch_ids": ["3a45aa80b8b14881f3f8228d127209ec", "6af3f18449915f359df7d07ca8fcc1d1"], "statement_hash": "65878e2d2f00a878c28a92bd762f98ee3c581256d85150f377dbdd4e3f6b3642"}}, {"rule": 2, "type": "equivalent", "target": "6de9bddc7179e995dcbe61e6b02ea148", "evidence": {"same_day": true, "patch_ids": ["3a45aa80b8b14881f3f8228d127209ec", "6af3f18449915f359df7d07ca8fcc1d1"], "statement_hash": "65878e2d2f00a878c28a92bd762f98ee3c581256d85150f377dbdd4e3f6b3642"}}, {"rule": 2, "type": "equivalent", "target": "83c59769f8098ea6ed99f5811a142385", "evidence": {"same_day": true, "patch_ids": ["3a45aa80b8b14881f3f8228d127209ec", "6af3f18449915f359df7d07ca8fcc1d1"], "statement_hash": "65878e2d2f00a878c28a92bd762f98ee3c581256d85150f377dbdd4e3f6b3642"}}, {"rule": 2, "type": "equivalent", "target": "93d6a8b730835d9767fd1c267a65ae5f", "evidence": {"same_day": true, "patch_ids": ["3a45aa80b8b14881f3f8228d127209ec", "6af3f18449915f359df7d07ca8fcc1d1"], "statement_hash": "65878e2d2f00a878c28a92bd762f98ee3c581256d85150f377dbdd4e3f6b3642"}}], "version": "13.12", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "6de9bddc7179e995dcbe61e6b02ea148", "kind": "equivalent", "version": "15.4", "label": "15.4", "title": "避免在崩溃恢复期间对预备事务的双重重放", "evidence": {"same_day": true, "patch_ids": ["3a45aa80b8b14881f3f8228d127209ec", "6af3f18449915f359df7d07ca8fcc1d1"], "statement_hash": "65878e2d2f00a878c28a92bd762f98ee3c581256d85150f377dbdd4e3f6b3642"}, "url": "/docs/compare/?release=15.4#15.4-6bc807bdc7eebba6", "source_url": "/docs/release/15.4/#ZH-AUTO-RELEASE-15-SECT2-28"}, {"db_id": "35150195e25fe8d39793a02efbe04a98", "kind": "equivalent", "version": "14.9", "label": "14.9", "title": "避免在崩溃恢复期间对预备事务的双重重放", "evidence": {"same_day": true, "patch_ids": ["3a45aa80b8b14881f3f8228d127209ec", "6af3f18449915f359df7d07ca8fcc1d1"], "statement_hash": "65878e2d2f00a878c28a92bd762f98ee3c581256d85150f377dbdd4e3f6b3642"}, "url": "/docs/compare/?release=14.9#14.9-0382da9acd961b32", "source_url": "/docs/release/14.9/#ZH-AUTO-RELEASE-14-SECT2-28"}, {"db_id": "83c59769f8098ea6ed99f5811a142385", "kind": "equivalent", "version": "12.16", "label": "12.16", "title": "避免在崩溃恢复期间对预备事务的双重重放", "evidence": {"same_day": true, "patch_ids": ["3a45aa80b8b14881f3f8228d127209ec", "6af3f18449915f359df7d07ca8fcc1d1"], "statement_hash": "65878e2d2f00a878c28a92bd762f98ee3c581256d85150f377dbdd4e3f6b3642"}, "url": "/docs/compare/?release=12.16#12.16-f9f6fd1df57a51a6", "source_url": "/docs/release/12.16/#id-1.11.6.12.5"}, {"db_id": "93d6a8b730835d9767fd1c267a65ae5f", "kind": "equivalent", "version": "11.21", "label": "11.21", "title": "避免在崩溃恢复期间对预备事务的双重重放", "evidence": {"same_day": true, "patch_ids": ["3a45aa80b8b14881f3f8228d127209ec", "6af3f18449915f359df7d07ca8fcc1d1"], "statement_hash": "65878e2d2f00a878c28a92bd762f98ee3c581256d85150f377dbdd4e3f6b3642"}, "url": "/docs/compare/?release=11.21#11.21-a9aa575b4aec54c3", "source_url": "/docs/release/11.21/#id-1.11.6.6.6"}]}, {"id": "13.12-ffb1095dd803fc46", "cves": [], "html": "<p>修复在启用归档且需要恢复两阶段事务时提升备库可能出现的失败（Julian Markwort）<a href=\"https://postgr.es/c/896012b88\">§</a></p>\n<p>如果任何必需的两阶段事务记录在最新的（不完整的）日志段中，提升将失败并错误地报告 <span>“<span>requested WAL segment has already been removed</span>”</span>。</p>", "text": "修复在启用归档且需要恢复两阶段事务时提升备库可能出现的失败（Julian Markwort）§ 如果任何必需的两阶段事务记录在最新的（不完整的）日志段中，提升将失败并错误地报告 “requested WAL segment has already been removed”。", "title": "修复在启用归档且需要恢复两阶段事务时提升备库可能出现的失败", "commits": ["896012b88"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/13.12/#id-1.11.6.17.5", "source_hash": "67496e1989de370bcba5d28f162ad011cfb5cb5844c49aaf89794c12775b9feb", "section_path": ["变更"], "commit_groups": [["896012b88", "f663b0091"]], "identity_text": "Fix possible failure while promoting a standby server, if archiving is enabled and two-phase transactions need to be recovered (Julian Markwort) If any required two-phase transactions were logged in the most recent (partial) log segment, promotion would fail with an incorrect complaint about requested WAL segment has already been removed.", "commit_aliases": ["896012b88", "f663b0091"], "source_commits": ["896012b88"], "source_entry_id": "13.12/changes/025", "db_id": "316c45261374f6d41617c3247691f957", "patch_ids": ["99e5f50b87cff1210c722c484bd9369e"], "statement_hash": "b99f49fc2059c208f14f70e0e646ec643c7b865fdd22e75fc485c201ae16946a", "relations": [{"rule": 2, "type": "equivalent", "target": "0fe8e7be24e37fda9ab3927d193c9c04", "evidence": {"same_day": true, "patch_ids": ["99e5f50b87cff1210c722c484bd9369e"], "statement_hash": "b99f49fc2059c208f14f70e0e646ec643c7b865fdd22e75fc485c201ae16946a"}}], "version": "13.12", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "0fe8e7be24e37fda9ab3927d193c9c04", "kind": "equivalent", "version": "14.9", "label": "14.9", "title": "修复在启用归档且需要恢复两阶段事务时提升备库可能出现的失败", "evidence": {"same_day": true, "patch_ids": ["99e5f50b87cff1210c722c484bd9369e"], "statement_hash": "b99f49fc2059c208f14f70e0e646ec643c7b865fdd22e75fc485c201ae16946a"}, "url": "/docs/compare/?release=14.9#14.9-f5a6ba13c54a2639", "source_url": "/docs/release/14.9/#ZH-AUTO-RELEASE-14-SECT2-28"}]}, {"id": "13.12-6b802c88945c201c", "cves": [], "html": "<p>确保新建但仍为空的表在下一次检查点时执行 <code>fsync</code>（Heikki Linnakangas）<a href=\"https://postgr.es/c/acc8cdff4\">§</a></p>\n<p>如果没有这一步，在操作系统崩溃导致空文件消失后，对该表的后续操作可能会出现 <span>“<span>could not open file</span>”</span> 错误。</p>", "text": "确保新建但仍为空的表在下一次检查点时执行 fsync（Heikki Linnakangas）§ 如果没有这一步，在操作系统崩溃导致空文件消失后，对该表的后续操作可能会出现 “could not open file” 错误。", "title": "确保新建但仍为空的表在下一次检查点时执行 fsync", "commits": ["acc8cdff4"], "section": "变更", "category": "improvement", "source_url": "/docs/release/13.12/#id-1.11.6.17.5", "source_hash": "f6bebf5d2934c2b3cc308412769e57c2330c1cac1838f57390155eb329592b4f", "section_path": ["变更"], "commit_groups": [["1b4f1c6f8", "4b4798e13", "6377f705c", "acc8cdff4", "d431644b4", "d85bf0719", "e24c02e4d"]], "identity_text": "Ensure that a newly created, but still empty table is fsync'ed at the next checkpoint (Heikki Linnakangas) Without this, if there is an operating system crash causing the empty file to disappear, subsequent operations on the table might fail with could not open file errors.", "commit_aliases": ["1b4f1c6f8", "4b4798e13", "6377f705c", "acc8cdff4", "d431644b4", "d85bf0719", "e24c02e4d"], "source_commits": ["acc8cdff4"], "source_entry_id": "13.12/changes/026", "db_id": "5a60a576107e98788cfc7b1335fbb197", "patch_ids": ["049dbff6a2f0b385b517bcd7f437e841"], "statement_hash": "409e8a3ed9e99529bd95c83d017e6409283d734d80888c2300621d3f46190a82", "relations": [{"rule": 2, "type": "equivalent", "target": "1f24d024d1cc473b2b88022f067a97fe", "evidence": {"same_day": true, "patch_ids": ["049dbff6a2f0b385b517bcd7f437e841"], "statement_hash": "409e8a3ed9e99529bd95c83d017e6409283d734d80888c2300621d3f46190a82"}}, {"rule": 2, "type": "equivalent", "target": "55d592fd4725d51ec5b28a0ff2347039", "evidence": {"same_day": true, "patch_ids": ["049dbff6a2f0b385b517bcd7f437e841"], "statement_hash": "409e8a3ed9e99529bd95c83d017e6409283d734d80888c2300621d3f46190a82"}}, {"rule": 2, "type": "equivalent", "target": "c151b4e1d63b94f408b7d1bb9ffea7eb", "evidence": {"same_day": true, "patch_ids": ["049dbff6a2f0b385b517bcd7f437e841"], "statement_hash": "409e8a3ed9e99529bd95c83d017e6409283d734d80888c2300621d3f46190a82"}}, {"rule": 2, "type": "equivalent", "target": "dca66afe674adc9dbbeb5b1b7a00fd1a", "evidence": {"same_day": true, "patch_ids": ["049dbff6a2f0b385b517bcd7f437e841"], "statement_hash": "409e8a3ed9e99529bd95c83d017e6409283d734d80888c2300621d3f46190a82"}}], "version": "13.12", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "1f24d024d1cc473b2b88022f067a97fe", "kind": "equivalent", "version": "15.4", "label": "15.4", "title": "确保新建但仍为空的表在下一次检查点时执行 fsync", "evidence": {"same_day": true, "patch_ids": ["049dbff6a2f0b385b517bcd7f437e841"], "statement_hash": "409e8a3ed9e99529bd95c83d017e6409283d734d80888c2300621d3f46190a82"}, "url": "/docs/compare/?release=15.4#15.4-fca13900b4806e1f", "source_url": "/docs/release/15.4/#ZH-AUTO-RELEASE-15-SECT2-28"}, {"db_id": "dca66afe674adc9dbbeb5b1b7a00fd1a", "kind": "equivalent", "version": "14.9", "label": "14.9", "title": "确保新建但仍为空的表在下一次检查点时执行 fsync", "evidence": {"same_day": true, "patch_ids": ["049dbff6a2f0b385b517bcd7f437e841"], "statement_hash": "409e8a3ed9e99529bd95c83d017e6409283d734d80888c2300621d3f46190a82"}, "url": "/docs/compare/?release=14.9#14.9-467735f6fd2e0b6a", "source_url": "/docs/release/14.9/#ZH-AUTO-RELEASE-14-SECT2-28"}, {"db_id": "c151b4e1d63b94f408b7d1bb9ffea7eb", "kind": "equivalent", "version": "12.16", "label": "12.16", "title": "确保新建但仍为空的表在下一次检查点时执行 fsync", "evidence": {"same_day": true, "patch_ids": ["049dbff6a2f0b385b517bcd7f437e841"], "statement_hash": "409e8a3ed9e99529bd95c83d017e6409283d734d80888c2300621d3f46190a82"}, "url": "/docs/compare/?release=12.16#12.16-db5ef5a9a2ec27de", "source_url": "/docs/release/12.16/#id-1.11.6.12.5"}, {"db_id": "55d592fd4725d51ec5b28a0ff2347039", "kind": "equivalent", "version": "11.21", "label": "11.21", "title": "确保新建但仍为空的表在下一次检查点时执行 fsync", "evidence": {"same_day": true, "patch_ids": ["049dbff6a2f0b385b517bcd7f437e841"], "statement_hash": "409e8a3ed9e99529bd95c83d017e6409283d734d80888c2300621d3f46190a82"}, "url": "/docs/compare/?release=11.21#11.21-163c21f6b1c857ae", "source_url": "/docs/release/11.21/#id-1.11.6.6.6"}]}, {"id": "13.12-027cb2be867289ac", "cves": [], "html": "<p>确保不记录 WAL 的索引的 init fork 的创建被记录到 WAL（Heikki Linnakangas）<a href=\"https://postgr.es/c/c50b869ed\">§</a></p>\n<p>虽然不记录 WAL 的索引的主数据 fork 不记录 WAL，但其 init fork 应该记录，以确保在崩溃后有一个一致的状态来恢复索引。如果 init fork 不包含数据，则此步骤被遗漏，这是标准索引 AM 不使用的情况；但也许某些扩展会有这种行为。</p>", "text": "确保不记录 WAL 的索引的 init fork 的创建被记录到 WAL（Heikki Linnakangas）§ 虽然不记录 WAL 的索引的主数据 fork 不记录 WAL，但其 init fork 应该记录，以确保在崩溃后有一个一致的状态来恢复索引。如果 init fork 不包含数据，则此步骤被遗漏，这是标准索引 AM 不使用的情况；但也许某些扩展会有这种行为。", "title": "确保不记录 WAL 的索引的 init fork 的创建被记录到 WAL", "commits": ["c50b869ed"], "section": "变更", "category": "improvement", "source_url": "/docs/release/13.12/#id-1.11.6.17.5", "source_hash": "1f94a89beb10ca19378a3c8f368c845f10d97c0ebce089ae37cce1172afca15d", "section_path": ["变更"], "commit_groups": [["25624c5d3", "3142a8845", "32f327f68", "80abec387", "988719b88", "bf7b70e6b", "c50b869ed"]], "identity_text": "Ensure that creation of the init fork of an unlogged index is WAL-logged (Heikki Linnakangas) While an unlogged index's main data fork is not WAL-logged, its init fork should be, to ensure that we have a consistent state to restore the index to after a crash. This step was missed if the init fork contains no data, which is a case not used by any standard index AM; but perhaps some extension behaves that way.", "commit_aliases": ["25624c5d3", "3142a8845", "32f327f68", "80abec387", "988719b88", "bf7b70e6b", "c50b869ed"], "source_commits": ["c50b869ed"], "source_entry_id": "13.12/changes/027", "db_id": "f8c6097b6641e980e7ef9b9b1dcb2e3e", "patch_ids": ["b78093f0d064b321d5d6e08d7eba300f"], "statement_hash": "b28db5f39895a21a6b9a6ff2b1c31193f9326499fcc24fe6e56b63b22f21804c", "relations": [{"rule": 2, "type": "equivalent", "target": "1a6f5bdececb46ec6b0cf4157dcbcaa5", "evidence": {"same_day": true, "patch_ids": ["b78093f0d064b321d5d6e08d7eba300f"], "statement_hash": "b28db5f39895a21a6b9a6ff2b1c31193f9326499fcc24fe6e56b63b22f21804c"}}, {"rule": 2, "type": "equivalent", "target": "6229c2037e3574a942ab71441502ffc2", "evidence": {"same_day": true, "patch_ids": ["b78093f0d064b321d5d6e08d7eba300f"], "statement_hash": "b28db5f39895a21a6b9a6ff2b1c31193f9326499fcc24fe6e56b63b22f21804c"}}, {"rule": 2, "type": "equivalent", "target": "8d016bdc03fd9080c3d091b869de5a48", "evidence": {"same_day": true, "patch_ids": ["b78093f0d064b321d5d6e08d7eba300f"], "statement_hash": "b28db5f39895a21a6b9a6ff2b1c31193f9326499fcc24fe6e56b63b22f21804c"}}, {"rule": 2, "type": "equivalent", "target": "d00152ea427a7e39ed1a638687d4812c", "evidence": {"same_day": true, "patch_ids": ["b78093f0d064b321d5d6e08d7eba300f"], "statement_hash": "b28db5f39895a21a6b9a6ff2b1c31193f9326499fcc24fe6e56b63b22f21804c"}}], "version": "13.12", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "1a6f5bdececb46ec6b0cf4157dcbcaa5", "kind": "equivalent", "version": "15.4", "label": "15.4", "title": "确保不记录 WAL 的索引的 init fork 的创建被记录到 WAL", "evidence": {"same_day": true, "patch_ids": ["b78093f0d064b321d5d6e08d7eba300f"], "statement_hash": "b28db5f39895a21a6b9a6ff2b1c31193f9326499fcc24fe6e56b63b22f21804c"}, "url": "/docs/compare/?release=15.4#15.4-53cd2b1f69e1e446", "source_url": "/docs/release/15.4/#ZH-AUTO-RELEASE-15-SECT2-28"}, {"db_id": "6229c2037e3574a942ab71441502ffc2", "kind": "equivalent", "version": "14.9", "label": "14.9", "title": "确保不记录 WAL 的索引的 init fork 的创建被记录到 WAL", "evidence": {"same_day": true, "patch_ids": ["b78093f0d064b321d5d6e08d7eba300f"], "statement_hash": "b28db5f39895a21a6b9a6ff2b1c31193f9326499fcc24fe6e56b63b22f21804c"}, "url": "/docs/compare/?release=14.9#14.9-c6d8832fcb5e9cbe", "source_url": "/docs/release/14.9/#ZH-AUTO-RELEASE-14-SECT2-28"}, {"db_id": "8d016bdc03fd9080c3d091b869de5a48", "kind": "equivalent", "version": "12.16", "label": "12.16", "title": "确保不记录 WAL 的索引的 init fork 的创建被记录到 WAL", "evidence": {"same_day": true, "patch_ids": ["b78093f0d064b321d5d6e08d7eba300f"], "statement_hash": "b28db5f39895a21a6b9a6ff2b1c31193f9326499fcc24fe6e56b63b22f21804c"}, "url": "/docs/compare/?release=12.16#12.16-0a6d750c36e5e2d5", "source_url": "/docs/release/12.16/#id-1.11.6.12.5"}, {"db_id": "d00152ea427a7e39ed1a638687d4812c", "kind": "equivalent", "version": "11.21", "label": "11.21", "title": "确保不记录 WAL 的索引的 init fork 的创建被记录到 WAL", "evidence": {"same_day": true, "patch_ids": ["b78093f0d064b321d5d6e08d7eba300f"], "statement_hash": "b28db5f39895a21a6b9a6ff2b1c31193f9326499fcc24fe6e56b63b22f21804c"}, "url": "/docs/compare/?release=11.21#11.21-b8940c4b47887f6c", "source_url": "/docs/release/11.21/#id-1.11.6.6.6"}]}, {"id": "13.12-23f357f2ec9f465e", "cves": [], "html": "<p>修复延迟检查点结束标志的缺失重新初始化（suyu.cmj）<a href=\"https://postgr.es/c/37236ca06\">§</a></p>\n<p>这可能导致不必要的检查点延迟，或在启用断言的构建中出现断言失败。</p>", "text": "修复延迟检查点结束标志的缺失重新初始化（suyu.cmj）§ 这可能导致不必要的检查点延迟，或在启用断言的构建中出现断言失败。", "title": "修复延迟检查点结束标志的缺失重新初始化", "commits": ["37236ca06"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/13.12/#id-1.11.6.17.5", "source_hash": "d6a75ed2e6851540b146cdb3667e9e64457ab26fb85e3d74ce6f98a3f0e3ebaf", "section_path": ["变更"], "commit_groups": [["37236ca06", "9920552e1", "a9c3472e0", "c6043fcbb"]], "identity_text": "Fix missing reinitializations of delay-checkpoint-end flags (suyu.cmj) This could result in unnecessary delays of checkpoints, or in assertion failures in assert-enabled builds.", "commit_aliases": ["37236ca06", "9920552e1", "a9c3472e0", "c6043fcbb"], "source_commits": ["37236ca06"], "source_entry_id": "13.12/changes/028", "db_id": "7a5ac95c3865eee02041e106958bf426", "patch_ids": ["8222f8944a61534f18e1b417bd6b8e08"], "statement_hash": "3d96a7cce98eee11bf28dcfe9fcf2f08960a83d262f0febdf3813c3df5c7215b", "relations": [{"rule": 2, "type": "equivalent", "target": "677f3a5d38a340f83b68ea197bd7a61d", "evidence": {"same_day": true, "patch_ids": ["8222f8944a61534f18e1b417bd6b8e08"], "statement_hash": "3d96a7cce98eee11bf28dcfe9fcf2f08960a83d262f0febdf3813c3df5c7215b"}}, {"rule": 2, "type": "equivalent", "target": "e1be42be399f2071949ebc951f2d8dc3", "evidence": {"same_day": true, "patch_ids": ["8222f8944a61534f18e1b417bd6b8e08"], "statement_hash": "3d96a7cce98eee11bf28dcfe9fcf2f08960a83d262f0febdf3813c3df5c7215b"}}, {"rule": 2, "type": "equivalent", "target": "e5cedc41ae82e7f28ee0c8f8a9dfde53", "evidence": {"same_day": true, "patch_ids": ["8222f8944a61534f18e1b417bd6b8e08"], "statement_hash": "3d96a7cce98eee11bf28dcfe9fcf2f08960a83d262f0febdf3813c3df5c7215b"}}], "version": "13.12", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "e5cedc41ae82e7f28ee0c8f8a9dfde53", "kind": "equivalent", "version": "14.9", "label": "14.9", "title": "修复延迟检查点结束标志的缺失重新初始化", "evidence": {"same_day": true, "patch_ids": ["8222f8944a61534f18e1b417bd6b8e08"], "statement_hash": "3d96a7cce98eee11bf28dcfe9fcf2f08960a83d262f0febdf3813c3df5c7215b"}, "url": "/docs/compare/?release=14.9#14.9-62bf425246a4f5eb", "source_url": "/docs/release/14.9/#ZH-AUTO-RELEASE-14-SECT2-28"}, {"db_id": "677f3a5d38a340f83b68ea197bd7a61d", "kind": "equivalent", "version": "12.16", "label": "12.16", "title": "修复延迟检查点结束标志的缺失重新初始化", "evidence": {"same_day": true, "patch_ids": ["8222f8944a61534f18e1b417bd6b8e08"], "statement_hash": "3d96a7cce98eee11bf28dcfe9fcf2f08960a83d262f0febdf3813c3df5c7215b"}, "url": "/docs/compare/?release=12.16#12.16-3324b81134dd8ea0", "source_url": "/docs/release/12.16/#id-1.11.6.12.5"}, {"db_id": "e1be42be399f2071949ebc951f2d8dc3", "kind": "equivalent", "version": "11.21", "label": "11.21", "title": "修复延迟检查点结束标志的缺失重新初始化", "evidence": {"same_day": true, "patch_ids": ["8222f8944a61534f18e1b417bd6b8e08"], "statement_hash": "3d96a7cce98eee11bf28dcfe9fcf2f08960a83d262f0febdf3813c3df5c7215b"}, "url": "/docs/compare/?release=11.21#11.21-d555f0b500f89aee", "source_url": "/docs/release/11.21/#id-1.11.6.6.6"}]}, {"id": "13.12-709101d33587bcdc", "cves": [], "html": "<p>修复 <code>jsonpath</code> 代码中过于严格的断言（David Rowley）<a href=\"https://postgr.es/c/74a5bf1b6\">§</a></p>\n<p>如果查询对 <code>like_regex</code> 结果应用 <code>.type()</code> 操作符，则此断言会失败。在非断言构建中没有错误。</p>", "text": "修复 jsonpath 代码中过于严格的断言（David Rowley）§ 如果查询对 like_regex 结果应用 .type() 操作符，则此断言会失败。在非断言构建中没有错误。", "title": "修复 jsonpath 代码中过于严格的断言", "commits": ["74a5bf1b6"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/13.12/#id-1.11.6.17.5", "source_hash": "b59008334ecce92d10f59563235a7318389c71369ec5840b122a49b2d8c28f72", "section_path": ["变更"], "commit_groups": [["668990980", "67f3a697b", "74a5bf1b6", "b25acc302", "deae1657e", "f457f2ef1"]], "identity_text": "Fix overly strict assertion in jsonpath code (David Rowley) This assertion failed if a query applied the .type() operator to a like_regex result. There was no bug in non-assert builds.", "commit_aliases": ["668990980", "67f3a697b", "74a5bf1b6", "b25acc302", "deae1657e", "f457f2ef1"], "source_commits": ["74a5bf1b6"], "source_entry_id": "13.12/changes/029", "db_id": "3cc699b8ccba6ff8487aed923c5a41c9", "patch_ids": ["f1e37ee56ecf82bc0cd5a8071e7438c7"], "statement_hash": "26966f1981e3ef64ced3ffa50131a7d15df38552fa949729a13421d17a5de2e6", "relations": [{"rule": 2, "type": "equivalent", "target": "a6ecf4710335a0726aa07a4577c4e91d", "evidence": {"same_day": true, "patch_ids": ["f1e37ee56ecf82bc0cd5a8071e7438c7"], "statement_hash": "26966f1981e3ef64ced3ffa50131a7d15df38552fa949729a13421d17a5de2e6"}}, {"rule": 2, "type": "equivalent", "target": "e56effc9717ab8b4ae91c8416cb06cfa", "evidence": {"same_day": true, "patch_ids": ["f1e37ee56ecf82bc0cd5a8071e7438c7"], "statement_hash": "26966f1981e3ef64ced3ffa50131a7d15df38552fa949729a13421d17a5de2e6"}}, {"rule": 2, "type": "equivalent", "target": "eba2f94412c31fb1523c3bf22fc4dddf", "evidence": {"same_day": true, "patch_ids": ["f1e37ee56ecf82bc0cd5a8071e7438c7"], "statement_hash": "26966f1981e3ef64ced3ffa50131a7d15df38552fa949729a13421d17a5de2e6"}}], "version": "13.12", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "a6ecf4710335a0726aa07a4577c4e91d", "kind": "equivalent", "version": "15.4", "label": "15.4", "title": "修复 jsonpath 代码中过于严格的断言", "evidence": {"same_day": true, "patch_ids": ["f1e37ee56ecf82bc0cd5a8071e7438c7"], "statement_hash": "26966f1981e3ef64ced3ffa50131a7d15df38552fa949729a13421d17a5de2e6"}, "url": "/docs/compare/?release=15.4#15.4-f0de47016af19448", "source_url": "/docs/release/15.4/#ZH-AUTO-RELEASE-15-SECT2-28"}, {"db_id": "e56effc9717ab8b4ae91c8416cb06cfa", "kind": "equivalent", "version": "14.9", "label": "14.9", "title": "修复 jsonpath 代码中过于严格的断言", "evidence": {"same_day": true, "patch_ids": ["f1e37ee56ecf82bc0cd5a8071e7438c7"], "statement_hash": "26966f1981e3ef64ced3ffa50131a7d15df38552fa949729a13421d17a5de2e6"}, "url": "/docs/compare/?release=14.9#14.9-6e94f765e357aea2", "source_url": "/docs/release/14.9/#ZH-AUTO-RELEASE-14-SECT2-28"}, {"db_id": "eba2f94412c31fb1523c3bf22fc4dddf", "kind": "equivalent", "version": "12.16", "label": "12.16", "title": "修复 jsonpath 代码中过于严格的断言", "evidence": {"same_day": true, "patch_ids": ["f1e37ee56ecf82bc0cd5a8071e7438c7"], "statement_hash": "26966f1981e3ef64ced3ffa50131a7d15df38552fa949729a13421d17a5de2e6"}, "url": "/docs/compare/?release=12.16#12.16-4eb2216c9abdbd96", "source_url": "/docs/release/12.16/#id-1.11.6.12.5"}]}, {"id": "13.12-b184e575728782e1", "cves": [], "html": "<p>避免在已中止的事务中通过扩展查询协议处理空语句时出现断言失败（Tom Lane）<a href=\"https://postgr.es/c/d1fc0f382\">§</a></p>", "text": "避免在已中止的事务中通过扩展查询协议处理空语句时出现断言失败（Tom Lane）§", "title": "避免在已中止的事务中通过扩展查询协议处理空语句时出现断言失败", "commits": ["d1fc0f382"], "section": "变更", "category": "improvement", "source_url": "/docs/release/13.12/#id-1.11.6.17.5", "source_hash": "2ffc1c2f5e8a302ec4a0fdfbd886c11374af710618e5398560e61f70b9f6a7a1", "section_path": ["变更"], "commit_groups": [["120ea65b8", "555b929bb", "a8be2356c", "a98a04005", "cb74f7bec", "d1fc0f382"]], "identity_text": "Avoid assertion failure when processing an empty statement via the extended query protocol in an already-aborted transaction (Tom Lane)", "commit_aliases": ["120ea65b8", "555b929bb", "a8be2356c", "a98a04005", "cb74f7bec", "d1fc0f382"], "source_commits": ["d1fc0f382"], "source_entry_id": "13.12/changes/030", "db_id": "f5e21dd6c0032fa4626be77324640f51", "patch_ids": ["76b8835b226ceae0e20b3baeb0deb57b"], "statement_hash": "0685e7604a2f70426e9632d7348dd4ef1da6f6d4b3909b2e7def41ee3c48aab3", "relations": [{"rule": 2, "type": "equivalent", "target": "a258f42228ecb1f58c2f8504abc82b51", "evidence": {"same_day": true, "patch_ids": ["76b8835b226ceae0e20b3baeb0deb57b"], "statement_hash": "0685e7604a2f70426e9632d7348dd4ef1da6f6d4b3909b2e7def41ee3c48aab3"}}, {"rule": 2, "type": "equivalent", "target": "a67f4c680121b50e3857df8af8ab3351", "evidence": {"same_day": true, "patch_ids": ["76b8835b226ceae0e20b3baeb0deb57b"], "statement_hash": "0685e7604a2f70426e9632d7348dd4ef1da6f6d4b3909b2e7def41ee3c48aab3"}}, {"rule": 2, "type": "equivalent", "target": "b3a0cae2dd7ad118cf5a6e79b5429bf9", "evidence": {"same_day": true, "patch_ids": ["76b8835b226ceae0e20b3baeb0deb57b"], "statement_hash": "0685e7604a2f70426e9632d7348dd4ef1da6f6d4b3909b2e7def41ee3c48aab3"}}, {"rule": 2, "type": "equivalent", "target": "d613743ac204fb3f51a645b90a6cd0f9", "evidence": {"same_day": true, "patch_ids": ["76b8835b226ceae0e20b3baeb0deb57b"], "statement_hash": "0685e7604a2f70426e9632d7348dd4ef1da6f6d4b3909b2e7def41ee3c48aab3"}}], "version": "13.12", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "a258f42228ecb1f58c2f8504abc82b51", "kind": "equivalent", "version": "15.4", "label": "15.4", "title": "避免在已中止的事务中通过扩展查询协议处理空语句时的断言失败", "evidence": {"same_day": true, "patch_ids": ["76b8835b226ceae0e20b3baeb0deb57b"], "statement_hash": "0685e7604a2f70426e9632d7348dd4ef1da6f6d4b3909b2e7def41ee3c48aab3"}, "url": "/docs/compare/?release=15.4#15.4-b063537f38db19e6", "source_url": "/docs/release/15.4/#ZH-AUTO-RELEASE-15-SECT2-28"}, {"db_id": "b3a0cae2dd7ad118cf5a6e79b5429bf9", "kind": "equivalent", "version": "14.9", "label": "14.9", "title": "避免在已中止的事务中通过扩展查询协议处理空语句时的断言失败", "evidence": {"same_day": true, "patch_ids": ["76b8835b226ceae0e20b3baeb0deb57b"], "statement_hash": "0685e7604a2f70426e9632d7348dd4ef1da6f6d4b3909b2e7def41ee3c48aab3"}, "url": "/docs/compare/?release=14.9#14.9-b063537f38db19e6", "source_url": "/docs/release/14.9/#ZH-AUTO-RELEASE-14-SECT2-28"}, {"db_id": "a67f4c680121b50e3857df8af8ab3351", "kind": "equivalent", "version": "12.16", "label": "12.16", "title": "避免在已中止的事务中通过扩展查询协议处理空语句时出现断言失败", "evidence": {"same_day": true, "patch_ids": ["76b8835b226ceae0e20b3baeb0deb57b"], "statement_hash": "0685e7604a2f70426e9632d7348dd4ef1da6f6d4b3909b2e7def41ee3c48aab3"}, "url": "/docs/compare/?release=12.16#12.16-e194dff347229545", "source_url": "/docs/release/12.16/#id-1.11.6.12.5"}, {"db_id": "d613743ac204fb3f51a645b90a6cd0f9", "kind": "equivalent", "version": "11.21", "label": "11.21", "title": "避免在已中止的事务中通过扩展查询协议处理空语句时出现断言失败", "evidence": {"same_day": true, "patch_ids": ["76b8835b226ceae0e20b3baeb0deb57b"], "statement_hash": "0685e7604a2f70426e9632d7348dd4ef1da6f6d4b3909b2e7def41ee3c48aab3"}, "url": "/docs/compare/?release=11.21#11.21-01f74472b5e5ec20", "source_url": "/docs/release/11.21/#id-1.11.6.6.6"}]}, {"id": "13.12-5efb34abb8063d41", "cves": [], "html": "<p>修复 <code>contrib/fuzzystrmatch</code> 的 Soundex <code>difference()</code> 函数以合理处理空输入（Alexander Lakhin，Tom Lane）<a href=\"https://postgr.es/c/0409c7fc7\">§</a></p>\n<p>不包含字母字符的输入字符串会产生不可预测的输出。</p>", "text": "修复 contrib/fuzzystrmatch 的 Soundex difference() 函数以合理处理空输入（Alexander Lakhin，Tom Lane）§ 不包含字母字符的输入字符串会产生不可预测的输出。", "title": "修复 contrib/fuzzystrmatch 的 Soundex difference() 函数以合理处理空输入", "commits": ["0409c7fc7"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/13.12/#id-1.11.6.17.5", "source_hash": "e35ad40b93d8817f9563e09d448265d60d4798f80c02162d8ad884f195df678e", "section_path": ["变更"], "commit_groups": [["0409c7fc7", "0966291a4", "1d369c9e9", "8084bf9a4", "ccd362325", "eaf99e4c4"]], "identity_text": "Fix contrib/fuzzystrmatch's Soundex difference() function to handle empty input sanely (Alexander Lakhin, Tom Lane) An input string containing no alphabetic characters resulted in unpredictable output.", "commit_aliases": ["0409c7fc7", "0966291a4", "1d369c9e9", "8084bf9a4", "ccd362325", "eaf99e4c4"], "source_commits": ["0409c7fc7"], "source_entry_id": "13.12/changes/031", "db_id": "f044f495f143f1e40ea5915212b4ff95", "patch_ids": ["3573a685e45d88a982ac87901164de13"], "statement_hash": "41cfc6fd0465472261ed2041a5a196fd0b52c4932e72d4182522290e79522045", "relations": [{"rule": 2, "type": "equivalent", "target": "34d5b4cf8a88654524cbffb522fbc041", "evidence": {"same_day": true, "patch_ids": ["3573a685e45d88a982ac87901164de13"], "statement_hash": "41cfc6fd0465472261ed2041a5a196fd0b52c4932e72d4182522290e79522045"}}, {"rule": 2, "type": "equivalent", "target": "589ea7ef503eabaab241162ee498d78e", "evidence": {"same_day": true, "patch_ids": ["3573a685e45d88a982ac87901164de13"], "statement_hash": "41cfc6fd0465472261ed2041a5a196fd0b52c4932e72d4182522290e79522045"}}, {"rule": 2, "type": "equivalent", "target": "707bef99ea3bf43e9dee5969a332577e", "evidence": {"same_day": true, "patch_ids": ["3573a685e45d88a982ac87901164de13"], "statement_hash": "41cfc6fd0465472261ed2041a5a196fd0b52c4932e72d4182522290e79522045"}}, {"rule": 2, "type": "equivalent", "target": "fe9f918f9bcecc834808b9cb4ea0a1f7", "evidence": {"same_day": true, "patch_ids": ["3573a685e45d88a982ac87901164de13"], "statement_hash": "41cfc6fd0465472261ed2041a5a196fd0b52c4932e72d4182522290e79522045"}}], "version": "13.12", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "34d5b4cf8a88654524cbffb522fbc041", "kind": "equivalent", "version": "15.4", "label": "15.4", "title": "修复 contrib/fuzzystrmatch 的 Soundex difference() 函数以合理地处理空输入", "evidence": {"same_day": true, "patch_ids": ["3573a685e45d88a982ac87901164de13"], "statement_hash": "41cfc6fd0465472261ed2041a5a196fd0b52c4932e72d4182522290e79522045"}, "url": "/docs/compare/?release=15.4#15.4-81dc287a31b9130c", "source_url": "/docs/release/15.4/#ZH-AUTO-RELEASE-15-SECT2-28"}, {"db_id": "589ea7ef503eabaab241162ee498d78e", "kind": "equivalent", "version": "14.9", "label": "14.9", "title": "修复 contrib/fuzzystrmatch 的 Soundex difference() 函数以合理地处理空输入", "evidence": {"same_day": true, "patch_ids": ["3573a685e45d88a982ac87901164de13"], "statement_hash": "41cfc6fd0465472261ed2041a5a196fd0b52c4932e72d4182522290e79522045"}, "url": "/docs/compare/?release=14.9#14.9-81dc287a31b9130c", "source_url": "/docs/release/14.9/#ZH-AUTO-RELEASE-14-SECT2-28"}, {"db_id": "707bef99ea3bf43e9dee5969a332577e", "kind": "equivalent", "version": "12.16", "label": "12.16", "title": "修复 contrib/fuzzystrmatch 的 Soundex difference() 函数以合理处理空输入", "evidence": {"same_day": true, "patch_ids": ["3573a685e45d88a982ac87901164de13"], "statement_hash": "41cfc6fd0465472261ed2041a5a196fd0b52c4932e72d4182522290e79522045"}, "url": "/docs/compare/?release=12.16#12.16-208f6a8de3b96b7a", "source_url": "/docs/release/12.16/#id-1.11.6.12.5"}, {"db_id": "fe9f918f9bcecc834808b9cb4ea0a1f7", "kind": "equivalent", "version": "11.21", "label": "11.21", "title": "修复 contrib/fuzzystrmatch 的 Soundex difference() 函数以合理处理空输入", "evidence": {"same_day": true, "patch_ids": ["3573a685e45d88a982ac87901164de13"], "statement_hash": "41cfc6fd0465472261ed2041a5a196fd0b52c4932e72d4182522290e79522045"}, "url": "/docs/compare/?release=11.21#11.21-8e805192c26843cc", "source_url": "/docs/release/11.21/#id-1.11.6.6.6"}]}, {"id": "13.12-1c322c720b1120e9", "cves": [], "html": "<p>加强 <code>contrib/hstore</code> 输入中的空白检查（Evan Jones）<a href=\"https://postgr.es/c/78bf0a256\">§</a></p>\n<p>在某些情况下，字符会被错误地识别为空白从而被丢弃。</p>", "text": "加强 contrib/hstore 输入中的空白检查（Evan Jones）§ 在某些情况下，字符会被错误地识别为空白从而被丢弃。", "title": "加强 contrib/hstore 输入中的空白检查", "commits": ["78bf0a256"], "section": "变更", "category": "improvement", "source_url": "/docs/release/13.12/#id-1.11.6.17.5", "source_hash": "c40df9dfdb9b8c0446a338e1cee4dc8c2a52bb71626808cbab256b5007a08f0b", "section_path": ["变更"], "commit_groups": [["3a5222a43", "78bf0a256", "bbfc26d86", "d522b05c8", "e0e682945", "edf1de65e"]], "identity_text": "Tighten whitespace checks in contrib/hstore input (Evan Jones) In some cases, characters would be falsely recognized as whitespace and hence discarded.", "commit_aliases": ["3a5222a43", "78bf0a256", "bbfc26d86", "d522b05c8", "e0e682945", "edf1de65e"], "source_commits": ["78bf0a256"], "source_entry_id": "13.12/changes/032", "db_id": "70868303dc0cc8e7eb4715210981bc64", "patch_ids": ["fd3f2c144444723a948e4bfe891dc921"], "statement_hash": "524580b5ff643de26ebae4f2d6897913f3d0edb29e845b3efa60e970e8711f79", "relations": [{"rule": 2, "type": "equivalent", "target": "9630e4e0d06e311eb7d387f0ffdc4153", "evidence": {"same_day": true, "patch_ids": ["fd3f2c144444723a948e4bfe891dc921"], "statement_hash": "524580b5ff643de26ebae4f2d6897913f3d0edb29e845b3efa60e970e8711f79"}}, {"rule": 2, "type": "equivalent", "target": "a497c923fcbfeeba921329eb7569df78", "evidence": {"same_day": true, "patch_ids": ["fd3f2c144444723a948e4bfe891dc921"], "statement_hash": "524580b5ff643de26ebae4f2d6897913f3d0edb29e845b3efa60e970e8711f79"}}, {"rule": 2, "type": "equivalent", "target": "b2bcc576e0da3c167f5c2cca7d134511", "evidence": {"same_day": true, "patch_ids": ["fd3f2c144444723a948e4bfe891dc921"], "statement_hash": "524580b5ff643de26ebae4f2d6897913f3d0edb29e845b3efa60e970e8711f79"}}, {"rule": 2, "type": "equivalent", "target": "d5959c0e97bc0a541038e523bde30499", "evidence": {"same_day": true, "patch_ids": ["fd3f2c144444723a948e4bfe891dc921"], "statement_hash": "524580b5ff643de26ebae4f2d6897913f3d0edb29e845b3efa60e970e8711f79"}}], "version": "13.12", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "b2bcc576e0da3c167f5c2cca7d134511", "kind": "equivalent", "version": "15.4", "label": "15.4", "title": "加强 contrib/hstore 输入中的空白检查", "evidence": {"same_day": true, "patch_ids": ["fd3f2c144444723a948e4bfe891dc921"], "statement_hash": "524580b5ff643de26ebae4f2d6897913f3d0edb29e845b3efa60e970e8711f79"}, "url": "/docs/compare/?release=15.4#15.4-39befbe9153a0ab7", "source_url": "/docs/release/15.4/#ZH-AUTO-RELEASE-15-SECT2-28"}, {"db_id": "d5959c0e97bc0a541038e523bde30499", "kind": "equivalent", "version": "14.9", "label": "14.9", "title": "加强 contrib/hstore 输入中的空白检查", "evidence": {"same_day": true, "patch_ids": ["fd3f2c144444723a948e4bfe891dc921"], "statement_hash": "524580b5ff643de26ebae4f2d6897913f3d0edb29e845b3efa60e970e8711f79"}, "url": "/docs/compare/?release=14.9#14.9-ad615fa542616223", "source_url": "/docs/release/14.9/#ZH-AUTO-RELEASE-14-SECT2-28"}, {"db_id": "9630e4e0d06e311eb7d387f0ffdc4153", "kind": "equivalent", "version": "12.16", "label": "12.16", "title": "加强 contrib/hstore 输入中的空白检查", "evidence": {"same_day": true, "patch_ids": ["fd3f2c144444723a948e4bfe891dc921"], "statement_hash": "524580b5ff643de26ebae4f2d6897913f3d0edb29e845b3efa60e970e8711f79"}, "url": "/docs/compare/?release=12.16#12.16-fcea2d21e85b5404", "source_url": "/docs/release/12.16/#id-1.11.6.12.5"}, {"db_id": "a497c923fcbfeeba921329eb7569df78", "kind": "equivalent", "version": "11.21", "label": "11.21", "title": "加强 contrib/hstore 输入中的空白检查", "evidence": {"same_day": true, "patch_ids": ["fd3f2c144444723a948e4bfe891dc921"], "statement_hash": "524580b5ff643de26ebae4f2d6897913f3d0edb29e845b3efa60e970e8711f79"}, "url": "/docs/compare/?release=11.21#11.21-47ff0de0353e8f49", "source_url": "/docs/release/11.21/#id-1.11.6.6.6"}]}, {"id": "13.12-78f1865b153b61c5", "cves": [], "html": "<p>拒绝 <code>contrib/intarray</code> 的 <code>gist__int_ops</code> 索引操作符类的超大输入数组（Ankit Kumar Pandey，Alexander Lakhin）<a href=\"https://postgr.es/c/ae9aac64a\">§</a></p>\n<p>之前此代码会报告一个 <code>NOTICE</code> 但仍然继续执行，创建一个无效的索引条目，在读取索引时可能导致崩溃。</p>", "text": "拒绝 contrib/intarray 的 gist__int_ops 索引操作符类的超大输入数组（Ankit Kumar Pandey，Alexander Lakhin）§ 之前此代码会报告一个 NOTICE 但仍然继续执行，创建一个无效的索引条目，在读取索引时可能导致崩溃。", "title": "拒绝 contrib/intarray 的 gist__int_ops 索引操作符类的超大输入数组", "commits": ["ae9aac64a"], "section": "变更", "category": "improvement", "source_url": "/docs/release/13.12/#id-1.11.6.17.5", "source_hash": "4ed1eb3890342e68c4f26e39f652c7bdb42c6c5b95860dcb322e11e303fca88f", "section_path": ["变更"], "commit_groups": [["019a40d61", "4be308ede", "6ecc1c02a", "ab40b0395", "ae9aac64a", "c00fbe89d"]], "identity_text": "Disallow oversize input arrays with contrib/intarray's gist__int_ops index opclass (Ankit Kumar Pandey, Alexander Lakhin) Previously this code would report a NOTICE but press on anyway, creating an invalid index entry that presents a risk of crashes when the index is read.", "commit_aliases": ["019a40d61", "4be308ede", "6ecc1c02a", "ab40b0395", "ae9aac64a", "c00fbe89d"], "source_commits": ["ae9aac64a"], "source_entry_id": "13.12/changes/033", "db_id": "b11f905439066cd9aab8d7b64038369a", "patch_ids": ["0109410501fac99f629213e8604443d1"], "statement_hash": "a478fa4c5073f50e1e10c2ab79b3ca3c6048ec0dc96e71ed4a7548e911e34a8e", "relations": [{"rule": 2, "type": "equivalent", "target": "5e0e6d65dc2e4f4aaa42f607a04e9b0e", "evidence": {"same_day": true, "patch_ids": ["0109410501fac99f629213e8604443d1"], "statement_hash": "a478fa4c5073f50e1e10c2ab79b3ca3c6048ec0dc96e71ed4a7548e911e34a8e"}}, {"rule": 2, "type": "equivalent", "target": "7469e2c3cf3de774562c6a504ff42c34", "evidence": {"same_day": true, "patch_ids": ["0109410501fac99f629213e8604443d1"], "statement_hash": "a478fa4c5073f50e1e10c2ab79b3ca3c6048ec0dc96e71ed4a7548e911e34a8e"}}, {"rule": 2, "type": "equivalent", "target": "7ea5f5c4674eb601f9e72ef4cab013b0", "evidence": {"same_day": true, "patch_ids": ["0109410501fac99f629213e8604443d1"], "statement_hash": "a478fa4c5073f50e1e10c2ab79b3ca3c6048ec0dc96e71ed4a7548e911e34a8e"}}, {"rule": 2, "type": "equivalent", "target": "9d51556381941ed7ec438ef36bc5112a", "evidence": {"same_day": true, "patch_ids": ["0109410501fac99f629213e8604443d1"], "statement_hash": "a478fa4c5073f50e1e10c2ab79b3ca3c6048ec0dc96e71ed4a7548e911e34a8e"}}], "version": "13.12", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "7ea5f5c4674eb601f9e72ef4cab013b0", "kind": "equivalent", "version": "15.4", "label": "15.4", "title": "禁止使用 contrib/intarray 的 gist__int_ops 索引操作符类处理过大的输入数组", "evidence": {"same_day": true, "patch_ids": ["0109410501fac99f629213e8604443d1"], "statement_hash": "a478fa4c5073f50e1e10c2ab79b3ca3c6048ec0dc96e71ed4a7548e911e34a8e"}, "url": "/docs/compare/?release=15.4#15.4-1cffa0c8d86b1514", "source_url": "/docs/release/15.4/#ZH-AUTO-RELEASE-15-SECT2-28"}, {"db_id": "5e0e6d65dc2e4f4aaa42f607a04e9b0e", "kind": "equivalent", "version": "14.9", "label": "14.9", "title": "禁止使用 contrib/intarray 的 gist__int_ops 索引操作符类处理过大的输入数组", "evidence": {"same_day": true, "patch_ids": ["0109410501fac99f629213e8604443d1"], "statement_hash": "a478fa4c5073f50e1e10c2ab79b3ca3c6048ec0dc96e71ed4a7548e911e34a8e"}, "url": "/docs/compare/?release=14.9#14.9-1cffa0c8d86b1514", "source_url": "/docs/release/14.9/#ZH-AUTO-RELEASE-14-SECT2-28"}, {"db_id": "7469e2c3cf3de774562c6a504ff42c34", "kind": "equivalent", "version": "12.16", "label": "12.16", "title": "拒绝 contrib/intarray 的 gist__int_ops 索引操作符类的超大输入数组", "evidence": {"same_day": true, "patch_ids": ["0109410501fac99f629213e8604443d1"], "statement_hash": "a478fa4c5073f50e1e10c2ab79b3ca3c6048ec0dc96e71ed4a7548e911e34a8e"}, "url": "/docs/compare/?release=12.16#12.16-bfb87d662327dcea", "source_url": "/docs/release/12.16/#id-1.11.6.12.5"}, {"db_id": "9d51556381941ed7ec438ef36bc5112a", "kind": "equivalent", "version": "11.21", "label": "11.21", "title": "拒绝 contrib/intarray 的 gist__int_ops 索引操作符类的超大输入数组", "evidence": {"same_day": true, "patch_ids": ["0109410501fac99f629213e8604443d1"], "statement_hash": "a478fa4c5073f50e1e10c2ab79b3ca3c6048ec0dc96e71ed4a7548e911e34a8e"}, "url": "/docs/compare/?release=11.21#11.21-f7805ab6070ab7ab", "source_url": "/docs/release/11.21/#id-1.11.6.6.6"}]}, {"id": "13.12-766c07d6aa929eb3", "cves": [], "html": "<p>避免 <code>contrib/intarray</code> 中 GiST 索引条目的无用双重解压（Konstantin Knizhnik，Matthias van de Meent，Tom Lane）<a href=\"https://postgr.es/c/7fffcc2ee\">§</a></p>", "text": "避免 contrib/intarray 中 GiST 索引条目的无用双重解压（Konstantin Knizhnik，Matthias van de Meent，Tom Lane）§", "title": "避免 contrib/intarray 中 GiST 索引条目的无用双重解压", "commits": ["7fffcc2ee"], "section": "变更", "category": "improvement", "source_url": "/docs/release/13.12/#id-1.11.6.17.5", "source_hash": "93a70b77d5e504c06578639d1058071cb617b6fef0afb5aa78f282952ccbb184", "section_path": ["变更"], "commit_groups": [["5cb461989", "7fffcc2ee", "8aac9759b", "8d8f37149", "9f70f6d4c", "a6991f763", "e27f3f52c"]], "identity_text": "Avoid useless double decompression of GiST index entries in contrib/intarray (Konstantin Knizhnik, Matthias van de Meent, Tom Lane)", "commit_aliases": ["5cb461989", "7fffcc2ee", "8aac9759b", "8d8f37149", "9f70f6d4c", "a6991f763", "e27f3f52c"], "source_commits": ["7fffcc2ee"], "source_entry_id": "13.12/changes/034", "db_id": "9d392475f610082e5ffda498c1b1bc74", "patch_ids": ["2ab80b9da3cdc1e81922aeb27d0c66e7"], "statement_hash": "6b26f1dd17b3679bdfc50529b671286bdf78b336f5848d2ac73885d6d43bbcd3", "relations": [{"rule": 2, "type": "equivalent", "target": "0c7608e0799fa9d3bd7575889e780086", "evidence": {"same_day": true, "patch_ids": ["2ab80b9da3cdc1e81922aeb27d0c66e7"], "statement_hash": "6b26f1dd17b3679bdfc50529b671286bdf78b336f5848d2ac73885d6d43bbcd3"}}, {"rule": 2, "type": "equivalent", "target": "1c221c67fb081abd2d101126f4dfcc03", "evidence": {"same_day": true, "patch_ids": ["2ab80b9da3cdc1e81922aeb27d0c66e7"], "statement_hash": "6b26f1dd17b3679bdfc50529b671286bdf78b336f5848d2ac73885d6d43bbcd3"}}, {"rule": 2, "type": "equivalent", "target": "504806bf47f0584c3363f741f732a9a5", "evidence": {"same_day": true, "patch_ids": ["2ab80b9da3cdc1e81922aeb27d0c66e7"], "statement_hash": "6b26f1dd17b3679bdfc50529b671286bdf78b336f5848d2ac73885d6d43bbcd3"}}, {"rule": 2, "type": "equivalent", "target": "9ed9ace97321cdaa59223da10ca1b85b", "evidence": {"same_day": true, "patch_ids": ["2ab80b9da3cdc1e81922aeb27d0c66e7"], "statement_hash": "6b26f1dd17b3679bdfc50529b671286bdf78b336f5848d2ac73885d6d43bbcd3"}}], "version": "13.12", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "9ed9ace97321cdaa59223da10ca1b85b", "kind": "equivalent", "version": "15.4", "label": "15.4", "title": "避免 contrib/intarray 中 GiST 索引条目的无用双重解压", "evidence": {"same_day": true, "patch_ids": ["2ab80b9da3cdc1e81922aeb27d0c66e7"], "statement_hash": "6b26f1dd17b3679bdfc50529b671286bdf78b336f5848d2ac73885d6d43bbcd3"}, "url": "/docs/compare/?release=15.4#15.4-3162ce8e4c581938", "source_url": "/docs/release/15.4/#ZH-AUTO-RELEASE-15-SECT2-28"}, {"db_id": "1c221c67fb081abd2d101126f4dfcc03", "kind": "equivalent", "version": "14.9", "label": "14.9", "title": "避免 contrib/intarray 中 GiST 索引条目的无用双重解压", "evidence": {"same_day": true, "patch_ids": ["2ab80b9da3cdc1e81922aeb27d0c66e7"], "statement_hash": "6b26f1dd17b3679bdfc50529b671286bdf78b336f5848d2ac73885d6d43bbcd3"}, "url": "/docs/compare/?release=14.9#14.9-0e6226e50b9a1f9d", "source_url": "/docs/release/14.9/#ZH-AUTO-RELEASE-14-SECT2-28"}, {"db_id": "504806bf47f0584c3363f741f732a9a5", "kind": "equivalent", "version": "12.16", "label": "12.16", "title": "避免 contrib/intarray 中 GiST 索引条目的无用双重解压", "evidence": {"same_day": true, "patch_ids": ["2ab80b9da3cdc1e81922aeb27d0c66e7"], "statement_hash": "6b26f1dd17b3679bdfc50529b671286bdf78b336f5848d2ac73885d6d43bbcd3"}, "url": "/docs/compare/?release=12.16#12.16-19f79385caa15687", "source_url": "/docs/release/12.16/#id-1.11.6.12.5"}, {"db_id": "0c7608e0799fa9d3bd7575889e780086", "kind": "equivalent", "version": "11.21", "label": "11.21", "title": "避免 contrib/intarray 中 GiST 索引条目的无用双重解压", "evidence": {"same_day": true, "patch_ids": ["2ab80b9da3cdc1e81922aeb27d0c66e7"], "statement_hash": "6b26f1dd17b3679bdfc50529b671286bdf78b336f5848d2ac73885d6d43bbcd3"}, "url": "/docs/compare/?release=11.21#11.21-d0515458f1282f69", "source_url": "/docs/release/11.21/#id-1.11.6.6.6"}]}, {"id": "13.12-77ed1850dee16bc4", "cves": [], "html": "<p>确保关系缓存条目中的 <code>pg_index</code>.<code>indisreplident</code> 保持最新（Shruthi Gowda）<a href=\"https://postgr.es/c/bdaaf1bf1\">§</a></p>\n<p>此值在某些情况下可能是过期的。核心代码没有依赖关系缓存的此副本，因此就 PostgreSQL 本身而言这只是一个潜在缺陷；但对于某些扩展来说可能是一个实际缺陷。</p>", "text": "确保关系缓存条目中的 pg_index.indisreplident 保持最新（Shruthi Gowda）§ 此值在某些情况下可能是过期的。核心代码没有依赖关系缓存的此副本，因此就 PostgreSQL 本身而言这只是一个潜在缺陷；但对于某些扩展来说可能是一个实际缺陷。", "title": "确保关系缓存条目中的 pg_index.indisreplident 保持最新", "commits": ["bdaaf1bf1"], "section": "变更", "category": "improvement", "source_url": "/docs/release/13.12/#id-1.11.6.17.5", "source_hash": "af56dfac2c90e8ab1661b0a0e05ab73ee136ceebc2db3c16b73e38838d08c514", "section_path": ["变更"], "commit_groups": [["27da47122", "7af65523a", "7d27493b7", "a5ea825f9", "bdaaf1bf1", "db9813819", "eb3abec4b"]], "identity_text": "Ensure that pg_index.indisreplident is kept up-to-date in relation cache entries (Shruthi Gowda) This value could be stale in some cases. There is no core code that relies on the relation cache's copy, so this is only a latent bug as far as Postgres itself is concerned; but there may be extensions for which it is a live bug.", "commit_aliases": ["27da47122", "7af65523a", "7d27493b7", "a5ea825f9", "bdaaf1bf1", "db9813819", "eb3abec4b"], "source_commits": ["bdaaf1bf1"], "source_entry_id": "13.12/changes/035", "db_id": "a6ed51f9d342c94f174bfd73f5766a1d", "patch_ids": ["7344652588632a0c4415c55b4b739c6f"], "statement_hash": "72937390549dfce012da639d78afc186c9d67156b38e53ace013fd39a45f8fcb", "relations": [{"rule": 2, "type": "equivalent", "target": "087a3d7bc0ccf63380150eb167de02c1", "evidence": {"same_day": true, "patch_ids": ["7344652588632a0c4415c55b4b739c6f"], "statement_hash": "72937390549dfce012da639d78afc186c9d67156b38e53ace013fd39a45f8fcb"}}, {"rule": 2, "type": "equivalent", "target": "353be48d94116827aff24b74f626b228", "evidence": {"same_day": true, "patch_ids": ["7344652588632a0c4415c55b4b739c6f"], "statement_hash": "72937390549dfce012da639d78afc186c9d67156b38e53ace013fd39a45f8fcb"}}, {"rule": 2, "type": "equivalent", "target": "724745c515fac379552757a1fda318d9", "evidence": {"same_day": true, "patch_ids": ["7344652588632a0c4415c55b4b739c6f"], "statement_hash": "72937390549dfce012da639d78afc186c9d67156b38e53ace013fd39a45f8fcb"}}, {"rule": 2, "type": "equivalent", "target": "8d608552460feb08bafd4f6346d4798a", "evidence": {"same_day": true, "patch_ids": ["7344652588632a0c4415c55b4b739c6f"], "statement_hash": "72937390549dfce012da639d78afc186c9d67156b38e53ace013fd39a45f8fcb"}}], "version": "13.12", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "353be48d94116827aff24b74f626b228", "kind": "equivalent", "version": "15.4", "label": "15.4", "title": "确保关系缓存条目中的 pg_index.indisreplident 保持最新", "evidence": {"same_day": true, "patch_ids": ["7344652588632a0c4415c55b4b739c6f"], "statement_hash": "72937390549dfce012da639d78afc186c9d67156b38e53ace013fd39a45f8fcb"}, "url": "/docs/compare/?release=15.4#15.4-ec58eedd690d0c79", "source_url": "/docs/release/15.4/#ZH-AUTO-RELEASE-15-SECT2-28"}, {"db_id": "724745c515fac379552757a1fda318d9", "kind": "equivalent", "version": "14.9", "label": "14.9", "title": "确保关系缓存条目中的 pg_index.indisreplident 保持最新", "evidence": {"same_day": true, "patch_ids": ["7344652588632a0c4415c55b4b739c6f"], "statement_hash": "72937390549dfce012da639d78afc186c9d67156b38e53ace013fd39a45f8fcb"}, "url": "/docs/compare/?release=14.9#14.9-79b655b3a5967899", "source_url": "/docs/release/14.9/#ZH-AUTO-RELEASE-14-SECT2-28"}, {"db_id": "8d608552460feb08bafd4f6346d4798a", "kind": "equivalent", "version": "12.16", "label": "12.16", "title": "确保关系缓存条目中的 pg_index.indisreplident 保持最新", "evidence": {"same_day": true, "patch_ids": ["7344652588632a0c4415c55b4b739c6f"], "statement_hash": "72937390549dfce012da639d78afc186c9d67156b38e53ace013fd39a45f8fcb"}, "url": "/docs/compare/?release=12.16#12.16-a251d09b5796e2f8", "source_url": "/docs/release/12.16/#id-1.11.6.12.5"}, {"db_id": "087a3d7bc0ccf63380150eb167de02c1", "kind": "equivalent", "version": "11.21", "label": "11.21", "title": "确保关系缓存条目中的 pg_index.indisreplident 保持最新", "evidence": {"same_day": true, "patch_ids": ["7344652588632a0c4415c55b4b739c6f"], "statement_hash": "72937390549dfce012da639d78afc186c9d67156b38e53ace013fd39a45f8fcb"}, "url": "/docs/compare/?release=11.21#11.21-3d7a525203663dec", "source_url": "/docs/release/11.21/#id-1.11.6.6.6"}]}, {"id": "13.12-16df6e1c87897d08", "cves": [], "html": "<p>消除使用 OpenSSL 3.0.0 或更新版本编译时的弃用警告（Peter Eisentraut）<a href=\"https://postgr.es/c/8aa9a2623\">§</a></p>", "text": "消除使用 OpenSSL 3.0.0 或更新版本编译时的弃用警告（Peter Eisentraut）§", "title": "消除使用 OpenSSL 3.0.0 或更新版本编译时的弃用警告", "commits": ["8aa9a2623"], "section": "变更", "category": "improvement", "source_url": "/docs/release/13.12/#id-1.11.6.17.5", "source_hash": "d65149cbe3e081deb1ddcc05f3d50d0187445c5b941e18bcc46cf133899434f4", "section_path": ["变更"], "commit_groups": [["265c9138d", "8aa9a2623", "96f96398d"]], "identity_text": "Silence deprecation warnings when compiling with OpenSSL 3.0.0 or later (Peter Eisentraut)", "commit_aliases": ["265c9138d", "8aa9a2623", "96f96398d"], "source_commits": ["8aa9a2623"], "source_entry_id": "13.12/changes/036", "db_id": "572a763c1813fdf6e2cc5187ca75157d", "patch_ids": ["629549c727df715a9941975c3026f810"], "statement_hash": "c96ad948a67f56c8eba0517d269891a04a3f9e87906affc0ab0b81a6d58ee93e", "relations": [{"rule": 2, "type": "equivalent", "target": "1c58cb502604cd413fe45d7e7d182c79", "evidence": {"same_day": true, "patch_ids": ["629549c727df715a9941975c3026f810"], "statement_hash": "c96ad948a67f56c8eba0517d269891a04a3f9e87906affc0ab0b81a6d58ee93e"}}, {"rule": 2, "type": "equivalent", "target": "ab01a69054b18bf3dc4d66204bfa931d", "evidence": {"same_day": true, "patch_ids": ["629549c727df715a9941975c3026f810"], "statement_hash": "c96ad948a67f56c8eba0517d269891a04a3f9e87906affc0ab0b81a6d58ee93e"}}], "version": "13.12", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "ab01a69054b18bf3dc4d66204bfa931d", "kind": "equivalent", "version": "12.16", "label": "12.16", "title": "消除使用 OpenSSL 3.0.0 或更新版本编译时的弃用警告", "evidence": {"same_day": true, "patch_ids": ["629549c727df715a9941975c3026f810"], "statement_hash": "c96ad948a67f56c8eba0517d269891a04a3f9e87906affc0ab0b81a6d58ee93e"}, "url": "/docs/compare/?release=12.16#12.16-cd5b92f4a453bc03", "source_url": "/docs/release/12.16/#id-1.11.6.12.5"}, {"db_id": "1c58cb502604cd413fe45d7e7d182c79", "kind": "equivalent", "version": "11.21", "label": "11.21", "title": "消除使用 OpenSSL 3.0.0 或更新版本编译时的弃用警告", "evidence": {"same_day": true, "patch_ids": ["629549c727df715a9941975c3026f810"], "statement_hash": "c96ad948a67f56c8eba0517d269891a04a3f9e87906affc0ab0b81a6d58ee93e"}, "url": "/docs/compare/?release=11.21#11.21-62de0d7a5076bbd4", "source_url": "/docs/release/11.21/#id-1.11.6.6.6"}]}]}], "stats": [{"key": "all", "label": "全部变更", "count": 36}, {"key": "feature", "label": "新功能", "count": 0}, {"key": "bugfix", "label": "BUG 修复", "count": 17}, {"key": "security", "label": "安全相关", "count": 1}, {"key": "performance", "label": "性能改进", "count": 0}, {"key": "compatibility", "label": "兼容性变化", "count": 0}, {"key": "improvement", "label": "其他改进", "count": 18}], "total": 36, "release_count": 1, "cross_major": false, "cve_count": 1, "cves": [{"id": "CVE-2023-39417", "url": "https://www.postgresql.org/support/security/CVE-2023-39417/", "fixed": {"11": "11.21", "12": "12.16", "13": "13.12", "14": "14.9", "15": "15.4"}, "score": 7.5, "title": "如果模式或所有者名称包含引号、反斜杠或美元符号，则不允许将其替换到扩展脚本中", "vector": "AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H", "affected": {"11": "11", "12": "12", "13": "13", "14": "14", "15": "15"}, "component": "core server", "published": {"11": "2023-08-10", "12": "2023-08-10", "13": "2023-08-10", "14": "2023-08-10", "15": "2023-08-10"}, "introduced": {}, "cvss_version": "3.0", "description_en": "An extension script is vulnerable if it uses @extowner@ , @extschema@ , or @extschema:...@ inside a quoting construct (dollar quoting, '' , or \"\" ). No bundled extension is vulnerable. Vulnerable uses do appear in a documentation example and in non-bundled extensions. Hence, the attack prerequisite is an administrator having installed files of a vulnerable, trusted, non-bundled extension. Subject to that prerequisite, this enables an attacker having database-level CREATE privilege to execute arbitrary code as the bootstrap superuser. PostgreSQL will block this attack in the core server, so there's no need to modify individual extensions.\n\nThe PostgreSQL project thanks Micah Gates, Valerie Woolard, Tim Carey-Smith, and Christoph Berg for reporting this problem.", "first_published": "2023-08-10", "fixed_version": "13.12"}], "cve_available": true, "remaining_cves": [], "security_regressions": [], "warnings": [], "candidate_count": 36, "already_in_source_count": 0, "duplicate_count": 0, "excluded_count": 0, "exclusions": [], "source_as_of": "2026-09-26", "security_as_of": "2026-09-26"}