{"format": 1, "mode": "release", "from_release": null, "to_release": {"date": "2015-05-22", "build": "9.0.20", "major": "9.0", "minor": 20, "manual": "9.0", "status": "stable", "doc_git": "", "version": "9.0.20", "eol_date": "2015-10-08", "date_text": "2015-05-22", "supported": false, "manual_url": "/docs/9.0/release-9-0-20.html", "source_url": "/docs/release/9.0.20/", "entry_count": 35, "placeholder": false, "content_hash": "b66fd47b1a79939d78dd59870de16f3a3ad6292e0aa7371ed5cc2b3391d3c019", "manual_build": "9.0.23", "source_as_of": "", "changes_count": 35, "doc_loaded_at": "2026-09-26T02:56:48.570247", "migration_html": "<p>对于运行 9.0.X 的用户，不需要进行转储/恢复。</p>\n<p>不过，如果你是从早于 9.0.18 的版本升级，请参见<a href=\"/docs/9.0/release-9-0-18.html\" title=\"E.6. 版本 9.0.18\">第 E.6 节</a>。</p>", "compatibility_count": 0, "label": "9.0.20", "status_label": "历史版本", "eol": "2015-10-08", "age_days": 4149, "support_days": -4010}, "groups": [{"date": "2015-05-22", "build": "9.0.20", "major": "9.0", "minor": 20, "manual": "9.0", "status": "stable", "doc_git": "", "version": "9.0.20", "eol_date": "2015-10-08", "date_text": "2015-05-22", "supported": false, "manual_url": "/docs/9.0/release-9-0-20.html", "source_url": "/docs/release/9.0.20/", "entry_count": 35, "placeholder": false, "content_hash": "b66fd47b1a79939d78dd59870de16f3a3ad6292e0aa7371ed5cc2b3391d3c019", "manual_build": "9.0.23", "source_as_of": "", "changes_count": 35, "doc_loaded_at": "2026-09-26T02:56:48.570247", "migration_html": "<p>对于运行 9.0.X 的用户，不需要进行转储/恢复。</p>\n<p>不过，如果你是从早于 9.0.18 的版本升级，请参见<a href=\"/docs/9.0/release-9-0-18.html\" title=\"E.6. 版本 9.0.18\">第 E.6 节</a>。</p>", "compatibility_count": 0, "label": "9.0.20", "status_label": "历史版本", "eol": "2015-10-08", "age_days": 4149, "support_days": -4010, "entries": [{"id": "9.0.20-f137684634296f0b", "cves": ["CVE-2015-3165"], "html": "<p>避免客户端恰在认证超时到期前断开时可能出现的崩溃（Benkocs Norbert Attila）</p>\n<p>如果超时中断在会话关闭序列进行到一半时触发，SSL 相关状态会被释放两次，通常导致崩溃并对其他会话造成服务拒绝。实验表明，未经认证的远程攻击者能够相当稳定地触发此缺陷，因此按安全问题处理。（CVE-2015-3165）</p>", "text": "避免客户端恰在认证超时到期前断开时可能出现的崩溃（Benkocs Norbert Attila） 如果超时中断在会话关闭序列进行到一半时触发，SSL 相关状态会被释放两次，通常导致崩溃并对其他会话造成服务拒绝。实验表明，未经认证的远程攻击者能够相当稳定地触发此缺陷，因此按安全问题处理。（CVE-2015-3165）", "title": "避免客户端恰在认证超时到期前断开时可能出现的崩溃", "commits": [], "section": "变更", "category": "security", "source_url": "/docs/release/9.0.20/#id-1.11.6.8.6", "source_hash": "3ee9edf8bd5825c3c82040ef4c8395dd3945118b72602c7c6b11f818001f7e5e", "section_path": ["变更"], "commit_groups": [], "identity_text": "Avoid possible crash when client disconnects just before the authentication timeout expires (Benkocs Norbert Attila) If the timeout interrupt fired partway through the session shutdown sequence, SSL-related state would be freed twice, typically causing a crash and hence denial of service to other sessions. Experimentation shows that an unauthenticated remote attacker could trigger the bug somewhat consistently, hence treat as security issue. (CVE-2015-3165)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.20/changes/001", "db_id": "33653fc5cbb1d58de707f58e51339ffa", "patch_ids": [], "statement_hash": "2516c54774fb7acc56302560aed0d0712c87b04832b25e27926b22fcf82991e4", "relations": [{"rule": 2, "type": "equivalent", "target": "166a058331aa92169d3c993ccc78a6f8", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2516c54774fb7acc56302560aed0d0712c87b04832b25e27926b22fcf82991e4"}}, {"rule": 2, "type": "equivalent", "target": "1f011ca3bdf0c55f16f7d70b05ccaa63", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2516c54774fb7acc56302560aed0d0712c87b04832b25e27926b22fcf82991e4"}}, {"rule": 2, "type": "equivalent", "target": "7bd6b2445702e22a6706e79ceac6febd", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2516c54774fb7acc56302560aed0d0712c87b04832b25e27926b22fcf82991e4"}}, {"rule": 2, "type": "equivalent", "target": "a8137ac3737dfa85692bd256b8de569a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2516c54774fb7acc56302560aed0d0712c87b04832b25e27926b22fcf82991e4"}}], "version": "9.0.20", "category_label": "安全相关", "also_in": [], "variants": [], "related_changes": [{"db_id": "a8137ac3737dfa85692bd256b8de569a", "kind": "equivalent", "version": "9.4.2", "label": "9.4.2", "title": "避免客户端恰在认证超时到期前断开时可能出现的崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2516c54774fb7acc56302560aed0d0712c87b04832b25e27926b22fcf82991e4"}, "url": "/docs/compare/?release=9.4.2#9.4.2-f137684634296f0b", "source_url": "/docs/release/9.4.2/#id-1.11.6.29.5"}, {"db_id": "1f011ca3bdf0c55f16f7d70b05ccaa63", "kind": "equivalent", "version": "9.3.7", "label": "9.3.7", "title": "避免客户端恰在认证超时到期前断开时可能出现的崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2516c54774fb7acc56302560aed0d0712c87b04832b25e27926b22fcf82991e4"}, "url": "/docs/compare/?release=9.3.7#9.3.7-f137684634296f0b", "source_url": "/docs/release/9.3.7/#id-1.11.6.23.5"}, {"db_id": "7bd6b2445702e22a6706e79ceac6febd", "kind": "equivalent", "version": "9.2.11", "label": "9.2.11", "title": "避免客户端恰在认证超时到期前断开时可能出现的崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2516c54774fb7acc56302560aed0d0712c87b04832b25e27926b22fcf82991e4"}, "url": "/docs/compare/?release=9.2.11#9.2.11-f137684634296f0b", "source_url": "/docs/release/9.2.11/#id-1.11.6.18.5"}, {"db_id": "166a058331aa92169d3c993ccc78a6f8", "kind": "equivalent", "version": "9.1.16", "label": "9.1.16", "title": "避免客户端恰在认证超时到期前断开时可能出现的崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2516c54774fb7acc56302560aed0d0712c87b04832b25e27926b22fcf82991e4"}, "url": "/docs/compare/?release=9.1.16#9.1.16-f137684634296f0b", "source_url": "/docs/release/9.1.16/#id-1.11.6.13.5"}]}, {"id": "9.0.20-72654f8666dd7a43", "cves": ["CVE-2015-3166"], "html": "<p>改进对系统调用失败的检测（Noah Misch）</p>\n<p>我们替换实现的<code>snprintf()</code>未检查底层系统库调用报告的错误；可能被遗漏的主要情况是内存耗尽。在最坏情况下，由于我们的代码假定缓冲区已被覆写而实际未覆写，这可能导致信息暴露。此外，还有少数地方对安全相关的其他系统库函数调用未检查失败。</p>\n<p>仍有可能某些对<code>*printf()</code>族函数的调用在恰逢内存耗尽错误时存在信息泄露风险。我们判断风险不大，但将继续在此领域进行分析。（CVE-2015-3166）</p>", "text": "改进对系统调用失败的检测（Noah Misch） 我们替换实现的snprintf()未检查底层系统库调用报告的错误；可能被遗漏的主要情况是内存耗尽。在最坏情况下，由于我们的代码假定缓冲区已被覆写而实际未覆写，这可能导致信息暴露。此外，还有少数地方对安全相关的其他系统库函数调用未检查失败。 仍有可能某些对*printf()族函数的调用在恰逢内存耗尽错误时存在信息泄露风险。我们判断风险不大，但将继续在此领域进行分析。（CVE-2015-3166）", "title": "改进对系统调用失败的检测", "commits": [], "section": "变更", "category": "security", "source_url": "/docs/release/9.0.20/#id-1.11.6.8.6", "source_hash": "b68213a8b411c8003f749cdb3fb2d958214ad379c2abca42e0866a6ff37f65dc", "section_path": ["变更"], "commit_groups": [], "identity_text": "Improve detection of system-call failures (Noah Misch) Our replacement implementation of snprintf() failed to check for errors reported by the underlying system library calls; the main case that might be missed is out-of-memory situations. In the worst case this might lead to information exposure, due to our code assuming that a buffer had been overwritten when it hadn't been. Also, there were a few places in which security-relevant calls of other system library functions did not check for failure. It remains possible that some calls of the *printf() family of functions are vulnerable to information disclosure if an out-of-memory error occurs at just the wrong time. We judge the risk to not be large, but will continue analysis in this area. (CVE-2015-3166)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.20/changes/002", "db_id": "0b9f2a2344cc7de8caf2ff5d03e7dbd3", "patch_ids": [], "statement_hash": "c698deb914a9a5816deed3947f2bcd9a20cfa6b171e610e37d784fbdd873820b", "relations": [{"rule": 2, "type": "equivalent", "target": "1edcc40df2a2fb58eb20cb9ca4bcfb82", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c698deb914a9a5816deed3947f2bcd9a20cfa6b171e610e37d784fbdd873820b"}}, {"rule": 2, "type": "equivalent", "target": "311cd6e151a473c82bf7bb526eea7fec", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c698deb914a9a5816deed3947f2bcd9a20cfa6b171e610e37d784fbdd873820b"}}, {"rule": 2, "type": "equivalent", "target": "5417e7cbb4c646adff2745f83e060216", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c698deb914a9a5816deed3947f2bcd9a20cfa6b171e610e37d784fbdd873820b"}}, {"rule": 2, "type": "equivalent", "target": "79fe5e14ad1b277e6f385e35c8a79593", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c698deb914a9a5816deed3947f2bcd9a20cfa6b171e610e37d784fbdd873820b"}}], "version": "9.0.20", "category_label": "安全相关", "also_in": [], "variants": [], "related_changes": [{"db_id": "1edcc40df2a2fb58eb20cb9ca4bcfb82", "kind": "equivalent", "version": "9.4.2", "label": "9.4.2", "title": "改进对系统调用失败的检测", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c698deb914a9a5816deed3947f2bcd9a20cfa6b171e610e37d784fbdd873820b"}, "url": "/docs/compare/?release=9.4.2#9.4.2-72654f8666dd7a43", "source_url": "/docs/release/9.4.2/#id-1.11.6.29.5"}, {"db_id": "5417e7cbb4c646adff2745f83e060216", "kind": "equivalent", "version": "9.3.7", "label": "9.3.7", "title": "改进对系统调用失败的检测", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c698deb914a9a5816deed3947f2bcd9a20cfa6b171e610e37d784fbdd873820b"}, "url": "/docs/compare/?release=9.3.7#9.3.7-72654f8666dd7a43", "source_url": "/docs/release/9.3.7/#id-1.11.6.23.5"}, {"db_id": "311cd6e151a473c82bf7bb526eea7fec", "kind": "equivalent", "version": "9.2.11", "label": "9.2.11", "title": "改进对系统调用失败的检测", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c698deb914a9a5816deed3947f2bcd9a20cfa6b171e610e37d784fbdd873820b"}, "url": "/docs/compare/?release=9.2.11#9.2.11-72654f8666dd7a43", "source_url": "/docs/release/9.2.11/#id-1.11.6.18.5"}, {"db_id": "79fe5e14ad1b277e6f385e35c8a79593", "kind": "equivalent", "version": "9.1.16", "label": "9.1.16", "title": "改进对系统调用失败的检测", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c698deb914a9a5816deed3947f2bcd9a20cfa6b171e610e37d784fbdd873820b"}, "url": "/docs/compare/?release=9.1.16#9.1.16-72654f8666dd7a43", "source_url": "/docs/release/9.1.16/#id-1.11.6.13.5"}]}, {"id": "9.0.20-8a218bb3e4c24db0", "cves": ["CVE-2015-3167"], "html": "<p>在<code>contrib/pgcrypto</code>中，统一将解密失败报告为<span>“<span>Wrong key or corrupt data</span>”</span>（Noah Misch）</p>\n<p>此前，某些使用错误密钥解密的情况可能报告其他错误消息文本。已经证明，这种错误报告的差异可能帮助攻击者从其他系统恢复密钥。虽然尚不清楚<code>pgcrypto</code>的具体行为是否同样可被利用，但使用统一消息来避免风险似乎更好。（CVE-2015-3167）</p>", "text": "在contrib/pgcrypto中，统一将解密失败报告为“Wrong key or corrupt data”（Noah Misch） 此前，某些使用错误密钥解密的情况可能报告其他错误消息文本。已经证明，这种错误报告的差异可能帮助攻击者从其他系统恢复密钥。虽然尚不清楚pgcrypto的具体行为是否同样可被利用，但使用统一消息来避免风险似乎更好。（CVE-2015-3167）", "title": "在contrib/pgcrypto中，统一将解密失败报告为“Wrong key or corrupt data”", "commits": [], "section": "变更", "category": "security", "source_url": "/docs/release/9.0.20/#id-1.11.6.8.6", "source_hash": "aa9c79cb08c5aad8934504277b3315aaa698abb73b69b58523df54006d11d344", "section_path": ["变更"], "commit_groups": [], "identity_text": "In contrib/pgcrypto, uniformly report decryption failures as Wrong key or corrupt data (Noah Misch) Previously, some cases of decryption with an incorrect key could report other error message texts. It has been shown that such variance in error reports can aid attackers in recovering keys from other systems. While it's unknown whether pgcrypto's specific behaviors are likewise exploitable, it seems better to avoid the risk by using a one-size-fits-all message. (CVE-2015-3167)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.20/changes/003", "db_id": "ad89594613755a731085c914f5bbb531", "patch_ids": [], "statement_hash": "db603ffaca3458776f52933484ab11548522a4e78e3a5fec6a775e8e006a7b90", "relations": [{"rule": 2, "type": "equivalent", "target": "10208ac2f278c8245a7ba81456d582d2", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "db603ffaca3458776f52933484ab11548522a4e78e3a5fec6a775e8e006a7b90"}}, {"rule": 2, "type": "equivalent", "target": "523a69900b6f8db69b5e69bb05e6a0f5", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "db603ffaca3458776f52933484ab11548522a4e78e3a5fec6a775e8e006a7b90"}}, {"rule": 2, "type": "equivalent", "target": "cabb81c799794e7072965ee000ffc04e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "db603ffaca3458776f52933484ab11548522a4e78e3a5fec6a775e8e006a7b90"}}, {"rule": 2, "type": "equivalent", "target": "eaec3858fa48da9f0487784eab499edd", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "db603ffaca3458776f52933484ab11548522a4e78e3a5fec6a775e8e006a7b90"}}], "version": "9.0.20", "category_label": "安全相关", "also_in": [], "variants": [], "related_changes": [{"db_id": "523a69900b6f8db69b5e69bb05e6a0f5", "kind": "equivalent", "version": "9.4.2", "label": "9.4.2", "title": "在contrib/pgcrypto中，统一将解密失败报告为“Wrong key or corrupt data”", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "db603ffaca3458776f52933484ab11548522a4e78e3a5fec6a775e8e006a7b90"}, "url": "/docs/compare/?release=9.4.2#9.4.2-8a218bb3e4c24db0", "source_url": "/docs/release/9.4.2/#id-1.11.6.29.5"}, {"db_id": "cabb81c799794e7072965ee000ffc04e", "kind": "equivalent", "version": "9.3.7", "label": "9.3.7", "title": "在contrib/pgcrypto中，统一将解密失败报告为“Wrong key or corrupt data”", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "db603ffaca3458776f52933484ab11548522a4e78e3a5fec6a775e8e006a7b90"}, "url": "/docs/compare/?release=9.3.7#9.3.7-8a218bb3e4c24db0", "source_url": "/docs/release/9.3.7/#id-1.11.6.23.5"}, {"db_id": "10208ac2f278c8245a7ba81456d582d2", "kind": "equivalent", "version": "9.2.11", "label": "9.2.11", "title": "在contrib/pgcrypto中，统一将解密失败报告为“Wrong key or corrupt data”", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "db603ffaca3458776f52933484ab11548522a4e78e3a5fec6a775e8e006a7b90"}, "url": "/docs/compare/?release=9.2.11#9.2.11-8a218bb3e4c24db0", "source_url": "/docs/release/9.2.11/#id-1.11.6.18.5"}, {"db_id": "eaec3858fa48da9f0487784eab499edd", "kind": "equivalent", "version": "9.1.16", "label": "9.1.16", "title": "在contrib/pgcrypto中，统一将解密失败报告为“Wrong key or corrupt data”", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "db603ffaca3458776f52933484ab11548522a4e78e3a5fec6a775e8e006a7b90"}, "url": "/docs/compare/?release=9.1.16#9.1.16-8a218bb3e4c24db0", "source_url": "/docs/release/9.1.16/#id-1.11.6.13.5"}]}, {"id": "9.0.20-c45d554899b0e684", "cves": [], "html": "<p>修复 HOT 更新后延迟排他约束检查不正确的问题（Tom Lane）</p>\n<p>如果同一事务中稍后对一条可能违反延迟排他约束的新行进行了 HOT 更新（即没有索引列发生变化，且该行可以存回同一表页），那么最终执行检查时将报告排他约束被违反，即使新行最初与之冲突的行已被删除。</p>", "text": "修复 HOT 更新后延迟排他约束检查不正确的问题（Tom Lane） 如果同一事务中稍后对一条可能违反延迟排他约束的新行进行了 HOT 更新（即没有索引列发生变化，且该行可以存回同一表页），那么最终执行检查时将报告排他约束被违反，即使新行最初与之冲突的行已被删除。", "title": "修复 HOT 更新后延迟排他约束检查不正确的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.20/#id-1.11.6.8.6", "source_hash": "9e747a3ba560462fced3073dd8aa468163f74a06511849d14af79bd19880205a", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix incorrect checking of deferred exclusion constraints after a HOT update (Tom Lane) If a new row that potentially violates a deferred exclusion constraint is HOT-updated (that is, no indexed columns change and the row can be stored back onto the same table page) later in the same transaction, the exclusion constraint would be reported as violated when the check finally occurred, even if the row(s) the new row originally conflicted with had been deleted.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.20/changes/004", "db_id": "ca6244438e133080e91b825acd23b928", "patch_ids": [], "statement_hash": "3407bb49af9d35e49653ac770696c98e3a175327e14282c85241ac4b9f6f7ba4", "relations": [{"rule": 2, "type": "equivalent", "target": "07775680f670a05e3e8144cb67cfde44", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3407bb49af9d35e49653ac770696c98e3a175327e14282c85241ac4b9f6f7ba4"}}, {"rule": 2, "type": "equivalent", "target": "40891a5506cd745b5ea879b7a6862f8d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3407bb49af9d35e49653ac770696c98e3a175327e14282c85241ac4b9f6f7ba4"}}, {"rule": 2, "type": "equivalent", "target": "7f743fbd069c78714688327ab8601b4c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3407bb49af9d35e49653ac770696c98e3a175327e14282c85241ac4b9f6f7ba4"}}, {"rule": 2, "type": "equivalent", "target": "dad10dac68bc002e2bbb6ff2f3f64f29", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3407bb49af9d35e49653ac770696c98e3a175327e14282c85241ac4b9f6f7ba4"}}], "version": "9.0.20", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "7f743fbd069c78714688327ab8601b4c", "kind": "equivalent", "version": "9.4.2", "label": "9.4.2", "title": "修复 HOT 更新后延迟排他约束检查不正确的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3407bb49af9d35e49653ac770696c98e3a175327e14282c85241ac4b9f6f7ba4"}, "url": "/docs/compare/?release=9.4.2#9.4.2-c45d554899b0e684", "source_url": "/docs/release/9.4.2/#id-1.11.6.29.5"}, {"db_id": "07775680f670a05e3e8144cb67cfde44", "kind": "equivalent", "version": "9.3.7", "label": "9.3.7", "title": "修复 HOT 更新后延迟排他约束检查不正确的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3407bb49af9d35e49653ac770696c98e3a175327e14282c85241ac4b9f6f7ba4"}, "url": "/docs/compare/?release=9.3.7#9.3.7-c45d554899b0e684", "source_url": "/docs/release/9.3.7/#id-1.11.6.23.5"}, {"db_id": "40891a5506cd745b5ea879b7a6862f8d", "kind": "equivalent", "version": "9.2.11", "label": "9.2.11", "title": "修复 HOT 更新后延迟排他约束检查不正确的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3407bb49af9d35e49653ac770696c98e3a175327e14282c85241ac4b9f6f7ba4"}, "url": "/docs/compare/?release=9.2.11#9.2.11-c45d554899b0e684", "source_url": "/docs/release/9.2.11/#id-1.11.6.18.5"}, {"db_id": "dad10dac68bc002e2bbb6ff2f3f64f29", "kind": "equivalent", "version": "9.1.16", "label": "9.1.16", "title": "修复 HOT 更新后延迟排他约束检查不正确的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3407bb49af9d35e49653ac770696c98e3a175327e14282c85241ac4b9f6f7ba4"}, "url": "/docs/compare/?release=9.1.16#9.1.16-c45d554899b0e684", "source_url": "/docs/release/9.1.16/#id-1.11.6.13.5"}]}, {"id": "9.0.20-cd5ec8431ddab473", "cves": [], "html": "<p>防止反连接（NOT EXISTS 连接）与其他外连接之间的不当重排序（Tom Lane）</p>\n<p>已知规划器中的这一疏忽会导致 <span>“<span>could not find RelOptInfo for given relids</span>”</span> 错误，但有时错误的查询计划似乎有可能通过该一致性检查并导致静默错误的查询输出。</p>", "text": "防止反连接（NOT EXISTS 连接）与其他外连接之间的不当重排序（Tom Lane） 已知规划器中的这一疏忽会导致 “could not find RelOptInfo for given relids” 错误，但有时错误的查询计划似乎有可能通过该一致性检查并导致静默错误的查询输出。", "title": "防止反连接（NOT EXISTS 连接）与其他外连接之间的不当重排序", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.20/#id-1.11.6.8.6", "source_hash": "457fadfd6cf1f64b7d68096fe314cc184cfb17e87123ae134d606c431b61b892", "section_path": ["变更"], "commit_groups": [], "identity_text": "Prevent improper reordering of antijoins (NOT EXISTS joins) versus other outer joins (Tom Lane) This oversight in the planner has been observed to cause could not find RelOptInfo for given relids errors, but it seems possible that sometimes an incorrect query plan might get past that consistency check and result in silently-wrong query output.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.20/changes/005", "db_id": "126bc41728ec97609af268614ce53fda", "patch_ids": [], "statement_hash": "5b459ac33cca05105b91959aabf7f8bc947fd341934b81137459564f5fdb1942", "relations": [{"rule": 2, "type": "equivalent", "target": "431618e516df11110ea732ef08878644", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5b459ac33cca05105b91959aabf7f8bc947fd341934b81137459564f5fdb1942"}}, {"rule": 2, "type": "equivalent", "target": "7a4896aacad821c9c1cfe8e1878f86b8", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5b459ac33cca05105b91959aabf7f8bc947fd341934b81137459564f5fdb1942"}}, {"rule": 2, "type": "equivalent", "target": "90c25daa896d2207070e9b58676babac", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5b459ac33cca05105b91959aabf7f8bc947fd341934b81137459564f5fdb1942"}}, {"rule": 2, "type": "equivalent", "target": "e3a46fc16623b3791c67ec4b2b13e03c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5b459ac33cca05105b91959aabf7f8bc947fd341934b81137459564f5fdb1942"}}], "version": "9.0.20", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "90c25daa896d2207070e9b58676babac", "kind": "equivalent", "version": "9.4.2", "label": "9.4.2", "title": "防止反连接（NOT EXISTS 连接）与其他外连接之间的不当重排序", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5b459ac33cca05105b91959aabf7f8bc947fd341934b81137459564f5fdb1942"}, "url": "/docs/compare/?release=9.4.2#9.4.2-cd5ec8431ddab473", "source_url": "/docs/release/9.4.2/#id-1.11.6.29.5"}, {"db_id": "7a4896aacad821c9c1cfe8e1878f86b8", "kind": "equivalent", "version": "9.3.7", "label": "9.3.7", "title": "防止反连接（NOT EXISTS 连接）与其他外连接之间的不当重排序", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5b459ac33cca05105b91959aabf7f8bc947fd341934b81137459564f5fdb1942"}, "url": "/docs/compare/?release=9.3.7#9.3.7-cd5ec8431ddab473", "source_url": "/docs/release/9.3.7/#id-1.11.6.23.5"}, {"db_id": "431618e516df11110ea732ef08878644", "kind": "equivalent", "version": "9.2.11", "label": "9.2.11", "title": "防止反连接（NOT EXISTS 连接）与其他外连接之间的不当重排序", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5b459ac33cca05105b91959aabf7f8bc947fd341934b81137459564f5fdb1942"}, "url": "/docs/compare/?release=9.2.11#9.2.11-cd5ec8431ddab473", "source_url": "/docs/release/9.2.11/#id-1.11.6.18.5"}, {"db_id": "e3a46fc16623b3791c67ec4b2b13e03c", "kind": "equivalent", "version": "9.1.16", "label": "9.1.16", "title": "防止反连接（NOT EXISTS 连接）与其他外连接之间的不当重排序", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5b459ac33cca05105b91959aabf7f8bc947fd341934b81137459564f5fdb1942"}, "url": "/docs/compare/?release=9.1.16#9.1.16-cd5ec8431ddab473", "source_url": "/docs/release/9.1.16/#id-1.11.6.13.5"}]}, {"id": "9.0.20-584e773a80c48685", "cves": [], "html": "<p>修复外连接计划节点中子表达式匹配不正确的问题（Tom Lane）</p>\n<p>此前，如果文本相同的非严格子表达式在外连接的上、下方都被使用，规划器可能试图重用在连接下方计算的值，但这是不正确的，因为对于未匹配的外部行，执行器会将该值强制置为 NULL。</p>", "text": "修复外连接计划节点中子表达式匹配不正确的问题（Tom Lane） 此前，如果文本相同的非严格子表达式在外连接的上、下方都被使用，规划器可能试图重用在连接下方计算的值，但这是不正确的，因为对于未匹配的外部行，执行器会将该值强制置为 NULL。", "title": "修复外连接计划节点中子表达式匹配不正确的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.20/#id-1.11.6.8.6", "source_hash": "3eec2aeb6cf09e9396fdda1806cd0f00d020bee3d2efeee528f821de8ae598fe", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix incorrect matching of subexpressions in outer-join plan nodes (Tom Lane) Previously, if textually identical non-strict subexpressions were used both above and below an outer join, the planner might try to re-use the value computed below the join, which would be incorrect because the executor would force the value to NULL in case of an unmatched outer row.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.20/changes/006", "db_id": "ac300d5c74bdfa2a3e6ab6d216adec3a", "patch_ids": [], "statement_hash": "ddc895d09cc2bd57ff41743b7f7f287d650bc259713ee6e4223ee5527856f3e8", "relations": [{"rule": 2, "type": "equivalent", "target": "1a03887d5d91fb7fb6c191215abfb4d5", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ddc895d09cc2bd57ff41743b7f7f287d650bc259713ee6e4223ee5527856f3e8"}}, {"rule": 2, "type": "equivalent", "target": "27c954bdb756e0b7f856235b8bd2fe62", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ddc895d09cc2bd57ff41743b7f7f287d650bc259713ee6e4223ee5527856f3e8"}}, {"rule": 2, "type": "equivalent", "target": "6045f9df05d02dab3ea14f2512b826d2", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ddc895d09cc2bd57ff41743b7f7f287d650bc259713ee6e4223ee5527856f3e8"}}, {"rule": 2, "type": "equivalent", "target": "b24d8d88773ff9f52c14c8afaf20339a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ddc895d09cc2bd57ff41743b7f7f287d650bc259713ee6e4223ee5527856f3e8"}}], "version": "9.0.20", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "6045f9df05d02dab3ea14f2512b826d2", "kind": "equivalent", "version": "9.4.2", "label": "9.4.2", "title": "修复外连接计划节点中子表达式匹配不正确的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ddc895d09cc2bd57ff41743b7f7f287d650bc259713ee6e4223ee5527856f3e8"}, "url": "/docs/compare/?release=9.4.2#9.4.2-584e773a80c48685", "source_url": "/docs/release/9.4.2/#id-1.11.6.29.5"}, {"db_id": "b24d8d88773ff9f52c14c8afaf20339a", "kind": "equivalent", "version": "9.3.7", "label": "9.3.7", "title": "修复外连接计划节点中子表达式匹配不正确的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ddc895d09cc2bd57ff41743b7f7f287d650bc259713ee6e4223ee5527856f3e8"}, "url": "/docs/compare/?release=9.3.7#9.3.7-584e773a80c48685", "source_url": "/docs/release/9.3.7/#id-1.11.6.23.5"}, {"db_id": "1a03887d5d91fb7fb6c191215abfb4d5", "kind": "equivalent", "version": "9.2.11", "label": "9.2.11", "title": "修复外连接计划节点中子表达式匹配不正确的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ddc895d09cc2bd57ff41743b7f7f287d650bc259713ee6e4223ee5527856f3e8"}, "url": "/docs/compare/?release=9.2.11#9.2.11-584e773a80c48685", "source_url": "/docs/release/9.2.11/#id-1.11.6.18.5"}, {"db_id": "27c954bdb756e0b7f856235b8bd2fe62", "kind": "equivalent", "version": "9.1.16", "label": "9.1.16", "title": "修复外连接计划节点中子表达式匹配不正确的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ddc895d09cc2bd57ff41743b7f7f287d650bc259713ee6e4223ee5527856f3e8"}, "url": "/docs/compare/?release=9.1.16#9.1.16-584e773a80c48685", "source_url": "/docs/release/9.1.16/#id-1.11.6.13.5"}]}, {"id": "9.0.20-e40383cc7c2c6ccc", "cves": [], "html": "<p>修复 GEQO 规划器以应对其连接顺序启发式的失败（Tom Lane）</p>\n<p>已知这一疏忽会在涉及 <code>LATERAL</code> 的查询中导致 <span>“<span>failed to join all relations together</span>”</span> 错误，其他情况下也可能发生。</p>", "text": "修复 GEQO 规划器以应对其连接顺序启发式的失败（Tom Lane） 已知这一疏忽会在涉及 LATERAL 的查询中导致 “failed to join all relations together” 错误，其他情况下也可能发生。", "title": "修复 GEQO 规划器以应对其连接顺序启发式的失败", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.20/#id-1.11.6.8.6", "source_hash": "ca7621ce4654fa43efcffa86839acfbea2a9af0c7feb023512b19c55a5a4beb6", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix GEQO planner to cope with failure of its join order heuristic (Tom Lane) This oversight has been seen to lead to failed to join all relations together errors in queries involving LATERAL, and that might happen in other cases as well.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.20/changes/007", "db_id": "131c22437e0c97ce393074e1cbfb0041", "patch_ids": [], "statement_hash": "a3f0fe53c792a7539eec419e2a0fd6979fd6a48e659e6639e7da15335fbe0a06", "relations": [{"rule": 2, "type": "equivalent", "target": "06082e91ccd167eea7a0d88c4b1d116c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a3f0fe53c792a7539eec419e2a0fd6979fd6a48e659e6639e7da15335fbe0a06"}}, {"rule": 2, "type": "equivalent", "target": "238081d53ab9a86ed1b10e7f26330763", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a3f0fe53c792a7539eec419e2a0fd6979fd6a48e659e6639e7da15335fbe0a06"}}, {"rule": 2, "type": "equivalent", "target": "bdca3b4a3d6e2a066838b5a4d71efe20", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a3f0fe53c792a7539eec419e2a0fd6979fd6a48e659e6639e7da15335fbe0a06"}}, {"rule": 2, "type": "equivalent", "target": "cc7d56d2278108e6e8e168d5c132e71b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a3f0fe53c792a7539eec419e2a0fd6979fd6a48e659e6639e7da15335fbe0a06"}}], "version": "9.0.20", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "238081d53ab9a86ed1b10e7f26330763", "kind": "equivalent", "version": "9.4.2", "label": "9.4.2", "title": "修复 GEQO 规划器以应对其连接顺序启发式的失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a3f0fe53c792a7539eec419e2a0fd6979fd6a48e659e6639e7da15335fbe0a06"}, "url": "/docs/compare/?release=9.4.2#9.4.2-e40383cc7c2c6ccc", "source_url": "/docs/release/9.4.2/#id-1.11.6.29.5"}, {"db_id": "06082e91ccd167eea7a0d88c4b1d116c", "kind": "equivalent", "version": "9.3.7", "label": "9.3.7", "title": "修复 GEQO 规划器以应对其连接顺序启发式的失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a3f0fe53c792a7539eec419e2a0fd6979fd6a48e659e6639e7da15335fbe0a06"}, "url": "/docs/compare/?release=9.3.7#9.3.7-e40383cc7c2c6ccc", "source_url": "/docs/release/9.3.7/#id-1.11.6.23.5"}, {"db_id": "cc7d56d2278108e6e8e168d5c132e71b", "kind": "equivalent", "version": "9.2.11", "label": "9.2.11", "title": "修复 GEQO 规划器以应对其连接顺序启发式的失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a3f0fe53c792a7539eec419e2a0fd6979fd6a48e659e6639e7da15335fbe0a06"}, "url": "/docs/compare/?release=9.2.11#9.2.11-e40383cc7c2c6ccc", "source_url": "/docs/release/9.2.11/#id-1.11.6.18.5"}, {"db_id": "bdca3b4a3d6e2a066838b5a4d71efe20", "kind": "equivalent", "version": "9.1.16", "label": "9.1.16", "title": "修复 GEQO 规划器以应对其连接顺序启发式的失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a3f0fe53c792a7539eec419e2a0fd6979fd6a48e659e6639e7da15335fbe0a06"}, "url": "/docs/compare/?release=9.1.16#9.1.16-e40383cc7c2c6ccc", "source_url": "/docs/release/9.1.16/#id-1.11.6.13.5"}]}, {"id": "9.0.20-7e8bab9b2af34ac1", "cves": [], "html": "<p>修复<code>max_prepared_transactions</code>过小时启动阶段可能出现的死锁（Heikki Linnakangas）</p>", "text": "修复max_prepared_transactions过小时启动阶段可能出现的死锁（Heikki Linnakangas）", "title": "修复max_prepared_transactions过小时启动阶段可能出现的死锁", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.20/#id-1.11.6.8.6", "source_hash": "139b772e8ccca7af28fa17eb3f78747a42cee094286ad24f486a91ad6e5b693e", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix possible deadlock at startup when max_prepared_transactions is too small (Heikki Linnakangas)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.20/changes/008", "db_id": "b3955990a44b26057a027b675f7d1911", "patch_ids": [], "statement_hash": "508c7b77d875de684a3332648b6b69713bd64f58c9ebebc44d7603bfb6ff95d6", "relations": [{"rule": 2, "type": "equivalent", "target": "4bf63d58692331238cd24cb0be030d87", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "508c7b77d875de684a3332648b6b69713bd64f58c9ebebc44d7603bfb6ff95d6"}}, {"rule": 2, "type": "equivalent", "target": "93bfd1244962db0595b122605fcd540b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "508c7b77d875de684a3332648b6b69713bd64f58c9ebebc44d7603bfb6ff95d6"}}, {"rule": 2, "type": "equivalent", "target": "b352c9c7512d69238ea8cee1dd405742", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "508c7b77d875de684a3332648b6b69713bd64f58c9ebebc44d7603bfb6ff95d6"}}, {"rule": 2, "type": "equivalent", "target": "f717ca265213b395324ec960a97cbd7b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "508c7b77d875de684a3332648b6b69713bd64f58c9ebebc44d7603bfb6ff95d6"}}], "version": "9.0.20", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "4bf63d58692331238cd24cb0be030d87", "kind": "equivalent", "version": "9.4.2", "label": "9.4.2", "title": "修复 max_prepared_transactions 过小时启动阶段可能的死锁", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "508c7b77d875de684a3332648b6b69713bd64f58c9ebebc44d7603bfb6ff95d6"}, "url": "/docs/compare/?release=9.4.2#9.4.2-00e0f849435697aa", "source_url": "/docs/release/9.4.2/#id-1.11.6.29.5"}, {"db_id": "93bfd1244962db0595b122605fcd540b", "kind": "equivalent", "version": "9.3.7", "label": "9.3.7", "title": "修复max_prepared_transactions过小时启动阶段可能出现的死锁", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "508c7b77d875de684a3332648b6b69713bd64f58c9ebebc44d7603bfb6ff95d6"}, "url": "/docs/compare/?release=9.3.7#9.3.7-7e8bab9b2af34ac1", "source_url": "/docs/release/9.3.7/#id-1.11.6.23.5"}, {"db_id": "f717ca265213b395324ec960a97cbd7b", "kind": "equivalent", "version": "9.2.11", "label": "9.2.11", "title": "修复max_prepared_transactions过小时启动阶段可能出现的死锁", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "508c7b77d875de684a3332648b6b69713bd64f58c9ebebc44d7603bfb6ff95d6"}, "url": "/docs/compare/?release=9.2.11#9.2.11-7e8bab9b2af34ac1", "source_url": "/docs/release/9.2.11/#id-1.11.6.18.5"}, {"db_id": "b352c9c7512d69238ea8cee1dd405742", "kind": "equivalent", "version": "9.1.16", "label": "9.1.16", "title": "修复max_prepared_transactions过小时启动阶段可能出现的死锁", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "508c7b77d875de684a3332648b6b69713bd64f58c9ebebc44d7603bfb6ff95d6"}, "url": "/docs/compare/?release=9.1.16#9.1.16-7e8bab9b2af34ac1", "source_url": "/docs/release/9.1.16/#id-1.11.6.13.5"}]}, {"id": "9.0.20-3e07853b7651185e", "cves": [], "html": "<p>时间线切换后不再归档无用的预分配 WAL 文件（Heikki Linnakangas）</p>", "text": "时间线切换后不再归档无用的预分配 WAL 文件（Heikki Linnakangas）", "title": "时间线切换后不再归档无用的预分配 WAL 文件", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.20/#id-1.11.6.8.6", "source_hash": "46c1223fd68bbeb166cb2a1a8a9d103165ddfb81000aa2b5946352238043e184", "section_path": ["变更"], "commit_groups": [], "identity_text": "Don't archive useless preallocated WAL files after a timeline switch (Heikki Linnakangas)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.20/changes/009", "db_id": "c5dda7c8fc9aa6f43893a488642ffe66", "patch_ids": [], "statement_hash": "aa09957b207f8d4b4d111cbcbd72a51bd7ea633c5cd38e4baeb77deb45102e4f", "relations": [{"rule": 2, "type": "equivalent", "target": "1398ce5b2512930c2108ae12ee998917", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "aa09957b207f8d4b4d111cbcbd72a51bd7ea633c5cd38e4baeb77deb45102e4f"}}, {"rule": 2, "type": "equivalent", "target": "5a3253a10ef49a3749debaf9c0957ba2", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "aa09957b207f8d4b4d111cbcbd72a51bd7ea633c5cd38e4baeb77deb45102e4f"}}, {"rule": 2, "type": "equivalent", "target": "7daa4b478dbdeeb387957ac183e4a98f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "aa09957b207f8d4b4d111cbcbd72a51bd7ea633c5cd38e4baeb77deb45102e4f"}}, {"rule": 2, "type": "equivalent", "target": "ccce4b2d2be7c7761b8a825990e2555b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "aa09957b207f8d4b4d111cbcbd72a51bd7ea633c5cd38e4baeb77deb45102e4f"}}], "version": "9.0.20", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "ccce4b2d2be7c7761b8a825990e2555b", "kind": "equivalent", "version": "9.4.2", "label": "9.4.2", "title": "时间线切换后不再归档无用的预分配 WAL 文件", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "aa09957b207f8d4b4d111cbcbd72a51bd7ea633c5cd38e4baeb77deb45102e4f"}, "url": "/docs/compare/?release=9.4.2#9.4.2-3e07853b7651185e", "source_url": "/docs/release/9.4.2/#id-1.11.6.29.5"}, {"db_id": "7daa4b478dbdeeb387957ac183e4a98f", "kind": "equivalent", "version": "9.3.7", "label": "9.3.7", "title": "时间线切换后不再归档无用的预分配 WAL 文件", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "aa09957b207f8d4b4d111cbcbd72a51bd7ea633c5cd38e4baeb77deb45102e4f"}, "url": "/docs/compare/?release=9.3.7#9.3.7-3e07853b7651185e", "source_url": "/docs/release/9.3.7/#id-1.11.6.23.5"}, {"db_id": "5a3253a10ef49a3749debaf9c0957ba2", "kind": "equivalent", "version": "9.2.11", "label": "9.2.11", "title": "时间线切换后不再归档无用的预分配 WAL 文件", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "aa09957b207f8d4b4d111cbcbd72a51bd7ea633c5cd38e4baeb77deb45102e4f"}, "url": "/docs/compare/?release=9.2.11#9.2.11-3e07853b7651185e", "source_url": "/docs/release/9.2.11/#id-1.11.6.18.5"}, {"db_id": "1398ce5b2512930c2108ae12ee998917", "kind": "equivalent", "version": "9.1.16", "label": "9.1.16", "title": "时间线切换后不再归档无用的预分配 WAL 文件", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "aa09957b207f8d4b4d111cbcbd72a51bd7ea633c5cd38e4baeb77deb45102e4f"}, "url": "/docs/compare/?release=9.1.16#9.1.16-3e07853b7651185e", "source_url": "/docs/release/9.1.16/#id-1.11.6.13.5"}]}, {"id": "9.0.20-3ffb326bf3e1e64b", "cves": [], "html": "<p>避免 <span>“<span>cannot GetMultiXactIdMembers() during recovery</span>”</span> 错误（Álvaro Herrera）</p>", "text": "避免 “cannot GetMultiXactIdMembers() during recovery” 错误（Álvaro Herrera）", "title": "避免 “cannot GetMultiXactIdMembers() during recovery” 错误", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.20/#id-1.11.6.8.6", "source_hash": "221a78374a8d58eecae0765ed3af58d3937c113c29a1034b6d1699304eb9f53a", "section_path": ["变更"], "commit_groups": [], "identity_text": "Avoid cannot GetMultiXactIdMembers() during recovery error (Álvaro Herrera)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.20/changes/010", "db_id": "113efb83dc4be57c14177ee3c4f87d3f", "patch_ids": [], "statement_hash": "adc2b8f5a6510d260e4a932e0b1f35f8ebf0616cd3429327267da27ef7d2041c", "relations": [{"rule": 2, "type": "equivalent", "target": "39a8b001d927f9560847de869845137d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "adc2b8f5a6510d260e4a932e0b1f35f8ebf0616cd3429327267da27ef7d2041c"}}, {"rule": 2, "type": "equivalent", "target": "c7de408039beda884794c15a760d92ff", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "adc2b8f5a6510d260e4a932e0b1f35f8ebf0616cd3429327267da27ef7d2041c"}}], "version": "9.0.20", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "c7de408039beda884794c15a760d92ff", "kind": "equivalent", "version": "9.2.11", "label": "9.2.11", "title": "避免“cannot GetMultiXactIdMembers() during recovery”错误", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "adc2b8f5a6510d260e4a932e0b1f35f8ebf0616cd3429327267da27ef7d2041c"}, "url": "/docs/compare/?release=9.2.11#9.2.11-9c6c453c6668e98d", "source_url": "/docs/release/9.2.11/#id-1.11.6.18.5"}, {"db_id": "39a8b001d927f9560847de869845137d", "kind": "equivalent", "version": "9.1.16", "label": "9.1.16", "title": "避免 “cannot GetMultiXactIdMembers() during recovery” 错误", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "adc2b8f5a6510d260e4a932e0b1f35f8ebf0616cd3429327267da27ef7d2041c"}, "url": "/docs/compare/?release=9.1.16#9.1.16-3ffb326bf3e1e64b", "source_url": "/docs/release/9.1.16/#id-1.11.6.13.5"}]}, {"id": "9.0.20-f7e737e703b9ed81", "cves": [], "html": "<p>崩溃之后递归地对数据目录执行 <code>fsync()</code>（Abhijit Menon-Sen、Robert Haas）</p>\n<p>这确保了若随后不久再发生崩溃时数据仍保持一致。（要有问题的话，第二次崩溃必须是系统级崩溃，而不只是数据库崩溃。）</p>", "text": "崩溃之后递归地对数据目录执行 fsync()（Abhijit Menon-Sen、Robert Haas） 这确保了若随后不久再发生崩溃时数据仍保持一致。（要有问题的话，第二次崩溃必须是系统级崩溃，而不只是数据库崩溃。）", "title": "崩溃之后递归地对数据目录执行 fsync()", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.20/#id-1.11.6.8.6", "source_hash": "fefbc5b4020a2fa84446204cbbdbf3382b2cc9eb2656cb78fcd8c8ee1bc6abb2", "section_path": ["变更"], "commit_groups": [], "identity_text": "Recursively fsync() the data directory after a crash (Abhijit Menon-Sen, Robert Haas) This ensures consistency if another crash occurs shortly later. (The second crash would have to be a system-level crash, not just a database crash, for there to be a problem.)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.20/changes/011", "db_id": "bac8f274079f5c6b205e47dda5aec2b4", "patch_ids": [], "statement_hash": "fe53ea00eaba5beb1d000ce50943a0522ad62e9df1b29ad57ddb0ed4c45efabe", "relations": [{"rule": 2, "type": "equivalent", "target": "0b945ffb0da3b0a65c72522b467e4253", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fe53ea00eaba5beb1d000ce50943a0522ad62e9df1b29ad57ddb0ed4c45efabe"}}, {"rule": 2, "type": "equivalent", "target": "a393e5ceb46cf5a5ae61e4d70c9df6b4", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fe53ea00eaba5beb1d000ce50943a0522ad62e9df1b29ad57ddb0ed4c45efabe"}}, {"rule": 2, "type": "equivalent", "target": "a53900503e7d12df84a3af58fb496e0d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fe53ea00eaba5beb1d000ce50943a0522ad62e9df1b29ad57ddb0ed4c45efabe"}}, {"rule": 2, "type": "equivalent", "target": "d840df60b5b46bc061f2307c00cbdc74", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fe53ea00eaba5beb1d000ce50943a0522ad62e9df1b29ad57ddb0ed4c45efabe"}}], "version": "9.0.20", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "0b945ffb0da3b0a65c72522b467e4253", "kind": "equivalent", "version": "9.4.2", "label": "9.4.2", "title": "崩溃之后递归地对数据目录执行 fsync()", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fe53ea00eaba5beb1d000ce50943a0522ad62e9df1b29ad57ddb0ed4c45efabe"}, "url": "/docs/compare/?release=9.4.2#9.4.2-f7e737e703b9ed81", "source_url": "/docs/release/9.4.2/#id-1.11.6.29.5"}, {"db_id": "a53900503e7d12df84a3af58fb496e0d", "kind": "equivalent", "version": "9.3.7", "label": "9.3.7", "title": "崩溃之后递归地对数据目录执行 fsync()", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fe53ea00eaba5beb1d000ce50943a0522ad62e9df1b29ad57ddb0ed4c45efabe"}, "url": "/docs/compare/?release=9.3.7#9.3.7-f7e737e703b9ed81", "source_url": "/docs/release/9.3.7/#id-1.11.6.23.5"}, {"db_id": "a393e5ceb46cf5a5ae61e4d70c9df6b4", "kind": "equivalent", "version": "9.2.11", "label": "9.2.11", "title": "崩溃之后递归地对数据目录执行 fsync()", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fe53ea00eaba5beb1d000ce50943a0522ad62e9df1b29ad57ddb0ed4c45efabe"}, "url": "/docs/compare/?release=9.2.11#9.2.11-f7e737e703b9ed81", "source_url": "/docs/release/9.2.11/#id-1.11.6.18.5"}, {"db_id": "d840df60b5b46bc061f2307c00cbdc74", "kind": "equivalent", "version": "9.1.16", "label": "9.1.16", "title": "崩溃之后递归地对数据目录执行 fsync()", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fe53ea00eaba5beb1d000ce50943a0522ad62e9df1b29ad57ddb0ed4c45efabe"}, "url": "/docs/compare/?release=9.1.16#9.1.16-f7e737e703b9ed81", "source_url": "/docs/release/9.1.16/#id-1.11.6.13.5"}]}, {"id": "9.0.20-04230eb45851aa99", "cves": [], "html": "<p>修复自动清理启动器在收到 SIGTERM 之后发生错误时可能无法关闭的问题（Álvaro Herrera）</p>", "text": "修复自动清理启动器在收到 SIGTERM 之后发生错误时可能无法关闭的问题（Álvaro Herrera）", "title": "修复自动清理启动器在收到 SIGTERM 之后发生错误时可能无法关闭的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.20/#id-1.11.6.8.6", "source_hash": "40e079db99c36279043e4f870e5661f0373518e774977e30d625c973a84387df", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix autovacuum launcher's possible failure to shut down, if an error occurs after it receives SIGTERM (Álvaro Herrera)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.20/changes/012", "db_id": "7164c644b697a169c37cc7ac895f0c63", "patch_ids": [], "statement_hash": "337d9fed9d6d39509deb19901b075af3e14f8a93bcb5b00c82c8e8a82bf8008d", "relations": [{"rule": 2, "type": "equivalent", "target": "2907434b67c5e663b2cec9768758c7cd", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "337d9fed9d6d39509deb19901b075af3e14f8a93bcb5b00c82c8e8a82bf8008d"}}, {"rule": 2, "type": "equivalent", "target": "2bebaa5b592740bad166a98b77c44a39", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "337d9fed9d6d39509deb19901b075af3e14f8a93bcb5b00c82c8e8a82bf8008d"}}, {"rule": 2, "type": "equivalent", "target": "3633176e64e976754643f60fe3720561", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "337d9fed9d6d39509deb19901b075af3e14f8a93bcb5b00c82c8e8a82bf8008d"}}, {"rule": 2, "type": "equivalent", "target": "fec34da65d0270a1dbb0ac428c81209e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "337d9fed9d6d39509deb19901b075af3e14f8a93bcb5b00c82c8e8a82bf8008d"}}], "version": "9.0.20", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "2bebaa5b592740bad166a98b77c44a39", "kind": "equivalent", "version": "9.4.2", "label": "9.4.2", "title": "修复自动清理启动器在收到 SIGTERM 之后发生错误时可能无法关闭的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "337d9fed9d6d39509deb19901b075af3e14f8a93bcb5b00c82c8e8a82bf8008d"}, "url": "/docs/compare/?release=9.4.2#9.4.2-04230eb45851aa99", "source_url": "/docs/release/9.4.2/#id-1.11.6.29.5"}, {"db_id": "fec34da65d0270a1dbb0ac428c81209e", "kind": "equivalent", "version": "9.3.7", "label": "9.3.7", "title": "修复自动清理启动器在收到 SIGTERM 之后发生错误时可能无法关闭的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "337d9fed9d6d39509deb19901b075af3e14f8a93bcb5b00c82c8e8a82bf8008d"}, "url": "/docs/compare/?release=9.3.7#9.3.7-04230eb45851aa99", "source_url": "/docs/release/9.3.7/#id-1.11.6.23.5"}, {"db_id": "3633176e64e976754643f60fe3720561", "kind": "equivalent", "version": "9.2.11", "label": "9.2.11", "title": "修复自动清理启动器在收到 SIGTERM 之后发生错误时可能无法关闭的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "337d9fed9d6d39509deb19901b075af3e14f8a93bcb5b00c82c8e8a82bf8008d"}, "url": "/docs/compare/?release=9.2.11#9.2.11-04230eb45851aa99", "source_url": "/docs/release/9.2.11/#id-1.11.6.18.5"}, {"db_id": "2907434b67c5e663b2cec9768758c7cd", "kind": "equivalent", "version": "9.1.16", "label": "9.1.16", "title": "修复自动清理启动器在收到 SIGTERM 之后发生错误时可能无法关闭的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "337d9fed9d6d39509deb19901b075af3e14f8a93bcb5b00c82c8e8a82bf8008d"}, "url": "/docs/compare/?release=9.1.16#9.1.16-04230eb45851aa99", "source_url": "/docs/release/9.1.16/#id-1.11.6.13.5"}]}, {"id": "9.0.20-6a88d9655a7c43f8", "cves": [], "html": "<p>处理 <code>LockBufferForCleanup()</code> 中的意外信号（Andres Freund）</p>\n<p>这一疏忽可能导致有关 <span>“<span>multiple backends attempting to wait for pincount 1</span>”</span> 的虚假错误。</p>", "text": "处理 LockBufferForCleanup() 中的意外信号（Andres Freund） 这一疏忽可能导致有关 “multiple backends attempting to wait for pincount 1” 的虚假错误。", "title": "处理 LockBufferForCleanup() 中的意外信号", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.20/#id-1.11.6.8.6", "source_hash": "6788531a7a1baa66cf48dc5cdfab3f6c1607b20fdaae9b7201c0329c90661aca", "section_path": ["变更"], "commit_groups": [], "identity_text": "Cope with unexpected signals in LockBufferForCleanup() (Andres Freund) This oversight could result in spurious errors about multiple backends attempting to wait for pincount 1.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.20/changes/013", "db_id": "5a96819f7c7463d771611df11984338d", "patch_ids": [], "statement_hash": "1ef3bbf2ca81c00533d8802dcf24c987b766bc87054fc51843db44fa6e4cb875", "relations": [{"rule": 2, "type": "equivalent", "target": "7298d999afc5a3fbaf35a51719b74a83", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1ef3bbf2ca81c00533d8802dcf24c987b766bc87054fc51843db44fa6e4cb875"}}, {"rule": 2, "type": "equivalent", "target": "ab0756bc9cc77def5e1593a352093d53", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1ef3bbf2ca81c00533d8802dcf24c987b766bc87054fc51843db44fa6e4cb875"}}, {"rule": 2, "type": "equivalent", "target": "c8c12ec0f614d56016653efc7a6686e4", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1ef3bbf2ca81c00533d8802dcf24c987b766bc87054fc51843db44fa6e4cb875"}}, {"rule": 2, "type": "equivalent", "target": "ffd314040e912cd01e38f715e25a9398", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1ef3bbf2ca81c00533d8802dcf24c987b766bc87054fc51843db44fa6e4cb875"}}], "version": "9.0.20", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "c8c12ec0f614d56016653efc7a6686e4", "kind": "equivalent", "version": "9.4.2", "label": "9.4.2", "title": "处理 LockBufferForCleanup() 中的意外信号", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1ef3bbf2ca81c00533d8802dcf24c987b766bc87054fc51843db44fa6e4cb875"}, "url": "/docs/compare/?release=9.4.2#9.4.2-6a88d9655a7c43f8", "source_url": "/docs/release/9.4.2/#id-1.11.6.29.5"}, {"db_id": "ffd314040e912cd01e38f715e25a9398", "kind": "equivalent", "version": "9.3.7", "label": "9.3.7", "title": "处理 LockBufferForCleanup() 中的意外信号", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1ef3bbf2ca81c00533d8802dcf24c987b766bc87054fc51843db44fa6e4cb875"}, "url": "/docs/compare/?release=9.3.7#9.3.7-6a88d9655a7c43f8", "source_url": "/docs/release/9.3.7/#id-1.11.6.23.5"}, {"db_id": "7298d999afc5a3fbaf35a51719b74a83", "kind": "equivalent", "version": "9.2.11", "label": "9.2.11", "title": "处理 LockBufferForCleanup() 中的意外信号", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1ef3bbf2ca81c00533d8802dcf24c987b766bc87054fc51843db44fa6e4cb875"}, "url": "/docs/compare/?release=9.2.11#9.2.11-6a88d9655a7c43f8", "source_url": "/docs/release/9.2.11/#id-1.11.6.18.5"}, {"db_id": "ab0756bc9cc77def5e1593a352093d53", "kind": "equivalent", "version": "9.1.16", "label": "9.1.16", "title": "处理 LockBufferForCleanup() 中的意外信号", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1ef3bbf2ca81c00533d8802dcf24c987b766bc87054fc51843db44fa6e4cb875"}, "url": "/docs/compare/?release=9.1.16#9.1.16-6a88d9655a7c43f8", "source_url": "/docs/release/9.1.16/#id-1.11.6.13.5"}]}, {"id": "9.0.20-6a99dc05b3b64c84", "cves": [], "html": "<p>就用户而言是只读的事务，在提交期间不再等待 WAL 刷写或同步复制（Andres Freund）</p>\n<p>此前，由于 HOT 页清理而写入了 WAL 的事务在提交时可能出现延迟，导致不良影响，例如所有同步副本都停机时会话在启动时卡住。还观察到使用同步复制时会话卡在追赶中断处理中；此修复也将解决该问题。</p>", "text": "就用户而言是只读的事务，在提交期间不再等待 WAL 刷写或同步复制（Andres Freund） 此前，由于 HOT 页清理而写入了 WAL 的事务在提交时可能出现延迟，导致不良影响，例如所有同步副本都停机时会话在启动时卡住。还观察到使用同步复制时会话卡在追赶中断处理中；此修复也将解决该问题。", "title": "就用户而言是只读的事务，在提交期间不再等待 WAL 刷写或同步复制", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.20/#id-1.11.6.8.6", "source_hash": "89afd6faa304af33ef0fad396d6bf88131aae341163cdadf3366c3c10f693a59", "section_path": ["变更"], "commit_groups": [], "identity_text": "Avoid waiting for WAL flush or synchronous replication during commit of a transaction that was read-only so far as the user is concerned (Andres Freund) Previously, a delay could occur at commit in transactions that had written WAL due to HOT page pruning, leading to undesirable effects such as sessions getting stuck at startup if all synchronous replicas are down. Sessions have also been observed to get stuck in catchup interrupt processing when using synchronous replication; this will fix that problem as well.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.20/changes/014", "db_id": "1f55018574827d62eaa0a7d02c06d428", "patch_ids": [], "statement_hash": "7fe6fb7b909d60369a5cf82fd5dfa3aa24fa4924835fd1082b531abd3951b0fa", "relations": [{"rule": 2, "type": "equivalent", "target": "1703eb6a3d2dde2da387f41e5b6db0ae", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7fe6fb7b909d60369a5cf82fd5dfa3aa24fa4924835fd1082b531abd3951b0fa"}}, {"rule": 2, "type": "equivalent", "target": "4ef86d5ef84925aa1a6556589c580f2a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7fe6fb7b909d60369a5cf82fd5dfa3aa24fa4924835fd1082b531abd3951b0fa"}}, {"rule": 2, "type": "equivalent", "target": "5fca350a779e22fb595a98f3e656d8f5", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7fe6fb7b909d60369a5cf82fd5dfa3aa24fa4924835fd1082b531abd3951b0fa"}}, {"rule": 2, "type": "equivalent", "target": "81e902dcbd700041abb5f86d9aad8043", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7fe6fb7b909d60369a5cf82fd5dfa3aa24fa4924835fd1082b531abd3951b0fa"}}], "version": "9.0.20", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "4ef86d5ef84925aa1a6556589c580f2a", "kind": "equivalent", "version": "9.4.2", "label": "9.4.2", "title": "就用户而言是只读的事务，在提交期间不再等待 WAL 刷写或同步复制", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7fe6fb7b909d60369a5cf82fd5dfa3aa24fa4924835fd1082b531abd3951b0fa"}, "url": "/docs/compare/?release=9.4.2#9.4.2-6a99dc05b3b64c84", "source_url": "/docs/release/9.4.2/#id-1.11.6.29.5"}, {"db_id": "5fca350a779e22fb595a98f3e656d8f5", "kind": "equivalent", "version": "9.3.7", "label": "9.3.7", "title": "就用户而言是只读的事务，在提交期间不再等待 WAL 刷写或同步复制", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7fe6fb7b909d60369a5cf82fd5dfa3aa24fa4924835fd1082b531abd3951b0fa"}, "url": "/docs/compare/?release=9.3.7#9.3.7-6a99dc05b3b64c84", "source_url": "/docs/release/9.3.7/#id-1.11.6.23.5"}, {"db_id": "1703eb6a3d2dde2da387f41e5b6db0ae", "kind": "equivalent", "version": "9.2.11", "label": "9.2.11", "title": "就用户而言是只读的事务，在提交期间不再等待 WAL 刷写或同步复制", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7fe6fb7b909d60369a5cf82fd5dfa3aa24fa4924835fd1082b531abd3951b0fa"}, "url": "/docs/compare/?release=9.2.11#9.2.11-6a99dc05b3b64c84", "source_url": "/docs/release/9.2.11/#id-1.11.6.18.5"}, {"db_id": "81e902dcbd700041abb5f86d9aad8043", "kind": "equivalent", "version": "9.1.16", "label": "9.1.16", "title": "就用户而言是只读的事务，在提交期间不再等待 WAL 刷写或同步复制", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7fe6fb7b909d60369a5cf82fd5dfa3aa24fa4924835fd1082b531abd3951b0fa"}, "url": "/docs/compare/?release=9.1.16#9.1.16-6a99dc05b3b64c84", "source_url": "/docs/release/9.1.16/#id-1.11.6.13.5"}]}, {"id": "9.0.20-b154b5454ae82db8", "cves": [], "html": "<p>修复在临时表上操作哈希索引时崩溃的问题（Heikki Linnakangas）</p>", "text": "修复在临时表上操作哈希索引时崩溃的问题（Heikki Linnakangas）", "title": "修复在临时表上操作哈希索引时崩溃的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.20/#id-1.11.6.8.6", "source_hash": "de25ca846d7b70b4057bda77f404ce7e1af23129e488ecf9218dd43d7ffda947", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix crash when manipulating hash indexes on temporary tables (Heikki Linnakangas)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.20/changes/015", "db_id": "bd193a101e0b4aa66a0dc0f072cb3480", "patch_ids": [], "statement_hash": "4aceca7f709f56ca1d1642cd6ca107476d6895ea412e528a794ea25af4de9303", "relations": [{"rule": 2, "type": "equivalent", "target": "238753d97f89f975fe687a5e18363b20", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4aceca7f709f56ca1d1642cd6ca107476d6895ea412e528a794ea25af4de9303"}}, {"rule": 2, "type": "equivalent", "target": "64efb7a2859ce882c54f6fc3fa5d8c7d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4aceca7f709f56ca1d1642cd6ca107476d6895ea412e528a794ea25af4de9303"}}, {"rule": 2, "type": "equivalent", "target": "99c6bd8b24a80ae75853ce449fd73f16", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4aceca7f709f56ca1d1642cd6ca107476d6895ea412e528a794ea25af4de9303"}}, {"rule": 2, "type": "equivalent", "target": "9bb388c48f9019d84a58b271ac87c654", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4aceca7f709f56ca1d1642cd6ca107476d6895ea412e528a794ea25af4de9303"}}], "version": "9.0.20", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "238753d97f89f975fe687a5e18363b20", "kind": "equivalent", "version": "9.4.2", "label": "9.4.2", "title": "修复操作临时表上的哈希索引时的崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4aceca7f709f56ca1d1642cd6ca107476d6895ea412e528a794ea25af4de9303"}, "url": "/docs/compare/?release=9.4.2#9.4.2-4c79a54f395e3c54", "source_url": "/docs/release/9.4.2/#id-1.11.6.29.5"}, {"db_id": "64efb7a2859ce882c54f6fc3fa5d8c7d", "kind": "equivalent", "version": "9.3.7", "label": "9.3.7", "title": "修复在临时表上操作哈希索引时崩溃的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4aceca7f709f56ca1d1642cd6ca107476d6895ea412e528a794ea25af4de9303"}, "url": "/docs/compare/?release=9.3.7#9.3.7-b154b5454ae82db8", "source_url": "/docs/release/9.3.7/#id-1.11.6.23.5"}, {"db_id": "9bb388c48f9019d84a58b271ac87c654", "kind": "equivalent", "version": "9.2.11", "label": "9.2.11", "title": "修复在临时表上操作哈希索引时崩溃的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4aceca7f709f56ca1d1642cd6ca107476d6895ea412e528a794ea25af4de9303"}, "url": "/docs/compare/?release=9.2.11#9.2.11-b154b5454ae82db8", "source_url": "/docs/release/9.2.11/#id-1.11.6.18.5"}, {"db_id": "99c6bd8b24a80ae75853ce449fd73f16", "kind": "equivalent", "version": "9.1.16", "label": "9.1.16", "title": "修复在临时表上操作哈希索引时崩溃的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4aceca7f709f56ca1d1642cd6ca107476d6895ea412e528a794ea25af4de9303"}, "url": "/docs/compare/?release=9.1.16#9.1.16-b154b5454ae82db8", "source_url": "/docs/release/9.1.16/#id-1.11.6.13.5"}]}, {"id": "9.0.20-f9b4eb05d815c6fb", "cves": [], "html": "<p>修复哈希索引桶分裂期间（若其他进程正在并发修改该索引）可能失败的问题（Tom Lane）</p>", "text": "修复哈希索引桶分裂期间（若其他进程正在并发修改该索引）可能失败的问题（Tom Lane）", "title": "修复哈希索引桶分裂期间（若其他进程正在并发修改该索引）可能失败的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.20/#id-1.11.6.8.6", "source_hash": "03e33526579ad292f9f818cbf07ae7dd40ff15a313b954ecbd6de17cecf39254", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix possible failure during hash index bucket split, if other processes are modifying the index concurrently (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.20/changes/016", "db_id": "48f0785f2286d2d155fc4235fb4aae6b", "patch_ids": [], "statement_hash": "e97b06d2d0f336ebdd18f0a202d01998680c40acb62d2ea94570baa29a11dcd5", "relations": [{"rule": 2, "type": "equivalent", "target": "7e2c2ebe69963a993399b8ece8cd37b3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e97b06d2d0f336ebdd18f0a202d01998680c40acb62d2ea94570baa29a11dcd5"}}, {"rule": 2, "type": "equivalent", "target": "b306cb76f618a786cf92fa07fc25d7d1", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e97b06d2d0f336ebdd18f0a202d01998680c40acb62d2ea94570baa29a11dcd5"}}, {"rule": 2, "type": "equivalent", "target": "cf0e9f6ffc4a3cc69a511ab6fed34aac", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e97b06d2d0f336ebdd18f0a202d01998680c40acb62d2ea94570baa29a11dcd5"}}, {"rule": 2, "type": "equivalent", "target": "d0b1e0a06967f5cf81c6e17a7697e28c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e97b06d2d0f336ebdd18f0a202d01998680c40acb62d2ea94570baa29a11dcd5"}}], "version": "9.0.20", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "cf0e9f6ffc4a3cc69a511ab6fed34aac", "kind": "equivalent", "version": "9.4.2", "label": "9.4.2", "title": "修复其他进程并发修改索引时哈希索引桶分裂可能失败的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e97b06d2d0f336ebdd18f0a202d01998680c40acb62d2ea94570baa29a11dcd5"}, "url": "/docs/compare/?release=9.4.2#9.4.2-8e621cc6b697e607", "source_url": "/docs/release/9.4.2/#id-1.11.6.29.5"}, {"db_id": "b306cb76f618a786cf92fa07fc25d7d1", "kind": "equivalent", "version": "9.3.7", "label": "9.3.7", "title": "修复哈希索引桶分裂期间（若其他进程正在并发修改该索引）可能失败的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e97b06d2d0f336ebdd18f0a202d01998680c40acb62d2ea94570baa29a11dcd5"}, "url": "/docs/compare/?release=9.3.7#9.3.7-f9b4eb05d815c6fb", "source_url": "/docs/release/9.3.7/#id-1.11.6.23.5"}, {"db_id": "7e2c2ebe69963a993399b8ece8cd37b3", "kind": "equivalent", "version": "9.2.11", "label": "9.2.11", "title": "修复哈希索引桶分裂期间（若其他进程正在并发修改该索引）可能失败的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e97b06d2d0f336ebdd18f0a202d01998680c40acb62d2ea94570baa29a11dcd5"}, "url": "/docs/compare/?release=9.2.11#9.2.11-f9b4eb05d815c6fb", "source_url": "/docs/release/9.2.11/#id-1.11.6.18.5"}, {"db_id": "d0b1e0a06967f5cf81c6e17a7697e28c", "kind": "equivalent", "version": "9.1.16", "label": "9.1.16", "title": "修复哈希索引桶分裂期间（若其他进程正在并发修改该索引）可能失败的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e97b06d2d0f336ebdd18f0a202d01998680c40acb62d2ea94570baa29a11dcd5"}, "url": "/docs/compare/?release=9.1.16#9.1.16-f9b4eb05d815c6fb", "source_url": "/docs/release/9.1.16/#id-1.11.6.13.5"}]}, {"id": "9.0.20-ffa3732ae7f7e25f", "cves": [], "html": "<p>在分析索引表达式期间检查中断（Jeff Janes）</p>\n<p><code>ANALYZE</code> 会多次执行索引表达式；如果此类表达式中存在慢速函数，就希望能在此循环结束之前取消 <code>ANALYZE</code>。</p>", "text": "在分析索引表达式期间检查中断（Jeff Janes） ANALYZE 会多次执行索引表达式；如果此类表达式中存在慢速函数，就希望能在此循环结束之前取消 ANALYZE。", "title": "在分析索引表达式期间检查中断", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.20/#id-1.11.6.8.6", "source_hash": "cd3b8e508ed71dfaaa7ff63ae62514ee05a87a4dcaa9b6d88af9ea1c4a10a4b1", "section_path": ["变更"], "commit_groups": [], "identity_text": "Check for interrupts while analyzing index expressions (Jeff Janes) ANALYZE executes index expressions many times; if there are slow functions in such an expression, it's desirable to be able to cancel the ANALYZE before that loop finishes.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.20/changes/017", "db_id": "5975ba512fac6bc4408bb449ba0c2c8f", "patch_ids": [], "statement_hash": "8c8749ce60b4bcae5d1a7ad1990cec02be503466f156682e8a1eaac339a74a4c", "relations": [{"rule": 2, "type": "equivalent", "target": "517ce452235635e590a685da50366bf0", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8c8749ce60b4bcae5d1a7ad1990cec02be503466f156682e8a1eaac339a74a4c"}}, {"rule": 2, "type": "equivalent", "target": "5b9a34b5b9737fe2325169083a6316b4", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8c8749ce60b4bcae5d1a7ad1990cec02be503466f156682e8a1eaac339a74a4c"}}, {"rule": 2, "type": "equivalent", "target": "ca8b63abd73a22488bba9b2f312ddfbb", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8c8749ce60b4bcae5d1a7ad1990cec02be503466f156682e8a1eaac339a74a4c"}}, {"rule": 2, "type": "equivalent", "target": "fc23337037477fe7e3ab9fb0eaf5d9dd", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8c8749ce60b4bcae5d1a7ad1990cec02be503466f156682e8a1eaac339a74a4c"}}], "version": "9.0.20", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "517ce452235635e590a685da50366bf0", "kind": "equivalent", "version": "9.4.2", "label": "9.4.2", "title": "在分析索引表达式期间检查中断", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8c8749ce60b4bcae5d1a7ad1990cec02be503466f156682e8a1eaac339a74a4c"}, "url": "/docs/compare/?release=9.4.2#9.4.2-ffa3732ae7f7e25f", "source_url": "/docs/release/9.4.2/#id-1.11.6.29.5"}, {"db_id": "fc23337037477fe7e3ab9fb0eaf5d9dd", "kind": "equivalent", "version": "9.3.7", "label": "9.3.7", "title": "在分析索引表达式期间检查中断", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8c8749ce60b4bcae5d1a7ad1990cec02be503466f156682e8a1eaac339a74a4c"}, "url": "/docs/compare/?release=9.3.7#9.3.7-ffa3732ae7f7e25f", "source_url": "/docs/release/9.3.7/#id-1.11.6.23.5"}, {"db_id": "ca8b63abd73a22488bba9b2f312ddfbb", "kind": "equivalent", "version": "9.2.11", "label": "9.2.11", "title": "在分析索引表达式期间检查中断", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8c8749ce60b4bcae5d1a7ad1990cec02be503466f156682e8a1eaac339a74a4c"}, "url": "/docs/compare/?release=9.2.11#9.2.11-ffa3732ae7f7e25f", "source_url": "/docs/release/9.2.11/#id-1.11.6.18.5"}, {"db_id": "5b9a34b5b9737fe2325169083a6316b4", "kind": "equivalent", "version": "9.1.16", "label": "9.1.16", "title": "在分析索引表达式期间检查中断", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8c8749ce60b4bcae5d1a7ad1990cec02be503466f156682e8a1eaac339a74a4c"}, "url": "/docs/compare/?release=9.1.16#9.1.16-ffa3732ae7f7e25f", "source_url": "/docs/release/9.1.16/#id-1.11.6.13.5"}]}, {"id": "9.0.20-fd85f35343d1b9cf", "cves": [], "html": "<p>在外部服务器用户映射的对象描述字符串中加入目标服务器的名称（Álvaro Herrera）</p>", "text": "在外部服务器用户映射的对象描述字符串中加入目标服务器的名称（Álvaro Herrera）", "title": "在外部服务器用户映射的对象描述字符串中加入目标服务器的名称", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.20/#id-1.11.6.8.6", "source_hash": "036423ceb08d50328e7e960ef03c1c1f7e4df07572678692cfe90c607617dc58", "section_path": ["变更"], "commit_groups": [], "identity_text": "Add the name of the target server to object description strings for foreign-server user mappings (Álvaro Herrera)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.20/changes/018", "db_id": "cafcf7239615ae13e287fe4a0ec6c519", "patch_ids": [], "statement_hash": "e82bb0096b5d87075e1e7eb34d8576a7e349fbd2850cec3dee18c43a1b757ca5", "relations": [{"rule": 2, "type": "equivalent", "target": "2635e9a621efd20c402056c15ce14581", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e82bb0096b5d87075e1e7eb34d8576a7e349fbd2850cec3dee18c43a1b757ca5"}}, {"rule": 2, "type": "equivalent", "target": "438d356a6d062a6b50701d4d4ac668eb", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e82bb0096b5d87075e1e7eb34d8576a7e349fbd2850cec3dee18c43a1b757ca5"}}, {"rule": 2, "type": "equivalent", "target": "6a129bcf00c27d76d440dddd170b5222", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e82bb0096b5d87075e1e7eb34d8576a7e349fbd2850cec3dee18c43a1b757ca5"}}, {"rule": 2, "type": "equivalent", "target": "8fac4b063aaee1f6402977e3916d67b2", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e82bb0096b5d87075e1e7eb34d8576a7e349fbd2850cec3dee18c43a1b757ca5"}}], "version": "9.0.20", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "6a129bcf00c27d76d440dddd170b5222", "kind": "equivalent", "version": "9.4.2", "label": "9.4.2", "title": "在外部服务器用户映射的对象描述字符串中加入目标服务器的名称", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e82bb0096b5d87075e1e7eb34d8576a7e349fbd2850cec3dee18c43a1b757ca5"}, "url": "/docs/compare/?release=9.4.2#9.4.2-fd85f35343d1b9cf", "source_url": "/docs/release/9.4.2/#id-1.11.6.29.5"}, {"db_id": "438d356a6d062a6b50701d4d4ac668eb", "kind": "equivalent", "version": "9.3.7", "label": "9.3.7", "title": "在外部服务器用户映射的对象描述字符串中加入目标服务器的名称", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e82bb0096b5d87075e1e7eb34d8576a7e349fbd2850cec3dee18c43a1b757ca5"}, "url": "/docs/compare/?release=9.3.7#9.3.7-fd85f35343d1b9cf", "source_url": "/docs/release/9.3.7/#id-1.11.6.23.5"}, {"db_id": "8fac4b063aaee1f6402977e3916d67b2", "kind": "equivalent", "version": "9.2.11", "label": "9.2.11", "title": "在外部服务器用户映射的对象描述字符串中加入目标服务器的名称", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e82bb0096b5d87075e1e7eb34d8576a7e349fbd2850cec3dee18c43a1b757ca5"}, "url": "/docs/compare/?release=9.2.11#9.2.11-fd85f35343d1b9cf", "source_url": "/docs/release/9.2.11/#id-1.11.6.18.5"}, {"db_id": "2635e9a621efd20c402056c15ce14581", "kind": "equivalent", "version": "9.1.16", "label": "9.1.16", "title": "在外部服务器用户映射的对象描述字符串中加入目标服务器的名称", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e82bb0096b5d87075e1e7eb34d8576a7e349fbd2850cec3dee18c43a1b757ca5"}, "url": "/docs/compare/?release=9.1.16#9.1.16-fd85f35343d1b9cf", "source_url": "/docs/release/9.1.16/#id-1.11.6.13.5"}]}, {"id": "9.0.20-63c5acc5d3477d92", "cves": [], "html": "<p>建议在使用 Kerberos/GSSAPI/SSPI 认证时将 <code>include_realm</code> 设置为 1（Stephen Frost）</p>\n<p>不这样设置的话，来自不同领域的同名用户无法区分。目前这只是文档变更，但在 <span>PostgreSQL</span> 9.5 中它将成为默认设置。</p>", "text": "建议在使用 Kerberos/GSSAPI/SSPI 认证时将 include_realm 设置为 1（Stephen Frost） 不这样设置的话，来自不同领域的同名用户无法区分。目前这只是文档变更，但在 PostgreSQL 9.5 中它将成为默认设置。", "title": "建议在使用 Kerberos/GSSAPI/SSPI 认证时将 include_realm 设置为 1", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.20/#id-1.11.6.8.6", "source_hash": "ee079eef50e529aa15c9d23065701fc6cfca7db7339db835bd60cc010f8ad4b5", "section_path": ["变更"], "commit_groups": [], "identity_text": "Recommend setting include_realm to 1 when using Kerberos/GSSAPI/SSPI authentication (Stephen Frost) Without this, identically-named users from different realms cannot be distinguished. For the moment this is only a documentation change, but it will become the default setting in PostgreSQL 9.5.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.20/changes/019", "db_id": "68e509e66e0501cb7b3bce6adf195245", "patch_ids": [], "statement_hash": "4d312a6dbb8f3a1282c4fdb4057d998c0d840c4d88c7d158359c7c2e448cc4c6", "relations": [{"rule": 2, "type": "equivalent", "target": "7049fbf9736dd97a51c4882824ddd3c0", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4d312a6dbb8f3a1282c4fdb4057d998c0d840c4d88c7d158359c7c2e448cc4c6"}}, {"rule": 2, "type": "equivalent", "target": "94d71396bb476432bd27a130fb3080d7", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4d312a6dbb8f3a1282c4fdb4057d998c0d840c4d88c7d158359c7c2e448cc4c6"}}, {"rule": 2, "type": "equivalent", "target": "c5908043270a29e8ccec22cb9cb95842", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4d312a6dbb8f3a1282c4fdb4057d998c0d840c4d88c7d158359c7c2e448cc4c6"}}, {"rule": 2, "type": "equivalent", "target": "c9490086c3d7d2fc8b8214a2b1d219b0", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4d312a6dbb8f3a1282c4fdb4057d998c0d840c4d88c7d158359c7c2e448cc4c6"}}], "version": "9.0.20", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "7049fbf9736dd97a51c4882824ddd3c0", "kind": "equivalent", "version": "9.4.2", "label": "9.4.2", "title": "建议在使用 Kerberos/GSSAPI/SSPI 认证时将 include_realm 设置为 1", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4d312a6dbb8f3a1282c4fdb4057d998c0d840c4d88c7d158359c7c2e448cc4c6"}, "url": "/docs/compare/?release=9.4.2#9.4.2-63c5acc5d3477d92", "source_url": "/docs/release/9.4.2/#id-1.11.6.29.5"}, {"db_id": "94d71396bb476432bd27a130fb3080d7", "kind": "equivalent", "version": "9.3.7", "label": "9.3.7", "title": "建议在使用 Kerberos/GSSAPI/SSPI 认证时将 include_realm 设置为 1", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4d312a6dbb8f3a1282c4fdb4057d998c0d840c4d88c7d158359c7c2e448cc4c6"}, "url": "/docs/compare/?release=9.3.7#9.3.7-63c5acc5d3477d92", "source_url": "/docs/release/9.3.7/#id-1.11.6.23.5"}, {"db_id": "c9490086c3d7d2fc8b8214a2b1d219b0", "kind": "equivalent", "version": "9.2.11", "label": "9.2.11", "title": "建议在使用 Kerberos/GSSAPI/SSPI 认证时将 include_realm 设置为 1", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4d312a6dbb8f3a1282c4fdb4057d998c0d840c4d88c7d158359c7c2e448cc4c6"}, "url": "/docs/compare/?release=9.2.11#9.2.11-63c5acc5d3477d92", "source_url": "/docs/release/9.2.11/#id-1.11.6.18.5"}, {"db_id": "c5908043270a29e8ccec22cb9cb95842", "kind": "equivalent", "version": "9.1.16", "label": "9.1.16", "title": "建议在使用 Kerberos/GSSAPI/SSPI 认证时将 include_realm 设置为 1", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4d312a6dbb8f3a1282c4fdb4057d998c0d840c4d88c7d158359c7c2e448cc4c6"}, "url": "/docs/compare/?release=9.1.16#9.1.16-63c5acc5d3477d92", "source_url": "/docs/release/9.1.16/#id-1.11.6.13.5"}]}, {"id": "9.0.20-cfc199310123cc11", "cves": [], "html": "<p>移除将 IPv4 <code>pg_hba.conf</code> 条目匹配到 IPv4-in-IPv6 地址的代码（Tom Lane）</p>\n<p>这段应急代码于 2003 年添加，起因是当时的某些 Linux 内核会把 IPv4 连接报告为 IPv4-in-IPv6 地址。然而该逻辑在 9.0 中被意外破坏。此后没有任何现场投诉，说明它已不再需要。现在反而有报告称被破坏的代码在某些系统上导致崩溃，因此我们选择直接移除而不是修复它。（如果选择修复，将会使 IPv4 <code>pg_hba.conf</code> 条目的实际含义发生微妙且可能涉及安全性的变化，在次版本中这样做似乎并不妥当。）</p>", "text": "移除将 IPv4 pg_hba.conf 条目匹配到 IPv4-in-IPv6 地址的代码（Tom Lane） 这段应急代码于 2003 年添加，起因是当时的某些 Linux 内核会把 IPv4 连接报告为 IPv4-in-IPv6 地址。然而该逻辑在 9.0 中被意外破坏。此后没有任何现场投诉，说明它已不再需要。现在反而有报告称被破坏的代码在某些系统上导致崩溃，因此我们选择直接移除而不是修复它。（如果选择修复，将会使 IPv4 pg_hba.conf 条目的实际含义发生微妙且可能涉及安全性的变化，在次版本中这样做似乎并不妥当。）", "title": "移除将 IPv4 pg_hba.conf 条目匹配到 IPv4-in-IPv6 地址的代码", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.20/#id-1.11.6.8.6", "source_hash": "7e1e4c70fc877c72426b178657a16fa30e6c18713cb3a65ecf77fa280b07e1c4", "section_path": ["变更"], "commit_groups": [], "identity_text": "Remove code for matching IPv4 pg_hba.conf entries to IPv4-in-IPv6 addresses (Tom Lane) This hack was added in 2003 in response to a report that some Linux kernels of the time would report IPv4 connections as having IPv4-in-IPv6 addresses. However, the logic was accidentally broken in 9.0. The lack of any field complaints since then shows that it's not needed anymore. Now we have reports that the broken code causes crashes on some systems, so let's just remove it rather than fix it. (Had we chosen to fix it, that would make for a subtle and potentially security-sensitive change in the effective meaning of IPv4 pg_hba.conf entries, which does not seem like a good thing to do in minor releases.)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.20/changes/020", "db_id": "d990bd0322b6274a64b008242157b9db", "patch_ids": [], "statement_hash": "00ffe51e77acf6b358670bc0289d47f8a06df9cbab5b1472e583f5789cd5cec0", "relations": [{"rule": 2, "type": "equivalent", "target": "315b2f049a390603d743856bf7ff3f25", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "00ffe51e77acf6b358670bc0289d47f8a06df9cbab5b1472e583f5789cd5cec0"}}, {"rule": 2, "type": "equivalent", "target": "55e5271a5a31329e5dcc80f8c7f7d8b5", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "00ffe51e77acf6b358670bc0289d47f8a06df9cbab5b1472e583f5789cd5cec0"}}, {"rule": 2, "type": "equivalent", "target": "93c7cb6fd80c60bd21e2f73dfcdf77c9", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "00ffe51e77acf6b358670bc0289d47f8a06df9cbab5b1472e583f5789cd5cec0"}}, {"rule": 2, "type": "equivalent", "target": "be842d6f022a1420f9452dbf76b51575", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "00ffe51e77acf6b358670bc0289d47f8a06df9cbab5b1472e583f5789cd5cec0"}}], "version": "9.0.20", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "315b2f049a390603d743856bf7ff3f25", "kind": "equivalent", "version": "9.4.2", "label": "9.4.2", "title": "移除将 IPv4 pg_hba.conf 条目匹配到 IPv4-in-IPv6 地址的代码", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "00ffe51e77acf6b358670bc0289d47f8a06df9cbab5b1472e583f5789cd5cec0"}, "url": "/docs/compare/?release=9.4.2#9.4.2-cfc199310123cc11", "source_url": "/docs/release/9.4.2/#id-1.11.6.29.5"}, {"db_id": "be842d6f022a1420f9452dbf76b51575", "kind": "equivalent", "version": "9.3.7", "label": "9.3.7", "title": "移除将 IPv4 pg_hba.conf 条目匹配到 IPv4-in-IPv6 地址的代码", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "00ffe51e77acf6b358670bc0289d47f8a06df9cbab5b1472e583f5789cd5cec0"}, "url": "/docs/compare/?release=9.3.7#9.3.7-cfc199310123cc11", "source_url": "/docs/release/9.3.7/#id-1.11.6.23.5"}, {"db_id": "93c7cb6fd80c60bd21e2f73dfcdf77c9", "kind": "equivalent", "version": "9.2.11", "label": "9.2.11", "title": "移除将 IPv4 pg_hba.conf 条目匹配到 IPv4-in-IPv6 地址的代码", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "00ffe51e77acf6b358670bc0289d47f8a06df9cbab5b1472e583f5789cd5cec0"}, "url": "/docs/compare/?release=9.2.11#9.2.11-cfc199310123cc11", "source_url": "/docs/release/9.2.11/#id-1.11.6.18.5"}, {"db_id": "55e5271a5a31329e5dcc80f8c7f7d8b5", "kind": "equivalent", "version": "9.1.16", "label": "9.1.16", "title": "移除将 IPv4 pg_hba.conf 条目匹配到 IPv4-in-IPv6 地址的代码", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "00ffe51e77acf6b358670bc0289d47f8a06df9cbab5b1472e583f5789cd5cec0"}, "url": "/docs/compare/?release=9.1.16#9.1.16-cfc199310123cc11", "source_url": "/docs/release/9.1.16/#id-1.11.6.13.5"}]}, {"id": "9.0.20-e4ba3d9cf2f1fe41", "cves": [], "html": "<p>在 Windows 上关闭服务期间，定期向服务控制管理器发送状态更新，以防止它过早终止服务；并确保<span>pg_ctl</span>会等待关闭完成（Krystian Bigaj）</p>", "text": "在 Windows 上关闭服务期间，定期向服务控制管理器发送状态更新，以防止它过早终止服务；并确保pg_ctl会等待关闭完成（Krystian Bigaj）", "title": "在 Windows 上关闭服务期间，定期向服务控制管理器发送状态更新，以防止它过早终止服务；并确保pg_ctl会等待关闭完成", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.20/#id-1.11.6.8.6", "source_hash": "54b23dd1a7b6c27e57be2dc285a8699ea10fd050307e4e0aaeb1fb6fa8b5bd21", "section_path": ["变更"], "commit_groups": [], "identity_text": "While shutting down service on Windows, periodically send status updates to the Service Control Manager to prevent it from killing the service too soon; and ensure that pg_ctl will wait for shutdown (Krystian Bigaj)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.20/changes/021", "db_id": "d6668b99df7b79843bdb87678f3af48a", "patch_ids": [], "statement_hash": "952b4eb145e6a9745e6c84ab5159eec4d0eb9ff40d96e62626fcffa4fc1661dc", "relations": [{"rule": 2, "type": "equivalent", "target": "5f50118a61c42a6bbd7abfb11ce6d0ef", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "952b4eb145e6a9745e6c84ab5159eec4d0eb9ff40d96e62626fcffa4fc1661dc"}}, {"rule": 2, "type": "equivalent", "target": "6a0367fa3a3ea35b135054053c88081b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "952b4eb145e6a9745e6c84ab5159eec4d0eb9ff40d96e62626fcffa4fc1661dc"}}, {"rule": 2, "type": "equivalent", "target": "af1aa707cb7f644b6704a634f9a165d0", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "952b4eb145e6a9745e6c84ab5159eec4d0eb9ff40d96e62626fcffa4fc1661dc"}}, {"rule": 2, "type": "equivalent", "target": "cda54d9a90f62d45b8c486111841b44e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "952b4eb145e6a9745e6c84ab5159eec4d0eb9ff40d96e62626fcffa4fc1661dc"}}], "version": "9.0.20", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "af1aa707cb7f644b6704a634f9a165d0", "kind": "equivalent", "version": "9.4.2", "label": "9.4.2", "title": "在 Windows 上关闭服务期间，定期向服务控制管理器发送状态更新以防它过早终止服务；并确保 pg_ctl 会等待关闭完成", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "952b4eb145e6a9745e6c84ab5159eec4d0eb9ff40d96e62626fcffa4fc1661dc"}, "url": "/docs/compare/?release=9.4.2#9.4.2-eec758cfffebf426", "source_url": "/docs/release/9.4.2/#id-1.11.6.29.5"}, {"db_id": "6a0367fa3a3ea35b135054053c88081b", "kind": "equivalent", "version": "9.3.7", "label": "9.3.7", "title": "在 Windows 上关闭服务期间，定期向服务控制管理器发送状态更新，以防止它过早终止服务；并确保pg_ctl会等待关闭完成", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "952b4eb145e6a9745e6c84ab5159eec4d0eb9ff40d96e62626fcffa4fc1661dc"}, "url": "/docs/compare/?release=9.3.7#9.3.7-e4ba3d9cf2f1fe41", "source_url": "/docs/release/9.3.7/#id-1.11.6.23.5"}, {"db_id": "5f50118a61c42a6bbd7abfb11ce6d0ef", "kind": "equivalent", "version": "9.2.11", "label": "9.2.11", "title": "在 Windows 上关闭服务期间，定期向服务控制管理器发送状态更新，以防止它过早终止服务；并确保pg_ctl会等待关闭完成", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "952b4eb145e6a9745e6c84ab5159eec4d0eb9ff40d96e62626fcffa4fc1661dc"}, "url": "/docs/compare/?release=9.2.11#9.2.11-e4ba3d9cf2f1fe41", "source_url": "/docs/release/9.2.11/#id-1.11.6.18.5"}, {"db_id": "cda54d9a90f62d45b8c486111841b44e", "kind": "equivalent", "version": "9.1.16", "label": "9.1.16", "title": "在 Windows 上关闭服务期间，定期向服务控制管理器发送状态更新，以防止它过早终止服务；并确保pg_ctl会等待关闭完成", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "952b4eb145e6a9745e6c84ab5159eec4d0eb9ff40d96e62626fcffa4fc1661dc"}, "url": "/docs/compare/?release=9.1.16#9.1.16-e4ba3d9cf2f1fe41", "source_url": "/docs/release/9.1.16/#id-1.11.6.13.5"}]}, {"id": "9.0.20-88f3422e6619fc15", "cves": [], "html": "<p>降低使用<span>libpq</span>非阻塞模式时网络死锁的风险（Heikki Linnakangas）</p>\n<p>在发送大量数据时，定期排空输入缓冲区很重要，以防服务器已发送足够的响应数据导致其在输出上阻塞。（典型场景是服务器在<code>COPY FROM STDIN</code>期间发送一连串 NOTICE 消息。）这在普通阻塞模式下工作正常，但在非阻塞模式下则不然。我们修改了<span>libpq</span>，使其在可能时顺便排空输入，但要完全防御此问题需要应用程序配合：应用程序应同时监视套接字的读就绪和写就绪条件，并确保在读就绪时调用<code>PQconsumeInput()</code>。</p>", "text": "降低使用libpq非阻塞模式时网络死锁的风险（Heikki Linnakangas） 在发送大量数据时，定期排空输入缓冲区很重要，以防服务器已发送足够的响应数据导致其在输出上阻塞。（典型场景是服务器在COPY FROM STDIN期间发送一连串 NOTICE 消息。）这在普通阻塞模式下工作正常，但在非阻塞模式下则不然。我们修改了libpq，使其在可能时顺便排空输入，但要完全防御此问题需要应用程序配合：应用程序应同时监视套接字的读就绪和写就绪条件，并确保在读就绪时调用PQconsumeInput()。", "title": "降低使用libpq非阻塞模式时网络死锁的风险", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.20/#id-1.11.6.8.6", "source_hash": "15d985762ff68b28f1742b34201d7804e2cead79e40866b8318f644f10ae6065", "section_path": ["变更"], "commit_groups": [], "identity_text": "Reduce risk of network deadlock when using libpq's non-blocking mode (Heikki Linnakangas) When sending large volumes of data, it's important to drain the input buffer every so often, in case the server has sent enough response data to cause it to block on output. (A typical scenario is that the server is sending a stream of NOTICE messages during COPY FROM STDIN.) This worked properly in the normal blocking mode, but not so much in non-blocking mode. We've modified libpq to opportunistically drain input when it can, but a full defense against this problem requires application cooperation: the application should watch for socket read-ready as well as write-ready conditions, and be sure to call PQconsumeInput() upon read-ready.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.20/changes/022", "db_id": "2c882ae1699ea8b2abd06940bf24f98a", "patch_ids": [], "statement_hash": "dccd34a978cc19a1e6ab89ce309085702a8cadad1f2296788b6de88cf436940d", "relations": [{"rule": 2, "type": "equivalent", "target": "498fc7d668d0aa8b1bc6d1db737152e6", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dccd34a978cc19a1e6ab89ce309085702a8cadad1f2296788b6de88cf436940d"}}, {"rule": 2, "type": "equivalent", "target": "598e1b253718bbf1c3282c8fc9b516a1", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dccd34a978cc19a1e6ab89ce309085702a8cadad1f2296788b6de88cf436940d"}}, {"rule": 2, "type": "equivalent", "target": "9039c22f9f4b61c617b21747e614cfc7", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dccd34a978cc19a1e6ab89ce309085702a8cadad1f2296788b6de88cf436940d"}}, {"rule": 2, "type": "equivalent", "target": "f899cf33925a19a1df8247d18d84d6c3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dccd34a978cc19a1e6ab89ce309085702a8cadad1f2296788b6de88cf436940d"}}], "version": "9.0.20", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "f899cf33925a19a1df8247d18d84d6c3", "kind": "equivalent", "version": "9.4.2", "label": "9.4.2", "title": "降低使用libpq非阻塞模式时网络死锁的风险", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dccd34a978cc19a1e6ab89ce309085702a8cadad1f2296788b6de88cf436940d"}, "url": "/docs/compare/?release=9.4.2#9.4.2-88f3422e6619fc15", "source_url": "/docs/release/9.4.2/#id-1.11.6.29.5"}, {"db_id": "9039c22f9f4b61c617b21747e614cfc7", "kind": "equivalent", "version": "9.3.7", "label": "9.3.7", "title": "降低使用libpq非阻塞模式时网络死锁的风险", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dccd34a978cc19a1e6ab89ce309085702a8cadad1f2296788b6de88cf436940d"}, "url": "/docs/compare/?release=9.3.7#9.3.7-88f3422e6619fc15", "source_url": "/docs/release/9.3.7/#id-1.11.6.23.5"}, {"db_id": "598e1b253718bbf1c3282c8fc9b516a1", "kind": "equivalent", "version": "9.2.11", "label": "9.2.11", "title": "降低使用libpq非阻塞模式时网络死锁的风险", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dccd34a978cc19a1e6ab89ce309085702a8cadad1f2296788b6de88cf436940d"}, "url": "/docs/compare/?release=9.2.11#9.2.11-88f3422e6619fc15", "source_url": "/docs/release/9.2.11/#id-1.11.6.18.5"}, {"db_id": "498fc7d668d0aa8b1bc6d1db737152e6", "kind": "equivalent", "version": "9.1.16", "label": "9.1.16", "title": "降低使用libpq非阻塞模式时网络死锁的风险", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dccd34a978cc19a1e6ab89ce309085702a8cadad1f2296788b6de88cf436940d"}, "url": "/docs/compare/?release=9.1.16#9.1.16-88f3422e6619fc15", "source_url": "/docs/release/9.1.16/#id-1.11.6.13.5"}]}, {"id": "9.0.20-d8f3430f52e99661", "cves": [], "html": "<p>修复<span>ecpg</span>中的数组处理（Michael Meskes）</p>", "text": "修复ecpg中的数组处理（Michael Meskes）", "title": "修复ecpg中的数组处理", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.20/#id-1.11.6.8.6", "source_hash": "b8ece0c2c945bce7c64031c2f9b7ef4881f818bf8148ddf8f227aac218d73d28", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix array handling in ecpg (Michael Meskes)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.20/changes/023", "db_id": "c3fa157509c3cf0cb743b44aac5a8bcf", "patch_ids": [], "statement_hash": "420293c570790548a81057536c1fa185df07534cc86fc2708c9467d360a5a19b", "relations": [{"rule": 2, "type": "equivalent", "target": "03222f3e547f37dd099b40c61bc90005", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "420293c570790548a81057536c1fa185df07534cc86fc2708c9467d360a5a19b"}}, {"rule": 2, "type": "equivalent", "target": "5270ee966420c546d77693211747865a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "420293c570790548a81057536c1fa185df07534cc86fc2708c9467d360a5a19b"}}, {"rule": 2, "type": "equivalent", "target": "75e6a09d7c33c7cd877ff01c3199e91b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "420293c570790548a81057536c1fa185df07534cc86fc2708c9467d360a5a19b"}}, {"rule": 2, "type": "equivalent", "target": "9e1a1a4055145909d00a4b6f8b28bdd3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "420293c570790548a81057536c1fa185df07534cc86fc2708c9467d360a5a19b"}}], "version": "9.0.20", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "75e6a09d7c33c7cd877ff01c3199e91b", "kind": "equivalent", "version": "9.4.2", "label": "9.4.2", "title": "修复 ecpg 中的数组处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "420293c570790548a81057536c1fa185df07534cc86fc2708c9467d360a5a19b"}, "url": "/docs/compare/?release=9.4.2#9.4.2-12d6b2c443b62fce", "source_url": "/docs/release/9.4.2/#id-1.11.6.29.5"}, {"db_id": "03222f3e547f37dd099b40c61bc90005", "kind": "equivalent", "version": "9.3.7", "label": "9.3.7", "title": "修复ecpg中的数组处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "420293c570790548a81057536c1fa185df07534cc86fc2708c9467d360a5a19b"}, "url": "/docs/compare/?release=9.3.7#9.3.7-d8f3430f52e99661", "source_url": "/docs/release/9.3.7/#id-1.11.6.23.5"}, {"db_id": "5270ee966420c546d77693211747865a", "kind": "equivalent", "version": "9.2.11", "label": "9.2.11", "title": "修复ecpg中的数组处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "420293c570790548a81057536c1fa185df07534cc86fc2708c9467d360a5a19b"}, "url": "/docs/compare/?release=9.2.11#9.2.11-d8f3430f52e99661", "source_url": "/docs/release/9.2.11/#id-1.11.6.18.5"}, {"db_id": "9e1a1a4055145909d00a4b6f8b28bdd3", "kind": "equivalent", "version": "9.1.16", "label": "9.1.16", "title": "修复ecpg中的数组处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "420293c570790548a81057536c1fa185df07534cc86fc2708c9467d360a5a19b"}, "url": "/docs/compare/?release=9.1.16#9.1.16-d8f3430f52e99661", "source_url": "/docs/release/9.1.16/#id-1.11.6.13.5"}]}, {"id": "9.0.20-c2b0e63e91a475bd", "cves": [], "html": "<p>修复<span>psql</span>以合理处理作为<code>\\connect</code>第一个参数的 URI 和 conninfo 串（David Fetter、Andrew Dunstan, Álvaro Herrera）</p>\n<p>这一语法已被接受（但未写入文档）很长时间，但此前某些参数可能取自旧连接而非给定字符串，这被认为是不合适的。</p>", "text": "修复psql以合理处理作为\\connect第一个参数的 URI 和 conninfo 串（David Fetter、Andrew Dunstan, Álvaro Herrera） 这一语法已被接受（但未写入文档）很长时间，但此前某些参数可能取自旧连接而非给定字符串，这被认为是不合适的。", "title": "修复psql以合理处理作为\\connect第一个参数的 URI 和 conninfo 串", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.20/#id-1.11.6.8.6", "source_hash": "9d630b9634b001b7b54fff34d24526273de4f3704a0af063a5a19accecaa9395", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix psql to sanely handle URIs and conninfo strings as the first parameter to \\connect (David Fetter, Andrew Dunstan, Álvaro Herrera) This syntax has been accepted (but undocumented) for a long time, but previously some parameters might be taken from the old connection instead of the given string, which was agreed to be undesirable.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.20/changes/024", "db_id": "6f12320508c57791ad764a622d299c0f", "patch_ids": [], "statement_hash": "3eb2388095e380964329c047b09e86551cf29d5987b13c0c70ffb0ef1bd83c4d", "relations": [{"rule": 2, "type": "equivalent", "target": "1ba3837708d73f5af49dc354077ff447", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3eb2388095e380964329c047b09e86551cf29d5987b13c0c70ffb0ef1bd83c4d"}}, {"rule": 2, "type": "equivalent", "target": "52da617b8596bc4937f27599b5b78eab", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3eb2388095e380964329c047b09e86551cf29d5987b13c0c70ffb0ef1bd83c4d"}}, {"rule": 2, "type": "equivalent", "target": "b1fa934bb2dd5f07cb00fce7003c0399", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3eb2388095e380964329c047b09e86551cf29d5987b13c0c70ffb0ef1bd83c4d"}}, {"rule": 2, "type": "equivalent", "target": "f16bd4c2fd15211edf741ef3a1f6c6a9", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3eb2388095e380964329c047b09e86551cf29d5987b13c0c70ffb0ef1bd83c4d"}}], "version": "9.0.20", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "b1fa934bb2dd5f07cb00fce7003c0399", "kind": "equivalent", "version": "9.4.2", "label": "9.4.2", "title": "修复psql以合理处理作为\\connect第一个参数的 URI 和 conninfo 串", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3eb2388095e380964329c047b09e86551cf29d5987b13c0c70ffb0ef1bd83c4d"}, "url": "/docs/compare/?release=9.4.2#9.4.2-c2b0e63e91a475bd", "source_url": "/docs/release/9.4.2/#id-1.11.6.29.5"}, {"db_id": "52da617b8596bc4937f27599b5b78eab", "kind": "equivalent", "version": "9.3.7", "label": "9.3.7", "title": "修复psql以合理处理作为\\connect第一个参数的 URI 和 conninfo 串", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3eb2388095e380964329c047b09e86551cf29d5987b13c0c70ffb0ef1bd83c4d"}, "url": "/docs/compare/?release=9.3.7#9.3.7-c2b0e63e91a475bd", "source_url": "/docs/release/9.3.7/#id-1.11.6.23.5"}, {"db_id": "1ba3837708d73f5af49dc354077ff447", "kind": "equivalent", "version": "9.2.11", "label": "9.2.11", "title": "修复psql以合理处理作为\\connect第一个参数的 URI 和 conninfo 串", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3eb2388095e380964329c047b09e86551cf29d5987b13c0c70ffb0ef1bd83c4d"}, "url": "/docs/compare/?release=9.2.11#9.2.11-c2b0e63e91a475bd", "source_url": "/docs/release/9.2.11/#id-1.11.6.18.5"}, {"db_id": "f16bd4c2fd15211edf741ef3a1f6c6a9", "kind": "equivalent", "version": "9.1.16", "label": "9.1.16", "title": "修复psql以合理处理作为\\connect第一个参数的 URI 和 conninfo 串", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3eb2388095e380964329c047b09e86551cf29d5987b13c0c70ffb0ef1bd83c4d"}, "url": "/docs/compare/?release=9.1.16#9.1.16-c2b0e63e91a475bd", "source_url": "/docs/release/9.1.16/#id-1.11.6.13.5"}]}, {"id": "9.0.20-d227cea86329c725", "cves": [], "html": "<p>抑制<span>psql</span>在某些平台上关于退出时未能写入<code>~/.psql_history</code>的错误抱怨（Tom Lane）</p>\n<p>这一不当行为源自针对非常老（2006 年之前）的<span>libedit</span>版本中一个缺陷的变通方案。我们通过移除该变通方案修复了问题，但这会使仍在使用此类<span>libedit</span>版本的用户出现类似失败。建议：升级该库，或改用<span>libreadline</span>。</p>", "text": "抑制psql在某些平台上关于退出时未能写入~/.psql_history的错误抱怨（Tom Lane） 这一不当行为源自针对非常老（2006 年之前）的libedit版本中一个缺陷的变通方案。我们通过移除该变通方案修复了问题，但这会使仍在使用此类libedit版本的用户出现类似失败。建议：升级该库，或改用libreadline。", "title": "抑制psql在某些平台上关于退出时未能写入~/.psql_history的错误抱怨", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.20/#id-1.11.6.8.6", "source_hash": "75d04d1da35091f800ad382ea92828cf71218eaf65af39f4421cb78d433723ea", "section_path": ["变更"], "commit_groups": [], "identity_text": "Suppress incorrect complaints from psql on some platforms that it failed to write ~/.psql_history at exit (Tom Lane) This misbehavior was caused by a workaround for a bug in very old (pre-2006) versions of libedit. We fixed it by removing the workaround, which will cause a similar failure to appear for anyone still using such versions of libedit. Recommendation: upgrade that library, or use libreadline.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.20/changes/025", "db_id": "eb5dae8c61bba8b98862c6cd93d6307f", "patch_ids": [], "statement_hash": "de356d2c07dafe55e04e761481754950d45efe102ba79a0473795127e2c6b088", "relations": [{"rule": 2, "type": "equivalent", "target": "49a43eebdf83f7aa058ec222f1385585", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "de356d2c07dafe55e04e761481754950d45efe102ba79a0473795127e2c6b088"}}, {"rule": 2, "type": "equivalent", "target": "b5362eb4c369741eec484b03391f5fff", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "de356d2c07dafe55e04e761481754950d45efe102ba79a0473795127e2c6b088"}}, {"rule": 2, "type": "equivalent", "target": "e52fbd69057eccf214de2172b41331bb", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "de356d2c07dafe55e04e761481754950d45efe102ba79a0473795127e2c6b088"}}, {"rule": 2, "type": "equivalent", "target": "fa74617d6f3b1414c2cef44a7bad5c60", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "de356d2c07dafe55e04e761481754950d45efe102ba79a0473795127e2c6b088"}}], "version": "9.0.20", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "fa74617d6f3b1414c2cef44a7bad5c60", "kind": "equivalent", "version": "9.4.2", "label": "9.4.2", "title": "抑制psql在某些平台上关于退出时未能写入~/.psql_history的错误抱怨", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "de356d2c07dafe55e04e761481754950d45efe102ba79a0473795127e2c6b088"}, "url": "/docs/compare/?release=9.4.2#9.4.2-d227cea86329c725", "source_url": "/docs/release/9.4.2/#id-1.11.6.29.5"}, {"db_id": "e52fbd69057eccf214de2172b41331bb", "kind": "equivalent", "version": "9.3.7", "label": "9.3.7", "title": "抑制psql在某些平台上关于退出时未能写入~/.psql_history的错误抱怨", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "de356d2c07dafe55e04e761481754950d45efe102ba79a0473795127e2c6b088"}, "url": "/docs/compare/?release=9.3.7#9.3.7-d227cea86329c725", "source_url": "/docs/release/9.3.7/#id-1.11.6.23.5"}, {"db_id": "b5362eb4c369741eec484b03391f5fff", "kind": "equivalent", "version": "9.2.11", "label": "9.2.11", "title": "抑制psql在某些平台上关于退出时未能写入~/.psql_history的错误抱怨", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "de356d2c07dafe55e04e761481754950d45efe102ba79a0473795127e2c6b088"}, "url": "/docs/compare/?release=9.2.11#9.2.11-d227cea86329c725", "source_url": "/docs/release/9.2.11/#id-1.11.6.18.5"}, {"db_id": "49a43eebdf83f7aa058ec222f1385585", "kind": "equivalent", "version": "9.1.16", "label": "9.1.16", "title": "抑制psql在某些平台上关于退出时未能写入~/.psql_history的错误抱怨", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "de356d2c07dafe55e04e761481754950d45efe102ba79a0473795127e2c6b088"}, "url": "/docs/compare/?release=9.1.16#9.1.16-d227cea86329c725", "source_url": "/docs/release/9.1.16/#id-1.11.6.13.5"}]}, {"id": "9.0.20-e3cbc04bb40225cc", "cves": [], "html": "<p>修复<span>pg_dump</span>判定哪些转换是不应转储的系统提供转换的规则（Tom Lane）</p>", "text": "修复pg_dump判定哪些转换是不应转储的系统提供转换的规则（Tom Lane）", "title": "修复pg_dump判定哪些转换是不应转储的系统提供转换的规则", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.20/#id-1.11.6.8.6", "source_hash": "d59d4e253c027e0ec234d04ce5dbbdc41ece65b47789269c94f82fb2532b35e8", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix pg_dump's rule for deciding which casts are system-provided casts that should not be dumped (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.20/changes/026", "db_id": "68ac0592c21dc4bd805081964e00df52", "patch_ids": [], "statement_hash": "8705f6329a62d6f84deb40e5a5b76549c12982d1e70e53b69c6a4122bb2bc35b", "relations": [{"rule": 2, "type": "equivalent", "target": "4a07f150b25353bc15f3e6aae96f0624", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8705f6329a62d6f84deb40e5a5b76549c12982d1e70e53b69c6a4122bb2bc35b"}}, {"rule": 2, "type": "equivalent", "target": "b508de042a3c64fefa8a9c89a8726010", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8705f6329a62d6f84deb40e5a5b76549c12982d1e70e53b69c6a4122bb2bc35b"}}, {"rule": 2, "type": "equivalent", "target": "bfb78023172514429b27c225f6b00a4e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8705f6329a62d6f84deb40e5a5b76549c12982d1e70e53b69c6a4122bb2bc35b"}}, {"rule": 2, "type": "equivalent", "target": "d0d7c2d04b5e6a6ec53e6b6ee3ba14f9", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8705f6329a62d6f84deb40e5a5b76549c12982d1e70e53b69c6a4122bb2bc35b"}}], "version": "9.0.20", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "b508de042a3c64fefa8a9c89a8726010", "kind": "equivalent", "version": "9.4.2", "label": "9.4.2", "title": "修复 pg_dump 判断哪些转换是不应转储的系统提供转换的规则", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8705f6329a62d6f84deb40e5a5b76549c12982d1e70e53b69c6a4122bb2bc35b"}, "url": "/docs/compare/?release=9.4.2#9.4.2-1e725ffa4aa0048d", "source_url": "/docs/release/9.4.2/#id-1.11.6.29.5"}, {"db_id": "d0d7c2d04b5e6a6ec53e6b6ee3ba14f9", "kind": "equivalent", "version": "9.3.7", "label": "9.3.7", "title": "修复pg_dump判定哪些转换是不应转储的系统提供转换的规则", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8705f6329a62d6f84deb40e5a5b76549c12982d1e70e53b69c6a4122bb2bc35b"}, "url": "/docs/compare/?release=9.3.7#9.3.7-e3cbc04bb40225cc", "source_url": "/docs/release/9.3.7/#id-1.11.6.23.5"}, {"db_id": "bfb78023172514429b27c225f6b00a4e", "kind": "equivalent", "version": "9.2.11", "label": "9.2.11", "title": "修复pg_dump判定哪些转换是不应转储的系统提供转换的规则", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8705f6329a62d6f84deb40e5a5b76549c12982d1e70e53b69c6a4122bb2bc35b"}, "url": "/docs/compare/?release=9.2.11#9.2.11-e3cbc04bb40225cc", "source_url": "/docs/release/9.2.11/#id-1.11.6.18.5"}, {"db_id": "4a07f150b25353bc15f3e6aae96f0624", "kind": "equivalent", "version": "9.1.16", "label": "9.1.16", "title": "修复pg_dump判定哪些转换是不应转储的系统提供转换的规则", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8705f6329a62d6f84deb40e5a5b76549c12982d1e70e53b69c6a4122bb2bc35b"}, "url": "/docs/compare/?release=9.1.16#9.1.16-e3cbc04bb40225cc", "source_url": "/docs/release/9.1.16/#id-1.11.6.13.5"}]}, {"id": "9.0.20-0c84064cc1d9166a", "cves": [], "html": "<p>修复对仅由<code>VALUES(...)</code>构成但带有列别名的视图的转储（Tom Lane）</p>", "text": "修复对仅由VALUES(...)构成但带有列别名的视图的转储（Tom Lane）", "title": "修复对仅由VALUES(...)构成但带有列别名的视图的转储", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.20/#id-1.11.6.8.6", "source_hash": "c14c7878ce14f118b174197940a757dcb4079f24b1a95c97b462eb9448ebdd68", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix dumping of views that are just VALUES(...) but have column aliases (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.20/changes/027", "db_id": "6893d83c75aab30522f2ba58ea38ae7c", "patch_ids": [], "statement_hash": "1d07aefbe69f76fbfd7bdfcd778a2ebfe007c1ddd6821421f482699ae9046a76", "relations": [{"rule": 2, "type": "equivalent", "target": "0419643d23e4a4dcf485f3d67a1a8ca9", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1d07aefbe69f76fbfd7bdfcd778a2ebfe007c1ddd6821421f482699ae9046a76"}}, {"rule": 2, "type": "equivalent", "target": "8fedc436dd8b8faf5b520b757035c88b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1d07aefbe69f76fbfd7bdfcd778a2ebfe007c1ddd6821421f482699ae9046a76"}}, {"rule": 2, "type": "equivalent", "target": "a14a9740c72bc906d1fba16e9c1cb4cd", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1d07aefbe69f76fbfd7bdfcd778a2ebfe007c1ddd6821421f482699ae9046a76"}}, {"rule": 2, "type": "equivalent", "target": "c4f3706c97d656d20e7d60825a6aed85", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1d07aefbe69f76fbfd7bdfcd778a2ebfe007c1ddd6821421f482699ae9046a76"}}], "version": "9.0.20", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "c4f3706c97d656d20e7d60825a6aed85", "kind": "equivalent", "version": "9.4.2", "label": "9.4.2", "title": "修复仅由 VALUES(...) 构成但带有列别名的视图的转储", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1d07aefbe69f76fbfd7bdfcd778a2ebfe007c1ddd6821421f482699ae9046a76"}, "url": "/docs/compare/?release=9.4.2#9.4.2-3a80b9109301d2c3", "source_url": "/docs/release/9.4.2/#id-1.11.6.29.5"}, {"db_id": "8fedc436dd8b8faf5b520b757035c88b", "kind": "equivalent", "version": "9.3.7", "label": "9.3.7", "title": "修复对仅由VALUES(...)构成但带有列别名的视图的转储", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1d07aefbe69f76fbfd7bdfcd778a2ebfe007c1ddd6821421f482699ae9046a76"}, "url": "/docs/compare/?release=9.3.7#9.3.7-0c84064cc1d9166a", "source_url": "/docs/release/9.3.7/#id-1.11.6.23.5"}, {"db_id": "a14a9740c72bc906d1fba16e9c1cb4cd", "kind": "equivalent", "version": "9.2.11", "label": "9.2.11", "title": "修复对仅由VALUES(...)构成但带有列别名的视图的转储", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1d07aefbe69f76fbfd7bdfcd778a2ebfe007c1ddd6821421f482699ae9046a76"}, "url": "/docs/compare/?release=9.2.11#9.2.11-0c84064cc1d9166a", "source_url": "/docs/release/9.2.11/#id-1.11.6.18.5"}, {"db_id": "0419643d23e4a4dcf485f3d67a1a8ca9", "kind": "equivalent", "version": "9.1.16", "label": "9.1.16", "title": "修复对仅由VALUES(...)构成但带有列别名的视图的转储", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1d07aefbe69f76fbfd7bdfcd778a2ebfe007c1ddd6821421f482699ae9046a76"}, "url": "/docs/compare/?release=9.1.16#9.1.16-0c84064cc1d9166a", "source_url": "/docs/release/9.1.16/#id-1.11.6.13.5"}]}, {"id": "9.0.20-85a36f5791bb8c13", "cves": [], "html": "<p>在<span>pg_upgrade</span>中，强制新集簇使用时间线 1（Bruce Momjian）</p>\n<p>此变更可防止因错误抱怨缺少 WAL 历史文件而导致的升级失败。</p>", "text": "在pg_upgrade中，强制新集簇使用时间线 1（Bruce Momjian） 此变更可防止因错误抱怨缺少 WAL 历史文件而导致的升级失败。", "title": "在pg_upgrade中，强制新集簇使用时间线 1", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.20/#id-1.11.6.8.6", "source_hash": "08fa131a63577019561e2427527ff8b1c4ae0140357e1736c7f20e9deb311f42", "section_path": ["变更"], "commit_groups": [], "identity_text": "In pg_upgrade, force timeline 1 in the new cluster (Bruce Momjian) This change prevents upgrade failures caused by bogus complaints about missing WAL history files.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.20/changes/028", "db_id": "32add2a745591c8459a411546ba2e115", "patch_ids": [], "statement_hash": "cbc1aa2d5d4c053c61455d419604f84ff0d39042453f2f23317cda66dd0a871a", "relations": [{"rule": 2, "type": "equivalent", "target": "264e70366e463566e591358479b0662e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cbc1aa2d5d4c053c61455d419604f84ff0d39042453f2f23317cda66dd0a871a"}}, {"rule": 2, "type": "equivalent", "target": "c987857809faf03056aa6d67b18891ce", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cbc1aa2d5d4c053c61455d419604f84ff0d39042453f2f23317cda66dd0a871a"}}, {"rule": 2, "type": "equivalent", "target": "f0ae4f13ab1ab379b88d9739e247631f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cbc1aa2d5d4c053c61455d419604f84ff0d39042453f2f23317cda66dd0a871a"}}, {"rule": 2, "type": "equivalent", "target": "f373f2b37669d9e6f05d88219713420c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cbc1aa2d5d4c053c61455d419604f84ff0d39042453f2f23317cda66dd0a871a"}}], "version": "9.0.20", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "c987857809faf03056aa6d67b18891ce", "kind": "equivalent", "version": "9.4.2", "label": "9.4.2", "title": "在pg_upgrade中，强制新集簇使用时间线 1", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cbc1aa2d5d4c053c61455d419604f84ff0d39042453f2f23317cda66dd0a871a"}, "url": "/docs/compare/?release=9.4.2#9.4.2-85a36f5791bb8c13", "source_url": "/docs/release/9.4.2/#id-1.11.6.29.5"}, {"db_id": "264e70366e463566e591358479b0662e", "kind": "equivalent", "version": "9.3.7", "label": "9.3.7", "title": "在pg_upgrade中，强制新集簇使用时间线 1", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cbc1aa2d5d4c053c61455d419604f84ff0d39042453f2f23317cda66dd0a871a"}, "url": "/docs/compare/?release=9.3.7#9.3.7-85a36f5791bb8c13", "source_url": "/docs/release/9.3.7/#id-1.11.6.23.5"}, {"db_id": "f373f2b37669d9e6f05d88219713420c", "kind": "equivalent", "version": "9.2.11", "label": "9.2.11", "title": "在pg_upgrade中，强制新集簇使用时间线 1", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cbc1aa2d5d4c053c61455d419604f84ff0d39042453f2f23317cda66dd0a871a"}, "url": "/docs/compare/?release=9.2.11#9.2.11-85a36f5791bb8c13", "source_url": "/docs/release/9.2.11/#id-1.11.6.18.5"}, {"db_id": "f0ae4f13ab1ab379b88d9739e247631f", "kind": "equivalent", "version": "9.1.16", "label": "9.1.16", "title": "在pg_upgrade中，强制新集簇使用时间线 1", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cbc1aa2d5d4c053c61455d419604f84ff0d39042453f2f23317cda66dd0a871a"}, "url": "/docs/compare/?release=9.1.16#9.1.16-85a36f5791bb8c13", "source_url": "/docs/release/9.1.16/#id-1.11.6.13.5"}]}, {"id": "9.0.20-0eddc16ada22ddc4", "cves": [], "html": "<p>在<span>pg_upgrade</span>中，继续之前先检查是否存在不当不可连接的数据库（Bruce Momjian）</p>", "text": "在pg_upgrade中，继续之前先检查是否存在不当不可连接的数据库（Bruce Momjian）", "title": "在pg_upgrade中，继续之前先检查是否存在不当不可连接的数据库", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.20/#id-1.11.6.8.6", "source_hash": "d7856a21ad94a5a61adc50a5d720c1f88e15c8872b35dbd485cd3dac70ff484b", "section_path": ["变更"], "commit_groups": [], "identity_text": "In pg_upgrade, check for improperly non-connectable databases before proceeding (Bruce Momjian)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.20/changes/029", "db_id": "68233c9d057b5735545722ba667a7b56", "patch_ids": [], "statement_hash": "9c441f7d317feeeb5d1d4216d0d65330c089bce47819fee5b9cfeab4f6dc879d", "relations": [{"rule": 2, "type": "equivalent", "target": "77a7fb9e2de57a40c3f80d37778ef12e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9c441f7d317feeeb5d1d4216d0d65330c089bce47819fee5b9cfeab4f6dc879d"}}, {"rule": 2, "type": "equivalent", "target": "86fc86cc859f76fb4d06c2c326a0e37b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9c441f7d317feeeb5d1d4216d0d65330c089bce47819fee5b9cfeab4f6dc879d"}}, {"rule": 2, "type": "equivalent", "target": "a073ace5a59bd86a378804b08cae5862", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9c441f7d317feeeb5d1d4216d0d65330c089bce47819fee5b9cfeab4f6dc879d"}}, {"rule": 2, "type": "equivalent", "target": "f5b8584278763862dc6a8e1da5d17312", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9c441f7d317feeeb5d1d4216d0d65330c089bce47819fee5b9cfeab4f6dc879d"}}], "version": "9.0.20", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "a073ace5a59bd86a378804b08cae5862", "kind": "equivalent", "version": "9.4.2", "label": "9.4.2", "title": "在 pg_upgrade 中，继续之前检查是否存在不可正常连接的数据库", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9c441f7d317feeeb5d1d4216d0d65330c089bce47819fee5b9cfeab4f6dc879d"}, "url": "/docs/compare/?release=9.4.2#9.4.2-18f7887a04608191", "source_url": "/docs/release/9.4.2/#id-1.11.6.29.5"}, {"db_id": "f5b8584278763862dc6a8e1da5d17312", "kind": "equivalent", "version": "9.3.7", "label": "9.3.7", "title": "在pg_upgrade中，继续之前先检查是否存在不当不可连接的数据库", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9c441f7d317feeeb5d1d4216d0d65330c089bce47819fee5b9cfeab4f6dc879d"}, "url": "/docs/compare/?release=9.3.7#9.3.7-0eddc16ada22ddc4", "source_url": "/docs/release/9.3.7/#id-1.11.6.23.5"}, {"db_id": "86fc86cc859f76fb4d06c2c326a0e37b", "kind": "equivalent", "version": "9.2.11", "label": "9.2.11", "title": "在pg_upgrade中，继续之前先检查是否存在不当不可连接的数据库", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9c441f7d317feeeb5d1d4216d0d65330c089bce47819fee5b9cfeab4f6dc879d"}, "url": "/docs/compare/?release=9.2.11#9.2.11-0eddc16ada22ddc4", "source_url": "/docs/release/9.2.11/#id-1.11.6.18.5"}, {"db_id": "77a7fb9e2de57a40c3f80d37778ef12e", "kind": "equivalent", "version": "9.1.16", "label": "9.1.16", "title": "在pg_upgrade中，继续之前先检查是否存在不当不可连接的数据库", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9c441f7d317feeeb5d1d4216d0d65330c089bce47819fee5b9cfeab4f6dc879d"}, "url": "/docs/compare/?release=9.1.16#9.1.16-0eddc16ada22ddc4", "source_url": "/docs/release/9.1.16/#id-1.11.6.13.5"}]}, {"id": "9.0.20-c019bc62e67c9b11", "cves": [], "html": "<p>在<span>pg_upgrade</span>中，在生成的<code>delete_old_cluster</code>脚本中对目录路径正确加引号（Bruce Momjian）</p>", "text": "在pg_upgrade中，在生成的delete_old_cluster脚本中对目录路径正确加引号（Bruce Momjian）", "title": "在pg_upgrade中，在生成的delete_old_cluster脚本中对目录路径正确加引号", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.20/#id-1.11.6.8.6", "source_hash": "c3796d7bc41a9621c2db8f0e0d5a08f0c813c643aa276e5505ff97c9dd46d5fa", "section_path": ["变更"], "commit_groups": [], "identity_text": "In pg_upgrade, quote directory paths properly in the generated delete_old_cluster script (Bruce Momjian)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.20/changes/030", "db_id": "16467afcb13ce31ba8cf25d6e2530023", "patch_ids": [], "statement_hash": "f8912eb64c7011065c2063368a5bb8f5367d03e89b61d581686ed76e8b01c845", "relations": [{"rule": 2, "type": "equivalent", "target": "3ae2ddd23ebc636e0f8bde95932fbbc7", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f8912eb64c7011065c2063368a5bb8f5367d03e89b61d581686ed76e8b01c845"}}, {"rule": 2, "type": "equivalent", "target": "423a6dfd053d57308644d32c12d347b1", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f8912eb64c7011065c2063368a5bb8f5367d03e89b61d581686ed76e8b01c845"}}, {"rule": 2, "type": "equivalent", "target": "471a3f4462d18ff899f9ba42e8b02f39", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f8912eb64c7011065c2063368a5bb8f5367d03e89b61d581686ed76e8b01c845"}}, {"rule": 2, "type": "equivalent", "target": "def1df828e57b17a3ba49adf79b6033b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f8912eb64c7011065c2063368a5bb8f5367d03e89b61d581686ed76e8b01c845"}}], "version": "9.0.20", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "def1df828e57b17a3ba49adf79b6033b", "kind": "equivalent", "version": "9.4.2", "label": "9.4.2", "title": "在 pg_upgrade 中，在生成的 delete_old_cluster 脚本中正确引用目录路径", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f8912eb64c7011065c2063368a5bb8f5367d03e89b61d581686ed76e8b01c845"}, "url": "/docs/compare/?release=9.4.2#9.4.2-748f589a42626cc9", "source_url": "/docs/release/9.4.2/#id-1.11.6.29.5"}, {"db_id": "3ae2ddd23ebc636e0f8bde95932fbbc7", "kind": "equivalent", "version": "9.3.7", "label": "9.3.7", "title": "在pg_upgrade中，在生成的delete_old_cluster脚本中对目录路径正确加引号", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f8912eb64c7011065c2063368a5bb8f5367d03e89b61d581686ed76e8b01c845"}, "url": "/docs/compare/?release=9.3.7#9.3.7-c019bc62e67c9b11", "source_url": "/docs/release/9.3.7/#id-1.11.6.23.5"}, {"db_id": "423a6dfd053d57308644d32c12d347b1", "kind": "equivalent", "version": "9.2.11", "label": "9.2.11", "title": "在pg_upgrade中，在生成的delete_old_cluster脚本中对目录路径正确加引号", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f8912eb64c7011065c2063368a5bb8f5367d03e89b61d581686ed76e8b01c845"}, "url": "/docs/compare/?release=9.2.11#9.2.11-c019bc62e67c9b11", "source_url": "/docs/release/9.2.11/#id-1.11.6.18.5"}, {"db_id": "471a3f4462d18ff899f9ba42e8b02f39", "kind": "equivalent", "version": "9.1.16", "label": "9.1.16", "title": "在pg_upgrade中，在生成的delete_old_cluster脚本中对目录路径正确加引号", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f8912eb64c7011065c2063368a5bb8f5367d03e89b61d581686ed76e8b01c845"}, "url": "/docs/compare/?release=9.1.16#9.1.16-c019bc62e67c9b11", "source_url": "/docs/release/9.1.16/#id-1.11.6.13.5"}]}, {"id": "9.0.20-46b29efe37a5a32c", "cves": [], "html": "<p>在<span>pg_upgrade</span>中正确保留数据库级冻结信息（Bruce Momjian）</p>\n<p>这一疏忽可能导致<code>postgres</code>和<code>template1</code>数据库中的表出现缺少 clog 文件的错误。</p>", "text": "在pg_upgrade中正确保留数据库级冻结信息（Bruce Momjian） 这一疏忽可能导致postgres和template1数据库中的表出现缺少 clog 文件的错误。", "title": "在pg_upgrade中正确保留数据库级冻结信息", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.20/#id-1.11.6.8.6", "source_hash": "435063410ce7d672b4720a96384e2554972619b8a7761e3a8d8414c26414f627", "section_path": ["变更"], "commit_groups": [], "identity_text": "In pg_upgrade, preserve database-level freezing info properly (Bruce Momjian) This oversight could cause missing-clog-file errors for tables within the postgres and template1 databases.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.20/changes/031", "db_id": "8d85de9533530cab682b95682f20a29a", "patch_ids": [], "statement_hash": "75dd48b07dbe6fbedfac804a5a9307403f267f063a9b0088180044ec3c0da8fd", "relations": [{"rule": 2, "type": "equivalent", "target": "176a00afcee6210be72b7c408f3b71ac", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "75dd48b07dbe6fbedfac804a5a9307403f267f063a9b0088180044ec3c0da8fd"}}, {"rule": 2, "type": "equivalent", "target": "270287647c524d3508e29e8b3f14f0e4", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "75dd48b07dbe6fbedfac804a5a9307403f267f063a9b0088180044ec3c0da8fd"}}, {"rule": 2, "type": "equivalent", "target": "43d98539b4680389246cf32f7b86160a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "75dd48b07dbe6fbedfac804a5a9307403f267f063a9b0088180044ec3c0da8fd"}}, {"rule": 2, "type": "equivalent", "target": "af437421bc4312f8319d13bef3c5a337", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "75dd48b07dbe6fbedfac804a5a9307403f267f063a9b0088180044ec3c0da8fd"}}], "version": "9.0.20", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "270287647c524d3508e29e8b3f14f0e4", "kind": "equivalent", "version": "9.4.2", "label": "9.4.2", "title": "在pg_upgrade中正确保留数据库级冻结信息", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "75dd48b07dbe6fbedfac804a5a9307403f267f063a9b0088180044ec3c0da8fd"}, "url": "/docs/compare/?release=9.4.2#9.4.2-46b29efe37a5a32c", "source_url": "/docs/release/9.4.2/#id-1.11.6.29.5"}, {"db_id": "43d98539b4680389246cf32f7b86160a", "kind": "equivalent", "version": "9.3.7", "label": "9.3.7", "title": "在pg_upgrade中正确保留数据库级冻结信息", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "75dd48b07dbe6fbedfac804a5a9307403f267f063a9b0088180044ec3c0da8fd"}, "url": "/docs/compare/?release=9.3.7#9.3.7-46b29efe37a5a32c", "source_url": "/docs/release/9.3.7/#id-1.11.6.23.5"}, {"db_id": "af437421bc4312f8319d13bef3c5a337", "kind": "equivalent", "version": "9.2.11", "label": "9.2.11", "title": "在pg_upgrade中正确保留数据库级冻结信息", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "75dd48b07dbe6fbedfac804a5a9307403f267f063a9b0088180044ec3c0da8fd"}, "url": "/docs/compare/?release=9.2.11#9.2.11-46b29efe37a5a32c", "source_url": "/docs/release/9.2.11/#id-1.11.6.18.5"}, {"db_id": "176a00afcee6210be72b7c408f3b71ac", "kind": "equivalent", "version": "9.1.16", "label": "9.1.16", "title": "在pg_upgrade中正确保留数据库级冻结信息", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "75dd48b07dbe6fbedfac804a5a9307403f267f063a9b0088180044ec3c0da8fd"}, "url": "/docs/compare/?release=9.1.16#9.1.16-46b29efe37a5a32c", "source_url": "/docs/release/9.1.16/#id-1.11.6.13.5"}]}, {"id": "9.0.20-baa1aa72925fc091", "cves": [], "html": "<p>在 Windows 上以受限权限运行<span>pg_upgrade</span>和<span>pg_resetxlog</span>，使它们在由管理员运行时不会失败（Muhammad Asif Naeem）</p>", "text": "在 Windows 上以受限权限运行pg_upgrade和pg_resetxlog，使它们在由管理员运行时不会失败（Muhammad Asif Naeem）", "title": "在 Windows 上以受限权限运行pg_upgrade和pg_resetxlog，使它们在由管理员运行时不会失败", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.20/#id-1.11.6.8.6", "source_hash": "5977a57458436342dd3687aff45c397db01df8db163dd369480a036e26e345b8", "section_path": ["变更"], "commit_groups": [], "identity_text": "Run pg_upgrade and pg_resetxlog with restricted privileges on Windows, so that they don't fail when run by an administrator (Muhammad Asif Naeem)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.20/changes/032", "db_id": "5a5425367afbc98edcb0ee897d3d7efa", "patch_ids": [], "statement_hash": "218fb66da766fe6b77120d0a6e11ec94904f1e88ce9b6d9ed84084e7a378ee17", "relations": [{"rule": 2, "type": "equivalent", "target": "4e16455126bb16c3ed6c614052916905", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "218fb66da766fe6b77120d0a6e11ec94904f1e88ce9b6d9ed84084e7a378ee17"}}, {"rule": 2, "type": "equivalent", "target": "906d84c770cda4fc43a0034b7e197e1e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "218fb66da766fe6b77120d0a6e11ec94904f1e88ce9b6d9ed84084e7a378ee17"}}, {"rule": 2, "type": "equivalent", "target": "9d04c1a220d59b87d7f3fcf2300022f2", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "218fb66da766fe6b77120d0a6e11ec94904f1e88ce9b6d9ed84084e7a378ee17"}}, {"rule": 2, "type": "equivalent", "target": "d207956864a3b3471462c3e92f808f52", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "218fb66da766fe6b77120d0a6e11ec94904f1e88ce9b6d9ed84084e7a378ee17"}}], "version": "9.0.20", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "9d04c1a220d59b87d7f3fcf2300022f2", "kind": "equivalent", "version": "9.4.2", "label": "9.4.2", "title": "在 Windows 上以受限权限运行 pg_upgrade 和 pg_resetxlog，使它们被管理员运行时不会失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "218fb66da766fe6b77120d0a6e11ec94904f1e88ce9b6d9ed84084e7a378ee17"}, "url": "/docs/compare/?release=9.4.2#9.4.2-0e30634e13e1a711", "source_url": "/docs/release/9.4.2/#id-1.11.6.29.5"}, {"db_id": "906d84c770cda4fc43a0034b7e197e1e", "kind": "equivalent", "version": "9.3.7", "label": "9.3.7", "title": "在 Windows 上以受限权限运行pg_upgrade和pg_resetxlog，使它们在由管理员运行时不会失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "218fb66da766fe6b77120d0a6e11ec94904f1e88ce9b6d9ed84084e7a378ee17"}, "url": "/docs/compare/?release=9.3.7#9.3.7-baa1aa72925fc091", "source_url": "/docs/release/9.3.7/#id-1.11.6.23.5"}, {"db_id": "d207956864a3b3471462c3e92f808f52", "kind": "equivalent", "version": "9.2.11", "label": "9.2.11", "title": "在 Windows 上以受限权限运行pg_upgrade和pg_resetxlog，使它们在由管理员运行时不会失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "218fb66da766fe6b77120d0a6e11ec94904f1e88ce9b6d9ed84084e7a378ee17"}, "url": "/docs/compare/?release=9.2.11#9.2.11-baa1aa72925fc091", "source_url": "/docs/release/9.2.11/#id-1.11.6.18.5"}, {"db_id": "4e16455126bb16c3ed6c614052916905", "kind": "equivalent", "version": "9.1.16", "label": "9.1.16", "title": "在 Windows 上以受限权限运行pg_upgrade和pg_resetxlog，使它们在由管理员运行时不会失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "218fb66da766fe6b77120d0a6e11ec94904f1e88ce9b6d9ed84084e7a378ee17"}, "url": "/docs/compare/?release=9.1.16#9.1.16-baa1aa72925fc091", "source_url": "/docs/release/9.1.16/#id-1.11.6.13.5"}]}, {"id": "9.0.20-84a59f93e121843c", "cves": [], "html": "<p>修复<code>contrib/intarray</code>中缓慢的排序算法（Tom Lane）</p>", "text": "修复contrib/intarray中缓慢的排序算法（Tom Lane）", "title": "修复contrib/intarray中缓慢的排序算法", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.20/#id-1.11.6.8.6", "source_hash": "5fd6eeafed34c93cfb1ca60d1ddbf6f65ab71284c08d0111bd72125ebd1dd864", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix slow sorting algorithm in contrib/intarray (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.20/changes/033", "db_id": "f0dab024f4747558c6df4643a77769d7", "patch_ids": [], "statement_hash": "6eed0c0dcde4b752c6b4d46b14e70e645fe8e7d097220244f509ffc50509399f", "relations": [{"rule": 2, "type": "equivalent", "target": "4376a2b0acf1a1e4703192ba949eb3f4", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6eed0c0dcde4b752c6b4d46b14e70e645fe8e7d097220244f509ffc50509399f"}}, {"rule": 2, "type": "equivalent", "target": "45a74e7e9dcd440b365eeaba283c4884", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6eed0c0dcde4b752c6b4d46b14e70e645fe8e7d097220244f509ffc50509399f"}}, {"rule": 2, "type": "equivalent", "target": "46a207039ebfc20468ca3465d3fe1b1a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6eed0c0dcde4b752c6b4d46b14e70e645fe8e7d097220244f509ffc50509399f"}}, {"rule": 2, "type": "equivalent", "target": "d9f46d752b016f506e7ad54fe58281ed", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6eed0c0dcde4b752c6b4d46b14e70e645fe8e7d097220244f509ffc50509399f"}}], "version": "9.0.20", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "45a74e7e9dcd440b365eeaba283c4884", "kind": "equivalent", "version": "9.4.2", "label": "9.4.2", "title": "修复 contrib/intarray 中缓慢的排序算法", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6eed0c0dcde4b752c6b4d46b14e70e645fe8e7d097220244f509ffc50509399f"}, "url": "/docs/compare/?release=9.4.2#9.4.2-a2b5602bf1b4f1b7", "source_url": "/docs/release/9.4.2/#id-1.11.6.29.5"}, {"db_id": "46a207039ebfc20468ca3465d3fe1b1a", "kind": "equivalent", "version": "9.3.7", "label": "9.3.7", "title": "修复contrib/intarray中缓慢的排序算法", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6eed0c0dcde4b752c6b4d46b14e70e645fe8e7d097220244f509ffc50509399f"}, "url": "/docs/compare/?release=9.3.7#9.3.7-84a59f93e121843c", "source_url": "/docs/release/9.3.7/#id-1.11.6.23.5"}, {"db_id": "4376a2b0acf1a1e4703192ba949eb3f4", "kind": "equivalent", "version": "9.2.11", "label": "9.2.11", "title": "修复contrib/intarray中缓慢的排序算法", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6eed0c0dcde4b752c6b4d46b14e70e645fe8e7d097220244f509ffc50509399f"}, "url": "/docs/compare/?release=9.2.11#9.2.11-84a59f93e121843c", "source_url": "/docs/release/9.2.11/#id-1.11.6.18.5"}, {"db_id": "d9f46d752b016f506e7ad54fe58281ed", "kind": "equivalent", "version": "9.1.16", "label": "9.1.16", "title": "修复contrib/intarray中缓慢的排序算法", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6eed0c0dcde4b752c6b4d46b14e70e645fe8e7d097220244f509ffc50509399f"}, "url": "/docs/compare/?release=9.1.16#9.1.16-84a59f93e121843c", "source_url": "/docs/release/9.1.16/#id-1.11.6.13.5"}]}, {"id": "9.0.20-26f630e691422e4b", "cves": [], "html": "<p>修复 Sparc V8 机器上的编译失败（Rob Rowan）</p>", "text": "修复 Sparc V8 机器上的编译失败（Rob Rowan）", "title": "修复 Sparc V8 机器上的编译失败", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.20/#id-1.11.6.8.6", "source_hash": "e001d55da46459c8309387a3cef5b4ea5a7a3980d8e6d0d5aa685379994a9977", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix compile failure on Sparc V8 machines (Rob Rowan)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.20/changes/034", "db_id": "37a0fe5b1907093e80b812d12473dd21", "patch_ids": [], "statement_hash": "0da98d5b5415f8b3f624ec4f8ce60d22e1ed704973096ce59f21770c20605bc8", "relations": [{"rule": 2, "type": "equivalent", "target": "6c4854aeb8bbf5df9944f49e02298861", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0da98d5b5415f8b3f624ec4f8ce60d22e1ed704973096ce59f21770c20605bc8"}}, {"rule": 2, "type": "equivalent", "target": "7c782e8ba80584ae96536cd90c57e2b4", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0da98d5b5415f8b3f624ec4f8ce60d22e1ed704973096ce59f21770c20605bc8"}}, {"rule": 2, "type": "equivalent", "target": "ac883f4f044813e2f88aa14897570ffc", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0da98d5b5415f8b3f624ec4f8ce60d22e1ed704973096ce59f21770c20605bc8"}}, {"rule": 2, "type": "equivalent", "target": "fe5a58217a305e52ae92597bca54b5d1", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0da98d5b5415f8b3f624ec4f8ce60d22e1ed704973096ce59f21770c20605bc8"}}], "version": "9.0.20", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "7c782e8ba80584ae96536cd90c57e2b4", "kind": "equivalent", "version": "9.4.2", "label": "9.4.2", "title": "修复 Sparc V8 机器上的编译失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0da98d5b5415f8b3f624ec4f8ce60d22e1ed704973096ce59f21770c20605bc8"}, "url": "/docs/compare/?release=9.4.2#9.4.2-26f630e691422e4b", "source_url": "/docs/release/9.4.2/#id-1.11.6.29.5"}, {"db_id": "fe5a58217a305e52ae92597bca54b5d1", "kind": "equivalent", "version": "9.3.7", "label": "9.3.7", "title": "修复 Sparc V8 机器上的编译失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0da98d5b5415f8b3f624ec4f8ce60d22e1ed704973096ce59f21770c20605bc8"}, "url": "/docs/compare/?release=9.3.7#9.3.7-26f630e691422e4b", "source_url": "/docs/release/9.3.7/#id-1.11.6.23.5"}, {"db_id": "ac883f4f044813e2f88aa14897570ffc", "kind": "equivalent", "version": "9.2.11", "label": "9.2.11", "title": "修复 Sparc V8 机器上的编译失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0da98d5b5415f8b3f624ec4f8ce60d22e1ed704973096ce59f21770c20605bc8"}, "url": "/docs/compare/?release=9.2.11#9.2.11-26f630e691422e4b", "source_url": "/docs/release/9.2.11/#id-1.11.6.18.5"}, {"db_id": "6c4854aeb8bbf5df9944f49e02298861", "kind": "equivalent", "version": "9.1.16", "label": "9.1.16", "title": "修复 Sparc V8 机器上的编译失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0da98d5b5415f8b3f624ec4f8ce60d22e1ed704973096ce59f21770c20605bc8"}, "url": "/docs/compare/?release=9.1.16#9.1.16-26f630e691422e4b", "source_url": "/docs/release/9.1.16/#id-1.11.6.13.5"}]}, {"id": "9.0.20-25ab2870eecab69e", "cves": [], "html": "<p>将时区数据文件更新到<span>tzdata</span>发行版 2015d，以反映埃及、蒙古和巴勒斯坦的夏令时法规变更，以及加拿大和智利的历史变更。同时采用 America/Adak 时区修订后的时区缩写（HST/HDT 而非 HAST/HADT）。</p>", "text": "将时区数据文件更新到tzdata发行版 2015d，以反映埃及、蒙古和巴勒斯坦的夏令时法规变更，以及加拿大和智利的历史变更。同时采用 America/Adak 时区修订后的时区缩写（HST/HDT 而非 HAST/HADT）。", "title": "将时区数据文件更新到tzdata发行版 2015d，以反映埃及、蒙古和巴勒斯坦的夏令时法规变更，以及加拿大和智利的历史变更。同时采用 America/Adak 时区修订后的时区缩写（HST/HDT 而非 HAST/HADT）。", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.20/#id-1.11.6.8.6", "source_hash": "55c795f0e02da929e3c0676d41cae4d0ffe7a4ea59408185bc24688132cd342c", "section_path": ["变更"], "commit_groups": [], "identity_text": "Update time zone data files to tzdata release 2015d for DST law changes in Egypt, Mongolia, and Palestine, plus historical changes in Canada and Chile. Also adopt revised zone abbreviations for the America/Adak zone (HST/HDT not HAST/HADT).", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.20/changes/035", "db_id": "998c30b7419eca8d2d44aadb815835ed", "patch_ids": [], "statement_hash": "36c53b9eaf81fc6f1b94a1473114ce519c2a5d5775e361d6daab8e899b89de29", "relations": [{"rule": 2, "type": "equivalent", "target": "3afcee3546435d442f498388deeeee2e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "36c53b9eaf81fc6f1b94a1473114ce519c2a5d5775e361d6daab8e899b89de29"}}, {"rule": 2, "type": "equivalent", "target": "51a3e2c04f3d93fe1ea5593e70b08250", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "36c53b9eaf81fc6f1b94a1473114ce519c2a5d5775e361d6daab8e899b89de29"}}, {"rule": 2, "type": "equivalent", "target": "7d888050235ee7d60909cf8a6b02ff1c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "36c53b9eaf81fc6f1b94a1473114ce519c2a5d5775e361d6daab8e899b89de29"}}, {"rule": 2, "type": "equivalent", "target": "cdc52c1500bb531545df3ea10fabff01", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "36c53b9eaf81fc6f1b94a1473114ce519c2a5d5775e361d6daab8e899b89de29"}}], "version": "9.0.20", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "7d888050235ee7d60909cf8a6b02ff1c", "kind": "equivalent", "version": "9.4.2", "label": "9.4.2", "title": "将时区数据文件更新到 tzdata 发行版 2015d，涵盖埃及、蒙古和巴勒斯坦的夏令时法规变更，以及加拿大和智利的历史变更。同时为 America/Adak 时区采用修订后的时区缩写（HST/HDT 而非 HAST/HADT）。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "36c53b9eaf81fc6f1b94a1473114ce519c2a5d5775e361d6daab8e899b89de29"}, "url": "/docs/compare/?release=9.4.2#9.4.2-55f2895bcfcf37a2", "source_url": "/docs/release/9.4.2/#id-1.11.6.29.5"}, {"db_id": "cdc52c1500bb531545df3ea10fabff01", "kind": "equivalent", "version": "9.3.7", "label": "9.3.7", "title": "将时区数据文件更新到tzdata发行版 2015d，以反映埃及、蒙古和巴勒斯坦的夏令时法规变更，以及加拿大和智利的历史变更。同时采用 America/Adak 时区修订后的时区缩写（HST/HDT 而非 HAST/HADT）。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "36c53b9eaf81fc6f1b94a1473114ce519c2a5d5775e361d6daab8e899b89de29"}, "url": "/docs/compare/?release=9.3.7#9.3.7-25ab2870eecab69e", "source_url": "/docs/release/9.3.7/#id-1.11.6.23.5"}, {"db_id": "3afcee3546435d442f498388deeeee2e", "kind": "equivalent", "version": "9.2.11", "label": "9.2.11", "title": "将时区数据文件更新到tzdata发行版 2015d，以反映埃及、蒙古和巴勒斯坦的夏令时法规变更，以及加拿大和智利的历史变更。同时采用 America/Adak 时区修订后的时区缩写（HST/HDT 而非 HAST/HADT）。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "36c53b9eaf81fc6f1b94a1473114ce519c2a5d5775e361d6daab8e899b89de29"}, "url": "/docs/compare/?release=9.2.11#9.2.11-25ab2870eecab69e", "source_url": "/docs/release/9.2.11/#id-1.11.6.18.5"}, {"db_id": "51a3e2c04f3d93fe1ea5593e70b08250", "kind": "equivalent", "version": "9.1.16", "label": "9.1.16", "title": "将时区数据文件更新到tzdata发行版 2015d，以反映埃及、蒙古和巴勒斯坦的夏令时法规变更，以及加拿大和智利的历史变更。同时采用 America/Adak 时区修订后的时区缩写（HST/HDT 而非 HAST/HADT）。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "36c53b9eaf81fc6f1b94a1473114ce519c2a5d5775e361d6daab8e899b89de29"}, "url": "/docs/compare/?release=9.1.16#9.1.16-25ab2870eecab69e", "source_url": "/docs/release/9.1.16/#id-1.11.6.13.5"}]}]}], "stats": [{"key": "all", "label": "全部变更", "count": 35}, {"key": "feature", "label": "新功能", "count": 0}, {"key": "bugfix", "label": "BUG 修复", "count": 13}, {"key": "security", "label": "安全相关", "count": 3}, {"key": "performance", "label": "性能改进", "count": 0}, {"key": "compatibility", "label": "兼容性变化", "count": 0}, {"key": "improvement", "label": "其他改进", "count": 19}], "total": 35, "release_count": 1, "cross_major": false, "cve_count": 3, "cves": [{"id": "CVE-2015-3165", "url": "https://www.postgresql.org/support/security/CVE-2015-3165/", "fixed": {"9.0": "9.0.20", "9.1": "9.1.16", "9.2": "9.2.11", "9.3": "9.3.7", "9.4": "9.4.2"}, "score": 7.5, "title": "避免客户端恰在认证超时到期前断开时可能出现的崩溃", "vector": "AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H", "affected": {"9.0": "9.0", "9.1": "9.1", "9.2": "9.2", "9.3": "9.3", "9.4": "9.4"}, "component": "core server", "published": {"9.0": "2015-05-22", "9.1": "2015-05-22", "9.2": "2015-05-22", "9.3": "2015-05-22", "9.4": "2015-05-22"}, "introduced": {}, "cvss_version": "3.0", "description_en": "", "first_published": "2015-05-22", "fixed_version": "9.0.20"}, {"id": "CVE-2015-3166", "url": "https://www.postgresql.org/support/security/CVE-2015-3166/", "fixed": {"9.0": "9.0.20", "9.1": "9.1.16", "9.2": "9.2.11", "9.3": "9.3.7", "9.4": "9.4.2"}, "score": 5.6, "title": "改进对系统调用失败的检测", "vector": "AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:L", "affected": {"9.0": "9.0", "9.1": "9.1", "9.2": "9.2", "9.3": "9.3", "9.4": "9.4"}, "component": "core server", "published": {"9.0": "2015-05-22", "9.1": "2015-05-22", "9.2": "2015-05-22", "9.3": "2015-05-22", "9.4": "2015-05-22"}, "introduced": {}, "cvss_version": "3.0", "description_en": "", "first_published": "2015-05-22", "fixed_version": "9.0.20"}, {"id": "CVE-2015-3167", "url": "https://www.postgresql.org/support/security/CVE-2015-3167/", "fixed": {"9.0": "9.0.20", "9.1": "9.1.16", "9.2": "9.2.11", "9.3": "9.3.7", "9.4": "9.4.2"}, "score": 3.7, "title": "在contrib/pgcrypto中，统一将解密失败报告为“Wrong key or corrupt data”", "vector": "AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:N/A:N", "affected": {"9.0": "9.0", "9.1": "9.1", "9.2": "9.2", "9.3": "9.3", "9.4": "9.4"}, "component": "contrib module", "published": {"9.0": "2015-05-22", "9.1": "2015-05-22", "9.2": "2015-05-22", "9.3": "2015-05-22", "9.4": "2015-05-22"}, "introduced": {}, "cvss_version": "3.0", "description_en": "", "first_published": "2015-05-22", "fixed_version": "9.0.20"}], "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"}