{"format": 1, "mode": "release", "from_release": null, "to_release": {"date": "2020-08-13", "build": "10.14", "major": "10", "minor": 14, "manual": "10", "status": "stable", "doc_git": "", "version": "10.14", "eol_date": "2022-11-10", "date_text": "2020-08-13", "supported": false, "manual_url": "/docs/10/release-10-14.html", "source_url": "/docs/release/10.14/", "entry_count": 35, "placeholder": false, "content_hash": "d943e94bd240f1ab5e409de31b27b87457eb3960b11898730d45c389624bcce5", "manual_build": "10.23", "source_as_of": "", "changes_count": 35, "doc_loaded_at": "2026-09-26T02:56:43.207462", "migration_html": "<p>对于运行 10.X 的用户，不需要执行导出/恢复。</p>\n<p>但是，如果是从早于 10.11 的版本升级，请参见<a href=\"/docs/10/release-10-11.html\" title=\"E.13. 发布版本 10.11\">第 E.13 节</a>。</p>", "compatibility_count": 0, "label": "10.14", "status_label": "历史版本", "eol": "2022-11-10", "age_days": 2239, "support_days": -1420}, "groups": [{"date": "2020-08-13", "build": "10.14", "major": "10", "minor": 14, "manual": "10", "status": "stable", "doc_git": "", "version": "10.14", "eol_date": "2022-11-10", "date_text": "2020-08-13", "supported": false, "manual_url": "/docs/10/release-10-14.html", "source_url": "/docs/release/10.14/", "entry_count": 35, "placeholder": false, "content_hash": "d943e94bd240f1ab5e409de31b27b87457eb3960b11898730d45c389624bcce5", "manual_build": "10.23", "source_as_of": "", "changes_count": 35, "doc_loaded_at": "2026-09-26T02:56:43.207462", "migration_html": "<p>对于运行 10.X 的用户，不需要执行导出/恢复。</p>\n<p>但是，如果是从早于 10.11 的版本升级，请参见<a href=\"/docs/10/release-10-11.html\" title=\"E.13. 发布版本 10.11\">第 E.13 节</a>。</p>", "compatibility_count": 0, "label": "10.14", "status_label": "历史版本", "eol": "2022-11-10", "age_days": 2239, "support_days": -1420, "entries": [{"id": "10.14-586f5d2cec25828f", "cves": ["CVE-2018-1058", "CVE-2020-14349"], "html": "<p>在逻辑复制 WAL 发送进程和应用工作进程中设置安全的 <code>search_path</code>（Noah Misch）</p>\n<p>发布者或订阅者数据库中的恶意用户，都可能导致以运行复制的角色身份执行任意 SQL 代码，而该角色通常是超级用户。这里的一部分风险与 CVE-2018-1058 中所述的风险相同，本补丁通过确保复制发送进程和接收进程以空的 <code>search_path</code> 设置运行来缓解这些风险。（与 CVE-2018-1058 一样，这一改动可能使被复制表的 DDL 中未充分限定的名称出现问题。）其他风险则是复制不可信角色所属对象所固有的；我们最多只能在文档中说明存在需要考虑的风险。（CVE-2020-14349）</p>", "text": "在逻辑复制 WAL 发送进程和应用工作进程中设置安全的 search_path（Noah Misch） 发布者或订阅者数据库中的恶意用户，都可能导致以运行复制的角色身份执行任意 SQL 代码，而该角色通常是超级用户。这里的一部分风险与 CVE-2018-1058 中所述的风险相同，本补丁通过确保复制发送进程和接收进程以空的 search_path 设置运行来缓解这些风险。（与 CVE-2018-1058 一样，这一改动可能使被复制表的 DDL 中未充分限定的名称出现问题。）其他风险则是复制不可信角色所属对象所固有的；我们最多只能在文档中说明存在需要考虑的风险。（CVE-2020-14349）", "title": "在逻辑复制 WAL 发送进程和应用工作进程中设置安全的 search_path", "commits": [], "section": "变更", "category": "security", "source_url": "/docs/release/10.14/#id-1.11.6.14.5", "source_hash": "1a5926943b99e0104704252b225b016666102361f2ef072c10e255a58eb98db1", "section_path": ["变更"], "commit_groups": [["11da97024", "412c5c401", "5a936d64c", "64a71062e", "dd5d99516"], ["515ee4a7e", "613ed8a58", "b601f24c8", "b793d6af9", "cec57b1a0"]], "identity_text": "Set a secure search_path in logical replication walsenders and apply workers (Noah Misch) A malicious user of either the publisher or subscriber database could potentially cause execution of arbitrary SQL code by the role running replication, which is often a superuser. Some of the risks here are equivalent to those described in CVE-2018-1058, and are mitigated in this patch by ensuring that the replication sender and receiver execute with empty search_path settings. (As with CVE-2018-1058, that change might cause problems for under-qualified names used in replicated tables' DDL.) Other risks are inherent in replicating objects that belong to untrusted roles; the most we can do is document that there is a hazard to consider. (CVE-2020-14349)", "commit_aliases": ["11da97024", "412c5c401", "515ee4a7e", "5a936d64c", "613ed8a58", "64a71062e", "b601f24c8", "b793d6af9", "cec57b1a0", "dd5d99516"], "source_commits": ["b793d6af9", "dd5d99516"], "source_entry_id": "10.14/changes/001", "db_id": "e254241fa8ca761a5e0dcfe08f3a96e1", "patch_ids": ["0e66c4bfcfad049ff36a3ea10989d0fe", "fd6a482bf0662ad763462b13a1a334a6"], "statement_hash": "c0e43d0303e72969d237e6e5d390b8afe1e5e3b1357240da497c74b2ba77626c", "relations": [{"rule": 2, "type": "equivalent", "target": "3be5a9b3a2eaf7094ed85ea0c10dda73", "evidence": {"same_day": true, "patch_ids": ["0e66c4bfcfad049ff36a3ea10989d0fe", "fd6a482bf0662ad763462b13a1a334a6"], "statement_hash": "c0e43d0303e72969d237e6e5d390b8afe1e5e3b1357240da497c74b2ba77626c"}}, {"rule": 2, "type": "equivalent", "target": "99337d1b81ad96f763ce060664a8f871", "evidence": {"same_day": true, "patch_ids": ["0e66c4bfcfad049ff36a3ea10989d0fe", "fd6a482bf0662ad763462b13a1a334a6"], "statement_hash": "c0e43d0303e72969d237e6e5d390b8afe1e5e3b1357240da497c74b2ba77626c"}}], "version": "10.14", "category_label": "安全相关", "also_in": [], "variants": [], "related_changes": [{"db_id": "3be5a9b3a2eaf7094ed85ea0c10dda73", "kind": "equivalent", "version": "12.4", "label": "12.4", "title": "在逻辑复制 WAL 发送进程和应用工作进程中设置安全的 search_path", "evidence": {"same_day": true, "patch_ids": ["0e66c4bfcfad049ff36a3ea10989d0fe", "fd6a482bf0662ad763462b13a1a334a6"], "statement_hash": "c0e43d0303e72969d237e6e5d390b8afe1e5e3b1357240da497c74b2ba77626c"}, "url": "/docs/compare/?release=12.4#12.4-5cf18c813b9149d7", "source_url": "/docs/release/12.4/#id-1.11.6.24.5"}, {"db_id": "99337d1b81ad96f763ce060664a8f871", "kind": "equivalent", "version": "11.9", "label": "11.9", "title": "在逻辑复制 WAL 发送进程和应用工作进程中设置安全的 search_path", "evidence": {"same_day": true, "patch_ids": ["0e66c4bfcfad049ff36a3ea10989d0fe", "fd6a482bf0662ad763462b13a1a334a6"], "statement_hash": "c0e43d0303e72969d237e6e5d390b8afe1e5e3b1357240da497c74b2ba77626c"}, "url": "/docs/compare/?release=11.9#11.9-586f5d2cec25828f", "source_url": "/docs/release/11.9/#id-1.11.6.18.5"}]}, {"id": "10.14-3ae0ed313be57173", "cves": ["CVE-2018-1058", "CVE-2020-14350"], "html": "<p>提高 contrib 模块安装脚本的安全性（Tom Lane）</p>\n<p>如果攻击者能够在扩展的目标模式或某个前置扩展的模式中创建对象，就可以针对扩展安装脚本实施与 CVE-2018-1058 中所述类似的攻击。由于安装扩展通常需要超级用户权限，这可能成为获取超级用户权限的一条途径。为缓解这一风险，更谨慎地设置运行安装脚本时使用的 <code>search_path</code>；在脚本中禁用 <code>check_function_bodies</code>；并修正一些 contrib 模块中用于调整系统目录的查询，确保它们安全。同时提供文档，帮助第三方扩展作者编写安全的安装脚本。这并不是完整的解决方案；如果安装时不够谨慎，依赖其他扩展的扩展仍可能面临风险。（CVE-2020-14350）</p>", "text": "提高 contrib 模块安装脚本的安全性（Tom Lane） 如果攻击者能够在扩展的目标模式或某个前置扩展的模式中创建对象，就可以针对扩展安装脚本实施与 CVE-2018-1058 中所述类似的攻击。由于安装扩展通常需要超级用户权限，这可能成为获取超级用户权限的一条途径。为缓解这一风险，更谨慎地设置运行安装脚本时使用的 search_path；在脚本中禁用 check_function_bodies；并修正一些 contrib 模块中用于调整系统目录的查询，确保它们安全。同时提供文档，帮助第三方扩展作者编写安全的安装脚本。这并不是完整的解决方案；如果安装时不够谨慎，依赖其他扩展的扩展仍可能面临风险。（CVE-2020-14350）", "title": "提高 contrib 模块安装脚本的安全性", "commits": [], "section": "变更", "category": "security", "source_url": "/docs/release/10.14/#id-1.11.6.14.5", "source_hash": "641f118ab88a1eae885f23e308fa24073b7b643ec64a145a8a06c5e41680e1d5", "section_path": ["变更"], "commit_groups": [["2ea8a60fc", "3ba967084", "6b11a4687", "7eeb1d986", "96cbfe92d", "98ca64899", "afa358786"]], "identity_text": "Make contrib modules' installation scripts more secure (Tom Lane) Attacks similar to those described in CVE-2018-1058 could be carried out against an extension installation script, if the attacker can create objects in either the extension's target schema or the schema of some prerequisite extension. Since extensions often require superuser privilege to install, this can open a path to obtaining superuser privilege. To mitigate this risk, be more careful about the search_path used to run an installation script; disable check_function_bodies within the script; and fix catalog-adjustment queries used in some contrib modules to ensure they are secure. Also provide documentation to help third-party extension authors make their installation scripts secure. This is not a complete solution; extensions that depend on other extensions can still be at risk if installed carelessly. (CVE-2020-14350)", "commit_aliases": ["2ea8a60fc", "3ba967084", "6b11a4687", "7eeb1d986", "96cbfe92d", "98ca64899", "afa358786"], "source_commits": ["96cbfe92d"], "source_entry_id": "10.14/changes/002", "db_id": "b3ef8ce8154cffacc73ec6326dbc1607", "patch_ids": ["ee963513d01d5da2f56347e9a5e977d1"], "statement_hash": "72bc96feb7b321b3936e8e59c3c9140d5205fa59dcccfd38f357e6419436a7cf", "relations": [{"rule": 2, "type": "equivalent", "target": "18cf5409de16d861fde3ac6d27bd135e", "evidence": {"same_day": true, "patch_ids": ["ee963513d01d5da2f56347e9a5e977d1"], "statement_hash": "72bc96feb7b321b3936e8e59c3c9140d5205fa59dcccfd38f357e6419436a7cf"}}, {"rule": 2, "type": "equivalent", "target": "6f776698fb9e7668f490543cb90859bb", "evidence": {"same_day": true, "patch_ids": ["ee963513d01d5da2f56347e9a5e977d1"], "statement_hash": "72bc96feb7b321b3936e8e59c3c9140d5205fa59dcccfd38f357e6419436a7cf"}}, {"rule": 2, "type": "equivalent", "target": "719efe348b34d6b22cc8b21765cddeb0", "evidence": {"same_day": true, "patch_ids": ["ee963513d01d5da2f56347e9a5e977d1"], "statement_hash": "72bc96feb7b321b3936e8e59c3c9140d5205fa59dcccfd38f357e6419436a7cf"}}, {"rule": 2, "type": "equivalent", "target": "8377f2e90aa926ed72be984f89dc8aa4", "evidence": {"same_day": true, "patch_ids": ["ee963513d01d5da2f56347e9a5e977d1"], "statement_hash": "72bc96feb7b321b3936e8e59c3c9140d5205fa59dcccfd38f357e6419436a7cf"}}], "version": "10.14", "category_label": "安全相关", "also_in": [], "variants": [], "related_changes": [{"db_id": "8377f2e90aa926ed72be984f89dc8aa4", "kind": "equivalent", "version": "12.4", "label": "12.4", "title": "提高 contrib 模块安装脚本的安全性", "evidence": {"same_day": true, "patch_ids": ["ee963513d01d5da2f56347e9a5e977d1"], "statement_hash": "72bc96feb7b321b3936e8e59c3c9140d5205fa59dcccfd38f357e6419436a7cf"}, "url": "/docs/compare/?release=12.4#12.4-5dfe16e1743c0c3d", "source_url": "/docs/release/12.4/#id-1.11.6.24.5"}, {"db_id": "6f776698fb9e7668f490543cb90859bb", "kind": "equivalent", "version": "11.9", "label": "11.9", "title": "提高 contrib 模块安装脚本的安全性", "evidence": {"same_day": true, "patch_ids": ["ee963513d01d5da2f56347e9a5e977d1"], "statement_hash": "72bc96feb7b321b3936e8e59c3c9140d5205fa59dcccfd38f357e6419436a7cf"}, "url": "/docs/compare/?release=11.9#11.9-3ae0ed313be57173", "source_url": "/docs/release/11.9/#id-1.11.6.18.5"}, {"db_id": "719efe348b34d6b22cc8b21765cddeb0", "kind": "equivalent", "version": "9.6.19", "label": "9.6.19", "title": "使 contrib 模块的安装脚本更安全", "evidence": {"same_day": true, "patch_ids": ["ee963513d01d5da2f56347e9a5e977d1"], "statement_hash": "72bc96feb7b321b3936e8e59c3c9140d5205fa59dcccfd38f357e6419436a7cf"}, "url": "/docs/compare/?release=9.6.19#9.6.19-781ce435b7e40fa2", "source_url": "/docs/release/9.6.19/#id-1.11.6.10.5"}, {"db_id": "18cf5409de16d861fde3ac6d27bd135e", "kind": "equivalent", "version": "9.5.23", "label": "9.5.23", "title": "使 contrib 模块的安装脚本更安全", "evidence": {"same_day": true, "patch_ids": ["ee963513d01d5da2f56347e9a5e977d1"], "statement_hash": "72bc96feb7b321b3936e8e59c3c9140d5205fa59dcccfd38f357e6419436a7cf"}, "url": "/docs/compare/?release=9.5.23#9.5.23-781ce435b7e40fa2", "source_url": "/docs/release/9.5.23/#id-1.11.6.7.6"}]}, {"id": "10.14-e4ea67f7f949aa8d", "cves": [], "html": "<p>在逻辑复制 WAL 发送进程中，修复发送保活消息后未能发送反馈消息的问题（Álvaro Herrera）</p>\n<p>使用内置逻辑复制时，这个问题相对较小，因为内置 WAL 接收进程本来就会相当频繁地发送反馈回复（从而清除错误状态）。但对于 <span>pglogical</span> 等其他复制系统，它会造成显著的性能问题。</p>", "text": "在逻辑复制 WAL 发送进程中，修复发送保活消息后未能发送反馈消息的问题（Álvaro Herrera） 使用内置逻辑复制时，这个问题相对较小，因为内置 WAL 接收进程本来就会相当频繁地发送反馈回复（从而清除错误状态）。但对于 pglogical 等其他复制系统，它会造成显著的性能问题。", "title": "在逻辑复制 WAL 发送进程中，修复发送保活消息后未能发送反馈消息的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/10.14/#id-1.11.6.14.5", "source_hash": "63a075b4a274ce32cf770e7b98ea05afd71e3e822d104be87e754b4ecbcf1c7a", "section_path": ["变更"], "commit_groups": [["1fa6eec97", "470687b4a", "55d42c917", "85cb4ec50", "900429d0c", "ca8e87ea0", "d81387da9"]], "identity_text": "In logical replication walsender, fix failure to send feedback messages after sending a keepalive message (Álvaro Herrera) This is a relatively minor problem when using built-in logical replication, because the built-in walreceiver will send a feedback reply (which clears the incorrect state) fairly frequently anyway. But with some other replication systems, such as pglogical, it causes significant performance issues.", "commit_aliases": ["1fa6eec97", "470687b4a", "55d42c917", "85cb4ec50", "900429d0c", "ca8e87ea0", "d81387da9"], "source_commits": ["d81387da9"], "source_entry_id": "10.14/changes/003", "db_id": "cabe354a4208fbcbb835fca837dc4c3f", "patch_ids": ["838ee285907cf70653d5136c563a4a64"], "statement_hash": "78da1dce2a46c2301983dd99575b9c7d468b780be37c0d23a591172aa024a305", "relations": [{"rule": 2, "type": "equivalent", "target": "0f8294d4511e6191c83434f1d7d3f675", "evidence": {"same_day": true, "patch_ids": ["838ee285907cf70653d5136c563a4a64"], "statement_hash": "78da1dce2a46c2301983dd99575b9c7d468b780be37c0d23a591172aa024a305"}}, {"rule": 2, "type": "equivalent", "target": "26d0301c25e8ff9458d315d4fd36dc12", "evidence": {"same_day": true, "patch_ids": ["838ee285907cf70653d5136c563a4a64"], "statement_hash": "78da1dce2a46c2301983dd99575b9c7d468b780be37c0d23a591172aa024a305"}}, {"rule": 2, "type": "equivalent", "target": "bf7ce45c7e479e2754cb90d6dc92e697", "evidence": {"same_day": true, "patch_ids": ["838ee285907cf70653d5136c563a4a64"], "statement_hash": "78da1dce2a46c2301983dd99575b9c7d468b780be37c0d23a591172aa024a305"}}, {"rule": 2, "type": "equivalent", "target": "e90504cd0a2ff10b93ddac26b1dfa3dc", "evidence": {"same_day": true, "patch_ids": ["838ee285907cf70653d5136c563a4a64"], "statement_hash": "78da1dce2a46c2301983dd99575b9c7d468b780be37c0d23a591172aa024a305"}}], "version": "10.14", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "0f8294d4511e6191c83434f1d7d3f675", "kind": "equivalent", "version": "12.4", "label": "12.4", "title": "在逻辑复制 WAL 发送进程中，修复发送保活消息后未能发送反馈消息的问题", "evidence": {"same_day": true, "patch_ids": ["838ee285907cf70653d5136c563a4a64"], "statement_hash": "78da1dce2a46c2301983dd99575b9c7d468b780be37c0d23a591172aa024a305"}, "url": "/docs/compare/?release=12.4#12.4-87adc0f482e81c62", "source_url": "/docs/release/12.4/#id-1.11.6.24.5"}, {"db_id": "e90504cd0a2ff10b93ddac26b1dfa3dc", "kind": "equivalent", "version": "11.9", "label": "11.9", "title": "在逻辑复制 WAL 发送进程中，修复发送保活消息后未能发送反馈消息的问题", "evidence": {"same_day": true, "patch_ids": ["838ee285907cf70653d5136c563a4a64"], "statement_hash": "78da1dce2a46c2301983dd99575b9c7d468b780be37c0d23a591172aa024a305"}, "url": "/docs/compare/?release=11.9#11.9-e4ea67f7f949aa8d", "source_url": "/docs/release/11.9/#id-1.11.6.18.5"}, {"db_id": "26d0301c25e8ff9458d315d4fd36dc12", "kind": "equivalent", "version": "9.6.19", "label": "9.6.19", "title": "修复逻辑复制 walsender 在发送 keepalive 消息之后未能发送反馈消息的问题", "evidence": {"same_day": true, "patch_ids": ["838ee285907cf70653d5136c563a4a64"], "statement_hash": "78da1dce2a46c2301983dd99575b9c7d468b780be37c0d23a591172aa024a305"}, "url": "/docs/compare/?release=9.6.19#9.6.19-37a06f1dc47f50aa", "source_url": "/docs/release/9.6.19/#id-1.11.6.10.5"}, {"db_id": "bf7ce45c7e479e2754cb90d6dc92e697", "kind": "equivalent", "version": "9.5.23", "label": "9.5.23", "title": "修复逻辑复制 walsender 在发送 keepalive 消息之后未能发送反馈消息的问题", "evidence": {"same_day": true, "patch_ids": ["838ee285907cf70653d5136c563a4a64"], "statement_hash": "78da1dce2a46c2301983dd99575b9c7d468b780be37c0d23a591172aa024a305"}, "url": "/docs/compare/?release=9.5.23#9.5.23-37a06f1dc47f50aa", "source_url": "/docs/release/9.5.23/#id-1.11.6.7.6"}]}, {"id": "10.14-9ee044ce86b8e17a", "cves": [], "html": "<p>修复逻辑复制订阅者中特定列 <code>UPDATE</code> 触发器的触发（Tom Lane）</p>\n<p>代码忽略了发布者和订阅者的表中列编号可能不同的情况，因此如果列编号确实不同，就可能错误判断应触发哪些触发器。</p>", "text": "修复逻辑复制订阅者中特定列 UPDATE 触发器的触发（Tom Lane） 代码忽略了发布者和订阅者的表中列编号可能不同的情况，因此如果列编号确实不同，就可能错误判断应触发哪些触发器。", "title": "修复逻辑复制订阅者中特定列 UPDATE 触发器的触发", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/10.14/#id-1.11.6.14.5", "source_hash": "b9849cab6f81612b90aeaf0a03d318977e232ff50a9aad5920ac304443a6794a", "section_path": ["变更"], "commit_groups": [["2f1f189cf", "39d6aec19", "71e561bd4", "d5daae47d", "e8de627a3"]], "identity_text": "Fix firing of column-specific UPDATE triggers in logical replication subscribers (Tom Lane) The code neglected to account for the possibility of column numbers being different between the publisher and subscriber tables, so that if those were indeed different, wrong decisions might be made about which triggers to fire.", "commit_aliases": ["2f1f189cf", "39d6aec19", "71e561bd4", "d5daae47d", "e8de627a3"], "source_commits": ["39d6aec19"], "source_entry_id": "10.14/changes/004", "db_id": "fa59f04b79def3f1ddf28afb8668dde7", "patch_ids": ["64f5c7930b1ad63877325902a09e2330"], "statement_hash": "79e1b201f146d50a35e9abe6e269b00f883453c195b58ab2ea0e8acd5e1285a0", "relations": [{"rule": 2, "type": "equivalent", "target": "7f3b3d818abf9363e3b17983f30f05af", "evidence": {"same_day": true, "patch_ids": ["64f5c7930b1ad63877325902a09e2330"], "statement_hash": "79e1b201f146d50a35e9abe6e269b00f883453c195b58ab2ea0e8acd5e1285a0"}}, {"rule": 2, "type": "equivalent", "target": "8eab6cc41e708462e1b56d5cbb8040bf", "evidence": {"same_day": true, "patch_ids": ["64f5c7930b1ad63877325902a09e2330"], "statement_hash": "79e1b201f146d50a35e9abe6e269b00f883453c195b58ab2ea0e8acd5e1285a0"}}], "version": "10.14", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "7f3b3d818abf9363e3b17983f30f05af", "kind": "equivalent", "version": "12.4", "label": "12.4", "title": "修复逻辑复制订阅者中特定列 UPDATE 触发器的触发", "evidence": {"same_day": true, "patch_ids": ["64f5c7930b1ad63877325902a09e2330"], "statement_hash": "79e1b201f146d50a35e9abe6e269b00f883453c195b58ab2ea0e8acd5e1285a0"}, "url": "/docs/compare/?release=12.4#12.4-98a9560fe193fc65", "source_url": "/docs/release/12.4/#id-1.11.6.24.5"}, {"db_id": "8eab6cc41e708462e1b56d5cbb8040bf", "kind": "equivalent", "version": "11.9", "label": "11.9", "title": "修复逻辑复制订阅者中特定列 UPDATE 触发器的触发", "evidence": {"same_day": true, "patch_ids": ["64f5c7930b1ad63877325902a09e2330"], "statement_hash": "79e1b201f146d50a35e9abe6e269b00f883453c195b58ab2ea0e8acd5e1285a0"}, "url": "/docs/compare/?release=11.9#11.9-9ee044ce86b8e17a", "source_url": "/docs/release/11.9/#id-1.11.6.18.5"}]}, {"id": "10.14-fba032e16a76b93b", "cves": [], "html": "<p>修复 <code>ts_headline()</code> 执行缓慢的问题（Tom Lane）</p>\n<p>上一批小版本中添加的短语搜索修复，可能使 <code>ts_headline()</code> 处理长文档时耗费极不合理的时间；更糟的是，在出现问题的循环中无法取消查询。</p>", "text": "修复 ts_headline() 执行缓慢的问题（Tom Lane） 上一批小版本中添加的短语搜索修复，可能使 ts_headline() 处理长文档时耗费极不合理的时间；更糟的是，在出现问题的循环中无法取消查询。", "title": "修复 ts_headline() 执行缓慢的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/10.14/#id-1.11.6.14.5", "source_hash": "ddb905b3de74b4d997efb740a98982f7f0c61037f6ac1c592f6d9c6415619c80", "section_path": ["变更"], "commit_groups": [["11dce63d6", "5e724125a", "70248d8f5", "78e73e875", "8ab00b9fe", "da596fb4b"]], "identity_text": "Fix slow execution of ts_headline() (Tom Lane) The phrase-search fix added in our previous set of minor releases could cause ts_headline() to take unreasonable amounts of time for long documents; to make matters worse, the query was not cancellable within the troublesome loop.", "commit_aliases": ["11dce63d6", "5e724125a", "70248d8f5", "78e73e875", "8ab00b9fe", "da596fb4b"], "source_commits": ["5e724125a"], "source_entry_id": "10.14/changes/005", "db_id": "c01eed12150b02f68a4db66c612558b1", "patch_ids": ["8322acde7b8b6b69b09ff453a5c47bad"], "statement_hash": "0f7876de56ba91c7213ee4d7ef5c736c75448ebe1c88943bd7af2114630f61bd", "relations": [{"rule": 2, "type": "equivalent", "target": "2903b0e2b8b517aa2358e9c39bd0edef", "evidence": {"same_day": true, "patch_ids": ["8322acde7b8b6b69b09ff453a5c47bad"], "statement_hash": "0f7876de56ba91c7213ee4d7ef5c736c75448ebe1c88943bd7af2114630f61bd"}}, {"rule": 2, "type": "equivalent", "target": "3a6bd7f257642f29dfd5b17705d8273e", "evidence": {"same_day": true, "patch_ids": ["8322acde7b8b6b69b09ff453a5c47bad"], "statement_hash": "0f7876de56ba91c7213ee4d7ef5c736c75448ebe1c88943bd7af2114630f61bd"}}, {"rule": 2, "type": "equivalent", "target": "af3cb895615673e2019ab1a456e05cbc", "evidence": {"same_day": true, "patch_ids": ["8322acde7b8b6b69b09ff453a5c47bad"], "statement_hash": "0f7876de56ba91c7213ee4d7ef5c736c75448ebe1c88943bd7af2114630f61bd"}}], "version": "10.14", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "3a6bd7f257642f29dfd5b17705d8273e", "kind": "equivalent", "version": "12.4", "label": "12.4", "title": "修复 ts_headline() 执行缓慢的问题", "evidence": {"same_day": true, "patch_ids": ["8322acde7b8b6b69b09ff453a5c47bad"], "statement_hash": "0f7876de56ba91c7213ee4d7ef5c736c75448ebe1c88943bd7af2114630f61bd"}, "url": "/docs/compare/?release=12.4#12.4-0483a3a3f7fc0ce4", "source_url": "/docs/release/12.4/#id-1.11.6.24.5"}, {"db_id": "af3cb895615673e2019ab1a456e05cbc", "kind": "equivalent", "version": "11.9", "label": "11.9", "title": "修复 ts_headline() 执行缓慢的问题", "evidence": {"same_day": true, "patch_ids": ["8322acde7b8b6b69b09ff453a5c47bad"], "statement_hash": "0f7876de56ba91c7213ee4d7ef5c736c75448ebe1c88943bd7af2114630f61bd"}, "url": "/docs/compare/?release=11.9#11.9-fba032e16a76b93b", "source_url": "/docs/release/11.9/#id-1.11.6.18.5"}, {"db_id": "2903b0e2b8b517aa2358e9c39bd0edef", "kind": "equivalent", "version": "9.6.19", "label": "9.6.19", "title": "修复 ts_headline() 执行缓慢的问题", "evidence": {"same_day": true, "patch_ids": ["8322acde7b8b6b69b09ff453a5c47bad"], "statement_hash": "0f7876de56ba91c7213ee4d7ef5c736c75448ebe1c88943bd7af2114630f61bd"}, "url": "/docs/compare/?release=9.6.19#9.6.19-fba032e16a76b93b", "source_url": "/docs/release/9.6.19/#id-1.11.6.10.5"}]}, {"id": "10.14-3dea74ebc61ab921", "cves": [], "html": "<p>确保 <code>repeat()</code> 函数可以被查询取消中断（Joe Conway）</p>", "text": "确保 repeat() 函数可以被查询取消中断（Joe Conway）", "title": "确保 repeat() 函数可以被查询取消中断", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/10.14/#id-1.11.6.14.5", "source_hash": "c4c870bb6c01fbafbd3d5ad5e7c7d102aa67305159bc6116fc59c6130cef41e6", "section_path": ["变更"], "commit_groups": [["28e2c6eac", "2cbe3a954", "36758c472", "3ccae5445", "887cdff4d", "bfb9595a7"]], "identity_text": "Ensure the repeat() function can be interrupted by query cancel (Joe Conway)", "commit_aliases": ["28e2c6eac", "2cbe3a954", "36758c472", "3ccae5445", "887cdff4d", "bfb9595a7"], "source_commits": ["2cbe3a954"], "source_entry_id": "10.14/changes/006", "db_id": "15590131856ea79ace85971af4f361ce", "patch_ids": ["dbe397e5b04b09dc9905e418f5e5447b"], "statement_hash": "80f387e3113963f9e5f61df238bc01044b908d1c7118370baa5fd727e5e76558", "relations": [{"rule": 2, "type": "equivalent", "target": "2894d36583a162925688dafe9493c932", "evidence": {"same_day": true, "patch_ids": ["dbe397e5b04b09dc9905e418f5e5447b"], "statement_hash": "80f387e3113963f9e5f61df238bc01044b908d1c7118370baa5fd727e5e76558"}}, {"rule": 2, "type": "equivalent", "target": "4d5a1085e5fe26c29b807e655f12e460", "evidence": {"same_day": true, "patch_ids": ["dbe397e5b04b09dc9905e418f5e5447b"], "statement_hash": "80f387e3113963f9e5f61df238bc01044b908d1c7118370baa5fd727e5e76558"}}, {"rule": 2, "type": "equivalent", "target": "d9948925bfe5a457879a410568ae0724", "evidence": {"same_day": true, "patch_ids": ["dbe397e5b04b09dc9905e418f5e5447b"], "statement_hash": "80f387e3113963f9e5f61df238bc01044b908d1c7118370baa5fd727e5e76558"}}, {"rule": 2, "type": "equivalent", "target": "d9d7373454e44d4651cf6d3584ec5cd2", "evidence": {"same_day": true, "patch_ids": ["dbe397e5b04b09dc9905e418f5e5447b"], "statement_hash": "80f387e3113963f9e5f61df238bc01044b908d1c7118370baa5fd727e5e76558"}}], "version": "10.14", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "d9948925bfe5a457879a410568ae0724", "kind": "equivalent", "version": "12.4", "label": "12.4", "title": "确保 repeat() 函数可以被查询取消中断", "evidence": {"same_day": true, "patch_ids": ["dbe397e5b04b09dc9905e418f5e5447b"], "statement_hash": "80f387e3113963f9e5f61df238bc01044b908d1c7118370baa5fd727e5e76558"}, "url": "/docs/compare/?release=12.4#12.4-1696fc1f133a0290", "source_url": "/docs/release/12.4/#id-1.11.6.24.5"}, {"db_id": "d9d7373454e44d4651cf6d3584ec5cd2", "kind": "equivalent", "version": "11.9", "label": "11.9", "title": "确保 repeat() 函数可以被查询取消中断", "evidence": {"same_day": true, "patch_ids": ["dbe397e5b04b09dc9905e418f5e5447b"], "statement_hash": "80f387e3113963f9e5f61df238bc01044b908d1c7118370baa5fd727e5e76558"}, "url": "/docs/compare/?release=11.9#11.9-3dea74ebc61ab921", "source_url": "/docs/release/11.9/#id-1.11.6.18.5"}, {"db_id": "2894d36583a162925688dafe9493c932", "kind": "equivalent", "version": "9.6.19", "label": "9.6.19", "title": "确保 repeat() 函数可以被查询取消中断", "evidence": {"same_day": true, "patch_ids": ["dbe397e5b04b09dc9905e418f5e5447b"], "statement_hash": "80f387e3113963f9e5f61df238bc01044b908d1c7118370baa5fd727e5e76558"}, "url": "/docs/compare/?release=9.6.19#9.6.19-3dea74ebc61ab921", "source_url": "/docs/release/9.6.19/#id-1.11.6.10.5"}, {"db_id": "4d5a1085e5fe26c29b807e655f12e460", "kind": "equivalent", "version": "9.5.23", "label": "9.5.23", "title": "确保 repeat() 函数可以被查询取消中断", "evidence": {"same_day": true, "patch_ids": ["dbe397e5b04b09dc9905e418f5e5447b"], "statement_hash": "80f387e3113963f9e5f61df238bc01044b908d1c7118370baa5fd727e5e76558"}, "url": "/docs/compare/?release=9.5.23#9.5.23-3dea74ebc61ab921", "source_url": "/docs/release/9.5.23/#id-1.11.6.7.6"}]}, {"id": "10.14-534b9a9ee1f7c72d", "cves": [], "html": "<p>修复 <code>pg_current_logfile()</code>，使其结果在 Windows 上不包含回车符（<code>\\r</code>）（Tom Lane）</p>", "text": "修复 pg_current_logfile()，使其结果在 Windows 上不包含回车符（\\r）（Tom Lane）", "title": "修复 pg_current_logfile()，使其结果在 Windows 上不包含回车符（\\r）", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/10.14/#id-1.11.6.14.5", "source_hash": "1c7b679df9f00331c25120df1dcb40bacbe232ad5c0443cccdce3e0a9c2321fe", "section_path": ["变更"], "commit_groups": [["183926da3", "2564e2d08", "601d419b2", "765ad260a", "90b418f81"]], "identity_text": "Fix pg_current_logfile() to not include a carriage return (\\r) in its result on Windows (Tom Lane)", "commit_aliases": ["183926da3", "2564e2d08", "601d419b2", "765ad260a", "90b418f81"], "source_commits": ["765ad260a"], "source_entry_id": "10.14/changes/007", "db_id": "4d3f712322aa2581cd889ad5bf09e61b", "patch_ids": ["93a7460da396dc915e0c699412c4c8bc"], "statement_hash": "f063de65e5fb19a43de0bed48ebc88d8cc465d566922e4d01f69f233baa6c826", "relations": [{"rule": 2, "type": "equivalent", "target": "27417d1090ec194e8fb0955f665ca2c4", "evidence": {"same_day": true, "patch_ids": ["93a7460da396dc915e0c699412c4c8bc"], "statement_hash": "f063de65e5fb19a43de0bed48ebc88d8cc465d566922e4d01f69f233baa6c826"}}, {"rule": 2, "type": "equivalent", "target": "46dcb31487960d7b4f84135ec395fcc2", "evidence": {"same_day": true, "patch_ids": ["93a7460da396dc915e0c699412c4c8bc"], "statement_hash": "f063de65e5fb19a43de0bed48ebc88d8cc465d566922e4d01f69f233baa6c826"}}], "version": "10.14", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "46dcb31487960d7b4f84135ec395fcc2", "kind": "equivalent", "version": "12.4", "label": "12.4", "title": "修复 pg_current_logfile()，使其结果在 Windows 上不包含回车符（\\r）", "evidence": {"same_day": true, "patch_ids": ["93a7460da396dc915e0c699412c4c8bc"], "statement_hash": "f063de65e5fb19a43de0bed48ebc88d8cc465d566922e4d01f69f233baa6c826"}, "url": "/docs/compare/?release=12.4#12.4-36086d779c1800c8", "source_url": "/docs/release/12.4/#id-1.11.6.24.5"}, {"db_id": "27417d1090ec194e8fb0955f665ca2c4", "kind": "equivalent", "version": "11.9", "label": "11.9", "title": "修复 pg_current_logfile()，使其结果在 Windows 上不包含回车符（\\r）", "evidence": {"same_day": true, "patch_ids": ["93a7460da396dc915e0c699412c4c8bc"], "statement_hash": "f063de65e5fb19a43de0bed48ebc88d8cc465d566922e4d01f69f233baa6c826"}, "url": "/docs/compare/?release=11.9#11.9-534b9a9ee1f7c72d", "source_url": "/docs/release/11.9/#id-1.11.6.18.5"}]}, {"id": "10.14-538b1f2a7b50c47f", "cves": [], "html": "<p>修复对 <code>numeric</code> 类型列进行并行聚合时对 <code>NaN</code> 输入的错误处理（Tom Lane）</p>\n<p>如果某些部分聚合工作进程只找到 <code>NaN</code>，而其他工作进程只找到非 <code>NaN</code> 值，结果就会被错误合并，可能导致整体结果错误（即本应为 <code>NaN</code> 时却不是）。</p>", "text": "修复对 numeric 类型列进行并行聚合时对 NaN 输入的错误处理（Tom Lane） 如果某些部分聚合工作进程只找到 NaN，而其他工作进程只找到非 NaN 值，结果就会被错误合并，可能导致整体结果错误（即本应为 NaN 时却不是）。", "title": "修复对 numeric 类型列进行并行聚合时对 NaN 输入的错误处理", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/10.14/#id-1.11.6.14.5", "source_hash": "7c806206db96dcf2d04ca90d1674abdb1e2b77eb41686b43d1a9bfc2addff2c0", "section_path": ["变更"], "commit_groups": [["36df06e25", "411a4626e", "4284e1184", "49e0a42dd", "77a3be32f", "ee788ba99"]], "identity_text": "Fix mis-handling of NaN inputs during parallel aggregation on numeric-type columns (Tom Lane) If some partial aggregation workers found only NaNs while others found only non-NaNs, the results were combined incorrectly, possibly leading to the wrong overall result (i.e., not NaN when it should be).", "commit_aliases": ["36df06e25", "411a4626e", "4284e1184", "49e0a42dd", "77a3be32f", "ee788ba99"], "source_commits": ["411a4626e"], "source_entry_id": "10.14/changes/008", "db_id": "115465b505e68c4f7ee5a54b04440a2f", "patch_ids": ["6b493e5a0009b33497690821d4cd18a3"], "statement_hash": "276c0fb2fb3bf4049e914f7a786c802044a803f579e8a686a079d33226ae9dd5", "relations": [{"rule": 2, "type": "equivalent", "target": "54421606eedc972d78b8211ccef16057", "evidence": {"same_day": true, "patch_ids": ["6b493e5a0009b33497690821d4cd18a3"], "statement_hash": "276c0fb2fb3bf4049e914f7a786c802044a803f579e8a686a079d33226ae9dd5"}}, {"rule": 2, "type": "equivalent", "target": "8816f5a56079fd900dbc62d961f15191", "evidence": {"same_day": true, "patch_ids": ["6b493e5a0009b33497690821d4cd18a3"], "statement_hash": "276c0fb2fb3bf4049e914f7a786c802044a803f579e8a686a079d33226ae9dd5"}}, {"rule": 2, "type": "equivalent", "target": "d86e84f2c21284e9036e37da06e39c2f", "evidence": {"same_day": true, "patch_ids": ["6b493e5a0009b33497690821d4cd18a3"], "statement_hash": "276c0fb2fb3bf4049e914f7a786c802044a803f579e8a686a079d33226ae9dd5"}}], "version": "10.14", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "d86e84f2c21284e9036e37da06e39c2f", "kind": "equivalent", "version": "12.4", "label": "12.4", "title": "修复对 numeric 类型列进行并行聚合时对 NaN 输入的错误处理", "evidence": {"same_day": true, "patch_ids": ["6b493e5a0009b33497690821d4cd18a3"], "statement_hash": "276c0fb2fb3bf4049e914f7a786c802044a803f579e8a686a079d33226ae9dd5"}, "url": "/docs/compare/?release=12.4#12.4-61e54fcb719bd8df", "source_url": "/docs/release/12.4/#id-1.11.6.24.5"}, {"db_id": "8816f5a56079fd900dbc62d961f15191", "kind": "equivalent", "version": "11.9", "label": "11.9", "title": "修复对 numeric 类型列进行并行聚合时对 NaN 输入的错误处理", "evidence": {"same_day": true, "patch_ids": ["6b493e5a0009b33497690821d4cd18a3"], "statement_hash": "276c0fb2fb3bf4049e914f7a786c802044a803f579e8a686a079d33226ae9dd5"}, "url": "/docs/compare/?release=11.9#11.9-538b1f2a7b50c47f", "source_url": "/docs/release/11.9/#id-1.11.6.18.5"}, {"db_id": "54421606eedc972d78b8211ccef16057", "kind": "equivalent", "version": "9.6.19", "label": "9.6.19", "title": "修复 numeric 类型列并行聚合时对 NaN 输入的错误处理", "evidence": {"same_day": true, "patch_ids": ["6b493e5a0009b33497690821d4cd18a3"], "statement_hash": "276c0fb2fb3bf4049e914f7a786c802044a803f579e8a686a079d33226ae9dd5"}, "url": "/docs/compare/?release=9.6.19#9.6.19-7cf193c4e5adfe9e", "source_url": "/docs/release/9.6.19/#id-1.11.6.10.5"}]}, {"id": "10.14-1a9eea4223af9e98", "cves": [], "html": "<p>拒绝大于 24 小时的日内时间值（Tom Lane）</p>\n<p>日期时间输入代码的本意是允许 <span>“<span>24:00:00</span>”</span> 或等价的 <span>“<span>23:59:60</span>”</span>，但不允许更大的值。然而，范围检查的代码有误，会接受 <span>“<span>23:59:60.<em><code>nnn</code></em></span>”</span>，其中小数秒 <em><code>nnn</code></em> 可以非零。对于时间戳值，这会使其跨入下一天的第一秒。对于 <code>time</code> 和 <code>timetz</code> 值，存储的值实际上会超过 24 小时，从而导致转储/重载失败，并可能引发其他异常行为。</p>", "text": "拒绝大于 24 小时的日内时间值（Tom Lane） 日期时间输入代码的本意是允许 “24:00:00” 或等价的 “23:59:60”，但不允许更大的值。然而，范围检查的代码有误，会接受 “23:59:60.nnn”，其中小数秒 nnn 可以非零。对于时间戳值，这会使其跨入下一天的第一秒。对于 time 和 timetz 值，存储的值实际上会超过 24 小时，从而导致转储/重载失败，并可能引发其他异常行为。", "title": "拒绝大于 24 小时的日内时间值", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/10.14/#id-1.11.6.14.5", "source_hash": "d74c0c566a2eea0977016e66c9ba1d694c1fe4323fa3045326480a5c231e1428", "section_path": ["变更"], "commit_groups": [["6490376e5", "a958b07bc", "a9632830b", "b2c64f571"], ["9a9ba4c4d"]], "identity_text": "Reject time-of-day values greater than 24 hours (Tom Lane) The intention of the datetime input code is to allow 24:00:00 or equivalently 23:59:60, but no larger value. However, the range check was miscoded so that it would accept 23:59:60.nnn with nonzero fractional-second nnn. In timestamp values this would result in wrapping into the first second of the next day. In time and timetz values, the stored value would actually be more than 24 hours, causing dump/reload failures and possibly other misbehavior.", "commit_aliases": ["6490376e5", "9a9ba4c4d", "a958b07bc", "a9632830b", "b2c64f571"], "source_commits": ["9a9ba4c4d", "b2c64f571"], "source_entry_id": "10.14/changes/009", "db_id": "3825b8c483dcc8ac789f68ae9404810b", "patch_ids": ["7e2df5d4aa139c2ffe581a8a6a9688bf", "fdd0e55581e032cbc5c6ad7506ea2639"], "statement_hash": "52117bf27471b2968372e5f216ee6a86db2467ee9dfb1f7d4c587e718c880d2c", "relations": [{"rule": 2, "type": "equivalent", "target": "1337266a3d3c3d41a4074ae70545f060", "evidence": {"same_day": true, "patch_ids": ["7e2df5d4aa139c2ffe581a8a6a9688bf", "fdd0e55581e032cbc5c6ad7506ea2639"], "statement_hash": "52117bf27471b2968372e5f216ee6a86db2467ee9dfb1f7d4c587e718c880d2c"}}, {"rule": 2, "type": "equivalent", "target": "25738d170c6d7b77496be3c9022a3ae2", "evidence": {"same_day": true, "patch_ids": ["7e2df5d4aa139c2ffe581a8a6a9688bf", "fdd0e55581e032cbc5c6ad7506ea2639"], "statement_hash": "52117bf27471b2968372e5f216ee6a86db2467ee9dfb1f7d4c587e718c880d2c"}}], "version": "10.14", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "25738d170c6d7b77496be3c9022a3ae2", "kind": "equivalent", "version": "12.4", "label": "12.4", "title": "拒绝大于 24 小时的日内时间值", "evidence": {"same_day": true, "patch_ids": ["7e2df5d4aa139c2ffe581a8a6a9688bf", "fdd0e55581e032cbc5c6ad7506ea2639"], "statement_hash": "52117bf27471b2968372e5f216ee6a86db2467ee9dfb1f7d4c587e718c880d2c"}, "url": "/docs/compare/?release=12.4#12.4-816d5e4d96652703", "source_url": "/docs/release/12.4/#id-1.11.6.24.5"}, {"db_id": "1337266a3d3c3d41a4074ae70545f060", "kind": "equivalent", "version": "11.9", "label": "11.9", "title": "拒绝大于 24 小时的日内时间值", "evidence": {"same_day": true, "patch_ids": ["7e2df5d4aa139c2ffe581a8a6a9688bf", "fdd0e55581e032cbc5c6ad7506ea2639"], "statement_hash": "52117bf27471b2968372e5f216ee6a86db2467ee9dfb1f7d4c587e718c880d2c"}, "url": "/docs/compare/?release=11.9#11.9-1a9eea4223af9e98", "source_url": "/docs/release/11.9/#id-1.11.6.18.5"}]}, {"id": "10.14-3d9a2136bc15fdbb", "cves": [], "html": "<p>撤销 <code>EXPLAIN</code> 非文本输出格式中为索引名称添加双引号的行为（Tom Lane，Euler Taveira）</p>", "text": "撤销 EXPLAIN 非文本输出格式中为索引名称添加双引号的行为（Tom Lane，Euler Taveira）", "title": "撤销 EXPLAIN 非文本输出格式中为索引名称添加双引号的行为", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/10.14/#id-1.11.6.14.5", "source_hash": "9789ce8ceb15ed285c8bccd1e8b6b3e840380254c5f3e5835d07296e0069536f", "section_path": ["变更"], "commit_groups": [["35a8e227e", "57f8b9913", "63d2ac23b", "6d9f7a094", "bd53ea2b2", "d3d875518", "dda25c599"]], "identity_text": "Undo double-quoting of index names in EXPLAIN's non-text output formats (Tom Lane, Euler Taveira)", "commit_aliases": ["35a8e227e", "57f8b9913", "63d2ac23b", "6d9f7a094", "bd53ea2b2", "d3d875518", "dda25c599"], "source_commits": ["6d9f7a094"], "source_entry_id": "10.14/changes/010", "db_id": "011162654ab589bcdcdc140fdaf08bac", "patch_ids": ["3dcb6f38666b8f8fc786881aae1a8f73"], "statement_hash": "156c0c86e9280a437e95682cbe16ec3a72beb945ead97808f01aeb4df6dca95c", "relations": [{"rule": 2, "type": "equivalent", "target": "22d4b5a3aaf064d42438c0ab2b0aa8bc", "evidence": {"same_day": true, "patch_ids": ["3dcb6f38666b8f8fc786881aae1a8f73"], "statement_hash": "156c0c86e9280a437e95682cbe16ec3a72beb945ead97808f01aeb4df6dca95c"}}, {"rule": 2, "type": "equivalent", "target": "59ad7e26b0dbce1e812dfd5c4323c057", "evidence": {"same_day": true, "patch_ids": ["3dcb6f38666b8f8fc786881aae1a8f73"], "statement_hash": "156c0c86e9280a437e95682cbe16ec3a72beb945ead97808f01aeb4df6dca95c"}}, {"rule": 2, "type": "equivalent", "target": "83aea5e38bc3569d62122d9c586ba273", "evidence": {"same_day": true, "patch_ids": ["3dcb6f38666b8f8fc786881aae1a8f73"], "statement_hash": "156c0c86e9280a437e95682cbe16ec3a72beb945ead97808f01aeb4df6dca95c"}}, {"rule": 2, "type": "equivalent", "target": "ddb6a1a686d5e87d667272bf9f2be994", "evidence": {"same_day": true, "patch_ids": ["3dcb6f38666b8f8fc786881aae1a8f73"], "statement_hash": "156c0c86e9280a437e95682cbe16ec3a72beb945ead97808f01aeb4df6dca95c"}}], "version": "10.14", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "ddb6a1a686d5e87d667272bf9f2be994", "kind": "equivalent", "version": "12.4", "label": "12.4", "title": "撤销 EXPLAIN 非文本输出格式中为索引名称添加双引号的行为", "evidence": {"same_day": true, "patch_ids": ["3dcb6f38666b8f8fc786881aae1a8f73"], "statement_hash": "156c0c86e9280a437e95682cbe16ec3a72beb945ead97808f01aeb4df6dca95c"}, "url": "/docs/compare/?release=12.4#12.4-5b4591cebb679f3a", "source_url": "/docs/release/12.4/#id-1.11.6.24.5"}, {"db_id": "83aea5e38bc3569d62122d9c586ba273", "kind": "equivalent", "version": "11.9", "label": "11.9", "title": "撤销 EXPLAIN 非文本输出格式中为索引名称添加双引号的行为", "evidence": {"same_day": true, "patch_ids": ["3dcb6f38666b8f8fc786881aae1a8f73"], "statement_hash": "156c0c86e9280a437e95682cbe16ec3a72beb945ead97808f01aeb4df6dca95c"}, "url": "/docs/compare/?release=11.9#11.9-3d9a2136bc15fdbb", "source_url": "/docs/release/11.9/#id-1.11.6.18.5"}, {"db_id": "59ad7e26b0dbce1e812dfd5c4323c057", "kind": "equivalent", "version": "9.6.19", "label": "9.6.19", "title": "撤销 EXPLAIN 非文本输出格式中对索引名的双重引号", "evidence": {"same_day": true, "patch_ids": ["3dcb6f38666b8f8fc786881aae1a8f73"], "statement_hash": "156c0c86e9280a437e95682cbe16ec3a72beb945ead97808f01aeb4df6dca95c"}, "url": "/docs/compare/?release=9.6.19#9.6.19-a6a7ef93c2c1dc36", "source_url": "/docs/release/9.6.19/#id-1.11.6.10.5"}, {"db_id": "22d4b5a3aaf064d42438c0ab2b0aa8bc", "kind": "equivalent", "version": "9.5.23", "label": "9.5.23", "title": "撤销 EXPLAIN 非文本输出格式中对索引名的双重引号", "evidence": {"same_day": true, "patch_ids": ["3dcb6f38666b8f8fc786881aae1a8f73"], "statement_hash": "156c0c86e9280a437e95682cbe16ec3a72beb945ead97808f01aeb4df6dca95c"}, "url": "/docs/compare/?release=9.5.23#9.5.23-a6a7ef93c2c1dc36", "source_url": "/docs/release/9.5.23/#id-1.11.6.7.6"}]}, {"id": "10.14-0ca175fa3069b1bb", "cves": [], "html": "<p>修复 <code>EXPLAIN</code> 对使用 <code>Gather Merge</code> 节点的计划中并行工作进程的资源使用统计，尤其是缓冲区访问统计（Jehan-Guillaume de Rorthais）</p>", "text": "修复 EXPLAIN 对使用 Gather Merge 节点的计划中并行工作进程的资源使用统计，尤其是缓冲区访问统计（Jehan-Guillaume de Rorthais）", "title": "修复 EXPLAIN 对使用 Gather Merge 节点的计划中并行工作进程的资源使用统计，尤其是缓冲区访问统计", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/10.14/#id-1.11.6.14.5", "source_hash": "dd47395ab7c40d7aeff8ecb95f09b230c881d68df1d295e0f2b7d16fb6adc41a", "section_path": ["变更"], "commit_groups": [["2a2494229", "603c18b7e", "b15367ae3", "bdaa84e38", "f963b5bc0"]], "identity_text": "Fix EXPLAIN's accounting for resource usage, particularly buffer accesses, in parallel workers in a plan using Gather Merge nodes (Jehan-Guillaume de Rorthais)", "commit_aliases": ["2a2494229", "603c18b7e", "b15367ae3", "bdaa84e38", "f963b5bc0"], "source_commits": ["f963b5bc0"], "source_entry_id": "10.14/changes/011", "db_id": "e722def7b910f03a72d06a1cc28aab8c", "patch_ids": ["5b860522b4d52755d132208918f172e4"], "statement_hash": "4b3f26b539be7cb6c24f104188737676623b6ff5ef025d9b6633da37ee08c673", "relations": [{"rule": 2, "type": "equivalent", "target": "d338b191706b499a65b134bf6ec2f714", "evidence": {"same_day": true, "patch_ids": ["5b860522b4d52755d132208918f172e4"], "statement_hash": "4b3f26b539be7cb6c24f104188737676623b6ff5ef025d9b6633da37ee08c673"}}, {"rule": 2, "type": "equivalent", "target": "e31803364b9afcb573b16607a51c4f67", "evidence": {"same_day": true, "patch_ids": ["5b860522b4d52755d132208918f172e4"], "statement_hash": "4b3f26b539be7cb6c24f104188737676623b6ff5ef025d9b6633da37ee08c673"}}], "version": "10.14", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "d338b191706b499a65b134bf6ec2f714", "kind": "equivalent", "version": "12.4", "label": "12.4", "title": "修复 EXPLAIN 对使用 Gather Merge 节点的计划中并行工作进程的资源使用统计，尤其是缓冲区访问统计", "evidence": {"same_day": true, "patch_ids": ["5b860522b4d52755d132208918f172e4"], "statement_hash": "4b3f26b539be7cb6c24f104188737676623b6ff5ef025d9b6633da37ee08c673"}, "url": "/docs/compare/?release=12.4#12.4-1de56c7fe8e236d7", "source_url": "/docs/release/12.4/#id-1.11.6.24.5"}, {"db_id": "e31803364b9afcb573b16607a51c4f67", "kind": "equivalent", "version": "11.9", "label": "11.9", "title": "修复 EXPLAIN 对使用 Gather Merge 节点的计划中并行工作进程的资源使用统计，尤其是缓冲区访问统计", "evidence": {"same_day": true, "patch_ids": ["5b860522b4d52755d132208918f172e4"], "statement_hash": "4b3f26b539be7cb6c24f104188737676623b6ff5ef025d9b6633da37ee08c673"}, "url": "/docs/compare/?release=11.9#11.9-0ca175fa3069b1bb", "source_url": "/docs/release/11.9/#id-1.11.6.18.5"}]}, {"id": "10.14-82fef7cf6beac3ff", "cves": [], "html": "<p>修复 <code>ALTER TABLE</code> 中重新验证约束的时机（David Rowley）</p>\n<p>如果 <code>ALTER TABLE</code> 需要完全重写表内容（例如更改列的数据类型），又需要扫描表以重新验证外键或 <code>CHECK</code> 约束，有时会按错误顺序执行，导致 <span>“<span>could not read block 0 in file \"base/nnnnn/nnnnn\": read only 0 of 8192 bytes</span>”</span> 等奇怪错误。</p>", "text": "修复 ALTER TABLE 中重新验证约束的时机（David Rowley） 如果 ALTER TABLE 需要完全重写表内容（例如更改列的数据类型），又需要扫描表以重新验证外键或 CHECK 约束，有时会按错误顺序执行，导致 “could not read block 0 in file \"base/nnnnn/nnnnn\": read only 0 of 8192 bytes” 等奇怪错误。", "title": "修复 ALTER TABLE 中重新验证约束的时机", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/10.14/#id-1.11.6.14.5", "source_hash": "f909317eb0e1e8c5fc231fef9f0ed301433c1e5e7dc2d4e08450b4f5e9da883a", "section_path": ["变更"], "commit_groups": [["1231a0b0e", "4e02f88a4", "b82730429", "c732df133", "d2761b680", "e20003fa0", "f1fcf2d3b"]], "identity_text": "Fix timing of constraint revalidation in ALTER TABLE (David Rowley) If ALTER TABLE needs to fully rewrite the table's contents (for example, due to change of a column's data type) and also needs to scan the table to re-validate foreign keys or CHECK constraints, it sometimes did things in the wrong order, leading to odd errors such as could not read block 0 in file \"base/nnnnn/nnnnn\": read only 0 of 8192 bytes.", "commit_aliases": ["1231a0b0e", "4e02f88a4", "b82730429", "c732df133", "d2761b680", "e20003fa0", "f1fcf2d3b"], "source_commits": ["4e02f88a4"], "source_entry_id": "10.14/changes/012", "db_id": "650585e53a9a45b27f8e5169b83839a8", "patch_ids": ["be0b530bb3bbcfe75ad800c4de8c01cc"], "statement_hash": "14e4c4d9c85acc0b496a4b265809a1fcb471b1e6b160dd5e4d3b39009cabe84c", "relations": [{"rule": 2, "type": "equivalent", "target": "0274fabb0bf25d05d42e8ffe40c0f534", "evidence": {"same_day": true, "patch_ids": ["be0b530bb3bbcfe75ad800c4de8c01cc"], "statement_hash": "14e4c4d9c85acc0b496a4b265809a1fcb471b1e6b160dd5e4d3b39009cabe84c"}}, {"rule": 2, "type": "equivalent", "target": "18f5d381707525c995a95b216fb986ab", "evidence": {"same_day": true, "patch_ids": ["be0b530bb3bbcfe75ad800c4de8c01cc"], "statement_hash": "14e4c4d9c85acc0b496a4b265809a1fcb471b1e6b160dd5e4d3b39009cabe84c"}}, {"rule": 2, "type": "equivalent", "target": "7ed9ce2430e727ad9838dcfd2cfb5bdb", "evidence": {"same_day": true, "patch_ids": ["be0b530bb3bbcfe75ad800c4de8c01cc"], "statement_hash": "14e4c4d9c85acc0b496a4b265809a1fcb471b1e6b160dd5e4d3b39009cabe84c"}}, {"rule": 2, "type": "equivalent", "target": "d9ed901b6505a3d692a1664fb900b5d2", "evidence": {"same_day": true, "patch_ids": ["be0b530bb3bbcfe75ad800c4de8c01cc"], "statement_hash": "14e4c4d9c85acc0b496a4b265809a1fcb471b1e6b160dd5e4d3b39009cabe84c"}}], "version": "10.14", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "18f5d381707525c995a95b216fb986ab", "kind": "equivalent", "version": "12.4", "label": "12.4", "title": "修复 ALTER TABLE 中重新验证约束的时机", "evidence": {"same_day": true, "patch_ids": ["be0b530bb3bbcfe75ad800c4de8c01cc"], "statement_hash": "14e4c4d9c85acc0b496a4b265809a1fcb471b1e6b160dd5e4d3b39009cabe84c"}, "url": "/docs/compare/?release=12.4#12.4-d59e20076dcde465", "source_url": "/docs/release/12.4/#id-1.11.6.24.5"}, {"db_id": "d9ed901b6505a3d692a1664fb900b5d2", "kind": "equivalent", "version": "11.9", "label": "11.9", "title": "修复 ALTER TABLE 中重新验证约束的时机", "evidence": {"same_day": true, "patch_ids": ["be0b530bb3bbcfe75ad800c4de8c01cc"], "statement_hash": "14e4c4d9c85acc0b496a4b265809a1fcb471b1e6b160dd5e4d3b39009cabe84c"}, "url": "/docs/compare/?release=11.9#11.9-82fef7cf6beac3ff", "source_url": "/docs/release/11.9/#id-1.11.6.18.5"}, {"db_id": "7ed9ce2430e727ad9838dcfd2cfb5bdb", "kind": "equivalent", "version": "9.6.19", "label": "9.6.19", "title": "修复 ALTER TABLE 中约束重新验证的时机", "evidence": {"same_day": true, "patch_ids": ["be0b530bb3bbcfe75ad800c4de8c01cc"], "statement_hash": "14e4c4d9c85acc0b496a4b265809a1fcb471b1e6b160dd5e4d3b39009cabe84c"}, "url": "/docs/compare/?release=9.6.19#9.6.19-85e01238f9ff3c85", "source_url": "/docs/release/9.6.19/#id-1.11.6.10.5"}, {"db_id": "0274fabb0bf25d05d42e8ffe40c0f534", "kind": "equivalent", "version": "9.5.23", "label": "9.5.23", "title": "修复 ALTER TABLE 中约束重新验证的时机", "evidence": {"same_day": true, "patch_ids": ["be0b530bb3bbcfe75ad800c4de8c01cc"], "statement_hash": "14e4c4d9c85acc0b496a4b265809a1fcb471b1e6b160dd5e4d3b39009cabe84c"}, "url": "/docs/compare/?release=9.5.23#9.5.23-85e01238f9ff3c85", "source_url": "/docs/release/9.5.23/#id-1.11.6.7.6"}]}, {"id": "10.14-b0d074e251bd5ccb", "cves": [], "html": "<p>规避 <code>pg_subscription</code>.<code>subslotname</code> 和 <code>pg_subscription_rel</code>.<code>srsublsn</code> 上不正确的非空标记（Tom Lane）</p>\n<p>引导目录数据错误地将这两个目录列标记为始终非空。在现有安装实例中不容易修正这一错误（不过 v13 及更新版本将具有正确标记）。主要依赖该标记正确性的地方是启用 JIT 的元组解构，因此让它显式忽略这两列的标记。另外，调整某些未检查是否为空就访问 <code>srsublsn</code> 的 C 代码；由此引发崩溃的可能性很低，但或许并非不可能。</p>", "text": "规避 pg_subscription.subslotname 和 pg_subscription_rel.srsublsn 上不正确的非空标记（Tom Lane） 引导目录数据错误地将这两个目录列标记为始终非空。在现有安装实例中不容易修正这一错误（不过 v13 及更新版本将具有正确标记）。主要依赖该标记正确性的地方是启用 JIT 的元组解构，因此让它显式忽略这两列的标记。另外，调整某些未检查是否为空就访问 srsublsn 的 C 代码；由此引发崩溃的可能性很低，但或许并非不可能。", "title": "规避 pg_subscription.subslotname 和 pg_subscription_rel.srsublsn 上不正确的非空标记", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/10.14/#id-1.11.6.14.5", "source_hash": "458155c4758eb07954e28fa86327f9d654965540982c2b29bb2218308e7a6ccb", "section_path": ["变更"], "commit_groups": [["798b4faef", "855195a7b"], ["99b0c5da3", "ae3d40b0c", "b7103bbe3"]], "identity_text": "Work around incorrect not-null markings for pg_subscription.subslotname and pg_subscription_rel.srsublsn (Tom Lane) The bootstrap catalog data incorrectly marks these two catalog columns as always non-null. There's no easy way to correct that mistake in existing installations (though v13 and later will have the correct markings). The main place that depends on that marking being correct is JIT-enabled tuple deconstruction, so teach it to explicitly ignore the marking for these two columns. Also adjust some C code that accessed srsublsn without checking to see if it's null; a crash from that is improbable but perhaps not impossible.", "commit_aliases": ["798b4faef", "855195a7b", "99b0c5da3", "ae3d40b0c", "b7103bbe3"], "source_commits": ["798b4faef", "ae3d40b0c"], "source_entry_id": "10.14/changes/013", "db_id": "612576f9126271cf48f48af908bbf892", "patch_ids": ["519158acddd7aeec0bd375bdc7cefd95", "c41d49a9e5b2acca5fd14c0cfd9be8b6"], "statement_hash": "f5363d0de388e4c96ba349a6c3e9f66c545838f91ba87ecf2e26b4b91261f23d", "relations": [{"rule": 2, "type": "equivalent", "target": "29a90fa751798b44da9a99b047b7411f", "evidence": {"same_day": true, "patch_ids": ["519158acddd7aeec0bd375bdc7cefd95", "c41d49a9e5b2acca5fd14c0cfd9be8b6"], "statement_hash": "f5363d0de388e4c96ba349a6c3e9f66c545838f91ba87ecf2e26b4b91261f23d"}}, {"rule": 2, "type": "equivalent", "target": "a329d35cf3667c41a25795e6fb0aeb63", "evidence": {"same_day": true, "patch_ids": ["519158acddd7aeec0bd375bdc7cefd95", "c41d49a9e5b2acca5fd14c0cfd9be8b6"], "statement_hash": "f5363d0de388e4c96ba349a6c3e9f66c545838f91ba87ecf2e26b4b91261f23d"}}], "version": "10.14", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "a329d35cf3667c41a25795e6fb0aeb63", "kind": "equivalent", "version": "12.4", "label": "12.4", "title": "规避 pg_subscription.subslotname 和 pg_subscription_rel.srsublsn 上不正确的非空标记", "evidence": {"same_day": true, "patch_ids": ["519158acddd7aeec0bd375bdc7cefd95", "c41d49a9e5b2acca5fd14c0cfd9be8b6"], "statement_hash": "f5363d0de388e4c96ba349a6c3e9f66c545838f91ba87ecf2e26b4b91261f23d"}, "url": "/docs/compare/?release=12.4#12.4-e11e3481e958a61b", "source_url": "/docs/release/12.4/#id-1.11.6.24.5"}, {"db_id": "29a90fa751798b44da9a99b047b7411f", "kind": "equivalent", "version": "11.9", "label": "11.9", "title": "规避 pg_subscription.subslotname 和 pg_subscription_rel.srsublsn 上不正确的非空标记", "evidence": {"same_day": true, "patch_ids": ["519158acddd7aeec0bd375bdc7cefd95", "c41d49a9e5b2acca5fd14c0cfd9be8b6"], "statement_hash": "f5363d0de388e4c96ba349a6c3e9f66c545838f91ba87ecf2e26b4b91261f23d"}, "url": "/docs/compare/?release=11.9#11.9-b0d074e251bd5ccb", "source_url": "/docs/release/11.9/#id-1.11.6.18.5"}]}, {"id": "10.14-d6df8bcf969a57d0", "cves": [], "html": "<p>处理附加到 <code>FROM</code> 子句中未扁平化的子 <code>SELECT</code> 上的限制子句里的 <code>LATERAL</code> 引用（Tom Lane）</p>\n<p>这一疏漏可能导致查询执行时断言失败或崩溃。</p>", "text": "处理附加到 FROM 子句中未扁平化的子 SELECT 上的限制子句里的 LATERAL 引用（Tom Lane） 这一疏漏可能导致查询执行时断言失败或崩溃。", "title": "处理附加到 FROM 子句中未扁平化的子 SELECT 上的限制子句里的 LATERAL 引用", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/10.14/#id-1.11.6.14.5", "source_hash": "1dc1103f67c34fa219ed45884f54556815bb4d9395425fdab5526bd36ae37d94", "section_path": ["变更"], "commit_groups": [["0734dbc45", "3753df8f8", "6443cd2e2", "80d8f6d1d", "a742ecf9c", "d3b642ad9", "dc6bb0994"]], "identity_text": "Cope with LATERAL references in restriction clauses attached to an un-flattened sub-SELECT in the FROM clause (Tom Lane) This oversight could result in assertion failures or crashes at query execution.", "commit_aliases": ["0734dbc45", "3753df8f8", "6443cd2e2", "80d8f6d1d", "a742ecf9c", "d3b642ad9", "dc6bb0994"], "source_commits": ["6443cd2e2"], "source_entry_id": "10.14/changes/014", "db_id": "e606d5a48ac34be50b0f673b8d4782f3", "patch_ids": ["76aa4cd9f96f3951664a29a6e03efa0a"], "statement_hash": "6aaf7fb09bf7d0ed8f0129c28a10df00d91d1e13a018ac16e5d8f79dbe278abe", "relations": [{"rule": 2, "type": "equivalent", "target": "91d8f4ed8ce0a5718851159438cb8a31", "evidence": {"same_day": true, "patch_ids": ["76aa4cd9f96f3951664a29a6e03efa0a"], "statement_hash": "6aaf7fb09bf7d0ed8f0129c28a10df00d91d1e13a018ac16e5d8f79dbe278abe"}}, {"rule": 2, "type": "equivalent", "target": "d8c7357f304b21f9fc1ebf108bbf6a5a", "evidence": {"same_day": true, "patch_ids": ["76aa4cd9f96f3951664a29a6e03efa0a"], "statement_hash": "6aaf7fb09bf7d0ed8f0129c28a10df00d91d1e13a018ac16e5d8f79dbe278abe"}}, {"rule": 2, "type": "equivalent", "target": "fded70ef2a9174c6d7c72c000533182c", "evidence": {"same_day": true, "patch_ids": ["76aa4cd9f96f3951664a29a6e03efa0a"], "statement_hash": "6aaf7fb09bf7d0ed8f0129c28a10df00d91d1e13a018ac16e5d8f79dbe278abe"}}, {"rule": 2, "type": "equivalent", "target": "ff4bab21f50db780d6cd4d93f8659b2c", "evidence": {"same_day": true, "patch_ids": ["76aa4cd9f96f3951664a29a6e03efa0a"], "statement_hash": "6aaf7fb09bf7d0ed8f0129c28a10df00d91d1e13a018ac16e5d8f79dbe278abe"}}], "version": "10.14", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "d8c7357f304b21f9fc1ebf108bbf6a5a", "kind": "equivalent", "version": "12.4", "label": "12.4", "title": "处理附加到 FROM 子句中未扁平化的子 SELECT 上的限制子句里的 LATERAL 引用", "evidence": {"same_day": true, "patch_ids": ["76aa4cd9f96f3951664a29a6e03efa0a"], "statement_hash": "6aaf7fb09bf7d0ed8f0129c28a10df00d91d1e13a018ac16e5d8f79dbe278abe"}, "url": "/docs/compare/?release=12.4#12.4-1f16cdd10f8a5230", "source_url": "/docs/release/12.4/#id-1.11.6.24.5"}, {"db_id": "ff4bab21f50db780d6cd4d93f8659b2c", "kind": "equivalent", "version": "11.9", "label": "11.9", "title": "处理附加到 FROM 子句中未扁平化的子 SELECT 上的限制子句里的 LATERAL 引用", "evidence": {"same_day": true, "patch_ids": ["76aa4cd9f96f3951664a29a6e03efa0a"], "statement_hash": "6aaf7fb09bf7d0ed8f0129c28a10df00d91d1e13a018ac16e5d8f79dbe278abe"}, "url": "/docs/compare/?release=11.9#11.9-d6df8bcf969a57d0", "source_url": "/docs/release/11.9/#id-1.11.6.18.5"}, {"db_id": "91d8f4ed8ce0a5718851159438cb8a31", "kind": "equivalent", "version": "9.6.19", "label": "9.6.19", "title": "正确处理 FROM 子句中未展平子 SELECT 上附加的限定子句中的 LATERAL 引用", "evidence": {"same_day": true, "patch_ids": ["76aa4cd9f96f3951664a29a6e03efa0a"], "statement_hash": "6aaf7fb09bf7d0ed8f0129c28a10df00d91d1e13a018ac16e5d8f79dbe278abe"}, "url": "/docs/compare/?release=9.6.19#9.6.19-f1fe92045666a9c2", "source_url": "/docs/release/9.6.19/#id-1.11.6.10.5"}, {"db_id": "fded70ef2a9174c6d7c72c000533182c", "kind": "equivalent", "version": "9.5.23", "label": "9.5.23", "title": "正确处理 FROM 子句中未展平子 SELECT 上附加的限定子句中的 LATERAL 引用", "evidence": {"same_day": true, "patch_ids": ["76aa4cd9f96f3951664a29a6e03efa0a"], "statement_hash": "6aaf7fb09bf7d0ed8f0129c28a10df00d91d1e13a018ac16e5d8f79dbe278abe"}, "url": "/docs/compare/?release=9.5.23#9.5.23-f1fe92045666a9c2", "source_url": "/docs/release/9.5.23/#id-1.11.6.7.6"}]}, {"id": "10.14-c7ffcf70bb332364", "cves": [], "html": "<p>避免认为从未分析过的外部表具有零个元组（Tom Lane）</p>\n<p>这主要影响规划器对 <code>GROUP BY</code> 将产生的分组数量的估计。</p>", "text": "避免认为从未分析过的外部表具有零个元组（Tom Lane） 这主要影响规划器对 GROUP BY 将产生的分组数量的估计。", "title": "避免认为从未分析过的外部表具有零个元组", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/10.14/#id-1.11.6.14.5", "source_hash": "00a24459b51d2f60394ca719703fe441c7f2bf3de00ebf37648c744169a82252", "section_path": ["变更"], "commit_groups": [["153c14cdd", "5144a40f3", "69a3fe6e6", "9233624b1", "ca5e93f76", "d83d59e42", "ef799bdd0"]], "identity_text": "Avoid believing that a never-analyzed foreign table has zero tuples (Tom Lane) This primarily affected the planner's estimate of the number of groups that would be obtained by GROUP BY.", "commit_aliases": ["153c14cdd", "5144a40f3", "69a3fe6e6", "9233624b1", "ca5e93f76", "d83d59e42", "ef799bdd0"], "source_commits": ["5144a40f3"], "source_entry_id": "10.14/changes/015", "db_id": "132ce6a798fd1a76c44f79f80e7cc51f", "patch_ids": ["fd340f8bf089002ade33d19a7c76826e"], "statement_hash": "a56d32ce8f1efc3401e21bbba4ad88925758252d0b4fe2dbcde6ceaa0b1c31fc", "relations": [{"rule": 2, "type": "equivalent", "target": "025fc1c7ae7c871b4afc7e1f16e37657", "evidence": {"same_day": true, "patch_ids": ["fd340f8bf089002ade33d19a7c76826e"], "statement_hash": "a56d32ce8f1efc3401e21bbba4ad88925758252d0b4fe2dbcde6ceaa0b1c31fc"}}, {"rule": 2, "type": "equivalent", "target": "509f6265362c993246154f7e6d416f7b", "evidence": {"same_day": true, "patch_ids": ["fd340f8bf089002ade33d19a7c76826e"], "statement_hash": "a56d32ce8f1efc3401e21bbba4ad88925758252d0b4fe2dbcde6ceaa0b1c31fc"}}, {"rule": 2, "type": "equivalent", "target": "5629ff9fbbbff59243125adbc75788a8", "evidence": {"same_day": true, "patch_ids": ["fd340f8bf089002ade33d19a7c76826e"], "statement_hash": "a56d32ce8f1efc3401e21bbba4ad88925758252d0b4fe2dbcde6ceaa0b1c31fc"}}, {"rule": 2, "type": "equivalent", "target": "7fc348056e7166c8dd44664a79827fbe", "evidence": {"same_day": true, "patch_ids": ["fd340f8bf089002ade33d19a7c76826e"], "statement_hash": "a56d32ce8f1efc3401e21bbba4ad88925758252d0b4fe2dbcde6ceaa0b1c31fc"}}], "version": "10.14", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "7fc348056e7166c8dd44664a79827fbe", "kind": "equivalent", "version": "12.4", "label": "12.4", "title": "避免认为从未分析过的外部表具有零个元组", "evidence": {"same_day": true, "patch_ids": ["fd340f8bf089002ade33d19a7c76826e"], "statement_hash": "a56d32ce8f1efc3401e21bbba4ad88925758252d0b4fe2dbcde6ceaa0b1c31fc"}, "url": "/docs/compare/?release=12.4#12.4-e1a1948006c90799", "source_url": "/docs/release/12.4/#id-1.11.6.24.5"}, {"db_id": "5629ff9fbbbff59243125adbc75788a8", "kind": "equivalent", "version": "11.9", "label": "11.9", "title": "避免认为从未分析过的外部表具有零个元组", "evidence": {"same_day": true, "patch_ids": ["fd340f8bf089002ade33d19a7c76826e"], "statement_hash": "a56d32ce8f1efc3401e21bbba4ad88925758252d0b4fe2dbcde6ceaa0b1c31fc"}, "url": "/docs/compare/?release=11.9#11.9-c7ffcf70bb332364", "source_url": "/docs/release/11.9/#id-1.11.6.18.5"}, {"db_id": "509f6265362c993246154f7e6d416f7b", "kind": "equivalent", "version": "9.6.19", "label": "9.6.19", "title": "避免认为从未分析过的外部表有零个元组", "evidence": {"same_day": true, "patch_ids": ["fd340f8bf089002ade33d19a7c76826e"], "statement_hash": "a56d32ce8f1efc3401e21bbba4ad88925758252d0b4fe2dbcde6ceaa0b1c31fc"}, "url": "/docs/compare/?release=9.6.19#9.6.19-ae76464e5d135a1e", "source_url": "/docs/release/9.6.19/#id-1.11.6.10.5"}, {"db_id": "025fc1c7ae7c871b4afc7e1f16e37657", "kind": "equivalent", "version": "9.5.23", "label": "9.5.23", "title": "避免认为从未分析过的外部表有零个元组", "evidence": {"same_day": true, "patch_ids": ["fd340f8bf089002ade33d19a7c76826e"], "statement_hash": "a56d32ce8f1efc3401e21bbba4ad88925758252d0b4fe2dbcde6ceaa0b1c31fc"}, "url": "/docs/compare/?release=9.5.23#9.5.23-ae76464e5d135a1e", "source_url": "/docs/release/9.5.23/#id-1.11.6.7.6"}]}, {"id": "10.14-886d2e850114f84a", "cves": [], "html": "<p>移除 BRIN 索引取消汇总过程中关于 <span>“<span>leftover placeholder tuple</span>”</span> 的错误警告（Álvaro Herrera）</p>\n<p>取消清理后，这种情况可以正常出现，因此对此发出警告会产生过多噪声。</p>", "text": "移除 BRIN 索引取消汇总过程中关于 “leftover placeholder tuple” 的错误警告（Álvaro Herrera） 取消清理后，这种情况可以正常出现，因此对此发出警告会产生过多噪声。", "title": "移除 BRIN 索引取消汇总过程中关于 “leftover placeholder tuple” 的错误警告", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/10.14/#id-1.11.6.14.5", "source_hash": "f56c3407b18def0457718ae93152b69525e445eec14a95ea226f88ee23129740", "section_path": ["变更"], "commit_groups": [["40316dfed", "907283576", "986529ce4", "c3a79e719", "ca5001a36"]], "identity_text": "Remove bogus warning about leftover placeholder tuple in BRIN index de-summarization (Álvaro Herrera) The case can occur legitimately after a cancelled vacuum, so warning about it is overly noisy.", "commit_aliases": ["40316dfed", "907283576", "986529ce4", "c3a79e719", "ca5001a36"], "source_commits": ["40316dfed"], "source_entry_id": "10.14/changes/016", "db_id": "c651b17e825c7cb9a5e1317a2fd6e04d", "patch_ids": ["a0dafaed724bf151f020b3d7c021e2c6"], "statement_hash": "d71be29bd69f39a0c2c64ac9684c514e05291b4a74b9a2dad8bc9b335b2d6dc6", "relations": [{"rule": 2, "type": "equivalent", "target": "3cc473b691691103ea5d2da9f49e99cf", "evidence": {"same_day": true, "patch_ids": ["a0dafaed724bf151f020b3d7c021e2c6"], "statement_hash": "d71be29bd69f39a0c2c64ac9684c514e05291b4a74b9a2dad8bc9b335b2d6dc6"}}, {"rule": 2, "type": "equivalent", "target": "cf1c5f5d29bd79ec4eed719f8d976e4c", "evidence": {"same_day": true, "patch_ids": ["a0dafaed724bf151f020b3d7c021e2c6"], "statement_hash": "d71be29bd69f39a0c2c64ac9684c514e05291b4a74b9a2dad8bc9b335b2d6dc6"}}], "version": "10.14", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "3cc473b691691103ea5d2da9f49e99cf", "kind": "equivalent", "version": "12.4", "label": "12.4", "title": "移除 BRIN 索引取消汇总过程中关于 “leftover placeholder tuple” 的错误警告", "evidence": {"same_day": true, "patch_ids": ["a0dafaed724bf151f020b3d7c021e2c6"], "statement_hash": "d71be29bd69f39a0c2c64ac9684c514e05291b4a74b9a2dad8bc9b335b2d6dc6"}, "url": "/docs/compare/?release=12.4#12.4-539b74b6c14d415c", "source_url": "/docs/release/12.4/#id-1.11.6.24.5"}, {"db_id": "cf1c5f5d29bd79ec4eed719f8d976e4c", "kind": "equivalent", "version": "11.9", "label": "11.9", "title": "移除 BRIN 索引取消汇总过程中关于 “leftover placeholder tuple” 的错误警告", "evidence": {"same_day": true, "patch_ids": ["a0dafaed724bf151f020b3d7c021e2c6"], "statement_hash": "d71be29bd69f39a0c2c64ac9684c514e05291b4a74b9a2dad8bc9b335b2d6dc6"}, "url": "/docs/compare/?release=11.9#11.9-886d2e850114f84a", "source_url": "/docs/release/11.9/#id-1.11.6.18.5"}]}, {"id": "10.14-44ca8519b07ffb6e", "cves": [], "html": "<p>改进服务器 <code>buffile</code> 模块中的错误处理（Thomas Munro）</p>\n<p>修复某些无法区分 I/O 错误与到达 EOF，或完全未报告 I/O 错误的情况。另外，在适当位置增加块号、字节数等详细信息。</p>", "text": "改进服务器 buffile 模块中的错误处理（Thomas Munro） 修复某些无法区分 I/O 错误与到达 EOF，或完全未报告 I/O 错误的情况。另外，在适当位置增加块号、字节数等详细信息。", "title": "改进服务器 buffile 模块中的错误处理", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/10.14/#id-1.11.6.14.5", "source_hash": "88a943dbae0b9006fcaf90297bcf7d6c640adad9dbd4bf16985955fe3d91225b", "section_path": ["变更"], "commit_groups": [["028f0c3a8", "3725c8ce4", "42dee8b8e", "47adb2488", "6b366190d", "8bf4e69a7", "fac4145bf"], ["02b71f06b", "28ee12669", "3e0b08c40", "7897e3bb9", "89020a92f", "95647a1c7", "9c14d6024"]], "identity_text": "Improve error handling in the server's buffile module (Thomas Munro) Fix some cases where I/O errors were indistinguishable from reaching EOF, or were not reported at all. Also add details such as block numbers and byte counts where appropriate.", "commit_aliases": ["028f0c3a8", "02b71f06b", "28ee12669", "3725c8ce4", "3e0b08c40", "42dee8b8e", "47adb2488", "6b366190d", "7897e3bb9", "89020a92f", "8bf4e69a7", "95647a1c7", "9c14d6024", "fac4145bf"], "source_commits": ["95647a1c7", "fac4145bf"], "source_entry_id": "10.14/changes/017", "db_id": "cfae48ffbb34b721ed501b88a22ec505", "patch_ids": ["3cfa5dd68e4213eeb0063dccd0f61037", "3efe2002531599381d76d0da2ce97ce7"], "statement_hash": "9b959c59b636685cb7c0d1617182325c48d28e9c774d749107837a830c2a6faa", "relations": [{"rule": 2, "type": "equivalent", "target": "14be8fb2c3f982fe6b1b6dbcbb0ff804", "evidence": {"same_day": true, "patch_ids": ["3cfa5dd68e4213eeb0063dccd0f61037", "3efe2002531599381d76d0da2ce97ce7"], "statement_hash": "9b959c59b636685cb7c0d1617182325c48d28e9c774d749107837a830c2a6faa"}}, {"rule": 2, "type": "equivalent", "target": "3c69e549c4dfbe5e9ac8979f5d13b214", "evidence": {"same_day": true, "patch_ids": ["3cfa5dd68e4213eeb0063dccd0f61037", "3efe2002531599381d76d0da2ce97ce7"], "statement_hash": "9b959c59b636685cb7c0d1617182325c48d28e9c774d749107837a830c2a6faa"}}, {"rule": 2, "type": "equivalent", "target": "42f60f7617299a4bf6748fafe11efad2", "evidence": {"same_day": true, "patch_ids": ["3cfa5dd68e4213eeb0063dccd0f61037", "3efe2002531599381d76d0da2ce97ce7"], "statement_hash": "9b959c59b636685cb7c0d1617182325c48d28e9c774d749107837a830c2a6faa"}}, {"rule": 2, "type": "equivalent", "target": "dba1ef7cc327183b7c89863c61a64da1", "evidence": {"same_day": true, "patch_ids": ["3cfa5dd68e4213eeb0063dccd0f61037", "3efe2002531599381d76d0da2ce97ce7"], "statement_hash": "9b959c59b636685cb7c0d1617182325c48d28e9c774d749107837a830c2a6faa"}}], "version": "10.14", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "dba1ef7cc327183b7c89863c61a64da1", "kind": "equivalent", "version": "12.4", "label": "12.4", "title": "改进服务器 buffile 模块中的错误处理", "evidence": {"same_day": true, "patch_ids": ["3cfa5dd68e4213eeb0063dccd0f61037", "3efe2002531599381d76d0da2ce97ce7"], "statement_hash": "9b959c59b636685cb7c0d1617182325c48d28e9c774d749107837a830c2a6faa"}, "url": "/docs/compare/?release=12.4#12.4-b29baed8c244c3d3", "source_url": "/docs/release/12.4/#id-1.11.6.24.5"}, {"db_id": "3c69e549c4dfbe5e9ac8979f5d13b214", "kind": "equivalent", "version": "11.9", "label": "11.9", "title": "改进服务器 buffile 模块中的错误处理", "evidence": {"same_day": true, "patch_ids": ["3cfa5dd68e4213eeb0063dccd0f61037", "3efe2002531599381d76d0da2ce97ce7"], "statement_hash": "9b959c59b636685cb7c0d1617182325c48d28e9c774d749107837a830c2a6faa"}, "url": "/docs/compare/?release=11.9#11.9-44ca8519b07ffb6e", "source_url": "/docs/release/11.9/#id-1.11.6.18.5"}, {"db_id": "14be8fb2c3f982fe6b1b6dbcbb0ff804", "kind": "equivalent", "version": "9.6.19", "label": "9.6.19", "title": "改进服务器 buffile 模块中的错误处理", "evidence": {"same_day": true, "patch_ids": ["3cfa5dd68e4213eeb0063dccd0f61037", "3efe2002531599381d76d0da2ce97ce7"], "statement_hash": "9b959c59b636685cb7c0d1617182325c48d28e9c774d749107837a830c2a6faa"}, "url": "/docs/compare/?release=9.6.19#9.6.19-44ca8519b07ffb6e", "source_url": "/docs/release/9.6.19/#id-1.11.6.10.5"}, {"db_id": "42f60f7617299a4bf6748fafe11efad2", "kind": "equivalent", "version": "9.5.23", "label": "9.5.23", "title": "改进服务器 buffile 模块中的错误处理", "evidence": {"same_day": true, "patch_ids": ["3cfa5dd68e4213eeb0063dccd0f61037", "3efe2002531599381d76d0da2ce97ce7"], "statement_hash": "9b959c59b636685cb7c0d1617182325c48d28e9c774d749107837a830c2a6faa"}, "url": "/docs/compare/?release=9.5.23#9.5.23-44ca8519b07ffb6e", "source_url": "/docs/release/9.5.23/#id-1.11.6.7.6"}]}, {"id": "10.14-9785d8b8cef9c4a9", "cves": [], "html": "<p>修复 <code>SERIALIZABLE</code> 隔离模式中的冲突检查异常（Peter Geoghegan）</p>\n<p>如果一个并发插入的元组被另一个并发事务更新，且两个元组版本对当前事务的快照都不可见，序列化冲突检查就可能错误判断该元组是否与当前事务的结果有关。这可能允许本应因序列化错误而失败的可序列化事务提交。</p>", "text": "修复 SERIALIZABLE 隔离模式中的冲突检查异常（Peter Geoghegan） 如果一个并发插入的元组被另一个并发事务更新，且两个元组版本对当前事务的快照都不可见，序列化冲突检查就可能错误判断该元组是否与当前事务的结果有关。这可能允许本应因序列化错误而失败的可序列化事务提交。", "title": "修复 SERIALIZABLE 隔离模式中的冲突检查异常", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/10.14/#id-1.11.6.14.5", "source_hash": "04199ec9e2a853b43ae8e368fac42601291d92363b6e94c60f7ba1ee8d60f4fc", "section_path": ["变更"], "commit_groups": [["19a6e1bc3", "5940ffb22", "6df7105e5", "c05f6b354", "dd616f2ec", "e620a38c2", "e81dc2b7e"]], "identity_text": "Fix conflict-checking anomalies in SERIALIZABLE isolation mode (Peter Geoghegan) If a concurrently-inserted tuple was updated by a different concurrent transaction, and neither tuple version was visible to the current transaction's snapshot, serialization conflict checking could draw the wrong conclusions about whether the tuple was relevant to the results of the current transaction. This could allow a serializable transaction to commit when it should have failed with a serialization error.", "commit_aliases": ["19a6e1bc3", "5940ffb22", "6df7105e5", "c05f6b354", "dd616f2ec", "e620a38c2", "e81dc2b7e"], "source_commits": ["19a6e1bc3"], "source_entry_id": "10.14/changes/018", "db_id": "709ab5266dc4930684d28fe6b9d24c51", "patch_ids": ["63b3781076b1620a95f6998eaf9d6ea8"], "statement_hash": "13ac0bd21db252a6b2ccfd02526cde6ab024a70861a86aabb2f64693fc634137", "relations": [{"rule": 2, "type": "equivalent", "target": "138c43e0ae188ef556140730c361821d", "evidence": {"same_day": true, "patch_ids": ["63b3781076b1620a95f6998eaf9d6ea8"], "statement_hash": "13ac0bd21db252a6b2ccfd02526cde6ab024a70861a86aabb2f64693fc634137"}}, {"rule": 2, "type": "equivalent", "target": "282bd64770b1b7dd5335d8829c504008", "evidence": {"same_day": true, "patch_ids": ["63b3781076b1620a95f6998eaf9d6ea8"], "statement_hash": "13ac0bd21db252a6b2ccfd02526cde6ab024a70861a86aabb2f64693fc634137"}}, {"rule": 2, "type": "equivalent", "target": "6c34af70afc8367885d279059a8c7678", "evidence": {"same_day": true, "patch_ids": ["63b3781076b1620a95f6998eaf9d6ea8"], "statement_hash": "13ac0bd21db252a6b2ccfd02526cde6ab024a70861a86aabb2f64693fc634137"}}, {"rule": 2, "type": "equivalent", "target": "98761d6491ab87fdd228d1d2bbcb1ff2", "evidence": {"same_day": true, "patch_ids": ["63b3781076b1620a95f6998eaf9d6ea8"], "statement_hash": "13ac0bd21db252a6b2ccfd02526cde6ab024a70861a86aabb2f64693fc634137"}}], "version": "10.14", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "138c43e0ae188ef556140730c361821d", "kind": "equivalent", "version": "12.4", "label": "12.4", "title": "修复 SERIALIZABLE 隔离模式中的冲突检查异常", "evidence": {"same_day": true, "patch_ids": ["63b3781076b1620a95f6998eaf9d6ea8"], "statement_hash": "13ac0bd21db252a6b2ccfd02526cde6ab024a70861a86aabb2f64693fc634137"}, "url": "/docs/compare/?release=12.4#12.4-45fab7df1be57512", "source_url": "/docs/release/12.4/#id-1.11.6.24.5"}, {"db_id": "98761d6491ab87fdd228d1d2bbcb1ff2", "kind": "equivalent", "version": "11.9", "label": "11.9", "title": "修复 SERIALIZABLE 隔离模式中的冲突检查异常", "evidence": {"same_day": true, "patch_ids": ["63b3781076b1620a95f6998eaf9d6ea8"], "statement_hash": "13ac0bd21db252a6b2ccfd02526cde6ab024a70861a86aabb2f64693fc634137"}, "url": "/docs/compare/?release=11.9#11.9-9785d8b8cef9c4a9", "source_url": "/docs/release/11.9/#id-1.11.6.18.5"}, {"db_id": "6c34af70afc8367885d279059a8c7678", "kind": "equivalent", "version": "9.6.19", "label": "9.6.19", "title": "修复 SERIALIZABLE 隔离模式下的冲突检查异常", "evidence": {"same_day": true, "patch_ids": ["63b3781076b1620a95f6998eaf9d6ea8"], "statement_hash": "13ac0bd21db252a6b2ccfd02526cde6ab024a70861a86aabb2f64693fc634137"}, "url": "/docs/compare/?release=9.6.19#9.6.19-2815ad76a363781c", "source_url": "/docs/release/9.6.19/#id-1.11.6.10.5"}, {"db_id": "282bd64770b1b7dd5335d8829c504008", "kind": "equivalent", "version": "9.5.23", "label": "9.5.23", "title": "修复 SERIALIZABLE 隔离模式下的冲突检查异常", "evidence": {"same_day": true, "patch_ids": ["63b3781076b1620a95f6998eaf9d6ea8"], "statement_hash": "13ac0bd21db252a6b2ccfd02526cde6ab024a70861a86aabb2f64693fc634137"}, "url": "/docs/compare/?release=9.5.23#9.5.23-2815ad76a363781c", "source_url": "/docs/release/9.5.23/#id-1.11.6.7.6"}]}, {"id": "10.14-db254ba445f0275d", "cves": [], "html": "<p>避免将已失效的 B-树索引条目反复标记为失效（Masahiko Sawada）</p>\n<p>虽然功能上无害，但在启用了校验和或 <code>wal_log_hints</code> 时，这会产生无用的 WAL 流量。</p>", "text": "避免将已失效的 B-树索引条目反复标记为失效（Masahiko Sawada） 虽然功能上无害，但在启用了校验和或 wal_log_hints 时，这会产生无用的 WAL 流量。", "title": "避免将已失效的 B-树索引条目反复标记为失效", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/10.14/#id-1.11.6.14.5", "source_hash": "ab3395166b739b543326e43746c3314375f2b549c3113487aa16d5c778bc6d8e", "section_path": ["变更"], "commit_groups": [["09f2752b0", "0a319699d", "1d84751c6", "242dfcbaf", "37b5c5fde", "4649eb919"]], "identity_text": "Avoid repeated marking of dead btree index entries as dead (Masahiko Sawada) While functionally harmless, this led to useless WAL traffic when checksums are enabled or wal_log_hints is on.", "commit_aliases": ["09f2752b0", "0a319699d", "1d84751c6", "242dfcbaf", "37b5c5fde", "4649eb919"], "source_commits": ["09f2752b0"], "source_entry_id": "10.14/changes/019", "db_id": "a25347ec5c2c32d229fea4a88611e4e0", "patch_ids": ["64dcf709d1b1dce4fc1941bc3f20f2ab"], "statement_hash": "cd2ec7e3869ff3059a5f2db520104c85be6b1da7513840160c253325e92704d4", "relations": [{"rule": 2, "type": "equivalent", "target": "033d22474f002ecfe8030d3e5033a189", "evidence": {"same_day": true, "patch_ids": ["64dcf709d1b1dce4fc1941bc3f20f2ab"], "statement_hash": "cd2ec7e3869ff3059a5f2db520104c85be6b1da7513840160c253325e92704d4"}}, {"rule": 2, "type": "equivalent", "target": "2906e5fb50454b32c0b892457ec23c14", "evidence": {"same_day": true, "patch_ids": ["64dcf709d1b1dce4fc1941bc3f20f2ab"], "statement_hash": "cd2ec7e3869ff3059a5f2db520104c85be6b1da7513840160c253325e92704d4"}}, {"rule": 2, "type": "equivalent", "target": "5e0a40f96ba835b9ecff811dd8702e1a", "evidence": {"same_day": true, "patch_ids": ["64dcf709d1b1dce4fc1941bc3f20f2ab"], "statement_hash": "cd2ec7e3869ff3059a5f2db520104c85be6b1da7513840160c253325e92704d4"}}, {"rule": 2, "type": "equivalent", "target": "7bd481af76e7894efd9e627af3b8595a", "evidence": {"same_day": true, "patch_ids": ["64dcf709d1b1dce4fc1941bc3f20f2ab"], "statement_hash": "cd2ec7e3869ff3059a5f2db520104c85be6b1da7513840160c253325e92704d4"}}], "version": "10.14", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "5e0a40f96ba835b9ecff811dd8702e1a", "kind": "equivalent", "version": "12.4", "label": "12.4", "title": "避免将已失效的 B-树索引条目反复标记为失效", "evidence": {"same_day": true, "patch_ids": ["64dcf709d1b1dce4fc1941bc3f20f2ab"], "statement_hash": "cd2ec7e3869ff3059a5f2db520104c85be6b1da7513840160c253325e92704d4"}, "url": "/docs/compare/?release=12.4#12.4-7a0efc383eed6820", "source_url": "/docs/release/12.4/#id-1.11.6.24.5"}, {"db_id": "033d22474f002ecfe8030d3e5033a189", "kind": "equivalent", "version": "11.9", "label": "11.9", "title": "避免将已失效的 B-树索引条目反复标记为失效", "evidence": {"same_day": true, "patch_ids": ["64dcf709d1b1dce4fc1941bc3f20f2ab"], "statement_hash": "cd2ec7e3869ff3059a5f2db520104c85be6b1da7513840160c253325e92704d4"}, "url": "/docs/compare/?release=11.9#11.9-db254ba445f0275d", "source_url": "/docs/release/11.9/#id-1.11.6.18.5"}, {"db_id": "7bd481af76e7894efd9e627af3b8595a", "kind": "equivalent", "version": "9.6.19", "label": "9.6.19", "title": "避免重复把死 btree 索引条目标记为死", "evidence": {"same_day": true, "patch_ids": ["64dcf709d1b1dce4fc1941bc3f20f2ab"], "statement_hash": "cd2ec7e3869ff3059a5f2db520104c85be6b1da7513840160c253325e92704d4"}, "url": "/docs/compare/?release=9.6.19#9.6.19-e2d239f429422919", "source_url": "/docs/release/9.6.19/#id-1.11.6.10.5"}, {"db_id": "2906e5fb50454b32c0b892457ec23c14", "kind": "equivalent", "version": "9.5.23", "label": "9.5.23", "title": "避免重复把死 btree 索引条目标记为死", "evidence": {"same_day": true, "patch_ids": ["64dcf709d1b1dce4fc1941bc3f20f2ab"], "statement_hash": "cd2ec7e3869ff3059a5f2db520104c85be6b1da7513840160c253325e92704d4"}, "url": "/docs/compare/?release=9.5.23#9.5.23-e2d239f429422919", "source_url": "/docs/release/9.5.23/#id-1.11.6.7.6"}]}, {"id": "10.14-c3b6f7cdb9a5a569", "cves": [], "html": "<p>修复某些代码路径修改 <code>pg_control</code> 前未获取正确锁的问题（Nathan Bossart，Fujii Masao）</p>\n<p>这一疏漏可能使 <code>pg_control</code> 以不一致的校验和写出，导致之后出现问题，包括在下次 <code>pg_control</code> 更新之前崩溃时无法重启数据库。</p>", "text": "修复某些代码路径修改 pg_control 前未获取正确锁的问题（Nathan Bossart，Fujii Masao） 这一疏漏可能使 pg_control 以不一致的校验和写出，导致之后出现问题，包括在下次 pg_control 更新之前崩溃时无法重启数据库。", "title": "修复某些代码路径修改 pg_control 前未获取正确锁的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/10.14/#id-1.11.6.14.5", "source_hash": "696f813620c099c3552b03daac0e6b5269e53a9f6ab482efbdb6fa7b8b92f9a6", "section_path": ["变更"], "commit_groups": [["09dc17486", "48eb6a3c8", "57cb80630", "644cac32a", "72766ad63", "acefa2cca", "fd11b842e"]], "identity_text": "Fix failure of some code paths to acquire the correct lock before modifying pg_control (Nathan Bossart, Fujii Masao) This oversight could allow pg_control to be written out with an inconsistent checksum, possibly causing trouble later, including inability to restart the database if it crashed before the next pg_control update.", "commit_aliases": ["09dc17486", "48eb6a3c8", "57cb80630", "644cac32a", "72766ad63", "acefa2cca", "fd11b842e"], "source_commits": ["fd11b842e"], "source_entry_id": "10.14/changes/020", "db_id": "7243515f84270761166407e65daa9451", "patch_ids": ["d7a107aa9b62c095395a4ad42a44eebc"], "statement_hash": "939d569f3741be6f7269da9408c893507c52e3d0581d2670eecf58bf95c87a02", "relations": [{"rule": 2, "type": "equivalent", "target": "433e4a2cc9e4f98815c5c9d4a2bde523", "evidence": {"same_day": true, "patch_ids": ["d7a107aa9b62c095395a4ad42a44eebc"], "statement_hash": "939d569f3741be6f7269da9408c893507c52e3d0581d2670eecf58bf95c87a02"}}, {"rule": 2, "type": "equivalent", "target": "9d62bcac7998b528e307d472fe674a0e", "evidence": {"same_day": true, "patch_ids": ["d7a107aa9b62c095395a4ad42a44eebc"], "statement_hash": "939d569f3741be6f7269da9408c893507c52e3d0581d2670eecf58bf95c87a02"}}, {"rule": 2, "type": "equivalent", "target": "bd811e0b3435a1c993681d54b70f3910", "evidence": {"same_day": true, "patch_ids": ["d7a107aa9b62c095395a4ad42a44eebc"], "statement_hash": "939d569f3741be6f7269da9408c893507c52e3d0581d2670eecf58bf95c87a02"}}, {"rule": 2, "type": "equivalent", "target": "e24da9b240d6a97b8a81f152cb9fb97e", "evidence": {"same_day": true, "patch_ids": ["d7a107aa9b62c095395a4ad42a44eebc"], "statement_hash": "939d569f3741be6f7269da9408c893507c52e3d0581d2670eecf58bf95c87a02"}}], "version": "10.14", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "e24da9b240d6a97b8a81f152cb9fb97e", "kind": "equivalent", "version": "12.4", "label": "12.4", "title": "修复某些代码路径修改 pg_control 前未获取正确锁的问题", "evidence": {"same_day": true, "patch_ids": ["d7a107aa9b62c095395a4ad42a44eebc"], "statement_hash": "939d569f3741be6f7269da9408c893507c52e3d0581d2670eecf58bf95c87a02"}, "url": "/docs/compare/?release=12.4#12.4-39f524ab36db0b02", "source_url": "/docs/release/12.4/#id-1.11.6.24.5"}, {"db_id": "433e4a2cc9e4f98815c5c9d4a2bde523", "kind": "equivalent", "version": "11.9", "label": "11.9", "title": "修复某些代码路径修改 pg_control 前未获取正确锁的问题", "evidence": {"same_day": true, "patch_ids": ["d7a107aa9b62c095395a4ad42a44eebc"], "statement_hash": "939d569f3741be6f7269da9408c893507c52e3d0581d2670eecf58bf95c87a02"}, "url": "/docs/compare/?release=11.9#11.9-c3b6f7cdb9a5a569", "source_url": "/docs/release/11.9/#id-1.11.6.18.5"}, {"db_id": "bd811e0b3435a1c993681d54b70f3910", "kind": "equivalent", "version": "9.6.19", "label": "9.6.19", "title": "修复某些代码路径在修改 pg_control 之前未获取正确锁的问题", "evidence": {"same_day": true, "patch_ids": ["d7a107aa9b62c095395a4ad42a44eebc"], "statement_hash": "939d569f3741be6f7269da9408c893507c52e3d0581d2670eecf58bf95c87a02"}, "url": "/docs/compare/?release=9.6.19#9.6.19-5d123fa449660c85", "source_url": "/docs/release/9.6.19/#id-1.11.6.10.5"}, {"db_id": "9d62bcac7998b528e307d472fe674a0e", "kind": "equivalent", "version": "9.5.23", "label": "9.5.23", "title": "修复某些代码路径在修改 pg_control 之前未获取正确锁的问题", "evidence": {"same_day": true, "patch_ids": ["d7a107aa9b62c095395a4ad42a44eebc"], "statement_hash": "939d569f3741be6f7269da9408c893507c52e3d0581d2670eecf58bf95c87a02"}, "url": "/docs/compare/?release=9.5.23#9.5.23-5d123fa449660c85", "source_url": "/docs/release/9.5.23/#id-1.11.6.7.6"}]}, {"id": "10.14-8880427fca0301c2", "cves": [], "html": "<p>修复 <code>currtid()</code> 和 <code>currtid2()</code> 中的错误（Michael Paquier）</p>\n<p>这些函数没有文档记录，且仅由很早版本的 ODBC 驱动使用。它们包含编码错误，可能导致崩溃，或在应用于没有存储的关系时产生 <span>“<span>could not open file</span>”</span> 等令人困惑的错误消息。</p>", "text": "修复 currtid() 和 currtid2() 中的错误（Michael Paquier） 这些函数没有文档记录，且仅由很早版本的 ODBC 驱动使用。它们包含编码错误，可能导致崩溃，或在应用于没有存储的关系时产生 “could not open file” 等令人困惑的错误消息。", "title": "修复 currtid() 和 currtid2() 中的错误", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/10.14/#id-1.11.6.14.5", "source_hash": "d190ec2582ddf2e149472c71d5f1f61d48772b832eb4e83175601e1a662ae904", "section_path": ["变更"], "commit_groups": [["894041eb2", "8bc74490d", "a36f21620", "a8c6eb5b4", "ce1c5b9ae", "e2fa9732f"], ["95e389b3c", "e786be5fc"]], "identity_text": "Fix errors in currtid() and currtid2() (Michael Paquier) These functions (which are undocumented and used only by ancient versions of the ODBC driver) contained coding errors that could result in crashes, or in confusing error messages such as could not open file when applied to a relation having no storage.", "commit_aliases": ["894041eb2", "8bc74490d", "95e389b3c", "a36f21620", "a8c6eb5b4", "ce1c5b9ae", "e2fa9732f", "e786be5fc"], "source_commits": ["a36f21620", "e786be5fc"], "source_entry_id": "10.14/changes/021", "db_id": "552c322559e6002617a1451a657e45d3", "patch_ids": ["27b2dcabf26eaf1c7674e7a13a96398d", "a7dea211061f215b8cdf044872714d4f"], "statement_hash": "7316ade9ee367fcf2766788a37169597556db8ce5091e1b5b0ac0124f9dc2c1e", "relations": [{"rule": 2, "type": "equivalent", "target": "4b9438976fc11a64def60e2e14c652c8", "evidence": {"same_day": true, "patch_ids": ["27b2dcabf26eaf1c7674e7a13a96398d", "a7dea211061f215b8cdf044872714d4f"], "statement_hash": "7316ade9ee367fcf2766788a37169597556db8ce5091e1b5b0ac0124f9dc2c1e"}}, {"rule": 2, "type": "equivalent", "target": "4d15a7ac89a61a2fffe20006bd28ae46", "evidence": {"same_day": true, "patch_ids": ["27b2dcabf26eaf1c7674e7a13a96398d", "a7dea211061f215b8cdf044872714d4f"], "statement_hash": "7316ade9ee367fcf2766788a37169597556db8ce5091e1b5b0ac0124f9dc2c1e"}}, {"rule": 2, "type": "equivalent", "target": "70795be678e21023800cb9753e241fd3", "evidence": {"same_day": true, "patch_ids": ["27b2dcabf26eaf1c7674e7a13a96398d", "a7dea211061f215b8cdf044872714d4f"], "statement_hash": "7316ade9ee367fcf2766788a37169597556db8ce5091e1b5b0ac0124f9dc2c1e"}}, {"rule": 2, "type": "equivalent", "target": "aaa48914a0c8e3c550f7d7992dd674eb", "evidence": {"same_day": true, "patch_ids": ["27b2dcabf26eaf1c7674e7a13a96398d", "a7dea211061f215b8cdf044872714d4f"], "statement_hash": "7316ade9ee367fcf2766788a37169597556db8ce5091e1b5b0ac0124f9dc2c1e"}}], "version": "10.14", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "70795be678e21023800cb9753e241fd3", "kind": "equivalent", "version": "12.4", "label": "12.4", "title": "修复 currtid() 和 currtid2() 中的错误", "evidence": {"same_day": true, "patch_ids": ["27b2dcabf26eaf1c7674e7a13a96398d", "a7dea211061f215b8cdf044872714d4f"], "statement_hash": "7316ade9ee367fcf2766788a37169597556db8ce5091e1b5b0ac0124f9dc2c1e"}, "url": "/docs/compare/?release=12.4#12.4-9851c4fef48f4afb", "source_url": "/docs/release/12.4/#id-1.11.6.24.5"}, {"db_id": "aaa48914a0c8e3c550f7d7992dd674eb", "kind": "equivalent", "version": "11.9", "label": "11.9", "title": "修复 currtid() 和 currtid2() 中的错误", "evidence": {"same_day": true, "patch_ids": ["27b2dcabf26eaf1c7674e7a13a96398d", "a7dea211061f215b8cdf044872714d4f"], "statement_hash": "7316ade9ee367fcf2766788a37169597556db8ce5091e1b5b0ac0124f9dc2c1e"}, "url": "/docs/compare/?release=11.9#11.9-8880427fca0301c2", "source_url": "/docs/release/11.9/#id-1.11.6.18.5"}, {"db_id": "4b9438976fc11a64def60e2e14c652c8", "kind": "equivalent", "version": "9.6.19", "label": "9.6.19", "title": "修复 currtid() 和 currtid2() 中的错误", "evidence": {"same_day": true, "patch_ids": ["27b2dcabf26eaf1c7674e7a13a96398d", "a7dea211061f215b8cdf044872714d4f"], "statement_hash": "7316ade9ee367fcf2766788a37169597556db8ce5091e1b5b0ac0124f9dc2c1e"}, "url": "/docs/compare/?release=9.6.19#9.6.19-8880427fca0301c2", "source_url": "/docs/release/9.6.19/#id-1.11.6.10.5"}, {"db_id": "4d15a7ac89a61a2fffe20006bd28ae46", "kind": "equivalent", "version": "9.5.23", "label": "9.5.23", "title": "修复 currtid() 和 currtid2() 中的错误", "evidence": {"same_day": true, "patch_ids": ["27b2dcabf26eaf1c7674e7a13a96398d", "a7dea211061f215b8cdf044872714d4f"], "statement_hash": "7316ade9ee367fcf2766788a37169597556db8ce5091e1b5b0ac0124f9dc2c1e"}, "url": "/docs/compare/?release=9.5.23#9.5.23-8880427fca0301c2", "source_url": "/docs/release/9.5.23/#id-1.11.6.7.6"}]}, {"id": "10.14-ebbc29f772fc9f55", "cves": [], "html": "<p>避免持有自旋锁时调用 <code>elog()</code> 或 <code>palloc()</code>（Michael Paquier，Tom Lane）</p>\n<p>复制槽相关逻辑有几处违反了这一编码规则。虽然出现问题的可能性很低，但被调用函数一旦出错，就会导致自旋锁卡住。</p>", "text": "避免持有自旋锁时调用 elog() 或 palloc()（Michael Paquier，Tom Lane） 复制槽相关逻辑有几处违反了这一编码规则。虽然出现问题的可能性很低，但被调用函数一旦出错，就会导致自旋锁卡住。", "title": "避免持有自旋锁时调用 elog() 或 palloc()", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/10.14/#id-1.11.6.14.5", "source_hash": "a33c2c78408c1dd1a2234148cb1ecfdce72deeb91017a24a596507dd946bfdc4", "section_path": ["变更"], "commit_groups": [["03aa25b6e", "4a9809e34", "5ed8b4a98", "b41a85f53", "c1669fd58", "e7a134b58"], ["0c735c686", "3d474a079", "7a8cb4a61", "f88bd3139"]], "identity_text": "Avoid calling elog() or palloc() while holding a spinlock (Michael Paquier, Tom Lane) Logic associated with replication slots had several violations of this coding rule. While the odds of trouble are quite low, an error in the called function would lead to a stuck spinlock.", "commit_aliases": ["03aa25b6e", "0c735c686", "3d474a079", "4a9809e34", "5ed8b4a98", "7a8cb4a61", "b41a85f53", "c1669fd58", "e7a134b58", "f88bd3139"], "source_commits": ["0c735c686", "5ed8b4a98"], "source_entry_id": "10.14/changes/022", "db_id": "273e54be3953e1f9eb204765452993e3", "patch_ids": ["7b8a6d0c9a6cc48f6b25baa0ad760128", "c4aea02cbcfbc000949bf778b61af270"], "statement_hash": "81ffb82d876dcf112322599128dceaeadcd558ff62e24ed871ed78320da6a1aa", "relations": [{"rule": 2, "type": "equivalent", "target": "27a280a730fb0fcdb290872f1203c1b5", "evidence": {"same_day": true, "patch_ids": ["7b8a6d0c9a6cc48f6b25baa0ad760128", "c4aea02cbcfbc000949bf778b61af270"], "statement_hash": "81ffb82d876dcf112322599128dceaeadcd558ff62e24ed871ed78320da6a1aa"}}, {"rule": 2, "type": "equivalent", "target": "855df8283d480b191956104315e45be1", "evidence": {"same_day": true, "patch_ids": ["7b8a6d0c9a6cc48f6b25baa0ad760128", "c4aea02cbcfbc000949bf778b61af270"], "statement_hash": "81ffb82d876dcf112322599128dceaeadcd558ff62e24ed871ed78320da6a1aa"}}, {"rule": 2, "type": "equivalent", "target": "df3daeeb0faa8cca216633e36c3b3a40", "evidence": {"same_day": true, "patch_ids": ["7b8a6d0c9a6cc48f6b25baa0ad760128", "c4aea02cbcfbc000949bf778b61af270"], "statement_hash": "81ffb82d876dcf112322599128dceaeadcd558ff62e24ed871ed78320da6a1aa"}}, {"rule": 2, "type": "equivalent", "target": "e70d7d936f76c777484f5273067ac6f5", "evidence": {"same_day": true, "patch_ids": ["7b8a6d0c9a6cc48f6b25baa0ad760128", "c4aea02cbcfbc000949bf778b61af270"], "statement_hash": "81ffb82d876dcf112322599128dceaeadcd558ff62e24ed871ed78320da6a1aa"}}], "version": "10.14", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "27a280a730fb0fcdb290872f1203c1b5", "kind": "equivalent", "version": "12.4", "label": "12.4", "title": "避免持有自旋锁时调用 elog() 或 palloc()", "evidence": {"same_day": true, "patch_ids": ["7b8a6d0c9a6cc48f6b25baa0ad760128", "c4aea02cbcfbc000949bf778b61af270"], "statement_hash": "81ffb82d876dcf112322599128dceaeadcd558ff62e24ed871ed78320da6a1aa"}, "url": "/docs/compare/?release=12.4#12.4-e98082ace3e3bb8c", "source_url": "/docs/release/12.4/#id-1.11.6.24.5"}, {"db_id": "e70d7d936f76c777484f5273067ac6f5", "kind": "equivalent", "version": "11.9", "label": "11.9", "title": "避免持有自旋锁时调用 elog() 或 palloc()", "evidence": {"same_day": true, "patch_ids": ["7b8a6d0c9a6cc48f6b25baa0ad760128", "c4aea02cbcfbc000949bf778b61af270"], "statement_hash": "81ffb82d876dcf112322599128dceaeadcd558ff62e24ed871ed78320da6a1aa"}, "url": "/docs/compare/?release=11.9#11.9-ebbc29f772fc9f55", "source_url": "/docs/release/11.9/#id-1.11.6.18.5"}, {"db_id": "df3daeeb0faa8cca216633e36c3b3a40", "kind": "equivalent", "version": "9.6.19", "label": "9.6.19", "title": "避免在持有自旋锁时调用 elog() 或 palloc()", "evidence": {"same_day": true, "patch_ids": ["7b8a6d0c9a6cc48f6b25baa0ad760128", "c4aea02cbcfbc000949bf778b61af270"], "statement_hash": "81ffb82d876dcf112322599128dceaeadcd558ff62e24ed871ed78320da6a1aa"}, "url": "/docs/compare/?release=9.6.19#9.6.19-1dd7aea73c9ed756", "source_url": "/docs/release/9.6.19/#id-1.11.6.10.5"}, {"db_id": "855df8283d480b191956104315e45be1", "kind": "equivalent", "version": "9.5.23", "label": "9.5.23", "title": "避免在持有自旋锁时调用 elog() 或 palloc()", "evidence": {"same_day": true, "patch_ids": ["7b8a6d0c9a6cc48f6b25baa0ad760128", "c4aea02cbcfbc000949bf778b61af270"], "statement_hash": "81ffb82d876dcf112322599128dceaeadcd558ff62e24ed871ed78320da6a1aa"}, "url": "/docs/compare/?release=9.5.23#9.5.23-1dd7aea73c9ed756", "source_url": "/docs/release/9.5.23/#id-1.11.6.7.6"}]}, {"id": "10.14-155707561d256d1f", "cves": [], "html": "<p>修复逻辑复制订阅者中的断言，以允许使用 <code>REPLICA IDENTITY FULL</code>（Euler Taveira）</p>\n<p>这只是一个不正确的断言，因此不影响标准的生产构建。</p>", "text": "修复逻辑复制订阅者中的断言，以允许使用 REPLICA IDENTITY FULL（Euler Taveira） 这只是一个不正确的断言，因此不影响标准的生产构建。", "title": "修复逻辑复制订阅者中的断言，以允许使用 REPLICA IDENTITY FULL", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/10.14/#id-1.11.6.14.5", "source_hash": "bead6094f94bf846c4980228a2f9e81462bf1795f9a45b33dcb2f38641b2d21b", "section_path": ["变更"], "commit_groups": [["3acb30b49", "70ae82b9b", "7ccb2f54d", "b4ded2f22"]], "identity_text": "Fix assertion in logical replication subscriber to allow use of REPLICA IDENTITY FULL (Euler Taveira) This was just an incorrect assertion, so it has no impact on standard production builds.", "commit_aliases": ["3acb30b49", "70ae82b9b", "7ccb2f54d", "b4ded2f22"], "source_commits": ["3acb30b49"], "source_entry_id": "10.14/changes/023", "db_id": "15b4766b26c8fe27ab661f00ea7a57f5", "patch_ids": ["a3fd256294473b1da384ce3faced9a29"], "statement_hash": "c58d7228eb7f25ebe885d3741eedfd961a2477f9f3519a2459a69c56f806a116", "relations": [{"rule": 2, "type": "equivalent", "target": "2e471143f27cfc91de8d046938852fdf", "evidence": {"same_day": true, "patch_ids": ["a3fd256294473b1da384ce3faced9a29"], "statement_hash": "c58d7228eb7f25ebe885d3741eedfd961a2477f9f3519a2459a69c56f806a116"}}, {"rule": 2, "type": "equivalent", "target": "85f5fa023bb5bfcf193dfba6b943b170", "evidence": {"same_day": true, "patch_ids": ["a3fd256294473b1da384ce3faced9a29"], "statement_hash": "c58d7228eb7f25ebe885d3741eedfd961a2477f9f3519a2459a69c56f806a116"}}], "version": "10.14", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "2e471143f27cfc91de8d046938852fdf", "kind": "equivalent", "version": "12.4", "label": "12.4", "title": "修复逻辑复制订阅者中的断言，以允许使用 REPLICA IDENTITY FULL", "evidence": {"same_day": true, "patch_ids": ["a3fd256294473b1da384ce3faced9a29"], "statement_hash": "c58d7228eb7f25ebe885d3741eedfd961a2477f9f3519a2459a69c56f806a116"}, "url": "/docs/compare/?release=12.4#12.4-21321c5965c3b08e", "source_url": "/docs/release/12.4/#id-1.11.6.24.5"}, {"db_id": "85f5fa023bb5bfcf193dfba6b943b170", "kind": "equivalent", "version": "11.9", "label": "11.9", "title": "修复逻辑复制订阅者中的断言，以允许使用 REPLICA IDENTITY FULL", "evidence": {"same_day": true, "patch_ids": ["a3fd256294473b1da384ce3faced9a29"], "statement_hash": "c58d7228eb7f25ebe885d3741eedfd961a2477f9f3519a2459a69c56f806a116"}, "url": "/docs/compare/?release=11.9#11.9-155707561d256d1f", "source_url": "/docs/release/11.9/#id-1.11.6.18.5"}]}, {"id": "10.14-35bcfccc4c8e8a31", "cves": [], "html": "<p>在 <span>pg_dump</span> 和 <span>pg_basebackup</span> 中正确报告磁盘空间不足错误（Justin Pryzby，Tom Lane，Álvaro Herrera）</p>\n<p>某些代码路径可能产生 <span>“<span>could not write file: Success</span>”</span> 之类不合理的报告。</p>", "text": "在 pg_dump 和 pg_basebackup 中正确报告磁盘空间不足错误（Justin Pryzby，Tom Lane，Álvaro Herrera） 某些代码路径可能产生 “could not write file: Success” 之类不合理的报告。", "title": "在 pg_dump 和 pg_basebackup 中正确报告磁盘空间不足错误", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/10.14/#id-1.11.6.14.5", "source_hash": "13d77b8f4d64824f2b1cd39ed2aac5f8d69b1bcda587c7204cddf4dcf0d4bb61", "section_path": ["变更"], "commit_groups": [["2e155d90d", "411febd53", "5b52008a6", "83762d0a9", "ae3259c55", "bbbce94dc", "e74559c97"]], "identity_text": "Report out-of-disk-space errors properly in pg_dump and pg_basebackup (Justin Pryzby, Tom Lane, Álvaro Herrera) Some code paths could produce silly reports like could not write file: Success.", "commit_aliases": ["2e155d90d", "411febd53", "5b52008a6", "83762d0a9", "ae3259c55", "bbbce94dc", "e74559c97"], "source_commits": ["411febd53"], "source_entry_id": "10.14/changes/024", "db_id": "97d7d04b2ecc6d3a2e86a0f6843f12c1", "patch_ids": ["35d198e9f9b3e496eefade6e41d625b9"], "statement_hash": "db1a02b7055edcec6bcca7aaf801b30a336bbd5fd379bf86909423d9272d4482", "relations": [{"rule": 2, "type": "equivalent", "target": "49d37d1b7dedb9dd758f522fd1f10fc3", "evidence": {"same_day": true, "patch_ids": ["35d198e9f9b3e496eefade6e41d625b9"], "statement_hash": "db1a02b7055edcec6bcca7aaf801b30a336bbd5fd379bf86909423d9272d4482"}}, {"rule": 2, "type": "equivalent", "target": "7e050f5c0843580f658aabff79c8b235", "evidence": {"same_day": true, "patch_ids": ["35d198e9f9b3e496eefade6e41d625b9"], "statement_hash": "db1a02b7055edcec6bcca7aaf801b30a336bbd5fd379bf86909423d9272d4482"}}, {"rule": 2, "type": "equivalent", "target": "816aa6194d1480bdbf0300ca564778bd", "evidence": {"same_day": true, "patch_ids": ["35d198e9f9b3e496eefade6e41d625b9"], "statement_hash": "db1a02b7055edcec6bcca7aaf801b30a336bbd5fd379bf86909423d9272d4482"}}, {"rule": 2, "type": "equivalent", "target": "a3216795e64fd0a84bf6514a41fdbf68", "evidence": {"same_day": true, "patch_ids": ["35d198e9f9b3e496eefade6e41d625b9"], "statement_hash": "db1a02b7055edcec6bcca7aaf801b30a336bbd5fd379bf86909423d9272d4482"}}], "version": "10.14", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "a3216795e64fd0a84bf6514a41fdbf68", "kind": "equivalent", "version": "12.4", "label": "12.4", "title": "在 pg_dump 和 pg_basebackup 中正确报告磁盘空间不足错误", "evidence": {"same_day": true, "patch_ids": ["35d198e9f9b3e496eefade6e41d625b9"], "statement_hash": "db1a02b7055edcec6bcca7aaf801b30a336bbd5fd379bf86909423d9272d4482"}, "url": "/docs/compare/?release=12.4#12.4-408b798dd21d79f4", "source_url": "/docs/release/12.4/#id-1.11.6.24.5"}, {"db_id": "816aa6194d1480bdbf0300ca564778bd", "kind": "equivalent", "version": "11.9", "label": "11.9", "title": "在 pg_dump 和 pg_basebackup 中正确报告磁盘空间不足错误", "evidence": {"same_day": true, "patch_ids": ["35d198e9f9b3e496eefade6e41d625b9"], "statement_hash": "db1a02b7055edcec6bcca7aaf801b30a336bbd5fd379bf86909423d9272d4482"}, "url": "/docs/compare/?release=11.9#11.9-35bcfccc4c8e8a31", "source_url": "/docs/release/11.9/#id-1.11.6.18.5"}, {"db_id": "7e050f5c0843580f658aabff79c8b235", "kind": "equivalent", "version": "9.6.19", "label": "9.6.19", "title": "在 pg_dump 和 pg_basebackup 中正确报告磁盘空间不足错误", "evidence": {"same_day": true, "patch_ids": ["35d198e9f9b3e496eefade6e41d625b9"], "statement_hash": "db1a02b7055edcec6bcca7aaf801b30a336bbd5fd379bf86909423d9272d4482"}, "url": "/docs/compare/?release=9.6.19#9.6.19-35bcfccc4c8e8a31", "source_url": "/docs/release/9.6.19/#id-1.11.6.10.5"}, {"db_id": "49d37d1b7dedb9dd758f522fd1f10fc3", "kind": "equivalent", "version": "9.5.23", "label": "9.5.23", "title": "在 pg_dump 和 pg_basebackup 中正确报告磁盘空间不足错误", "evidence": {"same_day": true, "patch_ids": ["35d198e9f9b3e496eefade6e41d625b9"], "statement_hash": "db1a02b7055edcec6bcca7aaf801b30a336bbd5fd379bf86909423d9272d4482"}, "url": "/docs/compare/?release=9.5.23#9.5.23-35bcfccc4c8e8a31", "source_url": "/docs/release/9.5.23/#id-1.11.6.7.6"}]}, {"id": "10.14-e9e714167d3e4211", "cves": [], "html": "<p>修复同时具有表级权限和逐列权限的表的并行恢复（Tom Lane）</p>\n<p>必须先应用表级权限授予，但并行恢复未能可靠地保证这一顺序，可能导致 <span>“<span>tuple concurrently updated</span>”</span> 错误，或丢失某些逐列权限授予。修复方式是在归档文件中为这些条目添加依赖链接，因此必须使用修正后的 <span>pg_dump</span> 重新转储，才能确保问题不再发生。</p>", "text": "修复同时具有表级权限和逐列权限的表的并行恢复（Tom Lane） 必须先应用表级权限授予，但并行恢复未能可靠地保证这一顺序，可能导致 “tuple concurrently updated” 错误，或丢失某些逐列权限授予。修复方式是在归档文件中为这些条目添加依赖链接，因此必须使用修正后的 pg_dump 重新转储，才能确保问题不再发生。", "title": "修复同时具有表级权限和逐列权限的表的并行恢复", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/10.14/#id-1.11.6.14.5", "source_hash": "c92c859680e980b21cab09e1530e88ce7aa6606b8e8747fa3e779f7d18d6cf5c", "section_path": ["变更"], "commit_groups": [["2d43c3057", "303322c5a", "4fdc559c8", "5fea14f4b", "bc9aaac1a", "db820b9a9", "ea9125304"]], "identity_text": "Fix parallel restore of tables having both table-level privileges and per-column privileges (Tom Lane) The table-level privilege grants have to be applied first, but a parallel restore did not reliably order them that way; this could lead to tuple concurrently updated errors, or to disappearance of some per-column privilege grants. The fix for this is to include dependency links between such entries in the archive file, meaning that a new dump has to be taken with a corrected pg_dump to ensure that the problem will not recur.", "commit_aliases": ["2d43c3057", "303322c5a", "4fdc559c8", "5fea14f4b", "bc9aaac1a", "db820b9a9", "ea9125304"], "source_commits": ["2d43c3057"], "source_entry_id": "10.14/changes/025", "db_id": "6747b5e78db70a510d6064262fc45727", "patch_ids": ["483cb11346131b13cd9681ce8d606ba5"], "statement_hash": "b203809ad3b9fe21738c3e6bc8139c263eae1bf4f2299fa486fcb2963b6a939f", "relations": [{"rule": 2, "type": "equivalent", "target": "6b7ffb66793c929fb75d5305434cc701", "evidence": {"same_day": true, "patch_ids": ["483cb11346131b13cd9681ce8d606ba5"], "statement_hash": "b203809ad3b9fe21738c3e6bc8139c263eae1bf4f2299fa486fcb2963b6a939f"}}, {"rule": 2, "type": "equivalent", "target": "b0f033bc567b79af6912da8a9b851249", "evidence": {"same_day": true, "patch_ids": ["483cb11346131b13cd9681ce8d606ba5"], "statement_hash": "b203809ad3b9fe21738c3e6bc8139c263eae1bf4f2299fa486fcb2963b6a939f"}}, {"rule": 2, "type": "equivalent", "target": "d2b27ac2b44e756e280154aab82b9f16", "evidence": {"same_day": true, "patch_ids": ["483cb11346131b13cd9681ce8d606ba5"], "statement_hash": "b203809ad3b9fe21738c3e6bc8139c263eae1bf4f2299fa486fcb2963b6a939f"}}, {"rule": 2, "type": "equivalent", "target": "ec4ff64a62c56fab736ff690d4c2325b", "evidence": {"same_day": true, "patch_ids": ["483cb11346131b13cd9681ce8d606ba5"], "statement_hash": "b203809ad3b9fe21738c3e6bc8139c263eae1bf4f2299fa486fcb2963b6a939f"}}], "version": "10.14", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "ec4ff64a62c56fab736ff690d4c2325b", "kind": "equivalent", "version": "12.4", "label": "12.4", "title": "修复同时具有表级权限和逐列权限的表的并行恢复", "evidence": {"same_day": true, "patch_ids": ["483cb11346131b13cd9681ce8d606ba5"], "statement_hash": "b203809ad3b9fe21738c3e6bc8139c263eae1bf4f2299fa486fcb2963b6a939f"}, "url": "/docs/compare/?release=12.4#12.4-f21be96544e8e42e", "source_url": "/docs/release/12.4/#id-1.11.6.24.5"}, {"db_id": "6b7ffb66793c929fb75d5305434cc701", "kind": "equivalent", "version": "11.9", "label": "11.9", "title": "修复同时具有表级权限和逐列权限的表的并行恢复", "evidence": {"same_day": true, "patch_ids": ["483cb11346131b13cd9681ce8d606ba5"], "statement_hash": "b203809ad3b9fe21738c3e6bc8139c263eae1bf4f2299fa486fcb2963b6a939f"}, "url": "/docs/compare/?release=11.9#11.9-e9e714167d3e4211", "source_url": "/docs/release/11.9/#id-1.11.6.18.5"}, {"db_id": "b0f033bc567b79af6912da8a9b851249", "kind": "equivalent", "version": "9.6.19", "label": "9.6.19", "title": "修复同时具有表级权限和列级权限的表的并行恢复", "evidence": {"same_day": true, "patch_ids": ["483cb11346131b13cd9681ce8d606ba5"], "statement_hash": "b203809ad3b9fe21738c3e6bc8139c263eae1bf4f2299fa486fcb2963b6a939f"}, "url": "/docs/compare/?release=9.6.19#9.6.19-a3f80256e4336bb6", "source_url": "/docs/release/9.6.19/#id-1.11.6.10.5"}, {"db_id": "d2b27ac2b44e756e280154aab82b9f16", "kind": "equivalent", "version": "9.5.23", "label": "9.5.23", "title": "修复同时具有表级权限和列级权限的表的并行恢复", "evidence": {"same_day": true, "patch_ids": ["483cb11346131b13cd9681ce8d606ba5"], "statement_hash": "b203809ad3b9fe21738c3e6bc8139c263eae1bf4f2299fa486fcb2963b6a939f"}, "url": "/docs/compare/?release=9.5.23#9.5.23-a3f80256e4336bb6", "source_url": "/docs/release/9.5.23/#id-1.11.6.7.6"}]}, {"id": "10.14-e1e311b29f42aec4", "cves": [], "html": "<p>确保 <span>pg_upgrade</span> 运行时，将目标集群中的 <code>vacuum_defer_cleanup_age</code> 设为零（Bruce Momjian）</p>\n<p>如果目标集群的配置已将 <code>vacuum_defer_cleanup_age</code> 设为非零值，就会使系统目录的冻结无法正常进行，进而使升级以令人困惑的方式失败。现在确保在升级期间覆盖此类设置。</p>", "text": "确保 pg_upgrade 运行时，将目标集群中的 vacuum_defer_cleanup_age 设为零（Bruce Momjian） 如果目标集群的配置已将 vacuum_defer_cleanup_age 设为非零值，就会使系统目录的冻结无法正常进行，进而使升级以令人困惑的方式失败。现在确保在升级期间覆盖此类设置。", "title": "确保 pg_upgrade 运行时，将目标集群中的 vacuum_defer_cleanup_age 设为零", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/10.14/#id-1.11.6.14.5", "source_hash": "611b2336f765c81890b1de71a08933c7dd7af6323338bf78a592e7e6005fbd76", "section_path": ["变更"], "commit_groups": [["39c698cff", "3f5863e15", "5c1bfd627", "8e933596c", "9170da96d", "a2c72851a", "aeb785c0f"]], "identity_text": "Ensure that pg_upgrade runs with vacuum_defer_cleanup_age set to zero in the target cluster (Bruce Momjian) If the target cluster's configuration has been modified to set vacuum_defer_cleanup_age to a nonzero value, that prevented freezing of the system catalogs from working properly, which caused the upgrade to fail in confusing ways. Ensure that any such setting is overridden for the duration of the upgrade.", "commit_aliases": ["39c698cff", "3f5863e15", "5c1bfd627", "8e933596c", "9170da96d", "a2c72851a", "aeb785c0f"], "source_commits": ["9170da96d"], "source_entry_id": "10.14/changes/026", "db_id": "7e6ceb1eb07affde79b46b2a279cb38d", "patch_ids": ["c3b9dd773fa38ed393bec0b3f5342139"], "statement_hash": "4492eab8a7263a56a09e69ef539fd88dd7dd72cf5292a97939b1f90482b93748", "relations": [{"rule": 2, "type": "equivalent", "target": "59d36c4a54d742189212fa483f320346", "evidence": {"same_day": true, "patch_ids": ["c3b9dd773fa38ed393bec0b3f5342139"], "statement_hash": "4492eab8a7263a56a09e69ef539fd88dd7dd72cf5292a97939b1f90482b93748"}}, {"rule": 2, "type": "equivalent", "target": "642d5e8d27e0c6f02a7fbadafce573be", "evidence": {"same_day": true, "patch_ids": ["c3b9dd773fa38ed393bec0b3f5342139"], "statement_hash": "4492eab8a7263a56a09e69ef539fd88dd7dd72cf5292a97939b1f90482b93748"}}, {"rule": 2, "type": "equivalent", "target": "665e0bfbae089802b6bd3c8dd8b5faaf", "evidence": {"same_day": true, "patch_ids": ["c3b9dd773fa38ed393bec0b3f5342139"], "statement_hash": "4492eab8a7263a56a09e69ef539fd88dd7dd72cf5292a97939b1f90482b93748"}}, {"rule": 2, "type": "equivalent", "target": "fd3219318bdac20b2e41ff3632b076f9", "evidence": {"same_day": true, "patch_ids": ["c3b9dd773fa38ed393bec0b3f5342139"], "statement_hash": "4492eab8a7263a56a09e69ef539fd88dd7dd72cf5292a97939b1f90482b93748"}}], "version": "10.14", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "59d36c4a54d742189212fa483f320346", "kind": "equivalent", "version": "12.4", "label": "12.4", "title": "确保 pg_upgrade 运行时，将目标集群中的 vacuum_defer_cleanup_age 设为零", "evidence": {"same_day": true, "patch_ids": ["c3b9dd773fa38ed393bec0b3f5342139"], "statement_hash": "4492eab8a7263a56a09e69ef539fd88dd7dd72cf5292a97939b1f90482b93748"}, "url": "/docs/compare/?release=12.4#12.4-cd259605abab70fd", "source_url": "/docs/release/12.4/#id-1.11.6.24.5"}, {"db_id": "665e0bfbae089802b6bd3c8dd8b5faaf", "kind": "equivalent", "version": "11.9", "label": "11.9", "title": "确保 pg_upgrade 运行时，将目标集群中的 vacuum_defer_cleanup_age 设为零", "evidence": {"same_day": true, "patch_ids": ["c3b9dd773fa38ed393bec0b3f5342139"], "statement_hash": "4492eab8a7263a56a09e69ef539fd88dd7dd72cf5292a97939b1f90482b93748"}, "url": "/docs/compare/?release=11.9#11.9-e1e311b29f42aec4", "source_url": "/docs/release/11.9/#id-1.11.6.18.5"}, {"db_id": "fd3219318bdac20b2e41ff3632b076f9", "kind": "equivalent", "version": "9.6.19", "label": "9.6.19", "title": "确保 pg_upgrade 在目标集簇中运行时 vacuum_defer_cleanup_age 被设为零", "evidence": {"same_day": true, "patch_ids": ["c3b9dd773fa38ed393bec0b3f5342139"], "statement_hash": "4492eab8a7263a56a09e69ef539fd88dd7dd72cf5292a97939b1f90482b93748"}, "url": "/docs/compare/?release=9.6.19#9.6.19-4028204c112b0892", "source_url": "/docs/release/9.6.19/#id-1.11.6.10.5"}, {"db_id": "642d5e8d27e0c6f02a7fbadafce573be", "kind": "equivalent", "version": "9.5.23", "label": "9.5.23", "title": "确保 pg_upgrade 在目标集簇中运行时 vacuum_defer_cleanup_age 被设为零", "evidence": {"same_day": true, "patch_ids": ["c3b9dd773fa38ed393bec0b3f5342139"], "statement_hash": "4492eab8a7263a56a09e69ef539fd88dd7dd72cf5292a97939b1f90482b93748"}, "url": "/docs/compare/?release=9.5.23#9.5.23-4028204c112b0892", "source_url": "/docs/release/9.5.23/#id-1.11.6.7.6"}]}, {"id": "10.14-3bcb1320a04bd275", "cves": [], "html": "<p>修复 <span>pg_recvlogical</span>，使其在退出前读取完待处理消息（Noah Misch）</p>\n<p>否则，复制发送进程可能检测到发送失败并退出，而未对复制槽的 LSN 位置进行预期的最终更新。这会导致下次连接后重新传输数据。另外，还可能遗漏在 <span>pg_recvlogical</span> 想要消费的最后一条数据之后发送的错误消息。</p>", "text": "修复 pg_recvlogical，使其在退出前读取完待处理消息（Noah Misch） 否则，复制发送进程可能检测到发送失败并退出，而未对复制槽的 LSN 位置进行预期的最终更新。这会导致下次连接后重新传输数据。另外，还可能遗漏在 pg_recvlogical 想要消费的最后一条数据之后发送的错误消息。", "title": "修复 pg_recvlogical，使其在退出前读取完待处理消息", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/10.14/#id-1.11.6.14.5", "source_hash": "b048d1038f01f0c0e99a0a9dbb590ba23f10975cb5f7a34f206721aadcf9f29f", "section_path": ["变更"], "commit_groups": [["1ab5b672e", "595b4115c", "73a5c0d81", "970ed4493", "a26789452", "cee9cadb5"], ["357012e17", "7130be8aa", "8222a9d9a", "a28db2081"]], "identity_text": "Fix pg_recvlogical to drain pending messages before exiting (Noah Misch) Without this, the replication sender might detect a send failure and exit without making the expected final update to the replication slot's LSN position. That led to re-transmitting data after the next connection. It was also possible to miss error messages sent after the last data that pg_recvlogical wants to consume.", "commit_aliases": ["1ab5b672e", "357012e17", "595b4115c", "7130be8aa", "73a5c0d81", "8222a9d9a", "970ed4493", "a26789452", "a28db2081", "cee9cadb5"], "source_commits": ["970ed4493", "a28db2081"], "source_entry_id": "10.14/changes/027", "db_id": "42c474d377d40ad2929968a29b7fa7de", "patch_ids": ["622954ed1f0e4eb81efda83543b5c515", "b3753579c98b38e9d96c4303019b6c28"], "statement_hash": "8426a68951fe3f32978ae46e92debb32d4177246f5a6f9252bb6b0d035f28b9e", "relations": [{"rule": 2, "type": "equivalent", "target": "3f03e2858ed25def99c4ba9a8de84c0c", "evidence": {"same_day": true, "patch_ids": ["622954ed1f0e4eb81efda83543b5c515", "b3753579c98b38e9d96c4303019b6c28"], "statement_hash": "8426a68951fe3f32978ae46e92debb32d4177246f5a6f9252bb6b0d035f28b9e"}}, {"rule": 2, "type": "equivalent", "target": "661f36f02121caf181a09d07f2b16ac3", "evidence": {"same_day": true, "patch_ids": ["622954ed1f0e4eb81efda83543b5c515", "b3753579c98b38e9d96c4303019b6c28"], "statement_hash": "8426a68951fe3f32978ae46e92debb32d4177246f5a6f9252bb6b0d035f28b9e"}}, {"rule": 2, "type": "equivalent", "target": "9e63a4ff6399dbedc4c73a9b981d185d", "evidence": {"same_day": true, "patch_ids": ["622954ed1f0e4eb81efda83543b5c515", "b3753579c98b38e9d96c4303019b6c28"], "statement_hash": "8426a68951fe3f32978ae46e92debb32d4177246f5a6f9252bb6b0d035f28b9e"}}, {"rule": 2, "type": "equivalent", "target": "cda54712abe9745e3b7b483355640060", "evidence": {"same_day": true, "patch_ids": ["622954ed1f0e4eb81efda83543b5c515", "b3753579c98b38e9d96c4303019b6c28"], "statement_hash": "8426a68951fe3f32978ae46e92debb32d4177246f5a6f9252bb6b0d035f28b9e"}}], "version": "10.14", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "cda54712abe9745e3b7b483355640060", "kind": "equivalent", "version": "12.4", "label": "12.4", "title": "修复 pg_recvlogical，使其在退出前读取完待处理消息", "evidence": {"same_day": true, "patch_ids": ["622954ed1f0e4eb81efda83543b5c515", "b3753579c98b38e9d96c4303019b6c28"], "statement_hash": "8426a68951fe3f32978ae46e92debb32d4177246f5a6f9252bb6b0d035f28b9e"}, "url": "/docs/compare/?release=12.4#12.4-7d5f05eb4a0f2c7b", "source_url": "/docs/release/12.4/#id-1.11.6.24.5"}, {"db_id": "3f03e2858ed25def99c4ba9a8de84c0c", "kind": "equivalent", "version": "11.9", "label": "11.9", "title": "修复 pg_recvlogical，使其在退出前读取完待处理消息", "evidence": {"same_day": true, "patch_ids": ["622954ed1f0e4eb81efda83543b5c515", "b3753579c98b38e9d96c4303019b6c28"], "statement_hash": "8426a68951fe3f32978ae46e92debb32d4177246f5a6f9252bb6b0d035f28b9e"}, "url": "/docs/compare/?release=11.9#11.9-3bcb1320a04bd275", "source_url": "/docs/release/11.9/#id-1.11.6.18.5"}, {"db_id": "661f36f02121caf181a09d07f2b16ac3", "kind": "equivalent", "version": "9.6.19", "label": "9.6.19", "title": "修复 pg_recvlogical 在退出前排空未决消息的问题", "evidence": {"same_day": true, "patch_ids": ["622954ed1f0e4eb81efda83543b5c515", "b3753579c98b38e9d96c4303019b6c28"], "statement_hash": "8426a68951fe3f32978ae46e92debb32d4177246f5a6f9252bb6b0d035f28b9e"}, "url": "/docs/compare/?release=9.6.19#9.6.19-c41aefd874abd8ed", "source_url": "/docs/release/9.6.19/#id-1.11.6.10.5"}, {"db_id": "9e63a4ff6399dbedc4c73a9b981d185d", "kind": "equivalent", "version": "9.5.23", "label": "9.5.23", "title": "修复 pg_recvlogical 在退出前排空未决消息的问题", "evidence": {"same_day": true, "patch_ids": ["622954ed1f0e4eb81efda83543b5c515", "b3753579c98b38e9d96c4303019b6c28"], "statement_hash": "8426a68951fe3f32978ae46e92debb32d4177246f5a6f9252bb6b0d035f28b9e"}, "url": "/docs/compare/?release=9.5.23#9.5.23-c41aefd874abd8ed", "source_url": "/docs/release/9.5.23/#id-1.11.6.7.6"}]}, {"id": "10.14-22dcf45ade8af2a4", "cves": [], "html": "<p>修复 <span>pg_rewind</span> 对源数据目录中刚删除的文件的处理（Justin Pryzby，Michael Paquier）</p>\n<p>使用在线源数据库时，可能发生并发文件删除；但如果删除发生在看到文件目录项与使用 <code>stat()</code> 检查它之间，<span>pg_rewind</span> 就会处理失当。</p>", "text": "修复 pg_rewind 对源数据目录中刚删除的文件的处理（Justin Pryzby，Michael Paquier） 使用在线源数据库时，可能发生并发文件删除；但如果删除发生在看到文件目录项与使用 stat() 检查它之间，pg_rewind 就会处理失当。", "title": "修复 pg_rewind 对源数据目录中刚删除的文件的处理", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/10.14/#id-1.11.6.14.5", "source_hash": "1b1b4c433deb9363c32d3b51ebae9a81126a2e9b0a2aad9c529e24d4cf5b57a0", "section_path": ["变更"], "commit_groups": [["14fe80413", "18ec25412", "1d09fb1f0", "23924feca", "5f89bb4cf", "92927477f", "c6d33d144"]], "identity_text": "Fix pg_rewind's handling of just-deleted files in the source data directory (Justin Pryzby, Michael Paquier) When working with an on-line source database, concurrent file deletions are possible, but pg_rewind would get confused if deletion happened between seeing a file's directory entry and examining it with stat().", "commit_aliases": ["14fe80413", "18ec25412", "1d09fb1f0", "23924feca", "5f89bb4cf", "92927477f", "c6d33d144"], "source_commits": ["23924feca"], "source_entry_id": "10.14/changes/028", "db_id": "f23b125b1b287c3962119a086b6788c0", "patch_ids": ["843d02cd3d60b7c4a9b93852f58b6af5"], "statement_hash": "cda6e58c8f9d2638b48239be399a5802122288d9d2bbd2a0ba7e10337edd6c5f", "relations": [{"rule": 2, "type": "equivalent", "target": "423a5e98056171752639b9c3b2ef463e", "evidence": {"same_day": true, "patch_ids": ["843d02cd3d60b7c4a9b93852f58b6af5"], "statement_hash": "cda6e58c8f9d2638b48239be399a5802122288d9d2bbd2a0ba7e10337edd6c5f"}}, {"rule": 2, "type": "equivalent", "target": "8b5e9612827204adac9507d77c98be37", "evidence": {"same_day": true, "patch_ids": ["843d02cd3d60b7c4a9b93852f58b6af5"], "statement_hash": "cda6e58c8f9d2638b48239be399a5802122288d9d2bbd2a0ba7e10337edd6c5f"}}, {"rule": 2, "type": "equivalent", "target": "b7fab023f441a7e955aede15032fb065", "evidence": {"same_day": true, "patch_ids": ["843d02cd3d60b7c4a9b93852f58b6af5"], "statement_hash": "cda6e58c8f9d2638b48239be399a5802122288d9d2bbd2a0ba7e10337edd6c5f"}}, {"rule": 2, "type": "equivalent", "target": "c52576da644edded7b31204bd8e0f9d1", "evidence": {"same_day": true, "patch_ids": ["843d02cd3d60b7c4a9b93852f58b6af5"], "statement_hash": "cda6e58c8f9d2638b48239be399a5802122288d9d2bbd2a0ba7e10337edd6c5f"}}], "version": "10.14", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "b7fab023f441a7e955aede15032fb065", "kind": "equivalent", "version": "12.4", "label": "12.4", "title": "修复 pg_rewind 对源数据目录中刚删除的文件的处理", "evidence": {"same_day": true, "patch_ids": ["843d02cd3d60b7c4a9b93852f58b6af5"], "statement_hash": "cda6e58c8f9d2638b48239be399a5802122288d9d2bbd2a0ba7e10337edd6c5f"}, "url": "/docs/compare/?release=12.4#12.4-8d166a1ede28e23a", "source_url": "/docs/release/12.4/#id-1.11.6.24.5"}, {"db_id": "8b5e9612827204adac9507d77c98be37", "kind": "equivalent", "version": "11.9", "label": "11.9", "title": "修复 pg_rewind 对源数据目录中刚删除的文件的处理", "evidence": {"same_day": true, "patch_ids": ["843d02cd3d60b7c4a9b93852f58b6af5"], "statement_hash": "cda6e58c8f9d2638b48239be399a5802122288d9d2bbd2a0ba7e10337edd6c5f"}, "url": "/docs/compare/?release=11.9#11.9-22dcf45ade8af2a4", "source_url": "/docs/release/11.9/#id-1.11.6.18.5"}, {"db_id": "c52576da644edded7b31204bd8e0f9d1", "kind": "equivalent", "version": "9.6.19", "label": "9.6.19", "title": "修复 pg_rewind 对源数据目录中刚被删除文件的处理", "evidence": {"same_day": true, "patch_ids": ["843d02cd3d60b7c4a9b93852f58b6af5"], "statement_hash": "cda6e58c8f9d2638b48239be399a5802122288d9d2bbd2a0ba7e10337edd6c5f"}, "url": "/docs/compare/?release=9.6.19#9.6.19-da550c9e85393596", "source_url": "/docs/release/9.6.19/#id-1.11.6.10.5"}, {"db_id": "423a5e98056171752639b9c3b2ef463e", "kind": "equivalent", "version": "9.5.23", "label": "9.5.23", "title": "修复 pg_rewind 对源数据目录中刚被删除文件的处理", "evidence": {"same_day": true, "patch_ids": ["843d02cd3d60b7c4a9b93852f58b6af5"], "statement_hash": "cda6e58c8f9d2638b48239be399a5802122288d9d2bbd2a0ba7e10337edd6c5f"}, "url": "/docs/compare/?release=9.5.23#9.5.23-da550c9e85393596", "source_url": "/docs/release/9.5.23/#id-1.11.6.7.6"}]}, {"id": "10.14-d3e3b67792604d61", "cves": [], "html": "<p>使 <span>pg_test_fsync</span> 在 Windows 上使用二进制 I/O 模式（Michael Paquier）</p>\n<p>以前，它以文本模式写入测试文件，无法准确反映 <span>PostgreSQL</span> 的实际用法。</p>", "text": "使 pg_test_fsync 在 Windows 上使用二进制 I/O 模式（Michael Paquier） 以前，它以文本模式写入测试文件，无法准确反映 PostgreSQL 的实际用法。", "title": "使 pg_test_fsync 在 Windows 上使用二进制 I/O 模式", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/10.14/#id-1.11.6.14.5", "source_hash": "2fd36749592ba0863d620c2dd06ed45761293a1db2a2ac1e593803fd9fa1872f", "section_path": ["变更"], "commit_groups": [["800ec48f5", "932f9fb50", "a452b239e", "ab7ce97ec", "beebbb39d", "cd113a0b4", "de559c2b0"]], "identity_text": "Make pg_test_fsync use binary I/O mode on Windows (Michael Paquier) Previously it wrote the test file in text mode, which is not an accurate reflection of PostgreSQL's actual usage.", "commit_aliases": ["800ec48f5", "932f9fb50", "a452b239e", "ab7ce97ec", "beebbb39d", "cd113a0b4", "de559c2b0"], "source_commits": ["800ec48f5"], "source_entry_id": "10.14/changes/029", "db_id": "780a9579c719cf7fcfa5a878c70af3ab", "patch_ids": ["6fb0c57fa5dcc20f7e429e860ef1bfbe"], "statement_hash": "4618ab0945e540cfd17b971caa82ec45092c83f12fdde01e7f61a67ef5be4647", "relations": [{"rule": 2, "type": "equivalent", "target": "3135e3c9d723243c6bd93805f24d69b9", "evidence": {"same_day": true, "patch_ids": ["6fb0c57fa5dcc20f7e429e860ef1bfbe"], "statement_hash": "4618ab0945e540cfd17b971caa82ec45092c83f12fdde01e7f61a67ef5be4647"}}, {"rule": 2, "type": "equivalent", "target": "b16acde76c53f00bcd28b7bd9319c717", "evidence": {"same_day": true, "patch_ids": ["6fb0c57fa5dcc20f7e429e860ef1bfbe"], "statement_hash": "4618ab0945e540cfd17b971caa82ec45092c83f12fdde01e7f61a67ef5be4647"}}, {"rule": 2, "type": "equivalent", "target": "ba808e0b274d529a9318d7dc31100455", "evidence": {"same_day": true, "patch_ids": ["6fb0c57fa5dcc20f7e429e860ef1bfbe"], "statement_hash": "4618ab0945e540cfd17b971caa82ec45092c83f12fdde01e7f61a67ef5be4647"}}, {"rule": 2, "type": "equivalent", "target": "f367982a55f859e29a9e4cb61ef463f2", "evidence": {"same_day": true, "patch_ids": ["6fb0c57fa5dcc20f7e429e860ef1bfbe"], "statement_hash": "4618ab0945e540cfd17b971caa82ec45092c83f12fdde01e7f61a67ef5be4647"}}], "version": "10.14", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "b16acde76c53f00bcd28b7bd9319c717", "kind": "equivalent", "version": "12.4", "label": "12.4", "title": "使 pg_test_fsync 在 Windows 上使用二进制 I/O 模式", "evidence": {"same_day": true, "patch_ids": ["6fb0c57fa5dcc20f7e429e860ef1bfbe"], "statement_hash": "4618ab0945e540cfd17b971caa82ec45092c83f12fdde01e7f61a67ef5be4647"}, "url": "/docs/compare/?release=12.4#12.4-ed4b723fa77f9343", "source_url": "/docs/release/12.4/#id-1.11.6.24.5"}, {"db_id": "f367982a55f859e29a9e4cb61ef463f2", "kind": "equivalent", "version": "11.9", "label": "11.9", "title": "使 pg_test_fsync 在 Windows 上使用二进制 I/O 模式", "evidence": {"same_day": true, "patch_ids": ["6fb0c57fa5dcc20f7e429e860ef1bfbe"], "statement_hash": "4618ab0945e540cfd17b971caa82ec45092c83f12fdde01e7f61a67ef5be4647"}, "url": "/docs/compare/?release=11.9#11.9-d3e3b67792604d61", "source_url": "/docs/release/11.9/#id-1.11.6.18.5"}, {"db_id": "3135e3c9d723243c6bd93805f24d69b9", "kind": "equivalent", "version": "9.6.19", "label": "9.6.19", "title": "让 pg_test_fsync 在 Windows 上使用二进制 I/O 模式", "evidence": {"same_day": true, "patch_ids": ["6fb0c57fa5dcc20f7e429e860ef1bfbe"], "statement_hash": "4618ab0945e540cfd17b971caa82ec45092c83f12fdde01e7f61a67ef5be4647"}, "url": "/docs/compare/?release=9.6.19#9.6.19-bcd81073169d22d5", "source_url": "/docs/release/9.6.19/#id-1.11.6.10.5"}, {"db_id": "ba808e0b274d529a9318d7dc31100455", "kind": "equivalent", "version": "9.5.23", "label": "9.5.23", "title": "让 pg_test_fsync 在 Windows 上使用二进制 I/O 模式", "evidence": {"same_day": true, "patch_ids": ["6fb0c57fa5dcc20f7e429e860ef1bfbe"], "statement_hash": "4618ab0945e540cfd17b971caa82ec45092c83f12fdde01e7f61a67ef5be4647"}, "url": "/docs/compare/?release=9.5.23#9.5.23-bcd81073169d22d5", "source_url": "/docs/release/9.5.23/#id-1.11.6.7.6"}]}, {"id": "10.14-0ea9376ebe5ef835", "cves": [], "html": "<p>修复 <code>contrib/dblink</code> 未能正确初始化本地状态的问题（Joe Conway）</p>\n<p>在特定条件组合下，这可能导致 <code>dblink_close()</code> 发出意外的远程 <code>COMMIT</code>。</p>", "text": "修复 contrib/dblink 未能正确初始化本地状态的问题（Joe Conway） 在特定条件组合下，这可能导致 dblink_close() 发出意外的远程 COMMIT。", "title": "修复 contrib/dblink 未能正确初始化本地状态的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/10.14/#id-1.11.6.14.5", "source_hash": "1fcceb1d633060781a2c1dd767e4c2bd66d44967e4e86d872b1436588cedd7cb", "section_path": ["变更"], "commit_groups": [["43d3d7318", "43d7934a3", "49a00e07c", "9003b76e1", "e8eb48595", "f140d9b6e"]], "identity_text": "Fix failure to initialize local state correctly in contrib/dblink (Joe Conway) With the right combination of circumstances, this could lead to dblink_close() issuing an unexpected remote COMMIT.", "commit_aliases": ["43d3d7318", "43d7934a3", "49a00e07c", "9003b76e1", "e8eb48595", "f140d9b6e"], "source_commits": ["43d3d7318"], "source_entry_id": "10.14/changes/030", "db_id": "c5b653fb8275ef23b759c81bebb72138", "patch_ids": ["823e9ac1b4747f4b70d29a203e6599a3"], "statement_hash": "153036545f32a848a91997f4c15072198778589eddb7db59974683fd49b299eb", "relations": [{"rule": 2, "type": "equivalent", "target": "3d7c21d661753de7c04efe9e8180dae4", "evidence": {"same_day": true, "patch_ids": ["823e9ac1b4747f4b70d29a203e6599a3"], "statement_hash": "153036545f32a848a91997f4c15072198778589eddb7db59974683fd49b299eb"}}, {"rule": 2, "type": "equivalent", "target": "5f5604a421f793ccda86a39947d0b0f8", "evidence": {"same_day": true, "patch_ids": ["823e9ac1b4747f4b70d29a203e6599a3"], "statement_hash": "153036545f32a848a91997f4c15072198778589eddb7db59974683fd49b299eb"}}, {"rule": 2, "type": "equivalent", "target": "694e0bfe6a45e34b9bb0e939b878084c", "evidence": {"same_day": true, "patch_ids": ["823e9ac1b4747f4b70d29a203e6599a3"], "statement_hash": "153036545f32a848a91997f4c15072198778589eddb7db59974683fd49b299eb"}}, {"rule": 2, "type": "equivalent", "target": "9fe028914bd32b13bfcb52ff54d768a4", "evidence": {"same_day": true, "patch_ids": ["823e9ac1b4747f4b70d29a203e6599a3"], "statement_hash": "153036545f32a848a91997f4c15072198778589eddb7db59974683fd49b299eb"}}], "version": "10.14", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "9fe028914bd32b13bfcb52ff54d768a4", "kind": "equivalent", "version": "12.4", "label": "12.4", "title": "修复 contrib/dblink 未能正确初始化本地状态的问题", "evidence": {"same_day": true, "patch_ids": ["823e9ac1b4747f4b70d29a203e6599a3"], "statement_hash": "153036545f32a848a91997f4c15072198778589eddb7db59974683fd49b299eb"}, "url": "/docs/compare/?release=12.4#12.4-31b2ce6886fd1cb1", "source_url": "/docs/release/12.4/#id-1.11.6.24.5"}, {"db_id": "5f5604a421f793ccda86a39947d0b0f8", "kind": "equivalent", "version": "11.9", "label": "11.9", "title": "修复 contrib/dblink 未能正确初始化本地状态的问题", "evidence": {"same_day": true, "patch_ids": ["823e9ac1b4747f4b70d29a203e6599a3"], "statement_hash": "153036545f32a848a91997f4c15072198778589eddb7db59974683fd49b299eb"}, "url": "/docs/compare/?release=11.9#11.9-0ea9376ebe5ef835", "source_url": "/docs/release/11.9/#id-1.11.6.18.5"}, {"db_id": "3d7c21d661753de7c04efe9e8180dae4", "kind": "equivalent", "version": "9.6.19", "label": "9.6.19", "title": "修复 contrib/dblink 未能正确初始化本地状态的问题", "evidence": {"same_day": true, "patch_ids": ["823e9ac1b4747f4b70d29a203e6599a3"], "statement_hash": "153036545f32a848a91997f4c15072198778589eddb7db59974683fd49b299eb"}, "url": "/docs/compare/?release=9.6.19#9.6.19-0ea9376ebe5ef835", "source_url": "/docs/release/9.6.19/#id-1.11.6.10.5"}, {"db_id": "694e0bfe6a45e34b9bb0e939b878084c", "kind": "equivalent", "version": "9.5.23", "label": "9.5.23", "title": "修复 contrib/dblink 未能正确初始化本地状态的问题", "evidence": {"same_day": true, "patch_ids": ["823e9ac1b4747f4b70d29a203e6599a3"], "statement_hash": "153036545f32a848a91997f4c15072198778589eddb7db59974683fd49b299eb"}, "url": "/docs/compare/?release=9.5.23#9.5.23-0ea9376ebe5ef835", "source_url": "/docs/release/9.5.23/#id-1.11.6.7.6"}]}, {"id": "10.14-a6be2c33bf5dd43b", "cves": [], "html": "<p>修复 <code>contrib/pgcrypto</code> 对 <code>deflate()</code> 的错误使用（Tom Lane）</p>\n<p>由于未正确遵循 <span>zlib</span> 的 API 要求，<code>pgp_sym_encrypt</code> 函数可能产生不正确的压缩数据。尚未收到使用原版 <span>zlib</span> 时出现此错误的报告，但使用 IBM 的 <span>zlibNX</span> 实现时可以观察到。</p>", "text": "修复 contrib/pgcrypto 对 deflate() 的错误使用（Tom Lane） 由于未正确遵循 zlib 的 API 要求，pgp_sym_encrypt 函数可能产生不正确的压缩数据。尚未收到使用原版 zlib 时出现此错误的报告，但使用 IBM 的 zlibNX 实现时可以观察到。", "title": "修复 contrib/pgcrypto 对 deflate() 的错误使用", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/10.14/#id-1.11.6.14.5", "source_hash": "529b136ed6953e0c8401adfbd45df080746b21e7a7604c7316b2ac626ef7a6c5", "section_path": ["变更"], "commit_groups": [["3d4a77815", "475c69c97", "7dab4569d", "b9b610577", "ccf964a80", "d0519e9fe", "d8ec3b126"]], "identity_text": "Fix contrib/pgcrypto's misuse of deflate() (Tom Lane) The pgp_sym_encrypt functions could produce incorrect compressed data due to mishandling of zlib's API requirements. We have no reports of this error manifesting with stock zlib, but it can be seen when using IBM's zlibNX implementation.", "commit_aliases": ["3d4a77815", "475c69c97", "7dab4569d", "b9b610577", "ccf964a80", "d0519e9fe", "d8ec3b126"], "source_commits": ["d8ec3b126"], "source_entry_id": "10.14/changes/031", "db_id": "2cfc769b52e3b07c540770d8283bad5b", "patch_ids": ["087f44a663efed6f1d4571ac678b572a"], "statement_hash": "52db2818133c10c81f88c1f897519c4c2b29b2f346466b1b4570ebafb687358b", "relations": [{"rule": 2, "type": "equivalent", "target": "30ed2bb590f94a7150a5174047c4c46e", "evidence": {"same_day": true, "patch_ids": ["087f44a663efed6f1d4571ac678b572a"], "statement_hash": "52db2818133c10c81f88c1f897519c4c2b29b2f346466b1b4570ebafb687358b"}}, {"rule": 2, "type": "equivalent", "target": "3242f866b02f758989303ae7152085c6", "evidence": {"same_day": true, "patch_ids": ["087f44a663efed6f1d4571ac678b572a"], "statement_hash": "52db2818133c10c81f88c1f897519c4c2b29b2f346466b1b4570ebafb687358b"}}, {"rule": 2, "type": "equivalent", "target": "9b8a7f4ef7320656fa1778b6c988e0b3", "evidence": {"same_day": true, "patch_ids": ["087f44a663efed6f1d4571ac678b572a"], "statement_hash": "52db2818133c10c81f88c1f897519c4c2b29b2f346466b1b4570ebafb687358b"}}, {"rule": 2, "type": "equivalent", "target": "cece28d53d5ccaba7d257ead3597a228", "evidence": {"same_day": true, "patch_ids": ["087f44a663efed6f1d4571ac678b572a"], "statement_hash": "52db2818133c10c81f88c1f897519c4c2b29b2f346466b1b4570ebafb687358b"}}], "version": "10.14", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "30ed2bb590f94a7150a5174047c4c46e", "kind": "equivalent", "version": "12.4", "label": "12.4", "title": "修复 contrib/pgcrypto 对 deflate() 的错误使用", "evidence": {"same_day": true, "patch_ids": ["087f44a663efed6f1d4571ac678b572a"], "statement_hash": "52db2818133c10c81f88c1f897519c4c2b29b2f346466b1b4570ebafb687358b"}, "url": "/docs/compare/?release=12.4#12.4-735fb83115b00403", "source_url": "/docs/release/12.4/#id-1.11.6.24.5"}, {"db_id": "3242f866b02f758989303ae7152085c6", "kind": "equivalent", "version": "11.9", "label": "11.9", "title": "修复 contrib/pgcrypto 对 deflate() 的错误使用", "evidence": {"same_day": true, "patch_ids": ["087f44a663efed6f1d4571ac678b572a"], "statement_hash": "52db2818133c10c81f88c1f897519c4c2b29b2f346466b1b4570ebafb687358b"}, "url": "/docs/compare/?release=11.9#11.9-a6be2c33bf5dd43b", "source_url": "/docs/release/11.9/#id-1.11.6.18.5"}, {"db_id": "9b8a7f4ef7320656fa1778b6c988e0b3", "kind": "equivalent", "version": "9.6.19", "label": "9.6.19", "title": "修复 contrib/pgcrypto 对 deflate() 的误用", "evidence": {"same_day": true, "patch_ids": ["087f44a663efed6f1d4571ac678b572a"], "statement_hash": "52db2818133c10c81f88c1f897519c4c2b29b2f346466b1b4570ebafb687358b"}, "url": "/docs/compare/?release=9.6.19#9.6.19-5c9a7d9c06f17743", "source_url": "/docs/release/9.6.19/#id-1.11.6.10.5"}, {"db_id": "cece28d53d5ccaba7d257ead3597a228", "kind": "equivalent", "version": "9.5.23", "label": "9.5.23", "title": "修复 contrib/pgcrypto 对 deflate() 的误用", "evidence": {"same_day": true, "patch_ids": ["087f44a663efed6f1d4571ac678b572a"], "statement_hash": "52db2818133c10c81f88c1f897519c4c2b29b2f346466b1b4570ebafb687358b"}, "url": "/docs/compare/?release=9.5.23#9.5.23-5c9a7d9c06f17743", "source_url": "/docs/release/9.5.23/#id-1.11.6.7.6"}]}, {"id": "10.14-bc929af91332cf40", "cves": [], "html": "<p>修复 <code>contrib/pgcrypto</code> 的 <code>pgp_sym_decrypt</code> 函数中解压缩逻辑的边界情况（Kyotaro Horiguchi，Michael Paquier）</p>\n<p>压缩流可以合法地以空包结束，但解压缩器未能处理这种情况，并会报告数据损坏。</p>", "text": "修复 contrib/pgcrypto 的 pgp_sym_decrypt 函数中解压缩逻辑的边界情况（Kyotaro Horiguchi，Michael Paquier） 压缩流可以合法地以空包结束，但解压缩器未能处理这种情况，并会报告数据损坏。", "title": "修复 contrib/pgcrypto 的 pgp_sym_decrypt 函数中解压缩逻辑的边界情况", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/10.14/#id-1.11.6.14.5", "source_hash": "445dd32ff8e4cbeae53dbc9682cfc8afb77a2855a9be37747f6dc3523538679f", "section_path": ["变更"], "commit_groups": [["0caf1fc6e", "202fc4ca5", "5bd087eb5", "8a60f541f", "9729f9979", "a3ab7a707", "aaa132a65"], ["1785ac8ad", "e1b4135cf"]], "identity_text": "Fix corner case in decompression logic in contrib/pgcrypto's pgp_sym_decrypt functions (Kyotaro Horiguchi, Michael Paquier) A compressed stream can validly end with an empty packet, but the decompressor failed to handle this and would complain about corrupt data.", "commit_aliases": ["0caf1fc6e", "1785ac8ad", "202fc4ca5", "5bd087eb5", "8a60f541f", "9729f9979", "a3ab7a707", "aaa132a65", "e1b4135cf"], "source_commits": ["9729f9979", "e1b4135cf"], "source_entry_id": "10.14/changes/032", "db_id": "a347b27d5d31e5c242a6e9e4844240eb", "patch_ids": ["61d82dcc8c38e53faf8364e391734fe1", "9c392716155fc2eb2bae306a88822441"], "statement_hash": "1ecdd9e3b54b8c7d8e46289ae2edd1e4bc6beea4db3de9460f01ba41a54c41e7", "relations": [{"rule": 2, "type": "equivalent", "target": "69a4ff8bc694aa26df8362ad2f30e65f", "evidence": {"same_day": true, "patch_ids": ["61d82dcc8c38e53faf8364e391734fe1", "9c392716155fc2eb2bae306a88822441"], "statement_hash": "1ecdd9e3b54b8c7d8e46289ae2edd1e4bc6beea4db3de9460f01ba41a54c41e7"}}, {"rule": 2, "type": "equivalent", "target": "6eedd6b7f3936c1d43da147811fe4a2e", "evidence": {"same_day": true, "patch_ids": ["61d82dcc8c38e53faf8364e391734fe1", "9c392716155fc2eb2bae306a88822441"], "statement_hash": "1ecdd9e3b54b8c7d8e46289ae2edd1e4bc6beea4db3de9460f01ba41a54c41e7"}}, {"rule": 2, "type": "equivalent", "target": "8bf29fde1686423ed401a4b399872762", "evidence": {"same_day": true, "patch_ids": ["61d82dcc8c38e53faf8364e391734fe1", "9c392716155fc2eb2bae306a88822441"], "statement_hash": "1ecdd9e3b54b8c7d8e46289ae2edd1e4bc6beea4db3de9460f01ba41a54c41e7"}}, {"rule": 2, "type": "equivalent", "target": "b794019002cfa4cfd994ac78451bd99d", "evidence": {"same_day": true, "patch_ids": ["61d82dcc8c38e53faf8364e391734fe1", "9c392716155fc2eb2bae306a88822441"], "statement_hash": "1ecdd9e3b54b8c7d8e46289ae2edd1e4bc6beea4db3de9460f01ba41a54c41e7"}}], "version": "10.14", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "b794019002cfa4cfd994ac78451bd99d", "kind": "equivalent", "version": "12.4", "label": "12.4", "title": "修复 contrib/pgcrypto 的 pgp_sym_decrypt 函数中解压缩逻辑的边界情况", "evidence": {"same_day": true, "patch_ids": ["61d82dcc8c38e53faf8364e391734fe1", "9c392716155fc2eb2bae306a88822441"], "statement_hash": "1ecdd9e3b54b8c7d8e46289ae2edd1e4bc6beea4db3de9460f01ba41a54c41e7"}, "url": "/docs/compare/?release=12.4#12.4-95c9d9cc4ef44537", "source_url": "/docs/release/12.4/#id-1.11.6.24.5"}, {"db_id": "6eedd6b7f3936c1d43da147811fe4a2e", "kind": "equivalent", "version": "11.9", "label": "11.9", "title": "修复 contrib/pgcrypto 的 pgp_sym_decrypt 函数中解压缩逻辑的边界情况", "evidence": {"same_day": true, "patch_ids": ["61d82dcc8c38e53faf8364e391734fe1", "9c392716155fc2eb2bae306a88822441"], "statement_hash": "1ecdd9e3b54b8c7d8e46289ae2edd1e4bc6beea4db3de9460f01ba41a54c41e7"}, "url": "/docs/compare/?release=11.9#11.9-bc929af91332cf40", "source_url": "/docs/release/11.9/#id-1.11.6.18.5"}, {"db_id": "69a4ff8bc694aa26df8362ad2f30e65f", "kind": "equivalent", "version": "9.6.19", "label": "9.6.19", "title": "修复 contrib/pgcrypto 的 pgp_sym_decrypt 函数中解压逻辑的边界情况", "evidence": {"same_day": true, "patch_ids": ["61d82dcc8c38e53faf8364e391734fe1", "9c392716155fc2eb2bae306a88822441"], "statement_hash": "1ecdd9e3b54b8c7d8e46289ae2edd1e4bc6beea4db3de9460f01ba41a54c41e7"}, "url": "/docs/compare/?release=9.6.19#9.6.19-d338711d701e80b8", "source_url": "/docs/release/9.6.19/#id-1.11.6.10.5"}, {"db_id": "8bf29fde1686423ed401a4b399872762", "kind": "equivalent", "version": "9.5.23", "label": "9.5.23", "title": "修复 contrib/pgcrypto 的 pgp_sym_decrypt 函数中解压逻辑的边界情况", "evidence": {"same_day": true, "patch_ids": ["61d82dcc8c38e53faf8364e391734fe1", "9c392716155fc2eb2bae306a88822441"], "statement_hash": "1ecdd9e3b54b8c7d8e46289ae2edd1e4bc6beea4db3de9460f01ba41a54c41e7"}, "url": "/docs/compare/?release=9.5.23#9.5.23-d338711d701e80b8", "source_url": "/docs/release/9.5.23/#id-1.11.6.7.6"}]}, {"id": "10.14-5c30a5f3e596c441", "cves": [], "html": "<p>使用 POSIX 标准的 <code>strsignal()</code> 代替 BSD 风格的 <code>sys_siglist[]</code>（Tom Lane）</p>\n<p>这避免了使用很新版本的 <span>glibc</span> 时构建失败。</p>", "text": "使用 POSIX 标准的 strsignal() 代替 BSD 风格的 sys_siglist[]（Tom Lane） 这避免了使用很新版本的 glibc 时构建失败。", "title": "使用 POSIX 标准的 strsignal() 代替 BSD 风格的 sys_siglist[]", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/10.14/#id-1.11.6.14.5", "source_hash": "1b96b79edd2f39467268e818d3af473138070266900f9047c9c5fdf9ad9a6c72", "section_path": ["变更"], "commit_groups": [["0140dec18", "9e043d93c", "c6d43ffab", "d61dcccaf"]], "identity_text": "Use POSIX-standard strsignal() in place of the BSD-ish sys_siglist[] (Tom Lane) This avoids build failures with very recent versions of glibc.", "commit_aliases": ["0140dec18", "9e043d93c", "c6d43ffab", "d61dcccaf"], "source_commits": ["0140dec18"], "source_entry_id": "10.14/changes/033", "db_id": "0e1ef68c98289abd4464164b89ed8fc6", "patch_ids": ["8b4b174fbfc5c320414b8d1090768229"], "statement_hash": "35774db9837bbe4977831b19e301689547363e99eab364396688bb26d62c2727", "relations": [{"rule": 2, "type": "equivalent", "target": "11c8390d1363c2ad27288a93b9e12f4d", "evidence": {"same_day": true, "patch_ids": ["8b4b174fbfc5c320414b8d1090768229"], "statement_hash": "35774db9837bbe4977831b19e301689547363e99eab364396688bb26d62c2727"}}, {"rule": 2, "type": "equivalent", "target": "2e3f3ff9857fd9a01af97181e3c53926", "evidence": {"same_day": true, "patch_ids": ["8b4b174fbfc5c320414b8d1090768229"], "statement_hash": "35774db9837bbe4977831b19e301689547363e99eab364396688bb26d62c2727"}}, {"rule": 2, "type": "equivalent", "target": "46e5daea2f0847cec44a18497ff6126c", "evidence": {"same_day": true, "patch_ids": ["8b4b174fbfc5c320414b8d1090768229"], "statement_hash": "35774db9837bbe4977831b19e301689547363e99eab364396688bb26d62c2727"}}], "version": "10.14", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "11c8390d1363c2ad27288a93b9e12f4d", "kind": "equivalent", "version": "11.9", "label": "11.9", "title": "使用 POSIX 标准的 strsignal() 代替 BSD 风格的 sys_siglist[]", "evidence": {"same_day": true, "patch_ids": ["8b4b174fbfc5c320414b8d1090768229"], "statement_hash": "35774db9837bbe4977831b19e301689547363e99eab364396688bb26d62c2727"}, "url": "/docs/compare/?release=11.9#11.9-5c30a5f3e596c441", "source_url": "/docs/release/11.9/#id-1.11.6.18.5"}, {"db_id": "46e5daea2f0847cec44a18497ff6126c", "kind": "equivalent", "version": "9.6.19", "label": "9.6.19", "title": "用 POSIX 标准的 strsignal() 取代 BSD 风格的 sys_siglist[]", "evidence": {"same_day": true, "patch_ids": ["8b4b174fbfc5c320414b8d1090768229"], "statement_hash": "35774db9837bbe4977831b19e301689547363e99eab364396688bb26d62c2727"}, "url": "/docs/compare/?release=9.6.19#9.6.19-bf16b9da3b7a579d", "source_url": "/docs/release/9.6.19/#id-1.11.6.10.5"}, {"db_id": "2e3f3ff9857fd9a01af97181e3c53926", "kind": "equivalent", "version": "9.5.23", "label": "9.5.23", "title": "用 POSIX 标准的 strsignal() 取代 BSD 风格的 sys_siglist[]", "evidence": {"same_day": true, "patch_ids": ["8b4b174fbfc5c320414b8d1090768229"], "statement_hash": "35774db9837bbe4977831b19e301689547363e99eab364396688bb26d62c2727"}, "url": "/docs/compare/?release=9.5.23#9.5.23-bf16b9da3b7a579d", "source_url": "/docs/release/9.5.23/#id-1.11.6.7.6"}]}, {"id": "10.14-faefe54ad3081668", "cves": [], "html": "<p>支持使用 Microsoft Visual Studio 2015 及更新版本构建我们的 NLS 代码（Juan José Santamaría Flecha，Davinder Singh，Amit Kapila）</p>", "text": "支持使用 Microsoft Visual Studio 2015 及更新版本构建我们的 NLS 代码（Juan José Santamaría Flecha，Davinder Singh，Amit Kapila）", "title": "支持使用 Microsoft Visual Studio 2015 及更新版本构建我们的 NLS 代码", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/10.14/#id-1.11.6.14.5", "source_hash": "91c9783ff803ed9451b6e288ef17f19609903d6015cf0c49458c0fb3b2647ae5", "section_path": ["变更"], "commit_groups": [["1fbfc3d8a", "33b772801", "650952aeb", "98171e59a", "a1466e194", "a16915545"]], "identity_text": "Support building our NLS code with Microsoft Visual Studio 2015 or later (Juan José Santamaría Flecha, Davinder Singh, Amit Kapila)", "commit_aliases": ["1fbfc3d8a", "33b772801", "650952aeb", "98171e59a", "a1466e194", "a16915545"], "source_commits": ["33b772801"], "source_entry_id": "10.14/changes/034", "db_id": "7a6e7b9b3a637f86c82de6f4b558b6a7", "patch_ids": ["29c2e08d0a2c29f552c731dd9bcc98c8"], "statement_hash": "9c793d4eef81b10eff8ed2ec31b24a42fc2218018d4a48e08538ac6a6e313247", "relations": [{"rule": 2, "type": "equivalent", "target": "5e8328bd2c68165315f21ff3129b48bd", "evidence": {"same_day": true, "patch_ids": ["29c2e08d0a2c29f552c731dd9bcc98c8"], "statement_hash": "9c793d4eef81b10eff8ed2ec31b24a42fc2218018d4a48e08538ac6a6e313247"}}, {"rule": 2, "type": "equivalent", "target": "7fcdeb83f6c5f8f71c7139afaa23b33b", "evidence": {"same_day": true, "patch_ids": ["29c2e08d0a2c29f552c731dd9bcc98c8"], "statement_hash": "9c793d4eef81b10eff8ed2ec31b24a42fc2218018d4a48e08538ac6a6e313247"}}, {"rule": 2, "type": "equivalent", "target": "814a7e63822d73a1c68beb16e8364c98", "evidence": {"same_day": true, "patch_ids": ["29c2e08d0a2c29f552c731dd9bcc98c8"], "statement_hash": "9c793d4eef81b10eff8ed2ec31b24a42fc2218018d4a48e08538ac6a6e313247"}}, {"rule": 2, "type": "equivalent", "target": "e4c66e7ff3064c0cbe27c65be6d1acc9", "evidence": {"same_day": true, "patch_ids": ["29c2e08d0a2c29f552c731dd9bcc98c8"], "statement_hash": "9c793d4eef81b10eff8ed2ec31b24a42fc2218018d4a48e08538ac6a6e313247"}}], "version": "10.14", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "5e8328bd2c68165315f21ff3129b48bd", "kind": "equivalent", "version": "12.4", "label": "12.4", "title": "支持使用 Microsoft Visual Studio 2015 及更新版本构建我们的 NLS 代码", "evidence": {"same_day": true, "patch_ids": ["29c2e08d0a2c29f552c731dd9bcc98c8"], "statement_hash": "9c793d4eef81b10eff8ed2ec31b24a42fc2218018d4a48e08538ac6a6e313247"}, "url": "/docs/compare/?release=12.4#12.4-a0295a56e16600b4", "source_url": "/docs/release/12.4/#id-1.11.6.24.5"}, {"db_id": "e4c66e7ff3064c0cbe27c65be6d1acc9", "kind": "equivalent", "version": "11.9", "label": "11.9", "title": "支持使用 Microsoft Visual Studio 2015 及更新版本构建我们的 NLS 代码", "evidence": {"same_day": true, "patch_ids": ["29c2e08d0a2c29f552c731dd9bcc98c8"], "statement_hash": "9c793d4eef81b10eff8ed2ec31b24a42fc2218018d4a48e08538ac6a6e313247"}, "url": "/docs/compare/?release=11.9#11.9-faefe54ad3081668", "source_url": "/docs/release/11.9/#id-1.11.6.18.5"}, {"db_id": "814a7e63822d73a1c68beb16e8364c98", "kind": "equivalent", "version": "9.6.19", "label": "9.6.19", "title": "支持用 Microsoft Visual Studio 2015 或更高版本构建我们的 NLS 代码", "evidence": {"same_day": true, "patch_ids": ["29c2e08d0a2c29f552c731dd9bcc98c8"], "statement_hash": "9c793d4eef81b10eff8ed2ec31b24a42fc2218018d4a48e08538ac6a6e313247"}, "url": "/docs/compare/?release=9.6.19#9.6.19-9ee9b115482b6daa", "source_url": "/docs/release/9.6.19/#id-1.11.6.10.5"}, {"db_id": "7fcdeb83f6c5f8f71c7139afaa23b33b", "kind": "equivalent", "version": "9.5.23", "label": "9.5.23", "title": "支持用 Microsoft Visual Studio 2015 或更高版本构建我们的 NLS 代码", "evidence": {"same_day": true, "patch_ids": ["29c2e08d0a2c29f552c731dd9bcc98c8"], "statement_hash": "9c793d4eef81b10eff8ed2ec31b24a42fc2218018d4a48e08538ac6a6e313247"}, "url": "/docs/compare/?release=9.5.23#9.5.23-9ee9b115482b6daa", "source_url": "/docs/release/9.5.23/#id-1.11.6.7.6"}]}, {"id": "10.14-5602feb7d8813647", "cves": [], "html": "<p>避免源代码树上方数级目录中存在名为 <code>configure</code> 的文件时，MSVC 安装脚本可能发生的失败（Arnold Müller）</p>\n<p>这可能使通过查找 <code>configure</code> 来识别源代码树顶层的某些逻辑产生混淆。</p>", "text": "避免源代码树上方数级目录中存在名为 configure 的文件时，MSVC 安装脚本可能发生的失败（Arnold Müller） 这可能使通过查找 configure 来识别源代码树顶层的某些逻辑产生混淆。", "title": "避免源代码树上方数级目录中存在名为 configure 的文件时，MSVC 安装脚本可能发生的失败", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/10.14/#id-1.11.6.14.5", "source_hash": "c946708268137e7b5d7a8201d4923263bb583291486391098e287829429cf6f0", "section_path": ["变更"], "commit_groups": [["089baec6f", "57dc672c2", "8de137017", "8dfc7d888", "bb24af50d", "d2a995990"]], "identity_text": "Avoid possible failure of our MSVC install script when there is a file named configure several levels above the source code tree (Arnold Müller) This could confuse some logic that looked for configure to identify the top level of the source tree.", "commit_aliases": ["089baec6f", "57dc672c2", "8de137017", "8dfc7d888", "bb24af50d", "d2a995990"], "source_commits": ["8dfc7d888"], "source_entry_id": "10.14/changes/035", "db_id": "7e1d74c3902963942f3cc35a944362c7", "patch_ids": ["33d02dc79563883aa8b39226b08f0af4"], "statement_hash": "180711604c7bdb67464d7f68349556b50b1819f8da9705e30bcaeb82dadd2f6c", "relations": [{"rule": 2, "type": "equivalent", "target": "49af0f329df4d0658c7f13de20eaea19", "evidence": {"same_day": true, "patch_ids": ["33d02dc79563883aa8b39226b08f0af4"], "statement_hash": "180711604c7bdb67464d7f68349556b50b1819f8da9705e30bcaeb82dadd2f6c"}}, {"rule": 2, "type": "equivalent", "target": "5a089c519a74010d8f68abcb082f9f80", "evidence": {"same_day": true, "patch_ids": ["33d02dc79563883aa8b39226b08f0af4"], "statement_hash": "180711604c7bdb67464d7f68349556b50b1819f8da9705e30bcaeb82dadd2f6c"}}, {"rule": 2, "type": "equivalent", "target": "9b06130ba16057cabf80b9788e09efdf", "evidence": {"same_day": true, "patch_ids": ["33d02dc79563883aa8b39226b08f0af4"], "statement_hash": "180711604c7bdb67464d7f68349556b50b1819f8da9705e30bcaeb82dadd2f6c"}}, {"rule": 2, "type": "equivalent", "target": "f6d196b7059fdce8b38b8f34ab16fa29", "evidence": {"same_day": true, "patch_ids": ["33d02dc79563883aa8b39226b08f0af4"], "statement_hash": "180711604c7bdb67464d7f68349556b50b1819f8da9705e30bcaeb82dadd2f6c"}}], "version": "10.14", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "f6d196b7059fdce8b38b8f34ab16fa29", "kind": "equivalent", "version": "12.4", "label": "12.4", "title": "避免源代码树上方数级目录中存在名为 configure 的文件时，MSVC 安装脚本可能发生的失败", "evidence": {"same_day": true, "patch_ids": ["33d02dc79563883aa8b39226b08f0af4"], "statement_hash": "180711604c7bdb67464d7f68349556b50b1819f8da9705e30bcaeb82dadd2f6c"}, "url": "/docs/compare/?release=12.4#12.4-ec32180a01a307a3", "source_url": "/docs/release/12.4/#id-1.11.6.24.5"}, {"db_id": "9b06130ba16057cabf80b9788e09efdf", "kind": "equivalent", "version": "11.9", "label": "11.9", "title": "避免源代码树上方数级目录中存在名为 configure 的文件时，MSVC 安装脚本可能发生的失败", "evidence": {"same_day": true, "patch_ids": ["33d02dc79563883aa8b39226b08f0af4"], "statement_hash": "180711604c7bdb67464d7f68349556b50b1819f8da9705e30bcaeb82dadd2f6c"}, "url": "/docs/compare/?release=11.9#11.9-5602feb7d8813647", "source_url": "/docs/release/11.9/#id-1.11.6.18.5"}, {"db_id": "5a089c519a74010d8f68abcb082f9f80", "kind": "equivalent", "version": "9.6.19", "label": "9.6.19", "title": "避免源代码树之上若干层存在名为 configure 的文件时我们的 MSVC 安装脚本可能失败的问题", "evidence": {"same_day": true, "patch_ids": ["33d02dc79563883aa8b39226b08f0af4"], "statement_hash": "180711604c7bdb67464d7f68349556b50b1819f8da9705e30bcaeb82dadd2f6c"}, "url": "/docs/compare/?release=9.6.19#9.6.19-fc10bc0a2cbeb4a2", "source_url": "/docs/release/9.6.19/#id-1.11.6.10.5"}, {"db_id": "49af0f329df4d0658c7f13de20eaea19", "kind": "equivalent", "version": "9.5.23", "label": "9.5.23", "title": "避免源代码树之上若干层存在名为 configure 的文件时我们的 MSVC 安装脚本可能失败的问题", "evidence": {"same_day": true, "patch_ids": ["33d02dc79563883aa8b39226b08f0af4"], "statement_hash": "180711604c7bdb67464d7f68349556b50b1819f8da9705e30bcaeb82dadd2f6c"}, "url": "/docs/compare/?release=9.5.23#9.5.23-fc10bc0a2cbeb4a2", "source_url": "/docs/release/9.5.23/#id-1.11.6.7.6"}]}]}], "stats": [{"key": "all", "label": "全部变更", "count": 35}, {"key": "feature", "label": "新功能", "count": 0}, {"key": "bugfix", "label": "BUG 修复", "count": 17}, {"key": "security", "label": "安全相关", "count": 2}, {"key": "performance", "label": "性能改进", "count": 0}, {"key": "compatibility", "label": "兼容性变化", "count": 0}, {"key": "improvement", "label": "其他改进", "count": 16}], "total": 35, "release_count": 1, "cross_major": false, "cve_count": 3, "cves": [{"id": "CVE-2018-1058", "url": "https://www.postgresql.org/support/security/CVE-2018-1058/", "fixed": {"10": "10.3", "9.3": "9.3.22", "9.4": "9.4.17", "9.5": "9.5.12", "9.6": "9.6.8"}, "score": 8.8, "title": "在逻辑复制 WAL 发送进程和应用工作进程中设置安全的 search_path", "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "affected": {"10": "10", "9.3": "9.3", "9.4": "9.4", "9.5": "9.5", "9.6": "9.6"}, "component": "client", "published": {"10": "2018-03-01", "9.3": "2018-03-01", "9.4": "2018-03-01", "9.5": "2018-03-01", "9.6": "2018-03-01"}, "introduced": {}, "cvss_version": "3.0", "description_en": "", "first_published": "2018-03-01", "fixed_version": "10.3"}, {"id": "CVE-2020-14349", "url": "https://www.postgresql.org/support/security/CVE-2020-14349/", "fixed": {"10": "10.14", "11": "11.9", "12": "12.4"}, "score": 7.5, "title": "在逻辑复制 WAL 发送进程和应用工作进程中设置安全的 search_path", "vector": "AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H", "affected": {"10": "10", "11": "11", "12": "12"}, "component": "core server", "published": {"10": "2020-08-13", "11": "2020-08-13", "12": "2020-08-13"}, "introduced": {}, "cvss_version": "3.0", "description_en": "The PostgreSQL search_path setting determines schemas searched for tables, functions, operators, etc. The CVE-2018-1058 fix caused most PostgreSQL-provided client applications to sanitize search_path , but logical replication continued to leave search_path unchanged. Users of a replication publisher or subscriber database can create objects in the public schema and harness them to execute arbitrary SQL functions under the identity running replication, often a superuser. Installations having adopted a documented secure schema usage pattern are not vulnerable.\n\nThe PostgreSQL project thanks Noah Misch for reporting this problem.", "first_published": "2020-08-13", "fixed_version": "10.14"}, {"id": "CVE-2020-14350", "url": "https://www.postgresql.org/support/security/CVE-2020-14350/", "fixed": {"10": "10.14", "11": "11.9", "12": "12.4", "9.5": "9.5.23", "9.6": "9.6.19"}, "score": 7.1, "title": "提高 contrib 模块安装脚本的安全性", "vector": "AV:N/AC:H/PR:L/UI:R/S:U/C:H/I:H/A:H", "affected": {"10": "10", "11": "11", "12": "12", "9.5": "9.5", "9.6": "9.6"}, "component": "core server", "published": {"10": "2020-08-13", "11": "2020-08-13", "12": "2020-08-13", "9.5": "2020-08-13", "9.6": "2020-08-13"}, "introduced": {}, "cvss_version": "3.0", "description_en": "When a superuser runs certain CREATE EXTENSION statements, users may be able to execute arbitrary SQL functions under the identity of that superuser. The attacker must have permission to create objects in the new extension's schema or a schema of a prerequisite extension. Not all extensions are vulnerable.\n\nIn addition to correcting the extensions provided with PostgreSQL, the PostgreSQL Global Development Group is issuing guidance for third-party extension authors to secure their own work.\n\nThe PostgreSQL project thanks Andres Freund for reporting this problem.", "first_published": "2020-08-13", "fixed_version": "10.14"}], "cve_available": true, "remaining_cves": [], "security_regressions": [], "warnings": [], "candidate_count": 35, "already_in_source_count": 0, "duplicate_count": 0, "excluded_count": 0, "exclusions": [], "source_as_of": "2026-09-26", "security_as_of": "2026-09-26"}