{"format": 1, "from_release": {"date": "2010-09-20", "build": "9.0.0", "major": "9.0", "minor": 0, "manual": "9.0", "status": "stable", "doc_git": "", "version": "9.0.0", "eol_date": "2015-10-08", "date_text": "2010-09-20", "supported": false, "manual_url": "/docs/9.0/release-9-0.html", "source_url": "/docs/release/9.0.0/", "entry_count": 237, "placeholder": false, "content_hash": "b3a13a64cf6b309e68c009020650510a9a5f94ef0738462cb2eaab24b1b08b0b", "manual_build": "9.0.23", "source_as_of": "", "changes_count": 217, "doc_loaded_at": "2026-09-26T02:56:48.570247", "migration_html": "<p>对于希望从任何早期版本迁移数据的用户，需要使用 <span>pg_dump</span> 进行转储/恢复，或者使用 <span>pg_upgrade</span>。</p>\n<p>版本 9.0 包含一些为支持新特性和代码质量改进而有选择地破坏向后兼容性的变更。特别是，大量使用 PL/pgSQL、时间点恢复（PITR）或温备的用户应测试其应用，因为这些领域有轻微的用户可见变化。请注意以下不兼容之处：</p>\n<div>\n<div>\n</div>\n</div>\n<div>\n<div>\n</div>\n</div>\n<div>\n<div>\n</div>\n</div>\n<div>\n<div>\n</div>\n</div>\n<div>\n<div>\n</div>\n</div>\n<div>\n<div>\n</div>\n</div>", "compatibility_count": 20, "label": "9.0", "status_label": "历史版本", "eol": "2015-10-08", "age_days": 5854, "support_days": -4010}, "to_release": {"date": "2015-10-08", "build": "9.0.23", "major": "9.0", "minor": 23, "manual": "9.0", "status": "stable", "doc_git": "", "version": "9.0.23", "eol_date": "2015-10-08", "date_text": "2015-10-08", "supported": false, "manual_url": "/docs/9.0/release-9-0-23.html", "source_url": "/docs/release/9.0.23/", "entry_count": 47, "placeholder": false, "content_hash": "91a2008bc72c28354f7c8c69ad35d129b1c21f48e846bb73df1ba760b23c3073", "manual_build": "9.0.23", "source_as_of": "", "changes_count": 47, "doc_loaded_at": "2026-09-26T02:56:48.570247", "migration_html": "<p>    对于运行 9.0.X 的用户，不需要进行转储/恢复。</p><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.23", "status_label": "历史版本", "eol": "2015-10-08", "age_days": 4010, "support_days": -4010}, "groups": [{"date": "2015-10-08", "build": "9.0.23", "major": "9.0", "minor": 23, "manual": "9.0", "status": "stable", "doc_git": "", "version": "9.0.23", "eol_date": "2015-10-08", "date_text": "2015-10-08", "supported": false, "manual_url": "/docs/9.0/release-9-0-23.html", "source_url": "/docs/release/9.0.23/", "entry_count": 47, "placeholder": false, "content_hash": "91a2008bc72c28354f7c8c69ad35d129b1c21f48e846bb73df1ba760b23c3073", "manual_build": "9.0.23", "source_as_of": "", "changes_count": 47, "doc_loaded_at": "2026-09-26T02:56:48.570247", "migration_html": "<p>    对于运行 9.0.X 的用户，不需要进行转储/恢复。</p><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.23", "status_label": "历史版本", "eol": "2015-10-08", "age_days": 4010, "support_days": -4010, "entries": [{"id": "9.0.23-f6d5fd9c0b0fa047", "cves": ["CVE-2015-5288"], "html": "<p>     修复<code>contrib/pgcrypto</code>以检测并报告过短的<code>crypt()</code>盐值（Josh Kupershmidt）\n    </p><p>     某些无效的盐值参数会导致服务器崩溃或泄露少量服务器内存字节。我们尚未排除通过安排让泄露字节中出现机密信息实施攻击的可行性，但这种攻击似乎不太可能。（CVE-2015-5288）\n    </p>", "text": "修复contrib/pgcrypto以检测并报告过短的crypt()盐值（Josh Kupershmidt） 某些无效的盐值参数会导致服务器崩溃或泄露少量服务器内存字节。我们尚未排除通过安排让泄露字节中出现机密信息实施攻击的可行性，但这种攻击似乎不太可能。（CVE-2015-5288）", "title": "修复contrib/pgcrypto以检测并报告过短的crypt()盐值", "commits": [], "section": "变更", "category": "security", "source_url": "/docs/release/9.0.23/#id-1.11.6.5.6", "source_hash": "d4e9723ce1f9fbb8f73de7da9f7546bc34804df5113085fea4cfb3904440f9ce", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix contrib/pgcrypto to detect and report too-short crypt() salts (Josh Kupershmidt) Certain invalid salt arguments crashed the server or disclosed a few bytes of server memory. We have not ruled out the viability of attacks that arrange for presence of confidential information in the disclosed bytes, but they seem unlikely. (CVE-2015-5288)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.23/changes/001", "db_id": "09f590d22c6967162e3c8e7655021e8c", "patch_ids": [], "statement_hash": "a234bf621fcfcffa2cc89841dc444c39420ad13fdd09fcc48f6f91c441772849", "relations": [{"rule": 2, "type": "equivalent", "target": "023971ce213db745811080467a147da5", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a234bf621fcfcffa2cc89841dc444c39420ad13fdd09fcc48f6f91c441772849"}}, {"rule": 2, "type": "equivalent", "target": "4e8af8c24be51bf8965c3d4f3cd9023f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a234bf621fcfcffa2cc89841dc444c39420ad13fdd09fcc48f6f91c441772849"}}, {"rule": 2, "type": "equivalent", "target": "5c8d7e71c4ba5874e51f9ef1f2f6b446", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a234bf621fcfcffa2cc89841dc444c39420ad13fdd09fcc48f6f91c441772849"}}, {"rule": 2, "type": "equivalent", "target": "d955d1abe6e6e279632d815a8759c127", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a234bf621fcfcffa2cc89841dc444c39420ad13fdd09fcc48f6f91c441772849"}}], "version": "9.0.23", "category_label": "安全相关", "also_in": [], "variants": [], "related_changes": [{"db_id": "5c8d7e71c4ba5874e51f9ef1f2f6b446", "kind": "equivalent", "version": "9.4.5", "label": "9.4.5", "title": "修复contrib/pgcrypto以检测并报告过短的crypt()盐值", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a234bf621fcfcffa2cc89841dc444c39420ad13fdd09fcc48f6f91c441772849"}, "url": "/docs/compare/?release=9.4.5#9.4.5-f6d5fd9c0b0fa047", "source_url": "/docs/release/9.4.5/#id-1.11.6.26.5"}, {"db_id": "4e8af8c24be51bf8965c3d4f3cd9023f", "kind": "equivalent", "version": "9.3.10", "label": "9.3.10", "title": "修复contrib/pgcrypto以检测并报告过短的crypt()盐值", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a234bf621fcfcffa2cc89841dc444c39420ad13fdd09fcc48f6f91c441772849"}, "url": "/docs/compare/?release=9.3.10#9.3.10-f6d5fd9c0b0fa047", "source_url": "/docs/release/9.3.10/#id-1.11.6.20.5"}, {"db_id": "023971ce213db745811080467a147da5", "kind": "equivalent", "version": "9.2.14", "label": "9.2.14", "title": "修复contrib/pgcrypto以检测并报告过短的crypt()盐值", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a234bf621fcfcffa2cc89841dc444c39420ad13fdd09fcc48f6f91c441772849"}, "url": "/docs/compare/?release=9.2.14#9.2.14-f6d5fd9c0b0fa047", "source_url": "/docs/release/9.2.14/#id-1.11.6.15.5"}, {"db_id": "d955d1abe6e6e279632d815a8759c127", "kind": "equivalent", "version": "9.1.19", "label": "9.1.19", "title": "修复contrib/pgcrypto以检测并报告过短的crypt()盐值", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a234bf621fcfcffa2cc89841dc444c39420ad13fdd09fcc48f6f91c441772849"}, "url": "/docs/compare/?release=9.1.19#9.1.19-f6d5fd9c0b0fa047", "source_url": "/docs/release/9.1.19/#id-1.11.6.10.5"}]}, {"id": "9.0.23-11fa2086c9cecc13", "cves": [], "html": "<p>     修复属于外部子事务的门户（游标）失败后的子事务清理问题（Tom Lane、Michael Paquier）\n    </p><p>     在外部子事务游标中执行的函数可能因引用在内部子事务中创建的关系而导致断言失败或崩溃。\n    </p>", "text": "修复属于外部子事务的门户（游标）失败后的子事务清理问题（Tom Lane、Michael Paquier） 在外部子事务游标中执行的函数可能因引用在内部子事务中创建的关系而导致断言失败或崩溃。", "title": "修复属于外部子事务的门户（游标）失败后的子事务清理问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.23/#id-1.11.6.5.6", "source_hash": "bea5a8bfe4f2321ada94c973352b782b797d27c9862e5a8e5282fec1f1b0575c", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix subtransaction cleanup after a portal (cursor) belonging to an outer subtransaction fails (Tom Lane, Michael Paquier) A function executed in an outer-subtransaction cursor could cause an assertion failure or crash by referencing a relation created within an inner subtransaction.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.23/changes/002", "db_id": "94727363730560e355182e09b0eb64e6", "patch_ids": [], "statement_hash": "af81d0941acffc00a731e1e617e596c508dfdccb8fd51ef00f686904b2779db5", "relations": [{"rule": 2, "type": "equivalent", "target": "839757c8fdc8f6ba56622f7cd3c1e54a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "af81d0941acffc00a731e1e617e596c508dfdccb8fd51ef00f686904b2779db5"}}, {"rule": 2, "type": "equivalent", "target": "9c97416d4a2f038c6ae822c7406d44e1", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "af81d0941acffc00a731e1e617e596c508dfdccb8fd51ef00f686904b2779db5"}}, {"rule": 2, "type": "equivalent", "target": "a26a163b498feea73aba821c37843b81", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "af81d0941acffc00a731e1e617e596c508dfdccb8fd51ef00f686904b2779db5"}}, {"rule": 2, "type": "equivalent", "target": "da7cb39314ff628774b9077464dec997", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "af81d0941acffc00a731e1e617e596c508dfdccb8fd51ef00f686904b2779db5"}}], "version": "9.0.23", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "9c97416d4a2f038c6ae822c7406d44e1", "kind": "equivalent", "version": "9.4.5", "label": "9.4.5", "title": "修复属于外部子事务的门户（游标）失败后的子事务清理问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "af81d0941acffc00a731e1e617e596c508dfdccb8fd51ef00f686904b2779db5"}, "url": "/docs/compare/?release=9.4.5#9.4.5-11fa2086c9cecc13", "source_url": "/docs/release/9.4.5/#id-1.11.6.26.5"}, {"db_id": "da7cb39314ff628774b9077464dec997", "kind": "equivalent", "version": "9.3.10", "label": "9.3.10", "title": "修复属于外部子事务的门户（游标）失败后的子事务清理问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "af81d0941acffc00a731e1e617e596c508dfdccb8fd51ef00f686904b2779db5"}, "url": "/docs/compare/?release=9.3.10#9.3.10-11fa2086c9cecc13", "source_url": "/docs/release/9.3.10/#id-1.11.6.20.5"}, {"db_id": "839757c8fdc8f6ba56622f7cd3c1e54a", "kind": "equivalent", "version": "9.2.14", "label": "9.2.14", "title": "修复属于外部子事务的门户（游标）失败后的子事务清理问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "af81d0941acffc00a731e1e617e596c508dfdccb8fd51ef00f686904b2779db5"}, "url": "/docs/compare/?release=9.2.14#9.2.14-11fa2086c9cecc13", "source_url": "/docs/release/9.2.14/#id-1.11.6.15.5"}, {"db_id": "a26a163b498feea73aba821c37843b81", "kind": "equivalent", "version": "9.1.19", "label": "9.1.19", "title": "修复属于外部子事务的门户（游标）失败后的子事务清理问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "af81d0941acffc00a731e1e617e596c508dfdccb8fd51ef00f686904b2779db5"}, "url": "/docs/compare/?release=9.1.19#9.1.19-11fa2086c9cecc13", "source_url": "/docs/release/9.1.19/#id-1.11.6.10.5"}]}, {"id": "9.0.23-4b6caa96288d390a", "cves": [], "html": "<p>     修复关系插入关系缓存<span>“<span>init 文件</span>”</span>的问题（Tom Lane）\n    </p><p>     最近几个小版本中一个补丁的疏忽导致<code>pg_trigger_tgrelid_tgname_index</code>被遗漏在 init 文件之外。后续会话检测到这一点后认定 init 文件已损坏并静默忽略它，导致会话启动时间显著退化。除修复该缺陷外，还加入了一些防护，使未来任何类似错误更明显。\n    </p>", "text": "修复关系插入关系缓存“init 文件”的问题（Tom Lane） 最近几个小版本中一个补丁的疏忽导致pg_trigger_tgrelid_tgname_index被遗漏在 init 文件之外。后续会话检测到这一点后认定 init 文件已损坏并静默忽略它，导致会话启动时间显著退化。除修复该缺陷外，还加入了一些防护，使未来任何类似错误更明显。", "title": "修复关系插入关系缓存“init 文件”的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.23/#id-1.11.6.5.6", "source_hash": "adc042a4849996aa538b138c48e7f790cf49f8a47f92b489de14b93488303847", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix insertion of relations into the relation cache init file (Tom Lane) An oversight in a patch in the most recent minor releases caused pg_trigger_tgrelid_tgname_index to be omitted from the init file. Subsequent sessions detected this, then deemed the init file to be broken and silently ignored it, resulting in a significant degradation in session startup time. In addition to fixing the bug, install some guards so that any similar future mistake will be more obvious.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.23/changes/003", "db_id": "98c88ab03618ab451f3ac23148b16707", "patch_ids": [], "statement_hash": "ca2ca49868e752e81564376cd0cdd0dc49319e455a2654a8d1759934f33f7e5c", "relations": [{"rule": 2, "type": "equivalent", "target": "61692501788aaceb31ddad400e61bbcd", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ca2ca49868e752e81564376cd0cdd0dc49319e455a2654a8d1759934f33f7e5c"}}, {"rule": 2, "type": "equivalent", "target": "7b8f13be5e717f3e0828c7949d8bd380", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ca2ca49868e752e81564376cd0cdd0dc49319e455a2654a8d1759934f33f7e5c"}}, {"rule": 2, "type": "equivalent", "target": "99944d7e0ae20b23dd7b275bf460d607", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ca2ca49868e752e81564376cd0cdd0dc49319e455a2654a8d1759934f33f7e5c"}}, {"rule": 2, "type": "equivalent", "target": "f1ed4b512fa43344dc1b27427c01664f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ca2ca49868e752e81564376cd0cdd0dc49319e455a2654a8d1759934f33f7e5c"}}], "version": "9.0.23", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "61692501788aaceb31ddad400e61bbcd", "kind": "equivalent", "version": "9.4.5", "label": "9.4.5", "title": "修复关系插入关系缓存“init 文件”的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ca2ca49868e752e81564376cd0cdd0dc49319e455a2654a8d1759934f33f7e5c"}, "url": "/docs/compare/?release=9.4.5#9.4.5-4b6caa96288d390a", "source_url": "/docs/release/9.4.5/#id-1.11.6.26.5"}, {"db_id": "99944d7e0ae20b23dd7b275bf460d607", "kind": "equivalent", "version": "9.3.10", "label": "9.3.10", "title": "修复关系插入关系缓存“init 文件”的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ca2ca49868e752e81564376cd0cdd0dc49319e455a2654a8d1759934f33f7e5c"}, "url": "/docs/compare/?release=9.3.10#9.3.10-4b6caa96288d390a", "source_url": "/docs/release/9.3.10/#id-1.11.6.20.5"}, {"db_id": "7b8f13be5e717f3e0828c7949d8bd380", "kind": "equivalent", "version": "9.2.14", "label": "9.2.14", "title": "修复关系插入关系缓存“init 文件”的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ca2ca49868e752e81564376cd0cdd0dc49319e455a2654a8d1759934f33f7e5c"}, "url": "/docs/compare/?release=9.2.14#9.2.14-4b6caa96288d390a", "source_url": "/docs/release/9.2.14/#id-1.11.6.15.5"}, {"db_id": "f1ed4b512fa43344dc1b27427c01664f", "kind": "equivalent", "version": "9.1.19", "label": "9.1.19", "title": "修复关系插入关系缓存“init 文件”的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ca2ca49868e752e81564376cd0cdd0dc49319e455a2654a8d1759934f33f7e5c"}, "url": "/docs/compare/?release=9.1.19#9.1.19-4b6caa96288d390a", "source_url": "/docs/release/9.1.19/#id-1.11.6.10.5"}]}, {"id": "9.0.23-d3c5f0a400989c3a", "cves": [], "html": "<p>      避免向 SPI 查询结果插入大量元组时的 O(N^2) 行为（Neil Conway）\n     </p>", "text": "避免向 SPI 查询结果插入大量元组时的 O(N^2) 行为（Neil Conway）", "title": "避免向 SPI 查询结果插入大量元组时的 O(N^2) 行为", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.23/#id-1.11.6.5.6", "source_hash": "cb262d2cda9ad6e192d53241855b146ef602c6223edd7b8c27a49186cfd7e387", "section_path": ["变更"], "commit_groups": [], "identity_text": "Avoid O(N^2) behavior when inserting many tuples into a SPI query result (Neil Conway)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.23/changes/004", "db_id": "e8341192d7e0259308ae4f89de77f112", "patch_ids": [], "statement_hash": "c21d5f0f2d1589ec56e8d595f44daf9997e8e3927e2e25ce07a6549210fa24b6", "relations": [{"rule": 2, "type": "equivalent", "target": "42665046f8921ee2cb564cacf4b04bf5", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c21d5f0f2d1589ec56e8d595f44daf9997e8e3927e2e25ce07a6549210fa24b6"}}, {"rule": 2, "type": "equivalent", "target": "7e133ac0846653b21e325c503d0647c3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c21d5f0f2d1589ec56e8d595f44daf9997e8e3927e2e25ce07a6549210fa24b6"}}, {"rule": 2, "type": "equivalent", "target": "ad508996ce70ab783648766dd9917f32", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c21d5f0f2d1589ec56e8d595f44daf9997e8e3927e2e25ce07a6549210fa24b6"}}, {"rule": 2, "type": "equivalent", "target": "b36ce3b829b20f058574f19c41196450", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c21d5f0f2d1589ec56e8d595f44daf9997e8e3927e2e25ce07a6549210fa24b6"}}], "version": "9.0.23", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "ad508996ce70ab783648766dd9917f32", "kind": "equivalent", "version": "9.4.5", "label": "9.4.5", "title": "避免向 SPI 查询结果插入大量元组时的 O(N^2) 行为", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c21d5f0f2d1589ec56e8d595f44daf9997e8e3927e2e25ce07a6549210fa24b6"}, "url": "/docs/compare/?release=9.4.5#9.4.5-d3c5f0a400989c3a", "source_url": "/docs/release/9.4.5/#id-1.11.6.26.5"}, {"db_id": "42665046f8921ee2cb564cacf4b04bf5", "kind": "equivalent", "version": "9.3.10", "label": "9.3.10", "title": "避免向 SPI 查询结果插入大量元组时的 O(N^2) 行为", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c21d5f0f2d1589ec56e8d595f44daf9997e8e3927e2e25ce07a6549210fa24b6"}, "url": "/docs/compare/?release=9.3.10#9.3.10-d3c5f0a400989c3a", "source_url": "/docs/release/9.3.10/#id-1.11.6.20.5"}, {"db_id": "7e133ac0846653b21e325c503d0647c3", "kind": "equivalent", "version": "9.2.14", "label": "9.2.14", "title": "避免向 SPI 查询结果插入大量元组时的 O(N^2) 行为", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c21d5f0f2d1589ec56e8d595f44daf9997e8e3927e2e25ce07a6549210fa24b6"}, "url": "/docs/compare/?release=9.2.14#9.2.14-d3c5f0a400989c3a", "source_url": "/docs/release/9.2.14/#id-1.11.6.15.5"}, {"db_id": "b36ce3b829b20f058574f19c41196450", "kind": "equivalent", "version": "9.1.19", "label": "9.1.19", "title": "避免向 SPI 查询结果插入大量元组时的 O(N^2) 行为", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c21d5f0f2d1589ec56e8d595f44daf9997e8e3927e2e25ce07a6549210fa24b6"}, "url": "/docs/compare/?release=9.1.19#9.1.19-d3c5f0a400989c3a", "source_url": "/docs/release/9.1.19/#id-1.11.6.10.5"}]}, {"id": "9.0.23-6e0dfb80f0b78715", "cves": [], "html": "<p>      改进存在大量未读通知时<code>LISTEN</code>的启动时间（Matt Newell）\n     </p>", "text": "改进存在大量未读通知时LISTEN的启动时间（Matt Newell）", "title": "改进存在大量未读通知时LISTEN的启动时间", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.23/#id-1.11.6.5.6", "source_hash": "c05b9b44b6cd56907b71c8bf7adb1100373d2b11fede919487a6e8ef5a10b50c", "section_path": ["变更"], "commit_groups": [], "identity_text": "Improve LISTEN startup time when there are many unread notifications (Matt Newell)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.23/changes/005", "db_id": "7416578426fe5fb880075a18b8b734c5", "patch_ids": [], "statement_hash": "496fc16ccdbdecbc733b1d80533755907f696d0531952a2d7d79bc70f8e4fdcf", "relations": [{"rule": 2, "type": "equivalent", "target": "49617164dd58b0c32c44e1be173c91e6", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "496fc16ccdbdecbc733b1d80533755907f696d0531952a2d7d79bc70f8e4fdcf"}}, {"rule": 2, "type": "equivalent", "target": "c12c81c90eff79e8c5bde28c085b1263", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "496fc16ccdbdecbc733b1d80533755907f696d0531952a2d7d79bc70f8e4fdcf"}}, {"rule": 2, "type": "equivalent", "target": "c19ffcaa837c4dcb69af0854e6f1818b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "496fc16ccdbdecbc733b1d80533755907f696d0531952a2d7d79bc70f8e4fdcf"}}, {"rule": 2, "type": "equivalent", "target": "eaf59084e6d1cdf68284337913e0cfe1", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "496fc16ccdbdecbc733b1d80533755907f696d0531952a2d7d79bc70f8e4fdcf"}}], "version": "9.0.23", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "c12c81c90eff79e8c5bde28c085b1263", "kind": "equivalent", "version": "9.4.5", "label": "9.4.5", "title": "改进存在大量未读通知时 LISTEN 的启动时间", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "496fc16ccdbdecbc733b1d80533755907f696d0531952a2d7d79bc70f8e4fdcf"}, "url": "/docs/compare/?release=9.4.5#9.4.5-16227e07c265bf9b", "source_url": "/docs/release/9.4.5/#id-1.11.6.26.5"}, {"db_id": "eaf59084e6d1cdf68284337913e0cfe1", "kind": "equivalent", "version": "9.3.10", "label": "9.3.10", "title": "改进存在大量未读通知时LISTEN的启动时间", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "496fc16ccdbdecbc733b1d80533755907f696d0531952a2d7d79bc70f8e4fdcf"}, "url": "/docs/compare/?release=9.3.10#9.3.10-6e0dfb80f0b78715", "source_url": "/docs/release/9.3.10/#id-1.11.6.20.5"}, {"db_id": "49617164dd58b0c32c44e1be173c91e6", "kind": "equivalent", "version": "9.2.14", "label": "9.2.14", "title": "改进存在大量未读通知时LISTEN的启动时间", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "496fc16ccdbdecbc733b1d80533755907f696d0531952a2d7d79bc70f8e4fdcf"}, "url": "/docs/compare/?release=9.2.14#9.2.14-6e0dfb80f0b78715", "source_url": "/docs/release/9.2.14/#id-1.11.6.15.5"}, {"db_id": "c19ffcaa837c4dcb69af0854e6f1818b", "kind": "equivalent", "version": "9.1.19", "label": "9.1.19", "title": "改进存在大量未读通知时LISTEN的启动时间", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "496fc16ccdbdecbc733b1d80533755907f696d0531952a2d7d79bc70f8e4fdcf"}, "url": "/docs/compare/?release=9.1.19#9.1.19-6e0dfb80f0b78715", "source_url": "/docs/release/9.1.19/#id-1.11.6.10.5"}]}, {"id": "9.0.23-09699f683f48c936", "cves": [], "html": "<p>     默认禁用 SSL 重新协商（Michael Paquier、Andres Freund）\n    </p><p>     虽然使用 SSL 重新协商在理论上是个好主意，但实践中我们看到了太多缺陷，无论是底层 OpenSSL 库中还是我们对它的使用中。重新协商将在 9.5 及更高版本中完全移除。在较旧的分支中，只是把<code>ssl_renegotiation_limit</code>的默认值改为零（禁用）。\n    </p>", "text": "默认禁用 SSL 重新协商（Michael Paquier、Andres Freund） 虽然使用 SSL 重新协商在理论上是个好主意，但实践中我们看到了太多缺陷，无论是底层 OpenSSL 库中还是我们对它的使用中。重新协商将在 9.5 及更高版本中完全移除。在较旧的分支中，只是把ssl_renegotiation_limit的默认值改为零（禁用）。", "title": "默认禁用 SSL 重新协商", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.23/#id-1.11.6.5.6", "source_hash": "99a1437eeb56f818ce3f302d2d2061d508e11513179d861295d6c3f8eb6c21d8", "section_path": ["变更"], "commit_groups": [], "identity_text": "Disable SSL renegotiation by default (Michael Paquier, Andres Freund) While use of SSL renegotiation is a good idea in theory, we have seen too many bugs in practice, both in the underlying OpenSSL library and in our usage of it. Renegotiation will be removed entirely in 9.5 and later. In the older branches, just change the default value of ssl_renegotiation_limit to zero (disabled).", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.23/changes/006", "db_id": "8374057133fda4900775cef6cd9dc201", "patch_ids": [], "statement_hash": "cc12f79347924d968c8511c23571fe8ed22d33cc49f2f4b7fb9af14432e77bb5", "relations": [{"rule": 2, "type": "equivalent", "target": "13ed9c5c66dae3c0189d0ff55a7aebe2", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cc12f79347924d968c8511c23571fe8ed22d33cc49f2f4b7fb9af14432e77bb5"}}, {"rule": 2, "type": "equivalent", "target": "83ec0f3c7a8302177c216fecc429cc95", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cc12f79347924d968c8511c23571fe8ed22d33cc49f2f4b7fb9af14432e77bb5"}}, {"rule": 2, "type": "equivalent", "target": "a0616a46d6f32209f2523632d7815d18", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cc12f79347924d968c8511c23571fe8ed22d33cc49f2f4b7fb9af14432e77bb5"}}, {"rule": 2, "type": "equivalent", "target": "d26b895676096d19b8d3f0e5cd3529d7", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cc12f79347924d968c8511c23571fe8ed22d33cc49f2f4b7fb9af14432e77bb5"}}], "version": "9.0.23", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "13ed9c5c66dae3c0189d0ff55a7aebe2", "kind": "equivalent", "version": "9.4.5", "label": "9.4.5", "title": "默认禁用 SSL 重新协商", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cc12f79347924d968c8511c23571fe8ed22d33cc49f2f4b7fb9af14432e77bb5"}, "url": "/docs/compare/?release=9.4.5#9.4.5-09699f683f48c936", "source_url": "/docs/release/9.4.5/#id-1.11.6.26.5"}, {"db_id": "83ec0f3c7a8302177c216fecc429cc95", "kind": "equivalent", "version": "9.3.10", "label": "9.3.10", "title": "默认禁用 SSL 重新协商", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cc12f79347924d968c8511c23571fe8ed22d33cc49f2f4b7fb9af14432e77bb5"}, "url": "/docs/compare/?release=9.3.10#9.3.10-09699f683f48c936", "source_url": "/docs/release/9.3.10/#id-1.11.6.20.5"}, {"db_id": "d26b895676096d19b8d3f0e5cd3529d7", "kind": "equivalent", "version": "9.2.14", "label": "9.2.14", "title": "默认禁用 SSL 重新协商", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cc12f79347924d968c8511c23571fe8ed22d33cc49f2f4b7fb9af14432e77bb5"}, "url": "/docs/compare/?release=9.2.14#9.2.14-09699f683f48c936", "source_url": "/docs/release/9.2.14/#id-1.11.6.15.5"}, {"db_id": "a0616a46d6f32209f2523632d7815d18", "kind": "equivalent", "version": "9.1.19", "label": "9.1.19", "title": "默认禁用 SSL 重新协商", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cc12f79347924d968c8511c23571fe8ed22d33cc49f2f4b7fb9af14432e77bb5"}, "url": "/docs/compare/?release=9.1.19#9.1.19-09699f683f48c936", "source_url": "/docs/release/9.1.19/#id-1.11.6.10.5"}]}, {"id": "9.0.23-ab785dfd161f565c", "cves": [], "html": "<p>     降低<code>*_freeze_max_age</code>参数的最小值（Andres Freund）\n    </p><p>     这主要是为了使相关行为的测试不那么耗时，但对磁盘空间有限的安装也可能有价值。\n    </p>", "text": "降低*_freeze_max_age参数的最小值（Andres Freund） 这主要是为了使相关行为的测试不那么耗时，但对磁盘空间有限的安装也可能有价值。", "title": "降低*_freeze_max_age参数的最小值", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.23/#id-1.11.6.5.6", "source_hash": "2b4f80371a91f32770f1a790081565621cccc044117f7bbe5d64582b0214a2fd", "section_path": ["变更"], "commit_groups": [], "identity_text": "Lower the minimum values of the *_freeze_max_age parameters (Andres Freund) This is mainly to make tests of related behavior less time-consuming, but it may also be of value for installations with limited disk space.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.23/changes/007", "db_id": "06ade0f8f704600dddc2d0c6549c52d3", "patch_ids": [], "statement_hash": "be34687f5ad0cb53e280b4edc83d7cd361de54a77383eedf29d75efaf10ffb8e", "relations": [{"rule": 2, "type": "equivalent", "target": "6190a4f6cb903cf97f22576381f04c41", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "be34687f5ad0cb53e280b4edc83d7cd361de54a77383eedf29d75efaf10ffb8e"}}, {"rule": 2, "type": "equivalent", "target": "85f9bf66588d9dee780b47a5f1e61b95", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "be34687f5ad0cb53e280b4edc83d7cd361de54a77383eedf29d75efaf10ffb8e"}}, {"rule": 2, "type": "equivalent", "target": "93e66ee1b1279d2cc9a8b4144f864a83", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "be34687f5ad0cb53e280b4edc83d7cd361de54a77383eedf29d75efaf10ffb8e"}}, {"rule": 2, "type": "equivalent", "target": "d52a0ef2cbc43bd2579b8119ed898943", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "be34687f5ad0cb53e280b4edc83d7cd361de54a77383eedf29d75efaf10ffb8e"}}], "version": "9.0.23", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "93e66ee1b1279d2cc9a8b4144f864a83", "kind": "equivalent", "version": "9.4.5", "label": "9.4.5", "title": "降低*_freeze_max_age参数的最小值", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "be34687f5ad0cb53e280b4edc83d7cd361de54a77383eedf29d75efaf10ffb8e"}, "url": "/docs/compare/?release=9.4.5#9.4.5-ab785dfd161f565c", "source_url": "/docs/release/9.4.5/#id-1.11.6.26.5"}, {"db_id": "85f9bf66588d9dee780b47a5f1e61b95", "kind": "equivalent", "version": "9.3.10", "label": "9.3.10", "title": "降低*_freeze_max_age参数的最小值", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "be34687f5ad0cb53e280b4edc83d7cd361de54a77383eedf29d75efaf10ffb8e"}, "url": "/docs/compare/?release=9.3.10#9.3.10-ab785dfd161f565c", "source_url": "/docs/release/9.3.10/#id-1.11.6.20.5"}, {"db_id": "6190a4f6cb903cf97f22576381f04c41", "kind": "equivalent", "version": "9.2.14", "label": "9.2.14", "title": "降低*_freeze_max_age参数的最小值", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "be34687f5ad0cb53e280b4edc83d7cd361de54a77383eedf29d75efaf10ffb8e"}, "url": "/docs/compare/?release=9.2.14#9.2.14-ab785dfd161f565c", "source_url": "/docs/release/9.2.14/#id-1.11.6.15.5"}, {"db_id": "d52a0ef2cbc43bd2579b8119ed898943", "kind": "equivalent", "version": "9.1.19", "label": "9.1.19", "title": "降低*_freeze_max_age参数的最小值", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "be34687f5ad0cb53e280b4edc83d7cd361de54a77383eedf29d75efaf10ffb8e"}, "url": "/docs/compare/?release=9.1.19#9.1.19-ab785dfd161f565c", "source_url": "/docs/release/9.1.19/#id-1.11.6.10.5"}]}, {"id": "9.0.23-cbbb18cea7f79e9a", "cves": [], "html": "<p>      将<code>wal_buffers</code>的最大值限制为 2GB 以避免服务器崩溃（Josh Berkus）\n     </p>", "text": "将wal_buffers的最大值限制为 2GB 以避免服务器崩溃（Josh Berkus）", "title": "将wal_buffers的最大值限制为 2GB 以避免服务器崩溃", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.23/#id-1.11.6.5.6", "source_hash": "7acb495540738b189d62e071eeab0137e64f81a740454885f72244064f2ed89f", "section_path": ["变更"], "commit_groups": [], "identity_text": "Limit the maximum value of wal_buffers to 2GB to avoid server crashes (Josh Berkus)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.23/changes/008", "db_id": "787ec49c1b4032722e54547c3a46053a", "patch_ids": [], "statement_hash": "bda8dc09315f60226e7d3a2b147721318b865983ad054a04e0cea9bbe0323a30", "relations": [{"rule": 2, "type": "equivalent", "target": "01d1082a047d332948a79d8390a2ff28", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bda8dc09315f60226e7d3a2b147721318b865983ad054a04e0cea9bbe0323a30"}}, {"rule": 2, "type": "equivalent", "target": "67c8909a29ecc6167cfd5cbde0f3e9ef", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bda8dc09315f60226e7d3a2b147721318b865983ad054a04e0cea9bbe0323a30"}}, {"rule": 2, "type": "equivalent", "target": "688c241a736ca3a6337f246f416cd2ec", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bda8dc09315f60226e7d3a2b147721318b865983ad054a04e0cea9bbe0323a30"}}, {"rule": 2, "type": "equivalent", "target": "89d56b6dcaa31b1ea3efc46437384555", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bda8dc09315f60226e7d3a2b147721318b865983ad054a04e0cea9bbe0323a30"}}], "version": "9.0.23", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "67c8909a29ecc6167cfd5cbde0f3e9ef", "kind": "equivalent", "version": "9.4.5", "label": "9.4.5", "title": "将 wal_buffers 的最大值限制为 2GB 以避免服务器崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bda8dc09315f60226e7d3a2b147721318b865983ad054a04e0cea9bbe0323a30"}, "url": "/docs/compare/?release=9.4.5#9.4.5-5e55b492958dfdc4", "source_url": "/docs/release/9.4.5/#id-1.11.6.26.5"}, {"db_id": "688c241a736ca3a6337f246f416cd2ec", "kind": "equivalent", "version": "9.3.10", "label": "9.3.10", "title": "将wal_buffers的最大值限制为 2GB 以避免服务器崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bda8dc09315f60226e7d3a2b147721318b865983ad054a04e0cea9bbe0323a30"}, "url": "/docs/compare/?release=9.3.10#9.3.10-cbbb18cea7f79e9a", "source_url": "/docs/release/9.3.10/#id-1.11.6.20.5"}, {"db_id": "89d56b6dcaa31b1ea3efc46437384555", "kind": "equivalent", "version": "9.2.14", "label": "9.2.14", "title": "将wal_buffers的最大值限制为 2GB 以避免服务器崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bda8dc09315f60226e7d3a2b147721318b865983ad054a04e0cea9bbe0323a30"}, "url": "/docs/compare/?release=9.2.14#9.2.14-cbbb18cea7f79e9a", "source_url": "/docs/release/9.2.14/#id-1.11.6.15.5"}, {"db_id": "01d1082a047d332948a79d8390a2ff28", "kind": "equivalent", "version": "9.1.19", "label": "9.1.19", "title": "将wal_buffers的最大值限制为 2GB 以避免服务器崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bda8dc09315f60226e7d3a2b147721318b865983ad054a04e0cea9bbe0323a30"}, "url": "/docs/compare/?release=9.1.19#9.1.19-cbbb18cea7f79e9a", "source_url": "/docs/release/9.1.19/#id-1.11.6.10.5"}]}, {"id": "9.0.23-5ab40998afc40591", "cves": [], "html": "<p>      修复<code>numeric</code>值相乘时罕见的内部溢出（Dean Rasheed）\n     </p>", "text": "修复numeric值相乘时罕见的内部溢出（Dean Rasheed）", "title": "修复numeric值相乘时罕见的内部溢出", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.23/#id-1.11.6.5.6", "source_hash": "e36b95abc5c616833bbacef86130af97cda3c68d235862bb54e855907fee05ea", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix rare internal overflow in multiplication of numeric values (Dean Rasheed)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.23/changes/009", "db_id": "5502408247c918ed511b18a820bedbf6", "patch_ids": [], "statement_hash": "05deb5897b8df4af1be5e0ade77d0f342c64495e62d83e62803af1decf8cf37e", "relations": [{"rule": 2, "type": "equivalent", "target": "4886f433ebe331decda4fe091ac47825", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "05deb5897b8df4af1be5e0ade77d0f342c64495e62d83e62803af1decf8cf37e"}}, {"rule": 2, "type": "equivalent", "target": "48b0d72f2d21ee198d97e42f737192ce", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "05deb5897b8df4af1be5e0ade77d0f342c64495e62d83e62803af1decf8cf37e"}}, {"rule": 2, "type": "equivalent", "target": "8b831bcf5529479b8cf75162380c68b9", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "05deb5897b8df4af1be5e0ade77d0f342c64495e62d83e62803af1decf8cf37e"}}, {"rule": 2, "type": "equivalent", "target": "b322d02f29d70ba46f6dfe2bee7b74a7", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "05deb5897b8df4af1be5e0ade77d0f342c64495e62d83e62803af1decf8cf37e"}}], "version": "9.0.23", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "8b831bcf5529479b8cf75162380c68b9", "kind": "equivalent", "version": "9.4.5", "label": "9.4.5", "title": "修复 numeric 值乘法中罕见的内部溢出", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "05deb5897b8df4af1be5e0ade77d0f342c64495e62d83e62803af1decf8cf37e"}, "url": "/docs/compare/?release=9.4.5#9.4.5-f329b7a3c5a751bc", "source_url": "/docs/release/9.4.5/#id-1.11.6.26.5"}, {"db_id": "b322d02f29d70ba46f6dfe2bee7b74a7", "kind": "equivalent", "version": "9.3.10", "label": "9.3.10", "title": "修复numeric值相乘时罕见的内部溢出", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "05deb5897b8df4af1be5e0ade77d0f342c64495e62d83e62803af1decf8cf37e"}, "url": "/docs/compare/?release=9.3.10#9.3.10-5ab40998afc40591", "source_url": "/docs/release/9.3.10/#id-1.11.6.20.5"}, {"db_id": "48b0d72f2d21ee198d97e42f737192ce", "kind": "equivalent", "version": "9.2.14", "label": "9.2.14", "title": "修复numeric值相乘时罕见的内部溢出", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "05deb5897b8df4af1be5e0ade77d0f342c64495e62d83e62803af1decf8cf37e"}, "url": "/docs/compare/?release=9.2.14#9.2.14-5ab40998afc40591", "source_url": "/docs/release/9.2.14/#id-1.11.6.15.5"}, {"db_id": "4886f433ebe331decda4fe091ac47825", "kind": "equivalent", "version": "9.1.19", "label": "9.1.19", "title": "修复numeric值相乘时罕见的内部溢出", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "05deb5897b8df4af1be5e0ade77d0f342c64495e62d83e62803af1decf8cf37e"}, "url": "/docs/compare/?release=9.1.19#9.1.19-5ab40998afc40591", "source_url": "/docs/release/9.1.19/#id-1.11.6.10.5"}]}, {"id": "9.0.23-8100bad273f60224", "cves": [], "html": "<p>      防御涉及记录类型、范围类型、<code>json</code>、<code>jsonb</code>、<code>tsquery</code>、<code>ltxtquery</code>和<code>query_int</code>的难以触发的栈溢出（Noah Misch）\n     </p>", "text": "防御涉及记录类型、范围类型、json、jsonb、tsquery、ltxtquery和query_int的难以触发的栈溢出（Noah Misch）", "title": "防御涉及记录类型、范围类型、json、jsonb、tsquery、ltxtquery和query_int的难以触发的栈溢出", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.23/#id-1.11.6.5.6", "source_hash": "8b968dd9d281af74b0d9d091e2fd9e106b20a61874e1693440a211468707cd1e", "section_path": ["变更"], "commit_groups": [], "identity_text": "Guard against hard-to-reach stack overflows involving record types, range types, json, jsonb, tsquery, ltxtquery and query_int (Noah Misch)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.23/changes/010", "db_id": "448cc116f84055189ca00d97c7c221d7", "patch_ids": [], "statement_hash": "2caac7a754e254046f5ce76a761e2a06ed4c5c87ccf2350fe83e6fb908dfd249", "relations": [{"rule": 2, "type": "equivalent", "target": "0f19e1e89543fb6a02605f737f84e6d8", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2caac7a754e254046f5ce76a761e2a06ed4c5c87ccf2350fe83e6fb908dfd249"}}, {"rule": 2, "type": "equivalent", "target": "94c672bfb1491ed006e73ea4d593cc01", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2caac7a754e254046f5ce76a761e2a06ed4c5c87ccf2350fe83e6fb908dfd249"}}, {"rule": 2, "type": "equivalent", "target": "acdeb71eaf4e3e4f487e6bbe3cf2858e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2caac7a754e254046f5ce76a761e2a06ed4c5c87ccf2350fe83e6fb908dfd249"}}, {"rule": 2, "type": "equivalent", "target": "c4ebf4355c4dc6b78b3d850807e2a110", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2caac7a754e254046f5ce76a761e2a06ed4c5c87ccf2350fe83e6fb908dfd249"}}], "version": "9.0.23", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "c4ebf4355c4dc6b78b3d850807e2a110", "kind": "equivalent", "version": "9.4.5", "label": "9.4.5", "title": "防范涉及记录类型、范围类型、json、jsonb、tsquery、ltxtquery 和 query_int 的难以触发的栈溢出", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2caac7a754e254046f5ce76a761e2a06ed4c5c87ccf2350fe83e6fb908dfd249"}, "url": "/docs/compare/?release=9.4.5#9.4.5-37de803dae4265c4", "source_url": "/docs/release/9.4.5/#id-1.11.6.26.5"}, {"db_id": "acdeb71eaf4e3e4f487e6bbe3cf2858e", "kind": "equivalent", "version": "9.3.10", "label": "9.3.10", "title": "防御涉及记录类型、范围类型、json、jsonb、tsquery、ltxtquery和query_int的难以触发的栈溢出", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2caac7a754e254046f5ce76a761e2a06ed4c5c87ccf2350fe83e6fb908dfd249"}, "url": "/docs/compare/?release=9.3.10#9.3.10-8100bad273f60224", "source_url": "/docs/release/9.3.10/#id-1.11.6.20.5"}, {"db_id": "94c672bfb1491ed006e73ea4d593cc01", "kind": "equivalent", "version": "9.2.14", "label": "9.2.14", "title": "防御涉及记录类型、范围类型、json、jsonb、tsquery、ltxtquery和query_int的难以触发的栈溢出", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2caac7a754e254046f5ce76a761e2a06ed4c5c87ccf2350fe83e6fb908dfd249"}, "url": "/docs/compare/?release=9.2.14#9.2.14-8100bad273f60224", "source_url": "/docs/release/9.2.14/#id-1.11.6.15.5"}, {"db_id": "0f19e1e89543fb6a02605f737f84e6d8", "kind": "equivalent", "version": "9.1.19", "label": "9.1.19", "title": "防御涉及记录类型、范围类型、json、jsonb、tsquery、ltxtquery和query_int的难以触发的栈溢出", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2caac7a754e254046f5ce76a761e2a06ed4c5c87ccf2350fe83e6fb908dfd249"}, "url": "/docs/compare/?release=9.1.19#9.1.19-8100bad273f60224", "source_url": "/docs/release/9.1.19/#id-1.11.6.10.5"}]}, {"id": "9.0.23-e3b09b3da48aaee2", "cves": [], "html": "<p>     修复日期时间输入中<code>DOW</code>和<code>DOY</code>的处理（Greg Stark）\n    </p><p>     这些记号本不应在日期时间值中使用，但过去它们导致的是难懂的内部错误消息，而不是<span>“<span>无效的输入语法</span>”</span>。\n    </p>", "text": "修复日期时间输入中DOW和DOY的处理（Greg Stark） 这些记号本不应在日期时间值中使用，但过去它们导致的是难懂的内部错误消息，而不是“无效的输入语法”。", "title": "修复日期时间输入中DOW和DOY的处理", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.23/#id-1.11.6.5.6", "source_hash": "1fdedf1e28ad2ec6723b2f889c003c56ddbc73ac13f8d2da440a4efa992e04d3", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix handling of DOW and DOY in datetime input (Greg Stark) These tokens aren't meant to be used in datetime values, but previously they resulted in opaque internal error messages rather than invalid input syntax.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.23/changes/011", "db_id": "b8c8c2b6a6a1518b538d10da2965040a", "patch_ids": [], "statement_hash": "a60683eab520756350b91e272b353000ae5c8f978ed2523e29be38e220a7aec0", "relations": [{"rule": 2, "type": "equivalent", "target": "550277d2b6e5ec7889815ee2a22a9c68", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a60683eab520756350b91e272b353000ae5c8f978ed2523e29be38e220a7aec0"}}, {"rule": 2, "type": "equivalent", "target": "a5e76c5c33fc0a737dac299dad0a217e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a60683eab520756350b91e272b353000ae5c8f978ed2523e29be38e220a7aec0"}}, {"rule": 2, "type": "equivalent", "target": "afd07277e2b605eeee4173bbc9e65be9", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a60683eab520756350b91e272b353000ae5c8f978ed2523e29be38e220a7aec0"}}, {"rule": 2, "type": "equivalent", "target": "e956398d9a072b0e752e96000aa59eb0", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a60683eab520756350b91e272b353000ae5c8f978ed2523e29be38e220a7aec0"}}], "version": "9.0.23", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "e956398d9a072b0e752e96000aa59eb0", "kind": "equivalent", "version": "9.4.5", "label": "9.4.5", "title": "修复日期时间输入中DOW和DOY的处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a60683eab520756350b91e272b353000ae5c8f978ed2523e29be38e220a7aec0"}, "url": "/docs/compare/?release=9.4.5#9.4.5-e3b09b3da48aaee2", "source_url": "/docs/release/9.4.5/#id-1.11.6.26.5"}, {"db_id": "550277d2b6e5ec7889815ee2a22a9c68", "kind": "equivalent", "version": "9.3.10", "label": "9.3.10", "title": "修复日期时间输入中DOW和DOY的处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a60683eab520756350b91e272b353000ae5c8f978ed2523e29be38e220a7aec0"}, "url": "/docs/compare/?release=9.3.10#9.3.10-e3b09b3da48aaee2", "source_url": "/docs/release/9.3.10/#id-1.11.6.20.5"}, {"db_id": "a5e76c5c33fc0a737dac299dad0a217e", "kind": "equivalent", "version": "9.2.14", "label": "9.2.14", "title": "修复日期时间输入中DOW和DOY的处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a60683eab520756350b91e272b353000ae5c8f978ed2523e29be38e220a7aec0"}, "url": "/docs/compare/?release=9.2.14#9.2.14-e3b09b3da48aaee2", "source_url": "/docs/release/9.2.14/#id-1.11.6.15.5"}, {"db_id": "afd07277e2b605eeee4173bbc9e65be9", "kind": "equivalent", "version": "9.1.19", "label": "9.1.19", "title": "修复日期时间输入中DOW和DOY的处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a60683eab520756350b91e272b353000ae5c8f978ed2523e29be38e220a7aec0"}, "url": "/docs/compare/?release=9.1.19#9.1.19-e3b09b3da48aaee2", "source_url": "/docs/release/9.1.19/#id-1.11.6.10.5"}]}, {"id": "9.0.23-73d05fdc9193cd00", "cves": [], "html": "<p>      在正则表达式匹配中增加更多查询取消检查（Tom Lane）\n     </p>", "text": "在正则表达式匹配中增加更多查询取消检查（Tom Lane）", "title": "在正则表达式匹配中增加更多查询取消检查", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.23/#id-1.11.6.5.6", "source_hash": "8a7afc43fed40ce0df3f3379b70fef1d12153e00b54e8c7dc9ca50e4046be25f", "section_path": ["变更"], "commit_groups": [], "identity_text": "Add more query-cancel checks to regular expression matching (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.23/changes/012", "db_id": "92d4603af387a83116b858ea9acc69c2", "patch_ids": [], "statement_hash": "6d587adedff3b3cdea732e6835afc76902fb01483b956e50f4161de6fbe64341", "relations": [{"rule": 2, "type": "equivalent", "target": "7266256a7131960af28efd9fd98aa274", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6d587adedff3b3cdea732e6835afc76902fb01483b956e50f4161de6fbe64341"}}, {"rule": 2, "type": "equivalent", "target": "abd3dbc49f67062d6bbf29f35756bcdb", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6d587adedff3b3cdea732e6835afc76902fb01483b956e50f4161de6fbe64341"}}, {"rule": 2, "type": "equivalent", "target": "d38f19226a31e1d2de199dd83b700c32", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6d587adedff3b3cdea732e6835afc76902fb01483b956e50f4161de6fbe64341"}}, {"rule": 2, "type": "equivalent", "target": "e7ffed1e8f2bd8d7d1f83087fdce5e49", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6d587adedff3b3cdea732e6835afc76902fb01483b956e50f4161de6fbe64341"}}], "version": "9.0.23", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "7266256a7131960af28efd9fd98aa274", "kind": "equivalent", "version": "9.4.5", "label": "9.4.5", "title": "为正则表达式匹配添加更多查询取消检查", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6d587adedff3b3cdea732e6835afc76902fb01483b956e50f4161de6fbe64341"}, "url": "/docs/compare/?release=9.4.5#9.4.5-93260934408f43ce", "source_url": "/docs/release/9.4.5/#id-1.11.6.26.5"}, {"db_id": "d38f19226a31e1d2de199dd83b700c32", "kind": "equivalent", "version": "9.3.10", "label": "9.3.10", "title": "在正则表达式匹配中增加更多查询取消检查", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6d587adedff3b3cdea732e6835afc76902fb01483b956e50f4161de6fbe64341"}, "url": "/docs/compare/?release=9.3.10#9.3.10-73d05fdc9193cd00", "source_url": "/docs/release/9.3.10/#id-1.11.6.20.5"}, {"db_id": "abd3dbc49f67062d6bbf29f35756bcdb", "kind": "equivalent", "version": "9.2.14", "label": "9.2.14", "title": "在正则表达式匹配中增加更多查询取消检查", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6d587adedff3b3cdea732e6835afc76902fb01483b956e50f4161de6fbe64341"}, "url": "/docs/compare/?release=9.2.14#9.2.14-73d05fdc9193cd00", "source_url": "/docs/release/9.2.14/#id-1.11.6.15.5"}, {"db_id": "e7ffed1e8f2bd8d7d1f83087fdce5e49", "kind": "equivalent", "version": "9.1.19", "label": "9.1.19", "title": "在正则表达式匹配中增加更多查询取消检查", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6d587adedff3b3cdea732e6835afc76902fb01483b956e50f4161de6fbe64341"}, "url": "/docs/compare/?release=9.1.19#9.1.19-73d05fdc9193cd00", "source_url": "/docs/release/9.1.19/#id-1.11.6.10.5"}]}, {"id": "9.0.23-40187d5a1ef2a1fa", "cves": [], "html": "<p>     为正则表达式、<code>SIMILAR TO</code>和<code>LIKE</code>匹配增加递归深度保护（Tom Lane）\n    </p><p>     合适的搜索模式加上较低的栈深度限制可能导致栈越界崩溃。\n    </p>", "text": "为正则表达式、SIMILAR TO和LIKE匹配增加递归深度保护（Tom Lane） 合适的搜索模式加上较低的栈深度限制可能导致栈越界崩溃。", "title": "为正则表达式、SIMILAR TO和LIKE匹配增加递归深度保护", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.23/#id-1.11.6.5.6", "source_hash": "1653398412eba78a8892b25dec344935c4dde2674cac5da962c584275e4677c9", "section_path": ["变更"], "commit_groups": [], "identity_text": "Add recursion depth protections to regular expression, SIMILAR TO, and LIKE matching (Tom Lane) Suitable search patterns and a low stack depth limit could lead to stack-overrun crashes.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.23/changes/013", "db_id": "7679459797be8fb01e2a810f5dc40f04", "patch_ids": [], "statement_hash": "227106552953dea974aebad9e87128454bb0768a695ed1cd67e1d87357ffb70f", "relations": [{"rule": 2, "type": "equivalent", "target": "818306610d3baa973fd21dbff001ffc6", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "227106552953dea974aebad9e87128454bb0768a695ed1cd67e1d87357ffb70f"}}, {"rule": 2, "type": "equivalent", "target": "a89e2f1a91f1ae30849a12b8b96cac26", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "227106552953dea974aebad9e87128454bb0768a695ed1cd67e1d87357ffb70f"}}, {"rule": 2, "type": "equivalent", "target": "c2d846a592e8a9443247bd5eca581dae", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "227106552953dea974aebad9e87128454bb0768a695ed1cd67e1d87357ffb70f"}}, {"rule": 2, "type": "equivalent", "target": "cdd7ae2408686e21de864f9162eae3de", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "227106552953dea974aebad9e87128454bb0768a695ed1cd67e1d87357ffb70f"}}], "version": "9.0.23", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "cdd7ae2408686e21de864f9162eae3de", "kind": "equivalent", "version": "9.4.5", "label": "9.4.5", "title": "为正则表达式、SIMILAR TO和LIKE匹配增加递归深度保护", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "227106552953dea974aebad9e87128454bb0768a695ed1cd67e1d87357ffb70f"}, "url": "/docs/compare/?release=9.4.5#9.4.5-40187d5a1ef2a1fa", "source_url": "/docs/release/9.4.5/#id-1.11.6.26.5"}, {"db_id": "a89e2f1a91f1ae30849a12b8b96cac26", "kind": "equivalent", "version": "9.3.10", "label": "9.3.10", "title": "为正则表达式、SIMILAR TO和LIKE匹配增加递归深度保护", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "227106552953dea974aebad9e87128454bb0768a695ed1cd67e1d87357ffb70f"}, "url": "/docs/compare/?release=9.3.10#9.3.10-40187d5a1ef2a1fa", "source_url": "/docs/release/9.3.10/#id-1.11.6.20.5"}, {"db_id": "818306610d3baa973fd21dbff001ffc6", "kind": "equivalent", "version": "9.2.14", "label": "9.2.14", "title": "为正则表达式、SIMILAR TO和LIKE匹配增加递归深度保护", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "227106552953dea974aebad9e87128454bb0768a695ed1cd67e1d87357ffb70f"}, "url": "/docs/compare/?release=9.2.14#9.2.14-40187d5a1ef2a1fa", "source_url": "/docs/release/9.2.14/#id-1.11.6.15.5"}, {"db_id": "c2d846a592e8a9443247bd5eca581dae", "kind": "equivalent", "version": "9.1.19", "label": "9.1.19", "title": "为正则表达式、SIMILAR TO和LIKE匹配增加递归深度保护", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "227106552953dea974aebad9e87128454bb0768a695ed1cd67e1d87357ffb70f"}, "url": "/docs/compare/?release=9.1.19#9.1.19-40187d5a1ef2a1fa", "source_url": "/docs/release/9.1.19/#id-1.11.6.10.5"}]}, {"id": "9.0.23-1ee08b25f685d25d", "cves": [], "html": "<p>     修复正则表达式执行中潜在的无限循环（Tom Lane）\n    </p><p>     一个表面上能匹配零长度字符串、但实际上因反向引用而不匹配的搜索模式可能导致无限循环。\n    </p>", "text": "修复正则表达式执行中潜在的无限循环（Tom Lane） 一个表面上能匹配零长度字符串、但实际上因反向引用而不匹配的搜索模式可能导致无限循环。", "title": "修复正则表达式执行中潜在的无限循环", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.23/#id-1.11.6.5.6", "source_hash": "24d6425ddc8ba685291bcd76da85acf621498a57608e2c02df75f9377d09f580", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix potential infinite loop in regular expression execution (Tom Lane) A search pattern that can apparently match a zero-length string, but actually doesn't match because of a back reference, could lead to an infinite loop.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.23/changes/014", "db_id": "bec69fa9ad8c58064418286eeb6c59bd", "patch_ids": [], "statement_hash": "f11ad5b71a365b5d17b4e1ab0061b04045ecdd03d728462b07b2c0628c18cfad", "relations": [{"rule": 2, "type": "equivalent", "target": "279ea9e221ed41c7e95e4a598fcf2a43", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f11ad5b71a365b5d17b4e1ab0061b04045ecdd03d728462b07b2c0628c18cfad"}}, {"rule": 2, "type": "equivalent", "target": "cb2d1b3b7b5d23396456a383dc3c5d36", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f11ad5b71a365b5d17b4e1ab0061b04045ecdd03d728462b07b2c0628c18cfad"}}, {"rule": 2, "type": "equivalent", "target": "e8c724103f22fa122f7d5c8bc3670880", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f11ad5b71a365b5d17b4e1ab0061b04045ecdd03d728462b07b2c0628c18cfad"}}, {"rule": 2, "type": "equivalent", "target": "fc945b07f555953774864e6926724ffe", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f11ad5b71a365b5d17b4e1ab0061b04045ecdd03d728462b07b2c0628c18cfad", "ambiguous_patch_ids": ["0dd3c9e3b1e03fd9ed50e1f8b10ea81d"]}}], "version": "9.0.23", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "fc945b07f555953774864e6926724ffe", "kind": "equivalent", "version": "9.4.5", "label": "9.4.5", "title": "修复正则表达式执行中潜在的无限循环", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f11ad5b71a365b5d17b4e1ab0061b04045ecdd03d728462b07b2c0628c18cfad", "ambiguous_patch_ids": ["0dd3c9e3b1e03fd9ed50e1f8b10ea81d"]}, "url": "/docs/compare/?release=9.4.5#9.4.5-1ee08b25f685d25d", "source_url": "/docs/release/9.4.5/#id-1.11.6.26.5"}, {"db_id": "cb2d1b3b7b5d23396456a383dc3c5d36", "kind": "equivalent", "version": "9.3.10", "label": "9.3.10", "title": "修复正则表达式执行中潜在的无限循环", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f11ad5b71a365b5d17b4e1ab0061b04045ecdd03d728462b07b2c0628c18cfad"}, "url": "/docs/compare/?release=9.3.10#9.3.10-1ee08b25f685d25d", "source_url": "/docs/release/9.3.10/#id-1.11.6.20.5"}, {"db_id": "279ea9e221ed41c7e95e4a598fcf2a43", "kind": "equivalent", "version": "9.2.14", "label": "9.2.14", "title": "修复正则表达式执行中潜在的无限循环", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f11ad5b71a365b5d17b4e1ab0061b04045ecdd03d728462b07b2c0628c18cfad"}, "url": "/docs/compare/?release=9.2.14#9.2.14-1ee08b25f685d25d", "source_url": "/docs/release/9.2.14/#id-1.11.6.15.5"}, {"db_id": "e8c724103f22fa122f7d5c8bc3670880", "kind": "equivalent", "version": "9.1.19", "label": "9.1.19", "title": "修复正则表达式执行中潜在的无限循环", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f11ad5b71a365b5d17b4e1ab0061b04045ecdd03d728462b07b2c0628c18cfad"}, "url": "/docs/compare/?release=9.1.19#9.1.19-1ee08b25f685d25d", "source_url": "/docs/release/9.1.19/#id-1.11.6.10.5"}]}, {"id": "9.0.23-7ed3287f6e8031db", "cves": [], "html": "<p>      修复正则表达式编译中的内存不足失败（Andreas Seltenreich）\n     </p>", "text": "修复正则表达式编译中的内存不足失败（Andreas Seltenreich）", "title": "修复正则表达式编译中的内存不足失败", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.23/#id-1.11.6.5.6", "source_hash": "040e27e49f5bca6065e93a67676a29e3de591083bc6f9ffe7912a419613aadc9", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix low-memory failures in regular expression compilation (Andreas Seltenreich)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.23/changes/015", "db_id": "5375f6fcf20c490dc15305cb7c95d551", "patch_ids": [], "statement_hash": "e8e3e6024e650366b752c07a9312ff54d03aeadc91c41b9d6690002c43b3aae5", "relations": [{"rule": 2, "type": "equivalent", "target": "2ee5b0aab07dc97baea7e3eee703c8c0", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e8e3e6024e650366b752c07a9312ff54d03aeadc91c41b9d6690002c43b3aae5"}}, {"rule": 2, "type": "equivalent", "target": "689562c2656643e9f67a2e9cd4446ccb", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e8e3e6024e650366b752c07a9312ff54d03aeadc91c41b9d6690002c43b3aae5"}}, {"rule": 2, "type": "equivalent", "target": "9a1d01050e60d0cff4be1a32e9507491", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e8e3e6024e650366b752c07a9312ff54d03aeadc91c41b9d6690002c43b3aae5"}}, {"rule": 2, "type": "equivalent", "target": "dd579e7a3fb0d2443ce86a0fd6af62c3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e8e3e6024e650366b752c07a9312ff54d03aeadc91c41b9d6690002c43b3aae5"}}], "version": "9.0.23", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "689562c2656643e9f67a2e9cd4446ccb", "kind": "equivalent", "version": "9.4.5", "label": "9.4.5", "title": "修复正则表达式编译中的内存不足失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e8e3e6024e650366b752c07a9312ff54d03aeadc91c41b9d6690002c43b3aae5"}, "url": "/docs/compare/?release=9.4.5#9.4.5-7ed3287f6e8031db", "source_url": "/docs/release/9.4.5/#id-1.11.6.26.5"}, {"db_id": "9a1d01050e60d0cff4be1a32e9507491", "kind": "equivalent", "version": "9.3.10", "label": "9.3.10", "title": "修复正则表达式编译中的内存不足失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e8e3e6024e650366b752c07a9312ff54d03aeadc91c41b9d6690002c43b3aae5"}, "url": "/docs/compare/?release=9.3.10#9.3.10-7ed3287f6e8031db", "source_url": "/docs/release/9.3.10/#id-1.11.6.20.5"}, {"db_id": "dd579e7a3fb0d2443ce86a0fd6af62c3", "kind": "equivalent", "version": "9.2.14", "label": "9.2.14", "title": "修复正则表达式编译中的内存不足失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e8e3e6024e650366b752c07a9312ff54d03aeadc91c41b9d6690002c43b3aae5"}, "url": "/docs/compare/?release=9.2.14#9.2.14-7ed3287f6e8031db", "source_url": "/docs/release/9.2.14/#id-1.11.6.15.5"}, {"db_id": "2ee5b0aab07dc97baea7e3eee703c8c0", "kind": "equivalent", "version": "9.1.19", "label": "9.1.19", "title": "修复正则表达式编译中的内存不足失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e8e3e6024e650366b752c07a9312ff54d03aeadc91c41b9d6690002c43b3aae5"}, "url": "/docs/compare/?release=9.1.19#9.1.19-7ed3287f6e8031db", "source_url": "/docs/release/9.1.19/#id-1.11.6.10.5"}]}, {"id": "9.0.23-820fa1702d3933dd", "cves": [], "html": "<p>      修复正则表达式执行期间低概率的内存泄漏（Tom Lane）\n     </p>", "text": "修复正则表达式执行期间低概率的内存泄漏（Tom Lane）", "title": "修复正则表达式执行期间低概率的内存泄漏", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.23/#id-1.11.6.5.6", "source_hash": "a6cba07efef60b3c44de825318ce3448ae6166866eb932ffe1241728f4d2de24", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix low-probability memory leak during regular expression execution (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.23/changes/016", "db_id": "cb7f77ef521bd8e4fa7fcbcebd7f69f2", "patch_ids": [], "statement_hash": "e1aeca37f50f07ff2163425fc1dc5b5bce78a83ded44c6097d4aadfb43350312", "relations": [{"rule": 2, "type": "equivalent", "target": "3569baaf6ccd7c0326212a9ca5fe9266", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e1aeca37f50f07ff2163425fc1dc5b5bce78a83ded44c6097d4aadfb43350312"}}, {"rule": 2, "type": "equivalent", "target": "5620480a02a777838ffdbdd9eeb14f2a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e1aeca37f50f07ff2163425fc1dc5b5bce78a83ded44c6097d4aadfb43350312"}}, {"rule": 2, "type": "equivalent", "target": "7729fa3ac73c1f361c40a4653e5b31af", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e1aeca37f50f07ff2163425fc1dc5b5bce78a83ded44c6097d4aadfb43350312"}}, {"rule": 2, "type": "equivalent", "target": "8b182f146aa3144f27f78c2f2c53a138", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e1aeca37f50f07ff2163425fc1dc5b5bce78a83ded44c6097d4aadfb43350312"}}], "version": "9.0.23", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "5620480a02a777838ffdbdd9eeb14f2a", "kind": "equivalent", "version": "9.4.5", "label": "9.4.5", "title": "修复正则表达式执行期间低概率的内存泄漏", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e1aeca37f50f07ff2163425fc1dc5b5bce78a83ded44c6097d4aadfb43350312"}, "url": "/docs/compare/?release=9.4.5#9.4.5-820fa1702d3933dd", "source_url": "/docs/release/9.4.5/#id-1.11.6.26.5"}, {"db_id": "7729fa3ac73c1f361c40a4653e5b31af", "kind": "equivalent", "version": "9.3.10", "label": "9.3.10", "title": "修复正则表达式执行期间低概率的内存泄漏", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e1aeca37f50f07ff2163425fc1dc5b5bce78a83ded44c6097d4aadfb43350312"}, "url": "/docs/compare/?release=9.3.10#9.3.10-820fa1702d3933dd", "source_url": "/docs/release/9.3.10/#id-1.11.6.20.5"}, {"db_id": "3569baaf6ccd7c0326212a9ca5fe9266", "kind": "equivalent", "version": "9.2.14", "label": "9.2.14", "title": "修复正则表达式执行期间低概率的内存泄漏", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e1aeca37f50f07ff2163425fc1dc5b5bce78a83ded44c6097d4aadfb43350312"}, "url": "/docs/compare/?release=9.2.14#9.2.14-820fa1702d3933dd", "source_url": "/docs/release/9.2.14/#id-1.11.6.15.5"}, {"db_id": "8b182f146aa3144f27f78c2f2c53a138", "kind": "equivalent", "version": "9.1.19", "label": "9.1.19", "title": "修复正则表达式执行期间低概率的内存泄漏", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e1aeca37f50f07ff2163425fc1dc5b5bce78a83ded44c6097d4aadfb43350312"}, "url": "/docs/compare/?release=9.1.19#9.1.19-820fa1702d3933dd", "source_url": "/docs/release/9.1.19/#id-1.11.6.10.5"}]}, {"id": "9.0.23-882837d9208aba2c", "cves": [], "html": "<p>      修复事务中止期间锁清理中罕见的内存不足失败（Tom Lane）\n     </p>", "text": "修复事务中止期间锁清理中罕见的内存不足失败（Tom Lane）", "title": "修复事务中止期间锁清理中罕见的内存不足失败", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.23/#id-1.11.6.5.6", "source_hash": "b20b4037f7eb64d11bb45d698af078fcb1d627f64ce59bdace35dfc23d54b43e", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix rare low-memory failure in lock cleanup during transaction abort (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.23/changes/017", "db_id": "1c80328fe1bf3212080956e2cd5d357c", "patch_ids": [], "statement_hash": "ef9ff008b676cae3ddc8dad59f4cf1d9ade68b447904b78f8a4724a933834321", "relations": [{"rule": 2, "type": "equivalent", "target": "2d0858f9af159c52152a2bd72148cad1", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ef9ff008b676cae3ddc8dad59f4cf1d9ade68b447904b78f8a4724a933834321"}}, {"rule": 2, "type": "equivalent", "target": "398b10e6c4fd6ee177fd18f0f7842100", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ef9ff008b676cae3ddc8dad59f4cf1d9ade68b447904b78f8a4724a933834321"}}, {"rule": 2, "type": "equivalent", "target": "e1d79e9551a39f2d3e07aca62d21fec0", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ef9ff008b676cae3ddc8dad59f4cf1d9ade68b447904b78f8a4724a933834321"}}, {"rule": 2, "type": "equivalent", "target": "e8c60673cd2c09b5df1303638c5b7952", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ef9ff008b676cae3ddc8dad59f4cf1d9ade68b447904b78f8a4724a933834321"}}], "version": "9.0.23", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "e8c60673cd2c09b5df1303638c5b7952", "kind": "equivalent", "version": "9.4.5", "label": "9.4.5", "title": "修复事务中止期间锁清理中罕见的内存不足失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ef9ff008b676cae3ddc8dad59f4cf1d9ade68b447904b78f8a4724a933834321"}, "url": "/docs/compare/?release=9.4.5#9.4.5-882837d9208aba2c", "source_url": "/docs/release/9.4.5/#id-1.11.6.26.5"}, {"db_id": "e1d79e9551a39f2d3e07aca62d21fec0", "kind": "equivalent", "version": "9.3.10", "label": "9.3.10", "title": "修复事务中止期间锁清理中罕见的内存不足失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ef9ff008b676cae3ddc8dad59f4cf1d9ade68b447904b78f8a4724a933834321"}, "url": "/docs/compare/?release=9.3.10#9.3.10-882837d9208aba2c", "source_url": "/docs/release/9.3.10/#id-1.11.6.20.5"}, {"db_id": "398b10e6c4fd6ee177fd18f0f7842100", "kind": "equivalent", "version": "9.2.14", "label": "9.2.14", "title": "修复事务中止期间锁清理中罕见的内存不足失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ef9ff008b676cae3ddc8dad59f4cf1d9ade68b447904b78f8a4724a933834321"}, "url": "/docs/compare/?release=9.2.14#9.2.14-882837d9208aba2c", "source_url": "/docs/release/9.2.14/#id-1.11.6.15.5"}, {"db_id": "2d0858f9af159c52152a2bd72148cad1", "kind": "equivalent", "version": "9.1.19", "label": "9.1.19", "title": "修复事务中止期间锁清理中罕见的内存不足失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ef9ff008b676cae3ddc8dad59f4cf1d9ade68b447904b78f8a4724a933834321"}, "url": "/docs/compare/?release=9.1.19#9.1.19-882837d9208aba2c", "source_url": "/docs/release/9.1.19/#id-1.11.6.10.5"}]}, {"id": "9.0.23-700b43edae0d2b89", "cves": [], "html": "<p>      修复在使用较小<code>work_mem</code>设置的元组存储时出现<span>“<span>排序期间意外的内存不足情况</span>”</span>错误的问题（Tom Lane）\n     </p>", "text": "修复在使用较小work_mem设置的元组存储时出现“排序期间意外的内存不足情况”错误的问题（Tom Lane）", "title": "修复在使用较小work_mem设置的元组存储时出现“排序期间意外的内存不足情况”错误的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.23/#id-1.11.6.5.6", "source_hash": "0c7f4960b1a08277332d7a2f69262ad46c9ccea5faedb945946702a6f36c9f4e", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix unexpected out-of-memory situation during sort errors when using tuplestores with small work_mem settings (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.23/changes/018", "db_id": "bb8b298f539b8ed6b225644dc8bb095e", "patch_ids": [], "statement_hash": "82b18817d79024741b24ce37726d80d275a694e9d0e86ea05fdd3fb7bf55abe7", "relations": [{"rule": 2, "type": "equivalent", "target": "19617dfea9d462b377bd1a7e7fd60f21", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "82b18817d79024741b24ce37726d80d275a694e9d0e86ea05fdd3fb7bf55abe7"}}, {"rule": 2, "type": "equivalent", "target": "2ce2b935dc8c8afc6675f1b8594cbc7c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "82b18817d79024741b24ce37726d80d275a694e9d0e86ea05fdd3fb7bf55abe7"}}, {"rule": 2, "type": "equivalent", "target": "7d1d07a9b111006ce4d1c8b93e6d6006", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "82b18817d79024741b24ce37726d80d275a694e9d0e86ea05fdd3fb7bf55abe7"}}, {"rule": 2, "type": "equivalent", "target": "f571ddeeb636cd240ccfc45e9583cb4c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "82b18817d79024741b24ce37726d80d275a694e9d0e86ea05fdd3fb7bf55abe7"}}], "version": "9.0.23", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "7d1d07a9b111006ce4d1c8b93e6d6006", "kind": "equivalent", "version": "9.4.5", "label": "9.4.5", "title": "修复使用较小 work_mem 设置的元组存储时出现的 “unexpected out-of-memory situation during sort” 错误", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "82b18817d79024741b24ce37726d80d275a694e9d0e86ea05fdd3fb7bf55abe7"}, "url": "/docs/compare/?release=9.4.5#9.4.5-d2105a714744e2a7", "source_url": "/docs/release/9.4.5/#id-1.11.6.26.5"}, {"db_id": "2ce2b935dc8c8afc6675f1b8594cbc7c", "kind": "equivalent", "version": "9.3.10", "label": "9.3.10", "title": "修复在使用较小work_mem设置的元组存储时出现“排序期间意外的内存不足情况”错误的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "82b18817d79024741b24ce37726d80d275a694e9d0e86ea05fdd3fb7bf55abe7"}, "url": "/docs/compare/?release=9.3.10#9.3.10-700b43edae0d2b89", "source_url": "/docs/release/9.3.10/#id-1.11.6.20.5"}, {"db_id": "19617dfea9d462b377bd1a7e7fd60f21", "kind": "equivalent", "version": "9.2.14", "label": "9.2.14", "title": "修复在使用较小work_mem设置的元组存储时出现“排序期间意外的内存不足情况”错误的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "82b18817d79024741b24ce37726d80d275a694e9d0e86ea05fdd3fb7bf55abe7"}, "url": "/docs/compare/?release=9.2.14#9.2.14-700b43edae0d2b89", "source_url": "/docs/release/9.2.14/#id-1.11.6.15.5"}, {"db_id": "f571ddeeb636cd240ccfc45e9583cb4c", "kind": "equivalent", "version": "9.1.19", "label": "9.1.19", "title": "修复在使用较小work_mem设置的元组存储时出现“排序期间意外的内存不足情况”错误的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "82b18817d79024741b24ce37726d80d275a694e9d0e86ea05fdd3fb7bf55abe7"}, "url": "/docs/compare/?release=9.1.19#9.1.19-700b43edae0d2b89", "source_url": "/docs/release/9.1.19/#id-1.11.6.10.5"}]}, {"id": "9.0.23-fc08df29ee185ac7", "cves": [], "html": "<p>      修复<code>qsort</code>中极低概率的栈越界（Tom Lane）\n     </p>", "text": "修复qsort中极低概率的栈越界（Tom Lane）", "title": "修复qsort中极低概率的栈越界", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.23/#id-1.11.6.5.6", "source_hash": "347002ed17daea8b2a248019c4b75aed10807e692f942d956ff64aa9836d60f3", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix very-low-probability stack overrun in qsort (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.23/changes/019", "db_id": "ff46f74d394152bd0ac33ec2f0ab7de0", "patch_ids": [], "statement_hash": "e3b499664f8fb62e376103d3d50ea6a0699384578ff8fd661652b0445a5c7568", "relations": [{"rule": 2, "type": "equivalent", "target": "2eb1ed0bc1a3fd4a1ec0f04f426eb8d6", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e3b499664f8fb62e376103d3d50ea6a0699384578ff8fd661652b0445a5c7568"}}, {"rule": 2, "type": "equivalent", "target": "5cd89e6b2f86dbefb5a19049e778eea4", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e3b499664f8fb62e376103d3d50ea6a0699384578ff8fd661652b0445a5c7568"}}, {"rule": 2, "type": "equivalent", "target": "7042a4b028a4cedfae626b921d273ca7", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e3b499664f8fb62e376103d3d50ea6a0699384578ff8fd661652b0445a5c7568"}}, {"rule": 2, "type": "equivalent", "target": "80ffb6efa145b4f90987b6bc47189fae", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e3b499664f8fb62e376103d3d50ea6a0699384578ff8fd661652b0445a5c7568"}}], "version": "9.0.23", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "7042a4b028a4cedfae626b921d273ca7", "kind": "equivalent", "version": "9.4.5", "label": "9.4.5", "title": "修复 qsort 中概率极低的栈越界", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e3b499664f8fb62e376103d3d50ea6a0699384578ff8fd661652b0445a5c7568"}, "url": "/docs/compare/?release=9.4.5#9.4.5-072e3e992090ff1d", "source_url": "/docs/release/9.4.5/#id-1.11.6.26.5"}, {"db_id": "80ffb6efa145b4f90987b6bc47189fae", "kind": "equivalent", "version": "9.3.10", "label": "9.3.10", "title": "修复qsort中极低概率的栈越界", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e3b499664f8fb62e376103d3d50ea6a0699384578ff8fd661652b0445a5c7568"}, "url": "/docs/compare/?release=9.3.10#9.3.10-fc08df29ee185ac7", "source_url": "/docs/release/9.3.10/#id-1.11.6.20.5"}, {"db_id": "2eb1ed0bc1a3fd4a1ec0f04f426eb8d6", "kind": "equivalent", "version": "9.2.14", "label": "9.2.14", "title": "修复qsort中极低概率的栈越界", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e3b499664f8fb62e376103d3d50ea6a0699384578ff8fd661652b0445a5c7568"}, "url": "/docs/compare/?release=9.2.14#9.2.14-fc08df29ee185ac7", "source_url": "/docs/release/9.2.14/#id-1.11.6.15.5"}, {"db_id": "5cd89e6b2f86dbefb5a19049e778eea4", "kind": "equivalent", "version": "9.1.19", "label": "9.1.19", "title": "修复qsort中极低概率的栈越界", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e3b499664f8fb62e376103d3d50ea6a0699384578ff8fd661652b0445a5c7568"}, "url": "/docs/compare/?release=9.1.19#9.1.19-fc08df29ee185ac7", "source_url": "/docs/release/9.1.19/#id-1.11.6.10.5"}]}, {"id": "9.0.23-6763689d1f8fe56f", "cves": [], "html": "<p>      修复在使用较大<code>work_mem</code>设置的哈希连接中出现<span>“<span>无效的内存分配请求大小</span>”</span>失败的问题（Tomas Vondra, Tom Lane）\n     </p>", "text": "修复在使用较大work_mem设置的哈希连接中出现“无效的内存分配请求大小”失败的问题（Tomas Vondra, Tom Lane）", "title": "修复在使用较大work_mem设置的哈希连接中出现“无效的内存分配请求大小”失败的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.23/#id-1.11.6.5.6", "source_hash": "cad8a3637e9f19db0b1d4ad631dedc5c9db4ebd041c1df2aa56e959a8b2bc533", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix invalid memory alloc request size failure in hash joins with large work_mem settings (Tomas Vondra, Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.23/changes/020", "db_id": "065d9414db1d95492b8172513fd89307", "patch_ids": [], "statement_hash": "1fcd8dacb9d4d61daa6e284a81b62e58797afb90983ef458a6629510b810567b", "relations": [{"rule": 2, "type": "equivalent", "target": "72eb05bbdce2127867fbe2b288c23160", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1fcd8dacb9d4d61daa6e284a81b62e58797afb90983ef458a6629510b810567b"}}, {"rule": 2, "type": "equivalent", "target": "899bf404646744816ec749decde09389", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1fcd8dacb9d4d61daa6e284a81b62e58797afb90983ef458a6629510b810567b"}}, {"rule": 2, "type": "equivalent", "target": "98189d3a6f8f14946986342f6c0b7f96", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1fcd8dacb9d4d61daa6e284a81b62e58797afb90983ef458a6629510b810567b"}}, {"rule": 2, "type": "equivalent", "target": "f362c103f4b53650392849472c55a2eb", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1fcd8dacb9d4d61daa6e284a81b62e58797afb90983ef458a6629510b810567b"}}], "version": "9.0.23", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "f362c103f4b53650392849472c55a2eb", "kind": "equivalent", "version": "9.4.5", "label": "9.4.5", "title": "修复使用较大 work_mem 设置的哈希连接中出现的 “invalid memory alloc request size” 失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1fcd8dacb9d4d61daa6e284a81b62e58797afb90983ef458a6629510b810567b"}, "url": "/docs/compare/?release=9.4.5#9.4.5-5b7d691ff7dcf7d1", "source_url": "/docs/release/9.4.5/#id-1.11.6.26.5"}, {"db_id": "899bf404646744816ec749decde09389", "kind": "equivalent", "version": "9.3.10", "label": "9.3.10", "title": "修复在使用较大work_mem设置的哈希连接中出现“无效的内存分配请求大小”失败的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1fcd8dacb9d4d61daa6e284a81b62e58797afb90983ef458a6629510b810567b"}, "url": "/docs/compare/?release=9.3.10#9.3.10-6763689d1f8fe56f", "source_url": "/docs/release/9.3.10/#id-1.11.6.20.5"}, {"db_id": "72eb05bbdce2127867fbe2b288c23160", "kind": "equivalent", "version": "9.2.14", "label": "9.2.14", "title": "修复在使用较大work_mem设置的哈希连接中出现“无效的内存分配请求大小”失败的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1fcd8dacb9d4d61daa6e284a81b62e58797afb90983ef458a6629510b810567b"}, "url": "/docs/compare/?release=9.2.14#9.2.14-6763689d1f8fe56f", "source_url": "/docs/release/9.2.14/#id-1.11.6.15.5"}, {"db_id": "98189d3a6f8f14946986342f6c0b7f96", "kind": "equivalent", "version": "9.1.19", "label": "9.1.19", "title": "修复在使用较大work_mem设置的哈希连接中出现“无效的内存分配请求大小”失败的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1fcd8dacb9d4d61daa6e284a81b62e58797afb90983ef458a6629510b810567b"}, "url": "/docs/compare/?release=9.1.19#9.1.19-6763689d1f8fe56f", "source_url": "/docs/release/9.1.19/#id-1.11.6.10.5"}]}, {"id": "9.0.23-d211afb454701ad5", "cves": [], "html": "<p>     修复若干规划器缺陷（Tom Lane）\n    </p><p>     这些错误可能导致给出错误结果的错误查询计划、启用断言的构建中的断言失败，或奇怪的规划器错误，例如<span>“<span>could not devise a query plan for the given query</span>”</span>、<span>“<span>could not find pathkey item to sort</span>”</span>、<span>“<span>plan should not reference subplan's variable</span>”</span>或<span>“<span>failed to assign all NestLoopParams to plan nodes</span>”</span>。感谢 Andreas Seltenreich 和 Piotr Stefaniak 通过模糊测试暴露了这些问题。\n    </p>", "text": "修复若干规划器缺陷（Tom Lane） 这些错误可能导致给出错误结果的错误查询计划、启用断言的构建中的断言失败，或奇怪的规划器错误，例如“could not devise a query plan for the given query”、“could not find pathkey item to sort”、“plan should not reference subplan's variable”或“failed to assign all NestLoopParams to plan nodes”。感谢 Andreas Seltenreich 和 Piotr Stefaniak 通过模糊测试暴露了这些问题。", "title": "修复若干规划器缺陷", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.23/#id-1.11.6.5.6", "source_hash": "cbcd7a12c91d32e0b8f712d902bb0405ff8a2b398514c30b0a939d77c324a392", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix assorted planner bugs (Tom Lane) These mistakes could lead to incorrect query plans that would give wrong answers, or to assertion failures in assert-enabled builds, or to odd planner errors such as could not devise a query plan for the given query, could not find pathkey item to sort, plan should not reference subplan's variable, or failed to assign all NestLoopParams to plan nodes. Thanks are due to Andreas Seltenreich and Piotr Stefaniak for fuzz testing that exposed these problems.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.23/changes/021", "db_id": "f3094de8f2f0e1950bbaf1448c49b82f", "patch_ids": [], "statement_hash": "2d3846439546a9941457d4bd59e0d4b0b2cb677b935bbeaeee5bd664c9e2dc18", "relations": [{"rule": 2, "type": "equivalent", "target": "03265e524f1a5d7d030d8521d387f7b0", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2d3846439546a9941457d4bd59e0d4b0b2cb677b935bbeaeee5bd664c9e2dc18"}}, {"rule": 2, "type": "equivalent", "target": "0d4c56b3be3cd3a0ea07c0418296c330", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2d3846439546a9941457d4bd59e0d4b0b2cb677b935bbeaeee5bd664c9e2dc18"}}, {"rule": 2, "type": "equivalent", "target": "9876a1ba5f4a978f6224e72391017450", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2d3846439546a9941457d4bd59e0d4b0b2cb677b935bbeaeee5bd664c9e2dc18"}}, {"rule": 2, "type": "equivalent", "target": "f42938d940ea6405d0b147d1ea386823", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2d3846439546a9941457d4bd59e0d4b0b2cb677b935bbeaeee5bd664c9e2dc18"}}], "version": "9.0.23", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "9876a1ba5f4a978f6224e72391017450", "kind": "equivalent", "version": "9.4.5", "label": "9.4.5", "title": "修复若干规划器缺陷", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2d3846439546a9941457d4bd59e0d4b0b2cb677b935bbeaeee5bd664c9e2dc18"}, "url": "/docs/compare/?release=9.4.5#9.4.5-d211afb454701ad5", "source_url": "/docs/release/9.4.5/#id-1.11.6.26.5"}, {"db_id": "f42938d940ea6405d0b147d1ea386823", "kind": "equivalent", "version": "9.3.10", "label": "9.3.10", "title": "修复若干规划器缺陷", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2d3846439546a9941457d4bd59e0d4b0b2cb677b935bbeaeee5bd664c9e2dc18"}, "url": "/docs/compare/?release=9.3.10#9.3.10-d211afb454701ad5", "source_url": "/docs/release/9.3.10/#id-1.11.6.20.5"}, {"db_id": "03265e524f1a5d7d030d8521d387f7b0", "kind": "equivalent", "version": "9.2.14", "label": "9.2.14", "title": "修复若干规划器缺陷", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2d3846439546a9941457d4bd59e0d4b0b2cb677b935bbeaeee5bd664c9e2dc18"}, "url": "/docs/compare/?release=9.2.14#9.2.14-d211afb454701ad5", "source_url": "/docs/release/9.2.14/#id-1.11.6.15.5"}, {"db_id": "0d4c56b3be3cd3a0ea07c0418296c330", "kind": "equivalent", "version": "9.1.19", "label": "9.1.19", "title": "修复若干规划器缺陷", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2d3846439546a9941457d4bd59e0d4b0b2cb677b935bbeaeee5bd664c9e2dc18"}, "url": "/docs/compare/?release=9.1.19#9.1.19-d211afb454701ad5", "source_url": "/docs/release/9.1.19/#id-1.11.6.10.5"}]}, {"id": "9.0.23-8d15935330832db2", "cves": [], "html": "<p>      在所有受支持的分支中使用模糊路径代价平局判定规则（Tom Lane）\n     </p><p>      此变更旨在避免当候选计划选项的估计代价实际相同时出现平台特定的行为。\n     </p>", "text": "在所有受支持的分支中使用模糊路径代价平局判定规则（Tom Lane） 此变更旨在避免当候选计划选项的估计代价实际相同时出现平台特定的行为。", "title": "在所有受支持的分支中使用模糊路径代价平局判定规则", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.23/#id-1.11.6.5.6", "source_hash": "ebcb0ee41ccddf309d18c05835c02f1f3f1ce3fae9e7495f1bbe2f8077706f06", "section_path": ["变更"], "commit_groups": [], "identity_text": "Use fuzzy path cost tiebreaking rule in all supported branches (Tom Lane) This change is meant to avoid platform-specific behavior when alternative plan choices have effectively-identical estimated costs.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.23/changes/022", "db_id": "d08386d3075d38b3300af410b0063344", "patch_ids": [], "statement_hash": "27d9f7a5a9bccd2a38c873315d5a5a5d98776292a3274f84439ffea634907cec", "relations": [{"rule": 2, "type": "equivalent", "target": "f18e5e8b66eeebf1ebf9943c3974a341", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "27d9f7a5a9bccd2a38c873315d5a5a5d98776292a3274f84439ffea634907cec"}}], "version": "9.0.23", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "f18e5e8b66eeebf1ebf9943c3974a341", "kind": "equivalent", "version": "9.1.19", "label": "9.1.19", "title": "在所有受支持的分支中使用模糊路径代价平局判定规则", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "27d9f7a5a9bccd2a38c873315d5a5a5d98776292a3274f84439ffea634907cec"}, "url": "/docs/compare/?release=9.1.19#9.1.19-8d15935330832db2", "source_url": "/docs/release/9.1.19/#id-1.11.6.10.5"}]}, {"id": "9.0.23-96e309f35492ba59", "cves": [], "html": "<p>     在 postmaster 关闭期间，确保在移除<code>postmaster.pid</code>文件之前移除各套接字的锁文件并关闭监听套接字（Tom Lane）\n    </p><p>     这可以避免外部脚本在<code>pg_ctl stop</code>一返回就尝试启动新 postmaster 时出现竞争条件失败。\n    </p>", "text": "在 postmaster 关闭期间，确保在移除postmaster.pid文件之前移除各套接字的锁文件并关闭监听套接字（Tom Lane） 这可以避免外部脚本在pg_ctl stop一返回就尝试启动新 postmaster 时出现竞争条件失败。", "title": "在 postmaster 关闭期间，确保在移除postmaster.pid文件之前移除各套接字的锁文件并关闭监听套接字", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.23/#id-1.11.6.5.6", "source_hash": "c719a79e7449e6ffadf447302e95cd41bacae44fbdd30eca2433e8f64c00d596", "section_path": ["变更"], "commit_groups": [], "identity_text": "During postmaster shutdown, ensure that per-socket lock files are removed and listen sockets are closed before we remove the postmaster.pid file (Tom Lane) This avoids race-condition failures if an external script attempts to start a new postmaster as soon as pg_ctl stop returns.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.23/changes/023", "db_id": "2238916f99c9b444daffc307da86fa64", "patch_ids": [], "statement_hash": "33b77933e3cb5e7fb1eed774f3daba97a8094d5c59e9ea16d71814730a4d696e", "relations": [{"rule": 2, "type": "equivalent", "target": "58b1e3ac6ef0ced8f5b51d6cc6c7b616", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "33b77933e3cb5e7fb1eed774f3daba97a8094d5c59e9ea16d71814730a4d696e"}}, {"rule": 2, "type": "equivalent", "target": "6123c5a01534e99b41b4f08852b3b872", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "33b77933e3cb5e7fb1eed774f3daba97a8094d5c59e9ea16d71814730a4d696e"}}, {"rule": 2, "type": "equivalent", "target": "6ee99a9a9afda8e05099240c354ed0b6", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "33b77933e3cb5e7fb1eed774f3daba97a8094d5c59e9ea16d71814730a4d696e"}}, {"rule": 2, "type": "equivalent", "target": "c5d7876ac5d25aaad8b84a620e40bb6b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "33b77933e3cb5e7fb1eed774f3daba97a8094d5c59e9ea16d71814730a4d696e"}}], "version": "9.0.23", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "58b1e3ac6ef0ced8f5b51d6cc6c7b616", "kind": "equivalent", "version": "9.4.5", "label": "9.4.5", "title": "在 postmaster 关闭期间，确保在移除postmaster.pid文件之前移除各套接字的锁文件并关闭监听套接字", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "33b77933e3cb5e7fb1eed774f3daba97a8094d5c59e9ea16d71814730a4d696e"}, "url": "/docs/compare/?release=9.4.5#9.4.5-96e309f35492ba59", "source_url": "/docs/release/9.4.5/#id-1.11.6.26.5"}, {"db_id": "6123c5a01534e99b41b4f08852b3b872", "kind": "equivalent", "version": "9.3.10", "label": "9.3.10", "title": "在 postmaster 关闭期间，确保在移除postmaster.pid文件之前移除各套接字的锁文件并关闭监听套接字", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "33b77933e3cb5e7fb1eed774f3daba97a8094d5c59e9ea16d71814730a4d696e"}, "url": "/docs/compare/?release=9.3.10#9.3.10-96e309f35492ba59", "source_url": "/docs/release/9.3.10/#id-1.11.6.20.5"}, {"db_id": "6ee99a9a9afda8e05099240c354ed0b6", "kind": "equivalent", "version": "9.2.14", "label": "9.2.14", "title": "在 postmaster 关闭期间，确保在移除postmaster.pid文件之前移除各套接字的锁文件并关闭监听套接字", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "33b77933e3cb5e7fb1eed774f3daba97a8094d5c59e9ea16d71814730a4d696e"}, "url": "/docs/compare/?release=9.2.14#9.2.14-96e309f35492ba59", "source_url": "/docs/release/9.2.14/#id-1.11.6.15.5"}, {"db_id": "c5d7876ac5d25aaad8b84a620e40bb6b", "kind": "equivalent", "version": "9.1.19", "label": "9.1.19", "title": "在 postmaster 关闭期间，确保在移除postmaster.pid文件之前移除各套接字的锁文件并关闭监听套接字", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "33b77933e3cb5e7fb1eed774f3daba97a8094d5c59e9ea16d71814730a4d696e"}, "url": "/docs/compare/?release=9.1.19#9.1.19-96e309f35492ba59", "source_url": "/docs/release/9.1.19/#id-1.11.6.10.5"}]}, {"id": "9.0.23-4f1a4657f143b745", "cves": [], "html": "<p>     修复 postmaster 对崩溃恢复期间启动进程崩溃的处理（Tom Lane）\n    </p><p>     如果在崩溃恢复周期中，启动进程在尚未恢复数据库一致性时崩溃，我们会尝试启动一个新的启动进程，而这通常只会再次崩溃，导致无限循环。\n    </p>", "text": "修复 postmaster 对崩溃恢复期间启动进程崩溃的处理（Tom Lane） 如果在崩溃恢复周期中，启动进程在尚未恢复数据库一致性时崩溃，我们会尝试启动一个新的启动进程，而这通常只会再次崩溃，导致无限循环。", "title": "修复 postmaster 对崩溃恢复期间启动进程崩溃的处理", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.23/#id-1.11.6.5.6", "source_hash": "b299cc8e1d02cc9138c76c99ab0a97c01d3cd88acb8001d52099c9d05a95bfcd", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix postmaster's handling of a startup-process crash during crash recovery (Tom Lane) If, during a crash recovery cycle, the startup process crashes without having restored database consistency, we'd try to launch a new startup process, which typically would just crash again, leading to an infinite loop.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.23/changes/024", "db_id": "25b4b1b33ec87d27c23ed570ea8c969d", "patch_ids": [], "statement_hash": "91ae74edce87d6db363944c5f1d900a55d4c04b4397e1b5c6b3721c164e7f890", "relations": [{"rule": 2, "type": "equivalent", "target": "3743a74fa2cd46e18b726f09011e3b2e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "91ae74edce87d6db363944c5f1d900a55d4c04b4397e1b5c6b3721c164e7f890"}}, {"rule": 2, "type": "equivalent", "target": "5bdee0d295cd97f41219f89a71522161", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "91ae74edce87d6db363944c5f1d900a55d4c04b4397e1b5c6b3721c164e7f890"}}, {"rule": 2, "type": "equivalent", "target": "aacd27be04e3de394eb4d1893a79d564", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "91ae74edce87d6db363944c5f1d900a55d4c04b4397e1b5c6b3721c164e7f890"}}, {"rule": 2, "type": "equivalent", "target": "e5404104bc0c281b3f794671d3496883", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "91ae74edce87d6db363944c5f1d900a55d4c04b4397e1b5c6b3721c164e7f890"}}], "version": "9.0.23", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "aacd27be04e3de394eb4d1893a79d564", "kind": "equivalent", "version": "9.4.5", "label": "9.4.5", "title": "修复 postmaster 对崩溃恢复期间启动进程崩溃的处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "91ae74edce87d6db363944c5f1d900a55d4c04b4397e1b5c6b3721c164e7f890"}, "url": "/docs/compare/?release=9.4.5#9.4.5-4f1a4657f143b745", "source_url": "/docs/release/9.4.5/#id-1.11.6.26.5"}, {"db_id": "5bdee0d295cd97f41219f89a71522161", "kind": "equivalent", "version": "9.3.10", "label": "9.3.10", "title": "修复 postmaster 对崩溃恢复期间启动进程崩溃的处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "91ae74edce87d6db363944c5f1d900a55d4c04b4397e1b5c6b3721c164e7f890"}, "url": "/docs/compare/?release=9.3.10#9.3.10-4f1a4657f143b745", "source_url": "/docs/release/9.3.10/#id-1.11.6.20.5"}, {"db_id": "3743a74fa2cd46e18b726f09011e3b2e", "kind": "equivalent", "version": "9.2.14", "label": "9.2.14", "title": "修复 postmaster 对崩溃恢复期间启动进程崩溃的处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "91ae74edce87d6db363944c5f1d900a55d4c04b4397e1b5c6b3721c164e7f890"}, "url": "/docs/compare/?release=9.2.14#9.2.14-4f1a4657f143b745", "source_url": "/docs/release/9.2.14/#id-1.11.6.15.5"}, {"db_id": "e5404104bc0c281b3f794671d3496883", "kind": "equivalent", "version": "9.1.19", "label": "9.1.19", "title": "修复 postmaster 对崩溃恢复期间启动进程崩溃的处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "91ae74edce87d6db363944c5f1d900a55d4c04b4397e1b5c6b3721c164e7f890"}, "url": "/docs/compare/?release=9.1.19#9.1.19-4f1a4657f143b745", "source_url": "/docs/release/9.1.19/#id-1.11.6.10.5"}]}, {"id": "9.0.23-fa84f99ff7bf9801", "cves": [], "html": "<p>      当我们尝试向某个自动清理工作进程发送信号而它已经消失时，不再打印<code>WARNING</code>，并降低此类信号的日志详细程度（Tom Lane）\n     </p>", "text": "当我们尝试向某个自动清理工作进程发送信号而它已经消失时，不再打印WARNING，并降低此类信号的日志详细程度（Tom Lane）", "title": "当我们尝试向某个自动清理工作进程发送信号而它已经消失时，不再打印WARNING，并降低此类信号的日志详细程度", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.23/#id-1.11.6.5.6", "source_hash": "bf99127b3973181b4aa4656ec99c4041ee24e19392aa57e9905f59615437f7d3", "section_path": ["变更"], "commit_groups": [], "identity_text": "Do not print a WARNING when an autovacuum worker is already gone when we attempt to signal it, and reduce log verbosity for such signals (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.23/changes/025", "db_id": "66b81ba56f49b4a29abaaf9ce628e95a", "patch_ids": [], "statement_hash": "f67d0c08d798b32ba2c67f57d6d3ef1aa5fed95a2df62e8edc0c36a58989804b", "relations": [{"rule": 2, "type": "equivalent", "target": "08ac87c7db0f9ff929faa21ac8815d32", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f67d0c08d798b32ba2c67f57d6d3ef1aa5fed95a2df62e8edc0c36a58989804b"}}, {"rule": 2, "type": "equivalent", "target": "26b07f6a12369987232cf19cea71b5ab", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f67d0c08d798b32ba2c67f57d6d3ef1aa5fed95a2df62e8edc0c36a58989804b"}}, {"rule": 2, "type": "equivalent", "target": "c5871d2aa1f7a6e689e67a406dd73300", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f67d0c08d798b32ba2c67f57d6d3ef1aa5fed95a2df62e8edc0c36a58989804b"}}, {"rule": 2, "type": "equivalent", "target": "df8e63855d7f7fab6c1d5f176ac4fdf1", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f67d0c08d798b32ba2c67f57d6d3ef1aa5fed95a2df62e8edc0c36a58989804b"}}], "version": "9.0.23", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "26b07f6a12369987232cf19cea71b5ab", "kind": "equivalent", "version": "9.4.5", "label": "9.4.5", "title": "当我们试图向某个自动清理工作进程发送信号而它已经不在时，不再打印 WARNING，并降低此类信号的日志详细程度", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f67d0c08d798b32ba2c67f57d6d3ef1aa5fed95a2df62e8edc0c36a58989804b"}, "url": "/docs/compare/?release=9.4.5#9.4.5-d6c19e210c0f3a86", "source_url": "/docs/release/9.4.5/#id-1.11.6.26.5"}, {"db_id": "c5871d2aa1f7a6e689e67a406dd73300", "kind": "equivalent", "version": "9.3.10", "label": "9.3.10", "title": "当我们尝试向某个自动清理工作进程发送信号而它已经消失时，不再打印WARNING，并降低此类信号的日志详细程度", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f67d0c08d798b32ba2c67f57d6d3ef1aa5fed95a2df62e8edc0c36a58989804b"}, "url": "/docs/compare/?release=9.3.10#9.3.10-fa84f99ff7bf9801", "source_url": "/docs/release/9.3.10/#id-1.11.6.20.5"}, {"db_id": "08ac87c7db0f9ff929faa21ac8815d32", "kind": "equivalent", "version": "9.2.14", "label": "9.2.14", "title": "当我们尝试向某个自动清理工作进程发送信号而它已经消失时，不再打印WARNING，并降低此类信号的日志详细程度", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f67d0c08d798b32ba2c67f57d6d3ef1aa5fed95a2df62e8edc0c36a58989804b"}, "url": "/docs/compare/?release=9.2.14#9.2.14-fa84f99ff7bf9801", "source_url": "/docs/release/9.2.14/#id-1.11.6.15.5"}, {"db_id": "df8e63855d7f7fab6c1d5f176ac4fdf1", "kind": "equivalent", "version": "9.1.19", "label": "9.1.19", "title": "当我们尝试向某个自动清理工作进程发送信号而它已经消失时，不再打印WARNING，并降低此类信号的日志详细程度", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f67d0c08d798b32ba2c67f57d6d3ef1aa5fed95a2df62e8edc0c36a58989804b"}, "url": "/docs/compare/?release=9.1.19#9.1.19-fa84f99ff7bf9801", "source_url": "/docs/release/9.1.19/#id-1.11.6.10.5"}]}, {"id": "9.0.23-547a194aca56d331", "cves": [], "html": "<p>      防止服务器时钟被大幅回拨时自动清理启动器睡眠时间过长（Álvaro Herrera）\n     </p>", "text": "防止服务器时钟被大幅回拨时自动清理启动器睡眠时间过长（Álvaro Herrera）", "title": "防止服务器时钟被大幅回拨时自动清理启动器睡眠时间过长", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.23/#id-1.11.6.5.6", "source_hash": "7533061f0984a3e2e7906c7580c5031c818080802cfa60a5d128f887a8738030", "section_path": ["变更"], "commit_groups": [], "identity_text": "Prevent autovacuum launcher from sleeping unduly long if the server clock is moved backwards a large amount (Álvaro Herrera)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.23/changes/026", "db_id": "d40893693c1360676fc3b7acc438a690", "patch_ids": [], "statement_hash": "f5f386cc991e5f602efa7585835a4dd9990aa0ab159b24b225f6f8f181cc1bfa", "relations": [{"rule": 2, "type": "equivalent", "target": "1f82f0763370b9c2c06c168e1efe8084", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f5f386cc991e5f602efa7585835a4dd9990aa0ab159b24b225f6f8f181cc1bfa"}}, {"rule": 2, "type": "equivalent", "target": "4432abe6dc96abdc817e209ab3bb6b68", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f5f386cc991e5f602efa7585835a4dd9990aa0ab159b24b225f6f8f181cc1bfa"}}, {"rule": 2, "type": "equivalent", "target": "85315a815226b58761d94c1be6655b14", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f5f386cc991e5f602efa7585835a4dd9990aa0ab159b24b225f6f8f181cc1bfa"}}, {"rule": 2, "type": "equivalent", "target": "996848fcaade4346513456e73346e401", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f5f386cc991e5f602efa7585835a4dd9990aa0ab159b24b225f6f8f181cc1bfa"}}], "version": "9.0.23", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "85315a815226b58761d94c1be6655b14", "kind": "equivalent", "version": "9.4.5", "label": "9.4.5", "title": "防止自动清理启动器在服务器时钟被大幅回拨时睡眠过长时间", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f5f386cc991e5f602efa7585835a4dd9990aa0ab159b24b225f6f8f181cc1bfa"}, "url": "/docs/compare/?release=9.4.5#9.4.5-a3b5dfc2d6d29d1a", "source_url": "/docs/release/9.4.5/#id-1.11.6.26.5"}, {"db_id": "4432abe6dc96abdc817e209ab3bb6b68", "kind": "equivalent", "version": "9.3.10", "label": "9.3.10", "title": "防止服务器时钟被大幅回拨时自动清理启动器睡眠时间过长", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f5f386cc991e5f602efa7585835a4dd9990aa0ab159b24b225f6f8f181cc1bfa"}, "url": "/docs/compare/?release=9.3.10#9.3.10-547a194aca56d331", "source_url": "/docs/release/9.3.10/#id-1.11.6.20.5"}, {"db_id": "996848fcaade4346513456e73346e401", "kind": "equivalent", "version": "9.2.14", "label": "9.2.14", "title": "防止服务器时钟被大幅回拨时自动清理启动器睡眠时间过长", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f5f386cc991e5f602efa7585835a4dd9990aa0ab159b24b225f6f8f181cc1bfa"}, "url": "/docs/compare/?release=9.2.14#9.2.14-547a194aca56d331", "source_url": "/docs/release/9.2.14/#id-1.11.6.15.5"}, {"db_id": "1f82f0763370b9c2c06c168e1efe8084", "kind": "equivalent", "version": "9.1.19", "label": "9.1.19", "title": "防止服务器时钟被大幅回拨时自动清理启动器睡眠时间过长", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f5f386cc991e5f602efa7585835a4dd9990aa0ab159b24b225f6f8f181cc1bfa"}, "url": "/docs/compare/?release=9.1.19#9.1.19-547a194aca56d331", "source_url": "/docs/release/9.1.19/#id-1.11.6.10.5"}]}, {"id": "9.0.23-04e23441e5e4cdc8", "cves": [], "html": "<p>      确保 GIN 索引待插入列表的清理可被取消请求中断（Jeff Janes）\n     </p>", "text": "确保 GIN 索引待插入列表的清理可被取消请求中断（Jeff Janes）", "title": "确保 GIN 索引待插入列表的清理可被取消请求中断", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.23/#id-1.11.6.5.6", "source_hash": "421d8ce3b26043343c0bcb7fa46194bdf0e93dd4ea22581389b3e5448b098c03", "section_path": ["变更"], "commit_groups": [], "identity_text": "Ensure that cleanup of a GIN index's pending-insertions list is interruptable by cancel requests (Jeff Janes)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.23/changes/027", "db_id": "477476d67ec7dea390beeadb1da8ac99", "patch_ids": [], "statement_hash": "bb25948e9712bfecf2ab57f309def29599303198bbd68fc6216e75ae3bd53b6f", "relations": [{"rule": 2, "type": "equivalent", "target": "272eba457c81dbfb258f54eb8da9febe", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bb25948e9712bfecf2ab57f309def29599303198bbd68fc6216e75ae3bd53b6f"}}, {"rule": 2, "type": "equivalent", "target": "36ebe8bf4a1fdf882927d34c20b6cdab", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bb25948e9712bfecf2ab57f309def29599303198bbd68fc6216e75ae3bd53b6f"}}, {"rule": 2, "type": "equivalent", "target": "3dc7b3c5a20c9b9bf3a44e4962a884aa", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bb25948e9712bfecf2ab57f309def29599303198bbd68fc6216e75ae3bd53b6f"}}, {"rule": 2, "type": "equivalent", "target": "f3cc6b65ed4320c6692f20fc53416e5a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bb25948e9712bfecf2ab57f309def29599303198bbd68fc6216e75ae3bd53b6f"}}], "version": "9.0.23", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "3dc7b3c5a20c9b9bf3a44e4962a884aa", "kind": "equivalent", "version": "9.4.5", "label": "9.4.5", "title": "确保 GIN 索引的待处理插入列表清理可被取消请求中断", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bb25948e9712bfecf2ab57f309def29599303198bbd68fc6216e75ae3bd53b6f"}, "url": "/docs/compare/?release=9.4.5#9.4.5-b8afe1ed78febe5c", "source_url": "/docs/release/9.4.5/#id-1.11.6.26.5"}, {"db_id": "272eba457c81dbfb258f54eb8da9febe", "kind": "equivalent", "version": "9.3.10", "label": "9.3.10", "title": "确保 GIN 索引待插入列表的清理可被取消请求中断", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bb25948e9712bfecf2ab57f309def29599303198bbd68fc6216e75ae3bd53b6f"}, "url": "/docs/compare/?release=9.3.10#9.3.10-04e23441e5e4cdc8", "source_url": "/docs/release/9.3.10/#id-1.11.6.20.5"}, {"db_id": "36ebe8bf4a1fdf882927d34c20b6cdab", "kind": "equivalent", "version": "9.2.14", "label": "9.2.14", "title": "确保 GIN 索引待插入列表的清理可被取消请求中断", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bb25948e9712bfecf2ab57f309def29599303198bbd68fc6216e75ae3bd53b6f"}, "url": "/docs/compare/?release=9.2.14#9.2.14-04e23441e5e4cdc8", "source_url": "/docs/release/9.2.14/#id-1.11.6.15.5"}, {"db_id": "f3cc6b65ed4320c6692f20fc53416e5a", "kind": "equivalent", "version": "9.1.19", "label": "9.1.19", "title": "确保 GIN 索引待插入列表的清理可被取消请求中断", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bb25948e9712bfecf2ab57f309def29599303198bbd68fc6216e75ae3bd53b6f"}, "url": "/docs/compare/?release=9.1.19#9.1.19-04e23441e5e4cdc8", "source_url": "/docs/release/9.1.19/#id-1.11.6.10.5"}]}, {"id": "9.0.23-5d139d856ac077d8", "cves": [], "html": "<p>     允许重用 GIN 索引中的全零页（Heikki Linnakangas）\n    </p><p>     崩溃之后可能遗留这样的页。\n    </p>", "text": "允许重用 GIN 索引中的全零页（Heikki Linnakangas） 崩溃之后可能遗留这样的页。", "title": "允许重用 GIN 索引中的全零页", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.23/#id-1.11.6.5.6", "source_hash": "d3523b3a1bb0c96575d6c88b8024bbc8c065cc0a8c1ff1fd9e9cf772446dee61", "section_path": ["变更"], "commit_groups": [], "identity_text": "Allow all-zeroes pages in GIN indexes to be reused (Heikki Linnakangas) Such a page might be left behind after a crash.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.23/changes/028", "db_id": "f7eb2ac7e191c96d40b1e7e592a9ebe9", "patch_ids": [], "statement_hash": "6ac23149da533d4f780029d553d21b95c46f8983a02eed726949a3b14da14d26", "relations": [{"rule": 2, "type": "equivalent", "target": "188cb3ac83ecaf2ae5cbfe06668a30f5", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6ac23149da533d4f780029d553d21b95c46f8983a02eed726949a3b14da14d26"}}, {"rule": 2, "type": "equivalent", "target": "99de94d6254a369aacaefc6ae48c5716", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6ac23149da533d4f780029d553d21b95c46f8983a02eed726949a3b14da14d26"}}, {"rule": 2, "type": "equivalent", "target": "ae553bc4a039aeedb2a8188e890774cb", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6ac23149da533d4f780029d553d21b95c46f8983a02eed726949a3b14da14d26"}}, {"rule": 2, "type": "equivalent", "target": "eb2cea0e499dcfee7bcedac19fb19257", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6ac23149da533d4f780029d553d21b95c46f8983a02eed726949a3b14da14d26"}}], "version": "9.0.23", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "99de94d6254a369aacaefc6ae48c5716", "kind": "equivalent", "version": "9.4.5", "label": "9.4.5", "title": "允许重用 GIN 索引中的全零页", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6ac23149da533d4f780029d553d21b95c46f8983a02eed726949a3b14da14d26"}, "url": "/docs/compare/?release=9.4.5#9.4.5-5d139d856ac077d8", "source_url": "/docs/release/9.4.5/#id-1.11.6.26.5"}, {"db_id": "188cb3ac83ecaf2ae5cbfe06668a30f5", "kind": "equivalent", "version": "9.3.10", "label": "9.3.10", "title": "允许重用 GIN 索引中的全零页", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6ac23149da533d4f780029d553d21b95c46f8983a02eed726949a3b14da14d26"}, "url": "/docs/compare/?release=9.3.10#9.3.10-5d139d856ac077d8", "source_url": "/docs/release/9.3.10/#id-1.11.6.20.5"}, {"db_id": "ae553bc4a039aeedb2a8188e890774cb", "kind": "equivalent", "version": "9.2.14", "label": "9.2.14", "title": "允许重用 GIN 索引中的全零页", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6ac23149da533d4f780029d553d21b95c46f8983a02eed726949a3b14da14d26"}, "url": "/docs/compare/?release=9.2.14#9.2.14-5d139d856ac077d8", "source_url": "/docs/release/9.2.14/#id-1.11.6.15.5"}, {"db_id": "eb2cea0e499dcfee7bcedac19fb19257", "kind": "equivalent", "version": "9.1.19", "label": "9.1.19", "title": "允许重用 GIN 索引中的全零页", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6ac23149da533d4f780029d553d21b95c46f8983a02eed726949a3b14da14d26"}, "url": "/docs/compare/?release=9.1.19#9.1.19-5d139d856ac077d8", "source_url": "/docs/release/9.1.19/#id-1.11.6.10.5"}]}, {"id": "9.0.23-1e03f510c689d2f0", "cves": [], "html": "<p>      修复一个差一错误，该错误会导致 subtrans/multixact 截断中出现本可避免的<span>“<span>表面回卷</span>”</span>警告（Thomas Munro）\n     </p>", "text": "修复一个差一错误，该错误会导致 subtrans/multixact 截断中出现本可避免的“表面回卷”警告（Thomas Munro）", "title": "修复一个差一错误，该错误会导致 subtrans/multixact 截断中出现本可避免的“表面回卷”警告", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.23/#id-1.11.6.5.6", "source_hash": "f5eb89ad094bfdc727c2d812c7365606dfbbe936e7cb5f72f187d2edefbbe71b", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix off-by-one error that led to otherwise-harmless warnings about apparent wraparound in subtrans/multixact truncation (Thomas Munro)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.23/changes/029", "db_id": "c64b593aef030fdd469179036eddb43b", "patch_ids": [], "statement_hash": "edceeb0986fe1310a8a07a53b708fac21809e16ee52a04ff979f1c47520809a4", "relations": [{"rule": 2, "type": "equivalent", "target": "57fb4b6a309d6355e51ff526e42d34cb", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "edceeb0986fe1310a8a07a53b708fac21809e16ee52a04ff979f1c47520809a4"}}, {"rule": 2, "type": "equivalent", "target": "849a7ba160a2bdd3f3609780d167e642", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "edceeb0986fe1310a8a07a53b708fac21809e16ee52a04ff979f1c47520809a4"}}, {"rule": 2, "type": "equivalent", "target": "88a05fbed4b44cfa4bc508234381f876", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "edceeb0986fe1310a8a07a53b708fac21809e16ee52a04ff979f1c47520809a4"}}, {"rule": 2, "type": "equivalent", "target": "b7dad80ce673e6dd1076b9330f43ec4f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "edceeb0986fe1310a8a07a53b708fac21809e16ee52a04ff979f1c47520809a4"}}], "version": "9.0.23", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "88a05fbed4b44cfa4bc508234381f876", "kind": "equivalent", "version": "9.4.5", "label": "9.4.5", "title": "修复一个差一错误，该错误导致子事务/多事务截断中出现关于 “apparent wraparound” 的原本无害的警告", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "edceeb0986fe1310a8a07a53b708fac21809e16ee52a04ff979f1c47520809a4"}, "url": "/docs/compare/?release=9.4.5#9.4.5-1a71bd70c34be1ff", "source_url": "/docs/release/9.4.5/#id-1.11.6.26.5"}, {"db_id": "b7dad80ce673e6dd1076b9330f43ec4f", "kind": "equivalent", "version": "9.3.10", "label": "9.3.10", "title": "修复一个差一错误，该错误会导致 subtrans/multixact 截断中出现本可避免的“表面回卷”警告", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "edceeb0986fe1310a8a07a53b708fac21809e16ee52a04ff979f1c47520809a4"}, "url": "/docs/compare/?release=9.3.10#9.3.10-1e03f510c689d2f0", "source_url": "/docs/release/9.3.10/#id-1.11.6.20.5"}, {"db_id": "57fb4b6a309d6355e51ff526e42d34cb", "kind": "equivalent", "version": "9.2.14", "label": "9.2.14", "title": "修复一个差一错误，该错误会导致 subtrans/multixact 截断中出现本可避免的“表面回卷”警告", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "edceeb0986fe1310a8a07a53b708fac21809e16ee52a04ff979f1c47520809a4"}, "url": "/docs/compare/?release=9.2.14#9.2.14-1e03f510c689d2f0", "source_url": "/docs/release/9.2.14/#id-1.11.6.15.5"}, {"db_id": "849a7ba160a2bdd3f3609780d167e642", "kind": "equivalent", "version": "9.1.19", "label": "9.1.19", "title": "修复一个差一错误，该错误会导致 subtrans/multixact 截断中出现本可避免的“表面回卷”警告", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "edceeb0986fe1310a8a07a53b708fac21809e16ee52a04ff979f1c47520809a4"}, "url": "/docs/compare/?release=9.1.19#9.1.19-1e03f510c689d2f0", "source_url": "/docs/release/9.1.19/#id-1.11.6.10.5"}]}, {"id": "9.0.23-21f415a2fd0b9794", "cves": [], "html": "<p>      修复<span>PL/pgSQL</span>错误上下文消息中<code>CONTINUE</code>和<code>MOVE</code>语句类型误报的问题（Pavel Stehule, Tom Lane）\n     </p>", "text": "修复PL/pgSQL错误上下文消息中CONTINUE和MOVE语句类型误报的问题（Pavel Stehule, Tom Lane）", "title": "修复PL/pgSQL错误上下文消息中CONTINUE和MOVE语句类型误报的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.23/#id-1.11.6.5.6", "source_hash": "23e93454498c21955fd7f896d29a8b6a306536252dddead755b21020f2a3ba4b", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix misreporting of CONTINUE and MOVE statement types in PL/pgSQL's error context messages (Pavel Stehule, Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.23/changes/030", "db_id": "01aa249524b9831a1297d29a4b51125a", "patch_ids": [], "statement_hash": "c5e333c8e1546e5b1f101a8ce430cb9240161483dbfcd422e2c75fa07bd99d0b", "relations": [{"rule": 2, "type": "equivalent", "target": "125e84128aafc51dd0727636c39f8d4e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c5e333c8e1546e5b1f101a8ce430cb9240161483dbfcd422e2c75fa07bd99d0b"}}, {"rule": 2, "type": "equivalent", "target": "34762483eb37f7fc111ea86ef58fc37c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c5e333c8e1546e5b1f101a8ce430cb9240161483dbfcd422e2c75fa07bd99d0b"}}, {"rule": 2, "type": "equivalent", "target": "7bb773e16e19bec67e80952c0aadfef1", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c5e333c8e1546e5b1f101a8ce430cb9240161483dbfcd422e2c75fa07bd99d0b"}}, {"rule": 2, "type": "equivalent", "target": "edb94b34177d94efaad905a27b76a609", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c5e333c8e1546e5b1f101a8ce430cb9240161483dbfcd422e2c75fa07bd99d0b"}}], "version": "9.0.23", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "125e84128aafc51dd0727636c39f8d4e", "kind": "equivalent", "version": "9.4.5", "label": "9.4.5", "title": "修复 PL/pgSQL 错误上下文消息中对 CONTINUE 和 MOVE 语句类型的误报", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c5e333c8e1546e5b1f101a8ce430cb9240161483dbfcd422e2c75fa07bd99d0b"}, "url": "/docs/compare/?release=9.4.5#9.4.5-1dddd26b0b730679", "source_url": "/docs/release/9.4.5/#id-1.11.6.26.5"}, {"db_id": "34762483eb37f7fc111ea86ef58fc37c", "kind": "equivalent", "version": "9.3.10", "label": "9.3.10", "title": "修复PL/pgSQL错误上下文消息中CONTINUE和MOVE语句类型误报的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c5e333c8e1546e5b1f101a8ce430cb9240161483dbfcd422e2c75fa07bd99d0b"}, "url": "/docs/compare/?release=9.3.10#9.3.10-21f415a2fd0b9794", "source_url": "/docs/release/9.3.10/#id-1.11.6.20.5"}, {"db_id": "7bb773e16e19bec67e80952c0aadfef1", "kind": "equivalent", "version": "9.2.14", "label": "9.2.14", "title": "修复PL/pgSQL错误上下文消息中CONTINUE和MOVE语句类型误报的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c5e333c8e1546e5b1f101a8ce430cb9240161483dbfcd422e2c75fa07bd99d0b"}, "url": "/docs/compare/?release=9.2.14#9.2.14-21f415a2fd0b9794", "source_url": "/docs/release/9.2.14/#id-1.11.6.15.5"}, {"db_id": "edb94b34177d94efaad905a27b76a609", "kind": "equivalent", "version": "9.1.19", "label": "9.1.19", "title": "修复PL/pgSQL错误上下文消息中CONTINUE和MOVE语句类型误报的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c5e333c8e1546e5b1f101a8ce430cb9240161483dbfcd422e2c75fa07bd99d0b"}, "url": "/docs/compare/?release=9.1.19#9.1.19-21f415a2fd0b9794", "source_url": "/docs/release/9.1.19/#id-1.11.6.10.5"}]}, {"id": "9.0.23-53e9aa96fb6b2bcd", "cves": [], "html": "<p>      修复<span>PL/Tcl</span>中一些未检查<code>malloc()</code>调用失败的位置（Michael Paquier, Álvaro Herrera）\n     </p>", "text": "修复PL/Tcl中一些未检查malloc()调用失败的位置（Michael Paquier, Álvaro Herrera）", "title": "修复PL/Tcl中一些未检查malloc()调用失败的位置", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.23/#id-1.11.6.5.6", "source_hash": "3546aa0c967cadf7b240eb8c520db775e3b9853c38b5da5ec2ec033c2580277b", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix some places in PL/Tcl that neglected to check for failure of malloc() calls (Michael Paquier, Álvaro Herrera)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.23/changes/031", "db_id": "9e92468d22dc93ec5ab850e41e60f9c2", "patch_ids": [], "statement_hash": "b7f9fd72a58456240c83d9a084e64b5a262f595df87d4c9a3473f43d4821e513", "relations": [{"rule": 2, "type": "equivalent", "target": "1539acb72bcb37ff79538e05a0bb0526", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b7f9fd72a58456240c83d9a084e64b5a262f595df87d4c9a3473f43d4821e513"}}, {"rule": 2, "type": "equivalent", "target": "1cf1bb72d3c6b39723fe53022aa23bbf", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b7f9fd72a58456240c83d9a084e64b5a262f595df87d4c9a3473f43d4821e513"}}, {"rule": 2, "type": "equivalent", "target": "4da2d4dd759481f20ee79ea076c77538", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b7f9fd72a58456240c83d9a084e64b5a262f595df87d4c9a3473f43d4821e513"}}, {"rule": 2, "type": "equivalent", "target": "7b3c88e8cc089dc7ea27d1e62085ab32", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b7f9fd72a58456240c83d9a084e64b5a262f595df87d4c9a3473f43d4821e513"}}], "version": "9.0.23", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "1539acb72bcb37ff79538e05a0bb0526", "kind": "equivalent", "version": "9.4.5", "label": "9.4.5", "title": "修复 PL/Tcl 中一些未检查 malloc() 调用失败之处", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b7f9fd72a58456240c83d9a084e64b5a262f595df87d4c9a3473f43d4821e513"}, "url": "/docs/compare/?release=9.4.5#9.4.5-3253bd59821361b7", "source_url": "/docs/release/9.4.5/#id-1.11.6.26.5"}, {"db_id": "7b3c88e8cc089dc7ea27d1e62085ab32", "kind": "equivalent", "version": "9.3.10", "label": "9.3.10", "title": "修复PL/Tcl中一些未检查malloc()调用失败的位置", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b7f9fd72a58456240c83d9a084e64b5a262f595df87d4c9a3473f43d4821e513"}, "url": "/docs/compare/?release=9.3.10#9.3.10-53e9aa96fb6b2bcd", "source_url": "/docs/release/9.3.10/#id-1.11.6.20.5"}, {"db_id": "4da2d4dd759481f20ee79ea076c77538", "kind": "equivalent", "version": "9.2.14", "label": "9.2.14", "title": "修复PL/Tcl中一些未检查malloc()调用失败的位置", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b7f9fd72a58456240c83d9a084e64b5a262f595df87d4c9a3473f43d4821e513"}, "url": "/docs/compare/?release=9.2.14#9.2.14-53e9aa96fb6b2bcd", "source_url": "/docs/release/9.2.14/#id-1.11.6.15.5"}, {"db_id": "1cf1bb72d3c6b39723fe53022aa23bbf", "kind": "equivalent", "version": "9.1.19", "label": "9.1.19", "title": "修复PL/Tcl中一些未检查malloc()调用失败的位置", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b7f9fd72a58456240c83d9a084e64b5a262f595df87d4c9a3473f43d4821e513"}, "url": "/docs/compare/?release=9.1.19#9.1.19-53e9aa96fb6b2bcd", "source_url": "/docs/release/9.1.19/#id-1.11.6.10.5"}]}, {"id": "9.0.23-325b5407b34583a4", "cves": [], "html": "<p>      改进<span>libpq</span>对内存耗尽情况的处理（Michael Paquier, Heikki Linnakangas）\n     </p>", "text": "改进libpq对内存耗尽情况的处理（Michael Paquier, Heikki Linnakangas）", "title": "改进libpq对内存耗尽情况的处理", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.23/#id-1.11.6.5.6", "source_hash": "8296dc20746294fa0e668a3bcabeab9f986399d221ddcc26803cd829a76d82ef", "section_path": ["变更"], "commit_groups": [], "identity_text": "Improve libpq's handling of out-of-memory conditions (Michael Paquier, Heikki Linnakangas)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.23/changes/032", "db_id": "a4349112ebfa074e60ed3bd78173d84c", "patch_ids": [], "statement_hash": "fbb5d0a163d1b469b732354722f1ef5c1281417cb03a108708763c6cce1195c8", "relations": [{"rule": 2, "type": "equivalent", "target": "164b020c132e3503d524602e7cc9ab1b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fbb5d0a163d1b469b732354722f1ef5c1281417cb03a108708763c6cce1195c8"}}, {"rule": 2, "type": "equivalent", "target": "71a1550edddf7958d1bf54bd7fdace9b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fbb5d0a163d1b469b732354722f1ef5c1281417cb03a108708763c6cce1195c8"}}, {"rule": 2, "type": "equivalent", "target": "7be63bfecbb0d6e4d18e2f8705a5b5b5", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fbb5d0a163d1b469b732354722f1ef5c1281417cb03a108708763c6cce1195c8"}}, {"rule": 2, "type": "equivalent", "target": "b848bc2065846783fa346a5c909debd3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fbb5d0a163d1b469b732354722f1ef5c1281417cb03a108708763c6cce1195c8"}}], "version": "9.0.23", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "b848bc2065846783fa346a5c909debd3", "kind": "equivalent", "version": "9.4.5", "label": "9.4.5", "title": "改进 libpq 对内存不足情况的处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fbb5d0a163d1b469b732354722f1ef5c1281417cb03a108708763c6cce1195c8"}, "url": "/docs/compare/?release=9.4.5#9.4.5-28d5e03370026ec7", "source_url": "/docs/release/9.4.5/#id-1.11.6.26.5"}, {"db_id": "71a1550edddf7958d1bf54bd7fdace9b", "kind": "equivalent", "version": "9.3.10", "label": "9.3.10", "title": "改进libpq对内存耗尽情况的处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fbb5d0a163d1b469b732354722f1ef5c1281417cb03a108708763c6cce1195c8"}, "url": "/docs/compare/?release=9.3.10#9.3.10-325b5407b34583a4", "source_url": "/docs/release/9.3.10/#id-1.11.6.20.5"}, {"db_id": "164b020c132e3503d524602e7cc9ab1b", "kind": "equivalent", "version": "9.2.14", "label": "9.2.14", "title": "改进libpq对内存耗尽情况的处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fbb5d0a163d1b469b732354722f1ef5c1281417cb03a108708763c6cce1195c8"}, "url": "/docs/compare/?release=9.2.14#9.2.14-325b5407b34583a4", "source_url": "/docs/release/9.2.14/#id-1.11.6.15.5"}, {"db_id": "7be63bfecbb0d6e4d18e2f8705a5b5b5", "kind": "equivalent", "version": "9.1.19", "label": "9.1.19", "title": "改进libpq对内存耗尽情况的处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fbb5d0a163d1b469b732354722f1ef5c1281417cb03a108708763c6cce1195c8"}, "url": "/docs/compare/?release=9.1.19#9.1.19-325b5407b34583a4", "source_url": "/docs/release/9.1.19/#id-1.11.6.10.5"}]}, {"id": "9.0.23-a61d4bfe7a814bb2", "cves": [], "html": "<p>      修复<span>ecpg</span>中的内存泄漏和缺失的内存不足检查（Michael Paquier）\n     </p>", "text": "修复ecpg中的内存泄漏和缺失的内存不足检查（Michael Paquier）", "title": "修复ecpg中的内存泄漏和缺失的内存不足检查", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.23/#id-1.11.6.5.6", "source_hash": "9ea7eb29eb7e9ca2541b679ecb05135e19d7ea495b071deb027090bbbfeb8392", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix memory leaks and missing out-of-memory checks in ecpg (Michael Paquier)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.23/changes/033", "db_id": "1d02943b02efd930bc9b6286e1942fce", "patch_ids": [], "statement_hash": "8968deea2d7743cec3254d89e5959c92d4b7fb23f87bbbc16d72a292ef321409", "relations": [{"rule": 2, "type": "equivalent", "target": "1a506d9f1b14dd22d62da216856ed7e4", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8968deea2d7743cec3254d89e5959c92d4b7fb23f87bbbc16d72a292ef321409"}}, {"rule": 2, "type": "equivalent", "target": "44b54422babf71885b31c8a6ffbcc4d3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8968deea2d7743cec3254d89e5959c92d4b7fb23f87bbbc16d72a292ef321409"}}, {"rule": 2, "type": "equivalent", "target": "8ecb30327ca588c34d375ba7b88b1651", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8968deea2d7743cec3254d89e5959c92d4b7fb23f87bbbc16d72a292ef321409"}}, {"rule": 2, "type": "equivalent", "target": "b6da92e4f833265944981baddf18676f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8968deea2d7743cec3254d89e5959c92d4b7fb23f87bbbc16d72a292ef321409"}}], "version": "9.0.23", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "b6da92e4f833265944981baddf18676f", "kind": "equivalent", "version": "9.4.5", "label": "9.4.5", "title": "修复 ecpg 中的内存泄漏和缺失的内存不足检查", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8968deea2d7743cec3254d89e5959c92d4b7fb23f87bbbc16d72a292ef321409"}, "url": "/docs/compare/?release=9.4.5#9.4.5-2d8997631ab7cabb", "source_url": "/docs/release/9.4.5/#id-1.11.6.26.5"}, {"db_id": "1a506d9f1b14dd22d62da216856ed7e4", "kind": "equivalent", "version": "9.3.10", "label": "9.3.10", "title": "修复ecpg中的内存泄漏和缺失的内存不足检查", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8968deea2d7743cec3254d89e5959c92d4b7fb23f87bbbc16d72a292ef321409"}, "url": "/docs/compare/?release=9.3.10#9.3.10-a61d4bfe7a814bb2", "source_url": "/docs/release/9.3.10/#id-1.11.6.20.5"}, {"db_id": "8ecb30327ca588c34d375ba7b88b1651", "kind": "equivalent", "version": "9.2.14", "label": "9.2.14", "title": "修复ecpg中的内存泄漏和缺失的内存不足检查", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8968deea2d7743cec3254d89e5959c92d4b7fb23f87bbbc16d72a292ef321409"}, "url": "/docs/compare/?release=9.2.14#9.2.14-a61d4bfe7a814bb2", "source_url": "/docs/release/9.2.14/#id-1.11.6.15.5"}, {"db_id": "44b54422babf71885b31c8a6ffbcc4d3", "kind": "equivalent", "version": "9.1.19", "label": "9.1.19", "title": "修复ecpg中的内存泄漏和缺失的内存不足检查", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8968deea2d7743cec3254d89e5959c92d4b7fb23f87bbbc16d72a292ef321409"}, "url": "/docs/compare/?release=9.1.19#9.1.19-a61d4bfe7a814bb2", "source_url": "/docs/release/9.1.19/#id-1.11.6.10.5"}]}, {"id": "9.0.23-502f4ffa259324e6", "cves": [], "html": "<p>     修复 <span>psql</span> 中对数字输出的区域感知格式化代码（Tom Lane）\n    </p><p> <code>\\pset numericlocale on</code> 所调用的格式化代码在一些不常见的情况下会出错，例如带指数但没有小数点的数字。它还可能破坏 <code>money</code> 数据类型已经区域化的输出。\n    </p>", "text": "修复 psql 中对数字输出的区域感知格式化代码（Tom Lane） \\pset numericlocale on 所调用的格式化代码在一些不常见的情况下会出错，例如带指数但没有小数点的数字。它还可能破坏 money 数据类型已经区域化的输出。", "title": "修复 psql 中对数字输出的区域感知格式化代码", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.23/#id-1.11.6.5.6", "source_hash": "b057cf5c9756cfa5bb1cc67687433cb074f3283d7f1737361c8c931cc89441cc", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix psql's code for locale-aware formatting of numeric output (Tom Lane) The formatting code invoked by \\pset numericlocale on did the wrong thing for some uncommon cases such as numbers with an exponent but no decimal point. It could also mangle already-localized output from the money data type.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.23/changes/034", "db_id": "6bbd8516d50d23130322a4077c3bacd3", "patch_ids": [], "statement_hash": "1bbeb677e6fa67b6c73062c664c9ae00cbe37d786833aec5ee8222e8c1b51140", "relations": [{"rule": 2, "type": "equivalent", "target": "97d3344d69061a9d13dc597dbba1d86e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1bbeb677e6fa67b6c73062c664c9ae00cbe37d786833aec5ee8222e8c1b51140"}}, {"rule": 2, "type": "equivalent", "target": "9aec20995312f7a0fef49e0b1f325441", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1bbeb677e6fa67b6c73062c664c9ae00cbe37d786833aec5ee8222e8c1b51140"}}, {"rule": 2, "type": "equivalent", "target": "a161596e4ccb2bf08d7ad90edbe42232", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1bbeb677e6fa67b6c73062c664c9ae00cbe37d786833aec5ee8222e8c1b51140"}}, {"rule": 2, "type": "equivalent", "target": "e31c8abb870b833b1ba281d19c9c75e2", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1bbeb677e6fa67b6c73062c664c9ae00cbe37d786833aec5ee8222e8c1b51140"}}], "version": "9.0.23", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "97d3344d69061a9d13dc597dbba1d86e", "kind": "equivalent", "version": "9.4.5", "label": "9.4.5", "title": "修复 psql 中对数字输出的区域感知格式化代码", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1bbeb677e6fa67b6c73062c664c9ae00cbe37d786833aec5ee8222e8c1b51140"}, "url": "/docs/compare/?release=9.4.5#9.4.5-502f4ffa259324e6", "source_url": "/docs/release/9.4.5/#id-1.11.6.26.5"}, {"db_id": "e31c8abb870b833b1ba281d19c9c75e2", "kind": "equivalent", "version": "9.3.10", "label": "9.3.10", "title": "修复 psql 中对数字输出的区域感知格式化代码", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1bbeb677e6fa67b6c73062c664c9ae00cbe37d786833aec5ee8222e8c1b51140"}, "url": "/docs/compare/?release=9.3.10#9.3.10-502f4ffa259324e6", "source_url": "/docs/release/9.3.10/#id-1.11.6.20.5"}, {"db_id": "a161596e4ccb2bf08d7ad90edbe42232", "kind": "equivalent", "version": "9.2.14", "label": "9.2.14", "title": "修复 psql 中对数字输出的区域感知格式化代码", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1bbeb677e6fa67b6c73062c664c9ae00cbe37d786833aec5ee8222e8c1b51140"}, "url": "/docs/compare/?release=9.2.14#9.2.14-502f4ffa259324e6", "source_url": "/docs/release/9.2.14/#id-1.11.6.15.5"}, {"db_id": "9aec20995312f7a0fef49e0b1f325441", "kind": "equivalent", "version": "9.1.19", "label": "9.1.19", "title": "修复 psql 中对数字输出的区域感知格式化代码", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1bbeb677e6fa67b6c73062c664c9ae00cbe37d786833aec5ee8222e8c1b51140"}, "url": "/docs/compare/?release=9.1.19#9.1.19-502f4ffa259324e6", "source_url": "/docs/release/9.1.19/#id-1.11.6.10.5"}]}, {"id": "9.0.23-68026d1560e0c660", "cves": [], "html": "<p>      防止在没有当前连接时<span>psql</span>的<code>\\c</code>命令崩溃（Noah Misch）\n     </p>", "text": "防止在没有当前连接时psql的\\c命令崩溃（Noah Misch）", "title": "防止在没有当前连接时psql的\\c命令崩溃", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.23/#id-1.11.6.5.6", "source_hash": "b7e5de13a403fc31ed838f6eb1f2bb846086e14356c9b79e0e2f294bc7948cb3", "section_path": ["变更"], "commit_groups": [], "identity_text": "Prevent crash in psql's \\c command when there is no current connection (Noah Misch)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.23/changes/035", "db_id": "a93dbd0cca9380e52edb2566cc3c7887", "patch_ids": [], "statement_hash": "a8bb375f8dd28afaa91ab8873c6fc9acd784f50f3904f2da2023934559093870", "relations": [{"rule": 2, "type": "equivalent", "target": "037355a920788444f71451b448afdde5", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a8bb375f8dd28afaa91ab8873c6fc9acd784f50f3904f2da2023934559093870"}}, {"rule": 2, "type": "equivalent", "target": "24f27d8dd0940b97582248e168589628", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a8bb375f8dd28afaa91ab8873c6fc9acd784f50f3904f2da2023934559093870"}}, {"rule": 2, "type": "equivalent", "target": "c365dba95542bedb74af489f5fc311c4", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a8bb375f8dd28afaa91ab8873c6fc9acd784f50f3904f2da2023934559093870"}}, {"rule": 2, "type": "equivalent", "target": "f224415e83a4512f5308a0484cc2b109", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a8bb375f8dd28afaa91ab8873c6fc9acd784f50f3904f2da2023934559093870"}}], "version": "9.0.23", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "f224415e83a4512f5308a0484cc2b109", "kind": "equivalent", "version": "9.4.5", "label": "9.4.5", "title": "防止 psql 的 \\c 命令在没有当前连接时崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a8bb375f8dd28afaa91ab8873c6fc9acd784f50f3904f2da2023934559093870"}, "url": "/docs/compare/?release=9.4.5#9.4.5-0b628be16e0700c2", "source_url": "/docs/release/9.4.5/#id-1.11.6.26.5"}, {"db_id": "037355a920788444f71451b448afdde5", "kind": "equivalent", "version": "9.3.10", "label": "9.3.10", "title": "防止在没有当前连接时psql的\\c命令崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a8bb375f8dd28afaa91ab8873c6fc9acd784f50f3904f2da2023934559093870"}, "url": "/docs/compare/?release=9.3.10#9.3.10-68026d1560e0c660", "source_url": "/docs/release/9.3.10/#id-1.11.6.20.5"}, {"db_id": "24f27d8dd0940b97582248e168589628", "kind": "equivalent", "version": "9.2.14", "label": "9.2.14", "title": "防止在没有当前连接时psql的\\c命令崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a8bb375f8dd28afaa91ab8873c6fc9acd784f50f3904f2da2023934559093870"}, "url": "/docs/compare/?release=9.2.14#9.2.14-68026d1560e0c660", "source_url": "/docs/release/9.2.14/#id-1.11.6.15.5"}, {"db_id": "c365dba95542bedb74af489f5fc311c4", "kind": "equivalent", "version": "9.1.19", "label": "9.1.19", "title": "防止在没有当前连接时psql的\\c命令崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a8bb375f8dd28afaa91ab8873c6fc9acd784f50f3904f2da2023934559093870"}, "url": "/docs/compare/?release=9.1.19#9.1.19-68026d1560e0c660", "source_url": "/docs/release/9.1.19/#id-1.11.6.10.5"}]}, {"id": "9.0.23-e538a1f15ed29882", "cves": [], "html": "<p>      确保<span>pg_dump</span>以<acronym>tar</acronym>格式输出运行期间创建的临时文件不被全局可读（Michael Paquier）\n     </p>", "text": "确保pg_dump以tar格式输出运行期间创建的临时文件不被全局可读（Michael Paquier）", "title": "确保pg_dump以tar格式输出运行期间创建的临时文件不被全局可读", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.23/#id-1.11.6.5.6", "source_hash": "35e5c5ac563951ac45457b9d959422849f9053a0de89c29f2bfb89f27fe0edce", "section_path": ["变更"], "commit_groups": [], "identity_text": "Ensure that temporary files created during a pg_dump run with tar-format output are not world-readable (Michael Paquier)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.23/changes/036", "db_id": "ff023c79b1135d35838320e5c1d60cb7", "patch_ids": [], "statement_hash": "5cdcd054fcdcf39cfb17f4bbd59a8065cd1967958fa05f73d867e20520ddab4e", "relations": [{"rule": 2, "type": "equivalent", "target": "1f59f5f9ee2687ef559c6f9b39e75257", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5cdcd054fcdcf39cfb17f4bbd59a8065cd1967958fa05f73d867e20520ddab4e"}}, {"rule": 2, "type": "equivalent", "target": "9fdf7145c5a66cb77868c61f0982b87d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5cdcd054fcdcf39cfb17f4bbd59a8065cd1967958fa05f73d867e20520ddab4e"}}, {"rule": 2, "type": "equivalent", "target": "bf9cd4eccd055394cfd69fecdc575cf1", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5cdcd054fcdcf39cfb17f4bbd59a8065cd1967958fa05f73d867e20520ddab4e"}}, {"rule": 2, "type": "equivalent", "target": "d2fcc056bd31b6450ff11687e5dcdf14", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5cdcd054fcdcf39cfb17f4bbd59a8065cd1967958fa05f73d867e20520ddab4e"}}], "version": "9.0.23", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "d2fcc056bd31b6450ff11687e5dcdf14", "kind": "equivalent", "version": "9.4.5", "label": "9.4.5", "title": "确保 pg_dump 以 tar 格式输出运行期间创建的临时文件不会被所有用户读取", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5cdcd054fcdcf39cfb17f4bbd59a8065cd1967958fa05f73d867e20520ddab4e"}, "url": "/docs/compare/?release=9.4.5#9.4.5-72ab3db27e1270e5", "source_url": "/docs/release/9.4.5/#id-1.11.6.26.5"}, {"db_id": "9fdf7145c5a66cb77868c61f0982b87d", "kind": "equivalent", "version": "9.3.10", "label": "9.3.10", "title": "确保pg_dump以tar格式输出运行期间创建的临时文件不被全局可读", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5cdcd054fcdcf39cfb17f4bbd59a8065cd1967958fa05f73d867e20520ddab4e"}, "url": "/docs/compare/?release=9.3.10#9.3.10-e538a1f15ed29882", "source_url": "/docs/release/9.3.10/#id-1.11.6.20.5"}, {"db_id": "bf9cd4eccd055394cfd69fecdc575cf1", "kind": "equivalent", "version": "9.2.14", "label": "9.2.14", "title": "确保pg_dump以tar格式输出运行期间创建的临时文件不被全局可读", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5cdcd054fcdcf39cfb17f4bbd59a8065cd1967958fa05f73d867e20520ddab4e"}, "url": "/docs/compare/?release=9.2.14#9.2.14-e538a1f15ed29882", "source_url": "/docs/release/9.2.14/#id-1.11.6.15.5"}, {"db_id": "1f59f5f9ee2687ef559c6f9b39e75257", "kind": "equivalent", "version": "9.1.19", "label": "9.1.19", "title": "确保pg_dump以tar格式输出运行期间创建的临时文件不被全局可读", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5cdcd054fcdcf39cfb17f4bbd59a8065cd1967958fa05f73d867e20520ddab4e"}, "url": "/docs/compare/?release=9.1.19#9.1.19-e538a1f15ed29882", "source_url": "/docs/release/9.1.19/#id-1.11.6.10.5"}]}, {"id": "9.0.23-1bf8ec2045b41148", "cves": [], "html": "<p>      修复<span>pg_dump</span>和<span>pg_upgrade</span>以支持<code>postgres</code>或<code>template1</code>数据库位于非默认表空间的情况（Marti Raudsepp, Bruce Momjian）\n     </p>", "text": "修复pg_dump和pg_upgrade以支持postgres或template1数据库位于非默认表空间的情况（Marti Raudsepp, Bruce Momjian）", "title": "修复pg_dump和pg_upgrade以支持postgres或template1数据库位于非默认表空间的情况", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.23/#id-1.11.6.5.6", "source_hash": "ee3a1c7846be87835094389cc57b2668c9f18be1ac87e5826f32b9ee8d706e80", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix pg_dump and pg_upgrade to support cases where the postgres or template1 database is in a non-default tablespace (Marti Raudsepp, Bruce Momjian)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.23/changes/037", "db_id": "cced232ba12f47ffb89e47fceed601b3", "patch_ids": [], "statement_hash": "cefd8b5dcb7f0d0fed021f38327ec6f7a537823620aec5f7cd423677f4063c74", "relations": [{"rule": 2, "type": "equivalent", "target": "9f857298c69fcf23eba991d66fdc78d8", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cefd8b5dcb7f0d0fed021f38327ec6f7a537823620aec5f7cd423677f4063c74"}}, {"rule": 2, "type": "equivalent", "target": "bb9a3ad00d9072acdd6cdd96ae9df1d1", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cefd8b5dcb7f0d0fed021f38327ec6f7a537823620aec5f7cd423677f4063c74"}}, {"rule": 2, "type": "equivalent", "target": "cc7ea040b5ec367fce2e93855ea1f77e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cefd8b5dcb7f0d0fed021f38327ec6f7a537823620aec5f7cd423677f4063c74"}}, {"rule": 2, "type": "equivalent", "target": "f6d4cc27aaca23c602e544bafdf27dba", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cefd8b5dcb7f0d0fed021f38327ec6f7a537823620aec5f7cd423677f4063c74"}}], "version": "9.0.23", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "cc7ea040b5ec367fce2e93855ea1f77e", "kind": "equivalent", "version": "9.4.5", "label": "9.4.5", "title": "修复 pg_dump 和 pg_upgrade，以支持 postgres 或 template1 数据库位于非默认表空间的情况", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cefd8b5dcb7f0d0fed021f38327ec6f7a537823620aec5f7cd423677f4063c74"}, "url": "/docs/compare/?release=9.4.5#9.4.5-35e7f65e0fe7a63d", "source_url": "/docs/release/9.4.5/#id-1.11.6.26.5"}, {"db_id": "9f857298c69fcf23eba991d66fdc78d8", "kind": "equivalent", "version": "9.3.10", "label": "9.3.10", "title": "修复pg_dump和pg_upgrade以支持postgres或template1数据库位于非默认表空间的情况", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cefd8b5dcb7f0d0fed021f38327ec6f7a537823620aec5f7cd423677f4063c74"}, "url": "/docs/compare/?release=9.3.10#9.3.10-1bf8ec2045b41148", "source_url": "/docs/release/9.3.10/#id-1.11.6.20.5"}, {"db_id": "f6d4cc27aaca23c602e544bafdf27dba", "kind": "equivalent", "version": "9.2.14", "label": "9.2.14", "title": "修复pg_dump和pg_upgrade以支持postgres或template1数据库位于非默认表空间的情况", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cefd8b5dcb7f0d0fed021f38327ec6f7a537823620aec5f7cd423677f4063c74"}, "url": "/docs/compare/?release=9.2.14#9.2.14-1bf8ec2045b41148", "source_url": "/docs/release/9.2.14/#id-1.11.6.15.5"}, {"db_id": "bb9a3ad00d9072acdd6cdd96ae9df1d1", "kind": "equivalent", "version": "9.1.19", "label": "9.1.19", "title": "修复pg_dump和pg_upgrade以支持postgres或template1数据库位于非默认表空间的情况", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cefd8b5dcb7f0d0fed021f38327ec6f7a537823620aec5f7cd423677f4063c74"}, "url": "/docs/compare/?release=9.1.19#9.1.19-1bf8ec2045b41148", "source_url": "/docs/release/9.1.19/#id-1.11.6.10.5"}]}, {"id": "9.0.23-385ed6c617071f0a", "cves": [], "html": "<p>     修复 <span>pg_dump</span> 从过于陈旧而没有特定权限类型的服务器转储时对对象权限的处理（Tom Lane）\n    </p><p>      从 7.3 之前的服务器转储函数或过程语言时，<span>pg_dump</span> 会生成撤销所有者可授予权限、转而把所有权限授予 <code>PUBLIC</code> 的 <code>GRANT</code>/<code>REVOKE</code> 命令。由于涉及的权限只是 <code>USAGE</code> 和 <code>EXECUTE</code>，这不构成安全问题，但这确实是对旧系统行为令人惊讶的表示。已修复为在这些情况下保持默认权限状态不变。\n     </p>", "text": "修复 pg_dump 从过于陈旧而没有特定权限类型的服务器转储时对对象权限的处理（Tom Lane） 从 7.3 之前的服务器转储函数或过程语言时，pg_dump 会生成撤销所有者可授予权限、转而把所有权限授予 PUBLIC 的 GRANT/REVOKE 命令。由于涉及的权限只是 USAGE 和 EXECUTE，这不构成安全问题，但这确实是对旧系统行为令人惊讶的表示。已修复为在这些情况下保持默认权限状态不变。", "title": "修复 pg_dump 从过于陈旧而没有特定权限类型的服务器转储时对对象权限的处理", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.23/#id-1.11.6.5.6", "source_hash": "06811a9e17e8fdf6e5742c0d452231b97d047e9d52afb5eeb6af40ed0cc5ff8f", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix pg_dump to handle object privileges sanely when dumping from a server too old to have a particular privilege type (Tom Lane) When dumping functions or procedural languages from pre-7.3 servers, pg_dump would produce GRANT/REVOKE commands that revoked the owner's grantable privileges and instead granted all privileges to PUBLIC. Since the privileges involved are just USAGE and EXECUTE, this isn't a security problem, but it's certainly a surprising representation of the older systems' behavior. Fix it to leave the default privilege state alone in these cases.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.23/changes/038", "db_id": "f72258b4ee0c7e6110e67a84598da02a", "patch_ids": [], "statement_hash": "8abd3bde865d2172dc1047e8d2532a07a8d4bfe25329b308692020a80dee1eb8", "relations": [{"rule": 2, "type": "equivalent", "target": "439d8d40c88f8a7c8634852d5bdca25d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8abd3bde865d2172dc1047e8d2532a07a8d4bfe25329b308692020a80dee1eb8"}}], "version": "9.0.23", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "439d8d40c88f8a7c8634852d5bdca25d", "kind": "equivalent", "version": "9.1.19", "label": "9.1.19", "title": "修复 pg_dump 从过于陈旧而没有特定权限类型的服务器转储时对对象权限的处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8abd3bde865d2172dc1047e8d2532a07a8d4bfe25329b308692020a80dee1eb8"}, "url": "/docs/compare/?release=9.1.19#9.1.19-385ed6c617071f0a", "source_url": "/docs/release/9.1.19/#id-1.11.6.10.5"}]}, {"id": "9.0.23-b3b153200af7901b", "cves": [], "html": "<p>     修复<span>pg_dump</span>以转储 shell 类型（Tom Lane）\n    </p><p>     shell 类型（即尚未完全定义的类型）用处不大，但<span>pg_dump</span>仍应转储它们。\n    </p>", "text": "修复pg_dump以转储 shell 类型（Tom Lane） shell 类型（即尚未完全定义的类型）用处不大，但pg_dump仍应转储它们。", "title": "修复pg_dump以转储 shell 类型", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.23/#id-1.11.6.5.6", "source_hash": "7e9bf1e7bd0ecd55196fb95ebced19f3656128399f9f32d8f544549b3f7cac75", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix pg_dump to dump shell types (Tom Lane) Shell types (that is, not-yet-fully-defined types) aren't useful for much, but nonetheless pg_dump should dump them.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.23/changes/039", "db_id": "ab7f74ddc545d2f6f54da12b74bc5573", "patch_ids": [], "statement_hash": "3842f9e8524734ef3ff6776f31bde69a2fba74e0f13dc37e8efdde35a1068408", "relations": [{"rule": 2, "type": "equivalent", "target": "198cd89efe91ccc05b58a6b783f09f70", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3842f9e8524734ef3ff6776f31bde69a2fba74e0f13dc37e8efdde35a1068408"}}, {"rule": 2, "type": "equivalent", "target": "1b5d70d8b6be98bebcfde68fc4adb9a0", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3842f9e8524734ef3ff6776f31bde69a2fba74e0f13dc37e8efdde35a1068408"}}, {"rule": 2, "type": "equivalent", "target": "cd6ff460aebbecc60caf6b4b080171f0", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3842f9e8524734ef3ff6776f31bde69a2fba74e0f13dc37e8efdde35a1068408"}}, {"rule": 2, "type": "equivalent", "target": "dcb47328a1d1764927180d40868b7d67", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3842f9e8524734ef3ff6776f31bde69a2fba74e0f13dc37e8efdde35a1068408"}}], "version": "9.0.23", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "198cd89efe91ccc05b58a6b783f09f70", "kind": "equivalent", "version": "9.4.5", "label": "9.4.5", "title": "修复pg_dump以转储 shell 类型", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3842f9e8524734ef3ff6776f31bde69a2fba74e0f13dc37e8efdde35a1068408"}, "url": "/docs/compare/?release=9.4.5#9.4.5-b3b153200af7901b", "source_url": "/docs/release/9.4.5/#id-1.11.6.26.5"}, {"db_id": "cd6ff460aebbecc60caf6b4b080171f0", "kind": "equivalent", "version": "9.3.10", "label": "9.3.10", "title": "修复pg_dump以转储 shell 类型", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3842f9e8524734ef3ff6776f31bde69a2fba74e0f13dc37e8efdde35a1068408"}, "url": "/docs/compare/?release=9.3.10#9.3.10-b3b153200af7901b", "source_url": "/docs/release/9.3.10/#id-1.11.6.20.5"}, {"db_id": "1b5d70d8b6be98bebcfde68fc4adb9a0", "kind": "equivalent", "version": "9.2.14", "label": "9.2.14", "title": "修复pg_dump以转储 shell 类型", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3842f9e8524734ef3ff6776f31bde69a2fba74e0f13dc37e8efdde35a1068408"}, "url": "/docs/compare/?release=9.2.14#9.2.14-b3b153200af7901b", "source_url": "/docs/release/9.2.14/#id-1.11.6.15.5"}, {"db_id": "dcb47328a1d1764927180d40868b7d67", "kind": "equivalent", "version": "9.1.19", "label": "9.1.19", "title": "修复pg_dump以转储 shell 类型", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3842f9e8524734ef3ff6776f31bde69a2fba74e0f13dc37e8efdde35a1068408"}, "url": "/docs/compare/?release=9.1.19#9.1.19-b3b153200af7901b", "source_url": "/docs/release/9.1.19/#id-1.11.6.10.5"}]}, {"id": "9.0.23-19960d87a0be9b0f", "cves": [], "html": "<p>     修复 PPC 硬件的自旋锁汇编代码使其与<acronym>AIX</acronym>本机汇编器兼容（Tom Lane）\n    </p><p>     如果<span>gcc</span>被配置为使用本机汇编器（这正变得越来越普遍），则用<span>gcc</span>构建无法工作。\n    </p>", "text": "修复 PPC 硬件的自旋锁汇编代码使其与AIX本机汇编器兼容（Tom Lane） 如果gcc被配置为使用本机汇编器（这正变得越来越普遍），则用gcc构建无法工作。", "title": "修复 PPC 硬件的自旋锁汇编代码使其与AIX本机汇编器兼容", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.23/#id-1.11.6.5.6", "source_hash": "1099c6e767f4c6e6eb4a3e6d8bd72b49c64755503c02663c5389d28d74ab6294", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix spinlock assembly code for PPC hardware to be compatible with AIX's native assembler (Tom Lane) Building with gcc didn't work if gcc had been configured to use the native assembler, which is becoming more common.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.23/changes/040", "db_id": "ee5930d6b766b9749efaddd9c3cc5f4c", "patch_ids": [], "statement_hash": "1b1165e75b01634dea27bed0b57f6cccf0b1020d746b4a5ef935bee7a5d92382", "relations": [{"rule": 2, "type": "equivalent", "target": "08722d0b58627909bc9f53b8719359d3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1b1165e75b01634dea27bed0b57f6cccf0b1020d746b4a5ef935bee7a5d92382"}}, {"rule": 2, "type": "equivalent", "target": "2053606d8ce631ced9d2a927696bbcba", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1b1165e75b01634dea27bed0b57f6cccf0b1020d746b4a5ef935bee7a5d92382"}}, {"rule": 2, "type": "equivalent", "target": "22ce4141ea7a2d4259ae42bcf1f79a1a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1b1165e75b01634dea27bed0b57f6cccf0b1020d746b4a5ef935bee7a5d92382"}}, {"rule": 2, "type": "equivalent", "target": "88d1a5e3e1cda3976eb97d2f02e3b6d3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1b1165e75b01634dea27bed0b57f6cccf0b1020d746b4a5ef935bee7a5d92382"}}], "version": "9.0.23", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "22ce4141ea7a2d4259ae42bcf1f79a1a", "kind": "equivalent", "version": "9.4.5", "label": "9.4.5", "title": "修复 PPC 硬件的自旋锁汇编代码使其与AIX本机汇编器兼容", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1b1165e75b01634dea27bed0b57f6cccf0b1020d746b4a5ef935bee7a5d92382"}, "url": "/docs/compare/?release=9.4.5#9.4.5-19960d87a0be9b0f", "source_url": "/docs/release/9.4.5/#id-1.11.6.26.5"}, {"db_id": "2053606d8ce631ced9d2a927696bbcba", "kind": "equivalent", "version": "9.3.10", "label": "9.3.10", "title": "修复 PPC 硬件的自旋锁汇编代码使其与AIX本机汇编器兼容", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1b1165e75b01634dea27bed0b57f6cccf0b1020d746b4a5ef935bee7a5d92382"}, "url": "/docs/compare/?release=9.3.10#9.3.10-19960d87a0be9b0f", "source_url": "/docs/release/9.3.10/#id-1.11.6.20.5"}, {"db_id": "88d1a5e3e1cda3976eb97d2f02e3b6d3", "kind": "equivalent", "version": "9.2.14", "label": "9.2.14", "title": "修复 PPC 硬件的自旋锁汇编代码使其与AIX本机汇编器兼容", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1b1165e75b01634dea27bed0b57f6cccf0b1020d746b4a5ef935bee7a5d92382"}, "url": "/docs/compare/?release=9.2.14#9.2.14-19960d87a0be9b0f", "source_url": "/docs/release/9.2.14/#id-1.11.6.15.5"}, {"db_id": "08722d0b58627909bc9f53b8719359d3", "kind": "equivalent", "version": "9.1.19", "label": "9.1.19", "title": "修复 PPC 硬件的自旋锁汇编代码使其与AIX本机汇编器兼容", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1b1165e75b01634dea27bed0b57f6cccf0b1020d746b4a5ef935bee7a5d92382"}, "url": "/docs/compare/?release=9.1.19#9.1.19-19960d87a0be9b0f", "source_url": "/docs/release/9.1.19/#id-1.11.6.10.5"}]}, {"id": "9.0.23-d99afd964efabbd7", "cves": [], "html": "<p>      在<acronym>AIX</acronym>上，测试<code>-qlonglong</code>编译器选项，而不是直接假定它可以安全使用（Noah Misch）\n     </p>", "text": "在AIX上，测试-qlonglong编译器选项，而不是直接假定它可以安全使用（Noah Misch）", "title": "在AIX上，测试-qlonglong编译器选项，而不是直接假定它可以安全使用", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.23/#id-1.11.6.5.6", "source_hash": "c02fa835a0c930063520397f24f1953fde6d306f4bad2cb0a9a9975c8acfb7ad", "section_path": ["变更"], "commit_groups": [], "identity_text": "On AIX, test the -qlonglong compiler option rather than just assuming it's safe to use (Noah Misch)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.23/changes/041", "db_id": "8dfcc185ebbb8d9b450a386f73553b84", "patch_ids": [], "statement_hash": "cc165bf194d65990d80eba308680b15ef43c28c6bbb9d7001d5b04e816834fff", "relations": [{"rule": 2, "type": "equivalent", "target": "568dfa6e89c6639fa12ac119790807aa", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cc165bf194d65990d80eba308680b15ef43c28c6bbb9d7001d5b04e816834fff"}}, {"rule": 2, "type": "equivalent", "target": "6a2f7a5d970f41298c516e2d6993f1f1", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cc165bf194d65990d80eba308680b15ef43c28c6bbb9d7001d5b04e816834fff"}}, {"rule": 2, "type": "equivalent", "target": "c00323995f0b6ae45556947d8a9e3505", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cc165bf194d65990d80eba308680b15ef43c28c6bbb9d7001d5b04e816834fff"}}, {"rule": 2, "type": "equivalent", "target": "f43a95263da908bd3c3bf2ce74809e5c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cc165bf194d65990d80eba308680b15ef43c28c6bbb9d7001d5b04e816834fff"}}], "version": "9.0.23", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "c00323995f0b6ae45556947d8a9e3505", "kind": "equivalent", "version": "9.4.5", "label": "9.4.5", "title": "在 AIX 上，测试 -qlonglong 编译器选项，而不是仅仅假定可以安全使用", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cc165bf194d65990d80eba308680b15ef43c28c6bbb9d7001d5b04e816834fff"}, "url": "/docs/compare/?release=9.4.5#9.4.5-582cb3ddeafa8431", "source_url": "/docs/release/9.4.5/#id-1.11.6.26.5"}, {"db_id": "f43a95263da908bd3c3bf2ce74809e5c", "kind": "equivalent", "version": "9.3.10", "label": "9.3.10", "title": "在AIX上，测试-qlonglong编译器选项，而不是直接假定它可以安全使用", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cc165bf194d65990d80eba308680b15ef43c28c6bbb9d7001d5b04e816834fff"}, "url": "/docs/compare/?release=9.3.10#9.3.10-d99afd964efabbd7", "source_url": "/docs/release/9.3.10/#id-1.11.6.20.5"}, {"db_id": "6a2f7a5d970f41298c516e2d6993f1f1", "kind": "equivalent", "version": "9.2.14", "label": "9.2.14", "title": "在AIX上，测试-qlonglong编译器选项，而不是直接假定它可以安全使用", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cc165bf194d65990d80eba308680b15ef43c28c6bbb9d7001d5b04e816834fff"}, "url": "/docs/compare/?release=9.2.14#9.2.14-d99afd964efabbd7", "source_url": "/docs/release/9.2.14/#id-1.11.6.15.5"}, {"db_id": "568dfa6e89c6639fa12ac119790807aa", "kind": "equivalent", "version": "9.1.19", "label": "9.1.19", "title": "在AIX上，测试-qlonglong编译器选项，而不是直接假定它可以安全使用", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cc165bf194d65990d80eba308680b15ef43c28c6bbb9d7001d5b04e816834fff"}, "url": "/docs/compare/?release=9.1.19#9.1.19-d99afd964efabbd7", "source_url": "/docs/release/9.1.19/#id-1.11.6.10.5"}]}, {"id": "9.0.23-b77bed39928ffbe9", "cves": [], "html": "<p>     在<acronym>AIX</acronym>上，使用<code>-Wl,-brtllib</code>链接选项以允许符号在运行时解析（Noah Misch）\n    </p><p>     Perl 5.8.0 及更高版本依赖这一能力。\n    </p>", "text": "在AIX上，使用-Wl,-brtllib链接选项以允许符号在运行时解析（Noah Misch） Perl 5.8.0 及更高版本依赖这一能力。", "title": "在AIX上，使用-Wl,-brtllib链接选项以允许符号在运行时解析", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.23/#id-1.11.6.5.6", "source_hash": "359c0e0820174e6b0106125372d70ce8f90edc57ee9e2efb429471b6e0f7cfda", "section_path": ["变更"], "commit_groups": [], "identity_text": "On AIX, use -Wl,-brtllib link option to allow symbols to be resolved at runtime (Noah Misch) Perl relies on this ability in 5.8.0 and later.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.23/changes/042", "db_id": "8f1708238b550f84182c44af3d3c0b82", "patch_ids": [], "statement_hash": "e4a8a2748e95297e0fc15c46824099d3958d8d6c815e2dfd010bd9b7661210c5", "relations": [{"rule": 2, "type": "equivalent", "target": "1c471a9d8bab5c55ebd8141bdc0c545c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e4a8a2748e95297e0fc15c46824099d3958d8d6c815e2dfd010bd9b7661210c5"}}, {"rule": 2, "type": "equivalent", "target": "702a7f1c8f7a8410baa8a62ff10c6dd3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e4a8a2748e95297e0fc15c46824099d3958d8d6c815e2dfd010bd9b7661210c5"}}, {"rule": 2, "type": "equivalent", "target": "86d8b90f4c61aafb7a7fb2189c44d402", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e4a8a2748e95297e0fc15c46824099d3958d8d6c815e2dfd010bd9b7661210c5"}}, {"rule": 2, "type": "equivalent", "target": "a81be841fc994304a694cdfc03638283", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e4a8a2748e95297e0fc15c46824099d3958d8d6c815e2dfd010bd9b7661210c5"}}], "version": "9.0.23", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "1c471a9d8bab5c55ebd8141bdc0c545c", "kind": "equivalent", "version": "9.4.5", "label": "9.4.5", "title": "在AIX上，使用-Wl,-brtllib链接选项以允许符号在运行时解析", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e4a8a2748e95297e0fc15c46824099d3958d8d6c815e2dfd010bd9b7661210c5"}, "url": "/docs/compare/?release=9.4.5#9.4.5-b77bed39928ffbe9", "source_url": "/docs/release/9.4.5/#id-1.11.6.26.5"}, {"db_id": "a81be841fc994304a694cdfc03638283", "kind": "equivalent", "version": "9.3.10", "label": "9.3.10", "title": "在AIX上，使用-Wl,-brtllib链接选项以允许符号在运行时解析", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e4a8a2748e95297e0fc15c46824099d3958d8d6c815e2dfd010bd9b7661210c5"}, "url": "/docs/compare/?release=9.3.10#9.3.10-b77bed39928ffbe9", "source_url": "/docs/release/9.3.10/#id-1.11.6.20.5"}, {"db_id": "702a7f1c8f7a8410baa8a62ff10c6dd3", "kind": "equivalent", "version": "9.2.14", "label": "9.2.14", "title": "在AIX上，使用-Wl,-brtllib链接选项以允许符号在运行时解析", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e4a8a2748e95297e0fc15c46824099d3958d8d6c815e2dfd010bd9b7661210c5"}, "url": "/docs/compare/?release=9.2.14#9.2.14-b77bed39928ffbe9", "source_url": "/docs/release/9.2.14/#id-1.11.6.15.5"}, {"db_id": "86d8b90f4c61aafb7a7fb2189c44d402", "kind": "equivalent", "version": "9.1.19", "label": "9.1.19", "title": "在AIX上，使用-Wl,-brtllib链接选项以允许符号在运行时解析", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e4a8a2748e95297e0fc15c46824099d3958d8d6c815e2dfd010bd9b7661210c5"}, "url": "/docs/compare/?release=9.1.19#9.1.19-b77bed39928ffbe9", "source_url": "/docs/release/9.1.19/#id-1.11.6.10.5"}]}, {"id": "9.0.23-2079635a1865c234", "cves": [], "html": "<p>      由于编译器缺陷，在使用 32 位<span>xlc</span>编译时避免使用内联函数（Noah Misch）\n     </p>", "text": "由于编译器缺陷，在使用 32 位xlc编译时避免使用内联函数（Noah Misch）", "title": "由于编译器缺陷，在使用 32 位xlc编译时避免使用内联函数", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.23/#id-1.11.6.5.6", "source_hash": "844943335464d4ee474c3f73667a13bc4fe93d923c5029c480b2d1c69b6c1977", "section_path": ["变更"], "commit_groups": [], "identity_text": "Avoid use of inline functions when compiling with 32-bit xlc, due to compiler bugs (Noah Misch)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.23/changes/043", "db_id": "ba1b33efb41d54081600d29fc597454e", "patch_ids": [], "statement_hash": "145f012e8d72f366304e35b0f86eb96441bde62f8d43077520a1dc99c0f81cb8", "relations": [{"rule": 2, "type": "equivalent", "target": "3d670e76d42c19d3aaec94c33efa2ef1", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "145f012e8d72f366304e35b0f86eb96441bde62f8d43077520a1dc99c0f81cb8"}}, {"rule": 2, "type": "equivalent", "target": "48f15fe9b20c6994a95a807b98ec35bb", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "145f012e8d72f366304e35b0f86eb96441bde62f8d43077520a1dc99c0f81cb8"}}, {"rule": 2, "type": "equivalent", "target": "758e12ef578cbeb1823776e365470049", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "145f012e8d72f366304e35b0f86eb96441bde62f8d43077520a1dc99c0f81cb8"}}, {"rule": 2, "type": "equivalent", "target": "876020ff4ceebd981830b752b8cf086f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "145f012e8d72f366304e35b0f86eb96441bde62f8d43077520a1dc99c0f81cb8"}}], "version": "9.0.23", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "48f15fe9b20c6994a95a807b98ec35bb", "kind": "equivalent", "version": "9.4.5", "label": "9.4.5", "title": "使用 32 位 xlc 编译时避免使用内联函数，因为编译器存在缺陷", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "145f012e8d72f366304e35b0f86eb96441bde62f8d43077520a1dc99c0f81cb8"}, "url": "/docs/compare/?release=9.4.5#9.4.5-a8fff0424fa4307c", "source_url": "/docs/release/9.4.5/#id-1.11.6.26.5"}, {"db_id": "3d670e76d42c19d3aaec94c33efa2ef1", "kind": "equivalent", "version": "9.3.10", "label": "9.3.10", "title": "由于编译器缺陷，在使用 32 位xlc编译时避免使用内联函数", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "145f012e8d72f366304e35b0f86eb96441bde62f8d43077520a1dc99c0f81cb8"}, "url": "/docs/compare/?release=9.3.10#9.3.10-2079635a1865c234", "source_url": "/docs/release/9.3.10/#id-1.11.6.20.5"}, {"db_id": "876020ff4ceebd981830b752b8cf086f", "kind": "equivalent", "version": "9.2.14", "label": "9.2.14", "title": "由于编译器缺陷，在使用 32 位xlc编译时避免使用内联函数", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "145f012e8d72f366304e35b0f86eb96441bde62f8d43077520a1dc99c0f81cb8"}, "url": "/docs/compare/?release=9.2.14#9.2.14-2079635a1865c234", "source_url": "/docs/release/9.2.14/#id-1.11.6.15.5"}, {"db_id": "758e12ef578cbeb1823776e365470049", "kind": "equivalent", "version": "9.1.19", "label": "9.1.19", "title": "由于编译器缺陷，在使用 32 位xlc编译时避免使用内联函数", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "145f012e8d72f366304e35b0f86eb96441bde62f8d43077520a1dc99c0f81cb8"}, "url": "/docs/compare/?release=9.1.19#9.1.19-2079635a1865c234", "source_url": "/docs/release/9.1.19/#id-1.11.6.10.5"}]}, {"id": "9.0.23-c5b84c55a849b496", "cves": [], "html": "<p>      必要时使用<code>librt</code>提供<code>sched_yield()</code>，某些 Solaris 版本即是如此（Oskari Saarenmaa）\n     </p>", "text": "必要时使用librt提供sched_yield()，某些 Solaris 版本即是如此（Oskari Saarenmaa）", "title": "必要时使用librt提供sched_yield()，某些 Solaris 版本即是如此", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.23/#id-1.11.6.5.6", "source_hash": "1c63156636d12289eefcd36ce516cec2c3d6057ac02f8f6cad207711d8d911ca", "section_path": ["变更"], "commit_groups": [], "identity_text": "Use librt for sched_yield() when necessary, which it is on some Solaris versions (Oskari Saarenmaa)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.23/changes/044", "db_id": "640c578e3035e1922f5aeaf519c9e8ce", "patch_ids": [], "statement_hash": "6f3bf634e61cbc1999279e3da5421becfeefcc5d86dd5353a17619da09938813", "relations": [{"rule": 2, "type": "equivalent", "target": "07cc0a1005b6962cde2372e9f9368b21", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6f3bf634e61cbc1999279e3da5421becfeefcc5d86dd5353a17619da09938813"}}, {"rule": 2, "type": "equivalent", "target": "28d4a8ee80331047799b18a48644e0ba", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6f3bf634e61cbc1999279e3da5421becfeefcc5d86dd5353a17619da09938813"}}, {"rule": 2, "type": "equivalent", "target": "367ba659cb5305339233fa74c73c909f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6f3bf634e61cbc1999279e3da5421becfeefcc5d86dd5353a17619da09938813"}}, {"rule": 2, "type": "equivalent", "target": "b10009add7519a9b2ba6ee201651ed9e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6f3bf634e61cbc1999279e3da5421becfeefcc5d86dd5353a17619da09938813"}}], "version": "9.0.23", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "07cc0a1005b6962cde2372e9f9368b21", "kind": "equivalent", "version": "9.4.5", "label": "9.4.5", "title": "必要时使用 librt 提供 sched_yield()，在某些 Solaris 版本上正是如此", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6f3bf634e61cbc1999279e3da5421becfeefcc5d86dd5353a17619da09938813"}, "url": "/docs/compare/?release=9.4.5#9.4.5-c82c3c5848e8ae19", "source_url": "/docs/release/9.4.5/#id-1.11.6.26.5"}, {"db_id": "367ba659cb5305339233fa74c73c909f", "kind": "equivalent", "version": "9.3.10", "label": "9.3.10", "title": "必要时使用librt提供sched_yield()，某些 Solaris 版本即是如此", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6f3bf634e61cbc1999279e3da5421becfeefcc5d86dd5353a17619da09938813"}, "url": "/docs/compare/?release=9.3.10#9.3.10-c5b84c55a849b496", "source_url": "/docs/release/9.3.10/#id-1.11.6.20.5"}, {"db_id": "b10009add7519a9b2ba6ee201651ed9e", "kind": "equivalent", "version": "9.2.14", "label": "9.2.14", "title": "必要时使用librt提供sched_yield()，某些 Solaris 版本即是如此", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6f3bf634e61cbc1999279e3da5421becfeefcc5d86dd5353a17619da09938813"}, "url": "/docs/compare/?release=9.2.14#9.2.14-c5b84c55a849b496", "source_url": "/docs/release/9.2.14/#id-1.11.6.15.5"}, {"db_id": "28d4a8ee80331047799b18a48644e0ba", "kind": "equivalent", "version": "9.1.19", "label": "9.1.19", "title": "必要时使用librt提供sched_yield()，某些 Solaris 版本即是如此", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6f3bf634e61cbc1999279e3da5421becfeefcc5d86dd5353a17619da09938813"}, "url": "/docs/compare/?release=9.1.19#9.1.19-c5b84c55a849b496", "source_url": "/docs/release/9.1.19/#id-1.11.6.10.5"}]}, {"id": "9.0.23-ab87fa4f5d7affe5", "cves": [], "html": "<p>      修复 Windows<code>install.bat</code>脚本以处理包含空格的目标目录名（Heikki Linnakangas）\n     </p>", "text": "修复 Windowsinstall.bat脚本以处理包含空格的目标目录名（Heikki Linnakangas）", "title": "修复 Windowsinstall.bat脚本以处理包含空格的目标目录名", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.23/#id-1.11.6.5.6", "source_hash": "055bad70218f110bc06ec240c080eb474a3a2f86b4b52c96f87ce3ec789dc897", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix Windows install.bat script to handle target directory names that contain spaces (Heikki Linnakangas)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.23/changes/045", "db_id": "2ab7366931eca415ea81477cdaf50977", "patch_ids": [], "statement_hash": "2aed701e47d9fea2fc3f4468e294c897ad336ec1542cae0693ae80fafdd100f5", "relations": [{"rule": 2, "type": "equivalent", "target": "20abc2c5303e78b897918c6b0787d6e0", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2aed701e47d9fea2fc3f4468e294c897ad336ec1542cae0693ae80fafdd100f5"}}, {"rule": 2, "type": "equivalent", "target": "28c9d0f663c7d40194eb73fb31a0c3bf", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2aed701e47d9fea2fc3f4468e294c897ad336ec1542cae0693ae80fafdd100f5"}}, {"rule": 2, "type": "equivalent", "target": "7c0e915caa622e816a95f71b331a99b8", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2aed701e47d9fea2fc3f4468e294c897ad336ec1542cae0693ae80fafdd100f5"}}, {"rule": 2, "type": "equivalent", "target": "8178eb6232fd972850e1261471abbe2c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2aed701e47d9fea2fc3f4468e294c897ad336ec1542cae0693ae80fafdd100f5"}}], "version": "9.0.23", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "7c0e915caa622e816a95f71b331a99b8", "kind": "equivalent", "version": "9.4.5", "label": "9.4.5", "title": "修复 Windows install.bat 脚本以处理包含空格的目标目录名", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2aed701e47d9fea2fc3f4468e294c897ad336ec1542cae0693ae80fafdd100f5"}, "url": "/docs/compare/?release=9.4.5#9.4.5-27ca82cd1452b2e3", "source_url": "/docs/release/9.4.5/#id-1.11.6.26.5"}, {"db_id": "20abc2c5303e78b897918c6b0787d6e0", "kind": "equivalent", "version": "9.3.10", "label": "9.3.10", "title": "修复 Windowsinstall.bat脚本以处理包含空格的目标目录名", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2aed701e47d9fea2fc3f4468e294c897ad336ec1542cae0693ae80fafdd100f5"}, "url": "/docs/compare/?release=9.3.10#9.3.10-ab87fa4f5d7affe5", "source_url": "/docs/release/9.3.10/#id-1.11.6.20.5"}, {"db_id": "28c9d0f663c7d40194eb73fb31a0c3bf", "kind": "equivalent", "version": "9.2.14", "label": "9.2.14", "title": "修复 Windowsinstall.bat脚本以处理包含空格的目标目录名", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2aed701e47d9fea2fc3f4468e294c897ad336ec1542cae0693ae80fafdd100f5"}, "url": "/docs/compare/?release=9.2.14#9.2.14-ab87fa4f5d7affe5", "source_url": "/docs/release/9.2.14/#id-1.11.6.15.5"}, {"db_id": "8178eb6232fd972850e1261471abbe2c", "kind": "equivalent", "version": "9.1.19", "label": "9.1.19", "title": "修复 Windowsinstall.bat脚本以处理包含空格的目标目录名", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2aed701e47d9fea2fc3f4468e294c897ad336ec1542cae0693ae80fafdd100f5"}, "url": "/docs/compare/?release=9.1.19#9.1.19-ab87fa4f5d7affe5", "source_url": "/docs/release/9.1.19/#id-1.11.6.10.5"}]}, {"id": "9.0.23-13376f8ec69d0ac3", "cves": [], "html": "<p>      使<span>PostgreSQL</span>版本号的数字形式（例如<code>90405</code>）以名为<code>VERSION_NUM</code>的变量方便地提供给扩展 Makefile 使用（Michael Paquier）\n     </p>", "text": "使PostgreSQL版本号的数字形式（例如90405）以名为VERSION_NUM的变量方便地提供给扩展 Makefile 使用（Michael Paquier）", "title": "使PostgreSQL版本号的数字形式（例如90405）以名为VERSION_NUM的变量方便地提供给扩展 Makefile 使用", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.23/#id-1.11.6.5.6", "source_hash": "5959fbd39edc6d90ceb04f417b68d3808976e82b2e4d58974f530a42e51b0d68", "section_path": ["变更"], "commit_groups": [], "identity_text": "Make the numeric form of the PostgreSQL version number (e.g., 90405) readily available to extension Makefiles, as a variable named VERSION_NUM (Michael Paquier)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.23/changes/046", "db_id": "3b8975527a21b7d7d5623b9a190723b0", "patch_ids": [], "statement_hash": "484060ca2a9408a8cf77ff226efaf1da79595db7b09616726d77ba2163df1965", "relations": [{"rule": 2, "type": "equivalent", "target": "0c57541666ec0cce94e6def17ed48342", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "484060ca2a9408a8cf77ff226efaf1da79595db7b09616726d77ba2163df1965"}}, {"rule": 2, "type": "equivalent", "target": "8aef9c56b83c6445e74788a14336c07f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "484060ca2a9408a8cf77ff226efaf1da79595db7b09616726d77ba2163df1965"}}, {"rule": 2, "type": "equivalent", "target": "b6a53bd4e874ed0d250f3685a5016a87", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "484060ca2a9408a8cf77ff226efaf1da79595db7b09616726d77ba2163df1965"}}, {"rule": 2, "type": "equivalent", "target": "f60461d369dd6c92d50478705906a207", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "484060ca2a9408a8cf77ff226efaf1da79595db7b09616726d77ba2163df1965"}}], "version": "9.0.23", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "f60461d369dd6c92d50478705906a207", "kind": "equivalent", "version": "9.4.5", "label": "9.4.5", "title": "使 PostgreSQL 版本号的数字形式（例如 90405）以名为 VERSION_NUM 的变量方便地供扩展 Makefile 使用", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "484060ca2a9408a8cf77ff226efaf1da79595db7b09616726d77ba2163df1965"}, "url": "/docs/compare/?release=9.4.5#9.4.5-5ee43f800ffd792d", "source_url": "/docs/release/9.4.5/#id-1.11.6.26.5"}, {"db_id": "0c57541666ec0cce94e6def17ed48342", "kind": "equivalent", "version": "9.3.10", "label": "9.3.10", "title": "使PostgreSQL版本号的数字形式（例如90405）以名为VERSION_NUM的变量方便地提供给扩展 Makefile 使用", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "484060ca2a9408a8cf77ff226efaf1da79595db7b09616726d77ba2163df1965"}, "url": "/docs/compare/?release=9.3.10#9.3.10-13376f8ec69d0ac3", "source_url": "/docs/release/9.3.10/#id-1.11.6.20.5"}, {"db_id": "8aef9c56b83c6445e74788a14336c07f", "kind": "equivalent", "version": "9.2.14", "label": "9.2.14", "title": "使PostgreSQL版本号的数字形式（例如90405）以名为VERSION_NUM的变量方便地提供给扩展 Makefile 使用", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "484060ca2a9408a8cf77ff226efaf1da79595db7b09616726d77ba2163df1965"}, "url": "/docs/compare/?release=9.2.14#9.2.14-13376f8ec69d0ac3", "source_url": "/docs/release/9.2.14/#id-1.11.6.15.5"}, {"db_id": "b6a53bd4e874ed0d250f3685a5016a87", "kind": "equivalent", "version": "9.1.19", "label": "9.1.19", "title": "使PostgreSQL版本号的数字形式（例如90405）以名为VERSION_NUM的变量方便地提供给扩展 Makefile 使用", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "484060ca2a9408a8cf77ff226efaf1da79595db7b09616726d77ba2163df1965"}, "url": "/docs/compare/?release=9.1.19#9.1.19-13376f8ec69d0ac3", "source_url": "/docs/release/9.1.19/#id-1.11.6.10.5"}]}, {"id": "9.0.23-5a7b80cf37914d87", "cves": [], "html": "<p>      将时区数据文件更新到<span>tzdata</span>发行版 2015g，以反映开曼群岛、斐济、摩尔多瓦、摩洛哥、诺福克岛、朝鲜、土耳其和乌拉圭的夏令时法规变更。为加拿大北落基山地区新增了时区名<code>America/Fort_Nelson</code>。\n     </p>", "text": "将时区数据文件更新到tzdata发行版 2015g，以反映开曼群岛、斐济、摩尔多瓦、摩洛哥、诺福克岛、朝鲜、土耳其和乌拉圭的夏令时法规变更。为加拿大北落基山地区新增了时区名America/Fort_Nelson。", "title": "将时区数据文件更新到tzdata发行版 2015g，以反映开曼群岛、斐济、摩尔多瓦、摩洛哥、诺福克岛、朝鲜、土耳其和乌拉圭的夏令时法规变更。为加拿大北落基山地区新增了时区名America/Fort_Nelson。", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.23/#id-1.11.6.5.6", "source_hash": "d99a81058168caa22d8a41fef82b608e536eab728d64fc44392f18ba60d29a15", "section_path": ["变更"], "commit_groups": [], "identity_text": "Update time zone data files to tzdata release 2015g for DST law changes in Cayman Islands, Fiji, Moldova, Morocco, Norfolk Island, North Korea, Turkey, and Uruguay. There is a new zone name America/Fort_Nelson for the Canadian Northern Rockies.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.23/changes/047", "db_id": "bbf6a37d073d738034730fd70cbb8adb", "patch_ids": [], "statement_hash": "9d15de3da93624597b911098ac15b151147ba4c257e70bfcae8ff609fb75de59", "relations": [{"rule": 2, "type": "equivalent", "target": "344574c08c0ea148baed85e08eb62e7a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9d15de3da93624597b911098ac15b151147ba4c257e70bfcae8ff609fb75de59"}}, {"rule": 2, "type": "equivalent", "target": "34a3f0ed3ee346eada29462e320dd286", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9d15de3da93624597b911098ac15b151147ba4c257e70bfcae8ff609fb75de59"}}, {"rule": 2, "type": "equivalent", "target": "510de35fcf64345dcecff12334bb64e3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9d15de3da93624597b911098ac15b151147ba4c257e70bfcae8ff609fb75de59"}}, {"rule": 2, "type": "equivalent", "target": "6c36282afead4d03a462ad37adcbf939", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9d15de3da93624597b911098ac15b151147ba4c257e70bfcae8ff609fb75de59"}}], "version": "9.0.23", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "510de35fcf64345dcecff12334bb64e3", "kind": "equivalent", "version": "9.4.5", "label": "9.4.5", "title": "将时区数据文件更新到 tzdata 发行版 2015g，涵盖开曼群岛、斐济、摩尔多瓦、摩洛哥、诺福克岛、朝鲜、土耳其和乌拉圭的夏令时法规变更。为加拿大北部落基山脉新增了时区名 America/Fort_Nelson。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9d15de3da93624597b911098ac15b151147ba4c257e70bfcae8ff609fb75de59"}, "url": "/docs/compare/?release=9.4.5#9.4.5-0c2086ccc354a5b3", "source_url": "/docs/release/9.4.5/#id-1.11.6.26.5"}, {"db_id": "344574c08c0ea148baed85e08eb62e7a", "kind": "equivalent", "version": "9.3.10", "label": "9.3.10", "title": "将时区数据文件更新到tzdata发行版 2015g，以反映开曼群岛、斐济、摩尔多瓦、摩洛哥、诺福克岛、朝鲜、土耳其和乌拉圭的夏令时法规变更。为加拿大北落基山地区新增了时区名America/Fort_Nelson。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9d15de3da93624597b911098ac15b151147ba4c257e70bfcae8ff609fb75de59"}, "url": "/docs/compare/?release=9.3.10#9.3.10-5a7b80cf37914d87", "source_url": "/docs/release/9.3.10/#id-1.11.6.20.5"}, {"db_id": "6c36282afead4d03a462ad37adcbf939", "kind": "equivalent", "version": "9.2.14", "label": "9.2.14", "title": "将时区数据文件更新到tzdata发行版 2015g，以反映开曼群岛、斐济、摩尔多瓦、摩洛哥、诺福克岛、朝鲜、土耳其和乌拉圭的夏令时法规变更。为加拿大北落基山地区新增了时区名America/Fort_Nelson。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9d15de3da93624597b911098ac15b151147ba4c257e70bfcae8ff609fb75de59"}, "url": "/docs/compare/?release=9.2.14#9.2.14-5a7b80cf37914d87", "source_url": "/docs/release/9.2.14/#id-1.11.6.15.5"}, {"db_id": "34a3f0ed3ee346eada29462e320dd286", "kind": "equivalent", "version": "9.1.19", "label": "9.1.19", "title": "将时区数据文件更新到tzdata发行版 2015g，以反映开曼群岛、斐济、摩尔多瓦、摩洛哥、诺福克岛、朝鲜、土耳其和乌拉圭的夏令时法规变更。为加拿大北落基山地区新增了时区名America/Fort_Nelson。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9d15de3da93624597b911098ac15b151147ba4c257e70bfcae8ff609fb75de59"}, "url": "/docs/compare/?release=9.1.19#9.1.19-5a7b80cf37914d87", "source_url": "/docs/release/9.1.19/#id-1.11.6.10.5"}]}]}, {"date": "2015-06-12", "build": "9.0.22", "major": "9.0", "minor": 22, "manual": "9.0", "status": "stable", "doc_git": "", "version": "9.0.22", "eol_date": "2015-10-08", "date_text": "2015-06-12", "supported": false, "manual_url": "/docs/9.0/release-9-0-22.html", "source_url": "/docs/release/9.0.22/", "entry_count": 2, "placeholder": false, "content_hash": "f4ec3c84bb32c561116c58c63f81e5b1fedb092d7e08167dc2d31d03d66e341b", "manual_build": "9.0.23", "source_as_of": "", "changes_count": 2, "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.22", "status_label": "历史版本", "eol": "2015-10-08", "age_days": 4128, "support_days": -4010, "entries": [{"id": "9.0.22-2138cf0f137fffce", "cves": [], "html": "<p>修复罕见的未能使关系缓存 init 文件失效的问题（Tom Lane）</p>\n<p>在并发活动时序恰好不对的情况下，对系统目录执行<code>VACUUM FULL</code>可能无法更新用于避免新会话缓存加载工作的<span>“<span>init 文件</span>”</span>。这将导致后续会话完全无法访问该目录。这是一个非常古老的缺陷，但它极难触发，直到最近才出现可复现的案例。</p>", "text": "修复罕见的未能使关系缓存 init 文件失效的问题（Tom Lane） 在并发活动时序恰好不对的情况下，对系统目录执行VACUUM FULL可能无法更新用于避免新会话缓存加载工作的“init 文件”。这将导致后续会话完全无法访问该目录。这是一个非常古老的缺陷，但它极难触发，直到最近才出现可复现的案例。", "title": "修复罕见的未能使关系缓存 init 文件失效的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.22/#id-1.11.6.6.6", "source_hash": "6bec1b27e4a7c93b00f27640abe8cfeea45f0bff3dcdb265af25580efcb2a989", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix rare failure to invalidate relation cache init file (Tom Lane) With just the wrong timing of concurrent activity, a VACUUM FULL on a system catalog might fail to update the init file that's used to avoid cache-loading work for new sessions. This would result in later sessions being unable to access that catalog at all. This is a very ancient bug, but it's so hard to trigger that no reproducible case had been seen until recently.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.22/changes/001", "db_id": "56559e80e5e318ceb4a1514c01179a96", "patch_ids": [], "statement_hash": "cbd29ab3677162dd8eee0c8fdae7218663c03b789800db751346403cb4a7e91d", "relations": [{"rule": 2, "type": "equivalent", "target": "421f0e5f53c1b534c1a5d7e5c3ddaeb1", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cbd29ab3677162dd8eee0c8fdae7218663c03b789800db751346403cb4a7e91d"}}, {"rule": 2, "type": "equivalent", "target": "62f6eb8f9354ed2084e2a04aba92b9a4", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cbd29ab3677162dd8eee0c8fdae7218663c03b789800db751346403cb4a7e91d"}}, {"rule": 2, "type": "equivalent", "target": "d00ab3b80fd0fe3a84d1b02a94bfcd79", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cbd29ab3677162dd8eee0c8fdae7218663c03b789800db751346403cb4a7e91d"}}, {"rule": 2, "type": "equivalent", "target": "e08881035a5c62a2921de58daddb199c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cbd29ab3677162dd8eee0c8fdae7218663c03b789800db751346403cb4a7e91d"}}], "version": "9.0.22", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "e08881035a5c62a2921de58daddb199c", "kind": "equivalent", "version": "9.4.4", "label": "9.4.4", "title": "修复罕见的未能使关系缓存 init 文件失效的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cbd29ab3677162dd8eee0c8fdae7218663c03b789800db751346403cb4a7e91d"}, "url": "/docs/compare/?release=9.4.4#9.4.4-2138cf0f137fffce", "source_url": "/docs/release/9.4.4/#id-1.11.6.27.5"}, {"db_id": "d00ab3b80fd0fe3a84d1b02a94bfcd79", "kind": "equivalent", "version": "9.3.9", "label": "9.3.9", "title": "修复罕见的未能使关系缓存 init 文件失效的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cbd29ab3677162dd8eee0c8fdae7218663c03b789800db751346403cb4a7e91d"}, "url": "/docs/compare/?release=9.3.9#9.3.9-2138cf0f137fffce", "source_url": "/docs/release/9.3.9/#id-1.11.6.21.5"}, {"db_id": "62f6eb8f9354ed2084e2a04aba92b9a4", "kind": "equivalent", "version": "9.2.13", "label": "9.2.13", "title": "修复罕见的未能使关系缓存 init 文件失效的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cbd29ab3677162dd8eee0c8fdae7218663c03b789800db751346403cb4a7e91d"}, "url": "/docs/compare/?release=9.2.13#9.2.13-2138cf0f137fffce", "source_url": "/docs/release/9.2.13/#id-1.11.6.16.5"}, {"db_id": "421f0e5f53c1b534c1a5d7e5c3ddaeb1", "kind": "equivalent", "version": "9.1.18", "label": "9.1.18", "title": "修复罕见的未能使关系缓存 init 文件失效的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cbd29ab3677162dd8eee0c8fdae7218663c03b789800db751346403cb4a7e91d"}, "url": "/docs/compare/?release=9.1.18#9.1.18-2138cf0f137fffce", "source_url": "/docs/release/9.1.18/#id-1.11.6.11.5"}]}, {"id": "9.0.22-bf7732cf950a1492", "cves": [], "html": "<p>避免传入会话与<code>CREATE/DROP DATABASE</code>之间的死锁（Tom Lane）</p>\n<p>在作为<code>DROP DATABASE</code>命令目标或<code>CREATE DATABASE</code>命令模板的数据库中启动的新会话，可能导致该命令等待五秒后失败，即使新会话本会在此之前退出。</p>", "text": "避免传入会话与CREATE/DROP DATABASE之间的死锁（Tom Lane） 在作为DROP DATABASE命令目标或CREATE DATABASE命令模板的数据库中启动的新会话，可能导致该命令等待五秒后失败，即使新会话本会在此之前退出。", "title": "避免传入会话与CREATE/DROP DATABASE之间的死锁", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.22/#id-1.11.6.6.6", "source_hash": "5955b77e7598b41a798cbf651d54231093f0a28da1857ce4d5be305b763ca703", "section_path": ["变更"], "commit_groups": [], "identity_text": "Avoid deadlock between incoming sessions and CREATE/DROP DATABASE (Tom Lane) A new session starting in a database that is the target of a DROP DATABASE command, or is the template for a CREATE DATABASE command, could cause the command to wait for five seconds and then fail, even if the new session would have exited before that.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.22/changes/002", "db_id": "9bfc180a71dd7d167b27c33f605fed9e", "patch_ids": [], "statement_hash": "9cfac8d41ed5419bd18a7efcbaf8feb78254029ffd3c6f0dd8c9d0f63a21a496", "relations": [{"rule": 2, "type": "equivalent", "target": "29b698d5466f021dc8611d5d25ef7a31", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9cfac8d41ed5419bd18a7efcbaf8feb78254029ffd3c6f0dd8c9d0f63a21a496"}}, {"rule": 2, "type": "equivalent", "target": "324abd755d98fe477c7962eab7502c58", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9cfac8d41ed5419bd18a7efcbaf8feb78254029ffd3c6f0dd8c9d0f63a21a496"}}, {"rule": 2, "type": "equivalent", "target": "7f208fa7a3abd0837b1466c4a8f65e61", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9cfac8d41ed5419bd18a7efcbaf8feb78254029ffd3c6f0dd8c9d0f63a21a496"}}, {"rule": 2, "type": "equivalent", "target": "c17918b133f9aac5297f7d0675245278", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9cfac8d41ed5419bd18a7efcbaf8feb78254029ffd3c6f0dd8c9d0f63a21a496"}}], "version": "9.0.22", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "c17918b133f9aac5297f7d0675245278", "kind": "equivalent", "version": "9.4.4", "label": "9.4.4", "title": "避免传入会话与CREATE/DROP DATABASE之间的死锁", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9cfac8d41ed5419bd18a7efcbaf8feb78254029ffd3c6f0dd8c9d0f63a21a496"}, "url": "/docs/compare/?release=9.4.4#9.4.4-bf7732cf950a1492", "source_url": "/docs/release/9.4.4/#id-1.11.6.27.5"}, {"db_id": "324abd755d98fe477c7962eab7502c58", "kind": "equivalent", "version": "9.3.9", "label": "9.3.9", "title": "避免传入会话与CREATE/DROP DATABASE之间的死锁", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9cfac8d41ed5419bd18a7efcbaf8feb78254029ffd3c6f0dd8c9d0f63a21a496"}, "url": "/docs/compare/?release=9.3.9#9.3.9-bf7732cf950a1492", "source_url": "/docs/release/9.3.9/#id-1.11.6.21.5"}, {"db_id": "29b698d5466f021dc8611d5d25ef7a31", "kind": "equivalent", "version": "9.2.13", "label": "9.2.13", "title": "避免传入会话与CREATE/DROP DATABASE之间的死锁", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9cfac8d41ed5419bd18a7efcbaf8feb78254029ffd3c6f0dd8c9d0f63a21a496"}, "url": "/docs/compare/?release=9.2.13#9.2.13-bf7732cf950a1492", "source_url": "/docs/release/9.2.13/#id-1.11.6.16.5"}, {"db_id": "7f208fa7a3abd0837b1466c4a8f65e61", "kind": "equivalent", "version": "9.1.18", "label": "9.1.18", "title": "避免传入会话与CREATE/DROP DATABASE之间的死锁", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9cfac8d41ed5419bd18a7efcbaf8feb78254029ffd3c6f0dd8c9d0f63a21a496"}, "url": "/docs/compare/?release=9.1.18#9.1.18-bf7732cf950a1492", "source_url": "/docs/release/9.1.18/#id-1.11.6.11.5"}]}]}, {"date": "2015-06-04", "build": "9.0.21", "major": "9.0", "minor": 21, "manual": "9.0", "status": "stable", "doc_git": "", "version": "9.0.21", "eol_date": "2015-10-08", "date_text": "2015-06-04", "supported": false, "manual_url": "/docs/9.0/release-9-0-21.html", "source_url": "/docs/release/9.0.21/", "entry_count": 3, "placeholder": false, "content_hash": "875c2bbeb67d505447223f2dc953d07a0c9ac0aefcb57f9ef6c6dab1496fb474", "manual_build": "9.0.23", "source_as_of": "", "changes_count": 3, "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.21", "status_label": "历史版本", "eol": "2015-10-08", "age_days": 4136, "support_days": -4010, "entries": [{"id": "9.0.21-2f7a640e37ebd9b9", "cves": [], "html": "<p>避免崩溃重启期间对数据目录执行<code>fsync</code>时失败（Abhijit Menon-Sen、Tom Lane）</p>\n<p>在前几个小版本中，我们加入了一个补丁，在崩溃后对数据目录中的所有内容执行<code>fsync</code>。遗憾的是，它对任何错误情况的响应都是失败，从而阻止服务器启动，即使问题相当无害。例如，数据目录中一个不可写的文件在某些平台上会阻止重启；但把 SSL 证书文件设为服务器不可写是很常见的做法。我们修改了这一行为：权限失败被完全忽略，其他类型的失败会被记录但不会阻止继续。</p>", "text": "避免崩溃重启期间对数据目录执行fsync时失败（Abhijit Menon-Sen、Tom Lane） 在前几个小版本中，我们加入了一个补丁，在崩溃后对数据目录中的所有内容执行fsync。遗憾的是，它对任何错误情况的响应都是失败，从而阻止服务器启动，即使问题相当无害。例如，数据目录中一个不可写的文件在某些平台上会阻止重启；但把 SSL 证书文件设为服务器不可写是很常见的做法。我们修改了这一行为：权限失败被完全忽略，其他类型的失败会被记录但不会阻止继续。", "title": "避免崩溃重启期间对数据目录执行fsync时失败", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.21/#id-1.11.6.7.6", "source_hash": "f716d74e3c86522bd13a5cb767cb1a886e58d0ae617f67a8f958d93f076e98e0", "section_path": ["变更"], "commit_groups": [], "identity_text": "Avoid failures while fsync'ing data directory during crash restart (Abhijit Menon-Sen, Tom Lane) In the previous minor releases we added a patch to fsync everything in the data directory after a crash. Unfortunately its response to any error condition was to fail, thereby preventing the server from starting up, even when the problem was quite harmless. An example is that an unwritable file in the data directory would prevent restart on some platforms; but it is common to make SSL certificate files unwritable by the server. Revise this behavior so that permissions failures are ignored altogether, and other types of failures are logged but do not prevent continuing.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.21/changes/001", "db_id": "a25fd9b5724fca63d6c7e754c69ab811", "patch_ids": [], "statement_hash": "ae1e52f696c1fa1c4ac7802c8929b70f47d0aecd4f628003a4fffa24ca71f4f6", "relations": [{"rule": 2, "type": "equivalent", "target": "81d46769ec325a47a7ac7f19fb657a38", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ae1e52f696c1fa1c4ac7802c8929b70f47d0aecd4f628003a4fffa24ca71f4f6"}}, {"rule": 2, "type": "equivalent", "target": "bdb384a794e9c1aecc429fe351f6cc54", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ae1e52f696c1fa1c4ac7802c8929b70f47d0aecd4f628003a4fffa24ca71f4f6"}}], "version": "9.0.21", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "81d46769ec325a47a7ac7f19fb657a38", "kind": "equivalent", "version": "9.2.12", "label": "9.2.12", "title": "避免崩溃重启期间对数据目录执行fsync时失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ae1e52f696c1fa1c4ac7802c8929b70f47d0aecd4f628003a4fffa24ca71f4f6"}, "url": "/docs/compare/?release=9.2.12#9.2.12-2f7a640e37ebd9b9", "source_url": "/docs/release/9.2.12/#id-1.11.6.17.5"}, {"db_id": "bdb384a794e9c1aecc429fe351f6cc54", "kind": "equivalent", "version": "9.1.17", "label": "9.1.17", "title": "避免崩溃重启期间对数据目录执行fsync时失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ae1e52f696c1fa1c4ac7802c8929b70f47d0aecd4f628003a4fffa24ca71f4f6"}, "url": "/docs/compare/?release=9.1.17#9.1.17-2f7a640e37ebd9b9", "source_url": "/docs/release/9.1.17/#id-1.11.6.12.5"}]}, {"id": "9.0.21-84bd20edf1411571", "cves": [], "html": "<p>移除<span>configure</span>中对在<span>OpenBSD</span>上链接线程版<span>libpython</span>的禁止性检查（Tom Lane）</p>\n<p>这一限制原本要防止的失败在当前的<span>OpenBSD</span>版本上似乎已不再是问题。</p>", "text": "移除configure中对在OpenBSD上链接线程版libpython的禁止性检查（Tom Lane） 这一限制原本要防止的失败在当前的OpenBSD版本上似乎已不再是问题。", "title": "移除configure中对在OpenBSD上链接线程版libpython的禁止性检查", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.21/#id-1.11.6.7.6", "source_hash": "4829477f3642c35fd183079bd3b0d9180b6b0d01ef3c6c7bda9fdd1569d09d84", "section_path": ["变更"], "commit_groups": [], "identity_text": "Remove configure's check prohibiting linking to a threaded libpython on OpenBSD (Tom Lane) The failure this restriction was meant to prevent seems to not be a problem anymore on current OpenBSD versions.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.21/changes/002", "db_id": "90ce555f635b5854723e082d7618f9e5", "patch_ids": [], "statement_hash": "68071bf088d7e12cc2dce093a3d98233044c107e8eeccf6ca8c3386b62eed42f", "relations": [{"rule": 2, "type": "equivalent", "target": "10f39cf4b186eb685734a9facee64db2", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "68071bf088d7e12cc2dce093a3d98233044c107e8eeccf6ca8c3386b62eed42f"}}, {"rule": 2, "type": "equivalent", "target": "1e93d1263f6654a9f810f95db30e9629", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "68071bf088d7e12cc2dce093a3d98233044c107e8eeccf6ca8c3386b62eed42f"}}, {"rule": 2, "type": "equivalent", "target": "8ce60f049896e6069362812ad897b3f3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "68071bf088d7e12cc2dce093a3d98233044c107e8eeccf6ca8c3386b62eed42f"}}, {"rule": 2, "type": "equivalent", "target": "eccce48eb13e0f65df91e2c5e930e4a7", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "68071bf088d7e12cc2dce093a3d98233044c107e8eeccf6ca8c3386b62eed42f"}}], "version": "9.0.21", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "1e93d1263f6654a9f810f95db30e9629", "kind": "equivalent", "version": "9.4.3", "label": "9.4.3", "title": "移除configure中对在OpenBSD上链接线程版libpython的禁止性检查", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "68071bf088d7e12cc2dce093a3d98233044c107e8eeccf6ca8c3386b62eed42f"}, "url": "/docs/compare/?release=9.4.3#9.4.3-84bd20edf1411571", "source_url": "/docs/release/9.4.3/#id-1.11.6.28.5"}, {"db_id": "10f39cf4b186eb685734a9facee64db2", "kind": "equivalent", "version": "9.3.8", "label": "9.3.8", "title": "移除configure中对在OpenBSD上链接线程版libpython的禁止性检查", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "68071bf088d7e12cc2dce093a3d98233044c107e8eeccf6ca8c3386b62eed42f"}, "url": "/docs/compare/?release=9.3.8#9.3.8-84bd20edf1411571", "source_url": "/docs/release/9.3.8/#id-1.11.6.22.5"}, {"db_id": "eccce48eb13e0f65df91e2c5e930e4a7", "kind": "equivalent", "version": "9.2.12", "label": "9.2.12", "title": "移除configure中对在OpenBSD上链接线程版libpython的禁止性检查", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "68071bf088d7e12cc2dce093a3d98233044c107e8eeccf6ca8c3386b62eed42f"}, "url": "/docs/compare/?release=9.2.12#9.2.12-84bd20edf1411571", "source_url": "/docs/release/9.2.12/#id-1.11.6.17.5"}, {"db_id": "8ce60f049896e6069362812ad897b3f3", "kind": "equivalent", "version": "9.1.17", "label": "9.1.17", "title": "移除configure中对在OpenBSD上链接线程版libpython的禁止性检查", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "68071bf088d7e12cc2dce093a3d98233044c107e8eeccf6ca8c3386b62eed42f"}, "url": "/docs/compare/?release=9.1.17#9.1.17-84bd20edf1411571", "source_url": "/docs/release/9.1.17/#id-1.11.6.12.5"}]}, {"id": "9.0.21-255c84fcb54cc418", "cves": [], "html": "<p>允许 <span>libpq</span> 使用高于 v1 的 TLS 协议版本（Noah Misch）</p>\n<p>长期以来，<span>libpq</span> 的代码只允许使用 TLS v1 这一种 SSL 协议。随着较新的 TLS 版本日益普及，现在允许它与服务器协商双方共同支持的最高 TLS 版本。（<span>PostgreSQL</span> 服务器早已支持这种协商，因此服务器端无需更改。）这是对 9.4.0 中已发布变更的回移植。</p>", "text": "允许 libpq 使用高于 v1 的 TLS 协议版本（Noah Misch） 长期以来，libpq 的代码只允许使用 TLS v1 这一种 SSL 协议。随着较新的 TLS 版本日益普及，现在允许它与服务器协商双方共同支持的最高 TLS 版本。（PostgreSQL 服务器早已支持这种协商，因此服务器端无需更改。）这是对 9.4.0 中已发布变更的回移植。", "title": "允许 libpq 使用高于 v1 的 TLS 协议版本", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.21/#id-1.11.6.7.6", "source_hash": "6f7cca693ca86c2fb1dcc179656b0a1b75ef5a77bef86cb24a0afff1a9825270", "section_path": ["变更"], "commit_groups": [], "identity_text": "Allow libpq to use TLS protocol versions beyond v1 (Noah Misch) For a long time, libpq was coded so that the only SSL protocol it would allow was TLS v1. Now that newer TLS versions are becoming popular, allow it to negotiate the highest commonly-supported TLS version with the server. (PostgreSQL servers were already capable of such negotiation, so no change is needed on the server side.) This is a back-patch of a change already released in 9.4.0.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.21/changes/003", "db_id": "28741ee10e8b433a8aeb115ce6d15396", "patch_ids": [], "statement_hash": "5166e3ffeedb78ec7475a28d0c97a87af4f3fd59758bcc4f8a9925eded75358d", "relations": [{"rule": 2, "type": "equivalent", "target": "1daf8e2295ac336ff6c33b27c7a9be9f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5166e3ffeedb78ec7475a28d0c97a87af4f3fd59758bcc4f8a9925eded75358d"}}, {"rule": 2, "type": "equivalent", "target": "9c6e7ee4cfa8d800c33954d1209311e4", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5166e3ffeedb78ec7475a28d0c97a87af4f3fd59758bcc4f8a9925eded75358d"}}, {"rule": 2, "type": "equivalent", "target": "b06ddb7790a178ed05796c42bfebc6de", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5166e3ffeedb78ec7475a28d0c97a87af4f3fd59758bcc4f8a9925eded75358d"}}], "version": "9.0.21", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "1daf8e2295ac336ff6c33b27c7a9be9f", "kind": "equivalent", "version": "9.3.8", "label": "9.3.8", "title": "允许 libpq 使用高于 v1 的 TLS 协议版本", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5166e3ffeedb78ec7475a28d0c97a87af4f3fd59758bcc4f8a9925eded75358d"}, "url": "/docs/compare/?release=9.3.8#9.3.8-255c84fcb54cc418", "source_url": "/docs/release/9.3.8/#id-1.11.6.22.5"}, {"db_id": "9c6e7ee4cfa8d800c33954d1209311e4", "kind": "equivalent", "version": "9.2.12", "label": "9.2.12", "title": "允许 libpq 使用高于 v1 的 TLS 协议版本", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5166e3ffeedb78ec7475a28d0c97a87af4f3fd59758bcc4f8a9925eded75358d"}, "url": "/docs/compare/?release=9.2.12#9.2.12-255c84fcb54cc418", "source_url": "/docs/release/9.2.12/#id-1.11.6.17.5"}, {"db_id": "b06ddb7790a178ed05796c42bfebc6de", "kind": "equivalent", "version": "9.1.17", "label": "9.1.17", "title": "允许 libpq 使用高于 v1 的 TLS 协议版本", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5166e3ffeedb78ec7475a28d0c97a87af4f3fd59758bcc4f8a9925eded75358d"}, "url": "/docs/compare/?release=9.1.17#9.1.17-255c84fcb54cc418", "source_url": "/docs/release/9.1.17/#id-1.11.6.12.5"}]}]}, {"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"}]}]}, {"date": "2015-02-05", "build": "9.0.19", "major": "9.0", "minor": 19, "manual": "9.0", "status": "stable", "doc_git": "", "version": "9.0.19", "eol_date": "2015-10-08", "date_text": "2015-02-05", "supported": false, "manual_url": "/docs/9.0/release-9-0-19.html", "source_url": "/docs/release/9.0.19/", "entry_count": 52, "placeholder": false, "content_hash": "056c9f9f8918839e1b930b82ec4e2c1668c48d12bbca867fe3c861b01f44e007", "manual_build": "9.0.23", "source_as_of": "", "changes_count": 52, "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.19", "status_label": "历史版本", "eol": "2015-10-08", "age_days": 4255, "support_days": -4010, "entries": [{"id": "9.0.19-5abdf545382b956d", "cves": ["CVE-2015-0241"], "html": "<p>修复<code>to_char()</code>中的缓冲区越界（Bruce Momjian）</p>\n<p>当<code>to_char()</code>处理要求数字位数很多的数字格式模板时，<span>PostgreSQL</span>会读取越过缓冲区末尾。当处理恶意构造的时间戳格式模板时，<span>PostgreSQL</span>会写入越过缓冲区末尾。两种情况都可能导致服务器崩溃。我们尚未排除导致权限提升攻击的可能性，尽管这种攻击似乎不太可能。（CVE-2015-0241）</p>", "text": "修复to_char()中的缓冲区越界（Bruce Momjian） 当to_char()处理要求数字位数很多的数字格式模板时，PostgreSQL会读取越过缓冲区末尾。当处理恶意构造的时间戳格式模板时，PostgreSQL会写入越过缓冲区末尾。两种情况都可能导致服务器崩溃。我们尚未排除导致权限提升攻击的可能性，尽管这种攻击似乎不太可能。（CVE-2015-0241）", "title": "修复to_char()中的缓冲区越界", "commits": [], "section": "变更", "category": "security", "source_url": "/docs/release/9.0.19/#id-1.11.6.9.5", "source_hash": "a157f7c661ad1795b8f502da571420c55546c4ef56ac40f33766f0c94b1ec064", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix buffer overruns in to_char() (Bruce Momjian) When to_char() processes a numeric formatting template calling for a large number of digits, PostgreSQL would read past the end of a buffer. When processing a crafted timestamp formatting template, PostgreSQL would write past the end of a buffer. Either case could crash the server. We have not ruled out the possibility of attacks that lead to privilege escalation, though they seem unlikely. (CVE-2015-0241)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.19/changes/001", "db_id": "00433c31ad068919dad0d185b0e0830b", "patch_ids": [], "statement_hash": "0b49ca898c6d415c3166eb73b67fa5eaf5f0fe783bf9f1382d2b0d585d9412bc", "relations": [{"rule": 2, "type": "equivalent", "target": "7fbcc218f6fcc168e6abdb0c1a7eada0", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0b49ca898c6d415c3166eb73b67fa5eaf5f0fe783bf9f1382d2b0d585d9412bc"}}, {"rule": 2, "type": "equivalent", "target": "990e692bca9e900ed4c908bc797fc663", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0b49ca898c6d415c3166eb73b67fa5eaf5f0fe783bf9f1382d2b0d585d9412bc"}}, {"rule": 2, "type": "equivalent", "target": "b9ffdfeacae629cd4f9feb83065e7139", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0b49ca898c6d415c3166eb73b67fa5eaf5f0fe783bf9f1382d2b0d585d9412bc"}}, {"rule": 2, "type": "equivalent", "target": "c631a08d16c113f5569d11ae86171cd7", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0b49ca898c6d415c3166eb73b67fa5eaf5f0fe783bf9f1382d2b0d585d9412bc"}}], "version": "9.0.19", "category_label": "安全相关", "also_in": [], "variants": [], "related_changes": [{"db_id": "990e692bca9e900ed4c908bc797fc663", "kind": "equivalent", "version": "9.4.1", "label": "9.4.1", "title": "修复to_char()中的缓冲区越界", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0b49ca898c6d415c3166eb73b67fa5eaf5f0fe783bf9f1382d2b0d585d9412bc"}, "url": "/docs/compare/?release=9.4.1#9.4.1-5abdf545382b956d", "source_url": "/docs/release/9.4.1/#id-1.11.6.30.5"}, {"db_id": "c631a08d16c113f5569d11ae86171cd7", "kind": "equivalent", "version": "9.3.6", "label": "9.3.6", "title": "修复to_char()中的缓冲区越界", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0b49ca898c6d415c3166eb73b67fa5eaf5f0fe783bf9f1382d2b0d585d9412bc"}, "url": "/docs/compare/?release=9.3.6#9.3.6-5abdf545382b956d", "source_url": "/docs/release/9.3.6/#id-1.11.6.24.5"}, {"db_id": "b9ffdfeacae629cd4f9feb83065e7139", "kind": "equivalent", "version": "9.2.10", "label": "9.2.10", "title": "修复to_char()中的缓冲区越界", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0b49ca898c6d415c3166eb73b67fa5eaf5f0fe783bf9f1382d2b0d585d9412bc"}, "url": "/docs/compare/?release=9.2.10#9.2.10-5abdf545382b956d", "source_url": "/docs/release/9.2.10/#id-1.11.6.19.5"}, {"db_id": "7fbcc218f6fcc168e6abdb0c1a7eada0", "kind": "equivalent", "version": "9.1.15", "label": "9.1.15", "title": "修复to_char()中的缓冲区越界", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0b49ca898c6d415c3166eb73b67fa5eaf5f0fe783bf9f1382d2b0d585d9412bc"}, "url": "/docs/compare/?release=9.1.15#9.1.15-5abdf545382b956d", "source_url": "/docs/release/9.1.15/#id-1.11.6.14.5"}]}, {"id": "9.0.19-5682fb8f3ee1ede9", "cves": ["CVE-2015-0242"], "html": "<p>修复替换实现的<code>*printf()</code>函数中的缓冲区越界（Tom Lane）</p>\n<p><span>PostgreSQL</span>包含<code>printf</code>及相关函数的替换实现。当代码格式化浮点数（转换说明符<code>e</code>、<code>E</code>、<code>f</code>、<code>F</code>、<code>g</code>或<code>G</code>）且请求的精度超过约 500 时，会发生栈缓冲区越界。这会导致服务器崩溃，我们尚未排除导致权限提升攻击的可能性。数据库用户可以通过<code>to_char()</code>SQL 函数触发这种缓冲区越界。虽然这是唯一受影响的核心<span>PostgreSQL</span>功能，但使用 printf 族函数的扩展模块也可能存在风险。</p>\n<p>此问题主要影响 Windows 上的<span>PostgreSQL</span>。<span>PostgreSQL</span>在系统实现足够完善时会使用系统实现，而其他现代平台上正是如此。（CVE-2015-0242）</p>", "text": "修复替换实现的*printf()函数中的缓冲区越界（Tom Lane） PostgreSQL包含printf及相关函数的替换实现。当代码格式化浮点数（转换说明符e、E、f、F、g或G）且请求的精度超过约 500 时，会发生栈缓冲区越界。这会导致服务器崩溃，我们尚未排除导致权限提升攻击的可能性。数据库用户可以通过to_char()SQL 函数触发这种缓冲区越界。虽然这是唯一受影响的核心PostgreSQL功能，但使用 printf 族函数的扩展模块也可能存在风险。 此问题主要影响 Windows 上的PostgreSQL。PostgreSQL在系统实现足够完善时会使用系统实现，而其他现代平台上正是如此。（CVE-2015-0242）", "title": "修复替换实现的*printf()函数中的缓冲区越界", "commits": [], "section": "变更", "category": "security", "source_url": "/docs/release/9.0.19/#id-1.11.6.9.5", "source_hash": "5f47e489d7749693fe5aa1a29c694d7974a60dd1287f042f49b84c30616a8a3e", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix buffer overrun in replacement *printf() functions (Tom Lane) PostgreSQL includes a replacement implementation of printf and related functions. This code will overrun a stack buffer when formatting a floating point number (conversion specifiers e, E, f, F, g or G) with requested precision greater than about 500. This will crash the server, and we have not ruled out the possibility of attacks that lead to privilege escalation. A database user can trigger such a buffer overrun through the to_char() SQL function. While that is the only affected core PostgreSQL functionality, extension modules that use printf-family functions may be at risk as well. This issue primarily affects PostgreSQL on Windows. PostgreSQL uses the system implementation of these functions where adequate, which it is on other modern platforms. (CVE-2015-0242)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.19/changes/002", "db_id": "b0c008a254ec058d02a2618bd567cf4c", "patch_ids": [], "statement_hash": "6facd7936457ceefa6a83c5c66eca1a3f1ad14d6f02936eb2b530f3aa0f72fdd", "relations": [{"rule": 2, "type": "equivalent", "target": "20377b1aff86d05b63b56759b510d2ee", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6facd7936457ceefa6a83c5c66eca1a3f1ad14d6f02936eb2b530f3aa0f72fdd"}}, {"rule": 2, "type": "equivalent", "target": "258b89db478fc51a49887ec39072dadd", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6facd7936457ceefa6a83c5c66eca1a3f1ad14d6f02936eb2b530f3aa0f72fdd"}}, {"rule": 2, "type": "equivalent", "target": "d75d745b8f5d780f4c0162a00c5eaabd", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6facd7936457ceefa6a83c5c66eca1a3f1ad14d6f02936eb2b530f3aa0f72fdd"}}, {"rule": 2, "type": "equivalent", "target": "e8f6fe7647398f6730a6866289021746", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6facd7936457ceefa6a83c5c66eca1a3f1ad14d6f02936eb2b530f3aa0f72fdd"}}], "version": "9.0.19", "category_label": "安全相关", "also_in": [], "variants": [], "related_changes": [{"db_id": "20377b1aff86d05b63b56759b510d2ee", "kind": "equivalent", "version": "9.4.1", "label": "9.4.1", "title": "修复替换实现的*printf()函数中的缓冲区越界", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6facd7936457ceefa6a83c5c66eca1a3f1ad14d6f02936eb2b530f3aa0f72fdd"}, "url": "/docs/compare/?release=9.4.1#9.4.1-5682fb8f3ee1ede9", "source_url": "/docs/release/9.4.1/#id-1.11.6.30.5"}, {"db_id": "d75d745b8f5d780f4c0162a00c5eaabd", "kind": "equivalent", "version": "9.3.6", "label": "9.3.6", "title": "修复替换实现的*printf()函数中的缓冲区越界", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6facd7936457ceefa6a83c5c66eca1a3f1ad14d6f02936eb2b530f3aa0f72fdd"}, "url": "/docs/compare/?release=9.3.6#9.3.6-5682fb8f3ee1ede9", "source_url": "/docs/release/9.3.6/#id-1.11.6.24.5"}, {"db_id": "258b89db478fc51a49887ec39072dadd", "kind": "equivalent", "version": "9.2.10", "label": "9.2.10", "title": "修复替换实现的*printf()函数中的缓冲区越界", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6facd7936457ceefa6a83c5c66eca1a3f1ad14d6f02936eb2b530f3aa0f72fdd"}, "url": "/docs/compare/?release=9.2.10#9.2.10-5682fb8f3ee1ede9", "source_url": "/docs/release/9.2.10/#id-1.11.6.19.5"}, {"db_id": "e8f6fe7647398f6730a6866289021746", "kind": "equivalent", "version": "9.1.15", "label": "9.1.15", "title": "修复替换实现的*printf()函数中的缓冲区越界", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6facd7936457ceefa6a83c5c66eca1a3f1ad14d6f02936eb2b530f3aa0f72fdd"}, "url": "/docs/compare/?release=9.1.15#9.1.15-5682fb8f3ee1ede9", "source_url": "/docs/release/9.1.15/#id-1.11.6.14.5"}]}, {"id": "9.0.19-ba8a921637c059ee", "cves": ["CVE-2015-0243"], "html": "<p>修复<code>contrib/pgcrypto</code>中的缓冲区越界（Marko Tiikkaja、Noah Misch）</p>\n<p><code>pgcrypto</code>模块中内存大小跟踪的错误导致了栈缓冲区越界和对未初始化内存内容的不当依赖。缓冲区越界情况可能导致服务器崩溃，我们尚未排除导致权限提升攻击的可能性。（CVE-2015-0243）</p>", "text": "修复contrib/pgcrypto中的缓冲区越界（Marko Tiikkaja、Noah Misch） pgcrypto模块中内存大小跟踪的错误导致了栈缓冲区越界和对未初始化内存内容的不当依赖。缓冲区越界情况可能导致服务器崩溃，我们尚未排除导致权限提升攻击的可能性。（CVE-2015-0243）", "title": "修复contrib/pgcrypto中的缓冲区越界", "commits": [], "section": "变更", "category": "security", "source_url": "/docs/release/9.0.19/#id-1.11.6.9.5", "source_hash": "86edd1b7baf7d6ad7e9d4a8aa8a78d09fa3b30d46d8468ac4d8ba0e4557aac63", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix buffer overruns in contrib/pgcrypto (Marko Tiikkaja, Noah Misch) Errors in memory size tracking within the pgcrypto module permitted stack buffer overruns and improper dependence on the contents of uninitialized memory. The buffer overrun cases can crash the server, and we have not ruled out the possibility of attacks that lead to privilege escalation. (CVE-2015-0243)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.19/changes/003", "db_id": "3ed48b6f2719f35041f836ac6e215fb0", "patch_ids": [], "statement_hash": "bd8a10aa11b9ca6eafb69e0e4b9559deb38d5d2794efb5dedec97ae522d4da7a", "relations": [{"rule": 2, "type": "equivalent", "target": "33a5647981837b909c2bb075f8f38a0b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bd8a10aa11b9ca6eafb69e0e4b9559deb38d5d2794efb5dedec97ae522d4da7a"}}, {"rule": 2, "type": "equivalent", "target": "6a3ee8f85359a8b979be3eb7a4ca87d6", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bd8a10aa11b9ca6eafb69e0e4b9559deb38d5d2794efb5dedec97ae522d4da7a"}}, {"rule": 2, "type": "equivalent", "target": "b63889e55d5fcf7ed29673a3f75e4ffb", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bd8a10aa11b9ca6eafb69e0e4b9559deb38d5d2794efb5dedec97ae522d4da7a"}}, {"rule": 2, "type": "equivalent", "target": "f5f49269e786e76501353fb6c32e22bb", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bd8a10aa11b9ca6eafb69e0e4b9559deb38d5d2794efb5dedec97ae522d4da7a"}}], "version": "9.0.19", "category_label": "安全相关", "also_in": [], "variants": [], "related_changes": [{"db_id": "f5f49269e786e76501353fb6c32e22bb", "kind": "equivalent", "version": "9.4.1", "label": "9.4.1", "title": "修复contrib/pgcrypto中的缓冲区越界", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bd8a10aa11b9ca6eafb69e0e4b9559deb38d5d2794efb5dedec97ae522d4da7a"}, "url": "/docs/compare/?release=9.4.1#9.4.1-ba8a921637c059ee", "source_url": "/docs/release/9.4.1/#id-1.11.6.30.5"}, {"db_id": "6a3ee8f85359a8b979be3eb7a4ca87d6", "kind": "equivalent", "version": "9.3.6", "label": "9.3.6", "title": "修复contrib/pgcrypto中的缓冲区越界", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bd8a10aa11b9ca6eafb69e0e4b9559deb38d5d2794efb5dedec97ae522d4da7a"}, "url": "/docs/compare/?release=9.3.6#9.3.6-ba8a921637c059ee", "source_url": "/docs/release/9.3.6/#id-1.11.6.24.5"}, {"db_id": "33a5647981837b909c2bb075f8f38a0b", "kind": "equivalent", "version": "9.2.10", "label": "9.2.10", "title": "修复contrib/pgcrypto中的缓冲区越界", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bd8a10aa11b9ca6eafb69e0e4b9559deb38d5d2794efb5dedec97ae522d4da7a"}, "url": "/docs/compare/?release=9.2.10#9.2.10-ba8a921637c059ee", "source_url": "/docs/release/9.2.10/#id-1.11.6.19.5"}, {"db_id": "b63889e55d5fcf7ed29673a3f75e4ffb", "kind": "equivalent", "version": "9.1.15", "label": "9.1.15", "title": "修复contrib/pgcrypto中的缓冲区越界", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bd8a10aa11b9ca6eafb69e0e4b9559deb38d5d2794efb5dedec97ae522d4da7a"}, "url": "/docs/compare/?release=9.1.15#9.1.15-ba8a921637c059ee", "source_url": "/docs/release/9.1.15/#id-1.11.6.14.5"}]}, {"id": "9.0.19-5c8ec36fd01bef35", "cves": ["CVE-2015-0244"], "html": "<p>修复出错后前端/后端协议可能失去同步的问题（Heikki Linnakangas）</p>\n<p>如果服务器在从客户端读取协议消息中途发生任何错误，它可能失去同步，错误地把消息数据的一部分解释为新的协议消息。能够在命令参数中提交恶意构造二进制数据的攻击者可能借此注入自己的 SQL 命令。语句超时和查询取消是触发此场景最可能的错误来源。尤其容易受影响的是既使用超时又将任意用户构造数据作为二进制查询参数提交的应用程序。禁用语句超时会降低但不能消除被利用的风险。感谢 Emil Lenngren 报告此问题。（CVE-2015-0244）</p>", "text": "修复出错后前端/后端协议可能失去同步的问题（Heikki Linnakangas） 如果服务器在从客户端读取协议消息中途发生任何错误，它可能失去同步，错误地把消息数据的一部分解释为新的协议消息。能够在命令参数中提交恶意构造二进制数据的攻击者可能借此注入自己的 SQL 命令。语句超时和查询取消是触发此场景最可能的错误来源。尤其容易受影响的是既使用超时又将任意用户构造数据作为二进制查询参数提交的应用程序。禁用语句超时会降低但不能消除被利用的风险。感谢 Emil Lenngren 报告此问题。（CVE-2015-0244）", "title": "修复出错后前端/后端协议可能失去同步的问题", "commits": [], "section": "变更", "category": "security", "source_url": "/docs/release/9.0.19/#id-1.11.6.9.5", "source_hash": "b6ba8159ac979144f6bc22585121f572db487e2f39a79a3d7069c31aaf961002", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix possible loss of frontend/backend protocol synchronization after an error (Heikki Linnakangas) If any error occurred while the server was in the middle of reading a protocol message from the client, it could lose synchronization and incorrectly try to interpret part of the message's data as a new protocol message. An attacker able to submit crafted binary data within a command parameter might succeed in injecting his own SQL commands this way. Statement timeout and query cancellation are the most likely sources of errors triggering this scenario. Particularly vulnerable are applications that use a timeout and also submit arbitrary user-crafted data as binary query parameters. Disabling statement timeout will reduce, but not eliminate, the risk of exploit. Our thanks to Emil Lenngren for reporting this issue. (CVE-2015-0244)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.19/changes/004", "db_id": "1c2e17a917530e1056e37a0fd57770c8", "patch_ids": [], "statement_hash": "48ad257f35f4224a927c2505d1745f6abd99f358e996b644e00ab7263992a1c0", "relations": [{"rule": 2, "type": "equivalent", "target": "52fd0db7fb421f3b0015c80774055b74", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "48ad257f35f4224a927c2505d1745f6abd99f358e996b644e00ab7263992a1c0"}}, {"rule": 2, "type": "equivalent", "target": "58ef80e95adca1b234c4943ae030d777", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "48ad257f35f4224a927c2505d1745f6abd99f358e996b644e00ab7263992a1c0"}}, {"rule": 2, "type": "equivalent", "target": "c30f7e4786dc10d32b60a9b2623b0f1b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "48ad257f35f4224a927c2505d1745f6abd99f358e996b644e00ab7263992a1c0"}}, {"rule": 2, "type": "equivalent", "target": "f341e3494142a5b46900f555e822f4b3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "48ad257f35f4224a927c2505d1745f6abd99f358e996b644e00ab7263992a1c0"}}], "version": "9.0.19", "category_label": "安全相关", "also_in": [], "variants": [], "related_changes": [{"db_id": "c30f7e4786dc10d32b60a9b2623b0f1b", "kind": "equivalent", "version": "9.4.1", "label": "9.4.1", "title": "修复出错后前端/后端协议可能失去同步的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "48ad257f35f4224a927c2505d1745f6abd99f358e996b644e00ab7263992a1c0"}, "url": "/docs/compare/?release=9.4.1#9.4.1-5c8ec36fd01bef35", "source_url": "/docs/release/9.4.1/#id-1.11.6.30.5"}, {"db_id": "f341e3494142a5b46900f555e822f4b3", "kind": "equivalent", "version": "9.3.6", "label": "9.3.6", "title": "修复出错后前端/后端协议可能失去同步的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "48ad257f35f4224a927c2505d1745f6abd99f358e996b644e00ab7263992a1c0"}, "url": "/docs/compare/?release=9.3.6#9.3.6-5c8ec36fd01bef35", "source_url": "/docs/release/9.3.6/#id-1.11.6.24.5"}, {"db_id": "52fd0db7fb421f3b0015c80774055b74", "kind": "equivalent", "version": "9.2.10", "label": "9.2.10", "title": "修复出错后前端/后端协议可能失去同步的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "48ad257f35f4224a927c2505d1745f6abd99f358e996b644e00ab7263992a1c0"}, "url": "/docs/compare/?release=9.2.10#9.2.10-5c8ec36fd01bef35", "source_url": "/docs/release/9.2.10/#id-1.11.6.19.5"}, {"db_id": "58ef80e95adca1b234c4943ae030d777", "kind": "equivalent", "version": "9.1.15", "label": "9.1.15", "title": "修复出错后前端/后端协议可能失去同步的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "48ad257f35f4224a927c2505d1745f6abd99f358e996b644e00ab7263992a1c0"}, "url": "/docs/compare/?release=9.1.15#9.1.15-5c8ec36fd01bef35", "source_url": "/docs/release/9.1.15/#id-1.11.6.14.5"}]}, {"id": "9.0.19-d6dd48b9aef647b0", "cves": ["CVE-2014-8161"], "html": "<p>修复通过约束违反错误消息的信息泄露（Stephen Frost）</p>\n<p>某些服务器错误消息会显示违反约束（如唯一约束）的列的值。如果用户对该表的所有列没有<code>SELECT</code>权限，这可能意味着暴露用户不应看到的值。我们调整了代码，使值仅在来自 SQL 命令本身或用户可以查询到时才显示。（CVE-2014-8161）</p>", "text": "修复通过约束违反错误消息的信息泄露（Stephen Frost） 某些服务器错误消息会显示违反约束（如唯一约束）的列的值。如果用户对该表的所有列没有SELECT权限，这可能意味着暴露用户不应看到的值。我们调整了代码，使值仅在来自 SQL 命令本身或用户可以查询到时才显示。（CVE-2014-8161）", "title": "修复通过约束违反错误消息的信息泄露", "commits": [], "section": "变更", "category": "security", "source_url": "/docs/release/9.0.19/#id-1.11.6.9.5", "source_hash": "32f79c1afb24b91afe4cb279d629760313d220027dfc3787501c33dd579b449e", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix information leak via constraint-violation error messages (Stephen Frost) Some server error messages show the values of columns that violate a constraint, such as a unique constraint. If the user does not have SELECT privilege on all columns of the table, this could mean exposing values that the user should not be able to see. Adjust the code so that values are displayed only when they came from the SQL command or could be selected by the user. (CVE-2014-8161)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.19/changes/005", "db_id": "2ba0e0820371c50e724133f60a0846df", "patch_ids": [], "statement_hash": "dd2b73b11818dd3a1fff35706b46ac7cadcadcaa414dd330a192424304534f7c", "relations": [{"rule": 2, "type": "equivalent", "target": "258c224c072d8571536846c0f589715b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dd2b73b11818dd3a1fff35706b46ac7cadcadcaa414dd330a192424304534f7c"}}, {"rule": 2, "type": "equivalent", "target": "707992cea29a842212624b2871eda46f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dd2b73b11818dd3a1fff35706b46ac7cadcadcaa414dd330a192424304534f7c"}}, {"rule": 2, "type": "equivalent", "target": "b5b170039eff8c708d777a87cc56f4ee", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dd2b73b11818dd3a1fff35706b46ac7cadcadcaa414dd330a192424304534f7c"}}, {"rule": 2, "type": "equivalent", "target": "cb23b2e67a0393165767d5061c7ff291", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dd2b73b11818dd3a1fff35706b46ac7cadcadcaa414dd330a192424304534f7c"}}], "version": "9.0.19", "category_label": "安全相关", "also_in": [], "variants": [], "related_changes": [{"db_id": "258c224c072d8571536846c0f589715b", "kind": "equivalent", "version": "9.4.1", "label": "9.4.1", "title": "修复通过约束违反错误消息的信息泄露", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dd2b73b11818dd3a1fff35706b46ac7cadcadcaa414dd330a192424304534f7c"}, "url": "/docs/compare/?release=9.4.1#9.4.1-d6dd48b9aef647b0", "source_url": "/docs/release/9.4.1/#id-1.11.6.30.5"}, {"db_id": "707992cea29a842212624b2871eda46f", "kind": "equivalent", "version": "9.3.6", "label": "9.3.6", "title": "修复通过约束违反错误消息的信息泄露", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dd2b73b11818dd3a1fff35706b46ac7cadcadcaa414dd330a192424304534f7c"}, "url": "/docs/compare/?release=9.3.6#9.3.6-d6dd48b9aef647b0", "source_url": "/docs/release/9.3.6/#id-1.11.6.24.5"}, {"db_id": "cb23b2e67a0393165767d5061c7ff291", "kind": "equivalent", "version": "9.2.10", "label": "9.2.10", "title": "修复通过约束违反错误消息的信息泄露", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dd2b73b11818dd3a1fff35706b46ac7cadcadcaa414dd330a192424304534f7c"}, "url": "/docs/compare/?release=9.2.10#9.2.10-d6dd48b9aef647b0", "source_url": "/docs/release/9.2.10/#id-1.11.6.19.5"}, {"db_id": "b5b170039eff8c708d777a87cc56f4ee", "kind": "equivalent", "version": "9.1.15", "label": "9.1.15", "title": "修复通过约束违反错误消息的信息泄露", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dd2b73b11818dd3a1fff35706b46ac7cadcadcaa414dd330a192424304534f7c"}, "url": "/docs/compare/?release=9.1.15#9.1.15-d6dd48b9aef647b0", "source_url": "/docs/release/9.1.15/#id-1.11.6.14.5"}]}, {"id": "9.0.19-f18a20a2bec524ef", "cves": ["CVE-2014-0067"], "html": "<p>锁定 Windows 上回归测试的临时安装（Noah Misch）</p>\n<p>使用 SSPI 认证，只允许启动测试套件的操作系统用户连接。这在 Windows 上关闭了此前已在其他平台上关闭的同一漏洞，即其他用户可能连接到测试 postmaster。（CVE-2014-0067）</p>", "text": "锁定 Windows 上回归测试的临时安装（Noah Misch） 使用 SSPI 认证，只允许启动测试套件的操作系统用户连接。这在 Windows 上关闭了此前已在其他平台上关闭的同一漏洞，即其他用户可能连接到测试 postmaster。（CVE-2014-0067）", "title": "锁定 Windows 上回归测试的临时安装", "commits": [], "section": "变更", "category": "security", "source_url": "/docs/release/9.0.19/#id-1.11.6.9.5", "source_hash": "b9e8d9bca46e10d5d0eba76f0382cf1347dcb30daad63a5f9e1ba659b291cea0", "section_path": ["变更"], "commit_groups": [], "identity_text": "Lock down regression testing's temporary installations on Windows (Noah Misch) Use SSPI authentication to allow connections only from the OS user who launched the test suite. This closes on Windows the same vulnerability previously closed on other platforms, namely that other users might be able to connect to the test postmaster. (CVE-2014-0067)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.19/changes/006", "db_id": "c55d12255d904c843b58f7491c8c32f0", "patch_ids": [], "statement_hash": "a634794025e560be39918325339ff67cd524350a326f395531d18ad3ef17869d", "relations": [{"rule": 2, "type": "equivalent", "target": "779b293b81f06e9a89366b402c92716f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a634794025e560be39918325339ff67cd524350a326f395531d18ad3ef17869d"}}, {"rule": 2, "type": "equivalent", "target": "c9e6817fa33417170bff26fa71630be0", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a634794025e560be39918325339ff67cd524350a326f395531d18ad3ef17869d"}}, {"rule": 2, "type": "equivalent", "target": "d1316adb0f1a83d10b6bceddd551ca7d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a634794025e560be39918325339ff67cd524350a326f395531d18ad3ef17869d"}}, {"rule": 2, "type": "equivalent", "target": "e40096ec33c08b11ceda62b0eeaed41b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a634794025e560be39918325339ff67cd524350a326f395531d18ad3ef17869d"}}], "version": "9.0.19", "category_label": "安全相关", "also_in": [], "variants": [], "related_changes": [{"db_id": "e40096ec33c08b11ceda62b0eeaed41b", "kind": "equivalent", "version": "9.4.1", "label": "9.4.1", "title": "锁定 Windows 上回归测试的临时安装", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a634794025e560be39918325339ff67cd524350a326f395531d18ad3ef17869d"}, "url": "/docs/compare/?release=9.4.1#9.4.1-f18a20a2bec524ef", "source_url": "/docs/release/9.4.1/#id-1.11.6.30.5"}, {"db_id": "d1316adb0f1a83d10b6bceddd551ca7d", "kind": "equivalent", "version": "9.3.6", "label": "9.3.6", "title": "锁定 Windows 上回归测试的临时安装", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a634794025e560be39918325339ff67cd524350a326f395531d18ad3ef17869d"}, "url": "/docs/compare/?release=9.3.6#9.3.6-f18a20a2bec524ef", "source_url": "/docs/release/9.3.6/#id-1.11.6.24.5"}, {"db_id": "779b293b81f06e9a89366b402c92716f", "kind": "equivalent", "version": "9.2.10", "label": "9.2.10", "title": "锁定 Windows 上回归测试的临时安装", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a634794025e560be39918325339ff67cd524350a326f395531d18ad3ef17869d"}, "url": "/docs/compare/?release=9.2.10#9.2.10-f18a20a2bec524ef", "source_url": "/docs/release/9.2.10/#id-1.11.6.19.5"}, {"db_id": "c9e6817fa33417170bff26fa71630be0", "kind": "equivalent", "version": "9.1.15", "label": "9.1.15", "title": "锁定 Windows 上回归测试的临时安装", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a634794025e560be39918325339ff67cd524350a326f395531d18ad3ef17869d"}, "url": "/docs/compare/?release=9.1.15#9.1.15-f18a20a2bec524ef", "source_url": "/docs/release/9.1.15/#id-1.11.6.14.5"}]}, {"id": "9.0.19-582ea016fa9f4158", "cves": [], "html": "<p>避免在使用 <code>ALTER DATABASE SET TABLESPACE</code> 把数据库移到新表空间、随后不久又移回原表空间时可能出现的数据损坏（Tom Lane）</p>", "text": "避免在使用 ALTER DATABASE SET TABLESPACE 把数据库移到新表空间、随后不久又移回原表空间时可能出现的数据损坏（Tom Lane）", "title": "避免在使用 ALTER DATABASE SET TABLESPACE 把数据库移到新表空间、随后不久又移回原表空间时可能出现的数据损坏", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.19/#id-1.11.6.9.5", "source_hash": "70fd72b4ea72ba4029d67c8f13d3080081900c59f6ad4e2cc8a6548c6ba47dcc", "section_path": ["变更"], "commit_groups": [], "identity_text": "Avoid possible data corruption if ALTER DATABASE SET TABLESPACE is used to move a database to a new tablespace and then shortly later move it back to its original tablespace (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.19/changes/007", "db_id": "413d24efd179754607333c77f109c91c", "patch_ids": [], "statement_hash": "fdbacc0c7248772ecfddc674160c2748a9f5ee110d9ce2119b4e78bfa7c2bfea", "relations": [{"rule": 2, "type": "equivalent", "target": "34a819efecd6cbded98343eed96ecd44", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fdbacc0c7248772ecfddc674160c2748a9f5ee110d9ce2119b4e78bfa7c2bfea"}}, {"rule": 2, "type": "equivalent", "target": "45486756689bc9c137b3abbd2a8866d4", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fdbacc0c7248772ecfddc674160c2748a9f5ee110d9ce2119b4e78bfa7c2bfea"}}, {"rule": 2, "type": "equivalent", "target": "7278db76e96b7e107724639fc17e62da", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fdbacc0c7248772ecfddc674160c2748a9f5ee110d9ce2119b4e78bfa7c2bfea"}}], "version": "9.0.19", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "7278db76e96b7e107724639fc17e62da", "kind": "equivalent", "version": "9.3.6", "label": "9.3.6", "title": "避免在使用 ALTER DATABASE SET TABLESPACE 把数据库移到新表空间、随后不久又移回原表空间时可能出现的数据损坏", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fdbacc0c7248772ecfddc674160c2748a9f5ee110d9ce2119b4e78bfa7c2bfea"}, "url": "/docs/compare/?release=9.3.6#9.3.6-582ea016fa9f4158", "source_url": "/docs/release/9.3.6/#id-1.11.6.24.5"}, {"db_id": "45486756689bc9c137b3abbd2a8866d4", "kind": "equivalent", "version": "9.2.10", "label": "9.2.10", "title": "避免在使用 ALTER DATABASE SET TABLESPACE 把数据库移到新表空间、随后不久又移回原表空间时可能出现的数据损坏", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fdbacc0c7248772ecfddc674160c2748a9f5ee110d9ce2119b4e78bfa7c2bfea"}, "url": "/docs/compare/?release=9.2.10#9.2.10-582ea016fa9f4158", "source_url": "/docs/release/9.2.10/#id-1.11.6.19.5"}, {"db_id": "34a819efecd6cbded98343eed96ecd44", "kind": "equivalent", "version": "9.1.15", "label": "9.1.15", "title": "避免在使用 ALTER DATABASE SET TABLESPACE 把数据库移到新表空间、随后不久又移回原表空间时可能出现的数据损坏", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fdbacc0c7248772ecfddc674160c2748a9f5ee110d9ce2119b4e78bfa7c2bfea"}, "url": "/docs/compare/?release=9.1.15#9.1.15-582ea016fa9f4158", "source_url": "/docs/release/9.1.15/#id-1.11.6.14.5"}]}, {"id": "9.0.19-421e116b5aef5c99", "cves": [], "html": "<p>避免当事务内的 <code>ANALYZE</code> 被回滚时损坏表（Andres Freund、Tom Lane、Michael Paquier）</p>\n<p>如果失败的事务此前删除了表上的最后一个索引、规则或触发器，该表会处于损坏状态：相关的 <code>pg_class</code> 标志本应设置却未被设置。</p>", "text": "避免当事务内的 ANALYZE 被回滚时损坏表（Andres Freund、Tom Lane、Michael Paquier） 如果失败的事务此前删除了表上的最后一个索引、规则或触发器，该表会处于损坏状态：相关的 pg_class 标志本应设置却未被设置。", "title": "避免当事务内的 ANALYZE 被回滚时损坏表", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.19/#id-1.11.6.9.5", "source_hash": "9fea2c6377c3768797cd70e9f60c884679a8e254b6345821ba5fc33d5d503490", "section_path": ["变更"], "commit_groups": [], "identity_text": "Avoid corrupting tables when ANALYZE inside a transaction is rolled back (Andres Freund, Tom Lane, Michael Paquier) If the failing transaction had earlier removed the last index, rule, or trigger from the table, the table would be left in a corrupted state with the relevant pg_class flags not set though they should be.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.19/changes/008", "db_id": "e8e57e07476a94a6d6d8d7584f04f055", "patch_ids": [], "statement_hash": "316139d0974234907cd01c27df24264c574ded69c2b48264a6b98e2ddd03575e", "relations": [{"rule": 2, "type": "equivalent", "target": "23b53ecd652d84dd2dd413294fd6521d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "316139d0974234907cd01c27df24264c574ded69c2b48264a6b98e2ddd03575e"}}, {"rule": 2, "type": "equivalent", "target": "8caf71bc52ba8ad5f05273584f0dddd5", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "316139d0974234907cd01c27df24264c574ded69c2b48264a6b98e2ddd03575e"}}, {"rule": 2, "type": "equivalent", "target": "9a9d0dcf2f63e759f5380b51fd62a4ca", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "316139d0974234907cd01c27df24264c574ded69c2b48264a6b98e2ddd03575e"}}], "version": "9.0.19", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "8caf71bc52ba8ad5f05273584f0dddd5", "kind": "equivalent", "version": "9.3.6", "label": "9.3.6", "title": "避免当事务内的 ANALYZE 被回滚时损坏表", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "316139d0974234907cd01c27df24264c574ded69c2b48264a6b98e2ddd03575e"}, "url": "/docs/compare/?release=9.3.6#9.3.6-421e116b5aef5c99", "source_url": "/docs/release/9.3.6/#id-1.11.6.24.5"}, {"db_id": "9a9d0dcf2f63e759f5380b51fd62a4ca", "kind": "equivalent", "version": "9.2.10", "label": "9.2.10", "title": "避免当事务内的 ANALYZE 被回滚时损坏表", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "316139d0974234907cd01c27df24264c574ded69c2b48264a6b98e2ddd03575e"}, "url": "/docs/compare/?release=9.2.10#9.2.10-421e116b5aef5c99", "source_url": "/docs/release/9.2.10/#id-1.11.6.19.5"}, {"db_id": "23b53ecd652d84dd2dd413294fd6521d", "kind": "equivalent", "version": "9.1.15", "label": "9.1.15", "title": "避免当事务内的 ANALYZE 被回滚时损坏表", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "316139d0974234907cd01c27df24264c574ded69c2b48264a6b98e2ddd03575e"}, "url": "/docs/compare/?release=9.1.15#9.1.15-421e116b5aef5c99", "source_url": "/docs/release/9.1.15/#id-1.11.6.14.5"}]}, {"id": "9.0.19-c8abbaf7927fce95", "cves": [], "html": "<p>修复 EvalPlanQual 处理中使用已释放内存的问题（Tom Lane）</p>\n<p>在<code>READ COMMITTED</code>模式下，锁定或更新最近更新过的行的查询可能因此缺陷崩溃。</p>", "text": "修复 EvalPlanQual 处理中使用已释放内存的问题（Tom Lane） 在READ COMMITTED模式下，锁定或更新最近更新过的行的查询可能因此缺陷崩溃。", "title": "修复 EvalPlanQual 处理中使用已释放内存的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.19/#id-1.11.6.9.5", "source_hash": "36d067ad9cfb32b16eadf51fcf4be023de02358ae07224d1d7cc7509035c6f18", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix use-of-already-freed-memory problem in EvalPlanQual processing (Tom Lane) In READ COMMITTED mode, queries that lock or update recently-updated rows could crash as a result of this bug.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.19/changes/009", "db_id": "0f099841cca4b33405c3ddc8f4fead00", "patch_ids": [], "statement_hash": "26c0a7d85f5805b580b6a294fb05aed11b824299101debe409c4d1842cd97910", "relations": [{"rule": 2, "type": "equivalent", "target": "086c756fd0e9397971b54d7a28c49444", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "26c0a7d85f5805b580b6a294fb05aed11b824299101debe409c4d1842cd97910"}}, {"rule": 2, "type": "equivalent", "target": "518b6f89d70c4bd72f57e27b1c90c8aa", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "26c0a7d85f5805b580b6a294fb05aed11b824299101debe409c4d1842cd97910"}}, {"rule": 2, "type": "equivalent", "target": "897dbd23f31c45b407d751eaf85051d7", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "26c0a7d85f5805b580b6a294fb05aed11b824299101debe409c4d1842cd97910"}}, {"rule": 2, "type": "equivalent", "target": "c232791f560eab5b20a7fd1cced3be9c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "26c0a7d85f5805b580b6a294fb05aed11b824299101debe409c4d1842cd97910"}}], "version": "9.0.19", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "518b6f89d70c4bd72f57e27b1c90c8aa", "kind": "equivalent", "version": "9.4.1", "label": "9.4.1", "title": "修复 EvalPlanQual 处理中使用已释放内存的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "26c0a7d85f5805b580b6a294fb05aed11b824299101debe409c4d1842cd97910"}, "url": "/docs/compare/?release=9.4.1#9.4.1-c8abbaf7927fce95", "source_url": "/docs/release/9.4.1/#id-1.11.6.30.5"}, {"db_id": "086c756fd0e9397971b54d7a28c49444", "kind": "equivalent", "version": "9.3.6", "label": "9.3.6", "title": "修复 EvalPlanQual 处理中使用已释放内存的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "26c0a7d85f5805b580b6a294fb05aed11b824299101debe409c4d1842cd97910"}, "url": "/docs/compare/?release=9.3.6#9.3.6-c8abbaf7927fce95", "source_url": "/docs/release/9.3.6/#id-1.11.6.24.5"}, {"db_id": "c232791f560eab5b20a7fd1cced3be9c", "kind": "equivalent", "version": "9.2.10", "label": "9.2.10", "title": "修复 EvalPlanQual 处理中使用已释放内存的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "26c0a7d85f5805b580b6a294fb05aed11b824299101debe409c4d1842cd97910"}, "url": "/docs/compare/?release=9.2.10#9.2.10-c8abbaf7927fce95", "source_url": "/docs/release/9.2.10/#id-1.11.6.19.5"}, {"db_id": "897dbd23f31c45b407d751eaf85051d7", "kind": "equivalent", "version": "9.1.15", "label": "9.1.15", "title": "修复 EvalPlanQual 处理中使用已释放内存的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "26c0a7d85f5805b580b6a294fb05aed11b824299101debe409c4d1842cd97910"}, "url": "/docs/compare/?release=9.1.15#9.1.15-c8abbaf7927fce95", "source_url": "/docs/release/9.1.15/#id-1.11.6.14.5"}]}, {"id": "9.0.19-b1d55e83cf4cc95d", "cves": [], "html": "<p>修复在子表上使用部分索引时 <code>SELECT FOR UPDATE</code> 的规划问题（Kyotaro Horiguchi）</p>\n<p>在 <code>READ COMMITTED</code> 模式下，<code>SELECT FOR UPDATE</code> 在重新检查最近更新的行以确认它是否仍满足查询的 <code>WHERE</code> 条件时，还必须重新检查部分索引的 <code>WHERE</code> 条件。如果索引属于继承子表，就会遗漏这一要求，因此有可能错误地返回已不再满足查询条件的行。</p>", "text": "修复在子表上使用部分索引时 SELECT FOR UPDATE 的规划问题（Kyotaro Horiguchi） 在 READ COMMITTED 模式下，SELECT FOR UPDATE 在重新检查最近更新的行以确认它是否仍满足查询的 WHERE 条件时，还必须重新检查部分索引的 WHERE 条件。如果索引属于继承子表，就会遗漏这一要求，因此有可能错误地返回已不再满足查询条件的行。", "title": "修复在子表上使用部分索引时 SELECT FOR UPDATE 的规划问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.19/#id-1.11.6.9.5", "source_hash": "bc996767707e2361bc3f18f596c9eec0ee1d5fe39e8ae19435f9f7dae5624418", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix planning of SELECT FOR UPDATE when using a partial index on a child table (Kyotaro Horiguchi) In READ COMMITTED mode, SELECT FOR UPDATE must also recheck the partial index's WHERE condition when rechecking a recently-updated row to see if it still satisfies the query's WHERE condition. This requirement was missed if the index belonged to an inheritance child table, so that it was possible to incorrectly return rows that no longer satisfy the query condition.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.19/changes/010", "db_id": "d7be3c4335349cd5c1a397c0f662487b", "patch_ids": [], "statement_hash": "36908b6ff0ae3603effb5d580a33f80dbaf095b34c33a38ec0653a51e0c34435", "relations": [{"rule": 2, "type": "equivalent", "target": "146aec752b81b2b4395318ac831a802d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "36908b6ff0ae3603effb5d580a33f80dbaf095b34c33a38ec0653a51e0c34435"}}, {"rule": 2, "type": "equivalent", "target": "59fd481145887a120dad83abb8869791", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "36908b6ff0ae3603effb5d580a33f80dbaf095b34c33a38ec0653a51e0c34435"}}, {"rule": 2, "type": "equivalent", "target": "5ddd034f28b89f798a4c7c670c6c478b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "36908b6ff0ae3603effb5d580a33f80dbaf095b34c33a38ec0653a51e0c34435"}}], "version": "9.0.19", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "146aec752b81b2b4395318ac831a802d", "kind": "equivalent", "version": "9.3.6", "label": "9.3.6", "title": "修复在子表上使用部分索引时 SELECT FOR UPDATE 的规划问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "36908b6ff0ae3603effb5d580a33f80dbaf095b34c33a38ec0653a51e0c34435"}, "url": "/docs/compare/?release=9.3.6#9.3.6-b1d55e83cf4cc95d", "source_url": "/docs/release/9.3.6/#id-1.11.6.24.5"}, {"db_id": "59fd481145887a120dad83abb8869791", "kind": "equivalent", "version": "9.2.10", "label": "9.2.10", "title": "修复在子表上使用部分索引时 SELECT FOR UPDATE 的规划问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "36908b6ff0ae3603effb5d580a33f80dbaf095b34c33a38ec0653a51e0c34435"}, "url": "/docs/compare/?release=9.2.10#9.2.10-b1d55e83cf4cc95d", "source_url": "/docs/release/9.2.10/#id-1.11.6.19.5"}, {"db_id": "5ddd034f28b89f798a4c7c670c6c478b", "kind": "equivalent", "version": "9.1.15", "label": "9.1.15", "title": "修复在子表上使用部分索引时 SELECT FOR UPDATE 的规划问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "36908b6ff0ae3603effb5d580a33f80dbaf095b34c33a38ec0653a51e0c34435"}, "url": "/docs/compare/?release=9.1.15#9.1.15-b1d55e83cf4cc95d", "source_url": "/docs/release/9.1.15/#id-1.11.6.14.5"}]}, {"id": "9.0.19-6b6979e576d5a10f", "cves": [], "html": "<p>修复 <code>SELECT FOR UPDATE</code> 在极端情况下可能把同一行返回两次、并且可能漏掉其他行的 corner case（Tom Lane）</p>\n<p>在 <code>READ COMMITTED</code> 模式下，扫描继承树的 <code>SELECT FOR UPDATE</code> 可能错误地返回来自前一个子表的行，而不是本应从后一个子表返回的行。</p>", "text": "修复 SELECT FOR UPDATE 在极端情况下可能把同一行返回两次、并且可能漏掉其他行的 corner case（Tom Lane） 在 READ COMMITTED 模式下，扫描继承树的 SELECT FOR UPDATE 可能错误地返回来自前一个子表的行，而不是本应从后一个子表返回的行。", "title": "修复 SELECT FOR UPDATE 在极端情况下可能把同一行返回两次、并且可能漏掉其他行的 corner case", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.19/#id-1.11.6.9.5", "source_hash": "84021473aab8be3d6294dcc7737c996fe92227622d5116af873f28b26affa75d", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix corner case wherein SELECT FOR UPDATE could return a row twice, and possibly miss returning other rows (Tom Lane) In READ COMMITTED mode, a SELECT FOR UPDATE that is scanning an inheritance tree could incorrectly return a row from a prior child table instead of the one it should return from a later child table.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.19/changes/011", "db_id": "fe162f08321da551b1a14893a637f697", "patch_ids": [], "statement_hash": "50e0848c1827ba8c6efc14c54fba1123fe9547b2c4df6757f3537d4a8131b9d6", "relations": [{"rule": 2, "type": "equivalent", "target": "aaeaed3b9b37367a610922fde7031533", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "50e0848c1827ba8c6efc14c54fba1123fe9547b2c4df6757f3537d4a8131b9d6"}}, {"rule": 2, "type": "equivalent", "target": "d2306970eb0b897986d601c730f7f559", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "50e0848c1827ba8c6efc14c54fba1123fe9547b2c4df6757f3537d4a8131b9d6"}}, {"rule": 2, "type": "equivalent", "target": "fbef46d750d950e659efa4e806de3441", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "50e0848c1827ba8c6efc14c54fba1123fe9547b2c4df6757f3537d4a8131b9d6"}}], "version": "9.0.19", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "fbef46d750d950e659efa4e806de3441", "kind": "equivalent", "version": "9.3.6", "label": "9.3.6", "title": "修复 SELECT FOR UPDATE 在极端情况下可能把同一行返回两次、并且可能漏掉其他行的 corner case", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "50e0848c1827ba8c6efc14c54fba1123fe9547b2c4df6757f3537d4a8131b9d6"}, "url": "/docs/compare/?release=9.3.6#9.3.6-6b6979e576d5a10f", "source_url": "/docs/release/9.3.6/#id-1.11.6.24.5"}, {"db_id": "aaeaed3b9b37367a610922fde7031533", "kind": "equivalent", "version": "9.2.10", "label": "9.2.10", "title": "修复 SELECT FOR UPDATE 在极端情况下可能把同一行返回两次、并且可能漏掉其他行的 corner case", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "50e0848c1827ba8c6efc14c54fba1123fe9547b2c4df6757f3537d4a8131b9d6"}, "url": "/docs/compare/?release=9.2.10#9.2.10-6b6979e576d5a10f", "source_url": "/docs/release/9.2.10/#id-1.11.6.19.5"}, {"db_id": "d2306970eb0b897986d601c730f7f559", "kind": "equivalent", "version": "9.1.15", "label": "9.1.15", "title": "修复 SELECT FOR UPDATE 在极端情况下可能把同一行返回两次、并且可能漏掉其他行的 corner case", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "50e0848c1827ba8c6efc14c54fba1123fe9547b2c4df6757f3537d4a8131b9d6"}, "url": "/docs/compare/?release=9.1.15#9.1.15-6b6979e576d5a10f", "source_url": "/docs/release/9.1.15/#id-1.11.6.14.5"}]}, {"id": "9.0.19-be10ee78f9d706c7", "cves": [], "html": "<p>拒绝 <code>FOREIGN KEY</code> 声明的被引用列列表中出现重复的列名（David Rowley）</p>\n<p>这一限制符合 SQL 标准。此前我们并未显式拒绝这种情况，但之后代码会以看起来很怪异的错误失败。</p>", "text": "拒绝 FOREIGN KEY 声明的被引用列列表中出现重复的列名（David Rowley） 这一限制符合 SQL 标准。此前我们并未显式拒绝这种情况，但之后代码会以看起来很怪异的错误失败。", "title": "拒绝 FOREIGN KEY 声明的被引用列列表中出现重复的列名", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.19/#id-1.11.6.9.5", "source_hash": "a5194c55b9935e8f3a4d3ba5b355c816e136d16dc69954da1365317a6d486145", "section_path": ["变更"], "commit_groups": [], "identity_text": "Reject duplicate column names in the referenced-columns list of a FOREIGN KEY declaration (David Rowley) This restriction is per SQL standard. Previously we did not reject the case explicitly, but later on the code would fail with bizarre-looking errors.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.19/changes/012", "db_id": "14d041c9b061879311a6d5818de548cd", "patch_ids": [], "statement_hash": "3f94d513bde91f1a555ed53315658e982a8ac98d877b83f0919f02d3e28d9a8f", "relations": [{"rule": 2, "type": "equivalent", "target": "41f72220da3db16a17eaec14c2e627a5", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3f94d513bde91f1a555ed53315658e982a8ac98d877b83f0919f02d3e28d9a8f"}}, {"rule": 2, "type": "equivalent", "target": "b0ae638906d62ba0cb7e686757b226b9", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3f94d513bde91f1a555ed53315658e982a8ac98d877b83f0919f02d3e28d9a8f"}}, {"rule": 2, "type": "equivalent", "target": "c35e86e1c1b6302743853aada4360120", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3f94d513bde91f1a555ed53315658e982a8ac98d877b83f0919f02d3e28d9a8f"}}], "version": "9.0.19", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "b0ae638906d62ba0cb7e686757b226b9", "kind": "equivalent", "version": "9.3.6", "label": "9.3.6", "title": "拒绝 FOREIGN KEY 声明的被引用列列表中出现重复的列名", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3f94d513bde91f1a555ed53315658e982a8ac98d877b83f0919f02d3e28d9a8f"}, "url": "/docs/compare/?release=9.3.6#9.3.6-be10ee78f9d706c7", "source_url": "/docs/release/9.3.6/#id-1.11.6.24.5"}, {"db_id": "41f72220da3db16a17eaec14c2e627a5", "kind": "equivalent", "version": "9.2.10", "label": "9.2.10", "title": "拒绝 FOREIGN KEY 声明的被引用列列表中出现重复的列名", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3f94d513bde91f1a555ed53315658e982a8ac98d877b83f0919f02d3e28d9a8f"}, "url": "/docs/compare/?release=9.2.10#9.2.10-be10ee78f9d706c7", "source_url": "/docs/release/9.2.10/#id-1.11.6.19.5"}, {"db_id": "c35e86e1c1b6302743853aada4360120", "kind": "equivalent", "version": "9.1.15", "label": "9.1.15", "title": "拒绝 FOREIGN KEY 声明的被引用列列表中出现重复的列名", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3f94d513bde91f1a555ed53315658e982a8ac98d877b83f0919f02d3e28d9a8f"}, "url": "/docs/compare/?release=9.1.15#9.1.15-be10ee78f9d706c7", "source_url": "/docs/release/9.1.15/#id-1.11.6.14.5"}]}, {"id": "9.0.19-346213b07b974f37", "cves": [], "html": "<p>修复 <code>numeric</code> 值求大整数次幂时的缺陷（Tom Lane）</p>\n<p>之前的代码可能得到错误答案，或者在意识到结果必然溢出之前消耗过多的时间和内存。</p>", "text": "修复 numeric 值求大整数次幂时的缺陷（Tom Lane） 之前的代码可能得到错误答案，或者在意识到结果必然溢出之前消耗过多的时间和内存。", "title": "修复 numeric 值求大整数次幂时的缺陷", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.19/#id-1.11.6.9.5", "source_hash": "88168a773634c7ac151c23e83993e58b44c4ecbe58aa122c49b13e3fe6ad1f5f", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix bugs in raising a numeric value to a large integral power (Tom Lane) The previous code could get a wrong answer, or consume excessive amounts of time and memory before realizing that the answer must overflow.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.19/changes/013", "db_id": "226b0d2f03397d7dbf0638a08d8da624", "patch_ids": [], "statement_hash": "4f6285d1d3128b3d16a0317de5d824d9cf7270ce1dd2bf93afdea25e3d34e180", "relations": [{"rule": 2, "type": "equivalent", "target": "7d0d18ac69223d1468f26a28418eefe6", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4f6285d1d3128b3d16a0317de5d824d9cf7270ce1dd2bf93afdea25e3d34e180"}}, {"rule": 2, "type": "equivalent", "target": "c30ea11602d9305c6c10179bf6a5819f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4f6285d1d3128b3d16a0317de5d824d9cf7270ce1dd2bf93afdea25e3d34e180"}}, {"rule": 2, "type": "equivalent", "target": "ca1d795c6c39392c30dcb77106377778", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4f6285d1d3128b3d16a0317de5d824d9cf7270ce1dd2bf93afdea25e3d34e180"}}], "version": "9.0.19", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "c30ea11602d9305c6c10179bf6a5819f", "kind": "equivalent", "version": "9.3.6", "label": "9.3.6", "title": "修复 numeric 值求大整数次幂时的缺陷", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4f6285d1d3128b3d16a0317de5d824d9cf7270ce1dd2bf93afdea25e3d34e180"}, "url": "/docs/compare/?release=9.3.6#9.3.6-346213b07b974f37", "source_url": "/docs/release/9.3.6/#id-1.11.6.24.5"}, {"db_id": "7d0d18ac69223d1468f26a28418eefe6", "kind": "equivalent", "version": "9.2.10", "label": "9.2.10", "title": "修复 numeric 值求大整数次幂时的缺陷", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4f6285d1d3128b3d16a0317de5d824d9cf7270ce1dd2bf93afdea25e3d34e180"}, "url": "/docs/compare/?release=9.2.10#9.2.10-346213b07b974f37", "source_url": "/docs/release/9.2.10/#id-1.11.6.19.5"}, {"db_id": "ca1d795c6c39392c30dcb77106377778", "kind": "equivalent", "version": "9.1.15", "label": "9.1.15", "title": "修复 numeric 值求大整数次幂时的缺陷", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4f6285d1d3128b3d16a0317de5d824d9cf7270ce1dd2bf93afdea25e3d34e180"}, "url": "/docs/compare/?release=9.1.15#9.1.15-346213b07b974f37", "source_url": "/docs/release/9.1.15/#id-1.11.6.14.5"}]}, {"id": "9.0.19-c2c0a9e71f032555", "cves": [], "html": "<p>在 <code>numeric_recv()</code> 中，按照值的 <code>dscale</code> 字段截去会被隐藏的小数位（Tom Lane）</p>\n<p><code>numeric</code> 值的显示标度（<code>dscale</code>）绝不应小于非零小数位的位数；但显然至少存在一个有缺陷的客户端应用，它发送的二进制 <code>numeric</code> 值违反了这一点。这会导致奇怪的行为，因为多余的数字位虽然不会被打印出来，却会被算术运算考虑在内。风险最小的修复方法似乎是在接收时把这类<span>“<span>隐藏的</span>”</span>数字位截去，使值确实与它打印出来的一致。</p>", "text": "在 numeric_recv() 中，按照值的 dscale 字段截去会被隐藏的小数位（Tom Lane） numeric 值的显示标度（dscale）绝不应小于非零小数位的位数；但显然至少存在一个有缺陷的客户端应用，它发送的二进制 numeric 值违反了这一点。这会导致奇怪的行为，因为多余的数字位虽然不会被打印出来，却会被算术运算考虑在内。风险最小的修复方法似乎是在接收时把这类“隐藏的”数字位截去，使值确实与它打印出来的一致。", "title": "在 numeric_recv() 中，按照值的 dscale 字段截去会被隐藏的小数位", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.19/#id-1.11.6.9.5", "source_hash": "266ed7ecc62946f2d9b7be44c50ab48c100cb08ece5dcaea758eac79caa8a631", "section_path": ["变更"], "commit_groups": [], "identity_text": "In numeric_recv(), truncate away any fractional digits that would be hidden according to the value's dscale field (Tom Lane) A numeric value's display scale (dscale) should never be less than the number of nonzero fractional digits; but apparently there's at least one broken client application that transmits binary numeric values in which that's true. This leads to strange behavior since the extra digits are taken into account by arithmetic operations even though they aren't printed. The least risky fix seems to be to truncate away such hidden digits on receipt, so that the value is indeed what it prints as.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.19/changes/014", "db_id": "21fb91e361458197ee38691243863b4b", "patch_ids": [], "statement_hash": "d3bce8c380d14c365384a17ea6e41dfc2e4cd35690f37cc861cfbb0916d3c6c6", "relations": [{"rule": 2, "type": "equivalent", "target": "4834f26d14365fb568228674fbec047d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d3bce8c380d14c365384a17ea6e41dfc2e4cd35690f37cc861cfbb0916d3c6c6"}}, {"rule": 2, "type": "equivalent", "target": "845e86021abbcc7c1b02acb5271bd874", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d3bce8c380d14c365384a17ea6e41dfc2e4cd35690f37cc861cfbb0916d3c6c6"}}, {"rule": 2, "type": "equivalent", "target": "dd6854dbfb0e874f5cb956a1ec05afb5", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d3bce8c380d14c365384a17ea6e41dfc2e4cd35690f37cc861cfbb0916d3c6c6"}}], "version": "9.0.19", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "4834f26d14365fb568228674fbec047d", "kind": "equivalent", "version": "9.3.6", "label": "9.3.6", "title": "在 numeric_recv() 中，按照值的 dscale 字段截去会被隐藏的小数位", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d3bce8c380d14c365384a17ea6e41dfc2e4cd35690f37cc861cfbb0916d3c6c6"}, "url": "/docs/compare/?release=9.3.6#9.3.6-c2c0a9e71f032555", "source_url": "/docs/release/9.3.6/#id-1.11.6.24.5"}, {"db_id": "845e86021abbcc7c1b02acb5271bd874", "kind": "equivalent", "version": "9.2.10", "label": "9.2.10", "title": "在 numeric_recv() 中，按照值的 dscale 字段截去会被隐藏的小数位", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d3bce8c380d14c365384a17ea6e41dfc2e4cd35690f37cc861cfbb0916d3c6c6"}, "url": "/docs/compare/?release=9.2.10#9.2.10-c2c0a9e71f032555", "source_url": "/docs/release/9.2.10/#id-1.11.6.19.5"}, {"db_id": "dd6854dbfb0e874f5cb956a1ec05afb5", "kind": "equivalent", "version": "9.1.15", "label": "9.1.15", "title": "在 numeric_recv() 中，按照值的 dscale 字段截去会被隐藏的小数位", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d3bce8c380d14c365384a17ea6e41dfc2e4cd35690f37cc861cfbb0916d3c6c6"}, "url": "/docs/compare/?release=9.1.15#9.1.15-c2c0a9e71f032555", "source_url": "/docs/release/9.1.15/#id-1.11.6.14.5"}]}, {"id": "9.0.19-72077f08360f6c25", "cves": [], "html": "<p>拒绝超出范围的数字时区规范（Tom Lane）</p>\n<p>超过 +/- 168 小时（一周）的简单数字时区规范此前会被接受，但随后可能在某些操作中导致空指针解引用崩溃。如此大的 UTC 偏移没有实际使用场景，因此予以拒绝。</p>", "text": "拒绝超出范围的数字时区规范（Tom Lane） 超过 +/- 168 小时（一周）的简单数字时区规范此前会被接受，但随后可能在某些操作中导致空指针解引用崩溃。如此大的 UTC 偏移没有实际使用场景，因此予以拒绝。", "title": "拒绝超出范围的数字时区规范", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.19/#id-1.11.6.9.5", "source_hash": "41abc2abc81d19f9928d7d157c7e472f6b1e1f2cdf41e4189c66ac8507f3c290", "section_path": ["变更"], "commit_groups": [], "identity_text": "Reject out-of-range numeric timezone specifications (Tom Lane) Simple numeric timezone specifications exceeding +/- 168 hours (one week) would be accepted, but could then cause null-pointer dereference crashes in certain operations. There's no use-case for such large UTC offsets, so reject them.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.19/changes/015", "db_id": "339967c45fa7f4dcd7b22794dae2b3be", "patch_ids": [], "statement_hash": "2e9cfd0353b581050111091b8a05b8dda8f193ffb78ec52305943659206a1491", "relations": [{"rule": 2, "type": "equivalent", "target": "616840fcef2dec6122d552f0c0182a76", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2e9cfd0353b581050111091b8a05b8dda8f193ffb78ec52305943659206a1491"}}, {"rule": 2, "type": "equivalent", "target": "e8f6b0bd9c7bc0ac116bfb195304c0e6", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2e9cfd0353b581050111091b8a05b8dda8f193ffb78ec52305943659206a1491"}}, {"rule": 2, "type": "equivalent", "target": "ec3e5c8b8132753010f98027b961bf1c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2e9cfd0353b581050111091b8a05b8dda8f193ffb78ec52305943659206a1491"}}], "version": "9.0.19", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "616840fcef2dec6122d552f0c0182a76", "kind": "equivalent", "version": "9.3.6", "label": "9.3.6", "title": "拒绝超出范围的数字时区规范", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2e9cfd0353b581050111091b8a05b8dda8f193ffb78ec52305943659206a1491"}, "url": "/docs/compare/?release=9.3.6#9.3.6-72077f08360f6c25", "source_url": "/docs/release/9.3.6/#id-1.11.6.24.5"}, {"db_id": "ec3e5c8b8132753010f98027b961bf1c", "kind": "equivalent", "version": "9.2.10", "label": "9.2.10", "title": "拒绝超出范围的数字时区规范", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2e9cfd0353b581050111091b8a05b8dda8f193ffb78ec52305943659206a1491"}, "url": "/docs/compare/?release=9.2.10#9.2.10-72077f08360f6c25", "source_url": "/docs/release/9.2.10/#id-1.11.6.19.5"}, {"db_id": "e8f6b0bd9c7bc0ac116bfb195304c0e6", "kind": "equivalent", "version": "9.1.15", "label": "9.1.15", "title": "拒绝超出范围的数字时区规范", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2e9cfd0353b581050111091b8a05b8dda8f193ffb78ec52305943659206a1491"}, "url": "/docs/compare/?release=9.1.15#9.1.15-72077f08360f6c25", "source_url": "/docs/release/9.1.15/#id-1.11.6.14.5"}]}, {"id": "9.0.19-3646836441105e34", "cves": [], "html": "<p>修复 <code>tsquery</code> <code>@&gt;</code> <code>tsquery</code> 操作符中的缺陷（Heikki Linnakangas）</p>\n<p>两个不同的词如果 CRC 相同，就会被认为匹配。此外，如果第二个操作数的词条比第一个多，就会被假定不包含于第一个；这是错误的，因为它可能包含重复词条。</p>", "text": "修复 tsquery @> tsquery 操作符中的缺陷（Heikki Linnakangas） 两个不同的词如果 CRC 相同，就会被认为匹配。此外，如果第二个操作数的词条比第一个多，就会被假定不包含于第一个；这是错误的，因为它可能包含重复词条。", "title": "修复 tsquery @> tsquery 操作符中的缺陷", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.19/#id-1.11.6.9.5", "source_hash": "b0d33c96b2d6d490b313d4a9c43af74e09000b73db3c5fbdcdb9ea5078902a7b", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix bugs in tsquery @> tsquery operator (Heikki Linnakangas) Two different terms would be considered to match if they had the same CRC. Also, if the second operand had more terms than the first, it would be assumed not to be contained in the first; which is wrong since it might contain duplicate terms.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.19/changes/016", "db_id": "8b4d94e9c711372745f6e4bde08b6260", "patch_ids": [], "statement_hash": "5f57753b4271a1bf7953422aa3a6f3bf14abae9655079807c17ebed56df3e18c", "relations": [{"rule": 2, "type": "equivalent", "target": "073908f63316621ce9f92daf5cd1cf99", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5f57753b4271a1bf7953422aa3a6f3bf14abae9655079807c17ebed56df3e18c"}}, {"rule": 2, "type": "equivalent", "target": "0b356da5acc14069e9074d5617ae6eb5", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5f57753b4271a1bf7953422aa3a6f3bf14abae9655079807c17ebed56df3e18c"}}, {"rule": 2, "type": "equivalent", "target": "593eb443e8f3a2f59e5a0a7ff457e9a0", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5f57753b4271a1bf7953422aa3a6f3bf14abae9655079807c17ebed56df3e18c"}}], "version": "9.0.19", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "073908f63316621ce9f92daf5cd1cf99", "kind": "equivalent", "version": "9.3.6", "label": "9.3.6", "title": "修复 tsquery @> tsquery 操作符中的缺陷", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5f57753b4271a1bf7953422aa3a6f3bf14abae9655079807c17ebed56df3e18c"}, "url": "/docs/compare/?release=9.3.6#9.3.6-3646836441105e34", "source_url": "/docs/release/9.3.6/#id-1.11.6.24.5"}, {"db_id": "0b356da5acc14069e9074d5617ae6eb5", "kind": "equivalent", "version": "9.2.10", "label": "9.2.10", "title": "修复 tsquery @> tsquery 操作符中的缺陷", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5f57753b4271a1bf7953422aa3a6f3bf14abae9655079807c17ebed56df3e18c"}, "url": "/docs/compare/?release=9.2.10#9.2.10-3646836441105e34", "source_url": "/docs/release/9.2.10/#id-1.11.6.19.5"}, {"db_id": "593eb443e8f3a2f59e5a0a7ff457e9a0", "kind": "equivalent", "version": "9.1.15", "label": "9.1.15", "title": "修复 tsquery @> tsquery 操作符中的缺陷", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5f57753b4271a1bf7953422aa3a6f3bf14abae9655079807c17ebed56df3e18c"}, "url": "/docs/compare/?release=9.1.15#9.1.15-3646836441105e34", "source_url": "/docs/release/9.1.15/#id-1.11.6.14.5"}]}, {"id": "9.0.19-17572e8fc6e28797", "cves": [], "html": "<p>增强 ispell 词典对有问题的词缀文件的防御（Tom Lane）</p>", "text": "增强 ispell 词典对有问题的词缀文件的防御（Tom Lane）", "title": "增强 ispell 词典对有问题的词缀文件的防御", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.19/#id-1.11.6.9.5", "source_hash": "d9cfebb08027ff8d459138adc40bc0ce0dbbc1c91f5580beaa4bb69acca89ef6", "section_path": ["变更"], "commit_groups": [], "identity_text": "Improve ispell dictionary's defenses against bad affix files (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.19/changes/017", "db_id": "7a03301f2c1d0351aad964b6396bc43c", "patch_ids": [], "statement_hash": "7a6e2bb64a9d55946b95c6c16c51a92ec875e069f33efc63ecb9fb66403aea6b", "relations": [{"rule": 2, "type": "equivalent", "target": "6069d8e7563f29922ec06939c7c0cb97", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7a6e2bb64a9d55946b95c6c16c51a92ec875e069f33efc63ecb9fb66403aea6b"}}, {"rule": 2, "type": "equivalent", "target": "87198737c4c8031534103083ea445bd6", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7a6e2bb64a9d55946b95c6c16c51a92ec875e069f33efc63ecb9fb66403aea6b"}}, {"rule": 2, "type": "equivalent", "target": "8e5a4722ccc9e5ab562e61c96a54009e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7a6e2bb64a9d55946b95c6c16c51a92ec875e069f33efc63ecb9fb66403aea6b"}}], "version": "9.0.19", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "8e5a4722ccc9e5ab562e61c96a54009e", "kind": "equivalent", "version": "9.3.6", "label": "9.3.6", "title": "增强 ispell 词典对有问题的词缀文件的防御", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7a6e2bb64a9d55946b95c6c16c51a92ec875e069f33efc63ecb9fb66403aea6b"}, "url": "/docs/compare/?release=9.3.6#9.3.6-17572e8fc6e28797", "source_url": "/docs/release/9.3.6/#id-1.11.6.24.5"}, {"db_id": "6069d8e7563f29922ec06939c7c0cb97", "kind": "equivalent", "version": "9.2.10", "label": "9.2.10", "title": "增强 ispell 词典对有问题的词缀文件的防御", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7a6e2bb64a9d55946b95c6c16c51a92ec875e069f33efc63ecb9fb66403aea6b"}, "url": "/docs/compare/?release=9.2.10#9.2.10-17572e8fc6e28797", "source_url": "/docs/release/9.2.10/#id-1.11.6.19.5"}, {"db_id": "87198737c4c8031534103083ea445bd6", "kind": "equivalent", "version": "9.1.15", "label": "9.1.15", "title": "增强 ispell 词典对有问题的词缀文件的防御", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7a6e2bb64a9d55946b95c6c16c51a92ec875e069f33efc63ecb9fb66403aea6b"}, "url": "/docs/compare/?release=9.1.15#9.1.15-17572e8fc6e28797", "source_url": "/docs/release/9.1.15/#id-1.11.6.14.5"}]}, {"id": "9.0.19-73efaff769c7f010", "cves": [], "html": "<p>允许词典（thesaurus）包含超过 64K 个短语（David Boutin）</p>\n<p>之前的代码在词典过大时会崩溃，因此这被视为一个可回移植的缺陷修复，而不是新特性。</p>", "text": "允许词典（thesaurus）包含超过 64K 个短语（David Boutin） 之前的代码在词典过大时会崩溃，因此这被视为一个可回移植的缺陷修复，而不是新特性。", "title": "允许词典（thesaurus）包含超过 64K 个短语", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.19/#id-1.11.6.9.5", "source_hash": "8ddc2c7bf4eca3c0d8cf5f4dcdb2ab3a5cd9fcbded0b3891cab194911491cd8d", "section_path": ["变更"], "commit_groups": [], "identity_text": "Allow more than 64K phrases in a thesaurus dictionary (David Boutin) The previous coding could crash on an oversize dictionary, so this was deemed a back-patchable bug fix rather than a feature addition.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.19/changes/018", "db_id": "cbd68185635558db05c9a186c164dd54", "patch_ids": [], "statement_hash": "cddc90bbe8355fb1d2f6f42bc9c7be15e6551770a751e7afa7958447c89f9b90", "relations": [{"rule": 2, "type": "equivalent", "target": "c2458801a6ce67d19f1f06934babf983", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cddc90bbe8355fb1d2f6f42bc9c7be15e6551770a751e7afa7958447c89f9b90"}}, {"rule": 2, "type": "equivalent", "target": "dcd9cf15046d50a017d352f989a52ab0", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cddc90bbe8355fb1d2f6f42bc9c7be15e6551770a751e7afa7958447c89f9b90"}}, {"rule": 2, "type": "equivalent", "target": "e199b788726a407a7bf779038ca7a189", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cddc90bbe8355fb1d2f6f42bc9c7be15e6551770a751e7afa7958447c89f9b90"}}], "version": "9.0.19", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "c2458801a6ce67d19f1f06934babf983", "kind": "equivalent", "version": "9.3.6", "label": "9.3.6", "title": "允许词典（thesaurus）包含超过 64K 个短语", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cddc90bbe8355fb1d2f6f42bc9c7be15e6551770a751e7afa7958447c89f9b90"}, "url": "/docs/compare/?release=9.3.6#9.3.6-73efaff769c7f010", "source_url": "/docs/release/9.3.6/#id-1.11.6.24.5"}, {"db_id": "e199b788726a407a7bf779038ca7a189", "kind": "equivalent", "version": "9.2.10", "label": "9.2.10", "title": "允许词典（thesaurus）包含超过 64K 个短语", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cddc90bbe8355fb1d2f6f42bc9c7be15e6551770a751e7afa7958447c89f9b90"}, "url": "/docs/compare/?release=9.2.10#9.2.10-73efaff769c7f010", "source_url": "/docs/release/9.2.10/#id-1.11.6.19.5"}, {"db_id": "dcd9cf15046d50a017d352f989a52ab0", "kind": "equivalent", "version": "9.1.15", "label": "9.1.15", "title": "允许词典（thesaurus）包含超过 64K 个短语", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cddc90bbe8355fb1d2f6f42bc9c7be15e6551770a751e7afa7958447c89f9b90"}, "url": "/docs/compare/?release=9.1.15#9.1.15-73efaff769c7f010", "source_url": "/docs/release/9.1.15/#id-1.11.6.14.5"}]}, {"id": "9.0.19-0017727b7307a437", "cves": [], "html": "<p>修复<code>xpath()</code>中的命名空间处理（Ali Akbar）</p>\n<p>此前，如果命名空间声明附在输入<code>xml</code>值的祖先元素上而非被返回的特定元素上，<code>xpath()</code>调用产生的<code>xml</code>值就不会包含命名空间声明。我们将祖先声明传播下来，使结果在孤立考虑时也是正确的。</p>", "text": "修复xpath()中的命名空间处理（Ali Akbar） 此前，如果命名空间声明附在输入xml值的祖先元素上而非被返回的特定元素上，xpath()调用产生的xml值就不会包含命名空间声明。我们将祖先声明传播下来，使结果在孤立考虑时也是正确的。", "title": "修复xpath()中的命名空间处理", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.19/#id-1.11.6.9.5", "source_hash": "7ac603500dfc58d6564df309d6da3d444c956764581d16f3181a2aee86c5fcfb", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix namespace handling in xpath() (Ali Akbar) Previously, the xml value resulting from an xpath() call would not have namespace declarations if the namespace declarations were attached to an ancestor element in the input xml value, rather than to the specific element being returned. Propagate the ancestral declaration so that the result is correct when considered in isolation.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.19/changes/019", "db_id": "e02e7ae3730aeb589ddb39a776a2c0bd", "patch_ids": [], "statement_hash": "f1095981c5514e207fc476a0e5c243c61b068273f93b3c2c5f2b54b0a9a5cba4", "relations": [{"rule": 2, "type": "equivalent", "target": "4f5d5dacfc520d2589717a919c2fcd88", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f1095981c5514e207fc476a0e5c243c61b068273f93b3c2c5f2b54b0a9a5cba4"}}, {"rule": 2, "type": "equivalent", "target": "5fa736d394abe62f83fa3c9db7f944fe", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f1095981c5514e207fc476a0e5c243c61b068273f93b3c2c5f2b54b0a9a5cba4"}}, {"rule": 2, "type": "equivalent", "target": "6f9cd2c1e9b116425ea46c74fab68a9b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f1095981c5514e207fc476a0e5c243c61b068273f93b3c2c5f2b54b0a9a5cba4"}}, {"rule": 2, "type": "equivalent", "target": "757dff59c4efdb461302def83729216c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f1095981c5514e207fc476a0e5c243c61b068273f93b3c2c5f2b54b0a9a5cba4"}}], "version": "9.0.19", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "4f5d5dacfc520d2589717a919c2fcd88", "kind": "equivalent", "version": "9.4.1", "label": "9.4.1", "title": "修复xpath()中的命名空间处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f1095981c5514e207fc476a0e5c243c61b068273f93b3c2c5f2b54b0a9a5cba4"}, "url": "/docs/compare/?release=9.4.1#9.4.1-0017727b7307a437", "source_url": "/docs/release/9.4.1/#id-1.11.6.30.5"}, {"db_id": "6f9cd2c1e9b116425ea46c74fab68a9b", "kind": "equivalent", "version": "9.3.6", "label": "9.3.6", "title": "修复xpath()中的命名空间处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f1095981c5514e207fc476a0e5c243c61b068273f93b3c2c5f2b54b0a9a5cba4"}, "url": "/docs/compare/?release=9.3.6#9.3.6-0017727b7307a437", "source_url": "/docs/release/9.3.6/#id-1.11.6.24.5"}, {"db_id": "757dff59c4efdb461302def83729216c", "kind": "equivalent", "version": "9.2.10", "label": "9.2.10", "title": "修复xpath()中的命名空间处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f1095981c5514e207fc476a0e5c243c61b068273f93b3c2c5f2b54b0a9a5cba4"}, "url": "/docs/compare/?release=9.2.10#9.2.10-0017727b7307a437", "source_url": "/docs/release/9.2.10/#id-1.11.6.19.5"}, {"db_id": "5fa736d394abe62f83fa3c9db7f944fe", "kind": "equivalent", "version": "9.1.15", "label": "9.1.15", "title": "修复xpath()中的命名空间处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f1095981c5514e207fc476a0e5c243c61b068273f93b3c2c5f2b54b0a9a5cba4"}, "url": "/docs/compare/?release=9.1.15#9.1.15-0017727b7307a437", "source_url": "/docs/release/9.1.15/#id-1.11.6.14.5"}]}, {"id": "9.0.19-6dccd35019b5d86d", "cves": [], "html": "<p>修复嵌套 append 关系（例如 <code>UNION ALL</code> 子查询中的继承表）的规划器问题（Tom Lane）</p>", "text": "修复嵌套 append 关系（例如 UNION ALL 子查询中的继承表）的规划器问题（Tom Lane）", "title": "修复嵌套 append 关系（例如 UNION ALL 子查询中的继承表）的规划器问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.19/#id-1.11.6.9.5", "source_hash": "8156e38f210636e9025a8cc5c62a660e6c43dacd4d472fb8657c10fcf08670da", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix planner problems with nested append relations, such as inherited tables within UNION ALL subqueries (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.19/changes/020", "db_id": "6786a15e534b5f80e0a3500d1dc889ff", "patch_ids": [], "statement_hash": "7a72a900e52604a6102568e9f327b239341cc465b13a30da5ae99135a6e327fc", "relations": [{"rule": 2, "type": "equivalent", "target": "578b2c370af1a37ba126b76d6f8d3c2a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7a72a900e52604a6102568e9f327b239341cc465b13a30da5ae99135a6e327fc"}}, {"rule": 2, "type": "equivalent", "target": "d35026742dc052608b333f774e064754", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7a72a900e52604a6102568e9f327b239341cc465b13a30da5ae99135a6e327fc"}}, {"rule": 2, "type": "equivalent", "target": "e4a28641d3f94493cc6a014bf16ab7a4", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7a72a900e52604a6102568e9f327b239341cc465b13a30da5ae99135a6e327fc"}}], "version": "9.0.19", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "578b2c370af1a37ba126b76d6f8d3c2a", "kind": "equivalent", "version": "9.3.6", "label": "9.3.6", "title": "修复嵌套 append 关系（例如 UNION ALL 子查询中的继承表）的规划器问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7a72a900e52604a6102568e9f327b239341cc465b13a30da5ae99135a6e327fc"}, "url": "/docs/compare/?release=9.3.6#9.3.6-6dccd35019b5d86d", "source_url": "/docs/release/9.3.6/#id-1.11.6.24.5"}, {"db_id": "e4a28641d3f94493cc6a014bf16ab7a4", "kind": "equivalent", "version": "9.2.10", "label": "9.2.10", "title": "修复嵌套 append 关系（例如 UNION ALL 子查询中的继承表）的规划器问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7a72a900e52604a6102568e9f327b239341cc465b13a30da5ae99135a6e327fc"}, "url": "/docs/compare/?release=9.2.10#9.2.10-6dccd35019b5d86d", "source_url": "/docs/release/9.2.10/#id-1.11.6.19.5"}, {"db_id": "d35026742dc052608b333f774e064754", "kind": "equivalent", "version": "9.1.15", "label": "9.1.15", "title": "修复嵌套 append 关系（例如 UNION ALL 子查询中的继承表）的规划器问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7a72a900e52604a6102568e9f327b239341cc465b13a30da5ae99135a6e327fc"}, "url": "/docs/compare/?release=9.1.15#9.1.15-6dccd35019b5d86d", "source_url": "/docs/release/9.1.15/#id-1.11.6.14.5"}]}, {"id": "9.0.19-323ce84089ff3d42", "cves": [], "html": "<p>当 GiST 索引元组放不进一个页面时干净地报错，而不是陷入无限递归（Andrew Gierth）</p>", "text": "当 GiST 索引元组放不进一个页面时干净地报错，而不是陷入无限递归（Andrew Gierth）", "title": "当 GiST 索引元组放不进一个页面时干净地报错，而不是陷入无限递归", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.19/#id-1.11.6.9.5", "source_hash": "de8a5a9c086b08c080ccbfc16fea13314ece31f14ea1ada035bf4a1fb1dfc1fa", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fail cleanly when a GiST index tuple doesn't fit on a page, rather than going into infinite recursion (Andrew Gierth)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.19/changes/021", "db_id": "8ff81901ffd63447d66288aace0171c9", "patch_ids": [], "statement_hash": "6b59a6887fad265effd526836171db8562e60058729064be2f54fcd778904202", "relations": [{"rule": 2, "type": "equivalent", "target": "2a89c2a630bfe3801c6decd95a8602bd", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6b59a6887fad265effd526836171db8562e60058729064be2f54fcd778904202"}}, {"rule": 2, "type": "equivalent", "target": "a2c1f03fa4e2ce0cae9abf5f3f8aa6e1", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6b59a6887fad265effd526836171db8562e60058729064be2f54fcd778904202"}}, {"rule": 2, "type": "equivalent", "target": "c037035d6e4e6a7175e2e60b010a2a9a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6b59a6887fad265effd526836171db8562e60058729064be2f54fcd778904202"}}], "version": "9.0.19", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "a2c1f03fa4e2ce0cae9abf5f3f8aa6e1", "kind": "equivalent", "version": "9.3.6", "label": "9.3.6", "title": "当 GiST 索引元组放不进一个页面时干净地报错，而不是陷入无限递归", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6b59a6887fad265effd526836171db8562e60058729064be2f54fcd778904202"}, "url": "/docs/compare/?release=9.3.6#9.3.6-323ce84089ff3d42", "source_url": "/docs/release/9.3.6/#id-1.11.6.24.5"}, {"db_id": "c037035d6e4e6a7175e2e60b010a2a9a", "kind": "equivalent", "version": "9.2.10", "label": "9.2.10", "title": "当 GiST 索引元组放不进一个页面时干净地报错，而不是陷入无限递归", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6b59a6887fad265effd526836171db8562e60058729064be2f54fcd778904202"}, "url": "/docs/compare/?release=9.2.10#9.2.10-323ce84089ff3d42", "source_url": "/docs/release/9.2.10/#id-1.11.6.19.5"}, {"db_id": "2a89c2a630bfe3801c6decd95a8602bd", "kind": "equivalent", "version": "9.1.15", "label": "9.1.15", "title": "当 GiST 索引元组放不进一个页面时干净地报错，而不是陷入无限递归", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6b59a6887fad265effd526836171db8562e60058729064be2f54fcd778904202"}, "url": "/docs/compare/?release=9.1.15#9.1.15-323ce84089ff3d42", "source_url": "/docs/release/9.1.15/#id-1.11.6.14.5"}]}, {"id": "9.0.19-b0f7f57a000a8576", "cves": [], "html": "<p>把设有逐表 <code>cost_limit</code> 和/或 <code>cost_delay</code> 设置的表排除在自动清理的全局代价平衡规则之外（Álvaro Herrera）</p>\n<p>先前的行为实质上忽略了这些逐表设置，这并非本意。现在，拥有这类设置的表将按照这些设置进行清理，独立于其他自动清理工作进程的状况。这可能导致比以前更重的总 I/O 负载，因此应当重新审视这类设置是否合理。</p>", "text": "把设有逐表 cost_limit 和/或 cost_delay 设置的表排除在自动清理的全局代价平衡规则之外（Álvaro Herrera） 先前的行为实质上忽略了这些逐表设置，这并非本意。现在，拥有这类设置的表将按照这些设置进行清理，独立于其他自动清理工作进程的状况。这可能导致比以前更重的总 I/O 负载，因此应当重新审视这类设置是否合理。", "title": "把设有逐表 cost_limit 和/或 cost_delay 设置的表排除在自动清理的全局代价平衡规则之外", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.19/#id-1.11.6.9.5", "source_hash": "160140f905ffb989e5b71071d037d891413a45ae4c137f99fdb42585097b48cf", "section_path": ["变更"], "commit_groups": [], "identity_text": "Exempt tables that have per-table cost_limit and/or cost_delay settings from autovacuum's global cost balancing rules (Álvaro Herrera) The previous behavior resulted in basically ignoring these per-table settings, which was unintended. Now, a table having such settings will be vacuumed using those settings, independently of what is going on in other autovacuum workers. This may result in heavier total I/O load than before, so such settings should be re-examined for sanity.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.19/changes/022", "db_id": "752436ccd6f81cb8be968c3b7e60ac30", "patch_ids": [], "statement_hash": "05ab5ca671c5fa63a75076111bedf822445ddefbfb6dc509f760fded9dc027dd", "relations": [{"rule": 2, "type": "equivalent", "target": "56d5db1144cfc063b85f91bc6a0d7bf5", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "05ab5ca671c5fa63a75076111bedf822445ddefbfb6dc509f760fded9dc027dd"}}, {"rule": 2, "type": "equivalent", "target": "6fa7ebcd4913be2aaf2b370d81141ccd", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "05ab5ca671c5fa63a75076111bedf822445ddefbfb6dc509f760fded9dc027dd"}}, {"rule": 2, "type": "equivalent", "target": "ecfffbd33f49c11764c0f639e106a243", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "05ab5ca671c5fa63a75076111bedf822445ddefbfb6dc509f760fded9dc027dd"}}], "version": "9.0.19", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "6fa7ebcd4913be2aaf2b370d81141ccd", "kind": "equivalent", "version": "9.3.6", "label": "9.3.6", "title": "把设有逐表 cost_limit 和/或 cost_delay 设置的表排除在自动清理的全局代价平衡规则之外", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "05ab5ca671c5fa63a75076111bedf822445ddefbfb6dc509f760fded9dc027dd"}, "url": "/docs/compare/?release=9.3.6#9.3.6-b0f7f57a000a8576", "source_url": "/docs/release/9.3.6/#id-1.11.6.24.5"}, {"db_id": "ecfffbd33f49c11764c0f639e106a243", "kind": "equivalent", "version": "9.2.10", "label": "9.2.10", "title": "把设有逐表 cost_limit 和/或 cost_delay 设置的表排除在自动清理的全局代价平衡规则之外", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "05ab5ca671c5fa63a75076111bedf822445ddefbfb6dc509f760fded9dc027dd"}, "url": "/docs/compare/?release=9.2.10#9.2.10-b0f7f57a000a8576", "source_url": "/docs/release/9.2.10/#id-1.11.6.19.5"}, {"db_id": "56d5db1144cfc063b85f91bc6a0d7bf5", "kind": "equivalent", "version": "9.1.15", "label": "9.1.15", "title": "把设有逐表 cost_limit 和/或 cost_delay 设置的表排除在自动清理的全局代价平衡规则之外", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "05ab5ca671c5fa63a75076111bedf822445ddefbfb6dc509f760fded9dc027dd"}, "url": "/docs/compare/?release=9.1.15#9.1.15-b0f7f57a000a8576", "source_url": "/docs/release/9.1.15/#id-1.11.6.14.5"}]}, {"id": "9.0.19-d1130ea15074dac2", "cves": [], "html": "<p>避免在自动清理名义上被关闭时仍然进行全面的自动清理（Tom Lane）</p>\n<p>即使自动清理名义上被关闭，我们仍会启动自动清理工作进程，去清理有 XID 回卷风险的表。然而，这样的工作进程随后会继续清理目标数据库中所有满足常规自动清理阈值的表。这往好里说是相当出乎意料，往坏里说会延误对回卷威胁的响应。现已修复：如果自动清理被关闭，工作进程<span><em>只</em></span>执行防回卷清理，不做任何其他工作。</p>", "text": "避免在自动清理名义上被关闭时仍然进行全面的自动清理（Tom Lane） 即使自动清理名义上被关闭，我们仍会启动自动清理工作进程，去清理有 XID 回卷风险的表。然而，这样的工作进程随后会继续清理目标数据库中所有满足常规自动清理阈值的表。这往好里说是相当出乎意料，往坏里说会延误对回卷威胁的响应。现已修复：如果自动清理被关闭，工作进程只执行防回卷清理，不做任何其他工作。", "title": "避免在自动清理名义上被关闭时仍然进行全面的自动清理", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.19/#id-1.11.6.9.5", "source_hash": "97fa61d66728343e4c897c17eb67417cb0321f322b0e52ee10c332b3b652f985", "section_path": ["变更"], "commit_groups": [], "identity_text": "Avoid wholesale autovacuuming when autovacuum is nominally off (Tom Lane) Even when autovacuum is nominally off, we will still launch autovacuum worker processes to vacuum tables that are at risk of XID wraparound. However, such a worker process then proceeded to vacuum all tables in the target database, if they met the usual thresholds for autovacuuming. This is at best pretty unexpected; at worst it delays response to the wraparound threat. Fix it so that if autovacuum is turned off, workers only do anti-wraparound vacuums and not any other work.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.19/changes/023", "db_id": "82cf724f9159190d006bc1596327a197", "patch_ids": [], "statement_hash": "4f6a0932ed1423c95a0f69c862e00f9185b4444c11eb989bd7686cab28244de0", "relations": [{"rule": 2, "type": "equivalent", "target": "4021bf65a4b3bf1ea4f6bfdb6dc900e9", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4f6a0932ed1423c95a0f69c862e00f9185b4444c11eb989bd7686cab28244de0"}}, {"rule": 2, "type": "equivalent", "target": "aee4d00422aeaf5bd89e855f09b8a5d2", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4f6a0932ed1423c95a0f69c862e00f9185b4444c11eb989bd7686cab28244de0"}}, {"rule": 2, "type": "equivalent", "target": "c851c1ab8a2dc9e8932b5f25e7417219", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4f6a0932ed1423c95a0f69c862e00f9185b4444c11eb989bd7686cab28244de0"}}], "version": "9.0.19", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "c851c1ab8a2dc9e8932b5f25e7417219", "kind": "equivalent", "version": "9.3.6", "label": "9.3.6", "title": "避免在自动清理名义上被关闭时仍然进行全面的自动清理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4f6a0932ed1423c95a0f69c862e00f9185b4444c11eb989bd7686cab28244de0"}, "url": "/docs/compare/?release=9.3.6#9.3.6-d1130ea15074dac2", "source_url": "/docs/release/9.3.6/#id-1.11.6.24.5"}, {"db_id": "aee4d00422aeaf5bd89e855f09b8a5d2", "kind": "equivalent", "version": "9.2.10", "label": "9.2.10", "title": "避免在自动清理名义上被关闭时仍然进行全面的自动清理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4f6a0932ed1423c95a0f69c862e00f9185b4444c11eb989bd7686cab28244de0"}, "url": "/docs/compare/?release=9.2.10#9.2.10-d1130ea15074dac2", "source_url": "/docs/release/9.2.10/#id-1.11.6.19.5"}, {"db_id": "4021bf65a4b3bf1ea4f6bfdb6dc900e9", "kind": "equivalent", "version": "9.1.15", "label": "9.1.15", "title": "避免在自动清理名义上被关闭时仍然进行全面的自动清理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4f6a0932ed1423c95a0f69c862e00f9185b4444c11eb989bd7686cab28244de0"}, "url": "/docs/compare/?release=9.1.15#9.1.15-d1130ea15074dac2", "source_url": "/docs/release/9.1.15/#id-1.11.6.14.5"}]}, {"id": "9.0.19-ccf4e5cf65943d4b", "cves": [], "html": "<p>修复热备查询与重放整页镜像之间的竞态条件（Heikki Linnakangas）</p>\n<p>这一失误可能导致热备中正在执行的查询出现瞬时错误。</p>", "text": "修复热备查询与重放整页镜像之间的竞态条件（Heikki Linnakangas） 这一失误可能导致热备中正在执行的查询出现瞬时错误。", "title": "修复热备查询与重放整页镜像之间的竞态条件", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.19/#id-1.11.6.9.5", "source_hash": "ff75b1bc136cc42321b14804a857bf50e9029ec861166b372ad7e18e2d360db9", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix race condition between hot standby queries and replaying a full-page image (Heikki Linnakangas) This mistake could result in transient errors in queries being executed in hot standby.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.19/changes/024", "db_id": "4b5dfc49ec998d2fc465eb58c75d725e", "patch_ids": [], "statement_hash": "efc7aa39025dfeb03323743ae1e06ffaf163edec3cad5d324d6ffd19caf31593", "relations": [{"rule": 2, "type": "equivalent", "target": "1bd1bad09b77ea48409873a7eeea80d1", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "efc7aa39025dfeb03323743ae1e06ffaf163edec3cad5d324d6ffd19caf31593"}}, {"rule": 2, "type": "equivalent", "target": "4b29a174aae1beeef99fc80afd93f64c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "efc7aa39025dfeb03323743ae1e06ffaf163edec3cad5d324d6ffd19caf31593"}}, {"rule": 2, "type": "equivalent", "target": "5ea44d80df5105bfd05afc6f9c39e246", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "efc7aa39025dfeb03323743ae1e06ffaf163edec3cad5d324d6ffd19caf31593"}}], "version": "9.0.19", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "1bd1bad09b77ea48409873a7eeea80d1", "kind": "equivalent", "version": "9.3.6", "label": "9.3.6", "title": "修复热备查询与重放整页镜像之间的竞态条件", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "efc7aa39025dfeb03323743ae1e06ffaf163edec3cad5d324d6ffd19caf31593"}, "url": "/docs/compare/?release=9.3.6#9.3.6-ccf4e5cf65943d4b", "source_url": "/docs/release/9.3.6/#id-1.11.6.24.5"}, {"db_id": "4b29a174aae1beeef99fc80afd93f64c", "kind": "equivalent", "version": "9.2.10", "label": "9.2.10", "title": "修复热备查询与重放整页镜像之间的竞态条件", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "efc7aa39025dfeb03323743ae1e06ffaf163edec3cad5d324d6ffd19caf31593"}, "url": "/docs/compare/?release=9.2.10#9.2.10-ccf4e5cf65943d4b", "source_url": "/docs/release/9.2.10/#id-1.11.6.19.5"}, {"db_id": "5ea44d80df5105bfd05afc6f9c39e246", "kind": "equivalent", "version": "9.1.15", "label": "9.1.15", "title": "修复热备查询与重放整页镜像之间的竞态条件", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "efc7aa39025dfeb03323743ae1e06ffaf163edec3cad5d324d6ffd19caf31593"}, "url": "/docs/compare/?release=9.1.15#9.1.15-ccf4e5cf65943d4b", "source_url": "/docs/release/9.1.15/#id-1.11.6.14.5"}]}, {"id": "9.0.19-b44a747ebd454cc6", "cves": [], "html": "<p>修复若干恢复逻辑不当忽略 <code>COMMIT/ABORT PREPARED</code> WAL 记录的情况（Heikki Linnakangas）</p>\n<p>最值得注意的疏漏是 <code>recovery_min_apply_delay</code> 未能延迟一次两阶段提交的应用。</p>", "text": "修复若干恢复逻辑不当忽略 COMMIT/ABORT PREPARED WAL 记录的情况（Heikki Linnakangas） 最值得注意的疏漏是 recovery_min_apply_delay 未能延迟一次两阶段提交的应用。", "title": "修复若干恢复逻辑不当忽略 COMMIT/ABORT PREPARED WAL 记录的情况", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.19/#id-1.11.6.9.5", "source_hash": "0f1453b30ddda8d538d9ff6dd0ffad72443095bd7ba5f3f24d1ff67630d9642f", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix several cases where recovery logic improperly ignored WAL records for COMMIT/ABORT PREPARED (Heikki Linnakangas) The most notable oversight was that recovery_min_apply_delay failed to delay application of a two-phase commit.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.19/changes/025", "db_id": "7733d06f0af58c82840b00a770303d72", "patch_ids": [], "statement_hash": "fcc238ad32bcdb7b9ee2a01ff8fb478f1fc0627c8b71eeb02d555429acf036f9", "relations": [], "version": "9.0.19", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.19-99aa1bdc6e571fca", "cves": [], "html": "<p>避免为时间线历史文件创建不必要的 <code>.ready</code> 标记文件（Fujii Masao）</p>", "text": "避免为时间线历史文件创建不必要的 .ready 标记文件（Fujii Masao）", "title": "避免为时间线历史文件创建不必要的 .ready 标记文件", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.19/#id-1.11.6.9.5", "source_hash": "2da8e8677e411b584cbc684e4318e194875efeac1f55f6dc1a0ada95eec759b7", "section_path": ["变更"], "commit_groups": [], "identity_text": "Avoid creating unnecessary .ready marker files for timeline history files (Fujii Masao)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.19/changes/026", "db_id": "9f6159c73a83f3abd22d7549db8622fd", "patch_ids": [], "statement_hash": "05b47e6f45e602e3981b081d13456b0b2f12eda9da59db4f7918011a600a4e73", "relations": [{"rule": 2, "type": "equivalent", "target": "5626ddd890f9da57afc15adf99201eb6", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "05b47e6f45e602e3981b081d13456b0b2f12eda9da59db4f7918011a600a4e73"}}, {"rule": 2, "type": "equivalent", "target": "5dda04433a1fdbb90a67624a8cf43bb8", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "05b47e6f45e602e3981b081d13456b0b2f12eda9da59db4f7918011a600a4e73"}}, {"rule": 2, "type": "equivalent", "target": "d058ab05f49b8043e2f2c69c112629db", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "05b47e6f45e602e3981b081d13456b0b2f12eda9da59db4f7918011a600a4e73"}}], "version": "9.0.19", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "d058ab05f49b8043e2f2c69c112629db", "kind": "equivalent", "version": "9.3.6", "label": "9.3.6", "title": "避免为时间线历史文件创建不必要的 .ready 标记文件", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "05b47e6f45e602e3981b081d13456b0b2f12eda9da59db4f7918011a600a4e73"}, "url": "/docs/compare/?release=9.3.6#9.3.6-99aa1bdc6e571fca", "source_url": "/docs/release/9.3.6/#id-1.11.6.24.5"}, {"db_id": "5626ddd890f9da57afc15adf99201eb6", "kind": "equivalent", "version": "9.2.10", "label": "9.2.10", "title": "避免为时间线历史文件创建不必要的 .ready 标记文件", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "05b47e6f45e602e3981b081d13456b0b2f12eda9da59db4f7918011a600a4e73"}, "url": "/docs/compare/?release=9.2.10#9.2.10-99aa1bdc6e571fca", "source_url": "/docs/release/9.2.10/#id-1.11.6.19.5"}, {"db_id": "5dda04433a1fdbb90a67624a8cf43bb8", "kind": "equivalent", "version": "9.1.15", "label": "9.1.15", "title": "避免为时间线历史文件创建不必要的 .ready 标记文件", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "05b47e6f45e602e3981b081d13456b0b2f12eda9da59db4f7918011a600a4e73"}, "url": "/docs/compare/?release=9.1.15#9.1.15-99aa1bdc6e571fca", "source_url": "/docs/release/9.1.15/#id-1.11.6.14.5"}]}, {"id": "9.0.19-11b141fe12caa562", "cves": [], "html": "<p>修复当使用空的预备语句且 <code>log_statement</code> 设置为 <code>mod</code> 或 <code>ddl</code> 时可能出现的空指针解引用（Fujii Masao）</p>", "text": "修复当使用空的预备语句且 log_statement 设置为 mod 或 ddl 时可能出现的空指针解引用（Fujii Masao）", "title": "修复当使用空的预备语句且 log_statement 设置为 mod 或 ddl 时可能出现的空指针解引用", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.19/#id-1.11.6.9.5", "source_hash": "2d7a0be309fb5f7b2b9051f9311d7fd205573ec8d8830224f67429c31bbb465d", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix possible null pointer dereference when an empty prepared statement is used and the log_statement setting is mod or ddl (Fujii Masao)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.19/changes/027", "db_id": "aee5363880e440aa1fae90fda8e97ef5", "patch_ids": [], "statement_hash": "05c556fc9b663c22641cad8eac80810450ad172e09f19a15867bf3c09b3b3509", "relations": [{"rule": 2, "type": "equivalent", "target": "43a4b956b83b1f3782c8fb2999348d92", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "05c556fc9b663c22641cad8eac80810450ad172e09f19a15867bf3c09b3b3509"}}, {"rule": 2, "type": "equivalent", "target": "b2864447ef6fc392d6814fff230bd635", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "05c556fc9b663c22641cad8eac80810450ad172e09f19a15867bf3c09b3b3509"}}, {"rule": 2, "type": "equivalent", "target": "c94832afdf3c4a7eeb0b3f20b4963e53", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "05c556fc9b663c22641cad8eac80810450ad172e09f19a15867bf3c09b3b3509"}}], "version": "9.0.19", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "c94832afdf3c4a7eeb0b3f20b4963e53", "kind": "equivalent", "version": "9.3.6", "label": "9.3.6", "title": "修复当使用空的预备语句且 log_statement 设置为 mod 或 ddl 时可能出现的空指针解引用", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "05c556fc9b663c22641cad8eac80810450ad172e09f19a15867bf3c09b3b3509"}, "url": "/docs/compare/?release=9.3.6#9.3.6-11b141fe12caa562", "source_url": "/docs/release/9.3.6/#id-1.11.6.24.5"}, {"db_id": "b2864447ef6fc392d6814fff230bd635", "kind": "equivalent", "version": "9.2.10", "label": "9.2.10", "title": "修复当使用空的预备语句且 log_statement 设置为 mod 或 ddl 时可能出现的空指针解引用", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "05c556fc9b663c22641cad8eac80810450ad172e09f19a15867bf3c09b3b3509"}, "url": "/docs/compare/?release=9.2.10#9.2.10-11b141fe12caa562", "source_url": "/docs/release/9.2.10/#id-1.11.6.19.5"}, {"db_id": "43a4b956b83b1f3782c8fb2999348d92", "kind": "equivalent", "version": "9.1.15", "label": "9.1.15", "title": "修复当使用空的预备语句且 log_statement 设置为 mod 或 ddl 时可能出现的空指针解引用", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "05c556fc9b663c22641cad8eac80810450ad172e09f19a15867bf3c09b3b3509"}, "url": "/docs/compare/?release=9.1.15#9.1.15-11b141fe12caa562", "source_url": "/docs/release/9.1.15/#id-1.11.6.14.5"}]}, {"id": "9.0.19-973a1a096e7244ed", "cves": [], "html": "<p>将 <span>“<span>pgstat wait timeout</span>”</span> 警告消息改为 LOG 级别，并重新措辞使其更易理解（Tom Lane）</p>\n<p>这条消息最初被认为基本属于不可能发生的情况，但它在我们较慢的 buildfarm 成员上出现得足够频繁，成了干扰。现已将其降为 LOG 级别，并在措辞上多下了一点功夫：现在它的内容为 <span>“<span>using stale statistics instead of current ones because stats collector is not responding</span>”</span>。</p>", "text": "将 “pgstat wait timeout” 警告消息改为 LOG 级别，并重新措辞使其更易理解（Tom Lane） 这条消息最初被认为基本属于不可能发生的情况，但它在我们较慢的 buildfarm 成员上出现得足够频繁，成了干扰。现已将其降为 LOG 级别，并在措辞上多下了一点功夫：现在它的内容为 “using stale statistics instead of current ones because stats collector is not responding”。", "title": "将 “pgstat wait timeout” 警告消息改为 LOG 级别，并重新措辞使其更易理解", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.19/#id-1.11.6.9.5", "source_hash": "ac8bc74e7f55b25d3daa5736d86a507fab2aa80715cbb1e8ed4017359881f17d", "section_path": ["变更"], "commit_groups": [], "identity_text": "Change pgstat wait timeout warning message to be LOG level, and rephrase it to be more understandable (Tom Lane) This message was originally thought to be essentially a can't-happen case, but it occurs often enough on our slower buildfarm members to be a nuisance. Reduce it to LOG level, and expend a bit more effort on the wording: it now reads using stale statistics instead of current ones because stats collector is not responding.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.19/changes/028", "db_id": "62eb1e3aaeb610d31969b8496b7dd78a", "patch_ids": [], "statement_hash": "be09e2d0ef78836a7fcb6aa09f4095f35050152d08f7e9bc5a4060e5ae30b2cf", "relations": [{"rule": 2, "type": "equivalent", "target": "0474cd50c0922f5a041997400d962d1e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "be09e2d0ef78836a7fcb6aa09f4095f35050152d08f7e9bc5a4060e5ae30b2cf"}}, {"rule": 2, "type": "equivalent", "target": "0b651e33c4d526e69e239435ca24fcf9", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "be09e2d0ef78836a7fcb6aa09f4095f35050152d08f7e9bc5a4060e5ae30b2cf"}}, {"rule": 2, "type": "equivalent", "target": "35162f08ef3a72d38987f0163e12f3e5", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "be09e2d0ef78836a7fcb6aa09f4095f35050152d08f7e9bc5a4060e5ae30b2cf"}}, {"rule": 2, "type": "equivalent", "target": "6eab481f0c4e8b30bf398f7471b58468", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "be09e2d0ef78836a7fcb6aa09f4095f35050152d08f7e9bc5a4060e5ae30b2cf"}}], "version": "9.0.19", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "0474cd50c0922f5a041997400d962d1e", "kind": "equivalent", "version": "9.4.1", "label": "9.4.1", "title": "将 “pgstat wait timeout” 警告消息改为 LOG 级别，并重新措辞使其更易理解", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "be09e2d0ef78836a7fcb6aa09f4095f35050152d08f7e9bc5a4060e5ae30b2cf"}, "url": "/docs/compare/?release=9.4.1#9.4.1-973a1a096e7244ed", "source_url": "/docs/release/9.4.1/#id-1.11.6.30.5"}, {"db_id": "0b651e33c4d526e69e239435ca24fcf9", "kind": "equivalent", "version": "9.3.6", "label": "9.3.6", "title": "将 “pgstat wait timeout” 警告消息改为 LOG 级别，并重新措辞使其更易理解", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "be09e2d0ef78836a7fcb6aa09f4095f35050152d08f7e9bc5a4060e5ae30b2cf"}, "url": "/docs/compare/?release=9.3.6#9.3.6-973a1a096e7244ed", "source_url": "/docs/release/9.3.6/#id-1.11.6.24.5"}, {"db_id": "6eab481f0c4e8b30bf398f7471b58468", "kind": "equivalent", "version": "9.2.10", "label": "9.2.10", "title": "将“pgstat wait timeout”警告消息改为 LOG 级别，并重新措辞使其更易理解", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "be09e2d0ef78836a7fcb6aa09f4095f35050152d08f7e9bc5a4060e5ae30b2cf"}, "url": "/docs/compare/?release=9.2.10#9.2.10-e24a6e1f6f169995", "source_url": "/docs/release/9.2.10/#id-1.11.6.19.5"}, {"db_id": "35162f08ef3a72d38987f0163e12f3e5", "kind": "equivalent", "version": "9.1.15", "label": "9.1.15", "title": "将 “pgstat wait timeout” 警告消息改为 LOG 级别，并重新措辞使其更易理解", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "be09e2d0ef78836a7fcb6aa09f4095f35050152d08f7e9bc5a4060e5ae30b2cf"}, "url": "/docs/compare/?release=9.1.15#9.1.15-973a1a096e7244ed", "source_url": "/docs/release/9.1.15/#id-1.11.6.14.5"}]}, {"id": "9.0.19-c9bca5fd9c2c817f", "cves": [], "html": "<p>修复 SPARC 自旋锁实现，确保当 CPU 以非 TSO 一致性模式运行时（如某些非 Solaris 内核所做的那样）其正确性（Andres Freund）</p>", "text": "修复 SPARC 自旋锁实现，确保当 CPU 以非 TSO 一致性模式运行时（如某些非 Solaris 内核所做的那样）其正确性（Andres Freund）", "title": "修复 SPARC 自旋锁实现，确保当 CPU 以非 TSO 一致性模式运行时（如某些非 Solaris 内核所做的那样）其正确性", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.19/#id-1.11.6.9.5", "source_hash": "2d92a2b21b738d8c0219817ba530673c22c9c1168b95b0cab4d2793775466bd4", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix SPARC spinlock implementation to ensure correctness if the CPU is being run in a non-TSO coherency mode, as some non-Solaris kernels do (Andres Freund)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.19/changes/029", "db_id": "d5b8d25a68184225b1d75e10b77d2a0f", "patch_ids": [], "statement_hash": "ff3d1bf2e727091664f6bf0db072a5c7550fe8a243ada6ef095494b74968508a", "relations": [{"rule": 2, "type": "equivalent", "target": "319eef87dc40a316cd10ec86f5d885c3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ff3d1bf2e727091664f6bf0db072a5c7550fe8a243ada6ef095494b74968508a"}}, {"rule": 2, "type": "equivalent", "target": "c353e481398d01be81553c69bf39bfdd", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ff3d1bf2e727091664f6bf0db072a5c7550fe8a243ada6ef095494b74968508a"}}, {"rule": 2, "type": "equivalent", "target": "d10959407e154f7adf545eadb49401bd", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ff3d1bf2e727091664f6bf0db072a5c7550fe8a243ada6ef095494b74968508a"}}], "version": "9.0.19", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "319eef87dc40a316cd10ec86f5d885c3", "kind": "equivalent", "version": "9.3.6", "label": "9.3.6", "title": "修复 SPARC 自旋锁实现，确保当 CPU 以非 TSO 一致性模式运行时（如某些非 Solaris 内核所做的那样）其正确性", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ff3d1bf2e727091664f6bf0db072a5c7550fe8a243ada6ef095494b74968508a"}, "url": "/docs/compare/?release=9.3.6#9.3.6-c9bca5fd9c2c817f", "source_url": "/docs/release/9.3.6/#id-1.11.6.24.5"}, {"db_id": "d10959407e154f7adf545eadb49401bd", "kind": "equivalent", "version": "9.2.10", "label": "9.2.10", "title": "修复 SPARC 自旋锁实现，确保当 CPU 以非 TSO 一致性模式运行时（如某些非 Solaris 内核所做的那样）其正确性", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ff3d1bf2e727091664f6bf0db072a5c7550fe8a243ada6ef095494b74968508a"}, "url": "/docs/compare/?release=9.2.10#9.2.10-c9bca5fd9c2c817f", "source_url": "/docs/release/9.2.10/#id-1.11.6.19.5"}, {"db_id": "c353e481398d01be81553c69bf39bfdd", "kind": "equivalent", "version": "9.1.15", "label": "9.1.15", "title": "修复 SPARC 自旋锁实现，确保当 CPU 以非 TSO 一致性模式运行时（如某些非 Solaris 内核所做的那样）其正确性", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ff3d1bf2e727091664f6bf0db072a5c7550fe8a243ada6ef095494b74968508a"}, "url": "/docs/compare/?release=9.1.15#9.1.15-c9bca5fd9c2c817f", "source_url": "/docs/release/9.1.15/#id-1.11.6.14.5"}]}, {"id": "9.0.19-6121348ee91fbb51", "cves": [], "html": "<p>警告 OS X 的 <code>setlocale()</code> 在 postmaster 内启动多余线程的情况（Noah Misch）</p>", "text": "警告 OS X 的 setlocale() 在 postmaster 内启动多余线程的情况（Noah Misch）", "title": "警告 OS X 的 setlocale() 在 postmaster 内启动多余线程的情况", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.19/#id-1.11.6.9.5", "source_hash": "9dfefb8619ecc349b0f7d316f27ca074f7983e9afa49ad5220b5c63db3a98ebe", "section_path": ["变更"], "commit_groups": [], "identity_text": "Warn if OS X's setlocale() starts an unwanted extra thread inside the postmaster (Noah Misch)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.19/changes/030", "db_id": "50b397d1cd8f2766f8b981bc551207d3", "patch_ids": [], "statement_hash": "a42274d9e8e85516040da41a9a408733ea801d30ee7519c2860327a8cbe8e43c", "relations": [], "version": "9.0.19", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.19-9695d3d49e5eb963", "cves": [], "html": "<p>修复 <code>PQconnectdbParams()</code> 中重复 <code>dbname</code> 参数的处理（Alex Shulgin）</p>\n<p>如果第一个 <code>dbname</code> 出现处包含要展开的连接串或 URI，就会出现意外行为。</p>", "text": "修复 PQconnectdbParams() 中重复 dbname 参数的处理（Alex Shulgin） 如果第一个 dbname 出现处包含要展开的连接串或 URI，就会出现意外行为。", "title": "修复 PQconnectdbParams() 中重复 dbname 参数的处理", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.19/#id-1.11.6.9.5", "source_hash": "22df625bd9028a602c1d1f3b3de6d6828f9de7afe3906f333a60e8164af2c980", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix processing of repeated dbname parameters in PQconnectdbParams() (Alex Shulgin) Unexpected behavior ensued if the first occurrence of dbname contained a connection string or URI to be expanded.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.19/changes/031", "db_id": "5535075e605e8c0c19c566809fa3e5c8", "patch_ids": [], "statement_hash": "7ceba4bea8d0240359e4d29bc7b986d4a07d7763a8674fb1270a10dc82ef3a67", "relations": [{"rule": 2, "type": "equivalent", "target": "1ec13702362288c8cb7b3540e0deb270", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7ceba4bea8d0240359e4d29bc7b986d4a07d7763a8674fb1270a10dc82ef3a67"}}, {"rule": 2, "type": "equivalent", "target": "36c1a4788f4f14522706fd9200223785", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7ceba4bea8d0240359e4d29bc7b986d4a07d7763a8674fb1270a10dc82ef3a67"}}, {"rule": 2, "type": "equivalent", "target": "429fd1863dbd274ded147132bf138eb0", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7ceba4bea8d0240359e4d29bc7b986d4a07d7763a8674fb1270a10dc82ef3a67"}}], "version": "9.0.19", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "429fd1863dbd274ded147132bf138eb0", "kind": "equivalent", "version": "9.3.6", "label": "9.3.6", "title": "修复 PQconnectdbParams() 中重复 dbname 参数的处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7ceba4bea8d0240359e4d29bc7b986d4a07d7763a8674fb1270a10dc82ef3a67"}, "url": "/docs/compare/?release=9.3.6#9.3.6-9695d3d49e5eb963", "source_url": "/docs/release/9.3.6/#id-1.11.6.24.5"}, {"db_id": "1ec13702362288c8cb7b3540e0deb270", "kind": "equivalent", "version": "9.2.10", "label": "9.2.10", "title": "修复 PQconnectdbParams() 中重复 dbname 参数的处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7ceba4bea8d0240359e4d29bc7b986d4a07d7763a8674fb1270a10dc82ef3a67"}, "url": "/docs/compare/?release=9.2.10#9.2.10-9695d3d49e5eb963", "source_url": "/docs/release/9.2.10/#id-1.11.6.19.5"}, {"db_id": "36c1a4788f4f14522706fd9200223785", "kind": "equivalent", "version": "9.1.15", "label": "9.1.15", "title": "修复 PQconnectdbParams() 中重复 dbname 参数的处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7ceba4bea8d0240359e4d29bc7b986d4a07d7763a8674fb1270a10dc82ef3a67"}, "url": "/docs/compare/?release=9.1.15#9.1.15-9695d3d49e5eb963", "source_url": "/docs/release/9.1.15/#id-1.11.6.14.5"}]}, {"id": "9.0.19-aebb5023702b7acf", "cves": [], "html": "<p>确保 <span>libpq</span> 在遇到意外的套接字 EOF 时报告合适的错误消息（Marko Tiikkaja、Tom Lane）</p>\n<p>取决于内核行为，当服务器意外关闭套接字时，<span>libpq</span> 可能返回空的错误字符串而不是有用的信息。</p>", "text": "确保 libpq 在遇到意外的套接字 EOF 时报告合适的错误消息（Marko Tiikkaja、Tom Lane） 取决于内核行为，当服务器意外关闭套接字时，libpq 可能返回空的错误字符串而不是有用的信息。", "title": "确保 libpq 在遇到意外的套接字 EOF 时报告合适的错误消息", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.19/#id-1.11.6.9.5", "source_hash": "8ce9a73ce34980fbc611fa3388fc103d48d4fa4c262d9b046e82a3c436ff64d8", "section_path": ["变更"], "commit_groups": [], "identity_text": "Ensure that libpq reports a suitable error message on unexpected socket EOF (Marko Tiikkaja, Tom Lane) Depending on kernel behavior, libpq might return an empty error string rather than something useful when the server unexpectedly closed the socket.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.19/changes/032", "db_id": "bc1eee2995ef4bc97ef72bd0bb83f7d9", "patch_ids": [], "statement_hash": "fd98673f71e6e40941059ed0738c306eb878019708436b45c80c4e60121809f2", "relations": [{"rule": 2, "type": "equivalent", "target": "69925bd3fcd0c10bffa088f121766ee3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fd98673f71e6e40941059ed0738c306eb878019708436b45c80c4e60121809f2"}}, {"rule": 2, "type": "equivalent", "target": "905c10a90927728d9e7a58be115b5bda", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fd98673f71e6e40941059ed0738c306eb878019708436b45c80c4e60121809f2"}}, {"rule": 2, "type": "equivalent", "target": "931a577f6233c9dfa0b9f4a5b46f450e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fd98673f71e6e40941059ed0738c306eb878019708436b45c80c4e60121809f2"}}], "version": "9.0.19", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "69925bd3fcd0c10bffa088f121766ee3", "kind": "equivalent", "version": "9.3.6", "label": "9.3.6", "title": "确保 libpq 在遇到意外的套接字 EOF 时报告合适的错误消息", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fd98673f71e6e40941059ed0738c306eb878019708436b45c80c4e60121809f2"}, "url": "/docs/compare/?release=9.3.6#9.3.6-aebb5023702b7acf", "source_url": "/docs/release/9.3.6/#id-1.11.6.24.5"}, {"db_id": "931a577f6233c9dfa0b9f4a5b46f450e", "kind": "equivalent", "version": "9.2.10", "label": "9.2.10", "title": "确保 libpq 在遇到意外的套接字 EOF 时报告合适的错误消息", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fd98673f71e6e40941059ed0738c306eb878019708436b45c80c4e60121809f2"}, "url": "/docs/compare/?release=9.2.10#9.2.10-aebb5023702b7acf", "source_url": "/docs/release/9.2.10/#id-1.11.6.19.5"}, {"db_id": "905c10a90927728d9e7a58be115b5bda", "kind": "equivalent", "version": "9.1.15", "label": "9.1.15", "title": "确保 libpq 在遇到意外的套接字 EOF 时报告合适的错误消息", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fd98673f71e6e40941059ed0738c306eb878019708436b45c80c4e60121809f2"}, "url": "/docs/compare/?release=9.1.15#9.1.15-aebb5023702b7acf", "source_url": "/docs/release/9.1.15/#id-1.11.6.14.5"}]}, {"id": "9.0.19-7a4f1e67fc561bce", "cves": [], "html": "<p>在 <code>PQreset()</code> 期间清除任何旧的错误消息（Heikki Linnakangas）</p>\n<p>如果反复调用 <code>PQreset()</code> 而连接始终无法重建，失败连接尝试的错误消息会在 <code>PGconn</code> 的错误字符串中不断累积。</p>", "text": "在 PQreset() 期间清除任何旧的错误消息（Heikki Linnakangas） 如果反复调用 PQreset() 而连接始终无法重建，失败连接尝试的错误消息会在 PGconn 的错误字符串中不断累积。", "title": "在 PQreset() 期间清除任何旧的错误消息", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.19/#id-1.11.6.9.5", "source_hash": "f78be59e7f7ef3bf6357424c81dd6b82ad11644fbcbfc4b55b81e4aa1332834b", "section_path": ["变更"], "commit_groups": [], "identity_text": "Clear any old error message during PQreset() (Heikki Linnakangas) If PQreset() is called repeatedly, and the connection cannot be re-established, error messages from the failed connection attempts kept accumulating in the PGconn's error string.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.19/changes/033", "db_id": "cab90edf3b85ffb5926159fe7de57166", "patch_ids": [], "statement_hash": "df696ebc08e23ce5c97d0ca0762046fa6b86f96c3d6dac650584e2552935aee0", "relations": [{"rule": 2, "type": "equivalent", "target": "960e6797c9197011d2898fc9e8d85a05", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "df696ebc08e23ce5c97d0ca0762046fa6b86f96c3d6dac650584e2552935aee0"}}, {"rule": 2, "type": "equivalent", "target": "b98cf3c852159bab7dc0775181034270", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "df696ebc08e23ce5c97d0ca0762046fa6b86f96c3d6dac650584e2552935aee0"}}, {"rule": 2, "type": "equivalent", "target": "c30ff216bec4a74e7f470d4d01042034", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "df696ebc08e23ce5c97d0ca0762046fa6b86f96c3d6dac650584e2552935aee0"}}], "version": "9.0.19", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "b98cf3c852159bab7dc0775181034270", "kind": "equivalent", "version": "9.3.6", "label": "9.3.6", "title": "在 PQreset() 期间清除任何旧的错误消息", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "df696ebc08e23ce5c97d0ca0762046fa6b86f96c3d6dac650584e2552935aee0"}, "url": "/docs/compare/?release=9.3.6#9.3.6-7a4f1e67fc561bce", "source_url": "/docs/release/9.3.6/#id-1.11.6.24.5"}, {"db_id": "c30ff216bec4a74e7f470d4d01042034", "kind": "equivalent", "version": "9.2.10", "label": "9.2.10", "title": "在 PQreset() 期间清除任何旧的错误消息", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "df696ebc08e23ce5c97d0ca0762046fa6b86f96c3d6dac650584e2552935aee0"}, "url": "/docs/compare/?release=9.2.10#9.2.10-7a4f1e67fc561bce", "source_url": "/docs/release/9.2.10/#id-1.11.6.19.5"}, {"db_id": "960e6797c9197011d2898fc9e8d85a05", "kind": "equivalent", "version": "9.1.15", "label": "9.1.15", "title": "在 PQreset() 期间清除任何旧的错误消息", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "df696ebc08e23ce5c97d0ca0762046fa6b86f96c3d6dac650584e2552935aee0"}, "url": "/docs/compare/?release=9.1.15#9.1.15-7a4f1e67fc561bce", "source_url": "/docs/release/9.1.15/#id-1.11.6.14.5"}]}, {"id": "9.0.19-1d46455402260c7d", "cves": [], "html": "<p>正确处理 <span>libpq</span> 解析连接选项期间的内存不足情况（Alex Shulgin、Heikki Linnakangas）</p>", "text": "正确处理 libpq 解析连接选项期间的内存不足情况（Alex Shulgin、Heikki Linnakangas）", "title": "正确处理 libpq 解析连接选项期间的内存不足情况", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.19/#id-1.11.6.9.5", "source_hash": "7f87a53c8703966808084fe0d7d9776552cf04171dbfca83796e7dc0b3952a83", "section_path": ["变更"], "commit_groups": [], "identity_text": "Properly handle out-of-memory conditions while parsing connection options in libpq (Alex Shulgin, Heikki Linnakangas)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.19/changes/034", "db_id": "c5207154e564cef8a9fa0e50944287d6", "patch_ids": [], "statement_hash": "a996d059f0db0ccf017af25a0fe1db34242e8579fba35c6aa295f8f485254a9a", "relations": [{"rule": 2, "type": "equivalent", "target": "73293bd1607fa18a4bd43ec76539c423", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a996d059f0db0ccf017af25a0fe1db34242e8579fba35c6aa295f8f485254a9a"}}, {"rule": 2, "type": "equivalent", "target": "9213565e1e2863749f4433b0c32824ab", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a996d059f0db0ccf017af25a0fe1db34242e8579fba35c6aa295f8f485254a9a"}}, {"rule": 2, "type": "equivalent", "target": "ff2ff23fd845e95265615670699b5e33", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a996d059f0db0ccf017af25a0fe1db34242e8579fba35c6aa295f8f485254a9a"}}], "version": "9.0.19", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "ff2ff23fd845e95265615670699b5e33", "kind": "equivalent", "version": "9.3.6", "label": "9.3.6", "title": "正确处理 libpq 解析连接选项期间的内存不足情况", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a996d059f0db0ccf017af25a0fe1db34242e8579fba35c6aa295f8f485254a9a"}, "url": "/docs/compare/?release=9.3.6#9.3.6-1d46455402260c7d", "source_url": "/docs/release/9.3.6/#id-1.11.6.24.5"}, {"db_id": "9213565e1e2863749f4433b0c32824ab", "kind": "equivalent", "version": "9.2.10", "label": "9.2.10", "title": "正确处理 libpq 解析连接选项期间的内存不足情况", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a996d059f0db0ccf017af25a0fe1db34242e8579fba35c6aa295f8f485254a9a"}, "url": "/docs/compare/?release=9.2.10#9.2.10-1d46455402260c7d", "source_url": "/docs/release/9.2.10/#id-1.11.6.19.5"}, {"db_id": "73293bd1607fa18a4bd43ec76539c423", "kind": "equivalent", "version": "9.1.15", "label": "9.1.15", "title": "正确处理 libpq 解析连接选项期间的内存不足情况", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a996d059f0db0ccf017af25a0fe1db34242e8579fba35c6aa295f8f485254a9a"}, "url": "/docs/compare/?release=9.1.15#9.1.15-1d46455402260c7d", "source_url": "/docs/release/9.1.15/#id-1.11.6.14.5"}]}, {"id": "9.0.19-85752a1d91670ed8", "cves": [], "html": "<p>修复 <span>ecpg</span> 版 <code>ParseDateTime()</code> 中的数组越界（Michael Paquier）</p>", "text": "修复 ecpg 版 ParseDateTime() 中的数组越界（Michael Paquier）", "title": "修复 ecpg 版 ParseDateTime() 中的数组越界", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.19/#id-1.11.6.9.5", "source_hash": "238484a2b1dc772e720cabf1f217b466f21b46d09e8ac42a929a32222cf44967", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix array overrun in ecpg's version of ParseDateTime() (Michael Paquier)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.19/changes/035", "db_id": "ac56a52bc22f77a1933b82006ef42391", "patch_ids": [], "statement_hash": "81e3afc68d041031ef42e2ffb3a26b68f9f989de4e82eedc2118f5f2cd0cf9f2", "relations": [{"rule": 2, "type": "equivalent", "target": "7fba479cce1339bd2f646da92c078d50", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "81e3afc68d041031ef42e2ffb3a26b68f9f989de4e82eedc2118f5f2cd0cf9f2"}}, {"rule": 2, "type": "equivalent", "target": "908c54fd4ec279884f38ce05b0d2ad88", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "81e3afc68d041031ef42e2ffb3a26b68f9f989de4e82eedc2118f5f2cd0cf9f2"}}, {"rule": 2, "type": "equivalent", "target": "dcf9b81abf48d31da8d984f4426fc7ac", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "81e3afc68d041031ef42e2ffb3a26b68f9f989de4e82eedc2118f5f2cd0cf9f2"}}], "version": "9.0.19", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "7fba479cce1339bd2f646da92c078d50", "kind": "equivalent", "version": "9.3.6", "label": "9.3.6", "title": "修复 ecpg 版 ParseDateTime() 中的数组越界", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "81e3afc68d041031ef42e2ffb3a26b68f9f989de4e82eedc2118f5f2cd0cf9f2"}, "url": "/docs/compare/?release=9.3.6#9.3.6-85752a1d91670ed8", "source_url": "/docs/release/9.3.6/#id-1.11.6.24.5"}, {"db_id": "dcf9b81abf48d31da8d984f4426fc7ac", "kind": "equivalent", "version": "9.2.10", "label": "9.2.10", "title": "修复 ecpg 版 ParseDateTime() 中的数组越界", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "81e3afc68d041031ef42e2ffb3a26b68f9f989de4e82eedc2118f5f2cd0cf9f2"}, "url": "/docs/compare/?release=9.2.10#9.2.10-85752a1d91670ed8", "source_url": "/docs/release/9.2.10/#id-1.11.6.19.5"}, {"db_id": "908c54fd4ec279884f38ce05b0d2ad88", "kind": "equivalent", "version": "9.1.15", "label": "9.1.15", "title": "修复 ecpg 版 ParseDateTime() 中的数组越界", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "81e3afc68d041031ef42e2ffb3a26b68f9f989de4e82eedc2118f5f2cd0cf9f2"}, "url": "/docs/compare/?release=9.1.15#9.1.15-85752a1d91670ed8", "source_url": "/docs/release/9.1.15/#id-1.11.6.14.5"}]}, {"id": "9.0.19-d3f661f7c0807dfc", "cves": [], "html": "<p>在 <span>initdb</span> 中，当指定的密码文件为空时给出更清晰的错误消息（Mats Erik Andersson）</p>", "text": "在 initdb 中，当指定的密码文件为空时给出更清晰的错误消息（Mats Erik Andersson）", "title": "在 initdb 中，当指定的密码文件为空时给出更清晰的错误消息", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.19/#id-1.11.6.9.5", "source_hash": "1ad618638095695b91078a2b82d92ed2d7df08c384a65af83bcfe06cb6766527", "section_path": ["变更"], "commit_groups": [], "identity_text": "In initdb, give a clearer error message if a password file is specified but is empty (Mats Erik Andersson)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.19/changes/036", "db_id": "a9559aee91978fd59ff877e9805a2c45", "patch_ids": [], "statement_hash": "f5dccae8c244bb531458ce2d6b4b4ba44277e009c5f640307de6e660b0cc53f8", "relations": [{"rule": 2, "type": "equivalent", "target": "974589163a17c6bb747036121730c0c6", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f5dccae8c244bb531458ce2d6b4b4ba44277e009c5f640307de6e660b0cc53f8"}}, {"rule": 2, "type": "equivalent", "target": "a795460f251295767d33e073790eed3d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f5dccae8c244bb531458ce2d6b4b4ba44277e009c5f640307de6e660b0cc53f8"}}, {"rule": 2, "type": "equivalent", "target": "ae26abaab93a54279a6ce7f8e136ad07", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f5dccae8c244bb531458ce2d6b4b4ba44277e009c5f640307de6e660b0cc53f8"}}], "version": "9.0.19", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "ae26abaab93a54279a6ce7f8e136ad07", "kind": "equivalent", "version": "9.3.6", "label": "9.3.6", "title": "在 initdb 中，当指定的密码文件为空时给出更清晰的错误消息", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f5dccae8c244bb531458ce2d6b4b4ba44277e009c5f640307de6e660b0cc53f8"}, "url": "/docs/compare/?release=9.3.6#9.3.6-d3f661f7c0807dfc", "source_url": "/docs/release/9.3.6/#id-1.11.6.24.5"}, {"db_id": "974589163a17c6bb747036121730c0c6", "kind": "equivalent", "version": "9.2.10", "label": "9.2.10", "title": "在 initdb 中，当指定的密码文件为空时给出更清晰的错误消息", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f5dccae8c244bb531458ce2d6b4b4ba44277e009c5f640307de6e660b0cc53f8"}, "url": "/docs/compare/?release=9.2.10#9.2.10-d3f661f7c0807dfc", "source_url": "/docs/release/9.2.10/#id-1.11.6.19.5"}, {"db_id": "a795460f251295767d33e073790eed3d", "kind": "equivalent", "version": "9.1.15", "label": "9.1.15", "title": "在 initdb 中，当指定的密码文件为空时给出更清晰的错误消息", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f5dccae8c244bb531458ce2d6b4b4ba44277e009c5f640307de6e660b0cc53f8"}, "url": "/docs/compare/?release=9.1.15#9.1.15-d3f661f7c0807dfc", "source_url": "/docs/release/9.1.15/#id-1.11.6.14.5"}]}, {"id": "9.0.19-22c5dc5d1b423d32", "cves": [], "html": "<p>修复 <span>psql</span> 的 <code>\\s</code> 命令，使其与 libedit 良好配合，并新增分页器支持（Stepan Rutz、Tom Lane）</p>\n<p>使用 libedit 而非 readline 时，<code>\\s</code> 会以一种相当难读的编码格式打印命令历史，而且在较新的 libedit 版本上可能完全失败。现已改为由我们自己打印历史而不是让库来做。一个令人愉快的副作用是，在合适的时候会使用分页器。</p>\n<p>此补丁还修复了一个在使用 libedit 保存命令历史时换行编码不一致的缺陷。旧版 <span>psql</span> 写出的多行历史条目在此补丁后可以干净地读取，但反过来未必可行，具体取决于所涉及的 libedit 版本。</p>", "text": "修复 psql 的 \\s 命令，使其与 libedit 良好配合，并新增分页器支持（Stepan Rutz、Tom Lane） 使用 libedit 而非 readline 时，\\s 会以一种相当难读的编码格式打印命令历史，而且在较新的 libedit 版本上可能完全失败。现已改为由我们自己打印历史而不是让库来做。一个令人愉快的副作用是，在合适的时候会使用分页器。 此补丁还修复了一个在使用 libedit 保存命令历史时换行编码不一致的缺陷。旧版 psql 写出的多行历史条目在此补丁后可以干净地读取，但反过来未必可行，具体取决于所涉及的 libedit 版本。", "title": "修复 psql 的 \\s 命令，使其与 libedit 良好配合，并新增分页器支持", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.19/#id-1.11.6.9.5", "source_hash": "e9a663c41108f759cd2de57b8d49aa014ac0f875d24f47886c0f5147d8d05d2b", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix psql's \\s command to work nicely with libedit, and add pager support (Stepan Rutz, Tom Lane) When using libedit rather than readline, \\s printed the command history in a fairly unreadable encoded format, and on recent libedit versions might fail altogether. Fix that by printing the history ourselves rather than having the library do it. A pleasant side-effect is that the pager is used if appropriate. This patch also fixes a bug that caused newline encoding to be applied inconsistently when saving the command history with libedit. Multiline history entries written by older psql versions will be read cleanly with this patch, but perhaps not vice versa, depending on the exact libedit versions involved.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.19/changes/037", "db_id": "d0b653e8011bfcc7e5d6bf63673fcb2c", "patch_ids": [], "statement_hash": "13c163b3c2affe207fece28813d56bf5fbadecdb5f69210129e68bf5a11498f5", "relations": [{"rule": 2, "type": "equivalent", "target": "02964a88cdd4606e839eeff016bf8979", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "13c163b3c2affe207fece28813d56bf5fbadecdb5f69210129e68bf5a11498f5"}}, {"rule": 2, "type": "equivalent", "target": "27a012123eafccd78fd4148b7d003897", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "13c163b3c2affe207fece28813d56bf5fbadecdb5f69210129e68bf5a11498f5"}}, {"rule": 2, "type": "equivalent", "target": "290ba69d6a7bf963e6ff4eea69530d6a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "13c163b3c2affe207fece28813d56bf5fbadecdb5f69210129e68bf5a11498f5"}}], "version": "9.0.19", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "290ba69d6a7bf963e6ff4eea69530d6a", "kind": "equivalent", "version": "9.3.6", "label": "9.3.6", "title": "修复 psql 的 \\s 命令，使其与 libedit 良好配合，并新增分页器支持", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "13c163b3c2affe207fece28813d56bf5fbadecdb5f69210129e68bf5a11498f5"}, "url": "/docs/compare/?release=9.3.6#9.3.6-22c5dc5d1b423d32", "source_url": "/docs/release/9.3.6/#id-1.11.6.24.5"}, {"db_id": "27a012123eafccd78fd4148b7d003897", "kind": "equivalent", "version": "9.2.10", "label": "9.2.10", "title": "修复 psql 的 \\s 命令，使其与 libedit 良好配合，并新增分页器支持", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "13c163b3c2affe207fece28813d56bf5fbadecdb5f69210129e68bf5a11498f5"}, "url": "/docs/compare/?release=9.2.10#9.2.10-22c5dc5d1b423d32", "source_url": "/docs/release/9.2.10/#id-1.11.6.19.5"}, {"db_id": "02964a88cdd4606e839eeff016bf8979", "kind": "equivalent", "version": "9.1.15", "label": "9.1.15", "title": "修复 psql 的 \\s 命令，使其与 libedit 良好配合，并新增分页器支持", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "13c163b3c2affe207fece28813d56bf5fbadecdb5f69210129e68bf5a11498f5"}, "url": "/docs/compare/?release=9.1.15#9.1.15-22c5dc5d1b423d32", "source_url": "/docs/release/9.1.15/#id-1.11.6.14.5"}]}, {"id": "9.0.19-933ba28d99ae0cad", "cves": [], "html": "<p>改进 <span>psql</span> 特殊变量解析的一致性（Tom Lane）</p>\n<p>允许 <code>ECHO_HIDDEN</code> 和 <code>ON_ERROR_ROLLBACK</code> 使用 <code>on</code> 和 <code>off</code> 的变体拼写（如 <code>1</code>/<code>0</code>）。对 <code>COMP_KEYWORD_CASE</code>、<code>ECHO</code>、<code>ECHO_HIDDEN</code>、<code>HISTCONTROL</code>、<code>ON_ERROR_ROLLBACK</code> 和 <code>VERBOSITY</code> 的无法识别的值发出警告。对所有这些变量的所有值进行不区分大小写的识别；此前大小写敏感与不敏感的行为混杂在一起。</p>", "text": "改进 psql 特殊变量解析的一致性（Tom Lane） 允许 ECHO_HIDDEN 和 ON_ERROR_ROLLBACK 使用 on 和 off 的变体拼写（如 1/0）。对 COMP_KEYWORD_CASE、ECHO、ECHO_HIDDEN、HISTCONTROL、ON_ERROR_ROLLBACK 和 VERBOSITY 的无法识别的值发出警告。对所有这些变量的所有值进行不区分大小写的识别；此前大小写敏感与不敏感的行为混杂在一起。", "title": "改进 psql 特殊变量解析的一致性", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.19/#id-1.11.6.9.5", "source_hash": "befee15c5e3c14ceb2fd186d2f000e46dc5ba17cb987b7c48491cc5be7fb8cf5", "section_path": ["变更"], "commit_groups": [], "identity_text": "Improve consistency of parsing of psql's special variables (Tom Lane) Allow variant spellings of on and off (such as 1/0) for ECHO_HIDDEN and ON_ERROR_ROLLBACK. Report a warning for unrecognized values for COMP_KEYWORD_CASE, ECHO, ECHO_HIDDEN, HISTCONTROL, ON_ERROR_ROLLBACK, and VERBOSITY. Recognize all values for all these variables case-insensitively; previously there was a mishmash of case-sensitive and case-insensitive behaviors.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.19/changes/038", "db_id": "d1293e0760f984f1b45e41b61d4b70d2", "patch_ids": [], "statement_hash": "ab61658ff899e3c5d3d9358baf98c7bac86ab1b118ca97ffdb2776457dd6ba13", "relations": [{"rule": 2, "type": "equivalent", "target": "6b862f27f186fc8fdf2591fac34b4934", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ab61658ff899e3c5d3d9358baf98c7bac86ab1b118ca97ffdb2776457dd6ba13"}}, {"rule": 2, "type": "equivalent", "target": "8457f5bc11a38b4a799092ba2f1545b6", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ab61658ff899e3c5d3d9358baf98c7bac86ab1b118ca97ffdb2776457dd6ba13"}}, {"rule": 2, "type": "equivalent", "target": "af5039a683c6a7e653cce3887d3626d2", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ab61658ff899e3c5d3d9358baf98c7bac86ab1b118ca97ffdb2776457dd6ba13"}}, {"rule": 2, "type": "equivalent", "target": "d59d691cdb6b5319e9be7cab3e536274", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ab61658ff899e3c5d3d9358baf98c7bac86ab1b118ca97ffdb2776457dd6ba13"}}], "version": "9.0.19", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "8457f5bc11a38b4a799092ba2f1545b6", "kind": "equivalent", "version": "9.4.1", "label": "9.4.1", "title": "改进 psql 特殊变量解析的一致性", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ab61658ff899e3c5d3d9358baf98c7bac86ab1b118ca97ffdb2776457dd6ba13"}, "url": "/docs/compare/?release=9.4.1#9.4.1-933ba28d99ae0cad", "source_url": "/docs/release/9.4.1/#id-1.11.6.30.5"}, {"db_id": "d59d691cdb6b5319e9be7cab3e536274", "kind": "equivalent", "version": "9.3.6", "label": "9.3.6", "title": "改进 psql 特殊变量解析的一致性", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ab61658ff899e3c5d3d9358baf98c7bac86ab1b118ca97ffdb2776457dd6ba13"}, "url": "/docs/compare/?release=9.3.6#9.3.6-933ba28d99ae0cad", "source_url": "/docs/release/9.3.6/#id-1.11.6.24.5"}, {"db_id": "af5039a683c6a7e653cce3887d3626d2", "kind": "equivalent", "version": "9.2.10", "label": "9.2.10", "title": "改进 psql 特殊变量解析的一致性", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ab61658ff899e3c5d3d9358baf98c7bac86ab1b118ca97ffdb2776457dd6ba13"}, "url": "/docs/compare/?release=9.2.10#9.2.10-933ba28d99ae0cad", "source_url": "/docs/release/9.2.10/#id-1.11.6.19.5"}, {"db_id": "6b862f27f186fc8fdf2591fac34b4934", "kind": "equivalent", "version": "9.1.15", "label": "9.1.15", "title": "改进 psql 特殊变量解析的一致性", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ab61658ff899e3c5d3d9358baf98c7bac86ab1b118ca97ffdb2776457dd6ba13"}, "url": "/docs/compare/?release=9.1.15#9.1.15-933ba28d99ae0cad", "source_url": "/docs/release/9.1.15/#id-1.11.6.14.5"}]}, {"id": "9.0.19-4eba2ab45b7b3c33", "cves": [], "html": "<p>修复 <span>psql</span> 扩展模式显示在使用 <code>border</code> = 3 且 <code>linestyle</code> = <code>ascii</code> 或 <code>unicode</code> 时的一致性问题（Stephen Frost）</p>", "text": "修复 psql 扩展模式显示在使用 border = 3 且 linestyle = ascii 或 unicode 时的一致性问题（Stephen Frost）", "title": "修复 psql 扩展模式显示在使用 border = 3 且 linestyle = ascii 或 unicode 时的一致性问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.19/#id-1.11.6.9.5", "source_hash": "7217e4604421c4804e435236b7f090020278bf8a00a7447d17f16fc98a0a50a8", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix psql's expanded-mode display to work consistently when using border = 3 and linestyle = ascii or unicode (Stephen Frost)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.19/changes/039", "db_id": "2c3da90d7164c9dd244aa36b890d1216", "patch_ids": [], "statement_hash": "d05d54b7763f502c0c7e58a17c5a696fac6cc527045a69af075629f66fe4edb9", "relations": [{"rule": 2, "type": "equivalent", "target": "34c1f1a9ca9bb94fd0844d7522b0f57f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d05d54b7763f502c0c7e58a17c5a696fac6cc527045a69af075629f66fe4edb9"}}, {"rule": 2, "type": "equivalent", "target": "b359ff590bc99913ca7a1b4bd65f094d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d05d54b7763f502c0c7e58a17c5a696fac6cc527045a69af075629f66fe4edb9"}}, {"rule": 2, "type": "equivalent", "target": "e1cecfa2bf0dbfc22ff01487c60201a4", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d05d54b7763f502c0c7e58a17c5a696fac6cc527045a69af075629f66fe4edb9"}}], "version": "9.0.19", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "b359ff590bc99913ca7a1b4bd65f094d", "kind": "equivalent", "version": "9.3.6", "label": "9.3.6", "title": "修复 psql 扩展模式显示在使用 border = 3 且 linestyle = ascii 或 unicode 时的一致性问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d05d54b7763f502c0c7e58a17c5a696fac6cc527045a69af075629f66fe4edb9"}, "url": "/docs/compare/?release=9.3.6#9.3.6-4eba2ab45b7b3c33", "source_url": "/docs/release/9.3.6/#id-1.11.6.24.5"}, {"db_id": "e1cecfa2bf0dbfc22ff01487c60201a4", "kind": "equivalent", "version": "9.2.10", "label": "9.2.10", "title": "修复 psql 扩展模式显示在使用 border = 3 且 linestyle = ascii 或 unicode 时的一致性问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d05d54b7763f502c0c7e58a17c5a696fac6cc527045a69af075629f66fe4edb9"}, "url": "/docs/compare/?release=9.2.10#9.2.10-4eba2ab45b7b3c33", "source_url": "/docs/release/9.2.10/#id-1.11.6.19.5"}, {"db_id": "34c1f1a9ca9bb94fd0844d7522b0f57f", "kind": "equivalent", "version": "9.1.15", "label": "9.1.15", "title": "修复 psql 扩展模式显示在使用 border = 3 且 linestyle = ascii 或 unicode 时的一致性问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d05d54b7763f502c0c7e58a17c5a696fac6cc527045a69af075629f66fe4edb9"}, "url": "/docs/compare/?release=9.1.15#9.1.15-4eba2ab45b7b3c33", "source_url": "/docs/release/9.1.15/#id-1.11.6.14.5"}]}, {"id": "9.0.19-6bf477ecafdf9b4b", "cves": [], "html": "<p>修复并行恢复纯模式转储时可能出现的死锁（Robert Haas、Tom Lane）</p>", "text": "修复并行恢复纯模式转储时可能出现的死锁（Robert Haas、Tom Lane）", "title": "修复并行恢复纯模式转储时可能出现的死锁", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.19/#id-1.11.6.9.5", "source_hash": "8d904175b3bbe0c6f45766b497b7de864a7090cc217e652d94ea16a1b375df1f", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix possible deadlock during parallel restore of a schema-only dump (Robert Haas, Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.19/changes/040", "db_id": "dbcddf562b2cbe77538f45f2edf102f3", "patch_ids": [], "statement_hash": "d2e0364e74e9a24ea45a95351481921cc85a67dbbd150f19038e5f0b3d6efa45", "relations": [{"rule": 2, "type": "equivalent", "target": "58ee380475fa28f09ecaf41e43f74d8b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d2e0364e74e9a24ea45a95351481921cc85a67dbbd150f19038e5f0b3d6efa45"}}, {"rule": 2, "type": "equivalent", "target": "6eb333d11c6d582ce3dd202a37f4194b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d2e0364e74e9a24ea45a95351481921cc85a67dbbd150f19038e5f0b3d6efa45"}}, {"rule": 2, "type": "equivalent", "target": "9f2c83b34e3cfe73bfcab264d8e2e926", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d2e0364e74e9a24ea45a95351481921cc85a67dbbd150f19038e5f0b3d6efa45"}}], "version": "9.0.19", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "9f2c83b34e3cfe73bfcab264d8e2e926", "kind": "equivalent", "version": "9.3.6", "label": "9.3.6", "title": "修复并行恢复纯模式转储时可能出现的死锁", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d2e0364e74e9a24ea45a95351481921cc85a67dbbd150f19038e5f0b3d6efa45"}, "url": "/docs/compare/?release=9.3.6#9.3.6-6bf477ecafdf9b4b", "source_url": "/docs/release/9.3.6/#id-1.11.6.24.5"}, {"db_id": "58ee380475fa28f09ecaf41e43f74d8b", "kind": "equivalent", "version": "9.2.10", "label": "9.2.10", "title": "修复并行恢复纯模式转储时可能出现的死锁", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d2e0364e74e9a24ea45a95351481921cc85a67dbbd150f19038e5f0b3d6efa45"}, "url": "/docs/compare/?release=9.2.10#9.2.10-6bf477ecafdf9b4b", "source_url": "/docs/release/9.2.10/#id-1.11.6.19.5"}, {"db_id": "6eb333d11c6d582ce3dd202a37f4194b", "kind": "equivalent", "version": "9.1.15", "label": "9.1.15", "title": "修复并行恢复纯模式转储时可能出现的死锁", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d2e0364e74e9a24ea45a95351481921cc85a67dbbd150f19038e5f0b3d6efa45"}, "url": "/docs/compare/?release=9.1.15#9.1.15-6bf477ecafdf9b4b", "source_url": "/docs/release/9.1.15/#id-1.11.6.14.5"}]}, {"id": "9.0.19-6671c8e45449c597", "cves": [], "html": "<p>修复 <code>pg_dump --binary-upgrade</code> 在零列组合类型上的核心转储（Rushabh Lathia）</p>", "text": "修复 pg_dump --binary-upgrade 在零列组合类型上的核心转储（Rushabh Lathia）", "title": "修复 pg_dump --binary-upgrade 在零列组合类型上的核心转储", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.19/#id-1.11.6.9.5", "source_hash": "a5997f21a089dd290ff24dfcecb02dca0b8c9c33429843bbe189c40ae5adb347", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix core dump in pg_dump --binary-upgrade on zero-column composite type (Rushabh Lathia)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.19/changes/041", "db_id": "a42c556b4c8ae7a58ee8036468a35823", "patch_ids": [], "statement_hash": "7cef21de2b663b8fcb5b1907b9258fb7bbd2d377c304de74be1ebba790f6657c", "relations": [{"rule": 2, "type": "equivalent", "target": "23179df9ec3dbbf3bc4bcadaed80f32e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7cef21de2b663b8fcb5b1907b9258fb7bbd2d377c304de74be1ebba790f6657c"}}, {"rule": 2, "type": "equivalent", "target": "7937c4ae1b68553949f2a704ff0a8b15", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7cef21de2b663b8fcb5b1907b9258fb7bbd2d377c304de74be1ebba790f6657c"}}, {"rule": 2, "type": "equivalent", "target": "864879357283b1121b56454d7dc1c48e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7cef21de2b663b8fcb5b1907b9258fb7bbd2d377c304de74be1ebba790f6657c"}}], "version": "9.0.19", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "864879357283b1121b56454d7dc1c48e", "kind": "equivalent", "version": "9.3.6", "label": "9.3.6", "title": "修复 pg_dump --binary-upgrade 在零列组合类型上的核心转储", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7cef21de2b663b8fcb5b1907b9258fb7bbd2d377c304de74be1ebba790f6657c"}, "url": "/docs/compare/?release=9.3.6#9.3.6-6671c8e45449c597", "source_url": "/docs/release/9.3.6/#id-1.11.6.24.5"}, {"db_id": "7937c4ae1b68553949f2a704ff0a8b15", "kind": "equivalent", "version": "9.2.10", "label": "9.2.10", "title": "修复 pg_dump --binary-upgrade 在零列组合类型上的核心转储", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7cef21de2b663b8fcb5b1907b9258fb7bbd2d377c304de74be1ebba790f6657c"}, "url": "/docs/compare/?release=9.2.10#9.2.10-6671c8e45449c597", "source_url": "/docs/release/9.2.10/#id-1.11.6.19.5"}, {"db_id": "23179df9ec3dbbf3bc4bcadaed80f32e", "kind": "equivalent", "version": "9.1.15", "label": "9.1.15", "title": "修复 pg_dump --binary-upgrade 在零列组合类型上的核心转储", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7cef21de2b663b8fcb5b1907b9258fb7bbd2d377c304de74be1ebba790f6657c"}, "url": "/docs/compare/?release=9.1.15#9.1.15-6671c8e45449c597", "source_url": "/docs/release/9.1.15/#id-1.11.6.14.5"}]}, {"id": "9.0.19-04f05895e1d6bbd6", "cves": [], "html": "<p>修复 <code>contrib/pageinspect</code> 的 <code>get_raw_page()</code> 中的块号检查（Tom Lane）</p>\n<p>错误的检查逻辑可能阻止访问非主关系分支中的某些页面。</p>", "text": "修复 contrib/pageinspect 的 get_raw_page() 中的块号检查（Tom Lane） 错误的检查逻辑可能阻止访问非主关系分支中的某些页面。", "title": "修复 contrib/pageinspect 的 get_raw_page() 中的块号检查", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.19/#id-1.11.6.9.5", "source_hash": "4de281b058e4b28da441fa4f7a4bc9dc1211f749a4f0e3921750e70913d83d4d", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix block number checking in contrib/pageinspect's get_raw_page() (Tom Lane) The incorrect checking logic could prevent access to some pages in non-main relation forks.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.19/changes/042", "db_id": "f0339297b7e6afe8e77c299dbb905dfc", "patch_ids": [], "statement_hash": "d9cf7939f3b575d0c96ced6029d1c43059b8d6bd02bfd6c43656cb2dda598b9a", "relations": [{"rule": 2, "type": "equivalent", "target": "9e217fbd497cec2831c099fa83a38b5c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d9cf7939f3b575d0c96ced6029d1c43059b8d6bd02bfd6c43656cb2dda598b9a"}}, {"rule": 2, "type": "equivalent", "target": "ba48e31797b3b09a0b2d9a3d707b4c53", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d9cf7939f3b575d0c96ced6029d1c43059b8d6bd02bfd6c43656cb2dda598b9a"}}, {"rule": 2, "type": "equivalent", "target": "f0995d643272cf222f23311a0cccbac8", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d9cf7939f3b575d0c96ced6029d1c43059b8d6bd02bfd6c43656cb2dda598b9a"}}], "version": "9.0.19", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "f0995d643272cf222f23311a0cccbac8", "kind": "equivalent", "version": "9.3.6", "label": "9.3.6", "title": "修复 contrib/pageinspect 的 get_raw_page() 中的块号检查", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d9cf7939f3b575d0c96ced6029d1c43059b8d6bd02bfd6c43656cb2dda598b9a"}, "url": "/docs/compare/?release=9.3.6#9.3.6-04f05895e1d6bbd6", "source_url": "/docs/release/9.3.6/#id-1.11.6.24.5"}, {"db_id": "ba48e31797b3b09a0b2d9a3d707b4c53", "kind": "equivalent", "version": "9.2.10", "label": "9.2.10", "title": "修复 contrib/pageinspect 的 get_raw_page() 中的块号检查", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d9cf7939f3b575d0c96ced6029d1c43059b8d6bd02bfd6c43656cb2dda598b9a"}, "url": "/docs/compare/?release=9.2.10#9.2.10-04f05895e1d6bbd6", "source_url": "/docs/release/9.2.10/#id-1.11.6.19.5"}, {"db_id": "9e217fbd497cec2831c099fa83a38b5c", "kind": "equivalent", "version": "9.1.15", "label": "9.1.15", "title": "修复 contrib/pageinspect 的 get_raw_page() 中的块号检查", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d9cf7939f3b575d0c96ced6029d1c43059b8d6bd02bfd6c43656cb2dda598b9a"}, "url": "/docs/compare/?release=9.1.15#9.1.15-04f05895e1d6bbd6", "source_url": "/docs/release/9.1.15/#id-1.11.6.14.5"}]}, {"id": "9.0.19-26694b0787ba2682", "cves": [], "html": "<p>修复 <code>contrib/pgcrypto</code> 的 <code>pgp_sym_decrypt()</code>，使其在消息长度比 2 的幂小 6 时不再失败（Marko Tiikkaja）</p>", "text": "修复 contrib/pgcrypto 的 pgp_sym_decrypt()，使其在消息长度比 2 的幂小 6 时不再失败（Marko Tiikkaja）", "title": "修复 contrib/pgcrypto 的 pgp_sym_decrypt()，使其在消息长度比 2 的幂小 6 时不再失败", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.19/#id-1.11.6.9.5", "source_hash": "884ccc9a0990fb25587ad9dce1cd2ededacd91aceb2d5fc62b896f3e744a96db", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix contrib/pgcrypto's pgp_sym_decrypt() to not fail on messages whose length is 6 less than a power of 2 (Marko Tiikkaja)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.19/changes/043", "db_id": "d5d6f1e8428e9b7961a20fbdf71e1891", "patch_ids": [], "statement_hash": "c4b10794c6f34ab3b038e7b46005d31d86c769d27695d9d3e2070fca3ccbb2d4", "relations": [{"rule": 2, "type": "equivalent", "target": "5471e9acf040392515f6c47d09bbff7b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c4b10794c6f34ab3b038e7b46005d31d86c769d27695d9d3e2070fca3ccbb2d4"}}, {"rule": 2, "type": "equivalent", "target": "5e7d1d638b65429f916f7bfbe132d440", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c4b10794c6f34ab3b038e7b46005d31d86c769d27695d9d3e2070fca3ccbb2d4"}}, {"rule": 2, "type": "equivalent", "target": "ee61fdabf015150c1a79b27a40eae0cb", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c4b10794c6f34ab3b038e7b46005d31d86c769d27695d9d3e2070fca3ccbb2d4"}}], "version": "9.0.19", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "ee61fdabf015150c1a79b27a40eae0cb", "kind": "equivalent", "version": "9.3.6", "label": "9.3.6", "title": "修复 contrib/pgcrypto 的 pgp_sym_decrypt()，使其在消息长度比 2 的幂小 6 时不再失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c4b10794c6f34ab3b038e7b46005d31d86c769d27695d9d3e2070fca3ccbb2d4"}, "url": "/docs/compare/?release=9.3.6#9.3.6-26694b0787ba2682", "source_url": "/docs/release/9.3.6/#id-1.11.6.24.5"}, {"db_id": "5e7d1d638b65429f916f7bfbe132d440", "kind": "equivalent", "version": "9.2.10", "label": "9.2.10", "title": "修复 contrib/pgcrypto 的 pgp_sym_decrypt()，使其在消息长度比 2 的幂小 6 时不再失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c4b10794c6f34ab3b038e7b46005d31d86c769d27695d9d3e2070fca3ccbb2d4"}, "url": "/docs/compare/?release=9.2.10#9.2.10-26694b0787ba2682", "source_url": "/docs/release/9.2.10/#id-1.11.6.19.5"}, {"db_id": "5471e9acf040392515f6c47d09bbff7b", "kind": "equivalent", "version": "9.1.15", "label": "9.1.15", "title": "修复 contrib/pgcrypto 的 pgp_sym_decrypt()，使其在消息长度比 2 的幂小 6 时不再失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c4b10794c6f34ab3b038e7b46005d31d86c769d27695d9d3e2070fca3ccbb2d4"}, "url": "/docs/compare/?release=9.1.15#9.1.15-26694b0787ba2682", "source_url": "/docs/release/9.1.15/#id-1.11.6.14.5"}]}, {"id": "9.0.19-bd7b14c67353f4dd", "cves": [], "html": "<p>安全地处理 <code>contrib/tablefunc</code> 的 <code>connectby()</code> 中的意外查询结果，尤其是 NULL（Michael Paquier）</p>\n<p>此前 <code>connectby()</code> 遇到 NULL 键值时会崩溃。现在它会打印该行但不再进一步递归。</p>", "text": "安全地处理 contrib/tablefunc 的 connectby() 中的意外查询结果，尤其是 NULL（Michael Paquier） 此前 connectby() 遇到 NULL 键值时会崩溃。现在它会打印该行但不再进一步递归。", "title": "安全地处理 contrib/tablefunc 的 connectby() 中的意外查询结果，尤其是 NULL", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.19/#id-1.11.6.9.5", "source_hash": "fe58586e3f0b43cae1ff17c5ae4a0a6bf9aad38683b3c934f15d4fdaa6456865", "section_path": ["变更"], "commit_groups": [], "identity_text": "Handle unexpected query results, especially NULLs, safely in contrib/tablefunc's connectby() (Michael Paquier) connectby() previously crashed if it encountered a NULL key value. It now prints that row but doesn't recurse further.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.19/changes/044", "db_id": "067eb3e6a757e657b3b5527615fcb4ec", "patch_ids": [], "statement_hash": "9c8e178e32c521ec5f76336818de13a8dd8a1c4826cb40f74b746e87c1094544", "relations": [{"rule": 2, "type": "equivalent", "target": "2c6aca44c0dcee7e3437799520e1e667", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9c8e178e32c521ec5f76336818de13a8dd8a1c4826cb40f74b746e87c1094544"}}, {"rule": 2, "type": "equivalent", "target": "490569980196c2e8fc0b80c5f5022562", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9c8e178e32c521ec5f76336818de13a8dd8a1c4826cb40f74b746e87c1094544"}}, {"rule": 2, "type": "equivalent", "target": "5189b93a8cf6cb0e00c3fcf1dbab030d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9c8e178e32c521ec5f76336818de13a8dd8a1c4826cb40f74b746e87c1094544"}}, {"rule": 2, "type": "equivalent", "target": "80b793a52a226eb5e5ae486e51a6bca3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9c8e178e32c521ec5f76336818de13a8dd8a1c4826cb40f74b746e87c1094544"}}], "version": "9.0.19", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "490569980196c2e8fc0b80c5f5022562", "kind": "equivalent", "version": "9.4.1", "label": "9.4.1", "title": "安全地处理 contrib/tablefunc 的 connectby() 中的意外查询结果，尤其是 NULL", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9c8e178e32c521ec5f76336818de13a8dd8a1c4826cb40f74b746e87c1094544"}, "url": "/docs/compare/?release=9.4.1#9.4.1-bd7b14c67353f4dd", "source_url": "/docs/release/9.4.1/#id-1.11.6.30.5"}, {"db_id": "5189b93a8cf6cb0e00c3fcf1dbab030d", "kind": "equivalent", "version": "9.3.6", "label": "9.3.6", "title": "安全地处理 contrib/tablefunc 的 connectby() 中的意外查询结果，尤其是 NULL", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9c8e178e32c521ec5f76336818de13a8dd8a1c4826cb40f74b746e87c1094544"}, "url": "/docs/compare/?release=9.3.6#9.3.6-bd7b14c67353f4dd", "source_url": "/docs/release/9.3.6/#id-1.11.6.24.5"}, {"db_id": "2c6aca44c0dcee7e3437799520e1e667", "kind": "equivalent", "version": "9.2.10", "label": "9.2.10", "title": "安全地处理 contrib/tablefunc 的 connectby() 中的意外查询结果，尤其是 NULL", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9c8e178e32c521ec5f76336818de13a8dd8a1c4826cb40f74b746e87c1094544"}, "url": "/docs/compare/?release=9.2.10#9.2.10-bd7b14c67353f4dd", "source_url": "/docs/release/9.2.10/#id-1.11.6.19.5"}, {"db_id": "80b793a52a226eb5e5ae486e51a6bca3", "kind": "equivalent", "version": "9.1.15", "label": "9.1.15", "title": "安全地处理 contrib/tablefunc 的 connectby() 中的意外查询结果，尤其是 NULL", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9c8e178e32c521ec5f76336818de13a8dd8a1c4826cb40f74b746e87c1094544"}, "url": "/docs/compare/?release=9.1.15#9.1.15-bd7b14c67353f4dd", "source_url": "/docs/release/9.1.15/#id-1.11.6.14.5"}]}, {"id": "9.0.19-16bd96d1b5443a9e", "cves": [], "html": "<p>避免 <code>contrib/xml2</code> 的 <code>xslt_process()</code> 中可能出现的崩溃（Mark Simonetti）</p>\n<p><span>libxslt</span> 似乎对资源释放顺序存在未记载的依赖；重新排列我们的调用以避免崩溃。</p>", "text": "避免 contrib/xml2 的 xslt_process() 中可能出现的崩溃（Mark Simonetti） libxslt 似乎对资源释放顺序存在未记载的依赖；重新排列我们的调用以避免崩溃。", "title": "避免 contrib/xml2 的 xslt_process() 中可能出现的崩溃", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.19/#id-1.11.6.9.5", "source_hash": "51e7e7a6b7cae368a3be510b5548e6a4630007cd71d43efd23c78418b1ddb16d", "section_path": ["变更"], "commit_groups": [], "identity_text": "Avoid a possible crash in contrib/xml2's xslt_process() (Mark Simonetti) libxslt seems to have an undocumented dependency on the order in which resources are freed; reorder our calls to avoid a crash.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.19/changes/045", "db_id": "5af728f73487987279bb4143394ed5c7", "patch_ids": [], "statement_hash": "b6793b5c6b6c7ea8509b5eedd285785cfce1ab0c45c109f3fb0da2d87a9a65b4", "relations": [{"rule": 2, "type": "equivalent", "target": "29cf6c481771d774d265144eae224bd8", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b6793b5c6b6c7ea8509b5eedd285785cfce1ab0c45c109f3fb0da2d87a9a65b4"}}, {"rule": 2, "type": "equivalent", "target": "48853351ecacaed5d6768613fbf3e7cf", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b6793b5c6b6c7ea8509b5eedd285785cfce1ab0c45c109f3fb0da2d87a9a65b4"}}, {"rule": 2, "type": "equivalent", "target": "bc4ee3cc962cb26439a428b20a1904b2", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b6793b5c6b6c7ea8509b5eedd285785cfce1ab0c45c109f3fb0da2d87a9a65b4"}}], "version": "9.0.19", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "29cf6c481771d774d265144eae224bd8", "kind": "equivalent", "version": "9.3.6", "label": "9.3.6", "title": "避免 contrib/xml2 的 xslt_process() 中可能出现的崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b6793b5c6b6c7ea8509b5eedd285785cfce1ab0c45c109f3fb0da2d87a9a65b4"}, "url": "/docs/compare/?release=9.3.6#9.3.6-16bd96d1b5443a9e", "source_url": "/docs/release/9.3.6/#id-1.11.6.24.5"}, {"db_id": "bc4ee3cc962cb26439a428b20a1904b2", "kind": "equivalent", "version": "9.2.10", "label": "9.2.10", "title": "避免 contrib/xml2 的 xslt_process() 中可能出现的崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b6793b5c6b6c7ea8509b5eedd285785cfce1ab0c45c109f3fb0da2d87a9a65b4"}, "url": "/docs/compare/?release=9.2.10#9.2.10-16bd96d1b5443a9e", "source_url": "/docs/release/9.2.10/#id-1.11.6.19.5"}, {"db_id": "48853351ecacaed5d6768613fbf3e7cf", "kind": "equivalent", "version": "9.1.15", "label": "9.1.15", "title": "避免 contrib/xml2 的 xslt_process() 中可能出现的崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b6793b5c6b6c7ea8509b5eedd285785cfce1ab0c45c109f3fb0da2d87a9a65b4"}, "url": "/docs/compare/?release=9.1.15#9.1.15-16bd96d1b5443a9e", "source_url": "/docs/release/9.1.15/#id-1.11.6.14.5"}]}, {"id": "9.0.19-210d95847fc2d9c5", "cves": [], "html": "<p>大量清理 Coverity 静态代码分析器的警告（Andres Freund、Tatsuo Ishii、Marko Kreen、Tom Lane、Michael Paquier）</p>\n<p>这些变更大多只是表面性的，但在某些情况下修复了极端情况的缺陷，例如内存不足失败后崩溃而不是正确报告错误。据信它们都不构成安全问题。</p>", "text": "大量清理 Coverity 静态代码分析器的警告（Andres Freund、Tatsuo Ishii、Marko Kreen、Tom Lane、Michael Paquier） 这些变更大多只是表面性的，但在某些情况下修复了极端情况的缺陷，例如内存不足失败后崩溃而不是正确报告错误。据信它们都不构成安全问题。", "title": "大量清理 Coverity 静态代码分析器的警告", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.19/#id-1.11.6.9.5", "source_hash": "446a1dd7e2e6dfd1abff77145b75741c6dc93ddf88272da460b23d612413aff3", "section_path": ["变更"], "commit_groups": [], "identity_text": "Numerous cleanups of warnings from Coverity static code analyzer (Andres Freund, Tatsuo Ishii, Marko Kreen, Tom Lane, Michael Paquier) These changes are mostly cosmetic but in some cases fix corner-case bugs, for example a crash rather than a proper error report after an out-of-memory failure. None are believed to represent security issues.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.19/changes/046", "db_id": "52c3d51c1d613490a4737cc67d575159", "patch_ids": [], "statement_hash": "e56a1015631e5a567dbe6b36b79f66bbf141543885654fc4906a0126c90f8e16", "relations": [{"rule": 2, "type": "equivalent", "target": "12e33c2f4f0e430ce044b6c5ba7659e9", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e56a1015631e5a567dbe6b36b79f66bbf141543885654fc4906a0126c90f8e16"}}, {"rule": 2, "type": "equivalent", "target": "4c8bc0c63a589cdc2848abaf2c856854", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e56a1015631e5a567dbe6b36b79f66bbf141543885654fc4906a0126c90f8e16"}}, {"rule": 2, "type": "equivalent", "target": "c0dea398485ffb3ab2ee0b2344343d54", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e56a1015631e5a567dbe6b36b79f66bbf141543885654fc4906a0126c90f8e16"}}, {"rule": 2, "type": "equivalent", "target": "ee40bf4e7114e983b86aef19f50a756d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e56a1015631e5a567dbe6b36b79f66bbf141543885654fc4906a0126c90f8e16"}}], "version": "9.0.19", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "c0dea398485ffb3ab2ee0b2344343d54", "kind": "equivalent", "version": "9.4.1", "label": "9.4.1", "title": "大量清理 Coverity 静态代码分析器的警告", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e56a1015631e5a567dbe6b36b79f66bbf141543885654fc4906a0126c90f8e16"}, "url": "/docs/compare/?release=9.4.1#9.4.1-210d95847fc2d9c5", "source_url": "/docs/release/9.4.1/#id-1.11.6.30.5"}, {"db_id": "12e33c2f4f0e430ce044b6c5ba7659e9", "kind": "equivalent", "version": "9.3.6", "label": "9.3.6", "title": "大量清理 Coverity 静态代码分析器的警告", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e56a1015631e5a567dbe6b36b79f66bbf141543885654fc4906a0126c90f8e16"}, "url": "/docs/compare/?release=9.3.6#9.3.6-210d95847fc2d9c5", "source_url": "/docs/release/9.3.6/#id-1.11.6.24.5"}, {"db_id": "ee40bf4e7114e983b86aef19f50a756d", "kind": "equivalent", "version": "9.2.10", "label": "9.2.10", "title": "大量清理 Coverity 静态代码分析器的警告", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e56a1015631e5a567dbe6b36b79f66bbf141543885654fc4906a0126c90f8e16"}, "url": "/docs/compare/?release=9.2.10#9.2.10-210d95847fc2d9c5", "source_url": "/docs/release/9.2.10/#id-1.11.6.19.5"}, {"db_id": "4c8bc0c63a589cdc2848abaf2c856854", "kind": "equivalent", "version": "9.1.15", "label": "9.1.15", "title": "大量清理 Coverity 静态代码分析器的警告", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e56a1015631e5a567dbe6b36b79f66bbf141543885654fc4906a0126c90f8e16"}, "url": "/docs/compare/?release=9.1.15#9.1.15-210d95847fc2d9c5", "source_url": "/docs/release/9.1.15/#id-1.11.6.14.5"}]}, {"id": "9.0.19-39cf90228ff2c6d6", "cves": [], "html": "<p>在构建期间检测不兼容的 OpenLDAP 版本（Noah Misch）</p>\n<p>对于 2.4.24 到 2.4.31（含）之间的 OpenLDAP 版本，<span>PostgreSQL</span> 后端进程可能在退出时崩溃。现在会根据编译时的 OpenLDAP 版本号在 <span>configure</span> 期间发出警告，并在 <code>contrib/dblink</code> 回归测试中测试该崩溃场景。</p>", "text": "在构建期间检测不兼容的 OpenLDAP 版本（Noah Misch） 对于 2.4.24 到 2.4.31（含）之间的 OpenLDAP 版本，PostgreSQL 后端进程可能在退出时崩溃。现在会根据编译时的 OpenLDAP 版本号在 configure 期间发出警告，并在 contrib/dblink 回归测试中测试该崩溃场景。", "title": "在构建期间检测不兼容的 OpenLDAP 版本", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.19/#id-1.11.6.9.5", "source_hash": "5fb7429dfd885c4d994f69d56c40132191dd154ef7d13a64e5359bc75afbf085", "section_path": ["变更"], "commit_groups": [], "identity_text": "Detect incompatible OpenLDAP versions during build (Noah Misch) With OpenLDAP versions 2.4.24 through 2.4.31, inclusive, PostgreSQL backends can crash at exit. Raise a warning during configure based on the compile-time OpenLDAP version number, and test the crashing scenario in the contrib/dblink regression test.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.19/changes/047", "db_id": "683140e5c1ecc12f0ea43d872bd098ea", "patch_ids": [], "statement_hash": "0d065bbeb86f700a618de8e8d237089a131521696632720be7a6ac97377a41d1", "relations": [{"rule": 2, "type": "equivalent", "target": "79ac97dd69845b99033f6ee8bcc77cb1", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0d065bbeb86f700a618de8e8d237089a131521696632720be7a6ac97377a41d1"}}, {"rule": 2, "type": "equivalent", "target": "c24848632f8fe17c9f5cfb8c353abc23", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0d065bbeb86f700a618de8e8d237089a131521696632720be7a6ac97377a41d1"}}, {"rule": 2, "type": "equivalent", "target": "dd89a54e049b842da00d4fe92a80425a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0d065bbeb86f700a618de8e8d237089a131521696632720be7a6ac97377a41d1"}}], "version": "9.0.19", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "dd89a54e049b842da00d4fe92a80425a", "kind": "equivalent", "version": "9.3.6", "label": "9.3.6", "title": "在构建期间检测不兼容的 OpenLDAP 版本", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0d065bbeb86f700a618de8e8d237089a131521696632720be7a6ac97377a41d1"}, "url": "/docs/compare/?release=9.3.6#9.3.6-39cf90228ff2c6d6", "source_url": "/docs/release/9.3.6/#id-1.11.6.24.5"}, {"db_id": "79ac97dd69845b99033f6ee8bcc77cb1", "kind": "equivalent", "version": "9.2.10", "label": "9.2.10", "title": "在构建期间检测不兼容的 OpenLDAP 版本", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0d065bbeb86f700a618de8e8d237089a131521696632720be7a6ac97377a41d1"}, "url": "/docs/compare/?release=9.2.10#9.2.10-39cf90228ff2c6d6", "source_url": "/docs/release/9.2.10/#id-1.11.6.19.5"}, {"db_id": "c24848632f8fe17c9f5cfb8c353abc23", "kind": "equivalent", "version": "9.1.15", "label": "9.1.15", "title": "在构建期间检测不兼容的 OpenLDAP 版本", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0d065bbeb86f700a618de8e8d237089a131521696632720be7a6ac97377a41d1"}, "url": "/docs/compare/?release=9.1.15#9.1.15-39cf90228ff2c6d6", "source_url": "/docs/release/9.1.15/#id-1.11.6.14.5"}]}, {"id": "9.0.19-0c0d4359830e76b8", "cves": [], "html": "<p>在非 MSVC 的 Windows 构建中，确保安装的 <code>libpq.dll</code> 带有执行权限（Noah Misch）</p>", "text": "在非 MSVC 的 Windows 构建中，确保安装的 libpq.dll 带有执行权限（Noah Misch）", "title": "在非 MSVC 的 Windows 构建中，确保安装的 libpq.dll 带有执行权限", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.19/#id-1.11.6.9.5", "source_hash": "7b278a93af318f4ccb7ecd85bf145d1889e6c511f2d3877e52ebcfad7e5beb17", "section_path": ["变更"], "commit_groups": [], "identity_text": "In non-MSVC Windows builds, ensure libpq.dll is installed with execute permissions (Noah Misch)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.19/changes/048", "db_id": "e377f519b858553b153c1e7082d3a479", "patch_ids": [], "statement_hash": "ba116a1a91d979fda4e6a890869fb980d0832321c68478e928f711046b37739e", "relations": [{"rule": 2, "type": "equivalent", "target": "226af100e754c994ca40d8f93abcdd6f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ba116a1a91d979fda4e6a890869fb980d0832321c68478e928f711046b37739e"}}, {"rule": 2, "type": "equivalent", "target": "7556256b3c127b4489aa25e04b1ae5d6", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ba116a1a91d979fda4e6a890869fb980d0832321c68478e928f711046b37739e"}}, {"rule": 2, "type": "equivalent", "target": "9d39c42de62004fc65b9ee9ae06eda1d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ba116a1a91d979fda4e6a890869fb980d0832321c68478e928f711046b37739e"}}], "version": "9.0.19", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "226af100e754c994ca40d8f93abcdd6f", "kind": "equivalent", "version": "9.3.6", "label": "9.3.6", "title": "在非 MSVC 的 Windows 构建中，确保安装的 libpq.dll 带有执行权限", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ba116a1a91d979fda4e6a890869fb980d0832321c68478e928f711046b37739e"}, "url": "/docs/compare/?release=9.3.6#9.3.6-0c0d4359830e76b8", "source_url": "/docs/release/9.3.6/#id-1.11.6.24.5"}, {"db_id": "7556256b3c127b4489aa25e04b1ae5d6", "kind": "equivalent", "version": "9.2.10", "label": "9.2.10", "title": "在非 MSVC 的 Windows 构建中，确保安装的 libpq.dll 带有执行权限", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ba116a1a91d979fda4e6a890869fb980d0832321c68478e928f711046b37739e"}, "url": "/docs/compare/?release=9.2.10#9.2.10-0c0d4359830e76b8", "source_url": "/docs/release/9.2.10/#id-1.11.6.19.5"}, {"db_id": "9d39c42de62004fc65b9ee9ae06eda1d", "kind": "equivalent", "version": "9.1.15", "label": "9.1.15", "title": "在非 MSVC 的 Windows 构建中，确保安装的 libpq.dll 带有执行权限", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ba116a1a91d979fda4e6a890869fb980d0832321c68478e928f711046b37739e"}, "url": "/docs/compare/?release=9.1.15#9.1.15-0c0d4359830e76b8", "source_url": "/docs/release/9.1.15/#id-1.11.6.14.5"}]}, {"id": "9.0.19-f47c85fceb5543ce", "cves": [], "html": "<p>使 <span>pg_regress</span> 成功退出时删除其创建的任何临时安装（Tom Lane）</p>\n<p>这使 <code>make check-world</code> 期间的磁盘空间用量大幅减少，因为该序列会创建大量临时安装。</p>", "text": "使 pg_regress 成功退出时删除其创建的任何临时安装（Tom Lane） 这使 make check-world 期间的磁盘空间用量大幅减少，因为该序列会创建大量临时安装。", "title": "使 pg_regress 成功退出时删除其创建的任何临时安装", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.19/#id-1.11.6.9.5", "source_hash": "fbcebfcbdaa9df663aac90e74851baf3e3e1ce4773d9210434ab8e653e351f20", "section_path": ["变更"], "commit_groups": [], "identity_text": "Make pg_regress remove any temporary installation it created upon successful exit (Tom Lane) This results in a very substantial reduction in disk space usage during make check-world, since that sequence involves creation of numerous temporary installations.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.19/changes/049", "db_id": "f93cb3800fc70d52a0eaf7ac3db017d0", "patch_ids": [], "statement_hash": "ee2f2ab7ad29356e5dddb6ffb4676a5c8faf6faac6f66444faf34c6a824c8f03", "relations": [{"rule": 2, "type": "equivalent", "target": "0f21fd45378823224fb8cd2c35018e1d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ee2f2ab7ad29356e5dddb6ffb4676a5c8faf6faac6f66444faf34c6a824c8f03"}}, {"rule": 2, "type": "equivalent", "target": "4a7e136d6a905f01773a4c148760dc26", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ee2f2ab7ad29356e5dddb6ffb4676a5c8faf6faac6f66444faf34c6a824c8f03"}}, {"rule": 2, "type": "equivalent", "target": "90cf5b9ee2356d5408f6174d793511a2", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ee2f2ab7ad29356e5dddb6ffb4676a5c8faf6faac6f66444faf34c6a824c8f03"}}, {"rule": 2, "type": "equivalent", "target": "f80a99586906e281b180c32f9f1f8305", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ee2f2ab7ad29356e5dddb6ffb4676a5c8faf6faac6f66444faf34c6a824c8f03"}}], "version": "9.0.19", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "0f21fd45378823224fb8cd2c35018e1d", "kind": "equivalent", "version": "9.4.1", "label": "9.4.1", "title": "使 pg_regress 成功退出时删除其创建的任何临时安装", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ee2f2ab7ad29356e5dddb6ffb4676a5c8faf6faac6f66444faf34c6a824c8f03"}, "url": "/docs/compare/?release=9.4.1#9.4.1-f47c85fceb5543ce", "source_url": "/docs/release/9.4.1/#id-1.11.6.30.5"}, {"db_id": "90cf5b9ee2356d5408f6174d793511a2", "kind": "equivalent", "version": "9.3.6", "label": "9.3.6", "title": "使 pg_regress 成功退出时删除其创建的任何临时安装", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ee2f2ab7ad29356e5dddb6ffb4676a5c8faf6faac6f66444faf34c6a824c8f03"}, "url": "/docs/compare/?release=9.3.6#9.3.6-f47c85fceb5543ce", "source_url": "/docs/release/9.3.6/#id-1.11.6.24.5"}, {"db_id": "f80a99586906e281b180c32f9f1f8305", "kind": "equivalent", "version": "9.2.10", "label": "9.2.10", "title": "使 pg_regress 成功退出时删除其创建的任何临时安装", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ee2f2ab7ad29356e5dddb6ffb4676a5c8faf6faac6f66444faf34c6a824c8f03"}, "url": "/docs/compare/?release=9.2.10#9.2.10-f47c85fceb5543ce", "source_url": "/docs/release/9.2.10/#id-1.11.6.19.5"}, {"db_id": "4a7e136d6a905f01773a4c148760dc26", "kind": "equivalent", "version": "9.1.15", "label": "9.1.15", "title": "使 pg_regress 成功退出时删除其创建的任何临时安装", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ee2f2ab7ad29356e5dddb6ffb4676a5c8faf6faac6f66444faf34c6a824c8f03"}, "url": "/docs/compare/?release=9.1.15#9.1.15-f47c85fceb5543ce", "source_url": "/docs/release/9.1.15/#id-1.11.6.14.5"}]}, {"id": "9.0.19-77723f91da6d14c0", "cves": [], "html": "<p>支持随时间改变 UTC 偏移的时区缩写（Tom Lane）</p>\n<p>此前，<span>PostgreSQL</span> 假定时区缩写（如 <code>EST</code>）关联的 UTC 偏移在任何特定区域设置的用法中永不改变。然而这一假设在现实世界中并不成立，因此引入了让区域缩写表示有时会变化的 UTC 偏移的能力。更新了时区缩写定义文件，在自 1970 年以来缩写的 UTC 偏移发生过变化的时区区域设置中使用此功能（依据 IANA 时区数据库）。在此类时区中，<span>PostgreSQL</span> 现在会根据给定日期为缩写关联正确的 UTC 偏移。</p>", "text": "支持随时间改变 UTC 偏移的时区缩写（Tom Lane） 此前，PostgreSQL 假定时区缩写（如 EST）关联的 UTC 偏移在任何特定区域设置的用法中永不改变。然而这一假设在现实世界中并不成立，因此引入了让区域缩写表示有时会变化的 UTC 偏移的能力。更新了时区缩写定义文件，在自 1970 年以来缩写的 UTC 偏移发生过变化的时区区域设置中使用此功能（依据 IANA 时区数据库）。在此类时区中，PostgreSQL 现在会根据给定日期为缩写关联正确的 UTC 偏移。", "title": "支持随时间改变 UTC 偏移的时区缩写", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.19/#id-1.11.6.9.5", "source_hash": "37f5837e4d94ff2d4f597952bf4e68071d256cf607472d8da905c8f70d95a36d", "section_path": ["变更"], "commit_groups": [], "identity_text": "Support time zone abbreviations that change UTC offset from time to time (Tom Lane) Previously, PostgreSQL assumed that the UTC offset associated with a time zone abbreviation (such as EST) never changes in the usage of any particular locale. However this assumption fails in the real world, so introduce the ability for a zone abbreviation to represent a UTC offset that sometimes changes. Update the zone abbreviation definition files to make use of this feature in timezone locales that have changed the UTC offset of their abbreviations since 1970 (according to the IANA timezone database). In such timezones, PostgreSQL will now associate the correct UTC offset with the abbreviation depending on the given date.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.19/changes/050", "db_id": "b4cdc7057684904bbb5e7ccbfa582405", "patch_ids": [], "statement_hash": "a6501e3be8faaec1aef9006ff3436c99d826569caaba0e379a16ca0000209bff", "relations": [{"rule": 2, "type": "equivalent", "target": "854ddf984dcdb9921b26d5ae0ee9de60", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a6501e3be8faaec1aef9006ff3436c99d826569caaba0e379a16ca0000209bff"}}, {"rule": 2, "type": "equivalent", "target": "9231b02c97705c0ca64095e3e093c6de", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a6501e3be8faaec1aef9006ff3436c99d826569caaba0e379a16ca0000209bff"}}, {"rule": 2, "type": "equivalent", "target": "f08e49dc6b542196f8383acd3b0b9c65", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a6501e3be8faaec1aef9006ff3436c99d826569caaba0e379a16ca0000209bff"}}], "version": "9.0.19", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "854ddf984dcdb9921b26d5ae0ee9de60", "kind": "equivalent", "version": "9.3.6", "label": "9.3.6", "title": "支持随时间改变 UTC 偏移的时区缩写", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a6501e3be8faaec1aef9006ff3436c99d826569caaba0e379a16ca0000209bff"}, "url": "/docs/compare/?release=9.3.6#9.3.6-77723f91da6d14c0", "source_url": "/docs/release/9.3.6/#id-1.11.6.24.5"}, {"db_id": "9231b02c97705c0ca64095e3e093c6de", "kind": "equivalent", "version": "9.2.10", "label": "9.2.10", "title": "支持随时间改变 UTC 偏移的时区缩写", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a6501e3be8faaec1aef9006ff3436c99d826569caaba0e379a16ca0000209bff"}, "url": "/docs/compare/?release=9.2.10#9.2.10-77723f91da6d14c0", "source_url": "/docs/release/9.2.10/#id-1.11.6.19.5"}, {"db_id": "f08e49dc6b542196f8383acd3b0b9c65", "kind": "equivalent", "version": "9.1.15", "label": "9.1.15", "title": "支持随时间改变 UTC 偏移的时区缩写", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a6501e3be8faaec1aef9006ff3436c99d826569caaba0e379a16ca0000209bff"}, "url": "/docs/compare/?release=9.1.15#9.1.15-77723f91da6d14c0", "source_url": "/docs/release/9.1.15/#id-1.11.6.14.5"}]}, {"id": "9.0.19-032540b2097e4592", "cves": [], "html": "<p>更新时区缩写列表（Tom Lane）</p>\n<p>把 CST（中国标准时间）加入列表。移除 ADT 作为<span>“<span>阿拉伯夏令时</span>”</span>的引用——这个缩写自 2007 年起已不再使用；因此，声称它与<span>“<span>大西洋夏令时</span>”</span>冲突似乎没有特别的帮助。修正 CKT（库克群岛）、FJT 和 FJST（斐济）完全错误的 GMT 偏移；此前我们甚至把它们放到了日期变更线的错误一侧。</p>", "text": "更新时区缩写列表（Tom Lane） 把 CST（中国标准时间）加入列表。移除 ADT 作为“阿拉伯夏令时”的引用——这个缩写自 2007 年起已不再使用；因此，声称它与“大西洋夏令时”冲突似乎没有特别的帮助。修正 CKT（库克群岛）、FJT 和 FJST（斐济）完全错误的 GMT 偏移；此前我们甚至把它们放到了日期变更线的错误一侧。", "title": "更新时区缩写列表", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.19/#id-1.11.6.9.5", "source_hash": "62eb29478137c34690e7bfb0f041a9d373272d8140386f23cf3181bd5c015219", "section_path": ["变更"], "commit_groups": [], "identity_text": "Update time zone abbreviations lists (Tom Lane) Add CST (China Standard Time) to our lists. Remove references to ADT as Arabia Daylight Time, an abbreviation that's been out of use since 2007; therefore, claiming there is a conflict with Atlantic Daylight Time doesn't seem especially helpful. Fix entirely incorrect GMT offsets for CKT (Cook Islands), FJT, and FJST (Fiji); we didn't even have them on the proper side of the date line.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.19/changes/051", "db_id": "f4166fde9bded9b1fc5f96fb69019308", "patch_ids": [], "statement_hash": "e01d16beb0301981dff1bb6ff34c6f2da9b0baeb108e73d27dbe4698e6b8bc4c", "relations": [{"rule": 2, "type": "equivalent", "target": "25cb740945059a2a5b40cb5773d4c0b1", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e01d16beb0301981dff1bb6ff34c6f2da9b0baeb108e73d27dbe4698e6b8bc4c"}}, {"rule": 2, "type": "equivalent", "target": "494c4fbd0c9ea7e750866c69da07da6b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e01d16beb0301981dff1bb6ff34c6f2da9b0baeb108e73d27dbe4698e6b8bc4c"}}, {"rule": 2, "type": "equivalent", "target": "92a800a5f70e680321cac35d4c4bd97e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e01d16beb0301981dff1bb6ff34c6f2da9b0baeb108e73d27dbe4698e6b8bc4c"}}], "version": "9.0.19", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "92a800a5f70e680321cac35d4c4bd97e", "kind": "equivalent", "version": "9.3.6", "label": "9.3.6", "title": "更新时区缩写列表", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e01d16beb0301981dff1bb6ff34c6f2da9b0baeb108e73d27dbe4698e6b8bc4c"}, "url": "/docs/compare/?release=9.3.6#9.3.6-032540b2097e4592", "source_url": "/docs/release/9.3.6/#id-1.11.6.24.5"}, {"db_id": "494c4fbd0c9ea7e750866c69da07da6b", "kind": "equivalent", "version": "9.2.10", "label": "9.2.10", "title": "更新时区缩写列表", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e01d16beb0301981dff1bb6ff34c6f2da9b0baeb108e73d27dbe4698e6b8bc4c"}, "url": "/docs/compare/?release=9.2.10#9.2.10-032540b2097e4592", "source_url": "/docs/release/9.2.10/#id-1.11.6.19.5"}, {"db_id": "25cb740945059a2a5b40cb5773d4c0b1", "kind": "equivalent", "version": "9.1.15", "label": "9.1.15", "title": "更新时区缩写列表", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e01d16beb0301981dff1bb6ff34c6f2da9b0baeb108e73d27dbe4698e6b8bc4c"}, "url": "/docs/compare/?release=9.1.15#9.1.15-032540b2097e4592", "source_url": "/docs/release/9.1.15/#id-1.11.6.14.5"}]}, {"id": "9.0.19-75a4e432b9ec73f2", "cves": [], "html": "<p>把时区数据文件更新为 <span>tzdata</span> 版本 2015a。</p>\n<p>IANA 时区数据库为所有澳大利亚时区采用了 <code>A<em><code>x</code></em>ST</code>/<code>A<em><code>x</code></em>DT</code> 形式的缩写，以反映他们认为的当地当前多数用法。这些名称与其他地方的用法不冲突（唯一例外是表示 Acre 夏令时的 ACST，该用法自 1994 年起已废弃）。因此，我们把这些名称采纳进<span>“<span>默认</span>”</span>时区缩写集。<span>“<span>澳大利亚</span>”</span>缩写集现在只包含 CST、EAST、EST、SAST、SAT 和 WST，这些被认为主要是历史用法。注意，在<span>“<span>默认</span>”</span>缩写集中，SAST 也已改为南非标准时间。</p>\n<p>此外，新增时区缩写 SRET（Asia/Srednekolymsk）和 XJT（Asia/Urumqi），并对西萨摩亚使用 WSST/WSDT。同时，智利、墨西哥、特克斯和凯科斯群岛（America/Grand_Turk）以及斐济的夏令时法规有变更。还为巴布亚新几内亚部分地区新增了时区 Pacific/Bougainville。另外还有大量针对历史（1970 年以前）时区数据的修正。</p>", "text": "把时区数据文件更新为 tzdata 版本 2015a。 IANA 时区数据库为所有澳大利亚时区采用了 AxST/AxDT 形式的缩写，以反映他们认为的当地当前多数用法。这些名称与其他地方的用法不冲突（唯一例外是表示 Acre 夏令时的 ACST，该用法自 1994 年起已废弃）。因此，我们把这些名称采纳进“默认”时区缩写集。“澳大利亚”缩写集现在只包含 CST、EAST、EST、SAST、SAT 和 WST，这些被认为主要是历史用法。注意，在“默认”缩写集中，SAST 也已改为南非标准时间。 此外，新增时区缩写 SRET（Asia/Srednekolymsk）和 XJT（Asia/Urumqi），并对西萨摩亚使用 WSST/WSDT。同时，智利、墨西哥、特克斯和凯科斯群岛（America/Grand_Turk）以及斐济的夏令时法规有变更。还为巴布亚新几内亚部分地区新增了时区 Pacific/Bougainville。另外还有大量针对历史（1970 年以前）时区数据的修正。", "title": "把时区数据文件更新为 tzdata 版本 2015a。", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.19/#id-1.11.6.9.5", "source_hash": "83e5ecb974e959239ee6a7726116927441ffa698206fe7f5b4a8c88068ac90d4", "section_path": ["变更"], "commit_groups": [], "identity_text": "Update time zone data files to tzdata release 2015a. The IANA timezone database has adopted abbreviations of the form AxST/AxDT for all Australian time zones, reflecting what they believe to be current majority practice Down Under. These names do not conflict with usage elsewhere (other than ACST for Acre Summer Time, which has been in disuse since 1994). Accordingly, adopt these names into our Default timezone abbreviation set. The Australia abbreviation set now contains only CST, EAST, EST, SAST, SAT, and WST, all of which are thought to be mostly historical usage. Note that SAST has also been changed to be South Africa Standard Time in the Default abbreviation set. Also, add zone abbreviations SRET (Asia/Srednekolymsk) and XJT (Asia/Urumqi), and use WSST/WSDT for western Samoa. Also, there were DST law changes in Chile, Mexico, the Turks & Caicos Islands (America/Grand_Turk), and Fiji. There is a new zone Pacific/Bougainville for portions of Papua New Guinea. Also, numerous corrections for historical (pre-1970) time zone data.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.19/changes/052", "db_id": "3e80abb929ccd280ce8be6e8d43d4b7b", "patch_ids": [], "statement_hash": "e6fa98831ae8effbbe330002e232775d03710e117ba2b88169925b7e86f63346", "relations": [{"rule": 2, "type": "equivalent", "target": "1bea67b9bb186fcda99a837258183e3c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e6fa98831ae8effbbe330002e232775d03710e117ba2b88169925b7e86f63346"}}, {"rule": 2, "type": "equivalent", "target": "4fd9baa5e7f7c8b8ac2b40971340517c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e6fa98831ae8effbbe330002e232775d03710e117ba2b88169925b7e86f63346"}}, {"rule": 2, "type": "equivalent", "target": "87ee59fa9d13e6f01840f0900a31de50", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e6fa98831ae8effbbe330002e232775d03710e117ba2b88169925b7e86f63346"}}], "version": "9.0.19", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "87ee59fa9d13e6f01840f0900a31de50", "kind": "equivalent", "version": "9.3.6", "label": "9.3.6", "title": "把时区数据文件更新为 tzdata 版本 2015a。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e6fa98831ae8effbbe330002e232775d03710e117ba2b88169925b7e86f63346"}, "url": "/docs/compare/?release=9.3.6#9.3.6-75a4e432b9ec73f2", "source_url": "/docs/release/9.3.6/#id-1.11.6.24.5"}, {"db_id": "1bea67b9bb186fcda99a837258183e3c", "kind": "equivalent", "version": "9.2.10", "label": "9.2.10", "title": "把时区数据文件更新为 tzdata 版本 2015a。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e6fa98831ae8effbbe330002e232775d03710e117ba2b88169925b7e86f63346"}, "url": "/docs/compare/?release=9.2.10#9.2.10-75a4e432b9ec73f2", "source_url": "/docs/release/9.2.10/#id-1.11.6.19.5"}, {"db_id": "4fd9baa5e7f7c8b8ac2b40971340517c", "kind": "equivalent", "version": "9.1.15", "label": "9.1.15", "title": "把时区数据文件更新为 tzdata 版本 2015a。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e6fa98831ae8effbbe330002e232775d03710e117ba2b88169925b7e86f63346"}, "url": "/docs/compare/?release=9.1.15#9.1.15-75a4e432b9ec73f2", "source_url": "/docs/release/9.1.15/#id-1.11.6.14.5"}]}]}, {"date": "2014-07-24", "build": "9.0.18", "major": "9.0", "minor": 18, "manual": "9.0", "status": "stable", "doc_git": "", "version": "9.0.18", "eol_date": "2015-10-08", "date_text": "2014-07-24", "supported": false, "manual_url": "/docs/9.0/release-9-0-18.html", "source_url": "/docs/release/9.0.18/", "entry_count": 28, "placeholder": false, "content_hash": "444337723394b5917d340c87aef5c1b85adca3558fa7299553a411a69cc8c97d", "manual_build": "9.0.23", "source_as_of": "", "changes_count": 28, "doc_loaded_at": "2026-09-26T02:56:48.570247", "migration_html": "<p>对于运行 9.0.X 的用户，不需要进行转储/恢复。</p>\n<p>不过，本版本纠正了某些 GiST 索引的索引损坏问题。请参见下面第一条变更日志，以确认你的安装是否受影响以及应采取的步骤。</p>\n<p>不过，如果你是从早于 9.0.15 的版本升级，请参见<a href=\"/docs/9.0/release-9-0-15.html\" title=\"E.9. 版本 9.0.15\">第 E.9 节</a>。</p>", "compatibility_count": 0, "label": "9.0.18", "status_label": "历史版本", "eol": "2015-10-08", "age_days": 4451, "support_days": -4010, "entries": [{"id": "9.0.18-d2c6d31db7b8f554", "cves": [], "html": "<p>正确初始化 <code>contrib/btree_gist</code> 在 <code>bit</code> 列上索引的填充字节（Heikki Linnakangas）</p>\n<p>这一错误可能导致本应比较相等的值不被视为相等，从而产生错误的查询结果。在 <code>bit</code> 或 <code>bit varying</code> 列上建有 GiST 索引的用户，在安装此更新后应对这些索引执行 <code>REINDEX</code>。</p>", "text": "正确初始化 contrib/btree_gist 在 bit 列上索引的填充字节（Heikki Linnakangas） 这一错误可能导致本应比较相等的值不被视为相等，从而产生错误的查询结果。在 bit 或 bit varying 列上建有 GiST 索引的用户，在安装此更新后应对这些索引执行 REINDEX。", "title": "正确初始化 contrib/btree_gist 在 bit 列上索引的填充字节", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.18/#id-1.11.6.10.5", "source_hash": "709d713e12d304166f987b54c4dce9fb04d23a1afead525014a2a3ee1f10e32f", "section_path": ["变更"], "commit_groups": [], "identity_text": "Correctly initialize padding bytes in contrib/btree_gist indexes on bit columns (Heikki Linnakangas) This error could result in incorrect query results due to values that should compare equal not being seen as equal. Users with GiST indexes on bit or bit varying columns should REINDEX those indexes after installing this update.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.18/changes/001", "db_id": "c08b5ee3c4feadbdf794e02f47e53d44", "patch_ids": [], "statement_hash": "c5ec7f05650e8d35c9b6ce456cec4314dd5b264d089fd9a8a65ddb5c8d01bf11", "relations": [{"rule": 2, "type": "equivalent", "target": "5d8b301dac7ea946159414f417b80e20", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c5ec7f05650e8d35c9b6ce456cec4314dd5b264d089fd9a8a65ddb5c8d01bf11"}}, {"rule": 2, "type": "equivalent", "target": "bb8c4a129b84f2137f55859616c7a7c6", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c5ec7f05650e8d35c9b6ce456cec4314dd5b264d089fd9a8a65ddb5c8d01bf11"}}, {"rule": 2, "type": "equivalent", "target": "c4f7127cc64d8fe10e55c425915ade36", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c5ec7f05650e8d35c9b6ce456cec4314dd5b264d089fd9a8a65ddb5c8d01bf11"}}], "version": "9.0.18", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "5d8b301dac7ea946159414f417b80e20", "kind": "equivalent", "version": "9.3.5", "label": "9.3.5", "title": "正确初始化 contrib/btree_gist 在 bit 列上索引的填充字节", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c5ec7f05650e8d35c9b6ce456cec4314dd5b264d089fd9a8a65ddb5c8d01bf11"}, "url": "/docs/compare/?release=9.3.5#9.3.5-d2c6d31db7b8f554", "source_url": "/docs/release/9.3.5/#id-1.11.6.25.5"}, {"db_id": "bb8c4a129b84f2137f55859616c7a7c6", "kind": "equivalent", "version": "9.2.9", "label": "9.2.9", "title": "正确初始化 contrib/btree_gist 在 bit 列上索引的填充字节", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c5ec7f05650e8d35c9b6ce456cec4314dd5b264d089fd9a8a65ddb5c8d01bf11"}, "url": "/docs/compare/?release=9.2.9#9.2.9-d2c6d31db7b8f554", "source_url": "/docs/release/9.2.9/#id-1.11.6.20.5"}, {"db_id": "c4f7127cc64d8fe10e55c425915ade36", "kind": "equivalent", "version": "9.1.14", "label": "9.1.14", "title": "正确初始化 contrib/btree_gist 在 bit 列上索引的填充字节", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c5ec7f05650e8d35c9b6ce456cec4314dd5b264d089fd9a8a65ddb5c8d01bf11"}, "url": "/docs/compare/?release=9.1.14#9.1.14-d2c6d31db7b8f554", "source_url": "/docs/release/9.1.14/#id-1.11.6.15.5"}]}, {"id": "9.0.18-18682773bb8a060c", "cves": [], "html": "<p>在删除 GIN 列表页时防止残缺页（torn page）（Heikki Linnakangas）</p>\n<p>此修复可防止在页面更新写入磁盘期间发生系统崩溃时可能出现的索引损坏。</p>", "text": "在删除 GIN 列表页时防止残缺页（torn page）（Heikki Linnakangas） 此修复可防止在页面更新写入磁盘期间发生系统崩溃时可能出现的索引损坏。", "title": "在删除 GIN 列表页时防止残缺页（torn page）", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.18/#id-1.11.6.10.5", "source_hash": "afcb91dde071d7de5a6c7fcbe1316c8991d363ec78826005a4d89b02863e4d4a", "section_path": ["变更"], "commit_groups": [], "identity_text": "Protect against torn pages when deleting GIN list pages (Heikki Linnakangas) This fix prevents possible index corruption if a system crash occurs while the page update is being written to disk.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.18/changes/002", "db_id": "8329b9d263d6d6befba8bbe22cd17322", "patch_ids": [], "statement_hash": "3069a09e51a039b54312df352e46e435116f1aab6749579fa61617bc1036c4dc", "relations": [{"rule": 2, "type": "equivalent", "target": "9c3944d9105c97482a4dc2fb8776b26f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3069a09e51a039b54312df352e46e435116f1aab6749579fa61617bc1036c4dc"}}, {"rule": 2, "type": "equivalent", "target": "b73f1e86dca122120bdb13fac7f9140e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3069a09e51a039b54312df352e46e435116f1aab6749579fa61617bc1036c4dc"}}, {"rule": 2, "type": "equivalent", "target": "ee04033d30f9bad8474c949135bf2bef", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3069a09e51a039b54312df352e46e435116f1aab6749579fa61617bc1036c4dc"}}], "version": "9.0.18", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "9c3944d9105c97482a4dc2fb8776b26f", "kind": "equivalent", "version": "9.3.5", "label": "9.3.5", "title": "在删除 GIN 列表页时防止残缺页（torn page）", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3069a09e51a039b54312df352e46e435116f1aab6749579fa61617bc1036c4dc"}, "url": "/docs/compare/?release=9.3.5#9.3.5-18682773bb8a060c", "source_url": "/docs/release/9.3.5/#id-1.11.6.25.5"}, {"db_id": "ee04033d30f9bad8474c949135bf2bef", "kind": "equivalent", "version": "9.2.9", "label": "9.2.9", "title": "在删除 GIN 列表页时防止残缺页（torn page）", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3069a09e51a039b54312df352e46e435116f1aab6749579fa61617bc1036c4dc"}, "url": "/docs/compare/?release=9.2.9#9.2.9-18682773bb8a060c", "source_url": "/docs/release/9.2.9/#id-1.11.6.20.5"}, {"db_id": "b73f1e86dca122120bdb13fac7f9140e", "kind": "equivalent", "version": "9.1.14", "label": "9.1.14", "title": "在删除 GIN 列表页时防止残缺页（torn page）", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3069a09e51a039b54312df352e46e435116f1aab6749579fa61617bc1036c4dc"}, "url": "/docs/compare/?release=9.1.14#9.1.14-18682773bb8a060c", "source_url": "/docs/release/9.1.14/#id-1.11.6.15.5"}]}, {"id": "9.0.18-3f8b30812c5bc055", "cves": [], "html": "<p>在从 WAL 重放更新时不清除 GiST 索引页的右链接（Heikki Linnakangas）</p>\n<p>这一错误可能导致热备中执行的 GiST 索引扫描出现瞬时错误的结果。</p>", "text": "在从 WAL 重放更新时不清除 GiST 索引页的右链接（Heikki Linnakangas） 这一错误可能导致热备中执行的 GiST 索引扫描出现瞬时错误的结果。", "title": "在从 WAL 重放更新时不清除 GiST 索引页的右链接", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.18/#id-1.11.6.10.5", "source_hash": "a5857dd9de60f280e88715cfdfa6c6cf03562cd2eb6799d62bee57c753c789df", "section_path": ["变更"], "commit_groups": [], "identity_text": "Don't clear the right-link of a GiST index page while replaying updates from WAL (Heikki Linnakangas) This error could lead to transiently wrong answers from GiST index scans performed in Hot Standby.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.18/changes/003", "db_id": "979dc6be64dc95c5598f2e4eb26071f6", "patch_ids": [], "statement_hash": "def835604a6dace9bf61c26a054e374964e1352d8428f232acb25e794b113b19", "relations": [{"rule": 2, "type": "equivalent", "target": "5425fcaaa9bd29ad257e597861d9667b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "def835604a6dace9bf61c26a054e374964e1352d8428f232acb25e794b113b19"}}, {"rule": 2, "type": "equivalent", "target": "5a9b0ae5835cea90e10cdfaf0e83b577", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "def835604a6dace9bf61c26a054e374964e1352d8428f232acb25e794b113b19"}}, {"rule": 2, "type": "equivalent", "target": "fedab52c93a87fca93f07ce5578f54d9", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "def835604a6dace9bf61c26a054e374964e1352d8428f232acb25e794b113b19"}}], "version": "9.0.18", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "fedab52c93a87fca93f07ce5578f54d9", "kind": "equivalent", "version": "9.3.5", "label": "9.3.5", "title": "在从 WAL 重放更新时不清除 GiST 索引页的右链接", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "def835604a6dace9bf61c26a054e374964e1352d8428f232acb25e794b113b19"}, "url": "/docs/compare/?release=9.3.5#9.3.5-3f8b30812c5bc055", "source_url": "/docs/release/9.3.5/#id-1.11.6.25.5"}, {"db_id": "5425fcaaa9bd29ad257e597861d9667b", "kind": "equivalent", "version": "9.2.9", "label": "9.2.9", "title": "在从 WAL 重放更新时不清除 GiST 索引页的右链接", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "def835604a6dace9bf61c26a054e374964e1352d8428f232acb25e794b113b19"}, "url": "/docs/compare/?release=9.2.9#9.2.9-3f8b30812c5bc055", "source_url": "/docs/release/9.2.9/#id-1.11.6.20.5"}, {"db_id": "5a9b0ae5835cea90e10cdfaf0e83b577", "kind": "equivalent", "version": "9.1.14", "label": "9.1.14", "title": "在从 WAL 重放更新时不清除 GiST 索引页的右链接", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "def835604a6dace9bf61c26a054e374964e1352d8428f232acb25e794b113b19"}, "url": "/docs/compare/?release=9.1.14#9.1.14-3f8b30812c5bc055", "source_url": "/docs/release/9.1.14/#id-1.11.6.15.5"}]}, {"id": "9.0.18-e12dc053d193646e", "cves": [], "html": "<p>修复嵌套调用 <code>ReceiveSharedInvalidMessages</code> 期间缓存失效可能不正确的问题（Andres Freund）</p>", "text": "修复嵌套调用 ReceiveSharedInvalidMessages 期间缓存失效可能不正确的问题（Andres Freund）", "title": "修复嵌套调用 ReceiveSharedInvalidMessages 期间缓存失效可能不正确的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.18/#id-1.11.6.10.5", "source_hash": "6a910cc9ef7a11b0825eb563239fa192a2dc2fee8e6b26b736d1f76b5f1966c2", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix possibly-incorrect cache invalidation during nested calls to ReceiveSharedInvalidMessages (Andres Freund)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.18/changes/004", "db_id": "1aaf0201a17b65d2b48c799e55a1bf9a", "patch_ids": [], "statement_hash": "e020f62903dfedf2fadcff8225d57b0c2bf17ac13944c0a4442718d8c344c26c", "relations": [{"rule": 2, "type": "equivalent", "target": "273c053f34944a528604aa28cc9e7f17", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e020f62903dfedf2fadcff8225d57b0c2bf17ac13944c0a4442718d8c344c26c"}}, {"rule": 2, "type": "equivalent", "target": "941fc67f41deef8bb58899550331ab9f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e020f62903dfedf2fadcff8225d57b0c2bf17ac13944c0a4442718d8c344c26c"}}, {"rule": 2, "type": "equivalent", "target": "abb57a6802c3d73430cc1045e10305f7", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e020f62903dfedf2fadcff8225d57b0c2bf17ac13944c0a4442718d8c344c26c"}}], "version": "9.0.18", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "273c053f34944a528604aa28cc9e7f17", "kind": "equivalent", "version": "9.3.5", "label": "9.3.5", "title": "修复嵌套调用 ReceiveSharedInvalidMessages 期间缓存失效可能不正确的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e020f62903dfedf2fadcff8225d57b0c2bf17ac13944c0a4442718d8c344c26c"}, "url": "/docs/compare/?release=9.3.5#9.3.5-e12dc053d193646e", "source_url": "/docs/release/9.3.5/#id-1.11.6.25.5"}, {"db_id": "abb57a6802c3d73430cc1045e10305f7", "kind": "equivalent", "version": "9.2.9", "label": "9.2.9", "title": "修复嵌套调用 ReceiveSharedInvalidMessages 期间缓存失效可能不正确的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e020f62903dfedf2fadcff8225d57b0c2bf17ac13944c0a4442718d8c344c26c"}, "url": "/docs/compare/?release=9.2.9#9.2.9-e12dc053d193646e", "source_url": "/docs/release/9.2.9/#id-1.11.6.20.5"}, {"db_id": "941fc67f41deef8bb58899550331ab9f", "kind": "equivalent", "version": "9.1.14", "label": "9.1.14", "title": "修复嵌套调用 ReceiveSharedInvalidMessages 期间缓存失效可能不正确的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e020f62903dfedf2fadcff8225d57b0c2bf17ac13944c0a4442718d8c344c26c"}, "url": "/docs/compare/?release=9.1.14#9.1.14-e12dc053d193646e", "source_url": "/docs/release/9.1.14/#id-1.11.6.15.5"}]}, {"id": "9.0.18-faf4c8b633519c08", "cves": [], "html": "<p>当子查询的目标列表中存在集合返回函数时，不再假定其输出是唯一的（David Rowley）</p>\n<p>这一疏忽可能导致诸如 <code>WHERE x IN (SELECT y, generate_series(1,10) FROM t GROUP BY y)</code> 之类的构造被错误优化。</p>", "text": "当子查询的目标列表中存在集合返回函数时，不再假定其输出是唯一的（David Rowley） 这一疏忽可能导致诸如 WHERE x IN (SELECT y, generate_series(1,10) FROM t GROUP BY y) 之类的构造被错误优化。", "title": "当子查询的目标列表中存在集合返回函数时，不再假定其输出是唯一的", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.18/#id-1.11.6.10.5", "source_hash": "e3cdb5e885713fbb6e916a461cea8a5edd6d8b8eca4f8d00b6d8d07c14c51ad3", "section_path": ["变更"], "commit_groups": [], "identity_text": "Don't assume a subquery's output is unique if there's a set-returning function in its targetlist (David Rowley) This oversight could lead to misoptimization of constructs like WHERE x IN (SELECT y, generate_series(1,10) FROM t GROUP BY y).", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.18/changes/005", "db_id": "11db6efc9d4ec2ae33c51444e0bb7f14", "patch_ids": [], "statement_hash": "8b3826bda5d95d5a7ef8820f8e0f7a01f1b7473cb23bd437ff1eb481ac76cd8f", "relations": [{"rule": 2, "type": "equivalent", "target": "3f0de4ee4478bf34317072fe1e1d1d75", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8b3826bda5d95d5a7ef8820f8e0f7a01f1b7473cb23bd437ff1eb481ac76cd8f"}}, {"rule": 2, "type": "equivalent", "target": "4091f69cd098522abf12a3f99c116f25", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8b3826bda5d95d5a7ef8820f8e0f7a01f1b7473cb23bd437ff1eb481ac76cd8f"}}, {"rule": 2, "type": "equivalent", "target": "84948cbdcbf960a5938ea2bb5322a55f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8b3826bda5d95d5a7ef8820f8e0f7a01f1b7473cb23bd437ff1eb481ac76cd8f"}}], "version": "9.0.18", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "84948cbdcbf960a5938ea2bb5322a55f", "kind": "equivalent", "version": "9.3.5", "label": "9.3.5", "title": "当子查询的目标列表中存在集合返回函数时，不再假定其输出是唯一的", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8b3826bda5d95d5a7ef8820f8e0f7a01f1b7473cb23bd437ff1eb481ac76cd8f"}, "url": "/docs/compare/?release=9.3.5#9.3.5-faf4c8b633519c08", "source_url": "/docs/release/9.3.5/#id-1.11.6.25.5"}, {"db_id": "4091f69cd098522abf12a3f99c116f25", "kind": "equivalent", "version": "9.2.9", "label": "9.2.9", "title": "当子查询的目标列表中存在集合返回函数时，不再假定其输出是唯一的", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8b3826bda5d95d5a7ef8820f8e0f7a01f1b7473cb23bd437ff1eb481ac76cd8f"}, "url": "/docs/compare/?release=9.2.9#9.2.9-faf4c8b633519c08", "source_url": "/docs/release/9.2.9/#id-1.11.6.20.5"}, {"db_id": "3f0de4ee4478bf34317072fe1e1d1d75", "kind": "equivalent", "version": "9.1.14", "label": "9.1.14", "title": "当子查询的目标列表中存在集合返回函数时，不再假定其输出是唯一的", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8b3826bda5d95d5a7ef8820f8e0f7a01f1b7473cb23bd437ff1eb481ac76cd8f"}, "url": "/docs/compare/?release=9.1.14#9.1.14-faf4c8b633519c08", "source_url": "/docs/release/9.1.14/#id-1.11.6.15.5"}]}, {"id": "9.0.18-3b2656e08e941538", "cves": [], "html": "<p>修复未能对结构化类型的组合元素中的字段执行解 TOAST 的错误（Tom Lane）</p>\n<p>这纠正了 TOAST 指针可能未经解引用就被复制到其他表的情况。如果原始数据随后被删除，当这个已悬空的指针被使用时，会导致诸如 <span>“<span>missing chunk number 0 for toast value ...</span>”</span> 之类的错误。</p>", "text": "修复未能对结构化类型的组合元素中的字段执行解 TOAST 的错误（Tom Lane） 这纠正了 TOAST 指针可能未经解引用就被复制到其他表的情况。如果原始数据随后被删除，当这个已悬空的指针被使用时，会导致诸如 “missing chunk number 0 for toast value ...” 之类的错误。", "title": "修复未能对结构化类型的组合元素中的字段执行解 TOAST 的错误", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.18/#id-1.11.6.10.5", "source_hash": "38154f67a0e2975afbac7fb88e7afa4b9f409aa658c945df42c14da9fab43137", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix failure to detoast fields in composite elements of structured types (Tom Lane) This corrects cases where TOAST pointers could be copied into other tables without being dereferenced. If the original data is later deleted, it would lead to errors like missing chunk number 0 for toast value ... when the now-dangling pointer is used.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.18/changes/006", "db_id": "eaec842655e68490e08ca8bb73072d29", "patch_ids": [], "statement_hash": "a0e8b940d866af211905ef8b5188ad06eeeb9f6d59793cca6810091274d49204", "relations": [{"rule": 2, "type": "equivalent", "target": "7df54a2467eba0e9a74d4a38f1f98353", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a0e8b940d866af211905ef8b5188ad06eeeb9f6d59793cca6810091274d49204"}}, {"rule": 2, "type": "equivalent", "target": "bb5e5d0ca78271a17828f482f87c7451", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a0e8b940d866af211905ef8b5188ad06eeeb9f6d59793cca6810091274d49204"}}, {"rule": 2, "type": "equivalent", "target": "d5cdc42fb546efa978e3758bf6fabe38", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a0e8b940d866af211905ef8b5188ad06eeeb9f6d59793cca6810091274d49204"}}], "version": "9.0.18", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "bb5e5d0ca78271a17828f482f87c7451", "kind": "equivalent", "version": "9.3.5", "label": "9.3.5", "title": "修复未能对结构化类型的组合元素中的字段执行解 TOAST 的错误", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a0e8b940d866af211905ef8b5188ad06eeeb9f6d59793cca6810091274d49204"}, "url": "/docs/compare/?release=9.3.5#9.3.5-3b2656e08e941538", "source_url": "/docs/release/9.3.5/#id-1.11.6.25.5"}, {"db_id": "7df54a2467eba0e9a74d4a38f1f98353", "kind": "equivalent", "version": "9.2.9", "label": "9.2.9", "title": "修复未能对结构化类型的组合元素中的字段执行解 TOAST 的错误", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a0e8b940d866af211905ef8b5188ad06eeeb9f6d59793cca6810091274d49204"}, "url": "/docs/compare/?release=9.2.9#9.2.9-3b2656e08e941538", "source_url": "/docs/release/9.2.9/#id-1.11.6.20.5"}, {"db_id": "d5cdc42fb546efa978e3758bf6fabe38", "kind": "equivalent", "version": "9.1.14", "label": "9.1.14", "title": "修复未能对结构化类型的组合元素中的字段执行解 TOAST 的错误", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a0e8b940d866af211905ef8b5188ad06eeeb9f6d59793cca6810091274d49204"}, "url": "/docs/compare/?release=9.1.14#9.1.14-3b2656e08e941538", "source_url": "/docs/release/9.1.14/#id-1.11.6.15.5"}]}, {"id": "9.0.18-851a3705c038d7af", "cves": [], "html": "<p>修复对 Append 计划节点输出的整行引用导致 <span>“<span>record type has not been registered</span>”</span> 失败的问题（Tom Lane）</p>", "text": "修复对 Append 计划节点输出的整行引用导致 “record type has not been registered” 失败的问题（Tom Lane）", "title": "修复对 Append 计划节点输出的整行引用导致 “record type has not been registered” 失败的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.18/#id-1.11.6.10.5", "source_hash": "0424902d4b6849536a3cbce8fc811183ae475434144c17ff46a02dbd01b5b845", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix record type has not been registered failures with whole-row references to the output of Append plan nodes (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.18/changes/007", "db_id": "b6b468de37aae5bd9ac064219792b112", "patch_ids": [], "statement_hash": "907e00465ed3de22da88d87431176f161c3e33879f9d1561a047130e5f1d128c", "relations": [{"rule": 2, "type": "equivalent", "target": "943f89e82d9b9416e4544d7a538b55cf", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "907e00465ed3de22da88d87431176f161c3e33879f9d1561a047130e5f1d128c"}}, {"rule": 2, "type": "equivalent", "target": "a5bff8c32cfcc751d43d2d9715dbfc69", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "907e00465ed3de22da88d87431176f161c3e33879f9d1561a047130e5f1d128c"}}, {"rule": 2, "type": "equivalent", "target": "e13b6c867000757d183dd0b92153c3c0", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "907e00465ed3de22da88d87431176f161c3e33879f9d1561a047130e5f1d128c"}}], "version": "9.0.18", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "a5bff8c32cfcc751d43d2d9715dbfc69", "kind": "equivalent", "version": "9.3.5", "label": "9.3.5", "title": "修复对 Append 计划节点输出的整行引用导致 “record type has not been registered” 失败的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "907e00465ed3de22da88d87431176f161c3e33879f9d1561a047130e5f1d128c"}, "url": "/docs/compare/?release=9.3.5#9.3.5-851a3705c038d7af", "source_url": "/docs/release/9.3.5/#id-1.11.6.25.5"}, {"db_id": "943f89e82d9b9416e4544d7a538b55cf", "kind": "equivalent", "version": "9.2.9", "label": "9.2.9", "title": "修复对 Append 计划节点输出的整行引用导致“record type has not been registered”失败的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "907e00465ed3de22da88d87431176f161c3e33879f9d1561a047130e5f1d128c"}, "url": "/docs/compare/?release=9.2.9#9.2.9-b89988ddcd2b22c4", "source_url": "/docs/release/9.2.9/#id-1.11.6.20.5"}, {"db_id": "e13b6c867000757d183dd0b92153c3c0", "kind": "equivalent", "version": "9.1.14", "label": "9.1.14", "title": "修复对 Append 计划节点输出的整行引用导致 “record type has not been registered” 失败的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "907e00465ed3de22da88d87431176f161c3e33879f9d1561a047130e5f1d128c"}, "url": "/docs/compare/?release=9.1.14#9.1.14-851a3705c038d7af", "source_url": "/docs/release/9.1.14/#id-1.11.6.15.5"}]}, {"id": "9.0.18-c4131253432ef97c", "cves": [], "html": "<p>修复在回卷游标时调用用户定义函数可能崩溃的问题（Tom Lane）</p>", "text": "修复在回卷游标时调用用户定义函数可能崩溃的问题（Tom Lane）", "title": "修复在回卷游标时调用用户定义函数可能崩溃的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.18/#id-1.11.6.10.5", "source_hash": "94abbbcfa564b8a44185412e42da300f7c31a6ad876e090f3b2672ced904f489", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix possible crash when invoking a user-defined function while rewinding a cursor (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.18/changes/008", "db_id": "7a33bc45d19644a4fa8bacb9cd4cde75", "patch_ids": [], "statement_hash": "7e47f72c2cb634cac94f6dda8abf3e611183e97495532a610813a79492b4f80a", "relations": [{"rule": 2, "type": "equivalent", "target": "03176a786830cf8e48a92ec1d8f49cd5", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7e47f72c2cb634cac94f6dda8abf3e611183e97495532a610813a79492b4f80a"}}, {"rule": 2, "type": "equivalent", "target": "6794b5b236dec9c71441bd8d31d2de11", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7e47f72c2cb634cac94f6dda8abf3e611183e97495532a610813a79492b4f80a"}}, {"rule": 2, "type": "equivalent", "target": "f0683b60085c78c315c325a0a29373b7", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7e47f72c2cb634cac94f6dda8abf3e611183e97495532a610813a79492b4f80a"}}], "version": "9.0.18", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "03176a786830cf8e48a92ec1d8f49cd5", "kind": "equivalent", "version": "9.3.5", "label": "9.3.5", "title": "修复在回卷游标时调用用户定义函数可能崩溃的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7e47f72c2cb634cac94f6dda8abf3e611183e97495532a610813a79492b4f80a"}, "url": "/docs/compare/?release=9.3.5#9.3.5-c4131253432ef97c", "source_url": "/docs/release/9.3.5/#id-1.11.6.25.5"}, {"db_id": "6794b5b236dec9c71441bd8d31d2de11", "kind": "equivalent", "version": "9.2.9", "label": "9.2.9", "title": "修复在回卷游标时调用用户定义函数可能崩溃的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7e47f72c2cb634cac94f6dda8abf3e611183e97495532a610813a79492b4f80a"}, "url": "/docs/compare/?release=9.2.9#9.2.9-c4131253432ef97c", "source_url": "/docs/release/9.2.9/#id-1.11.6.20.5"}, {"db_id": "f0683b60085c78c315c325a0a29373b7", "kind": "equivalent", "version": "9.1.14", "label": "9.1.14", "title": "修复在回卷游标时调用用户定义函数可能崩溃的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7e47f72c2cb634cac94f6dda8abf3e611183e97495532a610813a79492b4f80a"}, "url": "/docs/compare/?release=9.1.14#9.1.14-c4131253432ef97c", "source_url": "/docs/release/9.1.14/#id-1.11.6.15.5"}]}, {"id": "9.0.18-37755a9034281f01", "cves": [], "html": "<p>修复为 <code>FROM</code> 中的函数求值参数时查询级内存泄漏的问题（Tom Lane）</p>", "text": "修复为 FROM 中的函数求值参数时查询级内存泄漏的问题（Tom Lane）", "title": "修复为 FROM 中的函数求值参数时查询级内存泄漏的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.18/#id-1.11.6.10.5", "source_hash": "ec6ab20fb05aaf60ca7ba16dd99a583f75f065994fdcda495c91fb83fac0abcb", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix query-lifespan memory leak while evaluating the arguments for a function in FROM (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.18/changes/009", "db_id": "c32372665831e6929e90b6d8512dcbee", "patch_ids": [], "statement_hash": "86384f1f46f7632ad7228fd92790058d972a5e5b6f320f413866e3c433795999", "relations": [{"rule": 2, "type": "equivalent", "target": "1a048d9e7e109fe833d9e6a9e0540084", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "86384f1f46f7632ad7228fd92790058d972a5e5b6f320f413866e3c433795999"}}, {"rule": 2, "type": "equivalent", "target": "2c789e694ad162374eea2a3cecb509a4", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "86384f1f46f7632ad7228fd92790058d972a5e5b6f320f413866e3c433795999"}}, {"rule": 2, "type": "equivalent", "target": "41cd78a1fbcdab8a53229962882ca0b4", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "86384f1f46f7632ad7228fd92790058d972a5e5b6f320f413866e3c433795999"}}], "version": "9.0.18", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "41cd78a1fbcdab8a53229962882ca0b4", "kind": "equivalent", "version": "9.3.5", "label": "9.3.5", "title": "修复为 FROM 中的函数求值参数时查询级内存泄漏的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "86384f1f46f7632ad7228fd92790058d972a5e5b6f320f413866e3c433795999"}, "url": "/docs/compare/?release=9.3.5#9.3.5-37755a9034281f01", "source_url": "/docs/release/9.3.5/#id-1.11.6.25.5"}, {"db_id": "2c789e694ad162374eea2a3cecb509a4", "kind": "equivalent", "version": "9.2.9", "label": "9.2.9", "title": "修复为 FROM 中的函数求值参数时查询级内存泄漏的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "86384f1f46f7632ad7228fd92790058d972a5e5b6f320f413866e3c433795999"}, "url": "/docs/compare/?release=9.2.9#9.2.9-37755a9034281f01", "source_url": "/docs/release/9.2.9/#id-1.11.6.20.5"}, {"db_id": "1a048d9e7e109fe833d9e6a9e0540084", "kind": "equivalent", "version": "9.1.14", "label": "9.1.14", "title": "修复为 FROM 中的函数求值参数时查询级内存泄漏的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "86384f1f46f7632ad7228fd92790058d972a5e5b6f320f413866e3c433795999"}, "url": "/docs/compare/?release=9.1.14#9.1.14-37755a9034281f01", "source_url": "/docs/release/9.1.14/#id-1.11.6.15.5"}]}, {"id": "9.0.18-a5b49a0dc9a0b81e", "cves": [], "html": "<p>修复正则表达式处理中的会话级内存泄漏（Tom Lane、Arthur O'Dwyer、Greg Stark）</p>", "text": "修复正则表达式处理中的会话级内存泄漏（Tom Lane、Arthur O'Dwyer、Greg Stark）", "title": "修复正则表达式处理中的会话级内存泄漏", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.18/#id-1.11.6.10.5", "source_hash": "9aaead3bfbaf099a0fe7b9fdd4175a27c0f4a84924180f8a75e516025da25d4b", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix session-lifespan memory leaks in regular-expression processing (Tom Lane, Arthur O'Dwyer, Greg Stark)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.18/changes/010", "db_id": "383752e01bb4550a7f1914986b8e0c3a", "patch_ids": [], "statement_hash": "5be82c5605f010d5bbba9389d1e8e446f5d64d76581c451a8d6256265a3758a0", "relations": [{"rule": 2, "type": "equivalent", "target": "0b4fd6206cb4bbf88806d495bbf3cc90", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5be82c5605f010d5bbba9389d1e8e446f5d64d76581c451a8d6256265a3758a0"}}, {"rule": 2, "type": "equivalent", "target": "25991b347a474942acebc8de0eaff080", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5be82c5605f010d5bbba9389d1e8e446f5d64d76581c451a8d6256265a3758a0"}}, {"rule": 2, "type": "equivalent", "target": "eeb0bf25c9ae2d48c7186e65ae9b1ff9", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5be82c5605f010d5bbba9389d1e8e446f5d64d76581c451a8d6256265a3758a0"}}], "version": "9.0.18", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "eeb0bf25c9ae2d48c7186e65ae9b1ff9", "kind": "equivalent", "version": "9.3.5", "label": "9.3.5", "title": "修复正则表达式处理中的会话级内存泄漏", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5be82c5605f010d5bbba9389d1e8e446f5d64d76581c451a8d6256265a3758a0"}, "url": "/docs/compare/?release=9.3.5#9.3.5-a5b49a0dc9a0b81e", "source_url": "/docs/release/9.3.5/#id-1.11.6.25.5"}, {"db_id": "25991b347a474942acebc8de0eaff080", "kind": "equivalent", "version": "9.2.9", "label": "9.2.9", "title": "修复正则表达式处理中的会话级内存泄漏", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5be82c5605f010d5bbba9389d1e8e446f5d64d76581c451a8d6256265a3758a0"}, "url": "/docs/compare/?release=9.2.9#9.2.9-a5b49a0dc9a0b81e", "source_url": "/docs/release/9.2.9/#id-1.11.6.20.5"}, {"db_id": "0b4fd6206cb4bbf88806d495bbf3cc90", "kind": "equivalent", "version": "9.1.14", "label": "9.1.14", "title": "修复正则表达式处理中的会话级内存泄漏", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5be82c5605f010d5bbba9389d1e8e446f5d64d76581c451a8d6256265a3758a0"}, "url": "/docs/compare/?release=9.1.14#9.1.14-a5b49a0dc9a0b81e", "source_url": "/docs/release/9.1.14/#id-1.11.6.15.5"}]}, {"id": "9.0.18-36e0d9edc5a219a4", "cves": [], "html": "<p>修复 <code>hungarian.stop</code> 中的数据编码错误（Tom Lane）</p>", "text": "修复 hungarian.stop 中的数据编码错误（Tom Lane）", "title": "修复 hungarian.stop 中的数据编码错误", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.18/#id-1.11.6.10.5", "source_hash": "48803e15e50bc09f82d0b004425a9f1eee128e173863da1282cb3111b1bd2921", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix data encoding error in hungarian.stop (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.18/changes/011", "db_id": "d02b618f97b84480c63ea8f630a9a517", "patch_ids": [], "statement_hash": "f036016e3ff0dd160b1087e2ecde2a6826685336921ee4cdd4fdcdbc9d06bdee", "relations": [{"rule": 2, "type": "equivalent", "target": "264f904d5d08ad625ac4fe46a29711e1", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f036016e3ff0dd160b1087e2ecde2a6826685336921ee4cdd4fdcdbc9d06bdee"}}, {"rule": 2, "type": "equivalent", "target": "38ba3cd0011d5007ee11a447df513fa0", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f036016e3ff0dd160b1087e2ecde2a6826685336921ee4cdd4fdcdbc9d06bdee"}}, {"rule": 2, "type": "equivalent", "target": "84ff1fd0250a21afab5aeeb41175a0a0", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f036016e3ff0dd160b1087e2ecde2a6826685336921ee4cdd4fdcdbc9d06bdee"}}], "version": "9.0.18", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "264f904d5d08ad625ac4fe46a29711e1", "kind": "equivalent", "version": "9.3.5", "label": "9.3.5", "title": "修复 hungarian.stop 中的数据编码错误", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f036016e3ff0dd160b1087e2ecde2a6826685336921ee4cdd4fdcdbc9d06bdee"}, "url": "/docs/compare/?release=9.3.5#9.3.5-36e0d9edc5a219a4", "source_url": "/docs/release/9.3.5/#id-1.11.6.25.5"}, {"db_id": "38ba3cd0011d5007ee11a447df513fa0", "kind": "equivalent", "version": "9.2.9", "label": "9.2.9", "title": "修复 hungarian.stop 中的数据编码错误", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f036016e3ff0dd160b1087e2ecde2a6826685336921ee4cdd4fdcdbc9d06bdee"}, "url": "/docs/compare/?release=9.2.9#9.2.9-36e0d9edc5a219a4", "source_url": "/docs/release/9.2.9/#id-1.11.6.20.5"}, {"db_id": "84ff1fd0250a21afab5aeeb41175a0a0", "kind": "equivalent", "version": "9.1.14", "label": "9.1.14", "title": "修复 hungarian.stop 中的数据编码错误", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f036016e3ff0dd160b1087e2ecde2a6826685336921ee4cdd4fdcdbc9d06bdee"}, "url": "/docs/compare/?release=9.1.14#9.1.14-36e0d9edc5a219a4", "source_url": "/docs/release/9.1.14/#id-1.11.6.15.5"}]}, {"id": "9.0.18-c686dfa617ceb9a1", "cves": [], "html": "<p>修复对在当前事务中插入、随后被一个现已回滚的子事务删除的行的活跃性检查（Andres Freund）</p>\n<p>如果同一事务中稍后执行了 <code>CREATE INDEX</code> 或 <code>CLUSTER</code>，这可能导致问题（至少是虚假警告，最坏是无限循环）。</p>", "text": "修复对在当前事务中插入、随后被一个现已回滚的子事务删除的行的活跃性检查（Andres Freund） 如果同一事务中稍后执行了 CREATE INDEX 或 CLUSTER，这可能导致问题（至少是虚假警告，最坏是无限循环）。", "title": "修复对在当前事务中插入、随后被一个现已回滚的子事务删除的行的活跃性检查", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.18/#id-1.11.6.10.5", "source_hash": "7ae6868be95d9b4b8faa9b7d554e6deed0d34639df495ea2a884011b04019cf0", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix liveness checks for rows that were inserted in the current transaction and then deleted by a now-rolled-back subtransaction (Andres Freund) This could cause problems (at least spurious warnings, and at worst an infinite loop) if CREATE INDEX or CLUSTER were done later in the same transaction.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.18/changes/012", "db_id": "b5fe3b8610961d74024c709d4db93170", "patch_ids": [], "statement_hash": "0407dc03f159e299ade1fec7314eb1de83d6c6fc23777bc71894d8ba15944a31", "relations": [{"rule": 2, "type": "equivalent", "target": "116d8d34d4d0b4eff3945173d9a62e51", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0407dc03f159e299ade1fec7314eb1de83d6c6fc23777bc71894d8ba15944a31"}}, {"rule": 2, "type": "equivalent", "target": "434f2385f9554696517f8f50bb5ecccd", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0407dc03f159e299ade1fec7314eb1de83d6c6fc23777bc71894d8ba15944a31"}}, {"rule": 2, "type": "equivalent", "target": "baf0f18b7d66cdd113769591a089af77", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0407dc03f159e299ade1fec7314eb1de83d6c6fc23777bc71894d8ba15944a31"}}], "version": "9.0.18", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "116d8d34d4d0b4eff3945173d9a62e51", "kind": "equivalent", "version": "9.3.5", "label": "9.3.5", "title": "修复对在当前事务中插入、随后被一个现已回滚的子事务删除的行的活跃性检查", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0407dc03f159e299ade1fec7314eb1de83d6c6fc23777bc71894d8ba15944a31"}, "url": "/docs/compare/?release=9.3.5#9.3.5-c686dfa617ceb9a1", "source_url": "/docs/release/9.3.5/#id-1.11.6.25.5"}, {"db_id": "baf0f18b7d66cdd113769591a089af77", "kind": "equivalent", "version": "9.2.9", "label": "9.2.9", "title": "修复对在当前事务中插入、随后被一个现已回滚的子事务删除的行的活跃性检查", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0407dc03f159e299ade1fec7314eb1de83d6c6fc23777bc71894d8ba15944a31"}, "url": "/docs/compare/?release=9.2.9#9.2.9-c686dfa617ceb9a1", "source_url": "/docs/release/9.2.9/#id-1.11.6.20.5"}, {"db_id": "434f2385f9554696517f8f50bb5ecccd", "kind": "equivalent", "version": "9.1.14", "label": "9.1.14", "title": "修复对在当前事务中插入、随后被一个现已回滚的子事务删除的行的活跃性检查", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0407dc03f159e299ade1fec7314eb1de83d6c6fc23777bc71894d8ba15944a31"}, "url": "/docs/compare/?release=9.1.14#9.1.14-c686dfa617ceb9a1", "source_url": "/docs/release/9.1.14/#id-1.11.6.15.5"}]}, {"id": "9.0.18-195ea8badae0b582", "cves": [], "html": "<p>在 <code>PREPARE TRANSACTION</code> 期间清除 <code>pg_stat_activity</code>.<code>xact_start</code>（Andres Freund）</p>\n<p>在 <code>PREPARE</code> 之后，发起会话已不在事务中，因此不应继续显示事务开始时间。</p>", "text": "在 PREPARE TRANSACTION 期间清除 pg_stat_activity.xact_start（Andres Freund） 在 PREPARE 之后，发起会话已不在事务中，因此不应继续显示事务开始时间。", "title": "在 PREPARE TRANSACTION 期间清除 pg_stat_activity.xact_start", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.18/#id-1.11.6.10.5", "source_hash": "d95f549ef943b1661189002e146bccb045f8593853dc88180c9edf9b760ab3ea", "section_path": ["变更"], "commit_groups": [], "identity_text": "Clear pg_stat_activity.xact_start during PREPARE TRANSACTION (Andres Freund) After the PREPARE, the originating session is no longer in a transaction, so it should not continue to display a transaction start time.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.18/changes/013", "db_id": "66c6ffb4b1967b64700194b1fe3ca2aa", "patch_ids": [], "statement_hash": "642ef4bdb94b619d66e23824a190f24539619a99612365fbf4681bbc2a7a4e4c", "relations": [{"rule": 2, "type": "equivalent", "target": "53fed2609faead97a15f4688071e57af", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "642ef4bdb94b619d66e23824a190f24539619a99612365fbf4681bbc2a7a4e4c"}}, {"rule": 2, "type": "equivalent", "target": "d20b9d109f7e0a680be94af055771645", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "642ef4bdb94b619d66e23824a190f24539619a99612365fbf4681bbc2a7a4e4c"}}, {"rule": 2, "type": "equivalent", "target": "fc5f7050ba78e0c05e9e87fac8f1df45", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "642ef4bdb94b619d66e23824a190f24539619a99612365fbf4681bbc2a7a4e4c"}}], "version": "9.0.18", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "d20b9d109f7e0a680be94af055771645", "kind": "equivalent", "version": "9.3.5", "label": "9.3.5", "title": "在 PREPARE TRANSACTION 期间清除 pg_stat_activity.xact_start", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "642ef4bdb94b619d66e23824a190f24539619a99612365fbf4681bbc2a7a4e4c"}, "url": "/docs/compare/?release=9.3.5#9.3.5-195ea8badae0b582", "source_url": "/docs/release/9.3.5/#id-1.11.6.25.5"}, {"db_id": "fc5f7050ba78e0c05e9e87fac8f1df45", "kind": "equivalent", "version": "9.2.9", "label": "9.2.9", "title": "在 PREPARE TRANSACTION 期间清除 pg_stat_activity.xact_start", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "642ef4bdb94b619d66e23824a190f24539619a99612365fbf4681bbc2a7a4e4c"}, "url": "/docs/compare/?release=9.2.9#9.2.9-195ea8badae0b582", "source_url": "/docs/release/9.2.9/#id-1.11.6.20.5"}, {"db_id": "53fed2609faead97a15f4688071e57af", "kind": "equivalent", "version": "9.1.14", "label": "9.1.14", "title": "在 PREPARE TRANSACTION 期间清除 pg_stat_activity.xact_start", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "642ef4bdb94b619d66e23824a190f24539619a99612365fbf4681bbc2a7a4e4c"}, "url": "/docs/compare/?release=9.1.14#9.1.14-195ea8badae0b582", "source_url": "/docs/release/9.1.14/#id-1.11.6.15.5"}]}, {"id": "9.0.18-ecebf2c19d4efb8e", "cves": [], "html": "<p>修复 <code>REASSIGN OWNED</code> 对文本搜索对象失败的问题（Álvaro Herrera）</p>", "text": "修复 REASSIGN OWNED 对文本搜索对象失败的问题（Álvaro Herrera）", "title": "修复 REASSIGN OWNED 对文本搜索对象失败的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.18/#id-1.11.6.10.5", "source_hash": "c18ab5ab3b27be5baa6c7b0d9d8b12414aad251b94ab9a772eeeb4c49a14779c", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix REASSIGN OWNED to not fail for text search objects (Álvaro Herrera)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.18/changes/014", "db_id": "ed417d10032b5dce01be16e2497fba90", "patch_ids": [], "statement_hash": "30e7cf5ee800fa2df1c69283465239aff305f90a0f0f10286e1e4a077ac09f74", "relations": [{"rule": 2, "type": "equivalent", "target": "315ae6f5bb995c0e6d88f41345b36cb6", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "30e7cf5ee800fa2df1c69283465239aff305f90a0f0f10286e1e4a077ac09f74"}}, {"rule": 2, "type": "equivalent", "target": "bc2a550a6fbef954d308390070d59d44", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "30e7cf5ee800fa2df1c69283465239aff305f90a0f0f10286e1e4a077ac09f74"}}, {"rule": 2, "type": "equivalent", "target": "d9fb0682c8c03fe0a2b49ad032bc8328", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "30e7cf5ee800fa2df1c69283465239aff305f90a0f0f10286e1e4a077ac09f74"}}], "version": "9.0.18", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "bc2a550a6fbef954d308390070d59d44", "kind": "equivalent", "version": "9.3.5", "label": "9.3.5", "title": "修复 REASSIGN OWNED 对文本搜索对象失败的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "30e7cf5ee800fa2df1c69283465239aff305f90a0f0f10286e1e4a077ac09f74"}, "url": "/docs/compare/?release=9.3.5#9.3.5-ecebf2c19d4efb8e", "source_url": "/docs/release/9.3.5/#id-1.11.6.25.5"}, {"db_id": "d9fb0682c8c03fe0a2b49ad032bc8328", "kind": "equivalent", "version": "9.2.9", "label": "9.2.9", "title": "修复 REASSIGN OWNED 对文本搜索对象失败的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "30e7cf5ee800fa2df1c69283465239aff305f90a0f0f10286e1e4a077ac09f74"}, "url": "/docs/compare/?release=9.2.9#9.2.9-ecebf2c19d4efb8e", "source_url": "/docs/release/9.2.9/#id-1.11.6.20.5"}, {"db_id": "315ae6f5bb995c0e6d88f41345b36cb6", "kind": "equivalent", "version": "9.1.14", "label": "9.1.14", "title": "修复 REASSIGN OWNED 对文本搜索对象失败的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "30e7cf5ee800fa2df1c69283465239aff305f90a0f0f10286e1e4a077ac09f74"}, "url": "/docs/compare/?release=9.1.14#9.1.14-ecebf2c19d4efb8e", "source_url": "/docs/release/9.1.14/#id-1.11.6.15.5"}]}, {"id": "9.0.18-da396940f9d861b9", "cves": [], "html": "<p>在 postmaster 启动期间阻塞信号（Tom Lane）</p>\n<p>这确保了 postmaster 在例如启动过程中收到 <span>SIGINT</span> 时能够正确清理自身。</p>", "text": "在 postmaster 启动期间阻塞信号（Tom Lane） 这确保了 postmaster 在例如启动过程中收到 SIGINT 时能够正确清理自身。", "title": "在 postmaster 启动期间阻塞信号", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.18/#id-1.11.6.10.5", "source_hash": "905feabf83e6b988a13f32c82e3fe3a42c35ecd996f5da819c42361a076b1445", "section_path": ["变更"], "commit_groups": [], "identity_text": "Block signals during postmaster startup (Tom Lane) This ensures that the postmaster will properly clean up after itself if, for example, it receives SIGINT while still starting up.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.18/changes/015", "db_id": "fe83700f9afe7966cb2db312f46f5dc8", "patch_ids": [], "statement_hash": "8986f77d637b9a3105e635f5ce57c021b64961ade1d74f906871180bb6092d56", "relations": [{"rule": 2, "type": "equivalent", "target": "008dd7c42f272dcfed2925215fe3e960", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8986f77d637b9a3105e635f5ce57c021b64961ade1d74f906871180bb6092d56"}}, {"rule": 2, "type": "equivalent", "target": "69cca2f3deeea63837fbbd935c27ec06", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8986f77d637b9a3105e635f5ce57c021b64961ade1d74f906871180bb6092d56"}}, {"rule": 2, "type": "equivalent", "target": "ea67567d42c2f81930ebd68ee20d1666", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8986f77d637b9a3105e635f5ce57c021b64961ade1d74f906871180bb6092d56"}}], "version": "9.0.18", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "ea67567d42c2f81930ebd68ee20d1666", "kind": "equivalent", "version": "9.3.5", "label": "9.3.5", "title": "在 postmaster 启动期间阻塞信号", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8986f77d637b9a3105e635f5ce57c021b64961ade1d74f906871180bb6092d56"}, "url": "/docs/compare/?release=9.3.5#9.3.5-da396940f9d861b9", "source_url": "/docs/release/9.3.5/#id-1.11.6.25.5"}, {"db_id": "008dd7c42f272dcfed2925215fe3e960", "kind": "equivalent", "version": "9.2.9", "label": "9.2.9", "title": "在 postmaster 启动期间阻塞信号", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8986f77d637b9a3105e635f5ce57c021b64961ade1d74f906871180bb6092d56"}, "url": "/docs/compare/?release=9.2.9#9.2.9-da396940f9d861b9", "source_url": "/docs/release/9.2.9/#id-1.11.6.20.5"}, {"db_id": "69cca2f3deeea63837fbbd935c27ec06", "kind": "equivalent", "version": "9.1.14", "label": "9.1.14", "title": "在 postmaster 启动期间阻塞信号", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8986f77d637b9a3105e635f5ce57c021b64961ade1d74f906871180bb6092d56"}, "url": "/docs/compare/?release=9.1.14#9.1.14-da396940f9d861b9", "source_url": "/docs/release/9.1.14/#id-1.11.6.15.5"}]}, {"id": "9.0.18-1fe8508066777304", "cves": ["CVE-2014-0067"], "html": "<p>保护 <code>make check</code> 期间启动的临时 postmaster 的 Unix 域套接字（Noah Misch）</p>\n<p>正如我们此前在 CVE-2014-0067 中指出的，任何能够访问套接字文件的本地用户都可以以服务器的引导超级用户身份连接，进而以运行测试的操作系统用户身份执行任意代码。此变更通过把服务器的套接字放到 <code>/tmp</code> 下一个临时的、模式为 0700 的子目录中来防御这一风险。但在不支持 Unix 套接字的平台（尤其是 Windows）上风险仍然存在，因为那时临时 postmaster 必须接受本地 TCP 连接。</p>\n<p>此变更的一个有用副作用是简化了覆盖 <code>DEFAULT_PGSOCKET_DIR</code> 的构建中的 <code>make check</code> 测试。常用的非默认值（如 <code>/var/run/postgresql</code>）往往不允许构建用户写入，此前需要一些变通办法，现在不再需要了。</p>", "text": "保护 make check 期间启动的临时 postmaster 的 Unix 域套接字（Noah Misch） 正如我们此前在 CVE-2014-0067 中指出的，任何能够访问套接字文件的本地用户都可以以服务器的引导超级用户身份连接，进而以运行测试的操作系统用户身份执行任意代码。此变更通过把服务器的套接字放到 /tmp 下一个临时的、模式为 0700 的子目录中来防御这一风险。但在不支持 Unix 套接字的平台（尤其是 Windows）上风险仍然存在，因为那时临时 postmaster 必须接受本地 TCP 连接。 此变更的一个有用副作用是简化了覆盖 DEFAULT_PGSOCKET_DIR 的构建中的 make check 测试。常用的非默认值（如 /var/run/postgresql）往往不允许构建用户写入，此前需要一些变通办法，现在不再需要了。", "title": "保护 make check 期间启动的临时 postmaster 的 Unix 域套接字", "commits": [], "section": "变更", "category": "security", "source_url": "/docs/release/9.0.18/#id-1.11.6.10.5", "source_hash": "0bebe9514a66af36ee038667af54903701b4b68d102e95beca976ca9e8d5514d", "section_path": ["变更"], "commit_groups": [], "identity_text": "Secure Unix-domain sockets of temporary postmasters started during make check (Noah Misch) Any local user able to access the socket file could connect as the server's bootstrap superuser, then proceed to execute arbitrary code as the operating-system user running the test, as we previously noted in CVE-2014-0067. This change defends against that risk by placing the server's socket in a temporary, mode 0700 subdirectory of /tmp. The hazard remains however on platforms where Unix sockets are not supported, notably Windows, because then the temporary postmaster must accept local TCP connections. A useful side effect of this change is to simplify make check testing in builds that override DEFAULT_PGSOCKET_DIR. Popular non-default values like /var/run/postgresql are often not writable by the build user, requiring workarounds that will no longer be necessary.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.18/changes/016", "db_id": "4562d96c599a876fbaa708785af45cf9", "patch_ids": [], "statement_hash": "421edc0e245507d52e97074221ccf85a880e4b1010e62e6ef47292e6fec25061", "relations": [{"rule": 2, "type": "equivalent", "target": "32ac210b2021f4d10180396115d807a2", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "421edc0e245507d52e97074221ccf85a880e4b1010e62e6ef47292e6fec25061"}}, {"rule": 2, "type": "equivalent", "target": "a3829053c54dcf4d2636f219426f3672", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "421edc0e245507d52e97074221ccf85a880e4b1010e62e6ef47292e6fec25061"}}, {"rule": 2, "type": "equivalent", "target": "e5db1e1a4f47f7dbe939381198c5dad5", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "421edc0e245507d52e97074221ccf85a880e4b1010e62e6ef47292e6fec25061"}}], "version": "9.0.18", "category_label": "安全相关", "also_in": [], "variants": [], "related_changes": [{"db_id": "e5db1e1a4f47f7dbe939381198c5dad5", "kind": "equivalent", "version": "9.3.5", "label": "9.3.5", "title": "保护 make check 期间启动的临时 postmaster 的 Unix 域套接字", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "421edc0e245507d52e97074221ccf85a880e4b1010e62e6ef47292e6fec25061"}, "url": "/docs/compare/?release=9.3.5#9.3.5-1fe8508066777304", "source_url": "/docs/release/9.3.5/#id-1.11.6.25.5"}, {"db_id": "32ac210b2021f4d10180396115d807a2", "kind": "equivalent", "version": "9.2.9", "label": "9.2.9", "title": "保护 make check 期间启动的临时 postmaster 的 Unix 域套接字", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "421edc0e245507d52e97074221ccf85a880e4b1010e62e6ef47292e6fec25061"}, "url": "/docs/compare/?release=9.2.9#9.2.9-1fe8508066777304", "source_url": "/docs/release/9.2.9/#id-1.11.6.20.5"}, {"db_id": "a3829053c54dcf4d2636f219426f3672", "kind": "equivalent", "version": "9.1.14", "label": "9.1.14", "title": "保护 make check 期间启动的临时 postmaster 的 Unix 域套接字", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "421edc0e245507d52e97074221ccf85a880e4b1010e62e6ef47292e6fec25061"}, "url": "/docs/compare/?release=9.1.14#9.1.14-1fe8508066777304", "source_url": "/docs/release/9.1.14/#id-1.11.6.15.5"}]}, {"id": "9.0.18-b9bc5469adaffdfe", "cves": [], "html": "<p>修复表空间创建 WAL 重放在 Windows 上无法工作的问题（MauMau）</p>", "text": "修复表空间创建 WAL 重放在 Windows 上无法工作的问题（MauMau）", "title": "修复表空间创建 WAL 重放在 Windows 上无法工作的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.18/#id-1.11.6.10.5", "source_hash": "8496748c6fe383087db0df421a017bc32fa7b52ab32972feace597d320a41fc2", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix tablespace creation WAL replay to work on Windows (MauMau)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.18/changes/017", "db_id": "176e76f0277971aa24026e7a9a0c0cb0", "patch_ids": [], "statement_hash": "0951bd8a33873cc51b53c3191ef701e028a04a6dea63a3f266e3ab1f026b50dd", "relations": [{"rule": 2, "type": "equivalent", "target": "9216ca2e9821acf8d60b4ae88f36b7f0", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0951bd8a33873cc51b53c3191ef701e028a04a6dea63a3f266e3ab1f026b50dd"}}, {"rule": 2, "type": "equivalent", "target": "9959e561fe05f1b007aed8b129812efb", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0951bd8a33873cc51b53c3191ef701e028a04a6dea63a3f266e3ab1f026b50dd"}}, {"rule": 2, "type": "equivalent", "target": "eef99bb4e5e9a46062773101dc0d1818", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0951bd8a33873cc51b53c3191ef701e028a04a6dea63a3f266e3ab1f026b50dd"}}], "version": "9.0.18", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "9216ca2e9821acf8d60b4ae88f36b7f0", "kind": "equivalent", "version": "9.3.5", "label": "9.3.5", "title": "修复表空间创建 WAL 重放在 Windows 上无法工作的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0951bd8a33873cc51b53c3191ef701e028a04a6dea63a3f266e3ab1f026b50dd"}, "url": "/docs/compare/?release=9.3.5#9.3.5-b9bc5469adaffdfe", "source_url": "/docs/release/9.3.5/#id-1.11.6.25.5"}, {"db_id": "eef99bb4e5e9a46062773101dc0d1818", "kind": "equivalent", "version": "9.2.9", "label": "9.2.9", "title": "修复表空间创建 WAL 重放在 Windows 上无法工作的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0951bd8a33873cc51b53c3191ef701e028a04a6dea63a3f266e3ab1f026b50dd"}, "url": "/docs/compare/?release=9.2.9#9.2.9-b9bc5469adaffdfe", "source_url": "/docs/release/9.2.9/#id-1.11.6.20.5"}, {"db_id": "9959e561fe05f1b007aed8b129812efb", "kind": "equivalent", "version": "9.1.14", "label": "9.1.14", "title": "修复表空间创建 WAL 重放在 Windows 上无法工作的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0951bd8a33873cc51b53c3191ef701e028a04a6dea63a3f266e3ab1f026b50dd"}, "url": "/docs/compare/?release=9.1.14#9.1.14-b9bc5469adaffdfe", "source_url": "/docs/release/9.1.14/#id-1.11.6.15.5"}]}, {"id": "9.0.18-e4bc31c72b46e943", "cves": [], "html": "<p>修复 Windows 上套接字创建失败的检测（Bruce Momjian）</p>", "text": "修复 Windows 上套接字创建失败的检测（Bruce Momjian）", "title": "修复 Windows 上套接字创建失败的检测", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.18/#id-1.11.6.10.5", "source_hash": "66d413ecf2eb396556056867c9e7d0625c1c2eb0066e52fa4e103951c83c59c3", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix detection of socket creation failures on Windows (Bruce Momjian)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.18/changes/018", "db_id": "30dc1321491065a0d4c6caa538598c6c", "patch_ids": [], "statement_hash": "fd240b5a5bbb4d5ce397d2abea8477493415a23886d10b79edf8a3570dd40d0a", "relations": [{"rule": 2, "type": "equivalent", "target": "17554d240e1e1bf0abcb437338abcc15", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fd240b5a5bbb4d5ce397d2abea8477493415a23886d10b79edf8a3570dd40d0a"}}, {"rule": 2, "type": "equivalent", "target": "a9b9ce2de83b5af9746463adf52afc66", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fd240b5a5bbb4d5ce397d2abea8477493415a23886d10b79edf8a3570dd40d0a"}}, {"rule": 2, "type": "equivalent", "target": "ebe4a8d79d3ba17586c56dd3274dec04", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fd240b5a5bbb4d5ce397d2abea8477493415a23886d10b79edf8a3570dd40d0a"}}], "version": "9.0.18", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "ebe4a8d79d3ba17586c56dd3274dec04", "kind": "equivalent", "version": "9.3.5", "label": "9.3.5", "title": "修复 Windows 上套接字创建失败的检测", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fd240b5a5bbb4d5ce397d2abea8477493415a23886d10b79edf8a3570dd40d0a"}, "url": "/docs/compare/?release=9.3.5#9.3.5-e4bc31c72b46e943", "source_url": "/docs/release/9.3.5/#id-1.11.6.25.5"}, {"db_id": "17554d240e1e1bf0abcb437338abcc15", "kind": "equivalent", "version": "9.2.9", "label": "9.2.9", "title": "修复 Windows 上套接字创建失败的检测", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fd240b5a5bbb4d5ce397d2abea8477493415a23886d10b79edf8a3570dd40d0a"}, "url": "/docs/compare/?release=9.2.9#9.2.9-e4bc31c72b46e943", "source_url": "/docs/release/9.2.9/#id-1.11.6.20.5"}, {"db_id": "a9b9ce2de83b5af9746463adf52afc66", "kind": "equivalent", "version": "9.1.14", "label": "9.1.14", "title": "修复 Windows 上套接字创建失败的检测", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fd240b5a5bbb4d5ce397d2abea8477493415a23886d10b79edf8a3570dd40d0a"}, "url": "/docs/compare/?release=9.1.14#9.1.14-e4bc31c72b46e943", "source_url": "/docs/release/9.1.14/#id-1.11.6.15.5"}]}, {"id": "9.0.18-0efc671fdd2dec76", "cves": [], "html": "<p>在 Windows 上，允许新会话从配置文件获取 PGC_BACKEND 参数（例如<a href=\"/docs/9.0/runtime-config-logging.html#GUC-LOG-CONNECTIONS\">log_connections</a>）的值（Amit Kapila）</p>\n<p>此前，如果启动后在文件中更改了这类参数，更改不会生效。</p>", "text": "在 Windows 上，允许新会话从配置文件获取 PGC_BACKEND 参数（例如log_connections）的值（Amit Kapila） 此前，如果启动后在文件中更改了这类参数，更改不会生效。", "title": "在 Windows 上，允许新会话从配置文件获取 PGC_BACKEND 参数（例如log_connections）的值", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.18/#id-1.11.6.10.5", "source_hash": "98f4ec758a567202a3bc664081313c2190be021ce182fccc57cd34aab87412da", "section_path": ["变更"], "commit_groups": [], "identity_text": "On Windows, allow new sessions to absorb values of PGC_BACKEND parameters (such as guc-log-connections ) from the configuration file (Amit Kapila) Previously, if such a parameter were changed in the file post-startup, the change would have no effect.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.18/changes/019", "db_id": "764a1b6cf15f0cdc425deb42a9a207e3", "patch_ids": [], "statement_hash": "5765359658e9917736f21873a6a7cb64f4ecf035d9d1b7f548c72cba07f367e1", "relations": [{"rule": 2, "type": "equivalent", "target": "0149ee36e50d0a3426d4baddce68a3f2", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5765359658e9917736f21873a6a7cb64f4ecf035d9d1b7f548c72cba07f367e1"}}, {"rule": 2, "type": "equivalent", "target": "218104825d14bd97a422e9ab79b1704a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5765359658e9917736f21873a6a7cb64f4ecf035d9d1b7f548c72cba07f367e1"}}, {"rule": 2, "type": "equivalent", "target": "8491d20a9cd982f29e6148ac2beec587", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5765359658e9917736f21873a6a7cb64f4ecf035d9d1b7f548c72cba07f367e1"}}], "version": "9.0.18", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "218104825d14bd97a422e9ab79b1704a", "kind": "equivalent", "version": "9.3.5", "label": "9.3.5", "title": "在 Windows 上，允许新会话从配置文件获取 PGC_BACKEND 参数（例如log_connections）的值", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5765359658e9917736f21873a6a7cb64f4ecf035d9d1b7f548c72cba07f367e1"}, "url": "/docs/compare/?release=9.3.5#9.3.5-0efc671fdd2dec76", "source_url": "/docs/release/9.3.5/#id-1.11.6.25.5"}, {"db_id": "0149ee36e50d0a3426d4baddce68a3f2", "kind": "equivalent", "version": "9.2.9", "label": "9.2.9", "title": "在 Windows 上，允许新会话从配置文件获取 PGC_BACKEND 参数（例如log_connections）的值", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5765359658e9917736f21873a6a7cb64f4ecf035d9d1b7f548c72cba07f367e1"}, "url": "/docs/compare/?release=9.2.9#9.2.9-0efc671fdd2dec76", "source_url": "/docs/release/9.2.9/#id-1.11.6.20.5"}, {"db_id": "8491d20a9cd982f29e6148ac2beec587", "kind": "equivalent", "version": "9.1.14", "label": "9.1.14", "title": "在 Windows 上，允许新会话从配置文件获取 PGC_BACKEND 参数（例如log_connections）的值", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5765359658e9917736f21873a6a7cb64f4ecf035d9d1b7f548c72cba07f367e1"}, "url": "/docs/compare/?release=9.1.14#9.1.14-0efc671fdd2dec76", "source_url": "/docs/release/9.1.14/#id-1.11.6.15.5"}]}, {"id": "9.0.18-bd868c1d29b149bc", "cves": [], "html": "<p>在 Windows 上正确地为可执行文件路径名加引号（Nikhil Deshpande）</p>\n<p>如果安装路径同时包含空格和 <code>@</code> 符号，这一疏忽可能导致 <span>initdb</span> 和 <span>pg_upgrade</span> 在 Windows 上失败。</p>", "text": "在 Windows 上正确地为可执行文件路径名加引号（Nikhil Deshpande） 如果安装路径同时包含空格和 @ 符号，这一疏忽可能导致 initdb 和 pg_upgrade 在 Windows 上失败。", "title": "在 Windows 上正确地为可执行文件路径名加引号", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.18/#id-1.11.6.10.5", "source_hash": "1a955431fd03266b9a33a9c717f6d123e9240427ffc50e3c5fe9f039b426cbd3", "section_path": ["变更"], "commit_groups": [], "identity_text": "Properly quote executable path names on Windows (Nikhil Deshpande) This oversight could cause initdb and pg_upgrade to fail on Windows, if the installation path contained both spaces and @ signs.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.18/changes/020", "db_id": "b4d3f8a47b553650493ed8ee653be2a0", "patch_ids": [], "statement_hash": "87cad73827ef54d373b81f858c97fd722e136bbe0522e3687f49130bfab547b7", "relations": [{"rule": 2, "type": "equivalent", "target": "082751823ea21e0f5ff5f2891d7639e2", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "87cad73827ef54d373b81f858c97fd722e136bbe0522e3687f49130bfab547b7"}}, {"rule": 2, "type": "equivalent", "target": "3b999fd58f8dc69b0e938c7f9c84d747", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "87cad73827ef54d373b81f858c97fd722e136bbe0522e3687f49130bfab547b7"}}, {"rule": 2, "type": "equivalent", "target": "a00c57cfe7cf06a59131c5ff0d3a8612", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "87cad73827ef54d373b81f858c97fd722e136bbe0522e3687f49130bfab547b7"}}], "version": "9.0.18", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "a00c57cfe7cf06a59131c5ff0d3a8612", "kind": "equivalent", "version": "9.3.5", "label": "9.3.5", "title": "在 Windows 上正确地为可执行文件路径名加引号", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "87cad73827ef54d373b81f858c97fd722e136bbe0522e3687f49130bfab547b7"}, "url": "/docs/compare/?release=9.3.5#9.3.5-bd868c1d29b149bc", "source_url": "/docs/release/9.3.5/#id-1.11.6.25.5"}, {"db_id": "3b999fd58f8dc69b0e938c7f9c84d747", "kind": "equivalent", "version": "9.2.9", "label": "9.2.9", "title": "在 Windows 上正确地为可执行文件路径名加引号", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "87cad73827ef54d373b81f858c97fd722e136bbe0522e3687f49130bfab547b7"}, "url": "/docs/compare/?release=9.2.9#9.2.9-bd868c1d29b149bc", "source_url": "/docs/release/9.2.9/#id-1.11.6.20.5"}, {"db_id": "082751823ea21e0f5ff5f2891d7639e2", "kind": "equivalent", "version": "9.1.14", "label": "9.1.14", "title": "在 Windows 上正确地为可执行文件路径名加引号", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "87cad73827ef54d373b81f858c97fd722e136bbe0522e3687f49130bfab547b7"}, "url": "/docs/compare/?release=9.1.14#9.1.14-bd868c1d29b149bc", "source_url": "/docs/release/9.1.14/#id-1.11.6.15.5"}]}, {"id": "9.0.18-c3a1885d9ef36842", "cves": [], "html": "<p>修复 OS X 上 <span>libpython</span> 的链接（Tom Lane）</p>\n<p>我们先前使用的方法在 Xcode 5.0 及之后版本提供的 Python 库上可能失败。</p>", "text": "修复 OS X 上 libpython 的链接（Tom Lane） 我们先前使用的方法在 Xcode 5.0 及之后版本提供的 Python 库上可能失败。", "title": "修复 OS X 上 libpython 的链接", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.18/#id-1.11.6.10.5", "source_hash": "3fdd10d90049f80b3802e123c1e450652474fc5e7ad8752ad4f31ab9a6fcc79c", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix linking of libpython on OS X (Tom Lane) The method we previously used can fail with the Python library supplied by Xcode 5.0 and later.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.18/changes/021", "db_id": "527d9a685df8030b1eaa38ad9930e51b", "patch_ids": [], "statement_hash": "5c856527f65e42c9a06835ffb1d69e8f3277db9c452d9e1b302040d8ca3f378a", "relations": [], "version": "9.0.18", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.18-cedc3e92f93ff1c0", "cves": [], "html": "<p>当服务器持续以快于客户端吸收速度的速率发送数据时，避免 <span>libpq</span> 中的缓冲区膨胀（Shin-ichi Morita、Tom Lane）</p>\n<p><span>libpq</span> 可能被迫不断增大其输入缓冲区，直到内存耗尽（这会被误导性地报告为 <span>“<span>lost synchronization with server</span>”</span>）。在正常情况下，数据持续以快于 <code>recv()</code> 循环吸收速度的速率传输是相当牵强的，但在客户端因调度器约束被人为减速时曾观察到这种情况。</p>", "text": "当服务器持续以快于客户端吸收速度的速率发送数据时，避免 libpq 中的缓冲区膨胀（Shin-ichi Morita、Tom Lane） libpq 可能被迫不断增大其输入缓冲区，直到内存耗尽（这会被误导性地报告为 “lost synchronization with server”）。在正常情况下，数据持续以快于 recv() 循环吸收速度的速率传输是相当牵强的，但在客户端因调度器约束被人为减速时曾观察到这种情况。", "title": "当服务器持续以快于客户端吸收速度的速率发送数据时，避免 libpq 中的缓冲区膨胀", "commits": [], "section": "变更", "category": "performance", "source_url": "/docs/release/9.0.18/#id-1.11.6.10.5", "source_hash": "c3ac2fb824c88b6bad66d331f432dc8bfcba7f6df6083866b4f8271b9d69854b", "section_path": ["变更"], "commit_groups": [], "identity_text": "Avoid buffer bloat in libpq when the server consistently sends data faster than the client can absorb it (Shin-ichi Morita, Tom Lane) libpq could be coerced into enlarging its input buffer until it runs out of memory (which would be reported misleadingly as lost synchronization with server). Under ordinary circumstances it's quite far-fetched that data could be continuously transmitted more quickly than the recv() loop can absorb it, but this has been observed when the client is artificially slowed by scheduler constraints.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.18/changes/022", "db_id": "2af5bc416b8fee46f495abe66bf53d6a", "patch_ids": [], "statement_hash": "b15e5e25e23ac22935a0befd2cf086f3e39434d9b8e191756602d91060f2f5ba", "relations": [{"rule": 2, "type": "equivalent", "target": "3a282e1768d453d5ffd42e3b3ee465ea", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b15e5e25e23ac22935a0befd2cf086f3e39434d9b8e191756602d91060f2f5ba"}}, {"rule": 2, "type": "equivalent", "target": "7ea011af707a7ff784d436ac0914d407", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b15e5e25e23ac22935a0befd2cf086f3e39434d9b8e191756602d91060f2f5ba"}}, {"rule": 2, "type": "equivalent", "target": "8c30722f5c774771da1f408a7ff3dfd0", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b15e5e25e23ac22935a0befd2cf086f3e39434d9b8e191756602d91060f2f5ba"}}], "version": "9.0.18", "category_label": "性能改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "7ea011af707a7ff784d436ac0914d407", "kind": "equivalent", "version": "9.3.5", "label": "9.3.5", "title": "当服务器持续以快于客户端吸收速度的速率发送数据时，避免 libpq 中的缓冲区膨胀", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b15e5e25e23ac22935a0befd2cf086f3e39434d9b8e191756602d91060f2f5ba"}, "url": "/docs/compare/?release=9.3.5#9.3.5-cedc3e92f93ff1c0", "source_url": "/docs/release/9.3.5/#id-1.11.6.25.5"}, {"db_id": "8c30722f5c774771da1f408a7ff3dfd0", "kind": "equivalent", "version": "9.2.9", "label": "9.2.9", "title": "当服务器持续以快于客户端吸收速度的速率发送数据时，避免 libpq 中的缓冲区膨胀", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b15e5e25e23ac22935a0befd2cf086f3e39434d9b8e191756602d91060f2f5ba"}, "url": "/docs/compare/?release=9.2.9#9.2.9-cedc3e92f93ff1c0", "source_url": "/docs/release/9.2.9/#id-1.11.6.20.5"}, {"db_id": "3a282e1768d453d5ffd42e3b3ee465ea", "kind": "equivalent", "version": "9.1.14", "label": "9.1.14", "title": "当服务器持续以快于客户端吸收速度的速率发送数据时，避免 libpq 中的缓冲区膨胀", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b15e5e25e23ac22935a0befd2cf086f3e39434d9b8e191756602d91060f2f5ba"}, "url": "/docs/compare/?release=9.1.14#9.1.14-cedc3e92f93ff1c0", "source_url": "/docs/release/9.1.14/#id-1.11.6.15.5"}]}, {"id": "9.0.18-c862c70fd3a6efe1", "cves": [], "html": "<p>确保 <span>libpq</span> 中的 LDAP 查找尝试按预期超时（Laurenz Albe）</p>", "text": "确保 libpq 中的 LDAP 查找尝试按预期超时（Laurenz Albe）", "title": "确保 libpq 中的 LDAP 查找尝试按预期超时", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.18/#id-1.11.6.10.5", "source_hash": "e8e508c44720b3cb9da2143fec637661b27d1bcddca7fafcbc59693708153ad7", "section_path": ["变更"], "commit_groups": [], "identity_text": "Ensure that LDAP lookup attempts in libpq time out as intended (Laurenz Albe)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.18/changes/023", "db_id": "47a792f9478fb28694a84953205d03a3", "patch_ids": [], "statement_hash": "9dd31e73a7f7b653f065c8b0769c8fad6f56b106c355205b355057b2c66a3292", "relations": [{"rule": 2, "type": "equivalent", "target": "77b8f10623b200635653a4a8e40d9023", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9dd31e73a7f7b653f065c8b0769c8fad6f56b106c355205b355057b2c66a3292"}}, {"rule": 2, "type": "equivalent", "target": "93e8b6c34b4b9e5c8f46e6f20483ab43", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9dd31e73a7f7b653f065c8b0769c8fad6f56b106c355205b355057b2c66a3292"}}, {"rule": 2, "type": "equivalent", "target": "fae35e9a2cb6f22e727f26504ec1bf29", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9dd31e73a7f7b653f065c8b0769c8fad6f56b106c355205b355057b2c66a3292"}}], "version": "9.0.18", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "fae35e9a2cb6f22e727f26504ec1bf29", "kind": "equivalent", "version": "9.3.5", "label": "9.3.5", "title": "确保 libpq 中的 LDAP 查找尝试按预期超时", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9dd31e73a7f7b653f065c8b0769c8fad6f56b106c355205b355057b2c66a3292"}, "url": "/docs/compare/?release=9.3.5#9.3.5-c862c70fd3a6efe1", "source_url": "/docs/release/9.3.5/#id-1.11.6.25.5"}, {"db_id": "77b8f10623b200635653a4a8e40d9023", "kind": "equivalent", "version": "9.2.9", "label": "9.2.9", "title": "确保 libpq 中的 LDAP 查找尝试按预期超时", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9dd31e73a7f7b653f065c8b0769c8fad6f56b106c355205b355057b2c66a3292"}, "url": "/docs/compare/?release=9.2.9#9.2.9-c862c70fd3a6efe1", "source_url": "/docs/release/9.2.9/#id-1.11.6.20.5"}, {"db_id": "93e8b6c34b4b9e5c8f46e6f20483ab43", "kind": "equivalent", "version": "9.1.14", "label": "9.1.14", "title": "确保 libpq 中的 LDAP 查找尝试按预期超时", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9dd31e73a7f7b653f065c8b0769c8fad6f56b106c355205b355057b2c66a3292"}, "url": "/docs/compare/?release=9.1.14#9.1.14-c862c70fd3a6efe1", "source_url": "/docs/release/9.1.14/#id-1.11.6.15.5"}]}, {"id": "9.0.18-711d03350e4bd689", "cves": [], "html": "<p>修复 <span>ecpg</span> 在 <code>char *</code> 数组作为返回多行的 FETCH 语句目标时的行为，以及其他一些数组处理修复（Ashutosh Bapat）</p>", "text": "修复 ecpg 在 char * 数组作为返回多行的 FETCH 语句目标时的行为，以及其他一些数组处理修复（Ashutosh Bapat）", "title": "修复 ecpg 在 char * 数组作为返回多行的 FETCH 语句目标时的行为，以及其他一些数组处理修复", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.18/#id-1.11.6.10.5", "source_hash": "154dd8503b9fceb97107f980d27eb887ce90b6a586a1797173c466d926aa2a1f", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix ecpg to do the right thing when an array of char * is the target for a FETCH statement returning more than one row, as well as some other array-handling fixes (Ashutosh Bapat)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.18/changes/024", "db_id": "803965b25515c92205c976328c2eb0a4", "patch_ids": [], "statement_hash": "bbf5a7b8dea2c6d469f7cd4ddb525ccbe9be895afdc8a4c0fd2041aa66cc83c1", "relations": [{"rule": 2, "type": "equivalent", "target": "03951a03f69cc7a7ccf5e67eaa50748e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bbf5a7b8dea2c6d469f7cd4ddb525ccbe9be895afdc8a4c0fd2041aa66cc83c1"}}, {"rule": 2, "type": "equivalent", "target": "5fe77e7c94032b304ecf46028b3be13d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bbf5a7b8dea2c6d469f7cd4ddb525ccbe9be895afdc8a4c0fd2041aa66cc83c1"}}, {"rule": 2, "type": "equivalent", "target": "60a69e69d0f9f9787bb74a801b09eced", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bbf5a7b8dea2c6d469f7cd4ddb525ccbe9be895afdc8a4c0fd2041aa66cc83c1"}}], "version": "9.0.18", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "03951a03f69cc7a7ccf5e67eaa50748e", "kind": "equivalent", "version": "9.3.5", "label": "9.3.5", "title": "修复 ecpg 在 char * 数组作为返回多行的 FETCH 语句目标时的行为，以及其他一些数组处理修复", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bbf5a7b8dea2c6d469f7cd4ddb525ccbe9be895afdc8a4c0fd2041aa66cc83c1"}, "url": "/docs/compare/?release=9.3.5#9.3.5-711d03350e4bd689", "source_url": "/docs/release/9.3.5/#id-1.11.6.25.5"}, {"db_id": "5fe77e7c94032b304ecf46028b3be13d", "kind": "equivalent", "version": "9.2.9", "label": "9.2.9", "title": "修复 ecpg 在 char * 数组作为返回多行的 FETCH 语句目标时的行为，以及其他一些数组处理修复", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bbf5a7b8dea2c6d469f7cd4ddb525ccbe9be895afdc8a4c0fd2041aa66cc83c1"}, "url": "/docs/compare/?release=9.2.9#9.2.9-711d03350e4bd689", "source_url": "/docs/release/9.2.9/#id-1.11.6.20.5"}, {"db_id": "60a69e69d0f9f9787bb74a801b09eced", "kind": "equivalent", "version": "9.1.14", "label": "9.1.14", "title": "修复 ecpg 在 char * 数组作为返回多行的 FETCH 语句目标时的行为，以及其他一些数组处理修复", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bbf5a7b8dea2c6d469f7cd4ddb525ccbe9be895afdc8a4c0fd2041aa66cc83c1"}, "url": "/docs/compare/?release=9.1.14#9.1.14-711d03350e4bd689", "source_url": "/docs/release/9.1.14/#id-1.11.6.15.5"}]}, {"id": "9.0.18-5c2bb548ad784bfa", "cves": [], "html": "<p>修复 <span>pg_restore</span> 对旧式大对象注释的处理（Tom Lane）</p>\n<p>如果归档文件由 9.0 之前版本的 <span>pg_dump</span> 生成且包含较多大对象注释，直接恢复到数据库通常会失败。</p>", "text": "修复 pg_restore 对旧式大对象注释的处理（Tom Lane） 如果归档文件由 9.0 之前版本的 pg_dump 生成且包含较多大对象注释，直接恢复到数据库通常会失败。", "title": "修复 pg_restore 对旧式大对象注释的处理", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.18/#id-1.11.6.10.5", "source_hash": "7650937f2600938e1652de97c3c00d1231de72967692ca7276a24ad7968c977c", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix pg_restore's processing of old-style large object comments (Tom Lane) A direct-to-database restore from an archive file generated by a pre-9.0 version of pg_dump would usually fail if the archive contained more than a few comments for large objects.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.18/changes/025", "db_id": "ebf06686a05aa24118cb50052c738ec5", "patch_ids": [], "statement_hash": "810f62d2bad25f30a19392d14d2f235e536c1310f924633aff7f134363fb5ec0", "relations": [{"rule": 2, "type": "equivalent", "target": "82fd6a93aa95c840ae3aea81590e8700", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "810f62d2bad25f30a19392d14d2f235e536c1310f924633aff7f134363fb5ec0"}}, {"rule": 2, "type": "equivalent", "target": "854416bf297531ff4f4f9015bab857f9", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "810f62d2bad25f30a19392d14d2f235e536c1310f924633aff7f134363fb5ec0"}}, {"rule": 2, "type": "equivalent", "target": "da83d1898e5b2c300cfb0fad7355a0cb", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "810f62d2bad25f30a19392d14d2f235e536c1310f924633aff7f134363fb5ec0"}}], "version": "9.0.18", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "da83d1898e5b2c300cfb0fad7355a0cb", "kind": "equivalent", "version": "9.3.5", "label": "9.3.5", "title": "修复 pg_restore 对旧式大对象注释的处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "810f62d2bad25f30a19392d14d2f235e536c1310f924633aff7f134363fb5ec0"}, "url": "/docs/compare/?release=9.3.5#9.3.5-5c2bb548ad784bfa", "source_url": "/docs/release/9.3.5/#id-1.11.6.25.5"}, {"db_id": "82fd6a93aa95c840ae3aea81590e8700", "kind": "equivalent", "version": "9.2.9", "label": "9.2.9", "title": "修复 pg_restore 对旧式大对象注释的处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "810f62d2bad25f30a19392d14d2f235e536c1310f924633aff7f134363fb5ec0"}, "url": "/docs/compare/?release=9.2.9#9.2.9-5c2bb548ad784bfa", "source_url": "/docs/release/9.2.9/#id-1.11.6.20.5"}, {"db_id": "854416bf297531ff4f4f9015bab857f9", "kind": "equivalent", "version": "9.1.14", "label": "9.1.14", "title": "修复 pg_restore 对旧式大对象注释的处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "810f62d2bad25f30a19392d14d2f235e536c1310f924633aff7f134363fb5ec0"}, "url": "/docs/compare/?release=9.1.14#9.1.14-5c2bb548ad784bfa", "source_url": "/docs/release/9.1.14/#id-1.11.6.15.5"}]}, {"id": "9.0.18-0016b300fbfa987e", "cves": [], "html": "<p>在 <code>contrib/pgcrypto</code> 函数中，确保返回前清除栈变量中的敏感信息（Marko Kreen）</p>", "text": "在 contrib/pgcrypto 函数中，确保返回前清除栈变量中的敏感信息（Marko Kreen）", "title": "在 contrib/pgcrypto 函数中，确保返回前清除栈变量中的敏感信息", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.18/#id-1.11.6.10.5", "source_hash": "1025118a5bda595d60aa9795f8d47bfb0dd8391f224c66593d654eb823979ad6", "section_path": ["变更"], "commit_groups": [], "identity_text": "In contrib/pgcrypto functions, ensure sensitive information is cleared from stack variables before returning (Marko Kreen)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.18/changes/026", "db_id": "da3c1ef853655f747a6a5c63dbbec939", "patch_ids": [], "statement_hash": "5efa83f80cfe0fdc6d4ef2579cd86e4982ceb6a50ddd77a58d599dd9c3f4a9d6", "relations": [{"rule": 2, "type": "equivalent", "target": "1950470d6df3ffce099f00fdf31d8a6e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5efa83f80cfe0fdc6d4ef2579cd86e4982ceb6a50ddd77a58d599dd9c3f4a9d6"}}, {"rule": 2, "type": "equivalent", "target": "e46ff2eeb859e50d67e0065ff01d7479", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5efa83f80cfe0fdc6d4ef2579cd86e4982ceb6a50ddd77a58d599dd9c3f4a9d6"}}, {"rule": 2, "type": "equivalent", "target": "f78027492cdf29e6121d9de1919885c4", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5efa83f80cfe0fdc6d4ef2579cd86e4982ceb6a50ddd77a58d599dd9c3f4a9d6"}}], "version": "9.0.18", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "1950470d6df3ffce099f00fdf31d8a6e", "kind": "equivalent", "version": "9.3.5", "label": "9.3.5", "title": "在 contrib/pgcrypto 函数中，确保返回前清除栈变量中的敏感信息", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5efa83f80cfe0fdc6d4ef2579cd86e4982ceb6a50ddd77a58d599dd9c3f4a9d6"}, "url": "/docs/compare/?release=9.3.5#9.3.5-0016b300fbfa987e", "source_url": "/docs/release/9.3.5/#id-1.11.6.25.5"}, {"db_id": "f78027492cdf29e6121d9de1919885c4", "kind": "equivalent", "version": "9.2.9", "label": "9.2.9", "title": "在 contrib/pgcrypto 函数中，确保返回前清除栈变量中的敏感信息", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5efa83f80cfe0fdc6d4ef2579cd86e4982ceb6a50ddd77a58d599dd9c3f4a9d6"}, "url": "/docs/compare/?release=9.2.9#9.2.9-0016b300fbfa987e", "source_url": "/docs/release/9.2.9/#id-1.11.6.20.5"}, {"db_id": "e46ff2eeb859e50d67e0065ff01d7479", "kind": "equivalent", "version": "9.1.14", "label": "9.1.14", "title": "在 contrib/pgcrypto 函数中，确保返回前清除栈变量中的敏感信息", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5efa83f80cfe0fdc6d4ef2579cd86e4982ceb6a50ddd77a58d599dd9c3f4a9d6"}, "url": "/docs/compare/?release=9.1.14#9.1.14-0016b300fbfa987e", "source_url": "/docs/release/9.1.14/#id-1.11.6.15.5"}]}, {"id": "9.0.18-f301465b45c606aa", "cves": [], "html": "<p>在 <code>contrib/uuid-ossp</code> 中，跨调用缓存 OSSP UUID 库的状态（Tom Lane）</p>\n<p>这提高了 UUID 生成的效率，并在有 <code>/dev/urandom</code> 的平台上减少了从中抽取的熵量。</p>", "text": "在 contrib/uuid-ossp 中，跨调用缓存 OSSP UUID 库的状态（Tom Lane） 这提高了 UUID 生成的效率，并在有 /dev/urandom 的平台上减少了从中抽取的熵量。", "title": "在 contrib/uuid-ossp 中，跨调用缓存 OSSP UUID 库的状态", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.18/#id-1.11.6.10.5", "source_hash": "8e091162a23dcadae6708f895e00dd13f63972a735bd53935ffedb7884e33ee4", "section_path": ["变更"], "commit_groups": [], "identity_text": "In contrib/uuid-ossp, cache the state of the OSSP UUID library across calls (Tom Lane) This improves the efficiency of UUID generation and reduces the amount of entropy drawn from /dev/urandom, on platforms that have that.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.18/changes/027", "db_id": "f10275f87e34a2c9c4ff6de64101c8f6", "patch_ids": [], "statement_hash": "bd095415b79f203d378a5a281e6ea63ea7822660df35fd025f8c77580c43717b", "relations": [{"rule": 2, "type": "equivalent", "target": "1326b033b2b56a25227df3cbe1617a36", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bd095415b79f203d378a5a281e6ea63ea7822660df35fd025f8c77580c43717b"}}, {"rule": 2, "type": "equivalent", "target": "2d2932d1495af96400c3a66a5188eb46", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bd095415b79f203d378a5a281e6ea63ea7822660df35fd025f8c77580c43717b"}}, {"rule": 2, "type": "equivalent", "target": "e76d1e6b1ab7c2cd7f6aeb6112cdd519", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bd095415b79f203d378a5a281e6ea63ea7822660df35fd025f8c77580c43717b"}}], "version": "9.0.18", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "1326b033b2b56a25227df3cbe1617a36", "kind": "equivalent", "version": "9.3.5", "label": "9.3.5", "title": "在 contrib/uuid-ossp 中，跨调用缓存 OSSP UUID 库的状态", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bd095415b79f203d378a5a281e6ea63ea7822660df35fd025f8c77580c43717b"}, "url": "/docs/compare/?release=9.3.5#9.3.5-f301465b45c606aa", "source_url": "/docs/release/9.3.5/#id-1.11.6.25.5"}, {"db_id": "2d2932d1495af96400c3a66a5188eb46", "kind": "equivalent", "version": "9.2.9", "label": "9.2.9", "title": "在 contrib/uuid-ossp 中，跨调用缓存 OSSP UUID 库的状态", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bd095415b79f203d378a5a281e6ea63ea7822660df35fd025f8c77580c43717b"}, "url": "/docs/compare/?release=9.2.9#9.2.9-f301465b45c606aa", "source_url": "/docs/release/9.2.9/#id-1.11.6.20.5"}, {"db_id": "e76d1e6b1ab7c2cd7f6aeb6112cdd519", "kind": "equivalent", "version": "9.1.14", "label": "9.1.14", "title": "在 contrib/uuid-ossp 中，跨调用缓存 OSSP UUID 库的状态", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bd095415b79f203d378a5a281e6ea63ea7822660df35fd025f8c77580c43717b"}, "url": "/docs/compare/?release=9.1.14#9.1.14-f301465b45c606aa", "source_url": "/docs/release/9.1.14/#id-1.11.6.15.5"}]}, {"id": "9.0.18-f6411040831c229f", "cves": [], "html": "<p>把时区数据文件更新为 <span>tzdata</span> 版本 2014e for DST law changes in Crimea, Egypt, and Morocco。</p>", "text": "把时区数据文件更新为 tzdata 版本 2014e for DST law changes in Crimea, Egypt, and Morocco。", "title": "把时区数据文件更新为 tzdata 版本 2014e for DST law changes in Crimea, Egypt, and Morocco。", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.18/#id-1.11.6.10.5", "source_hash": "ac45f6a95c3457f4cd1c7a5dfbb10a37b6f13c2ab6bce94dddebbc70f24137bf", "section_path": ["变更"], "commit_groups": [], "identity_text": "Update time zone data files to tzdata release 2014e for DST law changes in Crimea, Egypt, and Morocco.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.18/changes/028", "db_id": "40de67ee53d71ae301c40a9ffdc80562", "patch_ids": [], "statement_hash": "7abe05ad3e342400b3a6f53223c04884cf12ae063e388445fb302f2025000f1a", "relations": [{"rule": 2, "type": "equivalent", "target": "0be25c77e3001279f17afc62b5ad0e26", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7abe05ad3e342400b3a6f53223c04884cf12ae063e388445fb302f2025000f1a"}}, {"rule": 2, "type": "equivalent", "target": "baaed6e0e43e79f2a9ebad4377a39a4f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7abe05ad3e342400b3a6f53223c04884cf12ae063e388445fb302f2025000f1a"}}, {"rule": 2, "type": "equivalent", "target": "f0379227a70a81072cf0b0270ac81b05", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7abe05ad3e342400b3a6f53223c04884cf12ae063e388445fb302f2025000f1a"}}], "version": "9.0.18", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "0be25c77e3001279f17afc62b5ad0e26", "kind": "equivalent", "version": "9.3.5", "label": "9.3.5", "title": "把时区数据文件更新为 tzdata 版本 2014e，以反映克里米亚、埃及和摩洛哥的夏令时法规变更。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7abe05ad3e342400b3a6f53223c04884cf12ae063e388445fb302f2025000f1a"}, "url": "/docs/compare/?release=9.3.5#9.3.5-34d486e25f2c3c26", "source_url": "/docs/release/9.3.5/#id-1.11.6.25.5"}, {"db_id": "f0379227a70a81072cf0b0270ac81b05", "kind": "equivalent", "version": "9.2.9", "label": "9.2.9", "title": "把时区数据文件更新为 tzdata 版本 2014e for DST law changes in Crimea, Egypt, and Morocco。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7abe05ad3e342400b3a6f53223c04884cf12ae063e388445fb302f2025000f1a"}, "url": "/docs/compare/?release=9.2.9#9.2.9-f6411040831c229f", "source_url": "/docs/release/9.2.9/#id-1.11.6.20.5"}, {"db_id": "baaed6e0e43e79f2a9ebad4377a39a4f", "kind": "equivalent", "version": "9.1.14", "label": "9.1.14", "title": "把时区数据文件更新为 tzdata 版本 2014e for DST law changes in Crimea, Egypt, and Morocco。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7abe05ad3e342400b3a6f53223c04884cf12ae063e388445fb302f2025000f1a"}, "url": "/docs/compare/?release=9.1.14#9.1.14-f6411040831c229f", "source_url": "/docs/release/9.1.14/#id-1.11.6.15.5"}]}]}, {"date": "2014-03-20", "build": "9.0.17", "major": "9.0", "minor": 17, "manual": "9.0", "status": "stable", "doc_git": "", "version": "9.0.17", "eol_date": "2015-10-08", "date_text": "2014-03-20", "supported": false, "manual_url": "/docs/9.0/release-9-0-17.html", "source_url": "/docs/release/9.0.17/", "entry_count": 10, "placeholder": false, "content_hash": "c8a4a8a13fd667918900b1a8c6f7cc521996ad8b352ad3f0cf73e74704aa8255", "manual_build": "9.0.23", "source_as_of": "", "changes_count": 10, "doc_loaded_at": "2026-09-26T02:56:48.570247", "migration_html": "<p>对于运行 9.0.X 的用户，不需要进行转储/恢复。</p>\n<p>不过，如果你是从早于 9.0.15 的版本升级，请参见<a href=\"/docs/9.0/release-9-0-15.html\" title=\"E.9. 版本 9.0.15\">第 E.9 节</a>。</p>", "compatibility_count": 0, "label": "9.0.17", "status_label": "历史版本", "eol": "2015-10-08", "age_days": 4577, "support_days": -4010, "entries": [{"id": "9.0.17-111ab50ad1f2c777", "cves": [], "html": "<p>无条件恢复 GIN 元页以避免残缺页风险（Heikki Linnakangas）</p>\n<p>虽然这一疏忽理论上可能导致索引损坏，但实际上不太可能造成任何问题，因为 GIN 元页的活动部分小于标准的 512 字节磁盘扇区。</p>", "text": "无条件恢复 GIN 元页以避免残缺页风险（Heikki Linnakangas） 虽然这一疏忽理论上可能导致索引损坏，但实际上不太可能造成任何问题，因为 GIN 元页的活动部分小于标准的 512 字节磁盘扇区。", "title": "无条件恢复 GIN 元页以避免残缺页风险", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.17/#id-1.11.6.11.5", "source_hash": "9f27114da87bbd471358572323640279aa40a26d0e1ae5be00d0566b4b1e6817", "section_path": ["变更"], "commit_groups": [], "identity_text": "Restore GIN metapages unconditionally to avoid torn-page risk (Heikki Linnakangas) Although this oversight could theoretically result in a corrupted index, it is unlikely to have caused any problems in practice, since the active part of a GIN metapage is smaller than a standard 512-byte disk sector.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.17/changes/001", "db_id": "cc670948f13dd3b08204a893fa2e9465", "patch_ids": [], "statement_hash": "bd03226607b25a778042e0df135078961273c19f11cbc0ef66f5e65616a8bfaa", "relations": [{"rule": 2, "type": "equivalent", "target": "804a236a01382cffe4b84a219947b766", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bd03226607b25a778042e0df135078961273c19f11cbc0ef66f5e65616a8bfaa"}}, {"rule": 2, "type": "equivalent", "target": "c39429d16018e089a092c8c72ba0d908", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bd03226607b25a778042e0df135078961273c19f11cbc0ef66f5e65616a8bfaa"}}, {"rule": 2, "type": "equivalent", "target": "c8123c71b2dde2669dedb8b0b8a67ff9", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bd03226607b25a778042e0df135078961273c19f11cbc0ef66f5e65616a8bfaa"}}], "version": "9.0.17", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "c39429d16018e089a092c8c72ba0d908", "kind": "equivalent", "version": "9.3.4", "label": "9.3.4", "title": "无条件恢复 GIN 元页以避免残缺页风险", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bd03226607b25a778042e0df135078961273c19f11cbc0ef66f5e65616a8bfaa"}, "url": "/docs/compare/?release=9.3.4#9.3.4-111ab50ad1f2c777", "source_url": "/docs/release/9.3.4/#id-1.11.6.26.5"}, {"db_id": "804a236a01382cffe4b84a219947b766", "kind": "equivalent", "version": "9.2.8", "label": "9.2.8", "title": "无条件恢复 GIN 元页以避免残缺页风险", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bd03226607b25a778042e0df135078961273c19f11cbc0ef66f5e65616a8bfaa"}, "url": "/docs/compare/?release=9.2.8#9.2.8-111ab50ad1f2c777", "source_url": "/docs/release/9.2.8/#id-1.11.6.21.5"}, {"db_id": "c8123c71b2dde2669dedb8b0b8a67ff9", "kind": "equivalent", "version": "9.1.13", "label": "9.1.13", "title": "无条件恢复 GIN 元页以避免残缺页风险", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bd03226607b25a778042e0df135078961273c19f11cbc0ef66f5e65616a8bfaa"}, "url": "/docs/compare/?release=9.1.13#9.1.13-111ab50ad1f2c777", "source_url": "/docs/release/9.1.13/#id-1.11.6.16.5"}]}, {"id": "9.0.17-abd8efd5308ef26f", "cves": [], "html": "<p>避免在接收 <code>NOTIFY</code> 消息期间检查事务提交状态时的竞态条件（Marko Tiikkaja）</p>\n<p>这防止了这样一种场景：足够快的客户端可能在通知者所做的数据库更新对接收者可见之前就响应通知。</p>", "text": "避免在接收 NOTIFY 消息期间检查事务提交状态时的竞态条件（Marko Tiikkaja） 这防止了这样一种场景：足够快的客户端可能在通知者所做的数据库更新对接收者可见之前就响应通知。", "title": "避免在接收 NOTIFY 消息期间检查事务提交状态时的竞态条件", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.17/#id-1.11.6.11.5", "source_hash": "23339fa877b792694fe0df13ed4f2de63cb0fdd73e530564bae71a6ee7ec73bf", "section_path": ["变更"], "commit_groups": [], "identity_text": "Avoid race condition in checking transaction commit status during receipt of a NOTIFY message (Marko Tiikkaja) This prevents a scenario wherein a sufficiently fast client might respond to a notification before database updates made by the notifier have become visible to the recipient.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.17/changes/002", "db_id": "6a217ad82f7b13649a9206b3d881d86f", "patch_ids": [], "statement_hash": "291da1fb776c04474e62e6b27b947d16c835a4b50c3e6c3587a66436a1607887", "relations": [{"rule": 2, "type": "equivalent", "target": "6539056a357766e0940558a25be2302e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "291da1fb776c04474e62e6b27b947d16c835a4b50c3e6c3587a66436a1607887"}}, {"rule": 2, "type": "equivalent", "target": "8b8fd40d0cba0ab61b6e50ef1bdda84e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "291da1fb776c04474e62e6b27b947d16c835a4b50c3e6c3587a66436a1607887"}}, {"rule": 2, "type": "equivalent", "target": "a4b0d7088e6137e3df54c72da3f8ec46", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "291da1fb776c04474e62e6b27b947d16c835a4b50c3e6c3587a66436a1607887"}}], "version": "9.0.17", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "8b8fd40d0cba0ab61b6e50ef1bdda84e", "kind": "equivalent", "version": "9.3.4", "label": "9.3.4", "title": "避免在接收 NOTIFY 消息期间检查事务提交状态时的竞态条件", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "291da1fb776c04474e62e6b27b947d16c835a4b50c3e6c3587a66436a1607887"}, "url": "/docs/compare/?release=9.3.4#9.3.4-abd8efd5308ef26f", "source_url": "/docs/release/9.3.4/#id-1.11.6.26.5"}, {"db_id": "a4b0d7088e6137e3df54c72da3f8ec46", "kind": "equivalent", "version": "9.2.8", "label": "9.2.8", "title": "避免在接收 NOTIFY 消息期间检查事务提交状态时的竞态条件", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "291da1fb776c04474e62e6b27b947d16c835a4b50c3e6c3587a66436a1607887"}, "url": "/docs/compare/?release=9.2.8#9.2.8-abd8efd5308ef26f", "source_url": "/docs/release/9.2.8/#id-1.11.6.21.5"}, {"db_id": "6539056a357766e0940558a25be2302e", "kind": "equivalent", "version": "9.1.13", "label": "9.1.13", "title": "避免在接收 NOTIFY 消息期间检查事务提交状态时的竞态条件", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "291da1fb776c04474e62e6b27b947d16c835a4b50c3e6c3587a66436a1607887"}, "url": "/docs/compare/?release=9.1.13#9.1.13-abd8efd5308ef26f", "source_url": "/docs/release/9.1.13/#id-1.11.6.16.5"}]}, {"id": "9.0.17-e70a52d44b311aa5", "cves": [], "html": "<p>允许正则表达式操作符被查询取消请求提前终止（Tom Lane）</p>\n<p>这防止了病态正则表达式长时间不可中断地锁死服务器进程的场景。</p>", "text": "允许正则表达式操作符被查询取消请求提前终止（Tom Lane） 这防止了病态正则表达式长时间不可中断地锁死服务器进程的场景。", "title": "允许正则表达式操作符被查询取消请求提前终止", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.17/#id-1.11.6.11.5", "source_hash": "680be1f552c6031521c9de2a990b4fb59be496de35b8ef9f20e845794ea35028", "section_path": ["变更"], "commit_groups": [], "identity_text": "Allow regular-expression operators to be terminated early by query cancel requests (Tom Lane) This prevents scenarios wherein a pathological regular expression could lock up a server process uninterruptably for a long time.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.17/changes/003", "db_id": "e5dd058f09ccd60f459ff79a0fb89846", "patch_ids": [], "statement_hash": "61e4513d97d72ea5b82965d7f9eacef91a3efb56256f9bb338a1b3628e2362e9", "relations": [{"rule": 2, "type": "equivalent", "target": "5ec444ab4bd527141860302adeb2ea6f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "61e4513d97d72ea5b82965d7f9eacef91a3efb56256f9bb338a1b3628e2362e9"}}], "version": "9.0.17", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "5ec444ab4bd527141860302adeb2ea6f", "kind": "equivalent", "version": "9.1.13", "label": "9.1.13", "title": "允许正则表达式操作符被查询取消请求提前终止", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "61e4513d97d72ea5b82965d7f9eacef91a3efb56256f9bb338a1b3628e2362e9"}, "url": "/docs/compare/?release=9.1.13#9.1.13-e70a52d44b311aa5", "source_url": "/docs/release/9.1.13/#id-1.11.6.16.5"}]}, {"id": "9.0.17-e50f6525a9c174c4", "cves": [], "html": "<p>移除试图允许 <code>OVERLAPS</code> 接受单元素行参数的错误代码（Joshua Yanovski）</p>\n<p>这段代码从未正确工作过，而且该情况既未被 SQL 标准规定也未被记录，因此移除它似乎比修复它更好。</p>", "text": "移除试图允许 OVERLAPS 接受单元素行参数的错误代码（Joshua Yanovski） 这段代码从未正确工作过，而且该情况既未被 SQL 标准规定也未被记录，因此移除它似乎比修复它更好。", "title": "移除试图允许 OVERLAPS 接受单元素行参数的错误代码", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.17/#id-1.11.6.11.5", "source_hash": "d9249df782ba9a440037878b6a0fb773d36780bf2e558eee78863c5e4442709f", "section_path": ["变更"], "commit_groups": [], "identity_text": "Remove incorrect code that tried to allow OVERLAPS with single-element row arguments (Joshua Yanovski) This code never worked correctly, and since the case is neither specified by the SQL standard nor documented, it seemed better to remove it than fix it.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.17/changes/004", "db_id": "6cdc75f2494fb4d11adfe7936f37cedf", "patch_ids": [], "statement_hash": "c68c3e96e43a1e796f12a82249610041e62a197d6308a6df10f0862d8a90eda8", "relations": [{"rule": 2, "type": "equivalent", "target": "25d0c9e174df2ed5a4ce4e6c4a64f14f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c68c3e96e43a1e796f12a82249610041e62a197d6308a6df10f0862d8a90eda8"}}, {"rule": 2, "type": "equivalent", "target": "3600c1a08ae43d562a6283a36684f323", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c68c3e96e43a1e796f12a82249610041e62a197d6308a6df10f0862d8a90eda8"}}, {"rule": 2, "type": "equivalent", "target": "4d49f28aaa9e0fc9fdc9a3fb4b2a32e4", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c68c3e96e43a1e796f12a82249610041e62a197d6308a6df10f0862d8a90eda8"}}], "version": "9.0.17", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "3600c1a08ae43d562a6283a36684f323", "kind": "equivalent", "version": "9.3.4", "label": "9.3.4", "title": "移除试图允许 OVERLAPS 接受单元素行参数的错误代码", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c68c3e96e43a1e796f12a82249610041e62a197d6308a6df10f0862d8a90eda8"}, "url": "/docs/compare/?release=9.3.4#9.3.4-e50f6525a9c174c4", "source_url": "/docs/release/9.3.4/#id-1.11.6.26.5"}, {"db_id": "4d49f28aaa9e0fc9fdc9a3fb4b2a32e4", "kind": "equivalent", "version": "9.2.8", "label": "9.2.8", "title": "移除试图允许 OVERLAPS 接受单元素行参数的错误代码", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c68c3e96e43a1e796f12a82249610041e62a197d6308a6df10f0862d8a90eda8"}, "url": "/docs/compare/?release=9.2.8#9.2.8-e50f6525a9c174c4", "source_url": "/docs/release/9.2.8/#id-1.11.6.21.5"}, {"db_id": "25d0c9e174df2ed5a4ce4e6c4a64f14f", "kind": "equivalent", "version": "9.1.13", "label": "9.1.13", "title": "移除试图允许 OVERLAPS 接受单元素行参数的错误代码", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c68c3e96e43a1e796f12a82249610041e62a197d6308a6df10f0862d8a90eda8"}, "url": "/docs/compare/?release=9.1.13#9.1.13-e50f6525a9c174c4", "source_url": "/docs/release/9.1.13/#id-1.11.6.16.5"}]}, {"id": "9.0.17-8c8b1188e4f2b77c", "cves": [], "html": "<p>避免在反解析规则或视图时获取超出 <code>AccessShareLock</code> 的锁（Dean Rasheed）</p>\n<p>这一疏忽导致 <span>pg_dump</span> 对规则中作为 <code>INSERT</code>/<code>UPDATE</code>/<code>DELETE</code> 命令目标的表意外获取了 <code>RowExclusiveLock</code> 锁。虽然通常无害，但它可能干扰试图在这些表上获取例如 <code>ShareLock</code> 的并发事务。</p>", "text": "避免在反解析规则或视图时获取超出 AccessShareLock 的锁（Dean Rasheed） 这一疏忽导致 pg_dump 对规则中作为 INSERT/UPDATE/DELETE 命令目标的表意外获取了 RowExclusiveLock 锁。虽然通常无害，但它可能干扰试图在这些表上获取例如 ShareLock 的并发事务。", "title": "避免在反解析规则或视图时获取超出 AccessShareLock 的锁", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.17/#id-1.11.6.11.5", "source_hash": "6180d8870755b3a978adac0409b72ef7499c3b7b5266df8e9e7b7e04fe7d54f7", "section_path": ["变更"], "commit_groups": [], "identity_text": "Avoid getting more than AccessShareLock when de-parsing a rule or view (Dean Rasheed) This oversight resulted in pg_dump unexpectedly acquiring RowExclusiveLock locks on tables mentioned as the targets of INSERT/UPDATE/DELETE commands in rules. While usually harmless, that could interfere with concurrent transactions that tried to acquire, for example, ShareLock on those tables.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.17/changes/005", "db_id": "c903c369976b55382bd5c1c61bba9c3d", "patch_ids": [], "statement_hash": "257dc209c3c3c12f7aa3767a66dbd741d4cbc5908a28d5e2ed20ecb64e7db34b", "relations": [{"rule": 2, "type": "equivalent", "target": "0b29a0dbed21e8daa433b6a8779c08d4", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "257dc209c3c3c12f7aa3767a66dbd741d4cbc5908a28d5e2ed20ecb64e7db34b"}}, {"rule": 2, "type": "equivalent", "target": "46f9989df29abdfe84460fff320c84b0", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "257dc209c3c3c12f7aa3767a66dbd741d4cbc5908a28d5e2ed20ecb64e7db34b"}}, {"rule": 2, "type": "equivalent", "target": "ebec25fac85a8fac4b44284872aa96dd", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "257dc209c3c3c12f7aa3767a66dbd741d4cbc5908a28d5e2ed20ecb64e7db34b"}}], "version": "9.0.17", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "46f9989df29abdfe84460fff320c84b0", "kind": "equivalent", "version": "9.3.4", "label": "9.3.4", "title": "避免在反解析规则或视图时获取超出 AccessShareLock 的锁", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "257dc209c3c3c12f7aa3767a66dbd741d4cbc5908a28d5e2ed20ecb64e7db34b"}, "url": "/docs/compare/?release=9.3.4#9.3.4-8c8b1188e4f2b77c", "source_url": "/docs/release/9.3.4/#id-1.11.6.26.5"}, {"db_id": "ebec25fac85a8fac4b44284872aa96dd", "kind": "equivalent", "version": "9.2.8", "label": "9.2.8", "title": "避免在反解析规则或视图时获取超出 AccessShareLock 的锁", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "257dc209c3c3c12f7aa3767a66dbd741d4cbc5908a28d5e2ed20ecb64e7db34b"}, "url": "/docs/compare/?release=9.2.8#9.2.8-8c8b1188e4f2b77c", "source_url": "/docs/release/9.2.8/#id-1.11.6.21.5"}, {"db_id": "0b29a0dbed21e8daa433b6a8779c08d4", "kind": "equivalent", "version": "9.1.13", "label": "9.1.13", "title": "避免在反解析规则或视图时获取超出 AccessShareLock 的锁", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "257dc209c3c3c12f7aa3767a66dbd741d4cbc5908a28d5e2ed20ecb64e7db34b"}, "url": "/docs/compare/?release=9.1.13#9.1.13-8c8b1188e4f2b77c", "source_url": "/docs/release/9.1.13/#id-1.11.6.16.5"}]}, {"id": "9.0.17-14ff848fde9ce51b", "cves": [], "html": "<p>改进规划期间索引端点探测的性能（Tom Lane）</p>\n<p>此变更修复了当索引末尾存在大量尚未提交的行时的显著性能问题，这对于基于顺序赋值（如时间戳或序列生成的标识符）的索引是常见情况。</p>", "text": "改进规划期间索引端点探测的性能（Tom Lane） 此变更修复了当索引末尾存在大量尚未提交的行时的显著性能问题，这对于基于顺序赋值（如时间戳或序列生成的标识符）的索引是常见情况。", "title": "改进规划期间索引端点探测的性能", "commits": [], "section": "变更", "category": "performance", "source_url": "/docs/release/9.0.17/#id-1.11.6.11.5", "source_hash": "255c88ce6faac4bc498d553ad8d63cecfbc76ecef3b332e5bd5b7fb2cc80fdde", "section_path": ["变更"], "commit_groups": [], "identity_text": "Improve performance of index endpoint probes during planning (Tom Lane) This change fixes a significant performance problem that occurred when there were many not-yet-committed rows at the end of the index, which is a common situation for indexes on sequentially-assigned values such as timestamps or sequence-generated identifiers.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.17/changes/006", "db_id": "4643d7b995f70cb15747faa3494c3839", "patch_ids": [], "statement_hash": "62263dc7a060c30a2b393235a7c80010fc45eb9e34afe6ba8ad148ae6ae13c14", "relations": [{"rule": 2, "type": "equivalent", "target": "45120680ee0f8a9477ac87e95f44d708", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "62263dc7a060c30a2b393235a7c80010fc45eb9e34afe6ba8ad148ae6ae13c14"}}, {"rule": 2, "type": "equivalent", "target": "73f5853dda77eb4965b15e4f03b233c5", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "62263dc7a060c30a2b393235a7c80010fc45eb9e34afe6ba8ad148ae6ae13c14"}}, {"rule": 2, "type": "equivalent", "target": "e94ab65837887b85ee4b809d1fe99058", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "62263dc7a060c30a2b393235a7c80010fc45eb9e34afe6ba8ad148ae6ae13c14"}}], "version": "9.0.17", "category_label": "性能改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "e94ab65837887b85ee4b809d1fe99058", "kind": "equivalent", "version": "9.3.4", "label": "9.3.4", "title": "改进规划期间索引端点探测的性能", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "62263dc7a060c30a2b393235a7c80010fc45eb9e34afe6ba8ad148ae6ae13c14"}, "url": "/docs/compare/?release=9.3.4#9.3.4-14ff848fde9ce51b", "source_url": "/docs/release/9.3.4/#id-1.11.6.26.5"}, {"db_id": "73f5853dda77eb4965b15e4f03b233c5", "kind": "equivalent", "version": "9.2.8", "label": "9.2.8", "title": "改进规划期间索引端点探测的性能", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "62263dc7a060c30a2b393235a7c80010fc45eb9e34afe6ba8ad148ae6ae13c14"}, "url": "/docs/compare/?release=9.2.8#9.2.8-14ff848fde9ce51b", "source_url": "/docs/release/9.2.8/#id-1.11.6.21.5"}, {"db_id": "45120680ee0f8a9477ac87e95f44d708", "kind": "equivalent", "version": "9.1.13", "label": "9.1.13", "title": "改进规划期间索引端点探测的性能", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "62263dc7a060c30a2b393235a7c80010fc45eb9e34afe6ba8ad148ae6ae13c14"}, "url": "/docs/compare/?release=9.1.13#9.1.13-14ff848fde9ce51b", "source_url": "/docs/release/9.1.13/#id-1.11.6.16.5"}]}, {"id": "9.0.17-07fb6ecd8ac9a708", "cves": [], "html": "<p>修复崩溃后是否可以立即允许热备连接的测试（Heikki Linnakangas）</p>", "text": "修复崩溃后是否可以立即允许热备连接的测试（Heikki Linnakangas）", "title": "修复崩溃后是否可以立即允许热备连接的测试", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.17/#id-1.11.6.11.5", "source_hash": "93280034994bc21f29a7d4ea96d94ec9de7aae0a0ee3ba185ece434d18a1d316", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix test to see if hot standby connections can be allowed immediately after a crash (Heikki Linnakangas)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.17/changes/007", "db_id": "eae7973698cbeb5b037dbe29082e6ddb", "patch_ids": [], "statement_hash": "57207f2116a1e01449d03f1fddb8e78ec0cd0c0939772f2271e05acb07aceff2", "relations": [{"rule": 2, "type": "equivalent", "target": "3a0558657a39c770428dfac219673002", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "57207f2116a1e01449d03f1fddb8e78ec0cd0c0939772f2271e05acb07aceff2"}}, {"rule": 2, "type": "equivalent", "target": "ed9c81f2dfba6fca1609b6ffc9622bfb", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "57207f2116a1e01449d03f1fddb8e78ec0cd0c0939772f2271e05acb07aceff2"}}, {"rule": 2, "type": "equivalent", "target": "f09f61e60aecd521964080c902f60887", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "57207f2116a1e01449d03f1fddb8e78ec0cd0c0939772f2271e05acb07aceff2"}}], "version": "9.0.17", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "f09f61e60aecd521964080c902f60887", "kind": "equivalent", "version": "9.3.4", "label": "9.3.4", "title": "修复崩溃后是否可以立即允许热备连接的测试", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "57207f2116a1e01449d03f1fddb8e78ec0cd0c0939772f2271e05acb07aceff2"}, "url": "/docs/compare/?release=9.3.4#9.3.4-07fb6ecd8ac9a708", "source_url": "/docs/release/9.3.4/#id-1.11.6.26.5"}, {"db_id": "ed9c81f2dfba6fca1609b6ffc9622bfb", "kind": "equivalent", "version": "9.2.8", "label": "9.2.8", "title": "修复崩溃后是否可以立即允许热备连接的测试", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "57207f2116a1e01449d03f1fddb8e78ec0cd0c0939772f2271e05acb07aceff2"}, "url": "/docs/compare/?release=9.2.8#9.2.8-07fb6ecd8ac9a708", "source_url": "/docs/release/9.2.8/#id-1.11.6.21.5"}, {"db_id": "3a0558657a39c770428dfac219673002", "kind": "equivalent", "version": "9.1.13", "label": "9.1.13", "title": "修复崩溃后是否可以立即允许热备连接的测试", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "57207f2116a1e01449d03f1fddb8e78ec0cd0c0939772f2271e05acb07aceff2"}, "url": "/docs/compare/?release=9.1.13#9.1.13-07fb6ecd8ac9a708", "source_url": "/docs/release/9.1.13/#id-1.11.6.16.5"}]}, {"id": "9.0.17-b543a6bf79f6c2a5", "cves": [], "html": "<p>在报告非 <code>ERROR</code> 消息期间防止中断（Tom Lane）</p>\n<p>这可以防止因递归进入 <code>syslog()</code> 而导致的罕见服务器进程冻结，或许还能防止其他相关问题。</p>", "text": "在报告非 ERROR 消息期间防止中断（Tom Lane） 这可以防止因递归进入 syslog() 而导致的罕见服务器进程冻结，或许还能防止其他相关问题。", "title": "在报告非 ERROR 消息期间防止中断", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.17/#id-1.11.6.11.5", "source_hash": "126e77105a98e2c29ca23430194500b9d4285fc2edd80b0a1d4493614fea266f", "section_path": ["变更"], "commit_groups": [], "identity_text": "Prevent interrupts while reporting non-ERROR messages (Tom Lane) This guards against rare server-process freezeups due to recursive entry to syslog(), and perhaps other related problems.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.17/changes/008", "db_id": "d7a43b61f07c1ead1a5f95d5b153e16d", "patch_ids": [], "statement_hash": "b557e88fe9177092b5f2c812175e9e6a647e7551bb44eb4bea7ac96664ceadea", "relations": [{"rule": 2, "type": "equivalent", "target": "b2a532f40d20ab015a472b7f4240f466", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b557e88fe9177092b5f2c812175e9e6a647e7551bb44eb4bea7ac96664ceadea"}}, {"rule": 2, "type": "equivalent", "target": "b6ae0825bfe86c9a99a561e31b3a258d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b557e88fe9177092b5f2c812175e9e6a647e7551bb44eb4bea7ac96664ceadea"}}, {"rule": 2, "type": "equivalent", "target": "e37125eb485a3bc708e39cff346bf9f9", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b557e88fe9177092b5f2c812175e9e6a647e7551bb44eb4bea7ac96664ceadea"}}], "version": "9.0.17", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "e37125eb485a3bc708e39cff346bf9f9", "kind": "equivalent", "version": "9.3.4", "label": "9.3.4", "title": "在报告非 ERROR 消息期间防止中断", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b557e88fe9177092b5f2c812175e9e6a647e7551bb44eb4bea7ac96664ceadea"}, "url": "/docs/compare/?release=9.3.4#9.3.4-b543a6bf79f6c2a5", "source_url": "/docs/release/9.3.4/#id-1.11.6.26.5"}, {"db_id": "b2a532f40d20ab015a472b7f4240f466", "kind": "equivalent", "version": "9.2.8", "label": "9.2.8", "title": "在报告非 ERROR 消息期间防止中断", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b557e88fe9177092b5f2c812175e9e6a647e7551bb44eb4bea7ac96664ceadea"}, "url": "/docs/compare/?release=9.2.8#9.2.8-b543a6bf79f6c2a5", "source_url": "/docs/release/9.2.8/#id-1.11.6.21.5"}, {"db_id": "b6ae0825bfe86c9a99a561e31b3a258d", "kind": "equivalent", "version": "9.1.13", "label": "9.1.13", "title": "在报告非 ERROR 消息期间防止中断", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b557e88fe9177092b5f2c812175e9e6a647e7551bb44eb4bea7ac96664ceadea"}, "url": "/docs/compare/?release=9.1.13#9.1.13-b543a6bf79f6c2a5", "source_url": "/docs/release/9.1.13/#id-1.11.6.16.5"}]}, {"id": "9.0.17-e90f7b7a4f05d0c1", "cves": [], "html": "<p>防止在较新的 Windows 版本上间歇性出现 <span>“<span>could not reserve shared memory region</span>”</span> 失败（MauMau）</p>", "text": "防止在较新的 Windows 版本上间歇性出现 “could not reserve shared memory region” 失败（MauMau）", "title": "防止在较新的 Windows 版本上间歇性出现 “could not reserve shared memory region” 失败", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.17/#id-1.11.6.11.5", "source_hash": "dba49d71c8b170d85c6435433656855080b430113780e807168b05e59a1dc003", "section_path": ["变更"], "commit_groups": [], "identity_text": "Prevent intermittent could not reserve shared memory region failures on recent Windows versions (MauMau)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.17/changes/009", "db_id": "8aacafd98facca2ed80dcc99593cd278", "patch_ids": [], "statement_hash": "c28796e4cb404d6b16db7dee19c6859cbf98e0ec7baefa9fc0c3764edcdd28f5", "relations": [{"rule": 2, "type": "equivalent", "target": "141d967ba42053ca6f0bf8116feddfe4", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c28796e4cb404d6b16db7dee19c6859cbf98e0ec7baefa9fc0c3764edcdd28f5"}}, {"rule": 2, "type": "equivalent", "target": "72a43aad162b172fd4809aa2c1249b57", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c28796e4cb404d6b16db7dee19c6859cbf98e0ec7baefa9fc0c3764edcdd28f5"}}, {"rule": 2, "type": "equivalent", "target": "a059ecde9a0ecfc5aa530fc54a8ec8d8", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c28796e4cb404d6b16db7dee19c6859cbf98e0ec7baefa9fc0c3764edcdd28f5"}}], "version": "9.0.17", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "141d967ba42053ca6f0bf8116feddfe4", "kind": "equivalent", "version": "9.3.4", "label": "9.3.4", "title": "防止在较新的 Windows 版本上间歇性出现 “could not reserve shared memory region” 失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c28796e4cb404d6b16db7dee19c6859cbf98e0ec7baefa9fc0c3764edcdd28f5"}, "url": "/docs/compare/?release=9.3.4#9.3.4-e90f7b7a4f05d0c1", "source_url": "/docs/release/9.3.4/#id-1.11.6.26.5"}, {"db_id": "72a43aad162b172fd4809aa2c1249b57", "kind": "equivalent", "version": "9.2.8", "label": "9.2.8", "title": "防止在较新的 Windows 版本上间歇性出现“could not reserve shared memory region”失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c28796e4cb404d6b16db7dee19c6859cbf98e0ec7baefa9fc0c3764edcdd28f5"}, "url": "/docs/compare/?release=9.2.8#9.2.8-f390f395a1a265d4", "source_url": "/docs/release/9.2.8/#id-1.11.6.21.5"}, {"db_id": "a059ecde9a0ecfc5aa530fc54a8ec8d8", "kind": "equivalent", "version": "9.1.13", "label": "9.1.13", "title": "防止在较新的 Windows 版本上间歇性出现 “could not reserve shared memory region” 失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c28796e4cb404d6b16db7dee19c6859cbf98e0ec7baefa9fc0c3764edcdd28f5"}, "url": "/docs/compare/?release=9.1.13#9.1.13-e90f7b7a4f05d0c1", "source_url": "/docs/release/9.1.13/#id-1.11.6.16.5"}]}, {"id": "9.0.17-dfc1052b408d215b", "cves": [], "html": "<p>把时区数据文件更新为 <span>tzdata</span> 版本 2014a for DST law changes in Fiji and Turkey, plus historical changes in Israel and Ukraine。</p>", "text": "把时区数据文件更新为 tzdata 版本 2014a for DST law changes in Fiji and Turkey, plus historical changes in Israel and Ukraine。", "title": "把时区数据文件更新为 tzdata 版本 2014a for DST law changes in Fiji and Turkey, plus historical changes in Israel and Ukraine。", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.17/#id-1.11.6.11.5", "source_hash": "e2885b45314d71f5a0ff22d4770cf67718168ae7ad6d5950ace8674eb6a128a1", "section_path": ["变更"], "commit_groups": [], "identity_text": "Update time zone data files to tzdata release 2014a for DST law changes in Fiji and Turkey, plus historical changes in Israel and Ukraine.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.17/changes/010", "db_id": "0fea802a76e89c51a7cfd193ad63865b", "patch_ids": [], "statement_hash": "59814e99a9e40d37d40b8d22e7e795a8b28d9ae574caf3b3f0194a2c02fa12bf", "relations": [{"rule": 2, "type": "equivalent", "target": "0930bbc266fa155f5e6dcc28ee828459", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "59814e99a9e40d37d40b8d22e7e795a8b28d9ae574caf3b3f0194a2c02fa12bf"}}, {"rule": 2, "type": "equivalent", "target": "41f0ac1de3b5c64665deb1eddcf7c171", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "59814e99a9e40d37d40b8d22e7e795a8b28d9ae574caf3b3f0194a2c02fa12bf"}}, {"rule": 2, "type": "equivalent", "target": "7f51868f632146553caa1a2bea66828f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "59814e99a9e40d37d40b8d22e7e795a8b28d9ae574caf3b3f0194a2c02fa12bf"}}], "version": "9.0.17", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "0930bbc266fa155f5e6dcc28ee828459", "kind": "equivalent", "version": "9.3.4", "label": "9.3.4", "title": "把时区数据文件更新为 tzdata 版本 2014a，以反映斐济和土耳其的夏令时法规变更，以及以色列和乌克兰的历史变更。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "59814e99a9e40d37d40b8d22e7e795a8b28d9ae574caf3b3f0194a2c02fa12bf"}, "url": "/docs/compare/?release=9.3.4#9.3.4-ca121ccaa20b87e4", "source_url": "/docs/release/9.3.4/#id-1.11.6.26.5"}, {"db_id": "41f0ac1de3b5c64665deb1eddcf7c171", "kind": "equivalent", "version": "9.2.8", "label": "9.2.8", "title": "把时区数据文件更新为 tzdata 版本 2014a for DST law changes in Fiji and Turkey, plus historical changes in Israel and Ukraine。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "59814e99a9e40d37d40b8d22e7e795a8b28d9ae574caf3b3f0194a2c02fa12bf"}, "url": "/docs/compare/?release=9.2.8#9.2.8-dfc1052b408d215b", "source_url": "/docs/release/9.2.8/#id-1.11.6.21.5"}, {"db_id": "7f51868f632146553caa1a2bea66828f", "kind": "equivalent", "version": "9.1.13", "label": "9.1.13", "title": "把时区数据文件更新为 tzdata 版本 2014a for DST law changes in Fiji and Turkey, plus historical changes in Israel and Ukraine。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "59814e99a9e40d37d40b8d22e7e795a8b28d9ae574caf3b3f0194a2c02fa12bf"}, "url": "/docs/compare/?release=9.1.13#9.1.13-dfc1052b408d215b", "source_url": "/docs/release/9.1.13/#id-1.11.6.16.5"}]}]}, {"date": "2014-02-20", "build": "9.0.16", "major": "9.0", "minor": 16, "manual": "9.0", "status": "stable", "doc_git": "", "version": "9.0.16", "eol_date": "2015-10-08", "date_text": "2014-02-20", "supported": false, "manual_url": "/docs/9.0/release-9-0-16.html", "source_url": "/docs/release/9.0.16/", "entry_count": 37, "placeholder": false, "content_hash": "b1b0408b277e47fd052d4cc8e949c79564da92af1a77fb7bb3688a795984516b", "manual_build": "9.0.23", "source_as_of": "", "changes_count": 37, "doc_loaded_at": "2026-09-26T02:56:48.570247", "migration_html": "<p>对于运行 9.0.X 的用户，不需要进行转储/恢复。</p>\n<p>不过，如果你是从早于 9.0.15 的版本升级，请参见<a href=\"/docs/9.0/release-9-0-15.html\" title=\"E.9. 版本 9.0.15\">第 E.9 节</a>。</p>", "compatibility_count": 0, "label": "9.0.16", "status_label": "历史版本", "eol": "2015-10-08", "age_days": 4605, "support_days": -4010, "entries": [{"id": "9.0.16-46d40736d76fe1e1", "cves": ["CVE-2014-0060"], "html": "<p>加固 <code>GRANT ... WITH ADMIN OPTION</code> 的限制（Noah Misch）</p>\n<p>不带 <code>ADMIN OPTION</code> 授予角色本应阻止被授予者向该角色添加或移除成员，但这一限制很容易通过先执行 <code>SET ROLE</code> 绕过。其安全影响主要在于角色成员可以撤销其他人的访问权限，这违背了授权者的意愿。未经批准添加角色成员的影响相对较小，因为不配合的角色成员本来就可以通过创建视图或 <code>SECURITY DEFINER</code> 函数把自己的大部分权限提供给他人。（CVE-2014-0060）</p>", "text": "加固 GRANT ... WITH ADMIN OPTION 的限制（Noah Misch） 不带 ADMIN OPTION 授予角色本应阻止被授予者向该角色添加或移除成员，但这一限制很容易通过先执行 SET ROLE 绕过。其安全影响主要在于角色成员可以撤销其他人的访问权限，这违背了授权者的意愿。未经批准添加角色成员的影响相对较小，因为不配合的角色成员本来就可以通过创建视图或 SECURITY DEFINER 函数把自己的大部分权限提供给他人。（CVE-2014-0060）", "title": "加固 GRANT ... WITH ADMIN OPTION 的限制", "commits": [], "section": "变更", "category": "security", "source_url": "/docs/release/9.0.16/#id-1.11.6.12.5", "source_hash": "6e37955c412d5e32a5769e3aad865f9e898e71305a81acc6327876eb0bdd1298", "section_path": ["变更"], "commit_groups": [], "identity_text": "Shore up GRANT ... WITH ADMIN OPTION restrictions (Noah Misch) Granting a role without ADMIN OPTION is supposed to prevent the grantee from adding or removing members from the granted role, but this restriction was easily bypassed by doing SET ROLE first. The security impact is mostly that a role member can revoke the access of others, contrary to the wishes of his grantor. Unapproved role member additions are a lesser concern, since an uncooperative role member could provide most of his rights to others anyway by creating views or SECURITY DEFINER functions. (CVE-2014-0060)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.16/changes/001", "db_id": "39a7228bd3692113e40d80fa360dd96f", "patch_ids": [], "statement_hash": "f7bebec02491fcbdc7bad593125aae51e83540358514e357ec791b9f99f7db0c", "relations": [{"rule": 2, "type": "equivalent", "target": "8fed47c81bc13e310ce60e63b82d3369", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f7bebec02491fcbdc7bad593125aae51e83540358514e357ec791b9f99f7db0c"}}, {"rule": 2, "type": "equivalent", "target": "a0af19377a8f08e1c41168da3bfc8ec2", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f7bebec02491fcbdc7bad593125aae51e83540358514e357ec791b9f99f7db0c"}}, {"rule": 2, "type": "equivalent", "target": "eb9eca640834341acf49af39f8eb5e82", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f7bebec02491fcbdc7bad593125aae51e83540358514e357ec791b9f99f7db0c"}}], "version": "9.0.16", "category_label": "安全相关", "also_in": [], "variants": [], "related_changes": [{"db_id": "a0af19377a8f08e1c41168da3bfc8ec2", "kind": "equivalent", "version": "9.3.3", "label": "9.3.3", "title": "加固 GRANT ... WITH ADMIN OPTION 的限制", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f7bebec02491fcbdc7bad593125aae51e83540358514e357ec791b9f99f7db0c"}, "url": "/docs/compare/?release=9.3.3#9.3.3-46d40736d76fe1e1", "source_url": "/docs/release/9.3.3/#id-1.11.6.27.5"}, {"db_id": "eb9eca640834341acf49af39f8eb5e82", "kind": "equivalent", "version": "9.2.7", "label": "9.2.7", "title": "加固 GRANT ... WITH ADMIN OPTION 的限制", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f7bebec02491fcbdc7bad593125aae51e83540358514e357ec791b9f99f7db0c"}, "url": "/docs/compare/?release=9.2.7#9.2.7-46d40736d76fe1e1", "source_url": "/docs/release/9.2.7/#id-1.11.6.22.5"}, {"db_id": "8fed47c81bc13e310ce60e63b82d3369", "kind": "equivalent", "version": "9.1.12", "label": "9.1.12", "title": "加固 GRANT ... WITH ADMIN OPTION 的限制", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f7bebec02491fcbdc7bad593125aae51e83540358514e357ec791b9f99f7db0c"}, "url": "/docs/compare/?release=9.1.12#9.1.12-46d40736d76fe1e1", "source_url": "/docs/release/9.1.12/#id-1.11.6.17.5"}]}, {"id": "9.0.16-cf0ad82d2d3b3b4e", "cves": ["CVE-2014-0061"], "html": "<p>防止通过手工调用 PL 验证器函数进行权限提升（Andres Freund）</p>\n<p>PL 验证器函数的主要角色是在 <code>CREATE FUNCTION</code> 期间被隐式调用，但它们也是普通 SQL 函数，用户可以显式调用。对实际以其他语言编写的函数调用验证器此前未被检查，可能被用于权限提升。修复方法是在每个验证器函数中加入对权限检查函数的调用。非核心过程语言如果自带验证器函数，也需要做同样的修改。（CVE-2014-0061）</p>", "text": "防止通过手工调用 PL 验证器函数进行权限提升（Andres Freund） PL 验证器函数的主要角色是在 CREATE FUNCTION 期间被隐式调用，但它们也是普通 SQL 函数，用户可以显式调用。对实际以其他语言编写的函数调用验证器此前未被检查，可能被用于权限提升。修复方法是在每个验证器函数中加入对权限检查函数的调用。非核心过程语言如果自带验证器函数，也需要做同样的修改。（CVE-2014-0061）", "title": "防止通过手工调用 PL 验证器函数进行权限提升", "commits": [], "section": "变更", "category": "security", "source_url": "/docs/release/9.0.16/#id-1.11.6.12.5", "source_hash": "996f7829e9a5f62bf0f9cd98987d27d06cbdef4f3f01686ac09857f1a68851f4", "section_path": ["变更"], "commit_groups": [], "identity_text": "Prevent privilege escalation via manual calls to PL validator functions (Andres Freund) The primary role of PL validator functions is to be called implicitly during CREATE FUNCTION, but they are also normal SQL functions that a user can call explicitly. Calling a validator on a function actually written in some other language was not checked for and could be exploited for privilege-escalation purposes. The fix involves adding a call to a privilege-checking function in each validator function. Non-core procedural languages will also need to make this change to their own validator functions, if any. (CVE-2014-0061)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.16/changes/002", "db_id": "a9eb85599c0056790df203d46916a55a", "patch_ids": [], "statement_hash": "0915aa97bb0ab1d084da3321757774f67d891a07994d322682ceafe994ccb8db", "relations": [{"rule": 2, "type": "equivalent", "target": "02c1da92f538c5c6ea8ef875af38da59", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0915aa97bb0ab1d084da3321757774f67d891a07994d322682ceafe994ccb8db"}}, {"rule": 2, "type": "equivalent", "target": "95e3f5c8f5cd2edeccb1fb4455fee2da", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0915aa97bb0ab1d084da3321757774f67d891a07994d322682ceafe994ccb8db"}}, {"rule": 2, "type": "equivalent", "target": "fae61d73481179b6c74904102e9e2d86", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0915aa97bb0ab1d084da3321757774f67d891a07994d322682ceafe994ccb8db"}}], "version": "9.0.16", "category_label": "安全相关", "also_in": [], "variants": [], "related_changes": [{"db_id": "95e3f5c8f5cd2edeccb1fb4455fee2da", "kind": "equivalent", "version": "9.3.3", "label": "9.3.3", "title": "防止通过手工调用 PL 验证器函数进行权限提升", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0915aa97bb0ab1d084da3321757774f67d891a07994d322682ceafe994ccb8db"}, "url": "/docs/compare/?release=9.3.3#9.3.3-cf0ad82d2d3b3b4e", "source_url": "/docs/release/9.3.3/#id-1.11.6.27.5"}, {"db_id": "fae61d73481179b6c74904102e9e2d86", "kind": "equivalent", "version": "9.2.7", "label": "9.2.7", "title": "防止通过手工调用 PL 验证器函数进行权限提升", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0915aa97bb0ab1d084da3321757774f67d891a07994d322682ceafe994ccb8db"}, "url": "/docs/compare/?release=9.2.7#9.2.7-cf0ad82d2d3b3b4e", "source_url": "/docs/release/9.2.7/#id-1.11.6.22.5"}, {"db_id": "02c1da92f538c5c6ea8ef875af38da59", "kind": "equivalent", "version": "9.1.12", "label": "9.1.12", "title": "防止通过手工调用 PL 验证器函数进行权限提升", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0915aa97bb0ab1d084da3321757774f67d891a07994d322682ceafe994ccb8db"}, "url": "/docs/compare/?release=9.1.12#9.1.12-cf0ad82d2d3b3b4e", "source_url": "/docs/release/9.1.12/#id-1.11.6.17.5"}]}, {"id": "9.0.16-76a21e41869b218b", "cves": ["CVE-2014-0062"], "html": "<p>避免在表和索引 DDL 期间进行多次名称查找（Robert Haas、Andres Freund）</p>\n<p>如果由于并发活动导致名称查找得出不同结论，我们可能会对不同的表执行 DDL 的不同部分。至少在 <code>CREATE INDEX</code> 的情况下，这可被用来让权限检查针对与索引创建不同的表执行，从而造成权限提升攻击。（CVE-2014-0062）</p>", "text": "避免在表和索引 DDL 期间进行多次名称查找（Robert Haas、Andres Freund） 如果由于并发活动导致名称查找得出不同结论，我们可能会对不同的表执行 DDL 的不同部分。至少在 CREATE INDEX 的情况下，这可被用来让权限检查针对与索引创建不同的表执行，从而造成权限提升攻击。（CVE-2014-0062）", "title": "避免在表和索引 DDL 期间进行多次名称查找", "commits": [], "section": "变更", "category": "security", "source_url": "/docs/release/9.0.16/#id-1.11.6.12.5", "source_hash": "93deea8759038475a1db343860970300dcde0b0cc3a3d8000fbd41089dda6c4a", "section_path": ["变更"], "commit_groups": [], "identity_text": "Avoid multiple name lookups during table and index DDL (Robert Haas, Andres Freund) If the name lookups come to different conclusions due to concurrent activity, we might perform some parts of the DDL on a different table than other parts. At least in the case of CREATE INDEX, this can be used to cause the permissions checks to be performed against a different table than the index creation, allowing for a privilege escalation attack. (CVE-2014-0062)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.16/changes/003", "db_id": "f475983d0e117e81b5004e5573ac47a6", "patch_ids": [], "statement_hash": "dfc601d12769c86b1920b43ba7b4e414f01329425c25d55c38671a325df50f70", "relations": [{"rule": 2, "type": "equivalent", "target": "2c79866e4eaa6e21ca64fcf166ffbe34", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dfc601d12769c86b1920b43ba7b4e414f01329425c25d55c38671a325df50f70"}}, {"rule": 2, "type": "equivalent", "target": "86482abe5b27ee8f0d69a73a4dbcf5b8", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dfc601d12769c86b1920b43ba7b4e414f01329425c25d55c38671a325df50f70"}}, {"rule": 2, "type": "equivalent", "target": "8e317c93dde468d19fb18a404e9d1206", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dfc601d12769c86b1920b43ba7b4e414f01329425c25d55c38671a325df50f70"}}], "version": "9.0.16", "category_label": "安全相关", "also_in": [], "variants": [], "related_changes": [{"db_id": "2c79866e4eaa6e21ca64fcf166ffbe34", "kind": "equivalent", "version": "9.3.3", "label": "9.3.3", "title": "避免在表和索引 DDL 期间进行多次名称查找", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dfc601d12769c86b1920b43ba7b4e414f01329425c25d55c38671a325df50f70"}, "url": "/docs/compare/?release=9.3.3#9.3.3-76a21e41869b218b", "source_url": "/docs/release/9.3.3/#id-1.11.6.27.5"}, {"db_id": "86482abe5b27ee8f0d69a73a4dbcf5b8", "kind": "equivalent", "version": "9.2.7", "label": "9.2.7", "title": "避免在表和索引 DDL 期间进行多次名称查找", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dfc601d12769c86b1920b43ba7b4e414f01329425c25d55c38671a325df50f70"}, "url": "/docs/compare/?release=9.2.7#9.2.7-76a21e41869b218b", "source_url": "/docs/release/9.2.7/#id-1.11.6.22.5"}, {"db_id": "8e317c93dde468d19fb18a404e9d1206", "kind": "equivalent", "version": "9.1.12", "label": "9.1.12", "title": "避免在表和索引 DDL 期间进行多次名称查找", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dfc601d12769c86b1920b43ba7b4e414f01329425c25d55c38671a325df50f70"}, "url": "/docs/compare/?release=9.1.12#9.1.12-76a21e41869b218b", "source_url": "/docs/release/9.1.12/#id-1.11.6.17.5"}]}, {"id": "9.0.16-0b66a90264406c0c", "cves": ["CVE-2014-0063"], "html": "<p>防止长日期时间字符串造成缓冲区越界（Noah Misch）</p>\n<p><code>MAXDATELEN</code> 常量对于 <code>interval</code> 类型可能的最长值来说太小，导致 <code>interval_out()</code> 中可能出现缓冲区越界。虽然日期时间输入函数在避免缓冲区越界方面更谨慎，但该限制仍短到导致它们拒绝某些有效输入，例如包含很长时区名的输入。<span>ecpg</span> 库存在这些漏洞以及它自身的一些漏洞。（CVE-2014-0063）</p>", "text": "防止长日期时间字符串造成缓冲区越界（Noah Misch） MAXDATELEN 常量对于 interval 类型可能的最长值来说太小，导致 interval_out() 中可能出现缓冲区越界。虽然日期时间输入函数在避免缓冲区越界方面更谨慎，但该限制仍短到导致它们拒绝某些有效输入，例如包含很长时区名的输入。ecpg 库存在这些漏洞以及它自身的一些漏洞。（CVE-2014-0063）", "title": "防止长日期时间字符串造成缓冲区越界", "commits": [], "section": "变更", "category": "security", "source_url": "/docs/release/9.0.16/#id-1.11.6.12.5", "source_hash": "46e066b9e04ac05d8079309086ea40e096090505f44066b6a7b05ddead083213", "section_path": ["变更"], "commit_groups": [], "identity_text": "Prevent buffer overrun with long datetime strings (Noah Misch) The MAXDATELEN constant was too small for the longest possible value of type interval, allowing a buffer overrun in interval_out(). Although the datetime input functions were more careful about avoiding buffer overrun, the limit was short enough to cause them to reject some valid inputs, such as input containing a very long timezone name. The ecpg library contained these vulnerabilities along with some of its own. (CVE-2014-0063)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.16/changes/004", "db_id": "8e353e29b7ab130639fce6533f56dea2", "patch_ids": [], "statement_hash": "a7cb2b574435cbd471861ce714ff5285890bf353d7c97361c2642326595a07a3", "relations": [{"rule": 2, "type": "equivalent", "target": "8f6a29f411be2e570d2f9e488585081d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a7cb2b574435cbd471861ce714ff5285890bf353d7c97361c2642326595a07a3"}}, {"rule": 2, "type": "equivalent", "target": "b733e717191113378d5efd83b0b4f2ad", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a7cb2b574435cbd471861ce714ff5285890bf353d7c97361c2642326595a07a3"}}, {"rule": 2, "type": "equivalent", "target": "eaa396302537066d7d33df5fd483d229", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a7cb2b574435cbd471861ce714ff5285890bf353d7c97361c2642326595a07a3"}}], "version": "9.0.16", "category_label": "安全相关", "also_in": [], "variants": [], "related_changes": [{"db_id": "eaa396302537066d7d33df5fd483d229", "kind": "equivalent", "version": "9.3.3", "label": "9.3.3", "title": "防止长日期时间字符串造成缓冲区越界", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a7cb2b574435cbd471861ce714ff5285890bf353d7c97361c2642326595a07a3"}, "url": "/docs/compare/?release=9.3.3#9.3.3-0b66a90264406c0c", "source_url": "/docs/release/9.3.3/#id-1.11.6.27.5"}, {"db_id": "b733e717191113378d5efd83b0b4f2ad", "kind": "equivalent", "version": "9.2.7", "label": "9.2.7", "title": "防止长日期时间字符串造成缓冲区越界", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a7cb2b574435cbd471861ce714ff5285890bf353d7c97361c2642326595a07a3"}, "url": "/docs/compare/?release=9.2.7#9.2.7-0b66a90264406c0c", "source_url": "/docs/release/9.2.7/#id-1.11.6.22.5"}, {"db_id": "8f6a29f411be2e570d2f9e488585081d", "kind": "equivalent", "version": "9.1.12", "label": "9.1.12", "title": "防止长日期时间字符串造成缓冲区越界", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a7cb2b574435cbd471861ce714ff5285890bf353d7c97361c2642326595a07a3"}, "url": "/docs/compare/?release=9.1.12#9.1.12-0b66a90264406c0c", "source_url": "/docs/release/9.1.12/#id-1.11.6.17.5"}]}, {"id": "9.0.16-a0252db5e81ebdfb", "cves": ["CVE-2014-0064"], "html": "<p>防止大小计算中的整数溢出导致缓冲区越界（Noah Misch、Heikki Linnakangas）</p>\n<p>若干函数（大多是类型输入函数）在计算分配大小时未检查溢出。如果发生溢出，就会分配过小的缓冲区并被写越界。（CVE-2014-0064）</p>", "text": "防止大小计算中的整数溢出导致缓冲区越界（Noah Misch、Heikki Linnakangas） 若干函数（大多是类型输入函数）在计算分配大小时未检查溢出。如果发生溢出，就会分配过小的缓冲区并被写越界。（CVE-2014-0064）", "title": "防止大小计算中的整数溢出导致缓冲区越界", "commits": [], "section": "变更", "category": "security", "source_url": "/docs/release/9.0.16/#id-1.11.6.12.5", "source_hash": "041d07edca033259e1a23c7631e7e09f3016916b36560523c331786a069df5aa", "section_path": ["变更"], "commit_groups": [], "identity_text": "Prevent buffer overrun due to integer overflow in size calculations (Noah Misch, Heikki Linnakangas) Several functions, mostly type input functions, calculated an allocation size without checking for overflow. If overflow did occur, a too-small buffer would be allocated and then written past. (CVE-2014-0064)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.16/changes/005", "db_id": "b61e618ef531b83260a118f3e710803e", "patch_ids": [], "statement_hash": "5bd006f6697a46f251e3d72483969d0651f8a27b0d7a508b704923f5afec00ac", "relations": [{"rule": 2, "type": "equivalent", "target": "524ce52e603c56d2b6d29ce8bd8554ce", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5bd006f6697a46f251e3d72483969d0651f8a27b0d7a508b704923f5afec00ac"}}, {"rule": 2, "type": "equivalent", "target": "ab9fc7f01fa6040e520b53dbe02bf539", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5bd006f6697a46f251e3d72483969d0651f8a27b0d7a508b704923f5afec00ac"}}, {"rule": 2, "type": "equivalent", "target": "b037db4e2b1ee88e92ccf73cddee5112", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5bd006f6697a46f251e3d72483969d0651f8a27b0d7a508b704923f5afec00ac"}}], "version": "9.0.16", "category_label": "安全相关", "also_in": [], "variants": [], "related_changes": [{"db_id": "b037db4e2b1ee88e92ccf73cddee5112", "kind": "equivalent", "version": "9.3.3", "label": "9.3.3", "title": "防止大小计算中的整数溢出导致缓冲区越界", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5bd006f6697a46f251e3d72483969d0651f8a27b0d7a508b704923f5afec00ac"}, "url": "/docs/compare/?release=9.3.3#9.3.3-a0252db5e81ebdfb", "source_url": "/docs/release/9.3.3/#id-1.11.6.27.5"}, {"db_id": "524ce52e603c56d2b6d29ce8bd8554ce", "kind": "equivalent", "version": "9.2.7", "label": "9.2.7", "title": "防止大小计算中的整数溢出导致缓冲区越界", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5bd006f6697a46f251e3d72483969d0651f8a27b0d7a508b704923f5afec00ac"}, "url": "/docs/compare/?release=9.2.7#9.2.7-a0252db5e81ebdfb", "source_url": "/docs/release/9.2.7/#id-1.11.6.22.5"}, {"db_id": "ab9fc7f01fa6040e520b53dbe02bf539", "kind": "equivalent", "version": "9.1.12", "label": "9.1.12", "title": "防止大小计算中的整数溢出导致缓冲区越界", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5bd006f6697a46f251e3d72483969d0651f8a27b0d7a508b704923f5afec00ac"}, "url": "/docs/compare/?release=9.1.12#9.1.12-a0252db5e81ebdfb", "source_url": "/docs/release/9.1.12/#id-1.11.6.17.5"}]}, {"id": "9.0.16-c669fac45788e34c", "cves": ["CVE-2014-0065"], "html": "<p>防止固定大小缓冲区越界（Peter Eisentraut、Jozef Mlich）</p>\n<p>使用 <code>strlcpy()</code> 及相关函数，以明确保证固定大小缓冲区不会被越界写入。与前面几项不同，这些情况是否真的构成现实问题尚不清楚，因为在大多数情况下，输入字符串的大小似乎已有先前约束。尽管如此，消除所有此类 Coverity 警告似乎是明智的。（CVE-2014-0065）</p>", "text": "防止固定大小缓冲区越界（Peter Eisentraut、Jozef Mlich） 使用 strlcpy() 及相关函数，以明确保证固定大小缓冲区不会被越界写入。与前面几项不同，这些情况是否真的构成现实问题尚不清楚，因为在大多数情况下，输入字符串的大小似乎已有先前约束。尽管如此，消除所有此类 Coverity 警告似乎是明智的。（CVE-2014-0065）", "title": "防止固定大小缓冲区越界", "commits": [], "section": "变更", "category": "security", "source_url": "/docs/release/9.0.16/#id-1.11.6.12.5", "source_hash": "e4c083c1cde1324b0850c78b9c91e57d006fa1fd7ba4f6c13bece0e66b93ace1", "section_path": ["变更"], "commit_groups": [], "identity_text": "Prevent overruns of fixed-size buffers (Peter Eisentraut, Jozef Mlich) Use strlcpy() and related functions to provide a clear guarantee that fixed-size buffers are not overrun. Unlike the preceding items, it is unclear whether these cases really represent live issues, since in most cases there appear to be previous constraints on the size of the input string. Nonetheless it seems prudent to silence all Coverity warnings of this type. (CVE-2014-0065)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.16/changes/006", "db_id": "63a3d5232781e5fb91c3705fff0779a6", "patch_ids": [], "statement_hash": "8f6d25b5d79f5c83220401d8459a1934e47de7b1c50441d0aa7cd5f6d20afbcb", "relations": [{"rule": 2, "type": "equivalent", "target": "1ed5105b349baf71c428a98857eb15cf", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8f6d25b5d79f5c83220401d8459a1934e47de7b1c50441d0aa7cd5f6d20afbcb"}}, {"rule": 2, "type": "equivalent", "target": "36614e60ac7ac982d1f4efe65d9c4df8", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8f6d25b5d79f5c83220401d8459a1934e47de7b1c50441d0aa7cd5f6d20afbcb", "ambiguous_patch_ids": ["4142c4a7e713d31966f7837b92fb2b52"]}}, {"rule": 2, "type": "equivalent", "target": "9cd052fae9c1b35526531bf64b222501", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8f6d25b5d79f5c83220401d8459a1934e47de7b1c50441d0aa7cd5f6d20afbcb"}}], "version": "9.0.16", "category_label": "安全相关", "also_in": [], "variants": [], "related_changes": [{"db_id": "36614e60ac7ac982d1f4efe65d9c4df8", "kind": "equivalent", "version": "9.3.3", "label": "9.3.3", "title": "防止固定大小缓冲区越界", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8f6d25b5d79f5c83220401d8459a1934e47de7b1c50441d0aa7cd5f6d20afbcb", "ambiguous_patch_ids": ["4142c4a7e713d31966f7837b92fb2b52"]}, "url": "/docs/compare/?release=9.3.3#9.3.3-c669fac45788e34c", "source_url": "/docs/release/9.3.3/#id-1.11.6.27.5"}, {"db_id": "1ed5105b349baf71c428a98857eb15cf", "kind": "equivalent", "version": "9.2.7", "label": "9.2.7", "title": "防止固定大小缓冲区越界", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8f6d25b5d79f5c83220401d8459a1934e47de7b1c50441d0aa7cd5f6d20afbcb"}, "url": "/docs/compare/?release=9.2.7#9.2.7-c669fac45788e34c", "source_url": "/docs/release/9.2.7/#id-1.11.6.22.5"}, {"db_id": "9cd052fae9c1b35526531bf64b222501", "kind": "equivalent", "version": "9.1.12", "label": "9.1.12", "title": "防止固定大小缓冲区越界", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8f6d25b5d79f5c83220401d8459a1934e47de7b1c50441d0aa7cd5f6d20afbcb"}, "url": "/docs/compare/?release=9.1.12#9.1.12-c669fac45788e34c", "source_url": "/docs/release/9.1.12/#id-1.11.6.17.5"}]}, {"id": "9.0.16-14f78cee37d06ff3", "cves": ["CVE-2014-0066"], "html": "<p>避免在 <code>crypt()</code> 返回 NULL 时崩溃（Honza Horak、Bruce Momjian）</p>\n<p><code>crypt()</code> 可能返回 NULL 的场景相对较少，但如果发生，<code>contrib/chkpass</code> 就会崩溃。一个可能出问题的实际情况是 <span>libc</span> 被配置为拒绝执行未获批准的哈希算法（例如 <span>“<span>FIPS 模式</span>”</span>）。（CVE-2014-0066）</p>", "text": "避免在 crypt() 返回 NULL 时崩溃（Honza Horak、Bruce Momjian） crypt() 可能返回 NULL 的场景相对较少，但如果发生，contrib/chkpass 就会崩溃。一个可能出问题的实际情况是 libc 被配置为拒绝执行未获批准的哈希算法（例如 “FIPS 模式”）。（CVE-2014-0066）", "title": "避免在 crypt() 返回 NULL 时崩溃", "commits": [], "section": "变更", "category": "security", "source_url": "/docs/release/9.0.16/#id-1.11.6.12.5", "source_hash": "1ae9fdb6c269b01e423effeef4d721601005e95d248f194e47608d2d3be3c387", "section_path": ["变更"], "commit_groups": [], "identity_text": "Avoid crashing if crypt() returns NULL (Honza Horak, Bruce Momjian) There are relatively few scenarios in which crypt() could return NULL, but contrib/chkpass would crash if it did. One practical case in which this could be an issue is if libc is configured to refuse to execute unapproved hashing algorithms (e.g., FIPS mode). (CVE-2014-0066)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.16/changes/007", "db_id": "47f79e882acc8d75d3b6d00f09266c32", "patch_ids": [], "statement_hash": "016fe2a828ba5eef1ed7ce7066ca9088596c6b2b74af74ff6dc0744d3d9b02af", "relations": [{"rule": 2, "type": "equivalent", "target": "783d9c90c3867e10e3a26c550f9567a2", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "016fe2a828ba5eef1ed7ce7066ca9088596c6b2b74af74ff6dc0744d3d9b02af", "ambiguous_patch_ids": ["4142c4a7e713d31966f7837b92fb2b52"]}}, {"rule": 2, "type": "equivalent", "target": "83006328c688bbe0cdd39e4c22f5f6db", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "016fe2a828ba5eef1ed7ce7066ca9088596c6b2b74af74ff6dc0744d3d9b02af"}}, {"rule": 2, "type": "equivalent", "target": "eb6f4ecb26305d5a5de1728921f0e47e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "016fe2a828ba5eef1ed7ce7066ca9088596c6b2b74af74ff6dc0744d3d9b02af"}}], "version": "9.0.16", "category_label": "安全相关", "also_in": [], "variants": [], "related_changes": [{"db_id": "783d9c90c3867e10e3a26c550f9567a2", "kind": "equivalent", "version": "9.3.3", "label": "9.3.3", "title": "避免在 crypt() 返回 NULL 时崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "016fe2a828ba5eef1ed7ce7066ca9088596c6b2b74af74ff6dc0744d3d9b02af", "ambiguous_patch_ids": ["4142c4a7e713d31966f7837b92fb2b52"]}, "url": "/docs/compare/?release=9.3.3#9.3.3-14f78cee37d06ff3", "source_url": "/docs/release/9.3.3/#id-1.11.6.27.5"}, {"db_id": "eb6f4ecb26305d5a5de1728921f0e47e", "kind": "equivalent", "version": "9.2.7", "label": "9.2.7", "title": "避免在 crypt() 返回 NULL 时崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "016fe2a828ba5eef1ed7ce7066ca9088596c6b2b74af74ff6dc0744d3d9b02af"}, "url": "/docs/compare/?release=9.2.7#9.2.7-14f78cee37d06ff3", "source_url": "/docs/release/9.2.7/#id-1.11.6.22.5"}, {"db_id": "83006328c688bbe0cdd39e4c22f5f6db", "kind": "equivalent", "version": "9.1.12", "label": "9.1.12", "title": "避免在 crypt() 返回 NULL 时崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "016fe2a828ba5eef1ed7ce7066ca9088596c6b2b74af74ff6dc0744d3d9b02af"}, "url": "/docs/compare/?release=9.1.12#9.1.12-14f78cee37d06ff3", "source_url": "/docs/release/9.1.12/#id-1.11.6.17.5"}]}, {"id": "9.0.16-10731528cb521bec", "cves": ["CVE-2014-0067"], "html": "<p>在回归测试说明中记录 <code>make check</code> 的风险（Noah Misch、Tom Lane）</p>\n<p>由于 <code>make check</code> 启动的临时服务器使用 <span>“<span>trust</span>”</span> 认证，同一台机器上的其他用户可以以数据库超级用户身份连接它，进而可能利用启动测试的操作系统用户的权限。未来版本可能会在测试流程中加入防止此风险的变更，但需要先进行一些公开讨论。因此目前只是警告：当同一台机器上存在不受信任的用户时，不要使用 <code>make check</code>。（CVE-2014-0067）</p>", "text": "在回归测试说明中记录 make check 的风险（Noah Misch、Tom Lane） 由于 make check 启动的临时服务器使用 “trust” 认证，同一台机器上的其他用户可以以数据库超级用户身份连接它，进而可能利用启动测试的操作系统用户的权限。未来版本可能会在测试流程中加入防止此风险的变更，但需要先进行一些公开讨论。因此目前只是警告：当同一台机器上存在不受信任的用户时，不要使用 make check。（CVE-2014-0067）", "title": "在回归测试说明中记录 make check 的风险", "commits": [], "section": "变更", "category": "security", "source_url": "/docs/release/9.0.16/#id-1.11.6.12.5", "source_hash": "58f7fde8d209eeeb6dcff660292b11b60b6b5e0db58ad59490be114f3d497835", "section_path": ["变更"], "commit_groups": [], "identity_text": "Document risks of make check in the regression testing instructions (Noah Misch, Tom Lane) Since the temporary server started by make check uses trust authentication, another user on the same machine could connect to it as database superuser, and then potentially exploit the privileges of the operating-system user who started the tests. A future release will probably incorporate changes in the testing procedure to prevent this risk, but some public discussion is needed first. So for the moment, just warn people against using make check when there are untrusted users on the same machine. (CVE-2014-0067)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.16/changes/008", "db_id": "1de82313af07dfbea3232d47d8ab78b1", "patch_ids": [], "statement_hash": "b1600cf50fe189145e8ef8dcc67fae6e6908511e41948d9e41ee5f3eac78c342", "relations": [{"rule": 2, "type": "equivalent", "target": "1fc7ca6d4d85f594eed0141b6b08fef5", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b1600cf50fe189145e8ef8dcc67fae6e6908511e41948d9e41ee5f3eac78c342"}}, {"rule": 2, "type": "equivalent", "target": "8152bce71f31ab46c9501acebe8824b1", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b1600cf50fe189145e8ef8dcc67fae6e6908511e41948d9e41ee5f3eac78c342"}}, {"rule": 2, "type": "equivalent", "target": "d832db97db43a8964c530c6f3561fa82", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b1600cf50fe189145e8ef8dcc67fae6e6908511e41948d9e41ee5f3eac78c342"}}], "version": "9.0.16", "category_label": "安全相关", "also_in": [], "variants": [], "related_changes": [{"db_id": "1fc7ca6d4d85f594eed0141b6b08fef5", "kind": "equivalent", "version": "9.3.3", "label": "9.3.3", "title": "在回归测试说明中记录 make check 的风险", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b1600cf50fe189145e8ef8dcc67fae6e6908511e41948d9e41ee5f3eac78c342"}, "url": "/docs/compare/?release=9.3.3#9.3.3-10731528cb521bec", "source_url": "/docs/release/9.3.3/#id-1.11.6.27.5"}, {"db_id": "8152bce71f31ab46c9501acebe8824b1", "kind": "equivalent", "version": "9.2.7", "label": "9.2.7", "title": "在回归测试说明中记录 make check 的风险", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b1600cf50fe189145e8ef8dcc67fae6e6908511e41948d9e41ee5f3eac78c342"}, "url": "/docs/compare/?release=9.2.7#9.2.7-10731528cb521bec", "source_url": "/docs/release/9.2.7/#id-1.11.6.22.5"}, {"db_id": "d832db97db43a8964c530c6f3561fa82", "kind": "equivalent", "version": "9.1.12", "label": "9.1.12", "title": "在回归测试说明中记录 make check 的风险", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b1600cf50fe189145e8ef8dcc67fae6e6908511e41948d9e41ee5f3eac78c342"}, "url": "/docs/compare/?release=9.1.12#9.1.12-10731528cb521bec", "source_url": "/docs/release/9.1.12/#id-1.11.6.17.5"}]}, {"id": "9.0.16-358be8d16b225d0a", "cves": [], "html": "<p>修复当关系的某些段不是完整大小时 WAL 记录可能被错误重放的问题（Greg Stark、Tom Lane）</p>\n<p>WAL 更新可能被应用到错误的页面，甚至可能偏后很多页。除了损坏数据外，已观察到这一错误导致备库相比主库显著<span>“<span>膨胀</span>”</span>，因为更新被应用到了远超文件末尾应在位置的地方。这种失败模式在崩溃恢复期间似乎不构成重大风险，只在初始同步从快速变化的主库基础备份创建的备库时出现。</p>", "text": "修复当关系的某些段不是完整大小时 WAL 记录可能被错误重放的问题（Greg Stark、Tom Lane） WAL 更新可能被应用到错误的页面，甚至可能偏后很多页。除了损坏数据外，已观察到这一错误导致备库相比主库显著“膨胀”，因为更新被应用到了远超文件末尾应在位置的地方。这种失败模式在崩溃恢复期间似乎不构成重大风险，只在初始同步从快速变化的主库基础备份创建的备库时出现。", "title": "修复当关系的某些段不是完整大小时 WAL 记录可能被错误重放的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.16/#id-1.11.6.12.5", "source_hash": "67da68ededb4274d5005277f690d441d145fbca2820fe70a583da788d40a5014", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix possible mis-replay of WAL records when some segments of a relation aren't full size (Greg Stark, Tom Lane) The WAL update could be applied to the wrong page, potentially many pages past where it should have been. Aside from corrupting data, this error has been observed to result in significant bloat of standby servers compared to their masters, due to updates being applied far beyond where the end-of-file should have been. This failure mode does not appear to be a significant risk during crash recovery, only when initially synchronizing a standby created from a base backup taken from a quickly-changing master.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.16/changes/009", "db_id": "6a64aabe3f3ed8e232a5d6564458bbf0", "patch_ids": [], "statement_hash": "5fa863dcde2a1d7341f36113f83ccf1ab25fb8fdfa8473169a331d534819dff5", "relations": [{"rule": 2, "type": "equivalent", "target": "25de053281805a245fab1b676779dcc4", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5fa863dcde2a1d7341f36113f83ccf1ab25fb8fdfa8473169a331d534819dff5"}}, {"rule": 2, "type": "equivalent", "target": "2b001c634d577b177a7b6908f8431b7e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5fa863dcde2a1d7341f36113f83ccf1ab25fb8fdfa8473169a331d534819dff5"}}, {"rule": 2, "type": "equivalent", "target": "3e5bf72839871f5d922463c0b0ae582c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5fa863dcde2a1d7341f36113f83ccf1ab25fb8fdfa8473169a331d534819dff5"}}], "version": "9.0.16", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "25de053281805a245fab1b676779dcc4", "kind": "equivalent", "version": "9.3.3", "label": "9.3.3", "title": "修复当关系的某些段不是完整大小时 WAL 记录可能被错误重放的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5fa863dcde2a1d7341f36113f83ccf1ab25fb8fdfa8473169a331d534819dff5"}, "url": "/docs/compare/?release=9.3.3#9.3.3-358be8d16b225d0a", "source_url": "/docs/release/9.3.3/#id-1.11.6.27.5"}, {"db_id": "2b001c634d577b177a7b6908f8431b7e", "kind": "equivalent", "version": "9.2.7", "label": "9.2.7", "title": "修复当关系的某些段不是完整大小时 WAL 记录可能被错误重放的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5fa863dcde2a1d7341f36113f83ccf1ab25fb8fdfa8473169a331d534819dff5"}, "url": "/docs/compare/?release=9.2.7#9.2.7-358be8d16b225d0a", "source_url": "/docs/release/9.2.7/#id-1.11.6.22.5"}, {"db_id": "3e5bf72839871f5d922463c0b0ae582c", "kind": "equivalent", "version": "9.1.12", "label": "9.1.12", "title": "修复当关系的某些段不是完整大小时 WAL 记录可能被错误重放的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5fa863dcde2a1d7341f36113f83ccf1ab25fb8fdfa8473169a331d534819dff5"}, "url": "/docs/compare/?release=9.1.12#9.1.12-358be8d16b225d0a", "source_url": "/docs/release/9.1.12/#id-1.11.6.17.5"}]}, {"id": "9.0.16-f8e05985761562f6", "cves": [], "html": "<p>修复判断恢复何时达到一致性的缺陷（Tomonari Katsumata、Heikki Linnakangas）</p>\n<p>某些情况下，WAL 重放会错误地在重放开始时就断定数据库已一致，从而可能在数据库真正一致之前允许热备查询。也可能出现其他症状，例如 <span>“<span>PANIC: WAL contains references to invalid pages</span>”</span>。</p>", "text": "修复判断恢复何时达到一致性的缺陷（Tomonari Katsumata、Heikki Linnakangas） 某些情况下，WAL 重放会错误地在重放开始时就断定数据库已一致，从而可能在数据库真正一致之前允许热备查询。也可能出现其他症状，例如 “PANIC: WAL contains references to invalid pages”。", "title": "修复判断恢复何时达到一致性的缺陷", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.16/#id-1.11.6.12.5", "source_hash": "f97a0e69bebd2f647bdbfd81a857b534b0a5647167f4f9c213c624983aee0a71", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix bug in determining when recovery has reached consistency (Tomonari Katsumata, Heikki Linnakangas) In some cases WAL replay would mistakenly conclude that the database was already consistent at the start of replay, thus possibly allowing hot-standby queries before the database was really consistent. Other symptoms such as PANIC: WAL contains references to invalid pages were also possible.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.16/changes/010", "db_id": "0cda2f81c3b66f79b7213d869e10179f", "patch_ids": [], "statement_hash": "fcc6e5bdcc8b0fe8fe62ec3a44d6cf60b5c79d95f6168601d922f962078f1a07", "relations": [{"rule": 2, "type": "equivalent", "target": "0ff932aeacb12930c82887b483ca71f4", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fcc6e5bdcc8b0fe8fe62ec3a44d6cf60b5c79d95f6168601d922f962078f1a07"}}, {"rule": 2, "type": "equivalent", "target": "a73b9eb084d1c6ae8789d3f1839e3542", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fcc6e5bdcc8b0fe8fe62ec3a44d6cf60b5c79d95f6168601d922f962078f1a07"}}, {"rule": 2, "type": "equivalent", "target": "e27ff0865920d9d12031284f043fc2ec", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fcc6e5bdcc8b0fe8fe62ec3a44d6cf60b5c79d95f6168601d922f962078f1a07"}}], "version": "9.0.16", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "a73b9eb084d1c6ae8789d3f1839e3542", "kind": "equivalent", "version": "9.3.3", "label": "9.3.3", "title": "修复判断恢复何时达到一致性的缺陷", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fcc6e5bdcc8b0fe8fe62ec3a44d6cf60b5c79d95f6168601d922f962078f1a07"}, "url": "/docs/compare/?release=9.3.3#9.3.3-f8e05985761562f6", "source_url": "/docs/release/9.3.3/#id-1.11.6.27.5"}, {"db_id": "e27ff0865920d9d12031284f043fc2ec", "kind": "equivalent", "version": "9.2.7", "label": "9.2.7", "title": "修复判断恢复何时达到一致性的缺陷", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fcc6e5bdcc8b0fe8fe62ec3a44d6cf60b5c79d95f6168601d922f962078f1a07"}, "url": "/docs/compare/?release=9.2.7#9.2.7-f8e05985761562f6", "source_url": "/docs/release/9.2.7/#id-1.11.6.22.5"}, {"db_id": "0ff932aeacb12930c82887b483ca71f4", "kind": "equivalent", "version": "9.1.12", "label": "9.1.12", "title": "修复判断恢复何时达到一致性的缺陷", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fcc6e5bdcc8b0fe8fe62ec3a44d6cf60b5c79d95f6168601d922f962078f1a07"}, "url": "/docs/compare/?release=9.1.12#9.1.12-f8e05985761562f6", "source_url": "/docs/release/9.1.12/#id-1.11.6.17.5"}]}, {"id": "9.0.16-30c2210ab2f0837f", "cves": [], "html": "<p>修复在热备模式下重放 <code>VACUUM</code> 操作时对 btree 索引页的不当锁定（Andres Freund、Heikki Linnakangas、Tom Lane）</p>\n<p>这一错误可能导致 <span>“<span>PANIC: WAL contains references to invalid pages</span>”</span> 失败。</p>", "text": "修复在热备模式下重放 VACUUM 操作时对 btree 索引页的不当锁定（Andres Freund、Heikki Linnakangas、Tom Lane） 这一错误可能导致 “PANIC: WAL contains references to invalid pages” 失败。", "title": "修复在热备模式下重放 VACUUM 操作时对 btree 索引页的不当锁定", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.16/#id-1.11.6.12.5", "source_hash": "d787c4fafcac3eb72b3e53d10a3f621e0915911b193b24630cee5118b32c6ad1", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix improper locking of btree index pages while replaying a VACUUM operation in hot-standby mode (Andres Freund, Heikki Linnakangas, Tom Lane) This error could result in PANIC: WAL contains references to invalid pages failures.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.16/changes/011", "db_id": "bc3b5b9193580c289a2ddef968dfdb5e", "patch_ids": [], "statement_hash": "fa03b39766d5e4dd2f01e26c65a65c85330255de67f43dbf335d1c727bac9a55", "relations": [{"rule": 2, "type": "equivalent", "target": "267ea97c36ade4e7c3f07d9bcf5f6b19", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fa03b39766d5e4dd2f01e26c65a65c85330255de67f43dbf335d1c727bac9a55"}}, {"rule": 2, "type": "equivalent", "target": "591dd475baa8f6028925cb450d25c233", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fa03b39766d5e4dd2f01e26c65a65c85330255de67f43dbf335d1c727bac9a55"}}, {"rule": 2, "type": "equivalent", "target": "c7a8558d89c20ffa25ace74deb3a2c98", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fa03b39766d5e4dd2f01e26c65a65c85330255de67f43dbf335d1c727bac9a55"}}], "version": "9.0.16", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "591dd475baa8f6028925cb450d25c233", "kind": "equivalent", "version": "9.3.3", "label": "9.3.3", "title": "修复在热备模式下重放 VACUUM 操作时对 btree 索引页的不当锁定", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fa03b39766d5e4dd2f01e26c65a65c85330255de67f43dbf335d1c727bac9a55"}, "url": "/docs/compare/?release=9.3.3#9.3.3-30c2210ab2f0837f", "source_url": "/docs/release/9.3.3/#id-1.11.6.27.5"}, {"db_id": "c7a8558d89c20ffa25ace74deb3a2c98", "kind": "equivalent", "version": "9.2.7", "label": "9.2.7", "title": "修复在热备模式下重放 VACUUM 操作时对 btree 索引页的不当锁定", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fa03b39766d5e4dd2f01e26c65a65c85330255de67f43dbf335d1c727bac9a55"}, "url": "/docs/compare/?release=9.2.7#9.2.7-30c2210ab2f0837f", "source_url": "/docs/release/9.2.7/#id-1.11.6.22.5"}, {"db_id": "267ea97c36ade4e7c3f07d9bcf5f6b19", "kind": "equivalent", "version": "9.1.12", "label": "9.1.12", "title": "修复在热备模式下重放 VACUUM 操作时对 btree 索引页的不当锁定", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fa03b39766d5e4dd2f01e26c65a65c85330255de67f43dbf335d1c727bac9a55"}, "url": "/docs/compare/?release=9.1.12#9.1.12-30c2210ab2f0837f", "source_url": "/docs/release/9.1.12/#id-1.11.6.17.5"}]}, {"id": "9.0.16-81cefe057af14b8d", "cves": [], "html": "<p>确保对 GIN 索引非叶页面的插入在合适时写入整页 WAL 记录（Heikki Linnakangas）</p>\n<p>先前的代码在系统崩溃期间发生部分页写入时存在索引损坏风险。</p>", "text": "确保对 GIN 索引非叶页面的插入在合适时写入整页 WAL 记录（Heikki Linnakangas） 先前的代码在系统崩溃期间发生部分页写入时存在索引损坏风险。", "title": "确保对 GIN 索引非叶页面的插入在合适时写入整页 WAL 记录", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.16/#id-1.11.6.12.5", "source_hash": "7d9420d051fe88e17432dbd6318eeb46d42ec0d69cef185c15c55480a1855559", "section_path": ["变更"], "commit_groups": [], "identity_text": "Ensure that insertions into non-leaf GIN index pages write a full-page WAL record when appropriate (Heikki Linnakangas) The previous coding risked index corruption in the event of a partial-page write during a system crash.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.16/changes/012", "db_id": "2eff690870453ffcdb7349755715b1aa", "patch_ids": [], "statement_hash": "9d828353466006a075a041525d37c2813faee5d9019dcbde79e954c56062a379", "relations": [{"rule": 2, "type": "equivalent", "target": "6534a8a826b2471118bd1a76206cbef0", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9d828353466006a075a041525d37c2813faee5d9019dcbde79e954c56062a379"}}, {"rule": 2, "type": "equivalent", "target": "76061ba322a8049243f49879f7e82f05", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9d828353466006a075a041525d37c2813faee5d9019dcbde79e954c56062a379"}}, {"rule": 2, "type": "equivalent", "target": "cb26e8d99d2182f4549767cb9f38a4d5", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9d828353466006a075a041525d37c2813faee5d9019dcbde79e954c56062a379"}}], "version": "9.0.16", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "cb26e8d99d2182f4549767cb9f38a4d5", "kind": "equivalent", "version": "9.3.3", "label": "9.3.3", "title": "确保对 GIN 索引非叶页面的插入在合适时写入整页 WAL 记录", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9d828353466006a075a041525d37c2813faee5d9019dcbde79e954c56062a379"}, "url": "/docs/compare/?release=9.3.3#9.3.3-81cefe057af14b8d", "source_url": "/docs/release/9.3.3/#id-1.11.6.27.5"}, {"db_id": "6534a8a826b2471118bd1a76206cbef0", "kind": "equivalent", "version": "9.2.7", "label": "9.2.7", "title": "确保对 GIN 索引非叶页面的插入在合适时写入整页 WAL 记录", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9d828353466006a075a041525d37c2813faee5d9019dcbde79e954c56062a379"}, "url": "/docs/compare/?release=9.2.7#9.2.7-81cefe057af14b8d", "source_url": "/docs/release/9.2.7/#id-1.11.6.22.5"}, {"db_id": "76061ba322a8049243f49879f7e82f05", "kind": "equivalent", "version": "9.1.12", "label": "9.1.12", "title": "确保对 GIN 索引非叶页面的插入在合适时写入整页 WAL 记录", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9d828353466006a075a041525d37c2813faee5d9019dcbde79e954c56062a379"}, "url": "/docs/compare/?release=9.1.12#9.1.12-81cefe057af14b8d", "source_url": "/docs/release/9.1.12/#id-1.11.6.17.5"}]}, {"id": "9.0.16-17924e3b05368ddd", "cves": [], "html": "<p>修复服务器进程退出期间的竞态条件（Robert Haas）</p>\n<p>确保信号处理程序不会在进程的 <code>MyProc</code> 指针不再有效后尝试使用它。</p>", "text": "修复服务器进程退出期间的竞态条件（Robert Haas） 确保信号处理程序不会在进程的 MyProc 指针不再有效后尝试使用它。", "title": "修复服务器进程退出期间的竞态条件", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.16/#id-1.11.6.12.5", "source_hash": "ad3f8ce4fcc8fdb33d6b94bcbfe14345132bd1f31c2e9ed59b1f5fdc0af241ab", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix race conditions during server process exit (Robert Haas) Ensure that signal handlers don't attempt to use the process's MyProc pointer after it's no longer valid.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.16/changes/013", "db_id": "2253a5527cd74ada04357261a28c088d", "patch_ids": [], "statement_hash": "e22a497e4f71c9e4081f57bad6c0f2317e85783324a5ccfdec0d7862534cf66f", "relations": [{"rule": 2, "type": "equivalent", "target": "1e1a787c2b2075910db8d64413d2429b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e22a497e4f71c9e4081f57bad6c0f2317e85783324a5ccfdec0d7862534cf66f"}}, {"rule": 2, "type": "equivalent", "target": "902b0f0f92d250a77926a1cb90366ad7", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e22a497e4f71c9e4081f57bad6c0f2317e85783324a5ccfdec0d7862534cf66f"}}, {"rule": 2, "type": "equivalent", "target": "f69dda79e5a071672a7388442daca1bb", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e22a497e4f71c9e4081f57bad6c0f2317e85783324a5ccfdec0d7862534cf66f"}}], "version": "9.0.16", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "1e1a787c2b2075910db8d64413d2429b", "kind": "equivalent", "version": "9.3.3", "label": "9.3.3", "title": "修复服务器进程退出期间的竞态条件", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e22a497e4f71c9e4081f57bad6c0f2317e85783324a5ccfdec0d7862534cf66f"}, "url": "/docs/compare/?release=9.3.3#9.3.3-17924e3b05368ddd", "source_url": "/docs/release/9.3.3/#id-1.11.6.27.5"}, {"db_id": "902b0f0f92d250a77926a1cb90366ad7", "kind": "equivalent", "version": "9.2.7", "label": "9.2.7", "title": "修复服务器进程退出期间的竞态条件", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e22a497e4f71c9e4081f57bad6c0f2317e85783324a5ccfdec0d7862534cf66f"}, "url": "/docs/compare/?release=9.2.7#9.2.7-17924e3b05368ddd", "source_url": "/docs/release/9.2.7/#id-1.11.6.22.5"}, {"db_id": "f69dda79e5a071672a7388442daca1bb", "kind": "equivalent", "version": "9.1.12", "label": "9.1.12", "title": "修复服务器进程退出期间的竞态条件", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e22a497e4f71c9e4081f57bad6c0f2317e85783324a5ccfdec0d7862534cf66f"}, "url": "/docs/compare/?release=9.1.12#9.1.12-17924e3b05368ddd", "source_url": "/docs/release/9.1.12/#id-1.11.6.17.5"}]}, {"id": "9.0.16-49cce80b853a829d", "cves": [], "html": "<p>修复错误报告逻辑中对 <code>errno</code> 的不安全引用（Christian Kruse）</p>\n<p>这通常会导致奇怪的行为，例如 <code>HINT</code> 字段缺失或不恰当。</p>", "text": "修复错误报告逻辑中对 errno 的不安全引用（Christian Kruse） 这通常会导致奇怪的行为，例如 HINT 字段缺失或不恰当。", "title": "修复错误报告逻辑中对 errno 的不安全引用", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.16/#id-1.11.6.12.5", "source_hash": "caac25c70f7e301d4d2384ec0a408ae21eac194bb0d7919489123ee4c875a807", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix unsafe references to errno within error reporting logic (Christian Kruse) This would typically lead to odd behaviors such as missing or inappropriate HINT fields.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.16/changes/014", "db_id": "7d0b30dd22b8070f126ec9141785cff7", "patch_ids": [], "statement_hash": "a6e7096815c0dd616d8c8a26d360cda6ce42d6b10fbbd80f22993f4eae95c51d", "relations": [{"rule": 2, "type": "equivalent", "target": "37b95577ed90367c94210a79984362d9", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a6e7096815c0dd616d8c8a26d360cda6ce42d6b10fbbd80f22993f4eae95c51d"}}, {"rule": 2, "type": "equivalent", "target": "3e87d3f06c98ffe8bdeeefa70078a8bf", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a6e7096815c0dd616d8c8a26d360cda6ce42d6b10fbbd80f22993f4eae95c51d"}}, {"rule": 2, "type": "equivalent", "target": "bc3f7584e4445525d6f45b7085bf401d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a6e7096815c0dd616d8c8a26d360cda6ce42d6b10fbbd80f22993f4eae95c51d"}}], "version": "9.0.16", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "37b95577ed90367c94210a79984362d9", "kind": "equivalent", "version": "9.3.3", "label": "9.3.3", "title": "修复错误报告逻辑中对 errno 的不安全引用", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a6e7096815c0dd616d8c8a26d360cda6ce42d6b10fbbd80f22993f4eae95c51d"}, "url": "/docs/compare/?release=9.3.3#9.3.3-49cce80b853a829d", "source_url": "/docs/release/9.3.3/#id-1.11.6.27.5"}, {"db_id": "bc3f7584e4445525d6f45b7085bf401d", "kind": "equivalent", "version": "9.2.7", "label": "9.2.7", "title": "修复错误报告逻辑中对 errno 的不安全引用", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a6e7096815c0dd616d8c8a26d360cda6ce42d6b10fbbd80f22993f4eae95c51d"}, "url": "/docs/compare/?release=9.2.7#9.2.7-49cce80b853a829d", "source_url": "/docs/release/9.2.7/#id-1.11.6.22.5"}, {"db_id": "3e87d3f06c98ffe8bdeeefa70078a8bf", "kind": "equivalent", "version": "9.1.12", "label": "9.1.12", "title": "修复错误报告逻辑中对 errno 的不安全引用", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a6e7096815c0dd616d8c8a26d360cda6ce42d6b10fbbd80f22993f4eae95c51d"}, "url": "/docs/compare/?release=9.1.12#9.1.12-49cce80b853a829d", "source_url": "/docs/release/9.1.12/#id-1.11.6.17.5"}]}, {"id": "9.0.16-d0cc9be6415fd283", "cves": [], "html": "<p>修复服务器启动期间过早使用 <code>ereport()</code> 可能导致的崩溃（Tom Lane）</p>\n<p>我们在实际中见到的主要情况是：如果服务器在一个它没有读取权限的目录中被启动，就会崩溃。</p>", "text": "修复服务器启动期间过早使用 ereport() 可能导致的崩溃（Tom Lane） 我们在实际中见到的主要情况是：如果服务器在一个它没有读取权限的目录中被启动，就会崩溃。", "title": "修复服务器启动期间过早使用 ereport() 可能导致的崩溃", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.16/#id-1.11.6.12.5", "source_hash": "5d0ce5580bf0d0e9e5829a5e398d19d2bec6d2857c8fb0f38b1e048d5ccacddb", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix possible crashes from using ereport() too early during server startup (Tom Lane) The principal case we've seen in the field is a crash if the server is started in a directory it doesn't have permission to read.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.16/changes/015", "db_id": "f162a4f736bbc4a94390f9623f33f298", "patch_ids": [], "statement_hash": "c4b9b84f039a5a99a9daae8e6d4ab8cd02bca48e9deda6bf23002c6d835a4e18", "relations": [{"rule": 2, "type": "equivalent", "target": "4a16d4287f4ee8452465cd646d1fd781", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c4b9b84f039a5a99a9daae8e6d4ab8cd02bca48e9deda6bf23002c6d835a4e18"}}, {"rule": 2, "type": "equivalent", "target": "df3e479eecfd2500a93eff44e9e5ab59", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c4b9b84f039a5a99a9daae8e6d4ab8cd02bca48e9deda6bf23002c6d835a4e18"}}, {"rule": 2, "type": "equivalent", "target": "e6191c20bd057498459d068ab454d4d4", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c4b9b84f039a5a99a9daae8e6d4ab8cd02bca48e9deda6bf23002c6d835a4e18"}}], "version": "9.0.16", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "df3e479eecfd2500a93eff44e9e5ab59", "kind": "equivalent", "version": "9.3.3", "label": "9.3.3", "title": "修复服务器启动期间过早使用 ereport() 可能导致的崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c4b9b84f039a5a99a9daae8e6d4ab8cd02bca48e9deda6bf23002c6d835a4e18"}, "url": "/docs/compare/?release=9.3.3#9.3.3-d0cc9be6415fd283", "source_url": "/docs/release/9.3.3/#id-1.11.6.27.5"}, {"db_id": "4a16d4287f4ee8452465cd646d1fd781", "kind": "equivalent", "version": "9.2.7", "label": "9.2.7", "title": "修复服务器启动期间过早使用 ereport() 可能导致的崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c4b9b84f039a5a99a9daae8e6d4ab8cd02bca48e9deda6bf23002c6d835a4e18"}, "url": "/docs/compare/?release=9.2.7#9.2.7-d0cc9be6415fd283", "source_url": "/docs/release/9.2.7/#id-1.11.6.22.5"}, {"db_id": "e6191c20bd057498459d068ab454d4d4", "kind": "equivalent", "version": "9.1.12", "label": "9.1.12", "title": "修复服务器启动期间过早使用 ereport() 可能导致的崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c4b9b84f039a5a99a9daae8e6d4ab8cd02bca48e9deda6bf23002c6d835a4e18"}, "url": "/docs/compare/?release=9.1.12#9.1.12-d0cc9be6415fd283", "source_url": "/docs/release/9.1.12/#id-1.11.6.17.5"}]}, {"id": "9.0.16-716aaa191c3cd5ee", "cves": [], "html": "<p>在 OpenSSL 套接字写函数中正确清除重试标志（Alexander Kukushkin）</p>\n<p>这一遗漏可能导致 SSL 加密连接意外断开后服务器锁死。</p>", "text": "在 OpenSSL 套接字写函数中正确清除重试标志（Alexander Kukushkin） 这一遗漏可能导致 SSL 加密连接意外断开后服务器锁死。", "title": "在 OpenSSL 套接字写函数中正确清除重试标志", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.16/#id-1.11.6.12.5", "source_hash": "845345a5d1efdaee2d83ea1e3684a3de8b481c13775c2dab4864b5a0c8ce2dd9", "section_path": ["变更"], "commit_groups": [], "identity_text": "Clear retry flags properly in OpenSSL socket write function (Alexander Kukushkin) This omission could result in a server lockup after unexpected loss of an SSL-encrypted connection.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.16/changes/016", "db_id": "941caa56d3c088d05a0927a7592abb33", "patch_ids": [], "statement_hash": "2108fafd4649cd4a43940fb84bb68314001285cbe39331fb36a2ae509a5be02a", "relations": [{"rule": 2, "type": "equivalent", "target": "0b007ab59ce736b143f3f709df9c5b30", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2108fafd4649cd4a43940fb84bb68314001285cbe39331fb36a2ae509a5be02a"}}, {"rule": 2, "type": "equivalent", "target": "11671fca978410389b3a726d8bea8852", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2108fafd4649cd4a43940fb84bb68314001285cbe39331fb36a2ae509a5be02a"}}, {"rule": 2, "type": "equivalent", "target": "8fef34044c53fb22630112ea37abb361", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2108fafd4649cd4a43940fb84bb68314001285cbe39331fb36a2ae509a5be02a"}}], "version": "9.0.16", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "11671fca978410389b3a726d8bea8852", "kind": "equivalent", "version": "9.3.3", "label": "9.3.3", "title": "在 OpenSSL 套接字写函数中正确清除重试标志", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2108fafd4649cd4a43940fb84bb68314001285cbe39331fb36a2ae509a5be02a"}, "url": "/docs/compare/?release=9.3.3#9.3.3-716aaa191c3cd5ee", "source_url": "/docs/release/9.3.3/#id-1.11.6.27.5"}, {"db_id": "8fef34044c53fb22630112ea37abb361", "kind": "equivalent", "version": "9.2.7", "label": "9.2.7", "title": "在 OpenSSL 套接字写函数中正确清除重试标志", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2108fafd4649cd4a43940fb84bb68314001285cbe39331fb36a2ae509a5be02a"}, "url": "/docs/compare/?release=9.2.7#9.2.7-716aaa191c3cd5ee", "source_url": "/docs/release/9.2.7/#id-1.11.6.22.5"}, {"db_id": "0b007ab59ce736b143f3f709df9c5b30", "kind": "equivalent", "version": "9.1.12", "label": "9.1.12", "title": "在 OpenSSL 套接字写函数中正确清除重试标志", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2108fafd4649cd4a43940fb84bb68314001285cbe39331fb36a2ae509a5be02a"}, "url": "/docs/compare/?release=9.1.12#9.1.12-716aaa191c3cd5ee", "source_url": "/docs/release/9.1.12/#id-1.11.6.17.5"}]}, {"id": "9.0.16-c3388e8771705baf", "cves": [], "html": "<p>修复对包含转义的 Unicode 标识符（<code>U&amp;\"...\"</code> 语法）的长度检查（Tom Lane）</p>\n<p>如果标识符的转义形式过长，就会为这类标识符打印虚假的截断警告，但标识符在反转义之后实际上并不需要截断。</p>", "text": "修复对包含转义的 Unicode 标识符（U&\"...\" 语法）的长度检查（Tom Lane） 如果标识符的转义形式过长，就会为这类标识符打印虚假的截断警告，但标识符在反转义之后实际上并不需要截断。", "title": "修复对包含转义的 Unicode 标识符（U&\"...\" 语法）的长度检查", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.16/#id-1.11.6.12.5", "source_hash": "cf406dbc8a07c48d170f04f9bacc108069fa098ee265d9d1643248aabaa54aca", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix length checking for Unicode identifiers (U&\"...\" syntax) containing escapes (Tom Lane) A spurious truncation warning would be printed for such identifiers if the escaped form of the identifier was too long, but the identifier actually didn't need truncation after de-escaping.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.16/changes/017", "db_id": "65740b7941f3e9b086e8907f001022fc", "patch_ids": [], "statement_hash": "249e8b492772c6d687ab8caae44093cbe50a88dca4bea22726c0b8fcf7b3c80a", "relations": [{"rule": 2, "type": "equivalent", "target": "42f4b233e4f166ead5bf69f9d022b760", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "249e8b492772c6d687ab8caae44093cbe50a88dca4bea22726c0b8fcf7b3c80a"}}, {"rule": 2, "type": "equivalent", "target": "c0c97674783fef61838fe77fe815ef47", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "249e8b492772c6d687ab8caae44093cbe50a88dca4bea22726c0b8fcf7b3c80a"}}, {"rule": 2, "type": "equivalent", "target": "f9b078f059a923d2bd5bd6cb576ab7fd", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "249e8b492772c6d687ab8caae44093cbe50a88dca4bea22726c0b8fcf7b3c80a"}}], "version": "9.0.16", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "f9b078f059a923d2bd5bd6cb576ab7fd", "kind": "equivalent", "version": "9.3.3", "label": "9.3.3", "title": "修复对包含转义的 Unicode 标识符（U&\"...\" 语法）的长度检查", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "249e8b492772c6d687ab8caae44093cbe50a88dca4bea22726c0b8fcf7b3c80a"}, "url": "/docs/compare/?release=9.3.3#9.3.3-c3388e8771705baf", "source_url": "/docs/release/9.3.3/#id-1.11.6.27.5"}, {"db_id": "c0c97674783fef61838fe77fe815ef47", "kind": "equivalent", "version": "9.2.7", "label": "9.2.7", "title": "修复对包含转义的 Unicode 标识符（U&\"...\" 语法）的长度检查", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "249e8b492772c6d687ab8caae44093cbe50a88dca4bea22726c0b8fcf7b3c80a"}, "url": "/docs/compare/?release=9.2.7#9.2.7-c3388e8771705baf", "source_url": "/docs/release/9.2.7/#id-1.11.6.22.5"}, {"db_id": "42f4b233e4f166ead5bf69f9d022b760", "kind": "equivalent", "version": "9.1.12", "label": "9.1.12", "title": "修复对包含转义的 Unicode 标识符（U&\"...\" 语法）的长度检查", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "249e8b492772c6d687ab8caae44093cbe50a88dca4bea22726c0b8fcf7b3c80a"}, "url": "/docs/compare/?release=9.1.12#9.1.12-c3388e8771705baf", "source_url": "/docs/release/9.1.12/#id-1.11.6.17.5"}]}, {"id": "9.0.16-26b51f6387adc9b6", "cves": [], "html": "<p>允许作为类型名的关键字用于角色列表（Stephen Frost）</p>\n<p>先前的补丁允许这类关键字在角色标识符等位置不加引号使用；但漏掉了允许角色标识符列表的情况，例如 <code>DROP ROLE</code>。</p>", "text": "允许作为类型名的关键字用于角色列表（Stephen Frost） 先前的补丁允许这类关键字在角色标识符等位置不加引号使用；但漏掉了允许角色标识符列表的情况，例如 DROP ROLE。", "title": "允许作为类型名的关键字用于角色列表", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.16/#id-1.11.6.12.5", "source_hash": "3422358a199d6c3c0f055ac6d81cf78eb7ef3839ddb980f8df92652e9d2075ae", "section_path": ["变更"], "commit_groups": [], "identity_text": "Allow keywords that are type names to be used in lists of roles (Stephen Frost) A previous patch allowed such keywords to be used without quoting in places such as role identifiers; but it missed cases where a list of role identifiers was permitted, such as DROP ROLE.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.16/changes/018", "db_id": "5fd4ec2506ed6953d713694b1bfb2ef3", "patch_ids": [], "statement_hash": "6ba955916ebb9facdf35bdb2cafb3584e29164785f99d246aa446b3c476a0488", "relations": [{"rule": 2, "type": "equivalent", "target": "b669cceaac0688c3467ae4cc3bdfc5cf", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6ba955916ebb9facdf35bdb2cafb3584e29164785f99d246aa446b3c476a0488"}}, {"rule": 2, "type": "equivalent", "target": "f7964e61818d714c7e0529b9e3c273df", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6ba955916ebb9facdf35bdb2cafb3584e29164785f99d246aa446b3c476a0488"}}, {"rule": 2, "type": "equivalent", "target": "facc82e0f268cb697ef0e460cb963a03", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6ba955916ebb9facdf35bdb2cafb3584e29164785f99d246aa446b3c476a0488"}}], "version": "9.0.16", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "b669cceaac0688c3467ae4cc3bdfc5cf", "kind": "equivalent", "version": "9.3.3", "label": "9.3.3", "title": "允许作为类型名的关键字用于角色列表", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6ba955916ebb9facdf35bdb2cafb3584e29164785f99d246aa446b3c476a0488"}, "url": "/docs/compare/?release=9.3.3#9.3.3-26b51f6387adc9b6", "source_url": "/docs/release/9.3.3/#id-1.11.6.27.5"}, {"db_id": "facc82e0f268cb697ef0e460cb963a03", "kind": "equivalent", "version": "9.2.7", "label": "9.2.7", "title": "允许作为类型名的关键字用于角色列表", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6ba955916ebb9facdf35bdb2cafb3584e29164785f99d246aa446b3c476a0488"}, "url": "/docs/compare/?release=9.2.7#9.2.7-26b51f6387adc9b6", "source_url": "/docs/release/9.2.7/#id-1.11.6.22.5"}, {"db_id": "f7964e61818d714c7e0529b9e3c273df", "kind": "equivalent", "version": "9.1.12", "label": "9.1.12", "title": "允许作为类型名的关键字用于角色列表", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6ba955916ebb9facdf35bdb2cafb3584e29164785f99d246aa446b3c476a0488"}, "url": "/docs/compare/?release=9.1.12#9.1.12-26b51f6387adc9b6", "source_url": "/docs/release/9.1.12/#id-1.11.6.17.5"}]}, {"id": "9.0.16-0120485e2756491d", "cves": [], "html": "<p>修复嵌套子选择（例如 <code>WHERE (... x IN (SELECT ...) ...) IN (SELECT ...)</code>）因无效计划而可能崩溃的问题（Tom Lane）</p>", "text": "修复嵌套子选择（例如 WHERE (... x IN (SELECT ...) ...) IN (SELECT ...)）因无效计划而可能崩溃的问题（Tom Lane）", "title": "修复嵌套子选择（例如 WHERE (... x IN (SELECT ...) ...) IN (SELECT ...)）因无效计划而可能崩溃的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.16/#id-1.11.6.12.5", "source_hash": "62cef334d9707163a0c7e6b4f73534f10e60c719a8fb17a11a59b482fbcd3e75", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix possible crash due to invalid plan for nested sub-selects, such as WHERE (... x IN (SELECT ...) ...) IN (SELECT ...) (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.16/changes/019", "db_id": "587a014707d18a9dfe4fcd7665f8ffae", "patch_ids": [], "statement_hash": "fbcaca3408ecf7bc9e81a9132fabaff24655b4499d3821dc327bb607b38a6606", "relations": [{"rule": 2, "type": "equivalent", "target": "3e1cf87c50929ba8621eacb7c7aa2815", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fbcaca3408ecf7bc9e81a9132fabaff24655b4499d3821dc327bb607b38a6606"}}, {"rule": 2, "type": "equivalent", "target": "4b54d1cbc23906d35a2c5cbb980cf685", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fbcaca3408ecf7bc9e81a9132fabaff24655b4499d3821dc327bb607b38a6606"}}, {"rule": 2, "type": "equivalent", "target": "c20e57bd97bb0aed81a85b2b4bb6fb2f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fbcaca3408ecf7bc9e81a9132fabaff24655b4499d3821dc327bb607b38a6606"}}], "version": "9.0.16", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "3e1cf87c50929ba8621eacb7c7aa2815", "kind": "equivalent", "version": "9.3.3", "label": "9.3.3", "title": "修复嵌套子选择（例如 WHERE (... x IN (SELECT ...) ...) IN (SELECT ...)）因无效计划而可能崩溃的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fbcaca3408ecf7bc9e81a9132fabaff24655b4499d3821dc327bb607b38a6606"}, "url": "/docs/compare/?release=9.3.3#9.3.3-0120485e2756491d", "source_url": "/docs/release/9.3.3/#id-1.11.6.27.5"}, {"db_id": "c20e57bd97bb0aed81a85b2b4bb6fb2f", "kind": "equivalent", "version": "9.2.7", "label": "9.2.7", "title": "修复嵌套子选择（例如 WHERE (... x IN (SELECT ...) ...) IN (SELECT ...)）因无效计划而可能崩溃的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fbcaca3408ecf7bc9e81a9132fabaff24655b4499d3821dc327bb607b38a6606"}, "url": "/docs/compare/?release=9.2.7#9.2.7-0120485e2756491d", "source_url": "/docs/release/9.2.7/#id-1.11.6.22.5"}, {"db_id": "4b54d1cbc23906d35a2c5cbb980cf685", "kind": "equivalent", "version": "9.1.12", "label": "9.1.12", "title": "修复嵌套子选择（例如 WHERE (... x IN (SELECT ...) ...) IN (SELECT ...)）因无效计划而可能崩溃的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fbcaca3408ecf7bc9e81a9132fabaff24655b4499d3821dc327bb607b38a6606"}, "url": "/docs/compare/?release=9.1.12#9.1.12-0120485e2756491d", "source_url": "/docs/release/9.1.12/#id-1.11.6.17.5"}]}, {"id": "9.0.16-45d4601c41a69628", "cves": [], "html": "<p>确保即使表列中的所有值都<span>“<span>过宽</span>”</span>，<code>ANALYZE</code> 也会为该列创建统计信息（Tom Lane）</p>\n<p><code>ANALYZE</code> 有意在直方图和最常用值计算中省略非常宽的值，但在所有采样条目都过宽的情况下没有做出合理的处理。</p>", "text": "确保即使表列中的所有值都“过宽”，ANALYZE 也会为该列创建统计信息（Tom Lane） ANALYZE 有意在直方图和最常用值计算中省略非常宽的值，但在所有采样条目都过宽的情况下没有做出合理的处理。", "title": "确保即使表列中的所有值都“过宽”，ANALYZE 也会为该列创建统计信息", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.16/#id-1.11.6.12.5", "source_hash": "fc59333f31f1c5f6ebb654d73ad1e6f5610a47afad076778531e92abfdb7b654", "section_path": ["变更"], "commit_groups": [], "identity_text": "Ensure that ANALYZE creates statistics for a table column even when all the values in it are too wide (Tom Lane) ANALYZE intentionally omits very wide values from its histogram and most-common-values calculations, but it neglected to do something sane in the case that all the sampled entries are too wide.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.16/changes/020", "db_id": "e87f90c509b154f64680271a9e8604ff", "patch_ids": [], "statement_hash": "2ac10c14f9f8d5fe110b463afd1e86eb7ffcd3754b4ff42f64cc8fc9f34490e4", "relations": [{"rule": 2, "type": "equivalent", "target": "559a553c08451fe4dcfb5586f0f99e82", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2ac10c14f9f8d5fe110b463afd1e86eb7ffcd3754b4ff42f64cc8fc9f34490e4"}}, {"rule": 2, "type": "equivalent", "target": "75fe6c40b7de8f85e5877c5c28800ac9", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2ac10c14f9f8d5fe110b463afd1e86eb7ffcd3754b4ff42f64cc8fc9f34490e4"}}, {"rule": 2, "type": "equivalent", "target": "f3695dd10fa7b17e2c880937788ec52b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2ac10c14f9f8d5fe110b463afd1e86eb7ffcd3754b4ff42f64cc8fc9f34490e4"}}], "version": "9.0.16", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "f3695dd10fa7b17e2c880937788ec52b", "kind": "equivalent", "version": "9.3.3", "label": "9.3.3", "title": "确保即使表列中的所有值都“过宽”，ANALYZE 也会为该列创建统计信息", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2ac10c14f9f8d5fe110b463afd1e86eb7ffcd3754b4ff42f64cc8fc9f34490e4"}, "url": "/docs/compare/?release=9.3.3#9.3.3-45d4601c41a69628", "source_url": "/docs/release/9.3.3/#id-1.11.6.27.5"}, {"db_id": "559a553c08451fe4dcfb5586f0f99e82", "kind": "equivalent", "version": "9.2.7", "label": "9.2.7", "title": "确保即使表列中的所有值都“过宽”，ANALYZE 也会为该列创建统计信息", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2ac10c14f9f8d5fe110b463afd1e86eb7ffcd3754b4ff42f64cc8fc9f34490e4"}, "url": "/docs/compare/?release=9.2.7#9.2.7-45d4601c41a69628", "source_url": "/docs/release/9.2.7/#id-1.11.6.22.5"}, {"db_id": "75fe6c40b7de8f85e5877c5c28800ac9", "kind": "equivalent", "version": "9.1.12", "label": "9.1.12", "title": "确保即使表列中的所有值都“过宽”，ANALYZE 也会为该列创建统计信息", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2ac10c14f9f8d5fe110b463afd1e86eb7ffcd3754b4ff42f64cc8fc9f34490e4"}, "url": "/docs/compare/?release=9.1.12#9.1.12-45d4601c41a69628", "source_url": "/docs/release/9.1.12/#id-1.11.6.17.5"}]}, {"id": "9.0.16-abe3fe7f7c1377f4", "cves": [], "html": "<p>在 <code>ALTER TABLE ... SET TABLESPACE</code> 中，允许不经权限检查就使用数据库的默认表空间（Stephen Frost）</p>\n<p><code>CREATE TABLE</code> 一直允许这种用法，但 <code>ALTER TABLE</code> 没有照做。</p>", "text": "在 ALTER TABLE ... SET TABLESPACE 中，允许不经权限检查就使用数据库的默认表空间（Stephen Frost） CREATE TABLE 一直允许这种用法，但 ALTER TABLE 没有照做。", "title": "在 ALTER TABLE ... SET TABLESPACE 中，允许不经权限检查就使用数据库的默认表空间", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.16/#id-1.11.6.12.5", "source_hash": "e7c7af828e141aeb095f8202e4760206ce58a87fc2740fb2616201e460f13bc1", "section_path": ["变更"], "commit_groups": [], "identity_text": "In ALTER TABLE ... SET TABLESPACE, allow the database's default tablespace to be used without a permissions check (Stephen Frost) CREATE TABLE has always allowed such usage, but ALTER TABLE didn't get the memo.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.16/changes/021", "db_id": "4d098fa538b4f461a0bf9de881e82ee6", "patch_ids": [], "statement_hash": "c6a82b8f7c102ed1bbaa42dfcc9b92f0220d24790e7deb28b84741bec1576300", "relations": [{"rule": 2, "type": "equivalent", "target": "7ded2f3aed6eb776afe95ab57579f474", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c6a82b8f7c102ed1bbaa42dfcc9b92f0220d24790e7deb28b84741bec1576300"}}, {"rule": 2, "type": "equivalent", "target": "95e0a24f610d24ea94a95e0efe62ca88", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c6a82b8f7c102ed1bbaa42dfcc9b92f0220d24790e7deb28b84741bec1576300"}}, {"rule": 2, "type": "equivalent", "target": "f4ea0d64a1dc2dd78d93bdae9255c39e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c6a82b8f7c102ed1bbaa42dfcc9b92f0220d24790e7deb28b84741bec1576300"}}], "version": "9.0.16", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "f4ea0d64a1dc2dd78d93bdae9255c39e", "kind": "equivalent", "version": "9.3.3", "label": "9.3.3", "title": "在 ALTER TABLE ... SET TABLESPACE 中，允许不经权限检查就使用数据库的默认表空间", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c6a82b8f7c102ed1bbaa42dfcc9b92f0220d24790e7deb28b84741bec1576300"}, "url": "/docs/compare/?release=9.3.3#9.3.3-abe3fe7f7c1377f4", "source_url": "/docs/release/9.3.3/#id-1.11.6.27.5"}, {"db_id": "95e0a24f610d24ea94a95e0efe62ca88", "kind": "equivalent", "version": "9.2.7", "label": "9.2.7", "title": "在 ALTER TABLE ... SET TABLESPACE 中，允许不经权限检查就使用数据库的默认表空间", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c6a82b8f7c102ed1bbaa42dfcc9b92f0220d24790e7deb28b84741bec1576300"}, "url": "/docs/compare/?release=9.2.7#9.2.7-abe3fe7f7c1377f4", "source_url": "/docs/release/9.2.7/#id-1.11.6.22.5"}, {"db_id": "7ded2f3aed6eb776afe95ab57579f474", "kind": "equivalent", "version": "9.1.12", "label": "9.1.12", "title": "在 ALTER TABLE ... SET TABLESPACE 中，允许不经权限检查就使用数据库的默认表空间", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c6a82b8f7c102ed1bbaa42dfcc9b92f0220d24790e7deb28b84741bec1576300"}, "url": "/docs/compare/?release=9.1.12#9.1.12-abe3fe7f7c1377f4", "source_url": "/docs/release/9.1.12/#id-1.11.6.17.5"}]}, {"id": "9.0.16-c79e00b15c7a1b23", "cves": [], "html": "<p>修复当 <code>CASE</code> 的某些分支返回集合而另一些不返回时的 <span>“<span>cannot accept a set</span>”</span> 错误（Tom Lane）</p>", "text": "修复当 CASE 的某些分支返回集合而另一些不返回时的 “cannot accept a set” 错误（Tom Lane）", "title": "修复当 CASE 的某些分支返回集合而另一些不返回时的 “cannot accept a set” 错误", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.16/#id-1.11.6.12.5", "source_hash": "a8764b4fe1c21c34bc097b78a138576bba56daa58712464e188fd0ab1404b44c", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix cannot accept a set error when some arms of a CASE return a set and others don't (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.16/changes/022", "db_id": "58542151bd1bb3c497ae9ee5b4dafc1a", "patch_ids": [], "statement_hash": "d9ea93b3ec8d5937eb3bb5e086b4e9977b111b98ced02d5e7efa3a037e0553a2", "relations": [{"rule": 2, "type": "equivalent", "target": "3c022e03cacf413d80f93c1250d3f8d8", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d9ea93b3ec8d5937eb3bb5e086b4e9977b111b98ced02d5e7efa3a037e0553a2"}}, {"rule": 2, "type": "equivalent", "target": "5c0d749e9a869ed15f6aabb49321c1c6", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d9ea93b3ec8d5937eb3bb5e086b4e9977b111b98ced02d5e7efa3a037e0553a2"}}, {"rule": 2, "type": "equivalent", "target": "90e4474f0a8941a41cee36d029dcd7ec", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d9ea93b3ec8d5937eb3bb5e086b4e9977b111b98ced02d5e7efa3a037e0553a2"}}], "version": "9.0.16", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "5c0d749e9a869ed15f6aabb49321c1c6", "kind": "equivalent", "version": "9.3.3", "label": "9.3.3", "title": "修复当 CASE 的某些分支返回集合而另一些不返回时的 “cannot accept a set” 错误", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d9ea93b3ec8d5937eb3bb5e086b4e9977b111b98ced02d5e7efa3a037e0553a2"}, "url": "/docs/compare/?release=9.3.3#9.3.3-c79e00b15c7a1b23", "source_url": "/docs/release/9.3.3/#id-1.11.6.27.5"}, {"db_id": "3c022e03cacf413d80f93c1250d3f8d8", "kind": "equivalent", "version": "9.2.7", "label": "9.2.7", "title": "修复当 CASE 的某些分支返回集合而另一些不返回时的“cannot accept a set”错误", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d9ea93b3ec8d5937eb3bb5e086b4e9977b111b98ced02d5e7efa3a037e0553a2"}, "url": "/docs/compare/?release=9.2.7#9.2.7-71848f476e985de7", "source_url": "/docs/release/9.2.7/#id-1.11.6.22.5"}, {"db_id": "90e4474f0a8941a41cee36d029dcd7ec", "kind": "equivalent", "version": "9.1.12", "label": "9.1.12", "title": "修复当 CASE 的某些分支返回集合而另一些不返回时的 “cannot accept a set” 错误", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d9ea93b3ec8d5937eb3bb5e086b4e9977b111b98ced02d5e7efa3a037e0553a2"}, "url": "/docs/compare/?release=9.1.12#9.1.12-c79e00b15c7a1b23", "source_url": "/docs/release/9.1.12/#id-1.11.6.17.5"}]}, {"id": "9.0.16-37c412e7c57e6641", "cves": [], "html": "<p>修复 pgstat 函数中对全零客户端地址的检查（Kevin Grittner）</p>", "text": "修复 pgstat 函数中对全零客户端地址的检查（Kevin Grittner）", "title": "修复 pgstat 函数中对全零客户端地址的检查", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.16/#id-1.11.6.12.5", "source_hash": "078f83ab14535c851aca537dc8afd3499c5f4fb4e31ac599b11e0c2a461b07a4", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix checks for all-zero client addresses in pgstat functions (Kevin Grittner)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.16/changes/023", "db_id": "f647ad538a9bce5e0da6e05e57afcc79", "patch_ids": [], "statement_hash": "012d8dc6ae3c6bac36fa1387a792a36627ad5c8a44ff8a122a0141f75adcaa27", "relations": [{"rule": 2, "type": "equivalent", "target": "a00f19f4a4095e9a9165e129b432db14", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "012d8dc6ae3c6bac36fa1387a792a36627ad5c8a44ff8a122a0141f75adcaa27"}}, {"rule": 2, "type": "equivalent", "target": "bda9cb552f7456b4075e860b04842ecc", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "012d8dc6ae3c6bac36fa1387a792a36627ad5c8a44ff8a122a0141f75adcaa27"}}, {"rule": 2, "type": "equivalent", "target": "f66fb5509ed7da6955cc8611eb2490e2", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "012d8dc6ae3c6bac36fa1387a792a36627ad5c8a44ff8a122a0141f75adcaa27"}}], "version": "9.0.16", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "a00f19f4a4095e9a9165e129b432db14", "kind": "equivalent", "version": "9.3.3", "label": "9.3.3", "title": "修复 pgstat 函数中对全零客户端地址的检查", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "012d8dc6ae3c6bac36fa1387a792a36627ad5c8a44ff8a122a0141f75adcaa27"}, "url": "/docs/compare/?release=9.3.3#9.3.3-37c412e7c57e6641", "source_url": "/docs/release/9.3.3/#id-1.11.6.27.5"}, {"db_id": "bda9cb552f7456b4075e860b04842ecc", "kind": "equivalent", "version": "9.2.7", "label": "9.2.7", "title": "修复 pgstat 函数中对全零客户端地址的检查", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "012d8dc6ae3c6bac36fa1387a792a36627ad5c8a44ff8a122a0141f75adcaa27"}, "url": "/docs/compare/?release=9.2.7#9.2.7-37c412e7c57e6641", "source_url": "/docs/release/9.2.7/#id-1.11.6.22.5"}, {"db_id": "f66fb5509ed7da6955cc8611eb2490e2", "kind": "equivalent", "version": "9.1.12", "label": "9.1.12", "title": "修复 pgstat 函数中对全零客户端地址的检查", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "012d8dc6ae3c6bac36fa1387a792a36627ad5c8a44ff8a122a0141f75adcaa27"}, "url": "/docs/compare/?release=9.1.12#9.1.12-37c412e7c57e6641", "source_url": "/docs/release/9.1.12/#id-1.11.6.17.5"}]}, {"id": "9.0.16-d665b6c08ce4e8d9", "cves": [], "html": "<p>修复文本搜索解析器可能错误分类多字节字符的问题（Tom Lane）</p>\n<p>在 C 区域设置下使用多字节编码时，非 ASCII 字符可能被错误分类。在 Cygwin 上，非 C 区域设置也可能失败。</p>", "text": "修复文本搜索解析器可能错误分类多字节字符的问题（Tom Lane） 在 C 区域设置下使用多字节编码时，非 ASCII 字符可能被错误分类。在 Cygwin 上，非 C 区域设置也可能失败。", "title": "修复文本搜索解析器可能错误分类多字节字符的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.16/#id-1.11.6.12.5", "source_hash": "d96fdef635c6f8195b28a9a30b1fccb2d9a5cec0de93b7374a04b1911d6f668c", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix possible misclassification of multibyte characters by the text search parser (Tom Lane) Non-ASCII characters could be misclassified when using C locale with a multibyte encoding. On Cygwin, non-C locales could fail as well.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.16/changes/024", "db_id": "5356f043efb90dba09cddfb702db2ea9", "patch_ids": [], "statement_hash": "2c24580cfb42fb7c3c9934439a795a08627401e9cf599b45863720676b2b6aee", "relations": [{"rule": 2, "type": "equivalent", "target": "0d29215af03bfacc673f9e3040747da2", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2c24580cfb42fb7c3c9934439a795a08627401e9cf599b45863720676b2b6aee"}}, {"rule": 2, "type": "equivalent", "target": "537f6a77723456e1f621b81a24ab6f9a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2c24580cfb42fb7c3c9934439a795a08627401e9cf599b45863720676b2b6aee"}}, {"rule": 2, "type": "equivalent", "target": "bdec3fe347e507ce4e004c7d0c07d9b2", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2c24580cfb42fb7c3c9934439a795a08627401e9cf599b45863720676b2b6aee"}}], "version": "9.0.16", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "bdec3fe347e507ce4e004c7d0c07d9b2", "kind": "equivalent", "version": "9.3.3", "label": "9.3.3", "title": "修复文本搜索解析器可能错误分类多字节字符的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2c24580cfb42fb7c3c9934439a795a08627401e9cf599b45863720676b2b6aee"}, "url": "/docs/compare/?release=9.3.3#9.3.3-d665b6c08ce4e8d9", "source_url": "/docs/release/9.3.3/#id-1.11.6.27.5"}, {"db_id": "0d29215af03bfacc673f9e3040747da2", "kind": "equivalent", "version": "9.2.7", "label": "9.2.7", "title": "修复文本搜索解析器可能错误分类多字节字符的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2c24580cfb42fb7c3c9934439a795a08627401e9cf599b45863720676b2b6aee"}, "url": "/docs/compare/?release=9.2.7#9.2.7-d665b6c08ce4e8d9", "source_url": "/docs/release/9.2.7/#id-1.11.6.22.5"}, {"db_id": "537f6a77723456e1f621b81a24ab6f9a", "kind": "equivalent", "version": "9.1.12", "label": "9.1.12", "title": "修复文本搜索解析器可能错误分类多字节字符的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2c24580cfb42fb7c3c9934439a795a08627401e9cf599b45863720676b2b6aee"}, "url": "/docs/compare/?release=9.1.12#9.1.12-d665b6c08ce4e8d9", "source_url": "/docs/release/9.1.12/#id-1.11.6.17.5"}]}, {"id": "9.0.16-4d4f516a0f72070d", "cves": [], "html": "<p>修复 <code>plainto_tsquery()</code> 中可能的不当行为（Heikki Linnakangas）</p>\n<p>在复制重叠内存区域时使用 <code>memmove()</code> 而不是 <code>memcpy()</code>。尚无实际造成问题的现场报告，但这无疑是有风险的。</p>", "text": "修复 plainto_tsquery() 中可能的不当行为（Heikki Linnakangas） 在复制重叠内存区域时使用 memmove() 而不是 memcpy()。尚无实际造成问题的现场报告，但这无疑是有风险的。", "title": "修复 plainto_tsquery() 中可能的不当行为", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.16/#id-1.11.6.12.5", "source_hash": "9e959d813051444f6b8c439b538f98d3175b2c83b3898b5636db58835eb57016", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix possible misbehavior in plainto_tsquery() (Heikki Linnakangas) Use memmove() not memcpy() for copying overlapping memory regions. There have been no field reports of this actually causing trouble, but it's certainly risky.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.16/changes/025", "db_id": "11527e9d63f3ed473939ba4be339e00b", "patch_ids": [], "statement_hash": "5f2b2549524e3e113908ea16e76a8718dfd1d3d0e2d3d3e05a18ae4ecea1aefe", "relations": [{"rule": 2, "type": "equivalent", "target": "3584d74976b07ad9c4dc56f943abc435", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5f2b2549524e3e113908ea16e76a8718dfd1d3d0e2d3d3e05a18ae4ecea1aefe"}}, {"rule": 2, "type": "equivalent", "target": "3c13e80df6489c286b0b371b85fea89b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5f2b2549524e3e113908ea16e76a8718dfd1d3d0e2d3d3e05a18ae4ecea1aefe"}}, {"rule": 2, "type": "equivalent", "target": "91c677a48c5613d5b601edd2f050fbe4", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5f2b2549524e3e113908ea16e76a8718dfd1d3d0e2d3d3e05a18ae4ecea1aefe"}}], "version": "9.0.16", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "3c13e80df6489c286b0b371b85fea89b", "kind": "equivalent", "version": "9.3.3", "label": "9.3.3", "title": "修复 plainto_tsquery() 中可能的不当行为", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5f2b2549524e3e113908ea16e76a8718dfd1d3d0e2d3d3e05a18ae4ecea1aefe"}, "url": "/docs/compare/?release=9.3.3#9.3.3-4d4f516a0f72070d", "source_url": "/docs/release/9.3.3/#id-1.11.6.27.5"}, {"db_id": "3584d74976b07ad9c4dc56f943abc435", "kind": "equivalent", "version": "9.2.7", "label": "9.2.7", "title": "修复 plainto_tsquery() 中可能的不当行为", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5f2b2549524e3e113908ea16e76a8718dfd1d3d0e2d3d3e05a18ae4ecea1aefe"}, "url": "/docs/compare/?release=9.2.7#9.2.7-4d4f516a0f72070d", "source_url": "/docs/release/9.2.7/#id-1.11.6.22.5"}, {"db_id": "91c677a48c5613d5b601edd2f050fbe4", "kind": "equivalent", "version": "9.1.12", "label": "9.1.12", "title": "修复 plainto_tsquery() 中可能的不当行为", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5f2b2549524e3e113908ea16e76a8718dfd1d3d0e2d3d3e05a18ae4ecea1aefe"}, "url": "/docs/compare/?release=9.1.12#9.1.12-4d4f516a0f72070d", "source_url": "/docs/release/9.1.12/#id-1.11.6.17.5"}]}, {"id": "9.0.16-180c20631458e44e", "cves": [], "html": "<p>在区域检查方面接受 <code>SHIFT_JIS</code> 作为编码名（Tatsuo Ishii）</p>", "text": "在区域检查方面接受 SHIFT_JIS 作为编码名（Tatsuo Ishii）", "title": "在区域检查方面接受 SHIFT_JIS 作为编码名", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.16/#id-1.11.6.12.5", "source_hash": "e93f15ff444ab0f041852e7d293ab60e755ee6cd293529e99a4d5bb4c08a980e", "section_path": ["变更"], "commit_groups": [], "identity_text": "Accept SHIFT_JIS as an encoding name for locale checking purposes (Tatsuo Ishii)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.16/changes/026", "db_id": "a04d579b3f501ab201d3464ef69d04bf", "patch_ids": [], "statement_hash": "0f5c3694c1ae8671fa8070d5fe0319feda04bb81aa4117b1dcb50a5e6fac088d", "relations": [{"rule": 2, "type": "equivalent", "target": "866c9eaa269f0f65fb023895be9f35ee", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0f5c3694c1ae8671fa8070d5fe0319feda04bb81aa4117b1dcb50a5e6fac088d"}}, {"rule": 2, "type": "equivalent", "target": "9771bff578b97b093217263738f5d2fa", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0f5c3694c1ae8671fa8070d5fe0319feda04bb81aa4117b1dcb50a5e6fac088d"}}, {"rule": 2, "type": "equivalent", "target": "f6f888ec1197e21a1c8d0720e5da29fa", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0f5c3694c1ae8671fa8070d5fe0319feda04bb81aa4117b1dcb50a5e6fac088d"}}], "version": "9.0.16", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "9771bff578b97b093217263738f5d2fa", "kind": "equivalent", "version": "9.3.3", "label": "9.3.3", "title": "在区域检查方面接受 SHIFT_JIS 作为编码名", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0f5c3694c1ae8671fa8070d5fe0319feda04bb81aa4117b1dcb50a5e6fac088d"}, "url": "/docs/compare/?release=9.3.3#9.3.3-180c20631458e44e", "source_url": "/docs/release/9.3.3/#id-1.11.6.27.5"}, {"db_id": "866c9eaa269f0f65fb023895be9f35ee", "kind": "equivalent", "version": "9.2.7", "label": "9.2.7", "title": "在区域检查方面接受 SHIFT_JIS 作为编码名", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0f5c3694c1ae8671fa8070d5fe0319feda04bb81aa4117b1dcb50a5e6fac088d"}, "url": "/docs/compare/?release=9.2.7#9.2.7-180c20631458e44e", "source_url": "/docs/release/9.2.7/#id-1.11.6.22.5"}, {"db_id": "f6f888ec1197e21a1c8d0720e5da29fa", "kind": "equivalent", "version": "9.1.12", "label": "9.1.12", "title": "在区域检查方面接受 SHIFT_JIS 作为编码名", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0f5c3694c1ae8671fa8070d5fe0319feda04bb81aa4117b1dcb50a5e6fac088d"}, "url": "/docs/compare/?release=9.1.12#9.1.12-180c20631458e44e", "source_url": "/docs/release/9.1.12/#id-1.11.6.17.5"}]}, {"id": "9.0.16-b37c8dd469f73934", "cves": [], "html": "<p>修复 <code>PQhost()</code> 在 Windows 上的不当行为（Fujii Masao）</p>\n<p>如果未指定主机，它应返回 <code>localhost</code>。</p>", "text": "修复 PQhost() 在 Windows 上的不当行为（Fujii Masao） 如果未指定主机，它应返回 localhost。", "title": "修复 PQhost() 在 Windows 上的不当行为", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.16/#id-1.11.6.12.5", "source_hash": "34c1228c9ab6b2ccbf1ac607d3a4ccb0cf8f0beda5ee53f0da604f49a621329d", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix misbehavior of PQhost() on Windows (Fujii Masao) It should return localhost if no host has been specified.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.16/changes/027", "db_id": "2be4fa57cd17a0243188804f11d8aeb6", "patch_ids": [], "statement_hash": "475827447503f9b58237112e3d4d55ba99fd44c259e8f2c3a0fd9176c9883262", "relations": [{"rule": 2, "type": "equivalent", "target": "5db54b36acb017ea25901f1533a95c0e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "475827447503f9b58237112e3d4d55ba99fd44c259e8f2c3a0fd9176c9883262"}}, {"rule": 2, "type": "equivalent", "target": "6334cd2eb111d5b2cfd0cd06ce8e5a7b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "475827447503f9b58237112e3d4d55ba99fd44c259e8f2c3a0fd9176c9883262"}}, {"rule": 2, "type": "equivalent", "target": "844108fae0db3a59b6f24237a7ad8720", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "475827447503f9b58237112e3d4d55ba99fd44c259e8f2c3a0fd9176c9883262"}}], "version": "9.0.16", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "6334cd2eb111d5b2cfd0cd06ce8e5a7b", "kind": "equivalent", "version": "9.3.3", "label": "9.3.3", "title": "修复 PQhost() 在 Windows 上的不当行为", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "475827447503f9b58237112e3d4d55ba99fd44c259e8f2c3a0fd9176c9883262"}, "url": "/docs/compare/?release=9.3.3#9.3.3-b37c8dd469f73934", "source_url": "/docs/release/9.3.3/#id-1.11.6.27.5"}, {"db_id": "5db54b36acb017ea25901f1533a95c0e", "kind": "equivalent", "version": "9.2.7", "label": "9.2.7", "title": "修复 PQhost() 在 Windows 上的不当行为", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "475827447503f9b58237112e3d4d55ba99fd44c259e8f2c3a0fd9176c9883262"}, "url": "/docs/compare/?release=9.2.7#9.2.7-b37c8dd469f73934", "source_url": "/docs/release/9.2.7/#id-1.11.6.22.5"}, {"db_id": "844108fae0db3a59b6f24237a7ad8720", "kind": "equivalent", "version": "9.1.12", "label": "9.1.12", "title": "修复 PQhost() 在 Windows 上的不当行为", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "475827447503f9b58237112e3d4d55ba99fd44c259e8f2c3a0fd9176c9883262"}, "url": "/docs/compare/?release=9.1.12#9.1.12-b37c8dd469f73934", "source_url": "/docs/release/9.1.12/#id-1.11.6.17.5"}]}, {"id": "9.0.16-c1586eb7d0837e6d", "cves": [], "html": "<p>改进 <span>libpq</span> 和 <span>psql</span> 对 <code>COPY TO STDOUT/FROM STDIN</code> 期间失败的错误处理（Tom Lane）</p>\n<p>这尤其修复了 9.2 及更高版本中，如果服务器连接在 <code>COPY FROM STDIN</code> 期间丢失可能发生的无限循环。该场景的变体在旧版本或其他客户端应用中也可能出现。</p>", "text": "改进 libpq 和 psql 对 COPY TO STDOUT/FROM STDIN 期间失败的错误处理（Tom Lane） 这尤其修复了 9.2 及更高版本中，如果服务器连接在 COPY FROM STDIN 期间丢失可能发生的无限循环。该场景的变体在旧版本或其他客户端应用中也可能出现。", "title": "改进 libpq 和 psql 对 COPY TO STDOUT/FROM STDIN 期间失败的错误处理", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.16/#id-1.11.6.12.5", "source_hash": "2dcb1de2aa726ba9700b939ad36d218272c3b92071ceb5e01e3dd652c530d4a5", "section_path": ["变更"], "commit_groups": [], "identity_text": "Improve error handling in libpq and psql for failures during COPY TO STDOUT/FROM STDIN (Tom Lane) In particular this fixes an infinite loop that could occur in 9.2 and up if the server connection was lost during COPY FROM STDIN. Variants of that scenario might be possible in older versions, or with other client applications.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.16/changes/028", "db_id": "abb33b9a9a77e4fcf26c39103d088b1d", "patch_ids": [], "statement_hash": "c71eb87fd3f60bb83c6f0d81938071c5b92bc25ac45379ca3ce1804cb6b92703", "relations": [{"rule": 2, "type": "equivalent", "target": "18946eb065f1162c255f7a086721af24", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c71eb87fd3f60bb83c6f0d81938071c5b92bc25ac45379ca3ce1804cb6b92703"}}, {"rule": 2, "type": "equivalent", "target": "1977d3f1de2078a044157f02af2d57e2", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c71eb87fd3f60bb83c6f0d81938071c5b92bc25ac45379ca3ce1804cb6b92703"}}, {"rule": 2, "type": "equivalent", "target": "a87e12de3be8565fae3a0cc05ccbec93", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c71eb87fd3f60bb83c6f0d81938071c5b92bc25ac45379ca3ce1804cb6b92703"}}], "version": "9.0.16", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "1977d3f1de2078a044157f02af2d57e2", "kind": "equivalent", "version": "9.3.3", "label": "9.3.3", "title": "改进 libpq 和 psql 对 COPY TO STDOUT/FROM STDIN 期间失败的错误处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c71eb87fd3f60bb83c6f0d81938071c5b92bc25ac45379ca3ce1804cb6b92703"}, "url": "/docs/compare/?release=9.3.3#9.3.3-c1586eb7d0837e6d", "source_url": "/docs/release/9.3.3/#id-1.11.6.27.5"}, {"db_id": "18946eb065f1162c255f7a086721af24", "kind": "equivalent", "version": "9.2.7", "label": "9.2.7", "title": "改进 libpq 和 psql 对 COPY TO STDOUT/FROM STDIN 期间失败的错误处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c71eb87fd3f60bb83c6f0d81938071c5b92bc25ac45379ca3ce1804cb6b92703"}, "url": "/docs/compare/?release=9.2.7#9.2.7-c1586eb7d0837e6d", "source_url": "/docs/release/9.2.7/#id-1.11.6.22.5"}, {"db_id": "a87e12de3be8565fae3a0cc05ccbec93", "kind": "equivalent", "version": "9.1.12", "label": "9.1.12", "title": "改进 libpq 和 psql 对 COPY TO STDOUT/FROM STDIN 期间失败的错误处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c71eb87fd3f60bb83c6f0d81938071c5b92bc25ac45379ca3ce1804cb6b92703"}, "url": "/docs/compare/?release=9.1.12#9.1.12-c1586eb7d0837e6d", "source_url": "/docs/release/9.1.12/#id-1.11.6.17.5"}]}, {"id": "9.0.16-64aa85b276874fb3", "cves": [], "html": "<p>修复 <span>ecpg</span> 中未对齐的描述符（MauMau）</p>", "text": "修复 ecpg 中未对齐的描述符（MauMau）", "title": "修复 ecpg 中未对齐的描述符", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.16/#id-1.11.6.12.5", "source_hash": "2364e38a98e9d05017b8dd013a0f2efc7dc4709783db81c7353f4d682e3ba302", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix misaligned descriptors in ecpg (MauMau)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.16/changes/029", "db_id": "63187688b264935a9fb8c639a9e8279c", "patch_ids": [], "statement_hash": "e1db1186cbe3bdfe73043360b8f2568e87b7ba04052a239fbc39f29c728a2a0f", "relations": [{"rule": 2, "type": "equivalent", "target": "4d69980cad10a28e2496f4dd4cddc7e8", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e1db1186cbe3bdfe73043360b8f2568e87b7ba04052a239fbc39f29c728a2a0f"}}, {"rule": 2, "type": "equivalent", "target": "6ade69ef56fb0dd48990328ce7dca6b0", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e1db1186cbe3bdfe73043360b8f2568e87b7ba04052a239fbc39f29c728a2a0f"}}, {"rule": 2, "type": "equivalent", "target": "ec5d2ade7e0c822042799186a50168ff", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e1db1186cbe3bdfe73043360b8f2568e87b7ba04052a239fbc39f29c728a2a0f"}}], "version": "9.0.16", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "6ade69ef56fb0dd48990328ce7dca6b0", "kind": "equivalent", "version": "9.3.3", "label": "9.3.3", "title": "修复 ecpg 中未对齐的描述符", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e1db1186cbe3bdfe73043360b8f2568e87b7ba04052a239fbc39f29c728a2a0f"}, "url": "/docs/compare/?release=9.3.3#9.3.3-64aa85b276874fb3", "source_url": "/docs/release/9.3.3/#id-1.11.6.27.5"}, {"db_id": "4d69980cad10a28e2496f4dd4cddc7e8", "kind": "equivalent", "version": "9.2.7", "label": "9.2.7", "title": "修复 ecpg 中未对齐的描述符", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e1db1186cbe3bdfe73043360b8f2568e87b7ba04052a239fbc39f29c728a2a0f"}, "url": "/docs/compare/?release=9.2.7#9.2.7-64aa85b276874fb3", "source_url": "/docs/release/9.2.7/#id-1.11.6.22.5"}, {"db_id": "ec5d2ade7e0c822042799186a50168ff", "kind": "equivalent", "version": "9.1.12", "label": "9.1.12", "title": "修复 ecpg 中未对齐的描述符", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e1db1186cbe3bdfe73043360b8f2568e87b7ba04052a239fbc39f29c728a2a0f"}, "url": "/docs/compare/?release=9.1.12#9.1.12-64aa85b276874fb3", "source_url": "/docs/release/9.1.12/#id-1.11.6.17.5"}]}, {"id": "9.0.16-5be39aaedee6747a", "cves": [], "html": "<p>在 <span>ecpg</span> 中正确处理连接参数中缺少主机名的情况（Michael Meskes）</p>", "text": "在 ecpg 中正确处理连接参数中缺少主机名的情况（Michael Meskes）", "title": "在 ecpg 中正确处理连接参数中缺少主机名的情况", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.16/#id-1.11.6.12.5", "source_hash": "e446c9dd087e4e9630c8a7dd0a3dcbe6063cb3dbb4efa538ce2f1f2e2c26d176", "section_path": ["变更"], "commit_groups": [], "identity_text": "In ecpg, handle lack of a hostname in the connection parameters properly (Michael Meskes)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.16/changes/030", "db_id": "a9a7c28946aaa4ecbcc57c3da8a77f66", "patch_ids": [], "statement_hash": "9d833eb55bb1b2ab0d6fbbf79549cd22d15720cb59e0aaf7e0d6dd9e7033f94c", "relations": [{"rule": 2, "type": "equivalent", "target": "4afa4aeef213bb9e4d870a5d611ec8ec", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9d833eb55bb1b2ab0d6fbbf79549cd22d15720cb59e0aaf7e0d6dd9e7033f94c"}}, {"rule": 2, "type": "equivalent", "target": "9ceb30ec27e9b5568d6e7846e555febe", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9d833eb55bb1b2ab0d6fbbf79549cd22d15720cb59e0aaf7e0d6dd9e7033f94c"}}, {"rule": 2, "type": "equivalent", "target": "d59fea6d312588389fd5cef530e33d24", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9d833eb55bb1b2ab0d6fbbf79549cd22d15720cb59e0aaf7e0d6dd9e7033f94c"}}], "version": "9.0.16", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "4afa4aeef213bb9e4d870a5d611ec8ec", "kind": "equivalent", "version": "9.3.3", "label": "9.3.3", "title": "在 ecpg 中正确处理连接参数中缺少主机名的情况", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9d833eb55bb1b2ab0d6fbbf79549cd22d15720cb59e0aaf7e0d6dd9e7033f94c"}, "url": "/docs/compare/?release=9.3.3#9.3.3-5be39aaedee6747a", "source_url": "/docs/release/9.3.3/#id-1.11.6.27.5"}, {"db_id": "9ceb30ec27e9b5568d6e7846e555febe", "kind": "equivalent", "version": "9.2.7", "label": "9.2.7", "title": "在 ecpg 中正确处理连接参数中缺少主机名的情况", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9d833eb55bb1b2ab0d6fbbf79549cd22d15720cb59e0aaf7e0d6dd9e7033f94c"}, "url": "/docs/compare/?release=9.2.7#9.2.7-5be39aaedee6747a", "source_url": "/docs/release/9.2.7/#id-1.11.6.22.5"}, {"db_id": "d59fea6d312588389fd5cef530e33d24", "kind": "equivalent", "version": "9.1.12", "label": "9.1.12", "title": "在 ecpg 中正确处理连接参数中缺少主机名的情况", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9d833eb55bb1b2ab0d6fbbf79549cd22d15720cb59e0aaf7e0d6dd9e7033f94c"}, "url": "/docs/compare/?release=9.1.12#9.1.12-5be39aaedee6747a", "source_url": "/docs/release/9.1.12/#id-1.11.6.17.5"}]}, {"id": "9.0.16-7a047f19a28a01d9", "cves": [], "html": "<p>修复 <code>contrib/dblink</code> 连接启动中的性能退化（Joe Conway）</p>\n<p>在客户端和服务器编码一致时避免一次不必要的往返。</p>", "text": "修复 contrib/dblink 连接启动中的性能退化（Joe Conway） 在客户端和服务器编码一致时避免一次不必要的往返。", "title": "修复 contrib/dblink 连接启动中的性能退化", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.16/#id-1.11.6.12.5", "source_hash": "77ea0d7446f5da04de1c791bfa39c65606d48621270de5881bca867ddea17e82", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix performance regression in contrib/dblink connection startup (Joe Conway) Avoid an unnecessary round trip when client and server encodings match.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.16/changes/031", "db_id": "4d74dcc2749f5c61e773a56a14b99eea", "patch_ids": [], "statement_hash": "0028db7ac6c71f3e2d08a3afa4922ca7c475d129e825ed766c3db1bd97df59fd", "relations": [{"rule": 2, "type": "equivalent", "target": "5cb1d3ba7445ae6a191f7724379570f4", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0028db7ac6c71f3e2d08a3afa4922ca7c475d129e825ed766c3db1bd97df59fd"}}, {"rule": 2, "type": "equivalent", "target": "775f3b33cad27f641eef2602e318afa9", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0028db7ac6c71f3e2d08a3afa4922ca7c475d129e825ed766c3db1bd97df59fd"}}, {"rule": 2, "type": "equivalent", "target": "98099b381e1ec49a7b3ab6e5a1ccdfca", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0028db7ac6c71f3e2d08a3afa4922ca7c475d129e825ed766c3db1bd97df59fd"}}], "version": "9.0.16", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "98099b381e1ec49a7b3ab6e5a1ccdfca", "kind": "equivalent", "version": "9.3.3", "label": "9.3.3", "title": "修复 contrib/dblink 连接启动中的性能退化", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0028db7ac6c71f3e2d08a3afa4922ca7c475d129e825ed766c3db1bd97df59fd"}, "url": "/docs/compare/?release=9.3.3#9.3.3-7a047f19a28a01d9", "source_url": "/docs/release/9.3.3/#id-1.11.6.27.5"}, {"db_id": "775f3b33cad27f641eef2602e318afa9", "kind": "equivalent", "version": "9.2.7", "label": "9.2.7", "title": "修复 contrib/dblink 连接启动中的性能退化", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0028db7ac6c71f3e2d08a3afa4922ca7c475d129e825ed766c3db1bd97df59fd"}, "url": "/docs/compare/?release=9.2.7#9.2.7-7a047f19a28a01d9", "source_url": "/docs/release/9.2.7/#id-1.11.6.22.5"}, {"db_id": "5cb1d3ba7445ae6a191f7724379570f4", "kind": "equivalent", "version": "9.1.12", "label": "9.1.12", "title": "修复 contrib/dblink 连接启动中的性能退化", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0028db7ac6c71f3e2d08a3afa4922ca7c475d129e825ed766c3db1bd97df59fd"}, "url": "/docs/compare/?release=9.1.12#9.1.12-7a047f19a28a01d9", "source_url": "/docs/release/9.1.12/#id-1.11.6.17.5"}]}, {"id": "9.0.16-12dc4e09c6994244", "cves": [], "html": "<p>修复 <code>contrib/isn</code> 中 ISMN 值校验位计算错误的问题（Fabien Coelho）</p>", "text": "修复 contrib/isn 中 ISMN 值校验位计算错误的问题（Fabien Coelho）", "title": "修复 contrib/isn 中 ISMN 值校验位计算错误的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.16/#id-1.11.6.12.5", "source_hash": "5010fce2bbc4a133e71f4272940db640ee8638e47352441b7663d7c75885bf10", "section_path": ["变更"], "commit_groups": [], "identity_text": "In contrib/isn, fix incorrect calculation of the check digit for ISMN values (Fabien Coelho)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.16/changes/032", "db_id": "c4ff74999ccd489cec6330b58a38053a", "patch_ids": [], "statement_hash": "e33e100fa66b59aa9020d4165cc261e4014e6efc27ebf95c341cb0c605684be2", "relations": [{"rule": 2, "type": "equivalent", "target": "36f14f8752af3dfa35b013a3705d8f0b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e33e100fa66b59aa9020d4165cc261e4014e6efc27ebf95c341cb0c605684be2"}}, {"rule": 2, "type": "equivalent", "target": "9141a6601bbf463730fe47d298a3829b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e33e100fa66b59aa9020d4165cc261e4014e6efc27ebf95c341cb0c605684be2"}}, {"rule": 2, "type": "equivalent", "target": "fd2cac0ffae045f6179466497f87b84c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e33e100fa66b59aa9020d4165cc261e4014e6efc27ebf95c341cb0c605684be2"}}], "version": "9.0.16", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "fd2cac0ffae045f6179466497f87b84c", "kind": "equivalent", "version": "9.3.3", "label": "9.3.3", "title": "修复 contrib/isn 中 ISMN 值校验位计算错误的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e33e100fa66b59aa9020d4165cc261e4014e6efc27ebf95c341cb0c605684be2"}, "url": "/docs/compare/?release=9.3.3#9.3.3-12dc4e09c6994244", "source_url": "/docs/release/9.3.3/#id-1.11.6.27.5"}, {"db_id": "36f14f8752af3dfa35b013a3705d8f0b", "kind": "equivalent", "version": "9.2.7", "label": "9.2.7", "title": "修复 contrib/isn 中 ISMN 值校验位计算错误的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e33e100fa66b59aa9020d4165cc261e4014e6efc27ebf95c341cb0c605684be2"}, "url": "/docs/compare/?release=9.2.7#9.2.7-12dc4e09c6994244", "source_url": "/docs/release/9.2.7/#id-1.11.6.22.5"}, {"db_id": "9141a6601bbf463730fe47d298a3829b", "kind": "equivalent", "version": "9.1.12", "label": "9.1.12", "title": "修复 contrib/isn 中 ISMN 值校验位计算错误的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e33e100fa66b59aa9020d4165cc261e4014e6efc27ebf95c341cb0c605684be2"}, "url": "/docs/compare/?release=9.1.12#9.1.12-12dc4e09c6994244", "source_url": "/docs/release/9.1.12/#id-1.11.6.17.5"}]}, {"id": "9.0.16-182deaaf76fb1a8c", "cves": [], "html": "<p>确保仅安装客户端代码的流程按文档说明工作（Peter Eisentraut）</p>", "text": "确保仅安装客户端代码的流程按文档说明工作（Peter Eisentraut）", "title": "确保仅安装客户端代码的流程按文档说明工作", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.16/#id-1.11.6.12.5", "source_hash": "f5e23ded6f91426b954fd0ae7245d1691dab2ce19f0cdd9e9c01825c8b994e48", "section_path": ["变更"], "commit_groups": [], "identity_text": "Ensure client-code-only installation procedure works as documented (Peter Eisentraut)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.16/changes/033", "db_id": "c303c36187628f862cebe9630133e7d7", "patch_ids": [], "statement_hash": "982a22ba0c0fc9f39ed5a187a45c862a30663b01fb6f99c6e1e91f02dedab011", "relations": [{"rule": 2, "type": "equivalent", "target": "58bd9f078f3ada69900a6b8cbbe2602d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "982a22ba0c0fc9f39ed5a187a45c862a30663b01fb6f99c6e1e91f02dedab011"}}, {"rule": 2, "type": "equivalent", "target": "c7b6f1186ffd36c215a6e25af968b3aa", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "982a22ba0c0fc9f39ed5a187a45c862a30663b01fb6f99c6e1e91f02dedab011"}}, {"rule": 2, "type": "equivalent", "target": "d17b909c487519e35c91540ad9a14013", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "982a22ba0c0fc9f39ed5a187a45c862a30663b01fb6f99c6e1e91f02dedab011"}}], "version": "9.0.16", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "58bd9f078f3ada69900a6b8cbbe2602d", "kind": "equivalent", "version": "9.3.3", "label": "9.3.3", "title": "确保仅安装客户端代码的流程按文档说明工作", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "982a22ba0c0fc9f39ed5a187a45c862a30663b01fb6f99c6e1e91f02dedab011"}, "url": "/docs/compare/?release=9.3.3#9.3.3-182deaaf76fb1a8c", "source_url": "/docs/release/9.3.3/#id-1.11.6.27.5"}, {"db_id": "d17b909c487519e35c91540ad9a14013", "kind": "equivalent", "version": "9.2.7", "label": "9.2.7", "title": "确保仅安装客户端代码的流程按文档说明工作", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "982a22ba0c0fc9f39ed5a187a45c862a30663b01fb6f99c6e1e91f02dedab011"}, "url": "/docs/compare/?release=9.2.7#9.2.7-182deaaf76fb1a8c", "source_url": "/docs/release/9.2.7/#id-1.11.6.22.5"}, {"db_id": "c7b6f1186ffd36c215a6e25af968b3aa", "kind": "equivalent", "version": "9.1.12", "label": "9.1.12", "title": "确保仅安装客户端代码的流程按文档说明工作", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "982a22ba0c0fc9f39ed5a187a45c862a30663b01fb6f99c6e1e91f02dedab011"}, "url": "/docs/compare/?release=9.1.12#9.1.12-182deaaf76fb1a8c", "source_url": "/docs/release/9.1.12/#id-1.11.6.17.5"}]}, {"id": "9.0.16-49e072b5f4bb2a3c", "cves": [], "html": "<p>在 Mingw 和 Cygwin 构建中，把 <span>libpq</span> DLL 安装到 <code>bin</code> 目录（Andrew Dunstan）</p>\n<p>这与 MSVC 构建长期以来的做法一致。它应该能解决 <span>psql</span> 等程序因找不到 DLL 而无法启动的问题。</p>", "text": "在 Mingw 和 Cygwin 构建中，把 libpq DLL 安装到 bin 目录（Andrew Dunstan） 这与 MSVC 构建长期以来的做法一致。它应该能解决 psql 等程序因找不到 DLL 而无法启动的问题。", "title": "在 Mingw 和 Cygwin 构建中，把 libpq DLL 安装到 bin 目录", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.16/#id-1.11.6.12.5", "source_hash": "f7d5416438508338990fb8613b75ad0fc2fab9ab994a785880e329fcdaab4396", "section_path": ["变更"], "commit_groups": [], "identity_text": "In Mingw and Cygwin builds, install the libpq DLL in the bin directory (Andrew Dunstan) This duplicates what the MSVC build has long done. It should fix problems with programs like psql failing to start because they can't find the DLL.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.16/changes/034", "db_id": "89491f71df83763d94751b95b329fa93", "patch_ids": [], "statement_hash": "3241a1ed0f7d952330d81e639844192b4a36218a5e3e61baa69a488b4eaa444e", "relations": [{"rule": 2, "type": "equivalent", "target": "0302567255deea4d2411fab39bd02c56", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3241a1ed0f7d952330d81e639844192b4a36218a5e3e61baa69a488b4eaa444e"}}, {"rule": 2, "type": "equivalent", "target": "b6021cbbca322e4b8f2cd2271b75b619", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3241a1ed0f7d952330d81e639844192b4a36218a5e3e61baa69a488b4eaa444e"}}, {"rule": 2, "type": "equivalent", "target": "fee9d6a59e850baf90cda45821eecacf", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3241a1ed0f7d952330d81e639844192b4a36218a5e3e61baa69a488b4eaa444e"}}], "version": "9.0.16", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "0302567255deea4d2411fab39bd02c56", "kind": "equivalent", "version": "9.3.3", "label": "9.3.3", "title": "在 Mingw 和 Cygwin 构建中，把 libpq DLL 安装到 bin 目录", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3241a1ed0f7d952330d81e639844192b4a36218a5e3e61baa69a488b4eaa444e"}, "url": "/docs/compare/?release=9.3.3#9.3.3-49e072b5f4bb2a3c", "source_url": "/docs/release/9.3.3/#id-1.11.6.27.5"}, {"db_id": "fee9d6a59e850baf90cda45821eecacf", "kind": "equivalent", "version": "9.2.7", "label": "9.2.7", "title": "在 Mingw 和 Cygwin 构建中，把 libpq DLL 安装到 bin 目录", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3241a1ed0f7d952330d81e639844192b4a36218a5e3e61baa69a488b4eaa444e"}, "url": "/docs/compare/?release=9.2.7#9.2.7-49e072b5f4bb2a3c", "source_url": "/docs/release/9.2.7/#id-1.11.6.22.5"}, {"db_id": "b6021cbbca322e4b8f2cd2271b75b619", "kind": "equivalent", "version": "9.1.12", "label": "9.1.12", "title": "在 Mingw 和 Cygwin 构建中，把 libpq DLL 安装到 bin 目录", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3241a1ed0f7d952330d81e639844192b4a36218a5e3e61baa69a488b4eaa444e"}, "url": "/docs/compare/?release=9.1.12#9.1.12-49e072b5f4bb2a3c", "source_url": "/docs/release/9.1.12/#id-1.11.6.17.5"}]}, {"id": "9.0.16-46874437a5da5287", "cves": [], "html": "<p>在 Cygwin 构建中避免使用已弃用的 <code>dllwrap</code> 工具（Marco Atzeri）</p>", "text": "在 Cygwin 构建中避免使用已弃用的 dllwrap 工具（Marco Atzeri）", "title": "在 Cygwin 构建中避免使用已弃用的 dllwrap 工具", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.16/#id-1.11.6.12.5", "source_hash": "67e90d8a54ad13e94bd6202bf9dc78e93282a45968abc4842ce64cf91bc772f7", "section_path": ["变更"], "commit_groups": [], "identity_text": "Avoid using the deprecated dllwrap tool in Cygwin builds (Marco Atzeri)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.16/changes/035", "db_id": "7edd7a9bd2c1a7a388c02f3986440490", "patch_ids": [], "statement_hash": "3c61ce3593b62f42b978df4e1942c39d39146496e1ad5de2cc847af3ccfc2240", "relations": [{"rule": 2, "type": "equivalent", "target": "1d75a6e6f4b4ab0a85036c110643ff2d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3c61ce3593b62f42b978df4e1942c39d39146496e1ad5de2cc847af3ccfc2240"}}, {"rule": 2, "type": "equivalent", "target": "2fbbffbfcc77e3b6cb58dfd390835926", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3c61ce3593b62f42b978df4e1942c39d39146496e1ad5de2cc847af3ccfc2240"}}, {"rule": 2, "type": "equivalent", "target": "98dd7d1085b2b4e05b5546f35e08703d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3c61ce3593b62f42b978df4e1942c39d39146496e1ad5de2cc847af3ccfc2240"}}], "version": "9.0.16", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "98dd7d1085b2b4e05b5546f35e08703d", "kind": "equivalent", "version": "9.3.3", "label": "9.3.3", "title": "在 Cygwin 构建中避免使用已弃用的 dllwrap 工具", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3c61ce3593b62f42b978df4e1942c39d39146496e1ad5de2cc847af3ccfc2240"}, "url": "/docs/compare/?release=9.3.3#9.3.3-46874437a5da5287", "source_url": "/docs/release/9.3.3/#id-1.11.6.27.5"}, {"db_id": "1d75a6e6f4b4ab0a85036c110643ff2d", "kind": "equivalent", "version": "9.2.7", "label": "9.2.7", "title": "在 Cygwin 构建中避免使用已弃用的 dllwrap 工具", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3c61ce3593b62f42b978df4e1942c39d39146496e1ad5de2cc847af3ccfc2240"}, "url": "/docs/compare/?release=9.2.7#9.2.7-46874437a5da5287", "source_url": "/docs/release/9.2.7/#id-1.11.6.22.5"}, {"db_id": "2fbbffbfcc77e3b6cb58dfd390835926", "kind": "equivalent", "version": "9.1.12", "label": "9.1.12", "title": "在 Cygwin 构建中避免使用已弃用的 dllwrap 工具", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3c61ce3593b62f42b978df4e1942c39d39146496e1ad5de2cc847af3ccfc2240"}, "url": "/docs/compare/?release=9.1.12#9.1.12-46874437a5da5287", "source_url": "/docs/release/9.1.12/#id-1.11.6.17.5"}]}, {"id": "9.0.16-4866656560537de7", "cves": [], "html": "<p>不再生成纯文本的 <code>HISTORY</code> 和 <code>src/test/regress/README</code> 文件（Tom Lane）</p>\n<p>这些文本文件与主文档的 HTML 和 PDF 格式重复。维护它们的麻烦远远超过纯文本格式可能的读者。发行版压缩包仍会包含这些名字的文件，但它们只是提示读者查阅主文档的存根。纯文本 <code>INSTALL</code> 文件仍将维护，因为它可以说还有使用场景。</p>", "text": "不再生成纯文本的 HISTORY 和 src/test/regress/README 文件（Tom Lane） 这些文本文件与主文档的 HTML 和 PDF 格式重复。维护它们的麻烦远远超过纯文本格式可能的读者。发行版压缩包仍会包含这些名字的文件，但它们只是提示读者查阅主文档的存根。纯文本 INSTALL 文件仍将维护，因为它可以说还有使用场景。", "title": "不再生成纯文本的 HISTORY 和 src/test/regress/README 文件", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.16/#id-1.11.6.12.5", "source_hash": "73fd9f7771ad7a52b74eb07cd75d12ee7e46a49abddf81169455f2016c5828d0", "section_path": ["变更"], "commit_groups": [], "identity_text": "Don't generate plain-text HISTORY and src/test/regress/README files anymore (Tom Lane) These text files duplicated the main HTML and PDF documentation formats. The trouble involved in maintaining them greatly outweighs the likely audience for plain-text format. Distribution tarballs will still contain files by these names, but they'll just be stubs directing the reader to consult the main documentation. The plain-text INSTALL file will still be maintained, as there is arguably a use-case for that.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.16/changes/036", "db_id": "8f5abd09149c838e8965a43513b33d71", "patch_ids": [], "statement_hash": "0b9b2c925a6a1efc9e97f2c281f87569fc70e31a2ee312bc51abcee47de1f3ea", "relations": [{"rule": 2, "type": "equivalent", "target": "151af5bd1019d9736efc077efdcd8826", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0b9b2c925a6a1efc9e97f2c281f87569fc70e31a2ee312bc51abcee47de1f3ea"}}, {"rule": 2, "type": "equivalent", "target": "6366e113cf58bb2656b7567937084988", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0b9b2c925a6a1efc9e97f2c281f87569fc70e31a2ee312bc51abcee47de1f3ea"}}, {"rule": 2, "type": "equivalent", "target": "ce2a90a400c4464691f3dd8c089042fb", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0b9b2c925a6a1efc9e97f2c281f87569fc70e31a2ee312bc51abcee47de1f3ea"}}], "version": "9.0.16", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "6366e113cf58bb2656b7567937084988", "kind": "equivalent", "version": "9.3.3", "label": "9.3.3", "title": "不再生成纯文本的 HISTORY 和 src/test/regress/README 文件", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0b9b2c925a6a1efc9e97f2c281f87569fc70e31a2ee312bc51abcee47de1f3ea"}, "url": "/docs/compare/?release=9.3.3#9.3.3-4866656560537de7", "source_url": "/docs/release/9.3.3/#id-1.11.6.27.5"}, {"db_id": "151af5bd1019d9736efc077efdcd8826", "kind": "equivalent", "version": "9.2.7", "label": "9.2.7", "title": "不再生成纯文本的 HISTORY 和 src/test/regress/README 文件", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0b9b2c925a6a1efc9e97f2c281f87569fc70e31a2ee312bc51abcee47de1f3ea"}, "url": "/docs/compare/?release=9.2.7#9.2.7-4866656560537de7", "source_url": "/docs/release/9.2.7/#id-1.11.6.22.5"}, {"db_id": "ce2a90a400c4464691f3dd8c089042fb", "kind": "equivalent", "version": "9.1.12", "label": "9.1.12", "title": "不再生成纯文本的 HISTORY 和 src/test/regress/README 文件", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0b9b2c925a6a1efc9e97f2c281f87569fc70e31a2ee312bc51abcee47de1f3ea"}, "url": "/docs/compare/?release=9.1.12#9.1.12-4866656560537de7", "source_url": "/docs/release/9.1.12/#id-1.11.6.17.5"}]}, {"id": "9.0.16-a88b158de6f55ce2", "cves": [], "html": "<p>把时区数据文件更新为 <span>tzdata</span> 版本 2013i（约旦的夏令时法规变更以及古巴的历史变更）。</p>\n<p>此外，时区 <code>Asia/Riyadh87</code>、<code>Asia/Riyadh88</code> 和 <code>Asia/Riyadh89</code> 已被移除，因为 IANA 不再维护它们，而且它们从未代表过实际的民用计时实践。</p>", "text": "把时区数据文件更新为 tzdata 版本 2013i（约旦的夏令时法规变更以及古巴的历史变更）。 此外，时区 Asia/Riyadh87、Asia/Riyadh88 和 Asia/Riyadh89 已被移除，因为 IANA 不再维护它们，而且它们从未代表过实际的民用计时实践。", "title": "把时区数据文件更新为 tzdata 版本 2013i（约旦的夏令时法规变更以及古巴的历史变更）。", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.16/#id-1.11.6.12.5", "source_hash": "2887e332c6e809ef93d1c50205f6bf370b1ba41b7a6fb50be666b8652b03e36a", "section_path": ["变更"], "commit_groups": [], "identity_text": "Update time zone data files to tzdata release 2013i for DST law changes in Jordan and historical changes in Cuba. In addition, the zones Asia/Riyadh87, Asia/Riyadh88, and Asia/Riyadh89 have been removed, as they are no longer maintained by IANA, and never represented actual civil timekeeping practice.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.16/changes/037", "db_id": "abe89ecfd07e3e8b4e40f90e03f43376", "patch_ids": [], "statement_hash": "69cd2c066d4e1bcf121caec87c33486ecdcf16c86786704c47ba90e8a588de37", "relations": [{"rule": 2, "type": "equivalent", "target": "4e888fdfc2f702951597a37abbd78ad8", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "69cd2c066d4e1bcf121caec87c33486ecdcf16c86786704c47ba90e8a588de37"}}, {"rule": 2, "type": "equivalent", "target": "67da9ec3694c31e9359907b451b82be8", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "69cd2c066d4e1bcf121caec87c33486ecdcf16c86786704c47ba90e8a588de37"}}, {"rule": 2, "type": "equivalent", "target": "6f7af8ff0b09719347f315962ff9c3e4", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "69cd2c066d4e1bcf121caec87c33486ecdcf16c86786704c47ba90e8a588de37"}}], "version": "9.0.16", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "6f7af8ff0b09719347f315962ff9c3e4", "kind": "equivalent", "version": "9.3.3", "label": "9.3.3", "title": "把时区数据文件更新为 tzdata 版本 2013i，以反映约旦的夏令时法规变更和古巴的历史变更。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "69cd2c066d4e1bcf121caec87c33486ecdcf16c86786704c47ba90e8a588de37"}, "url": "/docs/compare/?release=9.3.3#9.3.3-1f3aa232eb6ba7c2", "source_url": "/docs/release/9.3.3/#id-1.11.6.27.5"}, {"db_id": "67da9ec3694c31e9359907b451b82be8", "kind": "equivalent", "version": "9.2.7", "label": "9.2.7", "title": "把时区数据文件更新为 tzdata 版本 2013i for DST law changes in Jordan and historical changes in Cuba。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "69cd2c066d4e1bcf121caec87c33486ecdcf16c86786704c47ba90e8a588de37"}, "url": "/docs/compare/?release=9.2.7#9.2.7-c3663420a561a922", "source_url": "/docs/release/9.2.7/#id-1.11.6.22.5"}, {"db_id": "4e888fdfc2f702951597a37abbd78ad8", "kind": "equivalent", "version": "9.1.12", "label": "9.1.12", "title": "把时区数据文件更新为 tzdata 版本 2013i for DST law changes in Jordan and historical changes in Cuba。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "69cd2c066d4e1bcf121caec87c33486ecdcf16c86786704c47ba90e8a588de37"}, "url": "/docs/compare/?release=9.1.12#9.1.12-c3663420a561a922", "source_url": "/docs/release/9.1.12/#id-1.11.6.17.5"}]}]}, {"date": "2013-12-05", "build": "9.0.15", "major": "9.0", "minor": 15, "manual": "9.0", "status": "stable", "doc_git": "", "version": "9.0.15", "eol_date": "2015-10-08", "date_text": "2013-12-05", "supported": false, "manual_url": "/docs/9.0/release-9-0-15.html", "source_url": "/docs/release/9.0.15/", "entry_count": 16, "placeholder": false, "content_hash": "839c3b5d3febe4ff743877e8fbb4efeb8d57edc9543c6c698bd772a2d21f8a5e", "manual_build": "9.0.23", "source_as_of": "", "changes_count": 16, "doc_loaded_at": "2026-09-26T02:56:48.570247", "migration_html": "<p>对于运行 9.0.X 的用户，不需要进行转储/恢复。</p>\n<p>不过，本版本纠正了若干潜在的数据损坏问题。请参见下面前三条变更日志，以确认你的安装是否受影响以及可以采取什么措施。</p>\n<p>不过，如果你是从早于 9.0.13 的版本升级，请参见<a href=\"/docs/9.0/release-9-0-13.html\" title=\"E.11. 版本 9.0.13\">第 E.11 节</a>。</p>", "compatibility_count": 0, "label": "9.0.15", "status_label": "历史版本", "eol": "2015-10-08", "age_days": 4682, "support_days": -4010, "entries": [{"id": "9.0.15-abf63764d111cc9f", "cves": [], "html": "<p>修复 <code>VACUUM</code> 判断是否可以更新 <code>relfrozenxid</code> 的测试（Andres Freund）</p>\n<p>某些情况下，<code>VACUUM</code>（手工或自动）可能错误地推进表的 <code>relfrozenxid</code> 值，使元组逃过冻结，导致这些行在经过 2^31 个事务后变得不可见。由于需要多次错误推进才会发生实际丢失，数据丢失的概率相当低，但并非为零。从 9.0.4、8.4.8 或更早版本升级的用户不受影响，但之后的所有版本都包含该缺陷。</p>\n<p>升级后，在把 <a href=\"/docs/9.0/runtime-config-client.html#GUC-VACUUM-FREEZE-TABLE-AGE\"><code>vacuum_freeze_table_age</code></a> 设为零的情况下对所有数据库中的所有表执行清理，可以缓解此问题。这会修复任何潜伏的损坏，但无法修复所有既有的数据错误。不过，如果安装在其生命周期内执行的事务少于 2^31 个更新（可用 <code>SELECT txid_current() &lt; 2^31</code> 检查），则在执行此清理之后即可认为该安装是安全的。</p>", "text": "修复 VACUUM 判断是否可以更新 relfrozenxid 的测试（Andres Freund） 某些情况下，VACUUM（手工或自动）可能错误地推进表的 relfrozenxid 值，使元组逃过冻结，导致这些行在经过 2^31 个事务后变得不可见。由于需要多次错误推进才会发生实际丢失，数据丢失的概率相当低，但并非为零。从 9.0.4、8.4.8 或更早版本升级的用户不受影响，但之后的所有版本都包含该缺陷。 升级后，在把 vacuum_freeze_table_age 设为零的情况下对所有数据库中的所有表执行清理，可以缓解此问题。这会修复任何潜伏的损坏，但无法修复所有既有的数据错误。不过，如果安装在其生命周期内执行的事务少于 2^31 个更新（可用 SELECT txid_current() < 2^31 检查），则在执行此清理之后即可认为该安装是安全的。", "title": "修复 VACUUM 判断是否可以更新 relfrozenxid 的测试", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.15/#id-1.11.6.13.5", "source_hash": "aba582310e57f160775cfb88ea5826f35e1f770a0a02bd3acef4a7f1a19e5882", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix VACUUM's tests to see whether it can update relfrozenxid (Andres Freund) In some cases VACUUM (either manual or autovacuum) could incorrectly advance a table's relfrozenxid value, allowing tuples to escape freezing, causing those rows to become invisible once 2^31 transactions have elapsed. The probability of data loss is fairly low since multiple incorrect advancements would need to happen before actual loss occurs, but it's not zero. Users upgrading from releases 9.0.4 or 8.4.8 or earlier are not affected, but all later versions contain the bug. The issue can be ameliorated by, after upgrading, vacuuming all tables in all databases while having vacuum_freeze_table_age set to zero. This will fix any latent corruption but will not be able to fix all pre-existing data errors. However, an installation can be presumed safe after performing this vacuuming if it has executed fewer than 2^31 update transactions in its lifetime (check this with SELECT txid_current() < 2^31).", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.15/changes/001", "db_id": "a6b5a817ba5b5466ae5cfa6d7064f0ab", "patch_ids": [], "statement_hash": "299f149e65a27b314c2568c1919b115f83c0ceea2c9c9d8cced825857a963f2a", "relations": [{"rule": 2, "type": "equivalent", "target": "35b964b841e899db7315c033dbcc2720", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "299f149e65a27b314c2568c1919b115f83c0ceea2c9c9d8cced825857a963f2a"}}], "version": "9.0.15", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "35b964b841e899db7315c033dbcc2720", "kind": "equivalent", "version": "9.1.11", "label": "9.1.11", "title": "修复 VACUUM 判断是否可以更新 relfrozenxid 的测试", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "299f149e65a27b314c2568c1919b115f83c0ceea2c9c9d8cced825857a963f2a"}, "url": "/docs/compare/?release=9.1.11#9.1.11-abf63764d111cc9f", "source_url": "/docs/release/9.1.11/#id-1.11.6.18.5"}]}, {"id": "9.0.15-75430459b83c6fcc", "cves": [], "html": "<p>修复热备启动期间 <code>pg_clog</code> 和 <code>pg_subtrans</code> 的初始化（Andres Freund、Heikki Linnakangas）</p>\n<p>这一缺陷会把已提交事务标记为未提交，从而在备库开始接受热备查询的那一刻造成数据丢失。除非备库启动时主库自上次检查点以来执行了大量更新事务，否则这种损坏的可能性很小。症状包括行缺失、本应删除的行仍可见，以及已更新行的过时版本与新版本同时可见。</p>\n<p>该缺陷是在 9.3.0、9.2.5、9.1.10 和 9.0.14 版本中引入的。只运行过更早版本的备库没有风险。建议曾运行过任何含缺陷版本的备库在升级后从主库重新克隆（例如用新的基础备份）。</p>", "text": "修复热备启动期间 pg_clog 和 pg_subtrans 的初始化（Andres Freund、Heikki Linnakangas） 这一缺陷会把已提交事务标记为未提交，从而在备库开始接受热备查询的那一刻造成数据丢失。除非备库启动时主库自上次检查点以来执行了大量更新事务，否则这种损坏的可能性很小。症状包括行缺失、本应删除的行仍可见，以及已更新行的过时版本与新版本同时可见。 该缺陷是在 9.3.0、9.2.5、9.1.10 和 9.0.14 版本中引入的。只运行过更早版本的备库没有风险。建议曾运行过任何含缺陷版本的备库在升级后从主库重新克隆（例如用新的基础备份）。", "title": "修复热备启动期间 pg_clog 和 pg_subtrans 的初始化", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.15/#id-1.11.6.13.5", "source_hash": "6dae40bcb201811047a319c5216ac6bec23e8131658441c15860b671bc23ed18", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix initialization of pg_clog and pg_subtrans during hot standby startup (Andres Freund, Heikki Linnakangas) This bug can cause data loss on standby servers at the moment they start to accept hot-standby queries, by marking committed transactions as uncommitted. The likelihood of such corruption is small unless, at the time of standby startup, the primary server has executed many updating transactions since its last checkpoint. Symptoms include missing rows, rows that should have been deleted being still visible, and obsolete versions of updated rows being still visible alongside their newer versions. This bug was introduced in versions 9.3.0, 9.2.5, 9.1.10, and 9.0.14. Standby servers that have only been running earlier releases are not at risk. It's recommended that standby servers that have ever run any of the buggy releases be re-cloned from the primary (e.g., with a new base backup) after upgrading.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.15/changes/002", "db_id": "be0f921e1ac97bf95d24f7ccbbfc3cd4", "patch_ids": [], "statement_hash": "4611244681fcbdfbcafaa4c61bd63516f6a7f240970fa8e7ac1910a4cda32913", "relations": [{"rule": 2, "type": "equivalent", "target": "0ef1879d1e53afd7f1388c2bfb67b1d4", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4611244681fcbdfbcafaa4c61bd63516f6a7f240970fa8e7ac1910a4cda32913"}}, {"rule": 2, "type": "equivalent", "target": "4354cc947d1a9e224823cb48f97baa29", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4611244681fcbdfbcafaa4c61bd63516f6a7f240970fa8e7ac1910a4cda32913"}}, {"rule": 2, "type": "equivalent", "target": "901efd8aebaf77a6339dc8eb68def63e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4611244681fcbdfbcafaa4c61bd63516f6a7f240970fa8e7ac1910a4cda32913"}}], "version": "9.0.15", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "4354cc947d1a9e224823cb48f97baa29", "kind": "equivalent", "version": "9.3.2", "label": "9.3.2", "title": "修复热备启动期间 pg_clog 和 pg_subtrans 的初始化", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4611244681fcbdfbcafaa4c61bd63516f6a7f240970fa8e7ac1910a4cda32913"}, "url": "/docs/compare/?release=9.3.2#9.3.2-75430459b83c6fcc", "source_url": "/docs/release/9.3.2/#id-1.11.6.28.5"}, {"db_id": "901efd8aebaf77a6339dc8eb68def63e", "kind": "equivalent", "version": "9.2.6", "label": "9.2.6", "title": "修复热备启动期间 pg_clog 和 pg_subtrans 的初始化", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4611244681fcbdfbcafaa4c61bd63516f6a7f240970fa8e7ac1910a4cda32913"}, "url": "/docs/compare/?release=9.2.6#9.2.6-75430459b83c6fcc", "source_url": "/docs/release/9.2.6/#id-1.11.6.23.5"}, {"db_id": "0ef1879d1e53afd7f1388c2bfb67b1d4", "kind": "equivalent", "version": "9.1.11", "label": "9.1.11", "title": "修复热备启动期间 pg_clog 和 pg_subtrans 的初始化", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4611244681fcbdfbcafaa4c61bd63516f6a7f240970fa8e7ac1910a4cda32913"}, "url": "/docs/compare/?release=9.1.11#9.1.11-75430459b83c6fcc", "source_url": "/docs/release/9.1.11/#id-1.11.6.18.5"}]}, {"id": "9.0.15-3c68846981b0ce05", "cves": [], "html": "<p>在 WAL 重放期间截断 <code>pg_multixact</code> 内容（Andres Freund）</p>\n<p>这避免了备库中磁盘空间消耗不断增加。</p>", "text": "在 WAL 重放期间截断 pg_multixact 内容（Andres Freund） 这避免了备库中磁盘空间消耗不断增加。", "title": "在 WAL 重放期间截断 pg_multixact 内容", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.15/#id-1.11.6.13.5", "source_hash": "1f0e1d3f4baab9df0a9d0dd015b5991613eb990edad968ec1234a9d36ac3aa2e", "section_path": ["变更"], "commit_groups": [], "identity_text": "Truncate pg_multixact contents during WAL replay (Andres Freund) This avoids ever-increasing disk space consumption in standby servers.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.15/changes/003", "db_id": "bba9adb4cf79576fe7660d52aac70f83", "patch_ids": [], "statement_hash": "29faa1b46cf68bb6bb0936f1efff9ff5cbf3126d3a02443747732ea2953a8938", "relations": [{"rule": 2, "type": "equivalent", "target": "2ab09ab16fc74bcd964e8dbf67d0b5a0", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "29faa1b46cf68bb6bb0936f1efff9ff5cbf3126d3a02443747732ea2953a8938"}}, {"rule": 2, "type": "equivalent", "target": "714c9a65006f2669cc88af918eeedf2d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "29faa1b46cf68bb6bb0936f1efff9ff5cbf3126d3a02443747732ea2953a8938"}}, {"rule": 2, "type": "equivalent", "target": "cd2378a1b741e9efcd50ec64673f309e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "29faa1b46cf68bb6bb0936f1efff9ff5cbf3126d3a02443747732ea2953a8938"}}], "version": "9.0.15", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "cd2378a1b741e9efcd50ec64673f309e", "kind": "equivalent", "version": "9.3.2", "label": "9.3.2", "title": "在 WAL 重放期间截断 pg_multixact 内容", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "29faa1b46cf68bb6bb0936f1efff9ff5cbf3126d3a02443747732ea2953a8938"}, "url": "/docs/compare/?release=9.3.2#9.3.2-3c68846981b0ce05", "source_url": "/docs/release/9.3.2/#id-1.11.6.28.5"}, {"db_id": "714c9a65006f2669cc88af918eeedf2d", "kind": "equivalent", "version": "9.2.6", "label": "9.2.6", "title": "在 WAL 重放期间截断 pg_multixact 内容", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "29faa1b46cf68bb6bb0936f1efff9ff5cbf3126d3a02443747732ea2953a8938"}, "url": "/docs/compare/?release=9.2.6#9.2.6-3c68846981b0ce05", "source_url": "/docs/release/9.2.6/#id-1.11.6.23.5"}, {"db_id": "2ab09ab16fc74bcd964e8dbf67d0b5a0", "kind": "equivalent", "version": "9.1.11", "label": "9.1.11", "title": "在 WAL 重放期间截断 pg_multixact 内容", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "29faa1b46cf68bb6bb0936f1efff9ff5cbf3126d3a02443747732ea2953a8938"}, "url": "/docs/compare/?release=9.1.11#9.1.11-3c68846981b0ce05", "source_url": "/docs/release/9.1.11/#id-1.11.6.18.5"}]}, {"id": "9.0.15-8f37e9445b864c31", "cves": [], "html": "<p>修复 GIN 索引 posting 树页面删除中的竞态条件（Heikki Linnakangas）</p>\n<p>这可能导致瞬时的错误结果或查询失败。</p>", "text": "修复 GIN 索引 posting 树页面删除中的竞态条件（Heikki Linnakangas） 这可能导致瞬时的错误结果或查询失败。", "title": "修复 GIN 索引 posting 树页面删除中的竞态条件", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.15/#id-1.11.6.13.5", "source_hash": "91c8de29d0767b8dc6411f04e599bafa6ec014779ade9cf26fab54b16b59c731", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix race condition in GIN index posting tree page deletion (Heikki Linnakangas) This could lead to transient wrong answers or query failures.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.15/changes/004", "db_id": "789d7ff24e2fea7a05dbdfb17d12c20d", "patch_ids": [], "statement_hash": "361069838280eea16e9ef539e7627e35249581b15690457108420218bf8de9a0", "relations": [{"rule": 2, "type": "equivalent", "target": "96fd2c00f600bb1490cdeef970027a27", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "361069838280eea16e9ef539e7627e35249581b15690457108420218bf8de9a0"}}, {"rule": 2, "type": "equivalent", "target": "c05264daf32f008727a03c0e9d1634dc", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "361069838280eea16e9ef539e7627e35249581b15690457108420218bf8de9a0"}}, {"rule": 2, "type": "equivalent", "target": "e61288b4d8d31e702a099b6c442953d6", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "361069838280eea16e9ef539e7627e35249581b15690457108420218bf8de9a0"}}], "version": "9.0.15", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "c05264daf32f008727a03c0e9d1634dc", "kind": "equivalent", "version": "9.3.2", "label": "9.3.2", "title": "修复 GIN 索引 posting 树页面删除中的竞态条件", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "361069838280eea16e9ef539e7627e35249581b15690457108420218bf8de9a0"}, "url": "/docs/compare/?release=9.3.2#9.3.2-8f37e9445b864c31", "source_url": "/docs/release/9.3.2/#id-1.11.6.28.5"}, {"db_id": "e61288b4d8d31e702a099b6c442953d6", "kind": "equivalent", "version": "9.2.6", "label": "9.2.6", "title": "修复 GIN 索引 posting 树页面删除中的竞态条件", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "361069838280eea16e9ef539e7627e35249581b15690457108420218bf8de9a0"}, "url": "/docs/compare/?release=9.2.6#9.2.6-8f37e9445b864c31", "source_url": "/docs/release/9.2.6/#id-1.11.6.23.5"}, {"db_id": "96fd2c00f600bb1490cdeef970027a27", "kind": "equivalent", "version": "9.1.11", "label": "9.1.11", "title": "修复 GIN 索引 posting 树页面删除中的竞态条件", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "361069838280eea16e9ef539e7627e35249581b15690457108420218bf8de9a0"}, "url": "/docs/compare/?release=9.1.11#9.1.11-8f37e9445b864c31", "source_url": "/docs/release/9.1.11/#id-1.11.6.18.5"}]}, {"id": "9.0.15-121ab8a03eaa5bea", "cves": [], "html": "<p>避免展平 <code>SELECT</code> 列表中包含包裹在子 <code>SELECT</code> 中的易变函数的子查询（Tom Lane）</p>\n<p>这避免了因易变函数被额外求值而导致的意外结果。</p>", "text": "避免展平 SELECT 列表中包含包裹在子 SELECT 中的易变函数的子查询（Tom Lane） 这避免了因易变函数被额外求值而导致的意外结果。", "title": "避免展平 SELECT 列表中包含包裹在子 SELECT 中的易变函数的子查询", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.15/#id-1.11.6.13.5", "source_hash": "36f673840f0b68373a4bec3cac1343cbc17356df61e0c217db78552e5897858d", "section_path": ["变更"], "commit_groups": [], "identity_text": "Avoid flattening a subquery whose SELECT list contains a volatile function wrapped inside a sub-SELECT (Tom Lane) This avoids unexpected results due to extra evaluations of the volatile function.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.15/changes/005", "db_id": "097f89eb3d95a428d6d9eb09740567b8", "patch_ids": [], "statement_hash": "f1ea247a1af9ea49cc4c1f3f7800a33edd46ef276b227c080eb986bde425a4bb", "relations": [{"rule": 2, "type": "equivalent", "target": "df73986505d42b26f2af65e7291f2c03", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f1ea247a1af9ea49cc4c1f3f7800a33edd46ef276b227c080eb986bde425a4bb"}}, {"rule": 2, "type": "equivalent", "target": "e9f8dfb4a813cd5095b24d286270230d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f1ea247a1af9ea49cc4c1f3f7800a33edd46ef276b227c080eb986bde425a4bb"}}, {"rule": 2, "type": "equivalent", "target": "f9bdc2a201976a72575aab9fdbdd57b1", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f1ea247a1af9ea49cc4c1f3f7800a33edd46ef276b227c080eb986bde425a4bb"}}], "version": "9.0.15", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "df73986505d42b26f2af65e7291f2c03", "kind": "equivalent", "version": "9.3.2", "label": "9.3.2", "title": "避免展平 SELECT 列表中包含包裹在子 SELECT 中的易变函数的子查询", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f1ea247a1af9ea49cc4c1f3f7800a33edd46ef276b227c080eb986bde425a4bb"}, "url": "/docs/compare/?release=9.3.2#9.3.2-121ab8a03eaa5bea", "source_url": "/docs/release/9.3.2/#id-1.11.6.28.5"}, {"db_id": "f9bdc2a201976a72575aab9fdbdd57b1", "kind": "equivalent", "version": "9.2.6", "label": "9.2.6", "title": "避免展平 SELECT 列表中包含包裹在子 SELECT 中的易变函数的子查询", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f1ea247a1af9ea49cc4c1f3f7800a33edd46ef276b227c080eb986bde425a4bb"}, "url": "/docs/compare/?release=9.2.6#9.2.6-121ab8a03eaa5bea", "source_url": "/docs/release/9.2.6/#id-1.11.6.23.5"}, {"db_id": "e9f8dfb4a813cd5095b24d286270230d", "kind": "equivalent", "version": "9.1.11", "label": "9.1.11", "title": "避免展平 SELECT 列表中包含包裹在子 SELECT 中的易变函数的子查询", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f1ea247a1af9ea49cc4c1f3f7800a33edd46ef276b227c080eb986bde425a4bb"}, "url": "/docs/compare/?release=9.1.11#9.1.11-121ab8a03eaa5bea", "source_url": "/docs/release/9.1.11/#id-1.11.6.18.5"}]}, {"id": "9.0.15-2cfc143b9d165255", "cves": [], "html": "<p>修复规划器对外连接中嵌套的非简单变量子查询输出的处理（Tom Lane）</p>\n<p>这一错误可能为涉及 <code>JOIN</code> 语法中多级子查询的查询生成错误的计划。</p>", "text": "修复规划器对外连接中嵌套的非简单变量子查询输出的处理（Tom Lane） 这一错误可能为涉及 JOIN 语法中多级子查询的查询生成错误的计划。", "title": "修复规划器对外连接中嵌套的非简单变量子查询输出的处理", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.15/#id-1.11.6.13.5", "source_hash": "ada1ec4664f7285e5b564fd30bda2445696ab35d571a477e36c3f2f7fecc4f3d", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix planner's processing of non-simple-variable subquery outputs nested within outer joins (Tom Lane) This error could lead to incorrect plans for queries involving multiple levels of subqueries within JOIN syntax.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.15/changes/006", "db_id": "bfd610ae371a5c43bd8012820ecdbb5c", "patch_ids": [], "statement_hash": "eedf8e5c1fb5dfd7ba629eddc6543b5925c6245cd1a3b2fed4c345035f8a955f", "relations": [{"rule": 2, "type": "equivalent", "target": "83db0c7067a3dd635b0fc421851c89f0", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "eedf8e5c1fb5dfd7ba629eddc6543b5925c6245cd1a3b2fed4c345035f8a955f"}}, {"rule": 2, "type": "equivalent", "target": "e43436cc1913184a43329fe231db587c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "eedf8e5c1fb5dfd7ba629eddc6543b5925c6245cd1a3b2fed4c345035f8a955f"}}, {"rule": 2, "type": "equivalent", "target": "eb5dca2b440ae228ba854c17897dc4be", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "eedf8e5c1fb5dfd7ba629eddc6543b5925c6245cd1a3b2fed4c345035f8a955f"}}], "version": "9.0.15", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "83db0c7067a3dd635b0fc421851c89f0", "kind": "equivalent", "version": "9.3.2", "label": "9.3.2", "title": "修复规划器对外连接中嵌套的非简单变量子查询输出的处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "eedf8e5c1fb5dfd7ba629eddc6543b5925c6245cd1a3b2fed4c345035f8a955f"}, "url": "/docs/compare/?release=9.3.2#9.3.2-2cfc143b9d165255", "source_url": "/docs/release/9.3.2/#id-1.11.6.28.5"}, {"db_id": "eb5dca2b440ae228ba854c17897dc4be", "kind": "equivalent", "version": "9.2.6", "label": "9.2.6", "title": "修复规划器对外连接中嵌套的非简单变量子查询输出的处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "eedf8e5c1fb5dfd7ba629eddc6543b5925c6245cd1a3b2fed4c345035f8a955f"}, "url": "/docs/compare/?release=9.2.6#9.2.6-2cfc143b9d165255", "source_url": "/docs/release/9.2.6/#id-1.11.6.23.5"}, {"db_id": "e43436cc1913184a43329fe231db587c", "kind": "equivalent", "version": "9.1.11", "label": "9.1.11", "title": "修复规划器对外连接中嵌套的非简单变量子查询输出的处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "eedf8e5c1fb5dfd7ba629eddc6543b5925c6245cd1a3b2fed4c345035f8a955f"}, "url": "/docs/compare/?release=9.1.11#9.1.11-2cfc143b9d165255", "source_url": "/docs/release/9.1.11/#id-1.11.6.18.5"}]}, {"id": "9.0.15-79374173a62be50b", "cves": [], "html": "<p>修复临时文件被过早删除的问题（Andres Freund）</p>", "text": "修复临时文件被过早删除的问题（Andres Freund）", "title": "修复临时文件被过早删除的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.15/#id-1.11.6.13.5", "source_hash": "e5e91dd3a5106b0714f7cf93ae357cce871b0b72eb44ebc2466cb59f7abc8403", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix premature deletion of temporary files (Andres Freund)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.15/changes/007", "db_id": "0215f444a73bfa2ac623668492cbf9da", "patch_ids": [], "statement_hash": "3119a2cb4319db76d2a1881224b309ca85f6beeebce5a68d55b6318fc5c29355", "relations": [{"rule": 2, "type": "equivalent", "target": "60928172601d5b6dda085390441c12fa", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3119a2cb4319db76d2a1881224b309ca85f6beeebce5a68d55b6318fc5c29355"}}, {"rule": 2, "type": "equivalent", "target": "794c783639e28fe65ce37ad20e41d06f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3119a2cb4319db76d2a1881224b309ca85f6beeebce5a68d55b6318fc5c29355"}}, {"rule": 2, "type": "equivalent", "target": "eea4af0d1602c8ce09fc3f6cf6e9923f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3119a2cb4319db76d2a1881224b309ca85f6beeebce5a68d55b6318fc5c29355"}}], "version": "9.0.15", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "794c783639e28fe65ce37ad20e41d06f", "kind": "equivalent", "version": "9.3.2", "label": "9.3.2", "title": "修复临时文件被过早删除的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3119a2cb4319db76d2a1881224b309ca85f6beeebce5a68d55b6318fc5c29355"}, "url": "/docs/compare/?release=9.3.2#9.3.2-79374173a62be50b", "source_url": "/docs/release/9.3.2/#id-1.11.6.28.5"}, {"db_id": "60928172601d5b6dda085390441c12fa", "kind": "equivalent", "version": "9.2.6", "label": "9.2.6", "title": "修复临时文件被过早删除的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3119a2cb4319db76d2a1881224b309ca85f6beeebce5a68d55b6318fc5c29355"}, "url": "/docs/compare/?release=9.2.6#9.2.6-79374173a62be50b", "source_url": "/docs/release/9.2.6/#id-1.11.6.23.5"}, {"db_id": "eea4af0d1602c8ce09fc3f6cf6e9923f", "kind": "equivalent", "version": "9.1.11", "label": "9.1.11", "title": "修复临时文件被过早删除的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3119a2cb4319db76d2a1881224b309ca85f6beeebce5a68d55b6318fc5c29355"}, "url": "/docs/compare/?release=9.1.11#9.1.11-79374173a62be50b", "source_url": "/docs/release/9.1.11/#id-1.11.6.18.5"}]}, {"id": "9.0.15-33766060b5f495ac", "cves": [], "html": "<p>修复规则打印中可能读取越过内存末尾的问题（Peter Eisentraut）</p>", "text": "修复规则打印中可能读取越过内存末尾的问题（Peter Eisentraut）", "title": "修复规则打印中可能读取越过内存末尾的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.15/#id-1.11.6.13.5", "source_hash": "b7e02dbd5dcef5e0a25f1d8c9c6836cfec403ca5c343aa0aedf299f85ce04093", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix possible read past end of memory in rule printing (Peter Eisentraut)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.15/changes/008", "db_id": "ced8771b6066f828b8d7a8a2dfbfed08", "patch_ids": [], "statement_hash": "5e488ca5a20725bf6dbab20d569a58aa64ec0fa9a96803f768b8335050d79762", "relations": [{"rule": 2, "type": "equivalent", "target": "52a1895a8d0fca9d245787982a39c754", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5e488ca5a20725bf6dbab20d569a58aa64ec0fa9a96803f768b8335050d79762"}}, {"rule": 2, "type": "equivalent", "target": "5f850f0c90891244795995e7648334db", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5e488ca5a20725bf6dbab20d569a58aa64ec0fa9a96803f768b8335050d79762"}}, {"rule": 2, "type": "equivalent", "target": "faa18fe51c0b4eebc64a07aeca34c7e2", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5e488ca5a20725bf6dbab20d569a58aa64ec0fa9a96803f768b8335050d79762"}}], "version": "9.0.15", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "52a1895a8d0fca9d245787982a39c754", "kind": "equivalent", "version": "9.3.2", "label": "9.3.2", "title": "修复规则打印中可能读取越过内存末尾的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5e488ca5a20725bf6dbab20d569a58aa64ec0fa9a96803f768b8335050d79762"}, "url": "/docs/compare/?release=9.3.2#9.3.2-33766060b5f495ac", "source_url": "/docs/release/9.3.2/#id-1.11.6.28.5"}, {"db_id": "faa18fe51c0b4eebc64a07aeca34c7e2", "kind": "equivalent", "version": "9.2.6", "label": "9.2.6", "title": "修复规则打印中可能读取越过内存末尾的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5e488ca5a20725bf6dbab20d569a58aa64ec0fa9a96803f768b8335050d79762"}, "url": "/docs/compare/?release=9.2.6#9.2.6-33766060b5f495ac", "source_url": "/docs/release/9.2.6/#id-1.11.6.23.5"}, {"db_id": "5f850f0c90891244795995e7648334db", "kind": "equivalent", "version": "9.1.11", "label": "9.1.11", "title": "修复规则打印中可能读取越过内存末尾的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5e488ca5a20725bf6dbab20d569a58aa64ec0fa9a96803f768b8335050d79762"}, "url": "/docs/compare/?release=9.1.11#9.1.11-33766060b5f495ac", "source_url": "/docs/release/9.1.11/#id-1.11.6.18.5"}]}, {"id": "9.0.15-f956ca6666def5ba", "cves": [], "html": "<p>修复 <code>int2vector</code> 和 <code>oidvector</code> 值的数组切片（Tom Lane）</p>\n<p>这类表达式现在会被隐式提升为常规的 <code>int2</code> 或 <code>oid</code> 数组。</p>", "text": "修复 int2vector 和 oidvector 值的数组切片（Tom Lane） 这类表达式现在会被隐式提升为常规的 int2 或 oid 数组。", "title": "修复 int2vector 和 oidvector 值的数组切片", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.15/#id-1.11.6.13.5", "source_hash": "61fb352f48de36bbce9e4cb28c4b4585b2bae1aa1de7eaeb58693792f2e64d20", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix array slicing of int2vector and oidvector values (Tom Lane) Expressions of this kind are now implicitly promoted to regular int2 or oid arrays.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.15/changes/009", "db_id": "54de529e59b6fc81b5ec0feceb0e20de", "patch_ids": [], "statement_hash": "77021f1107eec1c16ba347fb52395459b31a1b7c467927781e0dcbdef259a31e", "relations": [{"rule": 2, "type": "equivalent", "target": "13f4e2e1a5cc3f7f7d5cd9798bd393be", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "77021f1107eec1c16ba347fb52395459b31a1b7c467927781e0dcbdef259a31e"}}, {"rule": 2, "type": "equivalent", "target": "6a8247adb515ac81561744f033628349", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "77021f1107eec1c16ba347fb52395459b31a1b7c467927781e0dcbdef259a31e"}}, {"rule": 2, "type": "equivalent", "target": "9be7bb1fc5e28d74cd34bda19911fca0", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "77021f1107eec1c16ba347fb52395459b31a1b7c467927781e0dcbdef259a31e"}}], "version": "9.0.15", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "13f4e2e1a5cc3f7f7d5cd9798bd393be", "kind": "equivalent", "version": "9.3.2", "label": "9.3.2", "title": "修复 int2vector 和 oidvector 值的数组切片", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "77021f1107eec1c16ba347fb52395459b31a1b7c467927781e0dcbdef259a31e"}, "url": "/docs/compare/?release=9.3.2#9.3.2-f956ca6666def5ba", "source_url": "/docs/release/9.3.2/#id-1.11.6.28.5"}, {"db_id": "9be7bb1fc5e28d74cd34bda19911fca0", "kind": "equivalent", "version": "9.2.6", "label": "9.2.6", "title": "修复 int2vector 和 oidvector 值的数组切片", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "77021f1107eec1c16ba347fb52395459b31a1b7c467927781e0dcbdef259a31e"}, "url": "/docs/compare/?release=9.2.6#9.2.6-f956ca6666def5ba", "source_url": "/docs/release/9.2.6/#id-1.11.6.23.5"}, {"db_id": "6a8247adb515ac81561744f033628349", "kind": "equivalent", "version": "9.1.11", "label": "9.1.11", "title": "修复 int2vector 和 oidvector 值的数组切片", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "77021f1107eec1c16ba347fb52395459b31a1b7c467927781e0dcbdef259a31e"}, "url": "/docs/compare/?release=9.1.11#9.1.11-f956ca6666def5ba", "source_url": "/docs/release/9.1.11/#id-1.11.6.18.5"}]}, {"id": "9.0.15-2601ea65701174a1", "cves": [], "html": "<p>修复使用 SQL 标准的简单 GMT 偏移时区时的错误行为（Tom Lane）</p>\n<p>某些情况下，系统会使用简单 GMT 偏移值，而本应使用选择简单偏移之前一直生效的常规时区设置。此变更还使 <code>timeofday</code> 函数遵循简单 GMT 偏移时区。</p>", "text": "修复使用 SQL 标准的简单 GMT 偏移时区时的错误行为（Tom Lane） 某些情况下，系统会使用简单 GMT 偏移值，而本应使用选择简单偏移之前一直生效的常规时区设置。此变更还使 timeofday 函数遵循简单 GMT 偏移时区。", "title": "修复使用 SQL 标准的简单 GMT 偏移时区时的错误行为", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.15/#id-1.11.6.13.5", "source_hash": "3aa45ba4b24ef1b9df6cf1053d4bcc469a8b69b6f55ad427a622dde194e27673", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix incorrect behaviors when using a SQL-standard, simple GMT offset timezone (Tom Lane) In some cases, the system would use the simple GMT offset value when it should have used the regular timezone setting that had prevailed before the simple offset was selected. This change also causes the timeofday function to honor the simple GMT offset zone.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.15/changes/010", "db_id": "44fdc680cd1d9122e644c1e0adf20d98", "patch_ids": [], "statement_hash": "67dd61049240b5988b7f043b8d3441b90c3b1fb5a7b74cca1158b9396c686fd1", "relations": [{"rule": 2, "type": "equivalent", "target": "3d339135edb8ea26c5e04a90151ef218", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "67dd61049240b5988b7f043b8d3441b90c3b1fb5a7b74cca1158b9396c686fd1"}}, {"rule": 2, "type": "equivalent", "target": "7ecc9260dc6a5f36975948d07c98263a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "67dd61049240b5988b7f043b8d3441b90c3b1fb5a7b74cca1158b9396c686fd1"}}, {"rule": 2, "type": "equivalent", "target": "f1d86dae08007c1335fbfc248ad1a360", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "67dd61049240b5988b7f043b8d3441b90c3b1fb5a7b74cca1158b9396c686fd1"}}], "version": "9.0.15", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "f1d86dae08007c1335fbfc248ad1a360", "kind": "equivalent", "version": "9.3.2", "label": "9.3.2", "title": "修复使用 SQL 标准的简单 GMT 偏移时区时的错误行为", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "67dd61049240b5988b7f043b8d3441b90c3b1fb5a7b74cca1158b9396c686fd1"}, "url": "/docs/compare/?release=9.3.2#9.3.2-2601ea65701174a1", "source_url": "/docs/release/9.3.2/#id-1.11.6.28.5"}, {"db_id": "3d339135edb8ea26c5e04a90151ef218", "kind": "equivalent", "version": "9.2.6", "label": "9.2.6", "title": "修复使用 SQL 标准的简单 GMT 偏移时区时的错误行为", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "67dd61049240b5988b7f043b8d3441b90c3b1fb5a7b74cca1158b9396c686fd1"}, "url": "/docs/compare/?release=9.2.6#9.2.6-2601ea65701174a1", "source_url": "/docs/release/9.2.6/#id-1.11.6.23.5"}, {"db_id": "7ecc9260dc6a5f36975948d07c98263a", "kind": "equivalent", "version": "9.1.11", "label": "9.1.11", "title": "修复使用 SQL 标准的简单 GMT 偏移时区时的错误行为", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "67dd61049240b5988b7f043b8d3441b90c3b1fb5a7b74cca1158b9396c686fd1"}, "url": "/docs/compare/?release=9.1.11#9.1.11-2601ea65701174a1", "source_url": "/docs/release/9.1.11/#id-1.11.6.18.5"}]}, {"id": "9.0.15-bdebcc31fe0dc7c0", "cves": [], "html": "<p>防止记录 Windows 错误码翻译时可能出现的不当行为（Tom Lane）</p>", "text": "防止记录 Windows 错误码翻译时可能出现的不当行为（Tom Lane）", "title": "防止记录 Windows 错误码翻译时可能出现的不当行为", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.15/#id-1.11.6.13.5", "source_hash": "b534a69735517531237cb1d9be94f15b96841831c95d9f3733b41e4921cbb667", "section_path": ["变更"], "commit_groups": [], "identity_text": "Prevent possible misbehavior when logging translations of Windows error codes (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.15/changes/011", "db_id": "11c80cc0b7a2fc53ad9812bcf14375c2", "patch_ids": [], "statement_hash": "2f81cdd275a66bb7372ad55845ae169c02ed02ad108b59507118f7bf2cadec3b", "relations": [{"rule": 2, "type": "equivalent", "target": "13b0387ae30ee6ae7463f9d748e7dcf1", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2f81cdd275a66bb7372ad55845ae169c02ed02ad108b59507118f7bf2cadec3b"}}, {"rule": 2, "type": "equivalent", "target": "54820da474bebf8b921bae7f57eada98", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2f81cdd275a66bb7372ad55845ae169c02ed02ad108b59507118f7bf2cadec3b"}}, {"rule": 2, "type": "equivalent", "target": "aeede94f946c1ded6bedcaa1abc527b3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2f81cdd275a66bb7372ad55845ae169c02ed02ad108b59507118f7bf2cadec3b"}}], "version": "9.0.15", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "13b0387ae30ee6ae7463f9d748e7dcf1", "kind": "equivalent", "version": "9.3.2", "label": "9.3.2", "title": "防止记录 Windows 错误码翻译时可能出现的不当行为", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2f81cdd275a66bb7372ad55845ae169c02ed02ad108b59507118f7bf2cadec3b"}, "url": "/docs/compare/?release=9.3.2#9.3.2-bdebcc31fe0dc7c0", "source_url": "/docs/release/9.3.2/#id-1.11.6.28.5"}, {"db_id": "aeede94f946c1ded6bedcaa1abc527b3", "kind": "equivalent", "version": "9.2.6", "label": "9.2.6", "title": "防止记录 Windows 错误码翻译时可能出现的不当行为", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2f81cdd275a66bb7372ad55845ae169c02ed02ad108b59507118f7bf2cadec3b"}, "url": "/docs/compare/?release=9.2.6#9.2.6-bdebcc31fe0dc7c0", "source_url": "/docs/release/9.2.6/#id-1.11.6.23.5"}, {"db_id": "54820da474bebf8b921bae7f57eada98", "kind": "equivalent", "version": "9.1.11", "label": "9.1.11", "title": "防止记录 Windows 错误码翻译时可能出现的不当行为", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2f81cdd275a66bb7372ad55845ae169c02ed02ad108b59507118f7bf2cadec3b"}, "url": "/docs/compare/?release=9.1.11#9.1.11-bdebcc31fe0dc7c0", "source_url": "/docs/release/9.1.11/#id-1.11.6.18.5"}]}, {"id": "9.0.15-e12c41883839f84f", "cves": [], "html": "<p>正确地为 <span>pg_ctl</span> 生成的命令行加引号（Naoya Anzai、Tom Lane）</p>\n<p>此修复仅适用于 Windows。</p>", "text": "正确地为 pg_ctl 生成的命令行加引号（Naoya Anzai、Tom Lane） 此修复仅适用于 Windows。", "title": "正确地为 pg_ctl 生成的命令行加引号", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.15/#id-1.11.6.13.5", "source_hash": "7c654722e991126168400db1cb093d0408c5692c6d3cdb6f49dcd2208b8b9736", "section_path": ["变更"], "commit_groups": [], "identity_text": "Properly quote generated command lines in pg_ctl (Naoya Anzai and Tom Lane) This fix applies only to Windows.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.15/changes/012", "db_id": "8b28d4028101ea2d3477d14a5442e5f3", "patch_ids": [], "statement_hash": "9e1fc4c55afd877c990135b900334b6624f58a4c56a45b03050a34c9fd4e355f", "relations": [{"rule": 2, "type": "equivalent", "target": "06ef602928ccb464f7de8ec282bf722b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9e1fc4c55afd877c990135b900334b6624f58a4c56a45b03050a34c9fd4e355f"}}, {"rule": 2, "type": "equivalent", "target": "b1f08684e6cfbb31c79a0dccb63be1f8", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9e1fc4c55afd877c990135b900334b6624f58a4c56a45b03050a34c9fd4e355f"}}, {"rule": 2, "type": "equivalent", "target": "bbe0bde4d80cb9deabba661cfb328a9b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9e1fc4c55afd877c990135b900334b6624f58a4c56a45b03050a34c9fd4e355f"}}], "version": "9.0.15", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "bbe0bde4d80cb9deabba661cfb328a9b", "kind": "equivalent", "version": "9.3.2", "label": "9.3.2", "title": "正确地为 pg_ctl 生成的命令行加引号", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9e1fc4c55afd877c990135b900334b6624f58a4c56a45b03050a34c9fd4e355f"}, "url": "/docs/compare/?release=9.3.2#9.3.2-e12c41883839f84f", "source_url": "/docs/release/9.3.2/#id-1.11.6.28.5"}, {"db_id": "b1f08684e6cfbb31c79a0dccb63be1f8", "kind": "equivalent", "version": "9.2.6", "label": "9.2.6", "title": "正确地为 pg_ctl 生成的命令行加引号", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9e1fc4c55afd877c990135b900334b6624f58a4c56a45b03050a34c9fd4e355f"}, "url": "/docs/compare/?release=9.2.6#9.2.6-e12c41883839f84f", "source_url": "/docs/release/9.2.6/#id-1.11.6.23.5"}, {"db_id": "06ef602928ccb464f7de8ec282bf722b", "kind": "equivalent", "version": "9.1.11", "label": "9.1.11", "title": "正确地为 pg_ctl 生成的命令行加引号", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9e1fc4c55afd877c990135b900334b6624f58a4c56a45b03050a34c9fd4e355f"}, "url": "/docs/compare/?release=9.1.11#9.1.11-e12c41883839f84f", "source_url": "/docs/release/9.1.11/#id-1.11.6.18.5"}]}, {"id": "9.0.15-7dc92563d1e4f087", "cves": [], "html": "<p>修复当源数据库通过 <code>ALTER DATABASE SET</code> 设置 <a href=\"/docs/9.0/runtime-config-client.html#GUC-DEFAULT-TRANSACTION-READ-ONLY\"><code>default_transaction_read_only</code></a> 时 <span>pg_dumpall</span> 无法工作的问题（Kevin Grittner）</p>\n<p>此前，生成的脚本在恢复期间会失败。</p>", "text": "修复当源数据库通过 ALTER DATABASE SET 设置 default_transaction_read_only 时 pg_dumpall 无法工作的问题（Kevin Grittner） 此前，生成的脚本在恢复期间会失败。", "title": "修复当源数据库通过 ALTER DATABASE SET 设置 default_transaction_read_only 时 pg_dumpall 无法工作的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.15/#id-1.11.6.13.5", "source_hash": "ddc1f4d975a82f4f14f87600c1439f1a838c022e32eb2c8312fa545b25203fe5", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix pg_dumpall to work when a source database sets default_transaction_read_only via ALTER DATABASE SET (Kevin Grittner) Previously, the generated script would fail during restore.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.15/changes/013", "db_id": "48525738e3d068e0af15f93585c27c23", "patch_ids": [], "statement_hash": "f566ed1155756fc0be4b5b06a7f2b4ae5f91129a5576307b194edab556032b8c", "relations": [{"rule": 2, "type": "equivalent", "target": "6185cd94f5d883265aac461185ec82d6", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f566ed1155756fc0be4b5b06a7f2b4ae5f91129a5576307b194edab556032b8c"}}, {"rule": 2, "type": "equivalent", "target": "9f630319d7135ae6876108b30d324497", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f566ed1155756fc0be4b5b06a7f2b4ae5f91129a5576307b194edab556032b8c"}}, {"rule": 2, "type": "equivalent", "target": "af9bf6db44c025c5eb9a27b06c7074d4", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f566ed1155756fc0be4b5b06a7f2b4ae5f91129a5576307b194edab556032b8c"}}], "version": "9.0.15", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "6185cd94f5d883265aac461185ec82d6", "kind": "equivalent", "version": "9.3.2", "label": "9.3.2", "title": "修复当源数据库通过 ALTER DATABASE SET 设置 default_transaction_read_only 时 pg_dumpall 无法工作的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f566ed1155756fc0be4b5b06a7f2b4ae5f91129a5576307b194edab556032b8c"}, "url": "/docs/compare/?release=9.3.2#9.3.2-7dc92563d1e4f087", "source_url": "/docs/release/9.3.2/#id-1.11.6.28.5"}, {"db_id": "af9bf6db44c025c5eb9a27b06c7074d4", "kind": "equivalent", "version": "9.2.6", "label": "9.2.6", "title": "修复当源数据库通过 ALTER DATABASE SET 设置 default_transaction_read_only 时 pg_dumpall 无法工作的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f566ed1155756fc0be4b5b06a7f2b4ae5f91129a5576307b194edab556032b8c"}, "url": "/docs/compare/?release=9.2.6#9.2.6-7dc92563d1e4f087", "source_url": "/docs/release/9.2.6/#id-1.11.6.23.5"}, {"db_id": "9f630319d7135ae6876108b30d324497", "kind": "equivalent", "version": "9.1.11", "label": "9.1.11", "title": "修复当源数据库通过 ALTER DATABASE SET 设置 default_transaction_read_only 时 pg_dumpall 无法工作的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f566ed1155756fc0be4b5b06a7f2b4ae5f91129a5576307b194edab556032b8c"}, "url": "/docs/compare/?release=9.1.11#9.1.11-7dc92563d1e4f087", "source_url": "/docs/release/9.1.11/#id-1.11.6.18.5"}]}, {"id": "9.0.15-169a7568a70cb421", "cves": [], "html": "<p>修复 <span>ecpg</span> 对声明为 <code>varchar</code> 的变量列表的处理（Zoltán Böszörményi）</p>", "text": "修复 ecpg 对声明为 varchar 的变量列表的处理（Zoltán Böszörményi）", "title": "修复 ecpg 对声明为 varchar 的变量列表的处理", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.15/#id-1.11.6.13.5", "source_hash": "121fa10fd9b56cf238b3c1cb1fc0cb82f1aa650be0e89cdf1984b3b484ce6e21", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix ecpg's processing of lists of variables declared varchar (Zoltán Böszörményi)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.15/changes/014", "db_id": "409d0da964e2a790d4e8a35adbf048e0", "patch_ids": [], "statement_hash": "9f7d0c921686af985b2a7e97d9f422fe9d039b0e5ac979b9a2c70d647b0fe2b5", "relations": [{"rule": 2, "type": "equivalent", "target": "2ddb8bb0d99ab38a47d5d489357b1f83", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9f7d0c921686af985b2a7e97d9f422fe9d039b0e5ac979b9a2c70d647b0fe2b5"}}, {"rule": 2, "type": "equivalent", "target": "48a2db9656972f75ddf74f63fdada832", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9f7d0c921686af985b2a7e97d9f422fe9d039b0e5ac979b9a2c70d647b0fe2b5"}}, {"rule": 2, "type": "equivalent", "target": "6884256e8627c74d9b8423dfb2718376", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9f7d0c921686af985b2a7e97d9f422fe9d039b0e5ac979b9a2c70d647b0fe2b5"}}], "version": "9.0.15", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "6884256e8627c74d9b8423dfb2718376", "kind": "equivalent", "version": "9.3.2", "label": "9.3.2", "title": "修复 ecpg 对声明为 varchar 的变量列表的处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9f7d0c921686af985b2a7e97d9f422fe9d039b0e5ac979b9a2c70d647b0fe2b5"}, "url": "/docs/compare/?release=9.3.2#9.3.2-169a7568a70cb421", "source_url": "/docs/release/9.3.2/#id-1.11.6.28.5"}, {"db_id": "48a2db9656972f75ddf74f63fdada832", "kind": "equivalent", "version": "9.2.6", "label": "9.2.6", "title": "修复 ecpg 对声明为 varchar 的变量列表的处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9f7d0c921686af985b2a7e97d9f422fe9d039b0e5ac979b9a2c70d647b0fe2b5"}, "url": "/docs/compare/?release=9.2.6#9.2.6-169a7568a70cb421", "source_url": "/docs/release/9.2.6/#id-1.11.6.23.5"}, {"db_id": "2ddb8bb0d99ab38a47d5d489357b1f83", "kind": "equivalent", "version": "9.1.11", "label": "9.1.11", "title": "修复 ecpg 对声明为 varchar 的变量列表的处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9f7d0c921686af985b2a7e97d9f422fe9d039b0e5ac979b9a2c70d647b0fe2b5"}, "url": "/docs/compare/?release=9.1.11#9.1.11-169a7568a70cb421", "source_url": "/docs/release/9.1.11/#id-1.11.6.18.5"}]}, {"id": "9.0.15-94e75e89effc8fe3", "cves": [], "html": "<p>让 <code>contrib/lo</code> 防御不正确的触发器定义（Marc Cousin）</p>", "text": "让 contrib/lo 防御不正确的触发器定义（Marc Cousin）", "title": "让 contrib/lo 防御不正确的触发器定义", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.15/#id-1.11.6.13.5", "source_hash": "19a94c48a0476749b046f6a5a768cc86414d1018c40dc4a59005fd4e42c723de", "section_path": ["变更"], "commit_groups": [], "identity_text": "Make contrib/lo defend against incorrect trigger definitions (Marc Cousin)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.15/changes/015", "db_id": "62aeb6faec8c5b77f9bb01b48e03c696", "patch_ids": [], "statement_hash": "0db6010f21580c107f19f45f9efc17bc08327c585441aa7875034bd49f0ebe3c", "relations": [{"rule": 2, "type": "equivalent", "target": "2f8e51d914589bae202909aaf246a538", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0db6010f21580c107f19f45f9efc17bc08327c585441aa7875034bd49f0ebe3c"}}, {"rule": 2, "type": "equivalent", "target": "496c8f49b5a01ad5bd55d5f53020526d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0db6010f21580c107f19f45f9efc17bc08327c585441aa7875034bd49f0ebe3c"}}, {"rule": 2, "type": "equivalent", "target": "6f70c73a712890b7ccaf0fd83dbdabaa", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0db6010f21580c107f19f45f9efc17bc08327c585441aa7875034bd49f0ebe3c"}}], "version": "9.0.15", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "6f70c73a712890b7ccaf0fd83dbdabaa", "kind": "equivalent", "version": "9.3.2", "label": "9.3.2", "title": "让 contrib/lo 防御不正确的触发器定义", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0db6010f21580c107f19f45f9efc17bc08327c585441aa7875034bd49f0ebe3c"}, "url": "/docs/compare/?release=9.3.2#9.3.2-94e75e89effc8fe3", "source_url": "/docs/release/9.3.2/#id-1.11.6.28.5"}, {"db_id": "2f8e51d914589bae202909aaf246a538", "kind": "equivalent", "version": "9.2.6", "label": "9.2.6", "title": "让 contrib/lo 防御不正确的触发器定义", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0db6010f21580c107f19f45f9efc17bc08327c585441aa7875034bd49f0ebe3c"}, "url": "/docs/compare/?release=9.2.6#9.2.6-94e75e89effc8fe3", "source_url": "/docs/release/9.2.6/#id-1.11.6.23.5"}, {"db_id": "496c8f49b5a01ad5bd55d5f53020526d", "kind": "equivalent", "version": "9.1.11", "label": "9.1.11", "title": "让 contrib/lo 防御不正确的触发器定义", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0db6010f21580c107f19f45f9efc17bc08327c585441aa7875034bd49f0ebe3c"}, "url": "/docs/compare/?release=9.1.11#9.1.11-94e75e89effc8fe3", "source_url": "/docs/release/9.1.11/#id-1.11.6.18.5"}]}, {"id": "9.0.15-c44e740c2c08d47e", "cves": [], "html": "<p>把时区数据文件更新为 <span>tzdata</span> 版本 2013h for DST law changes in Argentina, Brazil, Jordan, Libya, Liechtenstein, Morocco, and Palestine。Also, new timezone abbreviations WIB, WIT, WITA for Indonesia.</p>", "text": "把时区数据文件更新为 tzdata 版本 2013h for DST law changes in Argentina, Brazil, Jordan, Libya, Liechtenstein, Morocco, and Palestine。Also, new timezone abbreviations WIB, WIT, WITA for Indonesia.", "title": "把时区数据文件更新为 tzdata 版本 2013h for DST law changes in Argentina, Brazil, Jordan, Libya, Liechtenstein, Morocco, and Palestine。Also, new timezone abbreviations WIB, WIT, WITA for Indonesia.", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.15/#id-1.11.6.13.5", "source_hash": "d3c55877b3d6f9247c68d1738d2e6e2c385bd03687a37412e5673a1173491117", "section_path": ["变更"], "commit_groups": [], "identity_text": "Update time zone data files to tzdata release 2013h for DST law changes in Argentina, Brazil, Jordan, Libya, Liechtenstein, Morocco, and Palestine. Also, new timezone abbreviations WIB, WIT, WITA for Indonesia.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.15/changes/016", "db_id": "7c44c32d94b8860307e11c5103c052c9", "patch_ids": [], "statement_hash": "a19549acc73fc0d26f6eb4c09c6a93500ce32e170f9c7570ae6ca1ca0bcafc8f", "relations": [{"rule": 2, "type": "equivalent", "target": "424125e8e6a645f6b06c795a699f69d0", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a19549acc73fc0d26f6eb4c09c6a93500ce32e170f9c7570ae6ca1ca0bcafc8f"}}, {"rule": 2, "type": "equivalent", "target": "7be18ae3b11bb3941b2b0b756054a0c8", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a19549acc73fc0d26f6eb4c09c6a93500ce32e170f9c7570ae6ca1ca0bcafc8f"}}, {"rule": 2, "type": "equivalent", "target": "873dbd191790e30b273777ef978761ed", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a19549acc73fc0d26f6eb4c09c6a93500ce32e170f9c7570ae6ca1ca0bcafc8f"}}], "version": "9.0.15", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "873dbd191790e30b273777ef978761ed", "kind": "equivalent", "version": "9.3.2", "label": "9.3.2", "title": "把时区数据文件更新为 tzdata 版本 2013h，以反映阿根廷、巴西、约旦、利比亚、列支敦士登、摩洛哥和巴勒斯坦的夏令时法规变更。另外，新增印度尼西亚的时区缩写 WIB、WIT、WITA。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a19549acc73fc0d26f6eb4c09c6a93500ce32e170f9c7570ae6ca1ca0bcafc8f"}, "url": "/docs/compare/?release=9.3.2#9.3.2-eaeafa79cd57e97b", "source_url": "/docs/release/9.3.2/#id-1.11.6.28.5"}, {"db_id": "424125e8e6a645f6b06c795a699f69d0", "kind": "equivalent", "version": "9.2.6", "label": "9.2.6", "title": "把时区数据文件更新为 tzdata 版本 2013h for DST law changes in Argentina, Brazil, Jordan, Libya, Liechtenstein, Morocco, and Palestine。Also, new timezone abbreviations WIB, WIT, WITA for Indonesia.", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a19549acc73fc0d26f6eb4c09c6a93500ce32e170f9c7570ae6ca1ca0bcafc8f"}, "url": "/docs/compare/?release=9.2.6#9.2.6-c44e740c2c08d47e", "source_url": "/docs/release/9.2.6/#id-1.11.6.23.5"}, {"db_id": "7be18ae3b11bb3941b2b0b756054a0c8", "kind": "equivalent", "version": "9.1.11", "label": "9.1.11", "title": "把时区数据文件更新为 tzdata 版本 2013h for DST law changes in Argentina, Brazil, Jordan, Libya, Liechtenstein, Morocco, and Palestine。Also, new timezone abbreviations WIB, WIT, WITA for Indonesia.", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a19549acc73fc0d26f6eb4c09c6a93500ce32e170f9c7570ae6ca1ca0bcafc8f"}, "url": "/docs/compare/?release=9.1.11#9.1.11-c44e740c2c08d47e", "source_url": "/docs/release/9.1.11/#id-1.11.6.18.5"}]}]}, {"date": "2013-10-10", "build": "9.0.14", "major": "9.0", "minor": 14, "manual": "9.0", "status": "stable", "doc_git": "", "version": "9.0.14", "eol_date": "2015-10-08", "date_text": "2013-10-10", "supported": false, "manual_url": "/docs/9.0/release-9-0-14.html", "source_url": "/docs/release/9.0.14/", "entry_count": 26, "placeholder": false, "content_hash": "3f11d5352306c472560d62150000ea2e7afce86e9634a02fc5c13212c2cd5175", "manual_build": "9.0.23", "source_as_of": "", "changes_count": 26, "doc_loaded_at": "2026-09-26T02:56:48.570247", "migration_html": "<p>对于运行 9.0.X 的用户，不需要进行转储/恢复。</p>\n<p>不过，如果你是从早于 9.0.13 的版本升级，请参见<a href=\"/docs/9.0/release-9-0-13.html\" title=\"E.11. 版本 9.0.13\">第 E.11 节</a>。</p>", "compatibility_count": 0, "label": "9.0.14", "status_label": "历史版本", "eol": "2015-10-08", "age_days": 4738, "support_days": -4010, "entries": [{"id": "9.0.14-b13ac4420725c5fb", "cves": [], "html": "<p>防止尝试对标识符做大小写折叠时损坏多字节字符（Andrew Dunstan）</p>\n<p><span>PostgreSQL</span> 只在使用单字节服务器编码时才对非 ASCII 字符做大小写折叠。</p>", "text": "防止尝试对标识符做大小写折叠时损坏多字节字符（Andrew Dunstan） PostgreSQL 只在使用单字节服务器编码时才对非 ASCII 字符做大小写折叠。", "title": "防止尝试对标识符做大小写折叠时损坏多字节字符", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.14/#id-1.11.6.14.5", "source_hash": "11a06fa6929a2a0541da741e1d6c9645de1176b7e2a7eaa7d3a6c6993b7a166c", "section_path": ["变更"], "commit_groups": [], "identity_text": "Prevent corruption of multi-byte characters when attempting to case-fold identifiers (Andrew Dunstan) PostgreSQL case-folds non-ASCII characters only when using a single-byte server encoding.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.14/changes/001", "db_id": "7542aeda2d3e673506ae4452f9d1b340", "patch_ids": [], "statement_hash": "b5d1ad072c70f9f300ff57aea85501a36d733d18d86da01ffefef77e7b88ec3e", "relations": [{"rule": 2, "type": "equivalent", "target": "0a70cbd04367b3c99b361d487ea3c3fe", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b5d1ad072c70f9f300ff57aea85501a36d733d18d86da01ffefef77e7b88ec3e"}}, {"rule": 2, "type": "equivalent", "target": "70121dc524aaebe1c211fc12ef344c52", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b5d1ad072c70f9f300ff57aea85501a36d733d18d86da01ffefef77e7b88ec3e"}}], "version": "9.0.14", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "0a70cbd04367b3c99b361d487ea3c3fe", "kind": "equivalent", "version": "9.2.5", "label": "9.2.5", "title": "防止尝试对标识符做大小写折叠时损坏多字节字符", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b5d1ad072c70f9f300ff57aea85501a36d733d18d86da01ffefef77e7b88ec3e"}, "url": "/docs/compare/?release=9.2.5#9.2.5-b13ac4420725c5fb", "source_url": "/docs/release/9.2.5/#id-1.11.6.24.5"}, {"db_id": "70121dc524aaebe1c211fc12ef344c52", "kind": "equivalent", "version": "9.1.10", "label": "9.1.10", "title": "防止尝试对标识符做大小写折叠时损坏多字节字符", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b5d1ad072c70f9f300ff57aea85501a36d733d18d86da01ffefef77e7b88ec3e"}, "url": "/docs/compare/?release=9.1.10#9.1.10-b13ac4420725c5fb", "source_url": "/docs/release/9.1.10/#id-1.11.6.19.5"}]}, {"id": "9.0.14-23b684a5de9d9e5f", "cves": [], "html": "<p>修复 <code>wal_level = hot_standby</code> 时后台写入进程中的检查点内存泄漏（Naoya Anzai）</p>", "text": "修复 wal_level = hot_standby 时后台写入进程中的检查点内存泄漏（Naoya Anzai）", "title": "修复 wal_level = hot_standby 时后台写入进程中的检查点内存泄漏", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.14/#id-1.11.6.14.5", "source_hash": "df74181d0930439f43ec3307acc7280b5e72600b7641664ee8075cc9ee785591", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix checkpoint memory leak in background writer when wal_level = hot_standby (Naoya Anzai)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.14/changes/002", "db_id": "b2473f1a7e469c8900b92ca621567bb6", "patch_ids": [], "statement_hash": "e5b3af68d32c7827551c7393ed5dabe13d392a26d4305af1020fc080e93bccdd", "relations": [{"rule": 2, "type": "equivalent", "target": "09c9c313bfb0ba27aaa3080e77617922", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e5b3af68d32c7827551c7393ed5dabe13d392a26d4305af1020fc080e93bccdd"}}, {"rule": 2, "type": "equivalent", "target": "36e8deec6bb06913c333a9cf9f4ce58d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e5b3af68d32c7827551c7393ed5dabe13d392a26d4305af1020fc080e93bccdd"}}], "version": "9.0.14", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "36e8deec6bb06913c333a9cf9f4ce58d", "kind": "equivalent", "version": "9.2.5", "label": "9.2.5", "title": "修复 wal_level = hot_standby 时后台写入进程中的检查点内存泄漏", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e5b3af68d32c7827551c7393ed5dabe13d392a26d4305af1020fc080e93bccdd"}, "url": "/docs/compare/?release=9.2.5#9.2.5-23b684a5de9d9e5f", "source_url": "/docs/release/9.2.5/#id-1.11.6.24.5"}, {"db_id": "09c9c313bfb0ba27aaa3080e77617922", "kind": "equivalent", "version": "9.1.10", "label": "9.1.10", "title": "修复 wal_level = hot_standby 时后台写入进程中的检查点内存泄漏", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e5b3af68d32c7827551c7393ed5dabe13d392a26d4305af1020fc080e93bccdd"}, "url": "/docs/compare/?release=9.1.10#9.1.10-23b684a5de9d9e5f", "source_url": "/docs/release/9.1.10/#id-1.11.6.19.5"}]}, {"id": "9.0.14-e87021667a387cb0", "cves": [], "html": "<p>修复由 <code>lo_open()</code> 失败导致的内存泄漏（Heikki Linnakangas）</p>", "text": "修复由 lo_open() 失败导致的内存泄漏（Heikki Linnakangas）", "title": "修复由 lo_open() 失败导致的内存泄漏", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.14/#id-1.11.6.14.5", "source_hash": "02de43ab65932ba01e4ac32b46934e97633b895cebd8a93655c804dfff068cae", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix memory leak caused by lo_open() failure (Heikki Linnakangas)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.14/changes/003", "db_id": "3990d749035911cbbc6fc212c17c04f5", "patch_ids": [], "statement_hash": "fbe032827b5bb9d1240f263faea6ecb42ab61e934a5b25ff9f2b8c4d3c0824c7", "relations": [{"rule": 2, "type": "equivalent", "target": "07b015692304e10582984aba7d2bdbc6", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fbe032827b5bb9d1240f263faea6ecb42ab61e934a5b25ff9f2b8c4d3c0824c7"}}, {"rule": 2, "type": "equivalent", "target": "72e4c02fce4f4d19bac99fc219903e7d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fbe032827b5bb9d1240f263faea6ecb42ab61e934a5b25ff9f2b8c4d3c0824c7"}}, {"rule": 2, "type": "equivalent", "target": "d43ca44ee990da49acd62d681b93973c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fbe032827b5bb9d1240f263faea6ecb42ab61e934a5b25ff9f2b8c4d3c0824c7"}}], "version": "9.0.14", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "72e4c02fce4f4d19bac99fc219903e7d", "kind": "equivalent", "version": "9.3.1", "label": "9.3.1", "title": "修复由 lo_open() 失败导致的内存泄漏", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fbe032827b5bb9d1240f263faea6ecb42ab61e934a5b25ff9f2b8c4d3c0824c7"}, "url": "/docs/compare/?release=9.3.1#9.3.1-e87021667a387cb0", "source_url": "/docs/release/9.3.1/#id-1.11.6.29.5"}, {"db_id": "d43ca44ee990da49acd62d681b93973c", "kind": "equivalent", "version": "9.2.5", "label": "9.2.5", "title": "修复由 lo_open() 失败导致的内存泄漏", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fbe032827b5bb9d1240f263faea6ecb42ab61e934a5b25ff9f2b8c4d3c0824c7"}, "url": "/docs/compare/?release=9.2.5#9.2.5-e87021667a387cb0", "source_url": "/docs/release/9.2.5/#id-1.11.6.24.5"}, {"db_id": "07b015692304e10582984aba7d2bdbc6", "kind": "equivalent", "version": "9.1.10", "label": "9.1.10", "title": "修复由 lo_open() 失败导致的内存泄漏", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fbe032827b5bb9d1240f263faea6ecb42ab61e934a5b25ff9f2b8c4d3c0824c7"}, "url": "/docs/compare/?release=9.1.10#9.1.10-e87021667a387cb0", "source_url": "/docs/release/9.1.10/#id-1.11.6.19.5"}]}, {"id": "9.0.14-4b9e708ce802d3bb", "cves": [], "html": "<p>修复 <code>work_mem</code> 使用超过 24GB 内存时的内存过度提交缺陷（Stephen Frost）</p>", "text": "修复 work_mem 使用超过 24GB 内存时的内存过度提交缺陷（Stephen Frost）", "title": "修复 work_mem 使用超过 24GB 内存时的内存过度提交缺陷", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.14/#id-1.11.6.14.5", "source_hash": "dac46b900844be782b8c23bd6028a78366eb8e2f9622323ef0ca1ede58ecb402", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix memory overcommit bug when work_mem is using more than 24GB of memory (Stephen Frost)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.14/changes/004", "db_id": "63d5291ebd45fc0979e17d1b677928b3", "patch_ids": [], "statement_hash": "1e7cf91f221b7e95f26136b8a9fd9a94179df4c4b6d2f18133377d4511936ed0", "relations": [{"rule": 2, "type": "equivalent", "target": "9b19ab0744703238ddf91599d1ad31d8", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1e7cf91f221b7e95f26136b8a9fd9a94179df4c4b6d2f18133377d4511936ed0"}}, {"rule": 2, "type": "equivalent", "target": "ea87665aed325b2a400f33b5e213ecba", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1e7cf91f221b7e95f26136b8a9fd9a94179df4c4b6d2f18133377d4511936ed0"}}], "version": "9.0.14", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "ea87665aed325b2a400f33b5e213ecba", "kind": "equivalent", "version": "9.2.5", "label": "9.2.5", "title": "修复 work_mem 使用超过 24GB 内存时的内存过度提交缺陷", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1e7cf91f221b7e95f26136b8a9fd9a94179df4c4b6d2f18133377d4511936ed0"}, "url": "/docs/compare/?release=9.2.5#9.2.5-4b9e708ce802d3bb", "source_url": "/docs/release/9.2.5/#id-1.11.6.24.5"}, {"db_id": "9b19ab0744703238ddf91599d1ad31d8", "kind": "equivalent", "version": "9.1.10", "label": "9.1.10", "title": "修复 work_mem 使用超过 24GB 内存时的内存过度提交缺陷", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1e7cf91f221b7e95f26136b8a9fd9a94179df4c4b6d2f18133377d4511936ed0"}, "url": "/docs/compare/?release=9.1.10#9.1.10-4b9e708ce802d3bb", "source_url": "/docs/release/9.1.10/#id-1.11.6.19.5"}]}, {"id": "9.0.14-cba216f52b33f343", "cves": [], "html": "<p>修复使用 SSL 时 libpq 中的死锁缺陷（Stephen Frost）</p>", "text": "修复使用 SSL 时 libpq 中的死锁缺陷（Stephen Frost）", "title": "修复使用 SSL 时 libpq 中的死锁缺陷", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.14/#id-1.11.6.14.5", "source_hash": "3fba32b17ef4948a36223661c41e75f719ceb04594bb4256366df0b16a443229", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix deadlock bug in libpq when using SSL (Stephen Frost)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.14/changes/005", "db_id": "57c1c2b14328df07d1fff5b5855231d5", "patch_ids": [], "statement_hash": "984982162628393d0e46c8710db3a0bc436993546530df45ff69a60ea6c2371f", "relations": [{"rule": 2, "type": "equivalent", "target": "237ecc0fb2de96e0467467b4a6ddc257", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "984982162628393d0e46c8710db3a0bc436993546530df45ff69a60ea6c2371f"}}, {"rule": 2, "type": "equivalent", "target": "6aa0428b6fdf47b0a1bcf5230033bf4d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "984982162628393d0e46c8710db3a0bc436993546530df45ff69a60ea6c2371f"}}, {"rule": 2, "type": "equivalent", "target": "9c82054ba2b8bff7fe6cbd12ce8ce608", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "984982162628393d0e46c8710db3a0bc436993546530df45ff69a60ea6c2371f"}}], "version": "9.0.14", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "6aa0428b6fdf47b0a1bcf5230033bf4d", "kind": "equivalent", "version": "9.3.1", "label": "9.3.1", "title": "修复使用 SSL 时 libpq 中的死锁缺陷", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "984982162628393d0e46c8710db3a0bc436993546530df45ff69a60ea6c2371f"}, "url": "/docs/compare/?release=9.3.1#9.3.1-cba216f52b33f343", "source_url": "/docs/release/9.3.1/#id-1.11.6.29.5"}, {"db_id": "9c82054ba2b8bff7fe6cbd12ce8ce608", "kind": "equivalent", "version": "9.2.5", "label": "9.2.5", "title": "修复使用 SSL 时 libpq 中的死锁缺陷", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "984982162628393d0e46c8710db3a0bc436993546530df45ff69a60ea6c2371f"}, "url": "/docs/compare/?release=9.2.5#9.2.5-cba216f52b33f343", "source_url": "/docs/release/9.2.5/#id-1.11.6.24.5"}, {"db_id": "237ecc0fb2de96e0467467b4a6ddc257", "kind": "equivalent", "version": "9.1.10", "label": "9.1.10", "title": "修复使用 SSL 时 libpq 中的死锁缺陷", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "984982162628393d0e46c8710db3a0bc436993546530df45ff69a60ea6c2371f"}, "url": "/docs/compare/?release=9.1.10#9.1.10-cba216f52b33f343", "source_url": "/docs/release/9.1.10/#id-1.11.6.19.5"}]}, {"id": "9.0.14-95fb0214108051d5", "cves": [], "html": "<p>修复多线程 libpq 应用中可能的 SSL 状态损坏（Nick Phillips、Stephen Frost）</p>", "text": "修复多线程 libpq 应用中可能的 SSL 状态损坏（Nick Phillips、Stephen Frost）", "title": "修复多线程 libpq 应用中可能的 SSL 状态损坏", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.14/#id-1.11.6.14.5", "source_hash": "3f2477da1ed28bee3e4f18e570e2220ba41b11f004d4b528d7c7ed101fcd33dc", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix possible SSL state corruption in threaded libpq applications (Nick Phillips, Stephen Frost)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.14/changes/006", "db_id": "b254a8445459d944142e870ce4f1e716", "patch_ids": [], "statement_hash": "6c48127c24c77fc19f07babaaa8ededaf968ef303f3c8e2b2aaadea8cb5f0e8f", "relations": [{"rule": 2, "type": "equivalent", "target": "cc499787f74e0b03f2c45b7755625cb3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6c48127c24c77fc19f07babaaa8ededaf968ef303f3c8e2b2aaadea8cb5f0e8f"}}, {"rule": 2, "type": "equivalent", "target": "ed1bd2051a3fb060b9155b1b09810032", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6c48127c24c77fc19f07babaaa8ededaf968ef303f3c8e2b2aaadea8cb5f0e8f"}}], "version": "9.0.14", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "cc499787f74e0b03f2c45b7755625cb3", "kind": "equivalent", "version": "9.2.5", "label": "9.2.5", "title": "修复多线程 libpq 应用中可能的 SSL 状态损坏", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6c48127c24c77fc19f07babaaa8ededaf968ef303f3c8e2b2aaadea8cb5f0e8f"}, "url": "/docs/compare/?release=9.2.5#9.2.5-95fb0214108051d5", "source_url": "/docs/release/9.2.5/#id-1.11.6.24.5"}, {"db_id": "ed1bd2051a3fb060b9155b1b09810032", "kind": "equivalent", "version": "9.1.10", "label": "9.1.10", "title": "修复多线程 libpq 应用中可能的 SSL 状态损坏", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6c48127c24c77fc19f07babaaa8ededaf968ef303f3c8e2b2aaadea8cb5f0e8f"}, "url": "/docs/compare/?release=9.1.10#9.1.10-95fb0214108051d5", "source_url": "/docs/release/9.1.10/#id-1.11.6.19.5"}]}, {"id": "9.0.14-a2ababc321354c37", "cves": [], "html": "<p>正确计算包含大量 NULL 值的布尔列的行数估计（Andrew Gierth）</p>\n<p>此前，<code>col IS NOT TRUE</code> 和 <code>col IS NOT FALSE</code> 这类测试在估计计划代价时没有正确考虑 NULL 值。</p>", "text": "正确计算包含大量 NULL 值的布尔列的行数估计（Andrew Gierth） 此前，col IS NOT TRUE 和 col IS NOT FALSE 这类测试在估计计划代价时没有正确考虑 NULL 值。", "title": "正确计算包含大量 NULL 值的布尔列的行数估计", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.14/#id-1.11.6.14.5", "source_hash": "0d1c5257038d7c5ac39b13708f5cfd938d74e42488b3bdabf7f30ef4ee361c94", "section_path": ["变更"], "commit_groups": [], "identity_text": "Properly compute row estimates for boolean columns containing many NULL values (Andrew Gierth) Previously tests like col IS NOT TRUE and col IS NOT FALSE did not properly factor in NULL values when estimating plan costs.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.14/changes/007", "db_id": "e1c7c31d4d4c930790cea3087b7bd1d1", "patch_ids": [], "statement_hash": "acd9771c5a977d1b1e9f63bfb90798762458e23d3df4da3e93b7652a6982b540", "relations": [{"rule": 2, "type": "equivalent", "target": "71fcd8debff3ada481a788d9ab8bb817", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "acd9771c5a977d1b1e9f63bfb90798762458e23d3df4da3e93b7652a6982b540"}}, {"rule": 2, "type": "equivalent", "target": "95b025bba0b5dfb270a39c1b98bb099c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "acd9771c5a977d1b1e9f63bfb90798762458e23d3df4da3e93b7652a6982b540"}}], "version": "9.0.14", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "95b025bba0b5dfb270a39c1b98bb099c", "kind": "equivalent", "version": "9.2.5", "label": "9.2.5", "title": "正确计算包含大量 NULL 值的布尔列的行数估计", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "acd9771c5a977d1b1e9f63bfb90798762458e23d3df4da3e93b7652a6982b540"}, "url": "/docs/compare/?release=9.2.5#9.2.5-a2ababc321354c37", "source_url": "/docs/release/9.2.5/#id-1.11.6.24.5"}, {"db_id": "71fcd8debff3ada481a788d9ab8bb817", "kind": "equivalent", "version": "9.1.10", "label": "9.1.10", "title": "正确计算包含大量 NULL 值的布尔列的行数估计", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "acd9771c5a977d1b1e9f63bfb90798762458e23d3df4da3e93b7652a6982b540"}, "url": "/docs/compare/?release=9.1.10#9.1.10-a2ababc321354c37", "source_url": "/docs/release/9.1.10/#id-1.11.6.19.5"}]}, {"id": "9.0.14-4fe17eaacb1a01b8", "cves": [], "html": "<p>防止把 <code>WHERE</code> 子句下推到不安全的 <code>UNION/INTERSECT</code> 子查询中（Tom Lane）</p>\n<p><code>SELECT</code> 列表中包含集合返回函数或易变函数的 <code>UNION</code> 或 <code>INTERSECT</code> 子查询可能被不当优化，导致运行时错误或错误的查询结果。</p>", "text": "防止把 WHERE 子句下推到不安全的 UNION/INTERSECT 子查询中（Tom Lane） SELECT 列表中包含集合返回函数或易变函数的 UNION 或 INTERSECT 子查询可能被不当优化，导致运行时错误或错误的查询结果。", "title": "防止把 WHERE 子句下推到不安全的 UNION/INTERSECT 子查询中", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.14/#id-1.11.6.14.5", "source_hash": "d1575cef4c99a8688f6eeb385480427a90b9b28cdb4bfc293823d1e33066fd07", "section_path": ["变更"], "commit_groups": [], "identity_text": "Prevent pushing down WHERE clauses into unsafe UNION/INTERSECT subqueries (Tom Lane) Subqueries of a UNION or INTERSECT that contain set-returning functions or volatile functions in their SELECT lists could be improperly optimized, leading to run-time errors or incorrect query results.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.14/changes/008", "db_id": "eb6ed6a15490cd526d82847a776e45c4", "patch_ids": [], "statement_hash": "3b26b9301ec481ef8f8255e151d75d0a59c356a78adb502f92c2b597fa12c71e", "relations": [{"rule": 2, "type": "equivalent", "target": "143581629a716b10db750d76fb0bfcd8", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3b26b9301ec481ef8f8255e151d75d0a59c356a78adb502f92c2b597fa12c71e"}}, {"rule": 2, "type": "equivalent", "target": "5b6f6b627157035c78e19e81ac017d28", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3b26b9301ec481ef8f8255e151d75d0a59c356a78adb502f92c2b597fa12c71e"}}], "version": "9.0.14", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "143581629a716b10db750d76fb0bfcd8", "kind": "equivalent", "version": "9.2.5", "label": "9.2.5", "title": "防止把 WHERE 子句下推到不安全的 UNION/INTERSECT 子查询中", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3b26b9301ec481ef8f8255e151d75d0a59c356a78adb502f92c2b597fa12c71e"}, "url": "/docs/compare/?release=9.2.5#9.2.5-4fe17eaacb1a01b8", "source_url": "/docs/release/9.2.5/#id-1.11.6.24.5"}, {"db_id": "5b6f6b627157035c78e19e81ac017d28", "kind": "equivalent", "version": "9.1.10", "label": "9.1.10", "title": "防止把 WHERE 子句下推到不安全的 UNION/INTERSECT 子查询中", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3b26b9301ec481ef8f8255e151d75d0a59c356a78adb502f92c2b597fa12c71e"}, "url": "/docs/compare/?release=9.1.10#9.1.10-4fe17eaacb1a01b8", "source_url": "/docs/release/9.1.10/#id-1.11.6.19.5"}]}, {"id": "9.0.14-5a5b8336136a44af", "cves": [], "html": "<p>修复罕见的 <span>“<span>failed to locate grouping columns</span>”</span> 规划器失败情况（Tom Lane）</p>", "text": "修复罕见的 “failed to locate grouping columns” 规划器失败情况（Tom Lane）", "title": "修复罕见的 “failed to locate grouping columns” 规划器失败情况", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.14/#id-1.11.6.14.5", "source_hash": "b16165c6c7e8cb98931be1edfba6f8b0a95543954d9a9780bddd9a5b95714a47", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix rare case of failed to locate grouping columns planner failure (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.14/changes/009", "db_id": "ccd832f07c22869e8cc7441967c12072", "patch_ids": [], "statement_hash": "970d7e3ab2640ea269042d80cb2cecd9d868a95e990122eba428cc099008b126", "relations": [{"rule": 2, "type": "equivalent", "target": "69b3b5cc732989a23dcbe44045632073", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "970d7e3ab2640ea269042d80cb2cecd9d868a95e990122eba428cc099008b126"}}, {"rule": 2, "type": "equivalent", "target": "dea49ad831cc86034dc9f1cb8326580b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "970d7e3ab2640ea269042d80cb2cecd9d868a95e990122eba428cc099008b126"}}], "version": "9.0.14", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "69b3b5cc732989a23dcbe44045632073", "kind": "equivalent", "version": "9.2.5", "label": "9.2.5", "title": "修复罕见的“failed to locate grouping columns”规划器失败情况", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "970d7e3ab2640ea269042d80cb2cecd9d868a95e990122eba428cc099008b126"}, "url": "/docs/compare/?release=9.2.5#9.2.5-9ddafc6dc4651d48", "source_url": "/docs/release/9.2.5/#id-1.11.6.24.5"}, {"db_id": "dea49ad831cc86034dc9f1cb8326580b", "kind": "equivalent", "version": "9.1.10", "label": "9.1.10", "title": "修复罕见的 “failed to locate grouping columns” 规划器失败情况", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "970d7e3ab2640ea269042d80cb2cecd9d868a95e990122eba428cc099008b126"}, "url": "/docs/compare/?release=9.1.10#9.1.10-5a5b8336136a44af", "source_url": "/docs/release/9.1.10/#id-1.11.6.19.5"}]}, {"id": "9.0.14-b66394f76d185c65", "cves": [], "html": "<p>改进视图转储代码对被引用表中已删除列的处理（Tom Lane）</p>", "text": "改进视图转储代码对被引用表中已删除列的处理（Tom Lane）", "title": "改进视图转储代码对被引用表中已删除列的处理", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.14/#id-1.11.6.14.5", "source_hash": "edd20863c50b1aaf790aa7e45648b49955a3f29b58b58acf1b876a1a5c6388a5", "section_path": ["变更"], "commit_groups": [], "identity_text": "Improve view dumping code's handling of dropped columns in referenced tables (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.14/changes/010", "db_id": "e7e36cc4981b3e16bbe63d25d7eca0af", "patch_ids": [], "statement_hash": "5dc06c245ea4e3c3ed6ad7f50f3829f6da126e4513db103f92f5dfd1b7aca22e", "relations": [{"rule": 2, "type": "equivalent", "target": "81ee2f983abfd8b0131b512c9350f0a1", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5dc06c245ea4e3c3ed6ad7f50f3829f6da126e4513db103f92f5dfd1b7aca22e"}}, {"rule": 2, "type": "equivalent", "target": "cd6e07eeed1dd934e9e80f82f71d7097", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5dc06c245ea4e3c3ed6ad7f50f3829f6da126e4513db103f92f5dfd1b7aca22e"}}], "version": "9.0.14", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "81ee2f983abfd8b0131b512c9350f0a1", "kind": "equivalent", "version": "9.2.5", "label": "9.2.5", "title": "改进视图转储代码对被引用表中已删除列的处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5dc06c245ea4e3c3ed6ad7f50f3829f6da126e4513db103f92f5dfd1b7aca22e"}, "url": "/docs/compare/?release=9.2.5#9.2.5-b66394f76d185c65", "source_url": "/docs/release/9.2.5/#id-1.11.6.24.5"}, {"db_id": "cd6e07eeed1dd934e9e80f82f71d7097", "kind": "equivalent", "version": "9.1.10", "label": "9.1.10", "title": "改进视图转储代码对被引用表中已删除列的处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5dc06c245ea4e3c3ed6ad7f50f3829f6da126e4513db103f92f5dfd1b7aca22e"}, "url": "/docs/compare/?release=9.1.10#9.1.10-b66394f76d185c65", "source_url": "/docs/release/9.1.10/#id-1.11.6.19.5"}]}, {"id": "9.0.14-1aeb23774d2db78a", "cves": [], "html": "<p>正确记录使用 <code>UNIQUE</code> 和 <code>PRIMARY KEY</code> 语法创建的索引注释（Andres Freund）</p>\n<p>这修复了一个并行 <span>pg_restore</span> 失败问题。</p>", "text": "正确记录使用 UNIQUE 和 PRIMARY KEY 语法创建的索引注释（Andres Freund） 这修复了一个并行 pg_restore 失败问题。", "title": "正确记录使用 UNIQUE 和 PRIMARY KEY 语法创建的索引注释", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.14/#id-1.11.6.14.5", "source_hash": "7e117aaa89ff09bda2bf2b9314ff33c27f515a640b38872fa18b8f251f27b8b5", "section_path": ["变更"], "commit_groups": [], "identity_text": "Properly record index comments created using UNIQUE and PRIMARY KEY syntax (Andres Freund) This fixes a parallel pg_restore failure.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.14/changes/011", "db_id": "213090e885c6702e2269f49eb8c805cf", "patch_ids": [], "statement_hash": "a4f815f24b33e1ace54df4b23b0bdf97eebee8456a5e0b2b888255fea3904161", "relations": [{"rule": 2, "type": "equivalent", "target": "28017140b2415e1ab9f23d37ccea9c8b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a4f815f24b33e1ace54df4b23b0bdf97eebee8456a5e0b2b888255fea3904161"}}, {"rule": 2, "type": "equivalent", "target": "ad5ef03d0909bb13782689bcf2c31c86", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a4f815f24b33e1ace54df4b23b0bdf97eebee8456a5e0b2b888255fea3904161"}}], "version": "9.0.14", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "ad5ef03d0909bb13782689bcf2c31c86", "kind": "equivalent", "version": "9.2.5", "label": "9.2.5", "title": "正确记录使用 UNIQUE 和 PRIMARY KEY 语法创建的索引注释", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a4f815f24b33e1ace54df4b23b0bdf97eebee8456a5e0b2b888255fea3904161"}, "url": "/docs/compare/?release=9.2.5#9.2.5-1aeb23774d2db78a", "source_url": "/docs/release/9.2.5/#id-1.11.6.24.5"}, {"db_id": "28017140b2415e1ab9f23d37ccea9c8b", "kind": "equivalent", "version": "9.1.10", "label": "9.1.10", "title": "正确记录使用 UNIQUE 和 PRIMARY KEY 语法创建的索引注释", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a4f815f24b33e1ace54df4b23b0bdf97eebee8456a5e0b2b888255fea3904161"}, "url": "/docs/compare/?release=9.1.10#9.1.10-1aeb23774d2db78a", "source_url": "/docs/release/9.1.10/#id-1.11.6.19.5"}]}, {"id": "9.0.14-58af445fb75b22a7", "cves": [], "html": "<p>修复 <code>REINDEX TABLE</code> 和 <code>REINDEX DATABASE</code>，使其正确重新验证约束并把已失效的索引标记为有效（Noah Misch）</p>\n<p><code>REINDEX INDEX</code> 一直工作正常。</p>", "text": "修复 REINDEX TABLE 和 REINDEX DATABASE，使其正确重新验证约束并把已失效的索引标记为有效（Noah Misch） REINDEX INDEX 一直工作正常。", "title": "修复 REINDEX TABLE 和 REINDEX DATABASE，使其正确重新验证约束并把已失效的索引标记为有效", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.14/#id-1.11.6.14.5", "source_hash": "7ef9dfc92027edca1b54905b6b22dfb5e0a1c992f73ae9ab4550032ced655a82", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix REINDEX TABLE and REINDEX DATABASE to properly revalidate constraints and mark invalidated indexes as valid (Noah Misch) REINDEX INDEX has always worked properly.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.14/changes/012", "db_id": "9bf0ba3f2719837330299f84814a77c2", "patch_ids": [], "statement_hash": "e808ce552a71424934f6979c5957cbb58c736c2825209130973b02092995e289", "relations": [{"rule": 2, "type": "equivalent", "target": "b798973f5d9c73404a9660cebcc12192", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e808ce552a71424934f6979c5957cbb58c736c2825209130973b02092995e289"}}, {"rule": 2, "type": "equivalent", "target": "bd7ed2622d8ff054de82ca4b7b8fa044", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e808ce552a71424934f6979c5957cbb58c736c2825209130973b02092995e289"}}], "version": "9.0.14", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "bd7ed2622d8ff054de82ca4b7b8fa044", "kind": "equivalent", "version": "9.2.5", "label": "9.2.5", "title": "修复 REINDEX TABLE 和 REINDEX DATABASE，使其正确重新验证约束并把已失效的索引标记为有效", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e808ce552a71424934f6979c5957cbb58c736c2825209130973b02092995e289"}, "url": "/docs/compare/?release=9.2.5#9.2.5-58af445fb75b22a7", "source_url": "/docs/release/9.2.5/#id-1.11.6.24.5"}, {"db_id": "b798973f5d9c73404a9660cebcc12192", "kind": "equivalent", "version": "9.1.10", "label": "9.1.10", "title": "修复 REINDEX TABLE 和 REINDEX DATABASE，使其正确重新验证约束并把已失效的索引标记为有效", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e808ce552a71424934f6979c5957cbb58c736c2825209130973b02092995e289"}, "url": "/docs/compare/?release=9.1.10#9.1.10-58af445fb75b22a7", "source_url": "/docs/release/9.1.10/#id-1.11.6.19.5"}]}, {"id": "9.0.14-8aa9e131b10c322e", "cves": [], "html": "<p>修复并发执行 <code>CREATE INDEX CONCURRENTLY</code> 操作时可能出现的死锁（Tom Lane）</p>", "text": "修复并发执行 CREATE INDEX CONCURRENTLY 操作时可能出现的死锁（Tom Lane）", "title": "修复并发执行 CREATE INDEX CONCURRENTLY 操作时可能出现的死锁", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.14/#id-1.11.6.14.5", "source_hash": "9b0d57e1ecf4be87608ba59861f66724e8a0c407f70f9ceb56cadf1f02e4e45c", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix possible deadlock during concurrent CREATE INDEX CONCURRENTLY operations (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.14/changes/013", "db_id": "34d803e0faf05502579cd2c749c4d06c", "patch_ids": [], "statement_hash": "6bbc423de7b8b33d5399038be308e289004ccbf65eb5f0ec62b383801aded9fe", "relations": [{"rule": 2, "type": "equivalent", "target": "597ad5f9ac792018f03f656fcaed7b08", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6bbc423de7b8b33d5399038be308e289004ccbf65eb5f0ec62b383801aded9fe"}}, {"rule": 2, "type": "equivalent", "target": "a6e72b65cf2d3ce1ac39cdca7c6677bb", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6bbc423de7b8b33d5399038be308e289004ccbf65eb5f0ec62b383801aded9fe"}}], "version": "9.0.14", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "597ad5f9ac792018f03f656fcaed7b08", "kind": "equivalent", "version": "9.2.5", "label": "9.2.5", "title": "修复并发执行 CREATE INDEX CONCURRENTLY 操作时可能出现的死锁", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6bbc423de7b8b33d5399038be308e289004ccbf65eb5f0ec62b383801aded9fe"}, "url": "/docs/compare/?release=9.2.5#9.2.5-8aa9e131b10c322e", "source_url": "/docs/release/9.2.5/#id-1.11.6.24.5"}, {"db_id": "a6e72b65cf2d3ce1ac39cdca7c6677bb", "kind": "equivalent", "version": "9.1.10", "label": "9.1.10", "title": "修复并发执行 CREATE INDEX CONCURRENTLY 操作时可能出现的死锁", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6bbc423de7b8b33d5399038be308e289004ccbf65eb5f0ec62b383801aded9fe"}, "url": "/docs/compare/?release=9.1.10#9.1.10-8aa9e131b10c322e", "source_url": "/docs/release/9.1.10/#id-1.11.6.19.5"}]}, {"id": "9.0.14-8f17a69d57de12f7", "cves": [], "html": "<p>修复 <code>regexp_matches()</code> 对零长度匹配的处理（Jeevan Chalke）</p>\n<p>此前，像 '^' 这样的零长度匹配可能返回过多的匹配。</p>", "text": "修复 regexp_matches() 对零长度匹配的处理（Jeevan Chalke） 此前，像 '^' 这样的零长度匹配可能返回过多的匹配。", "title": "修复 regexp_matches() 对零长度匹配的处理", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.14/#id-1.11.6.14.5", "source_hash": "22374c4b5161e16d6c03538cabc23c2064d039264b8088a36d845366dab9665f", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix regexp_matches() handling of zero-length matches (Jeevan Chalke) Previously, zero-length matches like '^' could return too many matches.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.14/changes/014", "db_id": "6511e37c5c9c85dd3ed499e05bef81e4", "patch_ids": [], "statement_hash": "3f081543591cb151c0a0fbb43aa0f4b894b790b86bb48db337acc979495cf4ec", "relations": [{"rule": 2, "type": "equivalent", "target": "a475d3560abf5f280d85e3efe8965619", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3f081543591cb151c0a0fbb43aa0f4b894b790b86bb48db337acc979495cf4ec"}}, {"rule": 2, "type": "equivalent", "target": "f8b2d522976f38acc9099d4b41603906", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3f081543591cb151c0a0fbb43aa0f4b894b790b86bb48db337acc979495cf4ec"}}], "version": "9.0.14", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "a475d3560abf5f280d85e3efe8965619", "kind": "equivalent", "version": "9.2.5", "label": "9.2.5", "title": "修复 regexp_matches() 对零长度匹配的处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3f081543591cb151c0a0fbb43aa0f4b894b790b86bb48db337acc979495cf4ec"}, "url": "/docs/compare/?release=9.2.5#9.2.5-8f17a69d57de12f7", "source_url": "/docs/release/9.2.5/#id-1.11.6.24.5"}, {"db_id": "f8b2d522976f38acc9099d4b41603906", "kind": "equivalent", "version": "9.1.10", "label": "9.1.10", "title": "修复 regexp_matches() 对零长度匹配的处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3f081543591cb151c0a0fbb43aa0f4b894b790b86bb48db337acc979495cf4ec"}, "url": "/docs/compare/?release=9.1.10#9.1.10-8f17a69d57de12f7", "source_url": "/docs/release/9.1.10/#id-1.11.6.19.5"}]}, {"id": "9.0.14-5440d48a817af183", "cves": [], "html": "<p>修复过于复杂的正则表达式导致崩溃的问题（Heikki Linnakangas）</p>", "text": "修复过于复杂的正则表达式导致崩溃的问题（Heikki Linnakangas）", "title": "修复过于复杂的正则表达式导致崩溃的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.14/#id-1.11.6.14.5", "source_hash": "45ab2fc351cee279603c9a6dd8a14eb3267828fe43db8182546b1e557ff176e1", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix crash for overly-complex regular expressions (Heikki Linnakangas)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.14/changes/015", "db_id": "e8f536eba73f883e86ab7c9670247535", "patch_ids": [], "statement_hash": "184dd1657b138851c4a71789544d9a5dd1e05a9372ccda9f8a62d82d8406fca8", "relations": [{"rule": 2, "type": "equivalent", "target": "2bb0df631faf418882dfc5d1e1fd7dda", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "184dd1657b138851c4a71789544d9a5dd1e05a9372ccda9f8a62d82d8406fca8"}}, {"rule": 2, "type": "equivalent", "target": "d55d42495cf06636b5f2d8ee454f2536", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "184dd1657b138851c4a71789544d9a5dd1e05a9372ccda9f8a62d82d8406fca8"}}], "version": "9.0.14", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "2bb0df631faf418882dfc5d1e1fd7dda", "kind": "equivalent", "version": "9.2.5", "label": "9.2.5", "title": "修复过于复杂的正则表达式导致崩溃的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "184dd1657b138851c4a71789544d9a5dd1e05a9372ccda9f8a62d82d8406fca8"}, "url": "/docs/compare/?release=9.2.5#9.2.5-5440d48a817af183", "source_url": "/docs/release/9.2.5/#id-1.11.6.24.5"}, {"db_id": "d55d42495cf06636b5f2d8ee454f2536", "kind": "equivalent", "version": "9.1.10", "label": "9.1.10", "title": "修复过于复杂的正则表达式导致崩溃的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "184dd1657b138851c4a71789544d9a5dd1e05a9372ccda9f8a62d82d8406fca8"}, "url": "/docs/compare/?release=9.1.10#9.1.10-5440d48a817af183", "source_url": "/docs/release/9.1.10/#id-1.11.6.19.5"}]}, {"id": "9.0.14-eafc96e04fc65f7a", "cves": [], "html": "<p>修复反向引用与非贪婪量词组合时正则表达式匹配失败的问题（Jeevan Chalke）</p>", "text": "修复反向引用与非贪婪量词组合时正则表达式匹配失败的问题（Jeevan Chalke）", "title": "修复反向引用与非贪婪量词组合时正则表达式匹配失败的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.14/#id-1.11.6.14.5", "source_hash": "261feecea3243213cda8b1f2ee6b31547bfc38ce2ff6292b16b291f35b18fd13", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix regular expression match failures for back references combined with non-greedy quantifiers (Jeevan Chalke)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.14/changes/016", "db_id": "bacaffbafcdc345f1f8dc11456b087b4", "patch_ids": [], "statement_hash": "d507bfe0e0088860cfbba49a25c9ed82185512af4f09900c1f4268648c2662b0", "relations": [{"rule": 2, "type": "equivalent", "target": "3b3f4a21b29a8d3dc5ba3c6f7a7e8c61", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d507bfe0e0088860cfbba49a25c9ed82185512af4f09900c1f4268648c2662b0"}}, {"rule": 2, "type": "equivalent", "target": "8cbbe988eacbecd86eed1031c64c6bcb", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d507bfe0e0088860cfbba49a25c9ed82185512af4f09900c1f4268648c2662b0"}}], "version": "9.0.14", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "3b3f4a21b29a8d3dc5ba3c6f7a7e8c61", "kind": "equivalent", "version": "9.2.5", "label": "9.2.5", "title": "修复反向引用与非贪婪量词组合时正则表达式匹配失败的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d507bfe0e0088860cfbba49a25c9ed82185512af4f09900c1f4268648c2662b0"}, "url": "/docs/compare/?release=9.2.5#9.2.5-eafc96e04fc65f7a", "source_url": "/docs/release/9.2.5/#id-1.11.6.24.5"}, {"db_id": "8cbbe988eacbecd86eed1031c64c6bcb", "kind": "equivalent", "version": "9.1.10", "label": "9.1.10", "title": "修复反向引用与非贪婪量词组合时正则表达式匹配失败的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d507bfe0e0088860cfbba49a25c9ed82185512af4f09900c1f4268648c2662b0"}, "url": "/docs/compare/?release=9.1.10#9.1.10-eafc96e04fc65f7a", "source_url": "/docs/release/9.1.10/#id-1.11.6.19.5"}]}, {"id": "9.0.14-f6079032675e767f", "cves": [], "html": "<p>除非启用了函数体检查，否则防止 <code>CREATE FUNCTION</code> 检查 <code>SET</code> 变量（Tom Lane）</p>", "text": "除非启用了函数体检查，否则防止 CREATE FUNCTION 检查 SET 变量（Tom Lane）", "title": "除非启用了函数体检查，否则防止 CREATE FUNCTION 检查 SET 变量", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.14/#id-1.11.6.14.5", "source_hash": "bd9e8c215fa2f75455ad26ec6fb8e733df68be9a3245d6d918a74a3c473a4128", "section_path": ["变更"], "commit_groups": [], "identity_text": "Prevent CREATE FUNCTION from checking SET variables unless function body checking is enabled (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.14/changes/017", "db_id": "0cc8abd693ef1496bda0846c2a0be99d", "patch_ids": [], "statement_hash": "83af4d120cca6f2f5fb585cb136dc024ff3def29b9dbc29ed3e29e633da65ef2", "relations": [{"rule": 2, "type": "equivalent", "target": "4b7ff29db9a4dd18c6378a2775cece9c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "83af4d120cca6f2f5fb585cb136dc024ff3def29b9dbc29ed3e29e633da65ef2"}}, {"rule": 2, "type": "equivalent", "target": "952098d7106adf07d8708504ded36cdc", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "83af4d120cca6f2f5fb585cb136dc024ff3def29b9dbc29ed3e29e633da65ef2"}}, {"rule": 2, "type": "equivalent", "target": "bab837642eb334b82c387136f2b5db7a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "83af4d120cca6f2f5fb585cb136dc024ff3def29b9dbc29ed3e29e633da65ef2"}}], "version": "9.0.14", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "952098d7106adf07d8708504ded36cdc", "kind": "equivalent", "version": "9.3.1", "label": "9.3.1", "title": "除非启用了函数体检查，否则防止 CREATE FUNCTION 检查 SET 变量", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "83af4d120cca6f2f5fb585cb136dc024ff3def29b9dbc29ed3e29e633da65ef2"}, "url": "/docs/compare/?release=9.3.1#9.3.1-f6079032675e767f", "source_url": "/docs/release/9.3.1/#id-1.11.6.29.5"}, {"db_id": "4b7ff29db9a4dd18c6378a2775cece9c", "kind": "equivalent", "version": "9.2.5", "label": "9.2.5", "title": "除非启用了函数体检查，否则防止 CREATE FUNCTION 检查 SET 变量", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "83af4d120cca6f2f5fb585cb136dc024ff3def29b9dbc29ed3e29e633da65ef2"}, "url": "/docs/compare/?release=9.2.5#9.2.5-f6079032675e767f", "source_url": "/docs/release/9.2.5/#id-1.11.6.24.5"}, {"db_id": "bab837642eb334b82c387136f2b5db7a", "kind": "equivalent", "version": "9.1.10", "label": "9.1.10", "title": "除非启用了函数体检查，否则防止 CREATE FUNCTION 检查 SET 变量", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "83af4d120cca6f2f5fb585cb136dc024ff3def29b9dbc29ed3e29e633da65ef2"}, "url": "/docs/compare/?release=9.1.10#9.1.10-f6079032675e767f", "source_url": "/docs/release/9.1.10/#id-1.11.6.19.5"}]}, {"id": "9.0.14-d624a9f4be126acf", "cves": [], "html": "<p>允许 <code>ALTER DEFAULT PRIVILEGES</code> 在不需要 CREATE 权限的情况下对模式操作（Tom Lane）</p>", "text": "允许 ALTER DEFAULT PRIVILEGES 在不需要 CREATE 权限的情况下对模式操作（Tom Lane）", "title": "允许 ALTER DEFAULT PRIVILEGES 在不需要 CREATE 权限的情况下对模式操作", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.14/#id-1.11.6.14.5", "source_hash": "2e88e6a1ef73221c5baf639d24db044e58dc5e3b7a7397a0b29d3d70dc28497a", "section_path": ["变更"], "commit_groups": [], "identity_text": "Allow ALTER DEFAULT PRIVILEGES to operate on schemas without requiring CREATE permission (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.14/changes/018", "db_id": "ed1fa9a0964254054b8b97a0c8cb89b3", "patch_ids": [], "statement_hash": "3dadddc190109b5af0593979e711241828934ce634a867ac55e888a13614b662", "relations": [{"rule": 2, "type": "equivalent", "target": "17d543029b439d30c459e6ac4af1b9e9", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3dadddc190109b5af0593979e711241828934ce634a867ac55e888a13614b662"}}, {"rule": 2, "type": "equivalent", "target": "76758e22eeb09e42b36e71ad1ef2edab", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3dadddc190109b5af0593979e711241828934ce634a867ac55e888a13614b662"}}], "version": "9.0.14", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "17d543029b439d30c459e6ac4af1b9e9", "kind": "equivalent", "version": "9.2.5", "label": "9.2.5", "title": "允许 ALTER DEFAULT PRIVILEGES 在不需要 CREATE 权限的情况下对模式操作", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3dadddc190109b5af0593979e711241828934ce634a867ac55e888a13614b662"}, "url": "/docs/compare/?release=9.2.5#9.2.5-d624a9f4be126acf", "source_url": "/docs/release/9.2.5/#id-1.11.6.24.5"}, {"db_id": "76758e22eeb09e42b36e71ad1ef2edab", "kind": "equivalent", "version": "9.1.10", "label": "9.1.10", "title": "允许 ALTER DEFAULT PRIVILEGES 在不需要 CREATE 权限的情况下对模式操作", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3dadddc190109b5af0593979e711241828934ce634a867ac55e888a13614b662"}, "url": "/docs/compare/?release=9.1.10#9.1.10-d624a9f4be126acf", "source_url": "/docs/release/9.1.10/#id-1.11.6.19.5"}]}, {"id": "9.0.14-8d55cb8b9974fcdb", "cves": [], "html": "<p>放宽对查询中所用关键字的限制（Tom Lane）</p>\n<p>具体而言，放宽了角色名、语言名、<code>EXPLAIN</code> 和 <code>COPY</code> 选项以及 <code>SET</code> 值的关键字限制。这使得 <code>COPY ... (FORMAT BINARY)</code> 能按预期工作；此前 <code>BINARY</code> 需要加引号。</p>", "text": "放宽对查询中所用关键字的限制（Tom Lane） 具体而言，放宽了角色名、语言名、EXPLAIN 和 COPY 选项以及 SET 值的关键字限制。这使得 COPY ... (FORMAT BINARY) 能按预期工作；此前 BINARY 需要加引号。", "title": "放宽对查询中所用关键字的限制", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.14/#id-1.11.6.14.5", "source_hash": "dcf425236ea15c47418d5c19b67979ac5ed4ea2064fa35512003e93c10272418", "section_path": ["变更"], "commit_groups": [], "identity_text": "Loosen restriction on keywords used in queries (Tom Lane) Specifically, lessen keyword restrictions for role names, language names, EXPLAIN and COPY options, and SET values. This allows COPY ... (FORMAT BINARY) to work as expected; previously BINARY needed to be quoted.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.14/changes/019", "db_id": "778b513ca23debcf6ed633e3deb4822b", "patch_ids": [], "statement_hash": "133c2d7168397d3958833e22719ea9b78678ed52f004f023dc0c0e4737307593", "relations": [{"rule": 2, "type": "equivalent", "target": "8cb6845a33ed6ddefd8d5ac8ca8b5f2f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "133c2d7168397d3958833e22719ea9b78678ed52f004f023dc0c0e4737307593"}}, {"rule": 2, "type": "equivalent", "target": "d23e8108c2ee2dc596a8a5a0251b2bcd", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "133c2d7168397d3958833e22719ea9b78678ed52f004f023dc0c0e4737307593"}}], "version": "9.0.14", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "d23e8108c2ee2dc596a8a5a0251b2bcd", "kind": "equivalent", "version": "9.2.5", "label": "9.2.5", "title": "放宽对查询中所用关键字的限制", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "133c2d7168397d3958833e22719ea9b78678ed52f004f023dc0c0e4737307593"}, "url": "/docs/compare/?release=9.2.5#9.2.5-8d55cb8b9974fcdb", "source_url": "/docs/release/9.2.5/#id-1.11.6.24.5"}, {"db_id": "8cb6845a33ed6ddefd8d5ac8ca8b5f2f", "kind": "equivalent", "version": "9.1.10", "label": "9.1.10", "title": "放宽对查询中所用关键字的限制", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "133c2d7168397d3958833e22719ea9b78678ed52f004f023dc0c0e4737307593"}, "url": "/docs/compare/?release=9.1.10#9.1.10-8d55cb8b9974fcdb", "source_url": "/docs/release/9.1.10/#id-1.11.6.19.5"}]}, {"id": "9.0.14-75fd206a8e328220", "cves": [], "html": "<p>修复 <code>pgp_pub_decrypt()</code>，使其可用于带口令的密钥（Marko Kreen）</p>", "text": "修复 pgp_pub_decrypt()，使其可用于带口令的密钥（Marko Kreen）", "title": "修复 pgp_pub_decrypt()，使其可用于带口令的密钥", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.14/#id-1.11.6.14.5", "source_hash": "4b0cf3daf80ce5d676170226661c5ccdf77a4be2d5848f64badccd584cbb52ca", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix pgp_pub_decrypt() so it works for secret keys with passwords (Marko Kreen)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.14/changes/020", "db_id": "3ea039f03eb9b34754270898d3055498", "patch_ids": [], "statement_hash": "8f03c9c8f735f75a8d502de5e808fdb135d01b98c2ef564bbd58a89a6cf18a09", "relations": [{"rule": 2, "type": "equivalent", "target": "465e93bfd2b7be362ddceed4eede4def", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8f03c9c8f735f75a8d502de5e808fdb135d01b98c2ef564bbd58a89a6cf18a09"}}, {"rule": 2, "type": "equivalent", "target": "a1a260fa812b84162907b55e4c403c3a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8f03c9c8f735f75a8d502de5e808fdb135d01b98c2ef564bbd58a89a6cf18a09"}}], "version": "9.0.14", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "a1a260fa812b84162907b55e4c403c3a", "kind": "equivalent", "version": "9.2.5", "label": "9.2.5", "title": "修复 pgp_pub_decrypt()，使其可用于带口令的密钥", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8f03c9c8f735f75a8d502de5e808fdb135d01b98c2ef564bbd58a89a6cf18a09"}, "url": "/docs/compare/?release=9.2.5#9.2.5-75fd206a8e328220", "source_url": "/docs/release/9.2.5/#id-1.11.6.24.5"}, {"db_id": "465e93bfd2b7be362ddceed4eede4def", "kind": "equivalent", "version": "9.1.10", "label": "9.1.10", "title": "修复 pgp_pub_decrypt()，使其可用于带口令的密钥", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8f03c9c8f735f75a8d502de5e808fdb135d01b98c2ef564bbd58a89a6cf18a09"}, "url": "/docs/compare/?release=9.1.10#9.1.10-75fd206a8e328220", "source_url": "/docs/release/9.1.10/#id-1.11.6.19.5"}]}, {"id": "9.0.14-020533c475c53e34", "cves": [], "html": "<p>移除无索引表清理期间罕见的不准确警告（Heikki Linnakangas）</p>", "text": "移除无索引表清理期间罕见的不准确警告（Heikki Linnakangas）", "title": "移除无索引表清理期间罕见的不准确警告", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.14/#id-1.11.6.14.5", "source_hash": "7aa5eb89f3c6a0ec137fcbd5c9f38f57c97d7957ebc7569bce7ae77132ce0c3d", "section_path": ["变更"], "commit_groups": [], "identity_text": "Remove rare inaccurate warning during vacuum of index-less tables (Heikki Linnakangas)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.14/changes/021", "db_id": "f19dec60ba95d259d851bea1ba274eb5", "patch_ids": [], "statement_hash": "f2968be5e00a32929b39816877d8ba644f35c32c2b62614107a0c7638403ed39", "relations": [{"rule": 2, "type": "equivalent", "target": "1cd4e08d8d8118ced058999f7694a5df", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f2968be5e00a32929b39816877d8ba644f35c32c2b62614107a0c7638403ed39"}}, {"rule": 2, "type": "equivalent", "target": "35fa6bf292d6d773149d2968283feee6", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f2968be5e00a32929b39816877d8ba644f35c32c2b62614107a0c7638403ed39"}}, {"rule": 2, "type": "equivalent", "target": "b693deb5d849d6fa745ce608ef1c7b19", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f2968be5e00a32929b39816877d8ba644f35c32c2b62614107a0c7638403ed39"}}], "version": "9.0.14", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "35fa6bf292d6d773149d2968283feee6", "kind": "equivalent", "version": "9.3.1", "label": "9.3.1", "title": "移除无索引表清理期间罕见的不准确警告", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f2968be5e00a32929b39816877d8ba644f35c32c2b62614107a0c7638403ed39"}, "url": "/docs/compare/?release=9.3.1#9.3.1-020533c475c53e34", "source_url": "/docs/release/9.3.1/#id-1.11.6.29.5"}, {"db_id": "1cd4e08d8d8118ced058999f7694a5df", "kind": "equivalent", "version": "9.2.5", "label": "9.2.5", "title": "移除无索引表清理期间罕见的不准确警告", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f2968be5e00a32929b39816877d8ba644f35c32c2b62614107a0c7638403ed39"}, "url": "/docs/compare/?release=9.2.5#9.2.5-020533c475c53e34", "source_url": "/docs/release/9.2.5/#id-1.11.6.24.5"}, {"db_id": "b693deb5d849d6fa745ce608ef1c7b19", "kind": "equivalent", "version": "9.1.10", "label": "9.1.10", "title": "移除无索引表清理期间罕见的不准确警告", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f2968be5e00a32929b39816877d8ba644f35c32c2b62614107a0c7638403ed39"}, "url": "/docs/compare/?release=9.1.10#9.1.10-020533c475c53e34", "source_url": "/docs/release/9.1.10/#id-1.11.6.19.5"}]}, {"id": "9.0.14-b1151844bb009cbb", "cves": [], "html": "<p>确保当 <code>VACUUM ANALYZE</code> 的文件截断尝试因锁冲突被取消时，仍然执行 ANALYZE 阶段（Kevin Grittner）</p>", "text": "确保当 VACUUM ANALYZE 的文件截断尝试因锁冲突被取消时，仍然执行 ANALYZE 阶段（Kevin Grittner）", "title": "确保当 VACUUM ANALYZE 的文件截断尝试因锁冲突被取消时，仍然执行 ANALYZE 阶段", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.14/#id-1.11.6.14.5", "source_hash": "881f0e0c6ff3e436b528ade7f45d8de4154dea90e3e130e9ed40aaaf873132ec", "section_path": ["变更"], "commit_groups": [], "identity_text": "Ensure that VACUUM ANALYZE still runs the ANALYZE phase if its attempt to truncate the file is cancelled due to lock conflicts (Kevin Grittner)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.14/changes/022", "db_id": "e44245b453c01c01b78957813101a36d", "patch_ids": [], "statement_hash": "f1ae966156c78dae9a9602775d7f27071e0bcc13d355654bd12c511900f4e8a0", "relations": [{"rule": 2, "type": "equivalent", "target": "329d9ef42297e4348384a8790f1183a2", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f1ae966156c78dae9a9602775d7f27071e0bcc13d355654bd12c511900f4e8a0"}}, {"rule": 2, "type": "equivalent", "target": "e16fc46a6be285e4b688120496344804", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f1ae966156c78dae9a9602775d7f27071e0bcc13d355654bd12c511900f4e8a0"}}], "version": "9.0.14", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "329d9ef42297e4348384a8790f1183a2", "kind": "equivalent", "version": "9.2.5", "label": "9.2.5", "title": "确保当 VACUUM ANALYZE 的文件截断尝试因锁冲突被取消时，仍然执行 ANALYZE 阶段", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f1ae966156c78dae9a9602775d7f27071e0bcc13d355654bd12c511900f4e8a0"}, "url": "/docs/compare/?release=9.2.5#9.2.5-b1151844bb009cbb", "source_url": "/docs/release/9.2.5/#id-1.11.6.24.5"}, {"db_id": "e16fc46a6be285e4b688120496344804", "kind": "equivalent", "version": "9.1.10", "label": "9.1.10", "title": "确保当 VACUUM ANALYZE 的文件截断尝试因锁冲突被取消时，仍然执行 ANALYZE 阶段", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f1ae966156c78dae9a9602775d7f27071e0bcc13d355654bd12c511900f4e8a0"}, "url": "/docs/compare/?release=9.1.10#9.1.10-b1151844bb009cbb", "source_url": "/docs/release/9.1.10/#id-1.11.6.19.5"}]}, {"id": "9.0.14-37bbcb6a58bbce6f", "cves": [], "html": "<p>避免在预备查询中执行事务控制命令（例如 ROLLBACK）时可能出现的失败（Tom Lane）</p>", "text": "避免在预备查询中执行事务控制命令（例如 ROLLBACK）时可能出现的失败（Tom Lane）", "title": "避免在预备查询中执行事务控制命令（例如 ROLLBACK）时可能出现的失败", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.14/#id-1.11.6.14.5", "source_hash": "94bd992ec812b2c0256537f35d03ba9dca96253229b63fff82e9183570576068", "section_path": ["变更"], "commit_groups": [], "identity_text": "Avoid possible failure when performing transaction control commands (e.g ROLLBACK) in prepared queries (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.14/changes/023", "db_id": "3bdb9eef2523e1c419cee9ac485fa8c3", "patch_ids": [], "statement_hash": "f20c1fba0f6315ea0c4f56ae950d030dd0b0ef3f318bcfe11736e2cb3eb4ffde", "relations": [{"rule": 2, "type": "equivalent", "target": "099f366475e9805dd5b4cacd95613bbd", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f20c1fba0f6315ea0c4f56ae950d030dd0b0ef3f318bcfe11736e2cb3eb4ffde"}}, {"rule": 2, "type": "equivalent", "target": "cfb3145c217068c70d2506d8888b9e4a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f20c1fba0f6315ea0c4f56ae950d030dd0b0ef3f318bcfe11736e2cb3eb4ffde"}}], "version": "9.0.14", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "099f366475e9805dd5b4cacd95613bbd", "kind": "equivalent", "version": "9.2.5", "label": "9.2.5", "title": "避免在预备查询中执行事务控制命令（例如 ROLLBACK）时可能出现的失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f20c1fba0f6315ea0c4f56ae950d030dd0b0ef3f318bcfe11736e2cb3eb4ffde"}, "url": "/docs/compare/?release=9.2.5#9.2.5-37bbcb6a58bbce6f", "source_url": "/docs/release/9.2.5/#id-1.11.6.24.5"}, {"db_id": "cfb3145c217068c70d2506d8888b9e4a", "kind": "equivalent", "version": "9.1.10", "label": "9.1.10", "title": "避免在预备查询中执行事务控制命令（例如 ROLLBACK）时可能出现的失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f20c1fba0f6315ea0c4f56ae950d030dd0b0ef3f318bcfe11736e2cb3eb4ffde"}, "url": "/docs/compare/?release=9.1.10#9.1.10-37bbcb6a58bbce6f", "source_url": "/docs/release/9.1.10/#id-1.11.6.19.5"}]}, {"id": "9.0.14-e621ae53f35ae46e", "cves": [], "html": "<p>确保浮点数据输入在所有平台上都接受标准的<span>“<span>infinity</span>”</span>（无穷大）写法（Tom Lane）</p>\n<p>C99 标准规定允许的写法为 <code>inf</code>、<code>+inf</code>、<code>-inf</code>、<code>infinity</code>、<code>+infinity</code> 和 <code>-infinity</code>。即使平台的 <code>strtod</code> 函数不支持，也确保我们能识别这些写法。</p>", "text": "确保浮点数据输入在所有平台上都接受标准的“infinity”（无穷大）写法（Tom Lane） C99 标准规定允许的写法为 inf、+inf、-inf、infinity、+infinity 和 -infinity。即使平台的 strtod 函数不支持，也确保我们能识别这些写法。", "title": "确保浮点数据输入在所有平台上都接受标准的“infinity”（无穷大）写法", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.14/#id-1.11.6.14.5", "source_hash": "14600cc273354854c3464b5501e1346a4e00dcc82fef6d98be4a25166986c882", "section_path": ["变更"], "commit_groups": [], "identity_text": "Ensure that floating-point data input accepts standard spellings of infinity on all platforms (Tom Lane) The C99 standard says that allowable spellings are inf, +inf, -inf, infinity, +infinity, and -infinity. Make sure we recognize these even if the platform's strtod function doesn't.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.14/changes/024", "db_id": "0cc99818e036142597007880ac318aa4", "patch_ids": [], "statement_hash": "40cfb8ad893740e96bbd8b10f1daa2fbe7a725c92055ec6eb4806ae0e6751e31", "relations": [{"rule": 2, "type": "equivalent", "target": "5e46449e817956f5cfc74b10a335e8fd", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "40cfb8ad893740e96bbd8b10f1daa2fbe7a725c92055ec6eb4806ae0e6751e31"}}, {"rule": 2, "type": "equivalent", "target": "629e07cb32f16c285f0d3c43a574fc9d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "40cfb8ad893740e96bbd8b10f1daa2fbe7a725c92055ec6eb4806ae0e6751e31"}}], "version": "9.0.14", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "629e07cb32f16c285f0d3c43a574fc9d", "kind": "equivalent", "version": "9.2.5", "label": "9.2.5", "title": "确保浮点数据输入在所有平台上都接受标准的“infinity”（无穷大）写法", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "40cfb8ad893740e96bbd8b10f1daa2fbe7a725c92055ec6eb4806ae0e6751e31"}, "url": "/docs/compare/?release=9.2.5#9.2.5-e621ae53f35ae46e", "source_url": "/docs/release/9.2.5/#id-1.11.6.24.5"}, {"db_id": "5e46449e817956f5cfc74b10a335e8fd", "kind": "equivalent", "version": "9.1.10", "label": "9.1.10", "title": "确保浮点数据输入在所有平台上都接受标准的“infinity”（无穷大）写法", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "40cfb8ad893740e96bbd8b10f1daa2fbe7a725c92055ec6eb4806ae0e6751e31"}, "url": "/docs/compare/?release=9.1.10#9.1.10-e621ae53f35ae46e", "source_url": "/docs/release/9.1.10/#id-1.11.6.19.5"}]}, {"id": "9.0.14-02f09ee722d28f69", "cves": [], "html": "<p>扩展行与记录和数组比较的能力（Rafal Rzepecki、Tom Lane）</p>", "text": "扩展行与记录和数组比较的能力（Rafal Rzepecki、Tom Lane）", "title": "扩展行与记录和数组比较的能力", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.14/#id-1.11.6.14.5", "source_hash": "aaf2be50cb5549081c920550c1227da592059f7c8613b77d11ff0a59bc1da7a8", "section_path": ["变更"], "commit_groups": [], "identity_text": "Expand ability to compare rows to records and arrays (Rafal Rzepecki, Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.14/changes/025", "db_id": "1b3122e225254f5fc0a24dd7aeb691e4", "patch_ids": [], "statement_hash": "cc060c998f552a7bbdfb26921cd9062f207e679a40f64080d6f326630f5a2a98", "relations": [{"rule": 2, "type": "equivalent", "target": "70036d240e6fe9f29afef9c496dfab89", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cc060c998f552a7bbdfb26921cd9062f207e679a40f64080d6f326630f5a2a98"}}, {"rule": 2, "type": "equivalent", "target": "9855ad016b5e0ab86a8df92448726524", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cc060c998f552a7bbdfb26921cd9062f207e679a40f64080d6f326630f5a2a98"}}], "version": "9.0.14", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "70036d240e6fe9f29afef9c496dfab89", "kind": "equivalent", "version": "9.2.5", "label": "9.2.5", "title": "扩展行与记录和数组比较的能力", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cc060c998f552a7bbdfb26921cd9062f207e679a40f64080d6f326630f5a2a98"}, "url": "/docs/compare/?release=9.2.5#9.2.5-02f09ee722d28f69", "source_url": "/docs/release/9.2.5/#id-1.11.6.24.5"}, {"db_id": "9855ad016b5e0ab86a8df92448726524", "kind": "equivalent", "version": "9.1.10", "label": "9.1.10", "title": "扩展行与记录和数组比较的能力", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cc060c998f552a7bbdfb26921cd9062f207e679a40f64080d6f326630f5a2a98"}, "url": "/docs/compare/?release=9.1.10#9.1.10-02f09ee722d28f69", "source_url": "/docs/release/9.1.10/#id-1.11.6.19.5"}]}, {"id": "9.0.14-2cafe6660809f5c4", "cves": [], "html": "<p>把时区数据文件更新为 <span>tzdata</span> 版本 2013d（以色列、摩洛哥、巴勒斯坦和巴拉圭的夏令时法规变更）。另外，还修正了麦格理岛的历史时区数据。</p>", "text": "把时区数据文件更新为 tzdata 版本 2013d（以色列、摩洛哥、巴勒斯坦和巴拉圭的夏令时法规变更）。另外，还修正了麦格理岛的历史时区数据。", "title": "把时区数据文件更新为 tzdata 版本 2013d（以色列、摩洛哥、巴勒斯坦和巴拉圭的夏令时法规变更）。另外，还修正了麦格理岛的历史时区数据。", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.14/#id-1.11.6.14.5", "source_hash": "0971b99e00dafa59672e6a97380c44bfa5e351821497acffc2c99eec1221d969", "section_path": ["变更"], "commit_groups": [], "identity_text": "Update time zone data files to tzdata release 2013d for DST law changes in Israel, Morocco, Palestine, and Paraguay. Also, historical zone data corrections for Macquarie Island.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.14/changes/026", "db_id": "b278718a133b05177d8594b3d6d307fc", "patch_ids": [], "statement_hash": "08508412bf38f9d298431494294852d308b35e618c05bf24a40f8b00356cbf8b", "relations": [{"rule": 2, "type": "equivalent", "target": "6ac228e374f30e6ab6340c2340835596", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "08508412bf38f9d298431494294852d308b35e618c05bf24a40f8b00356cbf8b"}}, {"rule": 2, "type": "equivalent", "target": "caf175df83719743a7e3dd3a70deae2a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "08508412bf38f9d298431494294852d308b35e618c05bf24a40f8b00356cbf8b"}}], "version": "9.0.14", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "6ac228e374f30e6ab6340c2340835596", "kind": "equivalent", "version": "9.2.5", "label": "9.2.5", "title": "把时区数据文件更新为 tzdata 版本 2013d for DST law changes in Israel, Morocco, Palestine, and Paraguay。Also, historical zone data corrections for Macquarie Island.", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "08508412bf38f9d298431494294852d308b35e618c05bf24a40f8b00356cbf8b"}, "url": "/docs/compare/?release=9.2.5#9.2.5-34fd73820ce3c874", "source_url": "/docs/release/9.2.5/#id-1.11.6.24.5"}, {"db_id": "caf175df83719743a7e3dd3a70deae2a", "kind": "equivalent", "version": "9.1.10", "label": "9.1.10", "title": "把时区数据文件更新为 tzdata 版本 2013d for DST law changes in Israel, Morocco, Palestine, and Paraguay。Also, historical zone data corrections for Macquarie Island.", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "08508412bf38f9d298431494294852d308b35e618c05bf24a40f8b00356cbf8b"}, "url": "/docs/compare/?release=9.1.10#9.1.10-34fd73820ce3c874", "source_url": "/docs/release/9.1.10/#id-1.11.6.19.5"}]}]}, {"date": "2013-04-04", "build": "9.0.13", "major": "9.0", "minor": 13, "manual": "9.0", "status": "stable", "doc_git": "", "version": "9.0.13", "eol_date": "2015-10-08", "date_text": "2013-04-04", "supported": false, "manual_url": "/docs/9.0/release-9-0-13.html", "source_url": "/docs/release/9.0.13/", "entry_count": 21, "placeholder": false, "content_hash": "b7365423ec9b3126b42f69d396c13afaaa2d3a9f0db6ddd231b27ce36e1faba4", "manual_build": "9.0.23", "source_as_of": "", "changes_count": 21, "doc_loaded_at": "2026-09-26T02:56:48.570247", "migration_html": "<p>对于运行 9.0.X 的用户，不需要进行转储/恢复。</p>\n<p>不过，本版本纠正了 GiST 索引管理中的若干错误。安装此更新后，建议对满足下述一个或多个条件的 GiST 索引执行 <code>REINDEX</code>。</p>\n<p>不过，如果你是从早于 9.0.6 的版本升级，请参见<a href=\"/docs/9.0/release-9-0-6.html\" title=\"E.18. 版本 9.0.6\">第 E.18 节</a>。</p>", "compatibility_count": 0, "label": "9.0.13", "status_label": "历史版本", "eol": "2015-10-08", "age_days": 4927, "support_days": -4010, "entries": [{"id": "9.0.13-5a0bba298aca3ca2", "cves": ["CVE-2013-1899"], "html": "<p>修复服务器命令行开关解析不安全的问题（Mitsumasa Kondo、Kyotaro Horiguchi）</p>\n<p>包含以 <span>“<span><code>-</code></span>”</span> 开头的数据库名的连接请求可能被精心构造，用于破坏或摧毁服务器数据目录中的文件，即使该请求最终被拒绝也是如此。（CVE-2013-1899）</p>", "text": "修复服务器命令行开关解析不安全的问题（Mitsumasa Kondo、Kyotaro Horiguchi） 包含以 “-” 开头的数据库名的连接请求可能被精心构造，用于破坏或摧毁服务器数据目录中的文件，即使该请求最终被拒绝也是如此。（CVE-2013-1899）", "title": "修复服务器命令行开关解析不安全的问题", "commits": [], "section": "变更", "category": "security", "source_url": "/docs/release/9.0.13/#id-1.11.6.15.5", "source_hash": "4f9a832f04f6e559711d28bb20a2d97b383f46bca25ac5db7b8aacfb84d33270", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix insecure parsing of server command-line switches (Mitsumasa Kondo, Kyotaro Horiguchi) A connection request containing a database name that begins with - could be crafted to damage or destroy files within the server's data directory, even if the request is eventually rejected. (CVE-2013-1899)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.13/changes/001", "db_id": "1bebd36228eb92f729da00985c709997", "patch_ids": [], "statement_hash": "ff260c3226459bfafe8290008168c44cfde75520e898f496ecd57ab13f8052a6", "relations": [{"rule": 2, "type": "equivalent", "target": "21c52810dd7abef7ea5e07b05ef520cf", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ff260c3226459bfafe8290008168c44cfde75520e898f496ecd57ab13f8052a6"}}, {"rule": 2, "type": "equivalent", "target": "741c29eba759d209c420f35d39515acc", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ff260c3226459bfafe8290008168c44cfde75520e898f496ecd57ab13f8052a6"}}], "version": "9.0.13", "category_label": "安全相关", "also_in": [], "variants": [], "related_changes": [{"db_id": "21c52810dd7abef7ea5e07b05ef520cf", "kind": "equivalent", "version": "9.2.4", "label": "9.2.4", "title": "修复服务器命令行开关解析不安全的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ff260c3226459bfafe8290008168c44cfde75520e898f496ecd57ab13f8052a6"}, "url": "/docs/compare/?release=9.2.4#9.2.4-5a0bba298aca3ca2", "source_url": "/docs/release/9.2.4/#id-1.11.6.25.5"}, {"db_id": "741c29eba759d209c420f35d39515acc", "kind": "equivalent", "version": "9.1.9", "label": "9.1.9", "title": "修复服务器命令行开关解析不安全的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ff260c3226459bfafe8290008168c44cfde75520e898f496ecd57ab13f8052a6"}, "url": "/docs/compare/?release=9.1.9#9.1.9-5a0bba298aca3ca2", "source_url": "/docs/release/9.1.9/#id-1.11.6.20.5"}]}, {"id": "9.0.13-2c6247fbff83692c", "cves": ["CVE-2013-1900"], "html": "<p>在每个 postmaster 子进程中重置 OpenSSL 随机状态（Marko Kreen）</p>\n<p>这避免了另一种情况：另一数据库用户可能相对容易地猜出 <code>contrib/pgcrypto</code> 函数生成的随机数。只有当 postmaster 配置了 <code>ssl</code> = <code>on</code> 而大多数连接并不使用 SSL 加密时，这一风险才比较显著。（CVE-2013-1900）</p>", "text": "在每个 postmaster 子进程中重置 OpenSSL 随机状态（Marko Kreen） 这避免了另一种情况：另一数据库用户可能相对容易地猜出 contrib/pgcrypto 函数生成的随机数。只有当 postmaster 配置了 ssl = on 而大多数连接并不使用 SSL 加密时，这一风险才比较显著。（CVE-2013-1900）", "title": "在每个 postmaster 子进程中重置 OpenSSL 随机状态", "commits": [], "section": "变更", "category": "security", "source_url": "/docs/release/9.0.13/#id-1.11.6.15.5", "source_hash": "633747bdee837599bf37440e24bb9754bb57fb0aeb7411e98267f56169a74f1a", "section_path": ["变更"], "commit_groups": [], "identity_text": "Reset OpenSSL randomness state in each postmaster child process (Marko Kreen) This avoids a scenario wherein random numbers generated by contrib/pgcrypto functions might be relatively easy for another database user to guess. The risk is only significant when the postmaster is configured with ssl = on but most connections don't use SSL encryption. (CVE-2013-1900)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.13/changes/002", "db_id": "b11e8d580e1401b7c4ad8f7e032281b9", "patch_ids": [], "statement_hash": "82e2d0ffb9a673f650ae67881a49651d0374af9e19f90401530f93d4148e651a", "relations": [{"rule": 2, "type": "equivalent", "target": "0d7276d655f16c8707207781c6407d82", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "82e2d0ffb9a673f650ae67881a49651d0374af9e19f90401530f93d4148e651a"}}, {"rule": 2, "type": "equivalent", "target": "a4555a176e08f94b87ef6000617ed48d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "82e2d0ffb9a673f650ae67881a49651d0374af9e19f90401530f93d4148e651a"}}], "version": "9.0.13", "category_label": "安全相关", "also_in": [], "variants": [], "related_changes": [{"db_id": "a4555a176e08f94b87ef6000617ed48d", "kind": "equivalent", "version": "9.2.4", "label": "9.2.4", "title": "在每个 postmaster 子进程中重置 OpenSSL 随机状态", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "82e2d0ffb9a673f650ae67881a49651d0374af9e19f90401530f93d4148e651a"}, "url": "/docs/compare/?release=9.2.4#9.2.4-2c6247fbff83692c", "source_url": "/docs/release/9.2.4/#id-1.11.6.25.5"}, {"db_id": "0d7276d655f16c8707207781c6407d82", "kind": "equivalent", "version": "9.1.9", "label": "9.1.9", "title": "在每个 postmaster 子进程中重置 OpenSSL 随机状态", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "82e2d0ffb9a673f650ae67881a49651d0374af9e19f90401530f93d4148e651a"}, "url": "/docs/compare/?release=9.1.9#9.1.9-2c6247fbff83692c", "source_url": "/docs/release/9.1.9/#id-1.11.6.20.5"}]}, {"id": "9.0.13-a38c557dfaa73e53", "cves": [], "html": "<p>修复 GiST 索引在不合适的情况下使用<span>“<span>模糊</span>”</span>几何比较的问题（Alexander Korotkov）</p>\n<p>核心几何类型使用<span>“<span>模糊</span>”</span>相等进行比较，但 <code>gist_box_same</code> 必须做精确比较，否则使用它的 GiST 索引可能变得不一致。安装此更新后，用户应对 <code>box</code>、<code>polygon</code>、<code>circle</code> 或 <code>point</code> 列上的所有 GiST 索引执行 <code>REINDEX</code>，因为它们都使用 <code>gist_box_same</code>。</p>", "text": "修复 GiST 索引在不合适的情况下使用“模糊”几何比较的问题（Alexander Korotkov） 核心几何类型使用“模糊”相等进行比较，但 gist_box_same 必须做精确比较，否则使用它的 GiST 索引可能变得不一致。安装此更新后，用户应对 box、polygon、circle 或 point 列上的所有 GiST 索引执行 REINDEX，因为它们都使用 gist_box_same。", "title": "修复 GiST 索引在不合适的情况下使用“模糊”几何比较的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.13/#id-1.11.6.15.5", "source_hash": "6ef0c8639d52dd5342113adc743944dfe2a92ac7b79c09ab1edd4e91cc81ccfe", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix GiST indexes to not use fuzzy geometric comparisons when it's not appropriate to do so (Alexander Korotkov) The core geometric types perform comparisons using fuzzy equality, but gist_box_same must do exact comparisons, else GiST indexes using it might become inconsistent. After installing this update, users should REINDEX any GiST indexes on box, polygon, circle, or point columns, since all of these use gist_box_same.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.13/changes/003", "db_id": "620c6221286f4467627808f8f37f70b5", "patch_ids": [], "statement_hash": "6b9e2a994ce4d7762517a61af51a4434ceca5e2d79a8ac631707b198fb794369", "relations": [{"rule": 2, "type": "equivalent", "target": "1695db39fb1142caac32d5b6547c6e0c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6b9e2a994ce4d7762517a61af51a4434ceca5e2d79a8ac631707b198fb794369"}}, {"rule": 2, "type": "equivalent", "target": "362f4265759aa64d3b9fd12e9697c2af", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6b9e2a994ce4d7762517a61af51a4434ceca5e2d79a8ac631707b198fb794369"}}], "version": "9.0.13", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "362f4265759aa64d3b9fd12e9697c2af", "kind": "equivalent", "version": "9.2.4", "label": "9.2.4", "title": "修复 GiST 索引在不合适的情况下使用“模糊”几何比较的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6b9e2a994ce4d7762517a61af51a4434ceca5e2d79a8ac631707b198fb794369"}, "url": "/docs/compare/?release=9.2.4#9.2.4-a38c557dfaa73e53", "source_url": "/docs/release/9.2.4/#id-1.11.6.25.5"}, {"db_id": "1695db39fb1142caac32d5b6547c6e0c", "kind": "equivalent", "version": "9.1.9", "label": "9.1.9", "title": "修复 GiST 索引在不合适的情况下使用“模糊”几何比较的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6b9e2a994ce4d7762517a61af51a4434ceca5e2d79a8ac631707b198fb794369"}, "url": "/docs/compare/?release=9.1.9#9.1.9-a38c557dfaa73e53", "source_url": "/docs/release/9.1.9/#id-1.11.6.20.5"}]}, {"id": "9.0.13-8fa1da7695206bed", "cves": [], "html": "<p>修复对可变宽度数据类型（即 <code>text</code>、<code>bytea</code>、<code>bit</code> 和 <code>numeric</code> 列）使用 <code>contrib/btree_gist</code> 的 GiST 索引中错误的范围并集和惩罚逻辑（Tom Lane）</p>\n<p>这些错误可能导致不一致的索引：某些存在的键搜索不到，还会造成无用的索引膨胀。建议用户在安装此更新后对这类索引执行 <code>REINDEX</code>。</p>", "text": "修复对可变宽度数据类型（即 text、bytea、bit 和 numeric 列）使用 contrib/btree_gist 的 GiST 索引中错误的范围并集和惩罚逻辑（Tom Lane） 这些错误可能导致不一致的索引：某些存在的键搜索不到，还会造成无用的索引膨胀。建议用户在安装此更新后对这类索引执行 REINDEX。", "title": "修复对可变宽度数据类型（即 text、bytea、bit 和 numeric 列）使用 contrib/btree_gist 的 GiST 索引中错误的范围并集和惩罚逻辑", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.13/#id-1.11.6.15.5", "source_hash": "6cc3decf7238861a0e8b77a6a90aac811fce7994a6c16dec8fc40fa6a9781d00", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix erroneous range-union and penalty logic in GiST indexes that use contrib/btree_gist for variable-width data types, that is text, bytea, bit, and numeric columns (Tom Lane) These errors could result in inconsistent indexes in which some keys that are present would not be found by searches, and also in useless index bloat. Users are advised to REINDEX such indexes after installing this update.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.13/changes/004", "db_id": "d6b49ee6f9cce95dfa4e93058ec150a9", "patch_ids": [], "statement_hash": "ee5ad27a4054e823f7929b3489a6aa89e2ed67c6701057dd3807babb0142d797", "relations": [{"rule": 2, "type": "equivalent", "target": "b19259bdd495b0a6c22660020f608577", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ee5ad27a4054e823f7929b3489a6aa89e2ed67c6701057dd3807babb0142d797"}}, {"rule": 2, "type": "equivalent", "target": "b6abc789e2708ebf487b682413af0640", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ee5ad27a4054e823f7929b3489a6aa89e2ed67c6701057dd3807babb0142d797"}}], "version": "9.0.13", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "b19259bdd495b0a6c22660020f608577", "kind": "equivalent", "version": "9.2.4", "label": "9.2.4", "title": "修复对可变宽度数据类型（即 text、bytea、bit 和 numeric 列）使用 contrib/btree_gist 的 GiST 索引中错误的范围并集和惩罚逻辑", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ee5ad27a4054e823f7929b3489a6aa89e2ed67c6701057dd3807babb0142d797"}, "url": "/docs/compare/?release=9.2.4#9.2.4-8fa1da7695206bed", "source_url": "/docs/release/9.2.4/#id-1.11.6.25.5"}, {"db_id": "b6abc789e2708ebf487b682413af0640", "kind": "equivalent", "version": "9.1.9", "label": "9.1.9", "title": "修复对可变宽度数据类型（即 text、bytea、bit 和 numeric 列）使用 contrib/btree_gist 的 GiST 索引中错误的范围并集和惩罚逻辑", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ee5ad27a4054e823f7929b3489a6aa89e2ed67c6701057dd3807babb0142d797"}, "url": "/docs/compare/?release=9.1.9#9.1.9-8fa1da7695206bed", "source_url": "/docs/release/9.1.9/#id-1.11.6.20.5"}]}, {"id": "9.0.13-aebca1274e6d6bbe", "cves": [], "html": "<p>修复多列索引的 GiST 页面分裂代码中的缺陷（Tom Lane）</p>\n<p>这些错误可能导致不一致的索引：某些存在的键搜索不到，还会使索引的搜索效率不必要地低下。建议用户在安装此更新后对多列 GiST 索引执行 <code>REINDEX</code>。</p>", "text": "修复多列索引的 GiST 页面分裂代码中的缺陷（Tom Lane） 这些错误可能导致不一致的索引：某些存在的键搜索不到，还会使索引的搜索效率不必要地低下。建议用户在安装此更新后对多列 GiST 索引执行 REINDEX。", "title": "修复多列索引的 GiST 页面分裂代码中的缺陷", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.13/#id-1.11.6.15.5", "source_hash": "6ff526c46d26e07fd859d6b5fd2eabc57098d264b317446816ade59888651978", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix bugs in GiST page splitting code for multi-column indexes (Tom Lane) These errors could result in inconsistent indexes in which some keys that are present would not be found by searches, and also in indexes that are unnecessarily inefficient to search. Users are advised to REINDEX multi-column GiST indexes after installing this update.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.13/changes/005", "db_id": "b1a096f6c027d89edcc5125eb9957e88", "patch_ids": [], "statement_hash": "c95554cad29560c95e1ab7e2e2891683d4087abc206d066d0b986c92ca7ea1d6", "relations": [{"rule": 2, "type": "equivalent", "target": "20486b00a20ce2e5d589af4513e6468f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c95554cad29560c95e1ab7e2e2891683d4087abc206d066d0b986c92ca7ea1d6"}}, {"rule": 2, "type": "equivalent", "target": "c9721d7fe4647ac8d909de6180325b34", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c95554cad29560c95e1ab7e2e2891683d4087abc206d066d0b986c92ca7ea1d6"}}], "version": "9.0.13", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "20486b00a20ce2e5d589af4513e6468f", "kind": "equivalent", "version": "9.2.4", "label": "9.2.4", "title": "修复多列索引的 GiST 页面分裂代码中的缺陷", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c95554cad29560c95e1ab7e2e2891683d4087abc206d066d0b986c92ca7ea1d6"}, "url": "/docs/compare/?release=9.2.4#9.2.4-aebca1274e6d6bbe", "source_url": "/docs/release/9.2.4/#id-1.11.6.25.5"}, {"db_id": "c9721d7fe4647ac8d909de6180325b34", "kind": "equivalent", "version": "9.1.9", "label": "9.1.9", "title": "修复多列索引的 GiST 页面分裂代码中的缺陷", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c95554cad29560c95e1ab7e2e2891683d4087abc206d066d0b986c92ca7ea1d6"}, "url": "/docs/compare/?release=9.1.9#9.1.9-aebca1274e6d6bbe", "source_url": "/docs/release/9.1.9/#id-1.11.6.20.5"}]}, {"id": "9.0.13-882dda5f2cac0bec", "cves": [], "html": "<p>修复 <code>gist_point_consistent</code>，使其一致地处理模糊性（Alexander Korotkov）</p>\n<p><code>point</code> 列上 GiST 索引的索引扫描有时会得出与顺序扫描不同的结果，因为 <code>gist_point_consistent</code> 与底层操作符代码在是做精确比较还是模糊比较上不一致。</p>", "text": "修复 gist_point_consistent，使其一致地处理模糊性（Alexander Korotkov） point 列上 GiST 索引的索引扫描有时会得出与顺序扫描不同的结果，因为 gist_point_consistent 与底层操作符代码在是做精确比较还是模糊比较上不一致。", "title": "修复 gist_point_consistent，使其一致地处理模糊性", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.13/#id-1.11.6.15.5", "source_hash": "c8bdf375b993cb8873fc9332b494db7407b5b141488feb6d7318e2f9ea65acbf", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix gist_point_consistent to handle fuzziness consistently (Alexander Korotkov) Index scans on GiST indexes on point columns would sometimes yield results different from a sequential scan, because gist_point_consistent disagreed with the underlying operator code about whether to do comparisons exactly or fuzzily.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.13/changes/006", "db_id": "efd897cd34fb440647372c633fba2508", "patch_ids": [], "statement_hash": "a48b800ea70792c7f861c97c26d7b13b13174ea72d3d5cd50e62ea5472cfd2f4", "relations": [{"rule": 2, "type": "equivalent", "target": "8379f58a42d2a39798b942ed53371588", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a48b800ea70792c7f861c97c26d7b13b13174ea72d3d5cd50e62ea5472cfd2f4"}}, {"rule": 2, "type": "equivalent", "target": "fc9655e58fdfce701057039e4ac96ed4", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a48b800ea70792c7f861c97c26d7b13b13174ea72d3d5cd50e62ea5472cfd2f4"}}], "version": "9.0.13", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "fc9655e58fdfce701057039e4ac96ed4", "kind": "equivalent", "version": "9.2.4", "label": "9.2.4", "title": "修复 gist_point_consistent，使其一致地处理模糊性", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a48b800ea70792c7f861c97c26d7b13b13174ea72d3d5cd50e62ea5472cfd2f4"}, "url": "/docs/compare/?release=9.2.4#9.2.4-882dda5f2cac0bec", "source_url": "/docs/release/9.2.4/#id-1.11.6.25.5"}, {"db_id": "8379f58a42d2a39798b942ed53371588", "kind": "equivalent", "version": "9.1.9", "label": "9.1.9", "title": "修复 gist_point_consistent，使其一致地处理模糊性", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a48b800ea70792c7f861c97c26d7b13b13174ea72d3d5cd50e62ea5472cfd2f4"}, "url": "/docs/compare/?release=9.1.9#9.1.9-882dda5f2cac0bec", "source_url": "/docs/release/9.1.9/#id-1.11.6.20.5"}]}, {"id": "9.0.13-a2fd0526e4e1b17d", "cves": [], "html": "<p>修复 WAL 重放中的缓冲区泄漏（Heikki Linnakangas）</p>\n<p>这一缺陷可能导致重放期间出现 <span>“<span>incorrect local pin count</span>”</span> 错误，使恢复无法进行。</p>", "text": "修复 WAL 重放中的缓冲区泄漏（Heikki Linnakangas） 这一缺陷可能导致重放期间出现 “incorrect local pin count” 错误，使恢复无法进行。", "title": "修复 WAL 重放中的缓冲区泄漏", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.13/#id-1.11.6.15.5", "source_hash": "e9cf1f275165981fc99f5759a7c21cf3e945c18f0b10d1daef8b899d60974ac2", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix buffer leak in WAL replay (Heikki Linnakangas) This bug could result in incorrect local pin count errors during replay, making recovery impossible.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.13/changes/007", "db_id": "772b9f670ad68798e92625552b47d5d1", "patch_ids": [], "statement_hash": "513b0f6e1d7fbeb86839fce09010947a3ec33fda45f439d5fbc55dd329e23b26", "relations": [{"rule": 2, "type": "equivalent", "target": "4a92e9c821d28fd580c0c3b2bca1e74b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "513b0f6e1d7fbeb86839fce09010947a3ec33fda45f439d5fbc55dd329e23b26"}}, {"rule": 2, "type": "equivalent", "target": "984b9e3e14545478e5b8dd020ea41923", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "513b0f6e1d7fbeb86839fce09010947a3ec33fda45f439d5fbc55dd329e23b26"}}], "version": "9.0.13", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "984b9e3e14545478e5b8dd020ea41923", "kind": "equivalent", "version": "9.2.4", "label": "9.2.4", "title": "修复 WAL 重放中的缓冲区泄漏", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "513b0f6e1d7fbeb86839fce09010947a3ec33fda45f439d5fbc55dd329e23b26"}, "url": "/docs/compare/?release=9.2.4#9.2.4-a2fd0526e4e1b17d", "source_url": "/docs/release/9.2.4/#id-1.11.6.25.5"}, {"db_id": "4a92e9c821d28fd580c0c3b2bca1e74b", "kind": "equivalent", "version": "9.1.9", "label": "9.1.9", "title": "修复 WAL 重放中的缓冲区泄漏", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "513b0f6e1d7fbeb86839fce09010947a3ec33fda45f439d5fbc55dd329e23b26"}, "url": "/docs/compare/?release=9.1.9#9.1.9-a2fd0526e4e1b17d", "source_url": "/docs/release/9.1.9/#id-1.11.6.20.5"}]}, {"id": "9.0.13-624a98bb358c7569", "cves": [], "html": "<p>修复 <code>DELETE RETURNING</code> 中的竞态条件（Tom Lane）</p>\n<p>在合适的条件下，<code>DELETE RETURNING</code> 可能尝试从当前进程已不再持有任何 pin 的共享缓冲区中取数据。如果其他进程在此期间更改了该缓冲区，就会导致垃圾 <code>RETURNING</code> 输出，甚至崩溃。</p>", "text": "修复 DELETE RETURNING 中的竞态条件（Tom Lane） 在合适的条件下，DELETE RETURNING 可能尝试从当前进程已不再持有任何 pin 的共享缓冲区中取数据。如果其他进程在此期间更改了该缓冲区，就会导致垃圾 RETURNING 输出，甚至崩溃。", "title": "修复 DELETE RETURNING 中的竞态条件", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.13/#id-1.11.6.15.5", "source_hash": "8c6a3b6613ff169904baa82bcfa9870fcb68d68604163496e264c916b71c68bc", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix race condition in DELETE RETURNING (Tom Lane) Under the right circumstances, DELETE RETURNING could attempt to fetch data from a shared buffer that the current process no longer has any pin on. If some other process changed the buffer meanwhile, this would lead to garbage RETURNING output, or even a crash.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.13/changes/008", "db_id": "63475d09115967ec2e087c9ebfe9744e", "patch_ids": [], "statement_hash": "cb5e9ebf25d2e31e2f36f56e51ab6197be5962121e7e1647ee7de97b1ffb8c3c", "relations": [{"rule": 2, "type": "equivalent", "target": "76e4c74cb77737a32b85bfc3d5d04a5c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cb5e9ebf25d2e31e2f36f56e51ab6197be5962121e7e1647ee7de97b1ffb8c3c"}}, {"rule": 2, "type": "equivalent", "target": "c1f7f93dc9f5b63e70f99a56a9c5049c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cb5e9ebf25d2e31e2f36f56e51ab6197be5962121e7e1647ee7de97b1ffb8c3c"}}], "version": "9.0.13", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "76e4c74cb77737a32b85bfc3d5d04a5c", "kind": "equivalent", "version": "9.2.4", "label": "9.2.4", "title": "修复 DELETE RETURNING 中的竞态条件", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cb5e9ebf25d2e31e2f36f56e51ab6197be5962121e7e1647ee7de97b1ffb8c3c"}, "url": "/docs/compare/?release=9.2.4#9.2.4-624a98bb358c7569", "source_url": "/docs/release/9.2.4/#id-1.11.6.25.5"}, {"db_id": "c1f7f93dc9f5b63e70f99a56a9c5049c", "kind": "equivalent", "version": "9.1.9", "label": "9.1.9", "title": "修复 DELETE RETURNING 中的竞态条件", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cb5e9ebf25d2e31e2f36f56e51ab6197be5962121e7e1647ee7de97b1ffb8c3c"}, "url": "/docs/compare/?release=9.1.9#9.1.9-624a98bb358c7569", "source_url": "/docs/release/9.1.9/#id-1.11.6.20.5"}]}, {"id": "9.0.13-b8874aaf1786a740", "cves": [], "html": "<p>修复正则表达式编译中的无限循环风险（Tom Lane、Don Porter）</p>", "text": "修复正则表达式编译中的无限循环风险（Tom Lane、Don Porter）", "title": "修复正则表达式编译中的无限循环风险", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.13/#id-1.11.6.15.5", "source_hash": "439434de4756929b6e5cf870ade0776539010ff138be17e0f14488f9eeb90d2b", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix infinite-loop risk in regular expression compilation (Tom Lane, Don Porter)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.13/changes/009", "db_id": "b199508b0ee07ea039949561e0f28c13", "patch_ids": [], "statement_hash": "4be6de31c0bcc9706971cddf9efb918370eb37d85b12bcbe8174feefa66f9664", "relations": [{"rule": 2, "type": "equivalent", "target": "90d04eafccdc3668e6d069ef90fb12dd", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4be6de31c0bcc9706971cddf9efb918370eb37d85b12bcbe8174feefa66f9664"}}, {"rule": 2, "type": "equivalent", "target": "9db4eb57afe1339f0a35af1f8da525fa", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4be6de31c0bcc9706971cddf9efb918370eb37d85b12bcbe8174feefa66f9664"}}], "version": "9.0.13", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "9db4eb57afe1339f0a35af1f8da525fa", "kind": "equivalent", "version": "9.2.4", "label": "9.2.4", "title": "修复正则表达式编译中的无限循环风险", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4be6de31c0bcc9706971cddf9efb918370eb37d85b12bcbe8174feefa66f9664"}, "url": "/docs/compare/?release=9.2.4#9.2.4-b8874aaf1786a740", "source_url": "/docs/release/9.2.4/#id-1.11.6.25.5"}, {"db_id": "90d04eafccdc3668e6d069ef90fb12dd", "kind": "equivalent", "version": "9.1.9", "label": "9.1.9", "title": "修复正则表达式编译中的无限循环风险", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4be6de31c0bcc9706971cddf9efb918370eb37d85b12bcbe8174feefa66f9664"}, "url": "/docs/compare/?release=9.1.9#9.1.9-b8874aaf1786a740", "source_url": "/docs/release/9.1.9/#id-1.11.6.20.5"}]}, {"id": "9.0.13-d03ee7ccbc475a05", "cves": [], "html": "<p>修复正则表达式编译中潜在的空指针解引用（Tom Lane）</p>", "text": "修复正则表达式编译中潜在的空指针解引用（Tom Lane）", "title": "修复正则表达式编译中潜在的空指针解引用", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.13/#id-1.11.6.15.5", "source_hash": "6b5d52f09000674943c6e7941ad58fa9d420f58307565107c8779d92f3eec6cb", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix potential null-pointer dereference in regular expression compilation (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.13/changes/010", "db_id": "ba07565dec3c0925b0714b1b1cd75af3", "patch_ids": [], "statement_hash": "c24026abf2ef39936ba9d585ae874ebe85536f0a4a46dd302f46b22a9a03df26", "relations": [{"rule": 2, "type": "equivalent", "target": "ba33e4273c0c82d2141afb2b63c70c26", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c24026abf2ef39936ba9d585ae874ebe85536f0a4a46dd302f46b22a9a03df26"}}, {"rule": 2, "type": "equivalent", "target": "fb2e348bda5d3c970f113af362052d91", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c24026abf2ef39936ba9d585ae874ebe85536f0a4a46dd302f46b22a9a03df26"}}], "version": "9.0.13", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "ba33e4273c0c82d2141afb2b63c70c26", "kind": "equivalent", "version": "9.2.4", "label": "9.2.4", "title": "修复正则表达式编译中潜在的空指针解引用", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c24026abf2ef39936ba9d585ae874ebe85536f0a4a46dd302f46b22a9a03df26"}, "url": "/docs/compare/?release=9.2.4#9.2.4-d03ee7ccbc475a05", "source_url": "/docs/release/9.2.4/#id-1.11.6.25.5"}, {"db_id": "fb2e348bda5d3c970f113af362052d91", "kind": "equivalent", "version": "9.1.9", "label": "9.1.9", "title": "修复正则表达式编译中潜在的空指针解引用", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c24026abf2ef39936ba9d585ae874ebe85536f0a4a46dd302f46b22a9a03df26"}, "url": "/docs/compare/?release=9.1.9#9.1.9-d03ee7ccbc475a05", "source_url": "/docs/release/9.1.9/#id-1.11.6.20.5"}]}, {"id": "9.0.13-1fdbe907c6fdf857", "cves": [], "html": "<p>修复 <code>to_char()</code>，在适当的地方只使用 ASCII 大小写折叠规则（Tom Lane）</p>\n<p>这修复了一些本应与区域设置无关的模板模式在土耳其区域下错误处理 <span>“<span><code>I</code></span>”</span> 和 <span>“<span><code>i</code></span>”</span> 的问题。</p>", "text": "修复 to_char()，在适当的地方只使用 ASCII 大小写折叠规则（Tom Lane） 这修复了一些本应与区域设置无关的模板模式在土耳其区域下错误处理 “I” 和 “i” 的问题。", "title": "修复 to_char()，在适当的地方只使用 ASCII 大小写折叠规则", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.13/#id-1.11.6.15.5", "source_hash": "07ee090acef54b33953aaf8a0b5c0507d87d9d39e7113931e1066f0290b4cd35", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix to_char() to use ASCII-only case-folding rules where appropriate (Tom Lane) This fixes misbehavior of some template patterns that should be locale-independent, but mishandled I and i in Turkish locales.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.13/changes/011", "db_id": "199ff2451f48492f08c20c40dbd859bb", "patch_ids": [], "statement_hash": "a94935ff1c3719311b62df812c8ba0163b59d1e809100455b8204e237a38ad45", "relations": [{"rule": 2, "type": "equivalent", "target": "33afe1781b6fd2b6a888e0f9a5bc51ae", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a94935ff1c3719311b62df812c8ba0163b59d1e809100455b8204e237a38ad45"}}, {"rule": 2, "type": "equivalent", "target": "c6494fb0e44a6ec4d36eabe5c49ac777", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a94935ff1c3719311b62df812c8ba0163b59d1e809100455b8204e237a38ad45"}}], "version": "9.0.13", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "c6494fb0e44a6ec4d36eabe5c49ac777", "kind": "equivalent", "version": "9.2.4", "label": "9.2.4", "title": "修复 to_char()，在适当的地方只使用 ASCII 大小写折叠规则", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a94935ff1c3719311b62df812c8ba0163b59d1e809100455b8204e237a38ad45"}, "url": "/docs/compare/?release=9.2.4#9.2.4-1fdbe907c6fdf857", "source_url": "/docs/release/9.2.4/#id-1.11.6.25.5"}, {"db_id": "33afe1781b6fd2b6a888e0f9a5bc51ae", "kind": "equivalent", "version": "9.1.9", "label": "9.1.9", "title": "修复 to_char()，在适当的地方只使用 ASCII 大小写折叠规则", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a94935ff1c3719311b62df812c8ba0163b59d1e809100455b8204e237a38ad45"}, "url": "/docs/compare/?release=9.1.9#9.1.9-1fdbe907c6fdf857", "source_url": "/docs/release/9.1.9/#id-1.11.6.20.5"}]}, {"id": "9.0.13-401db26dd007d64f", "cves": [], "html": "<p>修复时间戳 <code>1999-12-31 24:00:00</code> 被不当拒绝的问题（Tom Lane）</p>", "text": "修复时间戳 1999-12-31 24:00:00 被不当拒绝的问题（Tom Lane）", "title": "修复时间戳 1999-12-31 24:00:00 被不当拒绝的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.13/#id-1.11.6.15.5", "source_hash": "21ef51b7fb99551089b35dcee1bb05b16304b43bd533a2380fbe57e4288b85a3", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix unwanted rejection of timestamp 1999-12-31 24:00:00 (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.13/changes/012", "db_id": "80a5d4258a70d9ef3753905ee0332bbf", "patch_ids": [], "statement_hash": "c596f003cfd767154176871a068d93715b9ecbea7e9b360246e501313c48fc8b", "relations": [{"rule": 2, "type": "equivalent", "target": "8cd117b8ffed6ed5f77a24c17c5a10bc", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c596f003cfd767154176871a068d93715b9ecbea7e9b360246e501313c48fc8b"}}, {"rule": 2, "type": "equivalent", "target": "e3b5395038c5f57457f122d8e165c330", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c596f003cfd767154176871a068d93715b9ecbea7e9b360246e501313c48fc8b"}}], "version": "9.0.13", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "8cd117b8ffed6ed5f77a24c17c5a10bc", "kind": "equivalent", "version": "9.2.4", "label": "9.2.4", "title": "修复时间戳 1999-12-31 24:00:00 被不当拒绝的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c596f003cfd767154176871a068d93715b9ecbea7e9b360246e501313c48fc8b"}, "url": "/docs/compare/?release=9.2.4#9.2.4-401db26dd007d64f", "source_url": "/docs/release/9.2.4/#id-1.11.6.25.5"}, {"db_id": "e3b5395038c5f57457f122d8e165c330", "kind": "equivalent", "version": "9.1.9", "label": "9.1.9", "title": "修复时间戳 1999-12-31 24:00:00 被不当拒绝的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c596f003cfd767154176871a068d93715b9ecbea7e9b360246e501313c48fc8b"}, "url": "/docs/compare/?release=9.1.9#9.1.9-401db26dd007d64f", "source_url": "/docs/release/9.1.9/#id-1.11.6.20.5"}]}, {"id": "9.0.13-2abe4d8d2ab5dc97", "cves": [], "html": "<p>修复单个事务先执行 <code>UNLISTEN</code> 再执行 <code>LISTEN</code> 时的逻辑错误（Tom Lane）</p>\n<p>会话最终完全没有监听通知事件，尽管在这种情况下它显然应该监听。</p>", "text": "修复单个事务先执行 UNLISTEN 再执行 LISTEN 时的逻辑错误（Tom Lane） 会话最终完全没有监听通知事件，尽管在这种情况下它显然应该监听。", "title": "修复单个事务先执行 UNLISTEN 再执行 LISTEN 时的逻辑错误", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.13/#id-1.11.6.15.5", "source_hash": "eabd079b7555b17b534443384cc96ee600cf23ad71a210340909d89be6e716c1", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix logic error when a single transaction does UNLISTEN then LISTEN (Tom Lane) The session wound up not listening for notify events at all, though it surely should listen in this case.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.13/changes/013", "db_id": "aca3f14134bf0a5829e82b94f6335c61", "patch_ids": [], "statement_hash": "7ef6fd3274e8055e4b624946fb91919e86ceb28fba79cc25518e2b4f655517ae", "relations": [{"rule": 2, "type": "equivalent", "target": "0acbaed2a468c3ce91f60474eece62b4", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7ef6fd3274e8055e4b624946fb91919e86ceb28fba79cc25518e2b4f655517ae"}}, {"rule": 2, "type": "equivalent", "target": "ed45b04c652eeea0ef90d8ef233f9839", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7ef6fd3274e8055e4b624946fb91919e86ceb28fba79cc25518e2b4f655517ae"}}], "version": "9.0.13", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "ed45b04c652eeea0ef90d8ef233f9839", "kind": "equivalent", "version": "9.2.4", "label": "9.2.4", "title": "修复单个事务先执行 UNLISTEN 再执行 LISTEN 时的逻辑错误", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7ef6fd3274e8055e4b624946fb91919e86ceb28fba79cc25518e2b4f655517ae"}, "url": "/docs/compare/?release=9.2.4#9.2.4-2abe4d8d2ab5dc97", "source_url": "/docs/release/9.2.4/#id-1.11.6.25.5"}, {"db_id": "0acbaed2a468c3ce91f60474eece62b4", "kind": "equivalent", "version": "9.1.9", "label": "9.1.9", "title": "修复单个事务先执行 UNLISTEN 再执行 LISTEN 时的逻辑错误", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7ef6fd3274e8055e4b624946fb91919e86ceb28fba79cc25518e2b4f655517ae"}, "url": "/docs/compare/?release=9.1.9#9.1.9-2abe4d8d2ab5dc97", "source_url": "/docs/release/9.1.9/#id-1.11.6.20.5"}]}, {"id": "9.0.13-d6b20c9d4752de07", "cves": [], "html": "<p>移除无用的 <span>“<span>picksplit doesn't support secondary split</span>”</span> 日志消息（Josh Hansen、Tom Lane）</p>\n<p>这条消息似乎是为预期中从未编写、而且可能永远不会编写的代码而添加的，因为 GiST 对二次分裂的默认处理其实相当好。所以不再为此打扰最终用户。</p>", "text": "移除无用的 “picksplit doesn't support secondary split” 日志消息（Josh Hansen、Tom Lane） 这条消息似乎是为预期中从未编写、而且可能永远不会编写的代码而添加的，因为 GiST 对二次分裂的默认处理其实相当好。所以不再为此打扰最终用户。", "title": "移除无用的 “picksplit doesn't support secondary split” 日志消息", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.13/#id-1.11.6.15.5", "source_hash": "64ee4fdc1555fd0ea147f20c82acf232019b70d999fb780b298fd877008a8152", "section_path": ["变更"], "commit_groups": [], "identity_text": "Remove useless picksplit doesn't support secondary split log messages (Josh Hansen, Tom Lane) This message seems to have been added in expectation of code that was never written, and probably never will be, since GiST's default handling of secondary splits is actually pretty good. So stop nagging end users about it.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.13/changes/014", "db_id": "7e20d1f3cfea4eb5c871291f3b0781f6", "patch_ids": [], "statement_hash": "3d912528da31b4b5d83bb4836af827a3a7bf4cf9f73ce3a21dd5205c886a026b", "relations": [{"rule": 2, "type": "equivalent", "target": "04854fc85e9014eec29f52a99eea3b53", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3d912528da31b4b5d83bb4836af827a3a7bf4cf9f73ce3a21dd5205c886a026b"}}, {"rule": 2, "type": "equivalent", "target": "65785290f1b6598886fc884e85e3258c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3d912528da31b4b5d83bb4836af827a3a7bf4cf9f73ce3a21dd5205c886a026b"}}], "version": "9.0.13", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "65785290f1b6598886fc884e85e3258c", "kind": "equivalent", "version": "9.2.4", "label": "9.2.4", "title": "移除无用的“picksplit doesn't support secondary split”日志消息", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3d912528da31b4b5d83bb4836af827a3a7bf4cf9f73ce3a21dd5205c886a026b"}, "url": "/docs/compare/?release=9.2.4#9.2.4-5af5cc0630d14f74", "source_url": "/docs/release/9.2.4/#id-1.11.6.25.5"}, {"db_id": "04854fc85e9014eec29f52a99eea3b53", "kind": "equivalent", "version": "9.1.9", "label": "9.1.9", "title": "移除无用的 “picksplit doesn't support secondary split” 日志消息", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3d912528da31b4b5d83bb4836af827a3a7bf4cf9f73ce3a21dd5205c886a026b"}, "url": "/docs/compare/?release=9.1.9#9.1.9-d6b20c9d4752de07", "source_url": "/docs/release/9.1.9/#id-1.11.6.20.5"}]}, {"id": "9.0.13-8597398f5c7b9db5", "cves": [], "html": "<p>修复会话最后几个事务的提交/中止计数可能未能发送到统计收集器的问题（Tom Lane）</p>", "text": "修复会话最后几个事务的提交/中止计数可能未能发送到统计收集器的问题（Tom Lane）", "title": "修复会话最后几个事务的提交/中止计数可能未能发送到统计收集器的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.13/#id-1.11.6.15.5", "source_hash": "c82e6ffbdb4928b6a218db5bde653a372e0fb8e444a290b481f2a9f8a6194642", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix possible failure to send a session's last few transaction commit/abort counts to the statistics collector (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.13/changes/015", "db_id": "4a24fbdaa92d465461f278f75a99514a", "patch_ids": [], "statement_hash": "563ace102a0a74b879485b3d93c6603a21c8c5cf8ac1565943464b333e70360f", "relations": [{"rule": 2, "type": "equivalent", "target": "20ba8f7c69d6c291cb8c53720c0fe13b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "563ace102a0a74b879485b3d93c6603a21c8c5cf8ac1565943464b333e70360f"}}, {"rule": 2, "type": "equivalent", "target": "5f6402440b99ca8a530c3f0662a136c0", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "563ace102a0a74b879485b3d93c6603a21c8c5cf8ac1565943464b333e70360f"}}], "version": "9.0.13", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "5f6402440b99ca8a530c3f0662a136c0", "kind": "equivalent", "version": "9.2.4", "label": "9.2.4", "title": "修复会话最后几个事务的提交/中止计数可能未能发送到统计收集器的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "563ace102a0a74b879485b3d93c6603a21c8c5cf8ac1565943464b333e70360f"}, "url": "/docs/compare/?release=9.2.4#9.2.4-8597398f5c7b9db5", "source_url": "/docs/release/9.2.4/#id-1.11.6.25.5"}, {"db_id": "20ba8f7c69d6c291cb8c53720c0fe13b", "kind": "equivalent", "version": "9.1.9", "label": "9.1.9", "title": "修复会话最后几个事务的提交/中止计数可能未能发送到统计收集器的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "563ace102a0a74b879485b3d93c6603a21c8c5cf8ac1565943464b333e70360f"}, "url": "/docs/compare/?release=9.1.9#9.1.9-8597398f5c7b9db5", "source_url": "/docs/release/9.1.9/#id-1.11.6.20.5"}]}, {"id": "9.0.13-bfdcb6cf8e3140be", "cves": [], "html": "<p>消除 PL/Perl 的 <code>spi_prepare()</code> 函数中的内存泄漏（Alex Hunsaker、Tom Lane）</p>", "text": "消除 PL/Perl 的 spi_prepare() 函数中的内存泄漏（Alex Hunsaker、Tom Lane）", "title": "消除 PL/Perl 的 spi_prepare() 函数中的内存泄漏", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.13/#id-1.11.6.15.5", "source_hash": "f507debb3a5cd0e2d2f5d39d2c3cf852df27707cc35f3cd5c74fbe213961bafd", "section_path": ["变更"], "commit_groups": [], "identity_text": "Eliminate memory leaks in PL/Perl's spi_prepare() function (Alex Hunsaker, Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.13/changes/016", "db_id": "a2b9710de559ddc5808c12073963f60f", "patch_ids": [], "statement_hash": "91b7790c3a66b12f1624175093502f8f6123117490ad38e18fc1820bb690b3c2", "relations": [{"rule": 2, "type": "equivalent", "target": "2aac12205ec60b26bc4d13fd0746606c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "91b7790c3a66b12f1624175093502f8f6123117490ad38e18fc1820bb690b3c2"}}, {"rule": 2, "type": "equivalent", "target": "c17884f585b844d6b5469954bc716bd0", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "91b7790c3a66b12f1624175093502f8f6123117490ad38e18fc1820bb690b3c2"}}], "version": "9.0.13", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "c17884f585b844d6b5469954bc716bd0", "kind": "equivalent", "version": "9.2.4", "label": "9.2.4", "title": "消除 PL/Perl 的 spi_prepare() 函数中的内存泄漏", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "91b7790c3a66b12f1624175093502f8f6123117490ad38e18fc1820bb690b3c2"}, "url": "/docs/compare/?release=9.2.4#9.2.4-bfdcb6cf8e3140be", "source_url": "/docs/release/9.2.4/#id-1.11.6.25.5"}, {"db_id": "2aac12205ec60b26bc4d13fd0746606c", "kind": "equivalent", "version": "9.1.9", "label": "9.1.9", "title": "消除 PL/Perl 的 spi_prepare() 函数中的内存泄漏", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "91b7790c3a66b12f1624175093502f8f6123117490ad38e18fc1820bb690b3c2"}, "url": "/docs/compare/?release=9.1.9#9.1.9-bfdcb6cf8e3140be", "source_url": "/docs/release/9.1.9/#id-1.11.6.20.5"}]}, {"id": "9.0.13-4baf6f2a953236a6", "cves": [], "html": "<p>修复 <span>pg_dumpall</span> 对包含 <span>“<span><code>=</code></span>”</span> 的数据库名的处理（Heikki Linnakangas）</p>", "text": "修复 pg_dumpall 对包含 “=” 的数据库名的处理（Heikki Linnakangas）", "title": "修复 pg_dumpall 对包含 “=” 的数据库名的处理", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.13/#id-1.11.6.15.5", "source_hash": "83c5702553c9731452e00b1468758b994f377ea35f90757380aaea7742dbf379", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix pg_dumpall to handle database names containing = correctly (Heikki Linnakangas)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.13/changes/017", "db_id": "c6480e389aa2ce209f1c2b7dbfbefc13", "patch_ids": [], "statement_hash": "b0a369949d52ba7e987f51a2f04c446c4ce8ef36f80fc76975cc6278c479f503", "relations": [{"rule": 2, "type": "equivalent", "target": "4c9d179b9df8dc8a658267ce5c9e51c4", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b0a369949d52ba7e987f51a2f04c446c4ce8ef36f80fc76975cc6278c479f503"}}, {"rule": 2, "type": "equivalent", "target": "a9061c2369fecf9216cae3b83bc5ef4d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b0a369949d52ba7e987f51a2f04c446c4ce8ef36f80fc76975cc6278c479f503"}}], "version": "9.0.13", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "a9061c2369fecf9216cae3b83bc5ef4d", "kind": "equivalent", "version": "9.2.4", "label": "9.2.4", "title": "修复 pg_dumpall 对包含“=”的数据库名的处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b0a369949d52ba7e987f51a2f04c446c4ce8ef36f80fc76975cc6278c479f503"}, "url": "/docs/compare/?release=9.2.4#9.2.4-caa52984a71c1eb4", "source_url": "/docs/release/9.2.4/#id-1.11.6.25.5"}, {"db_id": "4c9d179b9df8dc8a658267ce5c9e51c4", "kind": "equivalent", "version": "9.1.9", "label": "9.1.9", "title": "修复 pg_dumpall 对包含 “=” 的数据库名的处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b0a369949d52ba7e987f51a2f04c446c4ce8ef36f80fc76975cc6278c479f503"}, "url": "/docs/compare/?release=9.1.9#9.1.9-4baf6f2a953236a6", "source_url": "/docs/release/9.1.9/#id-1.11.6.20.5"}]}, {"id": "9.0.13-79f8f21d55e15f9d", "cves": [], "html": "<p>避免在给定不正确的连接串时 <span>pg_dump</span> 崩溃（Heikki Linnakangas）</p>", "text": "避免在给定不正确的连接串时 pg_dump 崩溃（Heikki Linnakangas）", "title": "避免在给定不正确的连接串时 pg_dump 崩溃", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.13/#id-1.11.6.15.5", "source_hash": "7f4ca81cf99349fd0671a71e4c7ee158a46d384fbb0fe5c763ca36d149a2ccac", "section_path": ["变更"], "commit_groups": [], "identity_text": "Avoid crash in pg_dump when an incorrect connection string is given (Heikki Linnakangas)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.13/changes/018", "db_id": "c56eaa560e3a0822fa13d2d8c9110156", "patch_ids": [], "statement_hash": "ba2ef975e7b9875d84b2ba2df02f27878f9e3698e86118aaca58d58afb409f65", "relations": [{"rule": 2, "type": "equivalent", "target": "92e45160130d4df03ce6c86124a63c23", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ba2ef975e7b9875d84b2ba2df02f27878f9e3698e86118aaca58d58afb409f65"}}, {"rule": 2, "type": "equivalent", "target": "f081d09601c4ddfccf66677c89031a8c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ba2ef975e7b9875d84b2ba2df02f27878f9e3698e86118aaca58d58afb409f65"}}], "version": "9.0.13", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "92e45160130d4df03ce6c86124a63c23", "kind": "equivalent", "version": "9.2.4", "label": "9.2.4", "title": "避免在给定不正确的连接串时 pg_dump 崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ba2ef975e7b9875d84b2ba2df02f27878f9e3698e86118aaca58d58afb409f65"}, "url": "/docs/compare/?release=9.2.4#9.2.4-79f8f21d55e15f9d", "source_url": "/docs/release/9.2.4/#id-1.11.6.25.5"}, {"db_id": "f081d09601c4ddfccf66677c89031a8c", "kind": "equivalent", "version": "9.1.9", "label": "9.1.9", "title": "避免在给定不正确的连接串时 pg_dump 崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ba2ef975e7b9875d84b2ba2df02f27878f9e3698e86118aaca58d58afb409f65"}, "url": "/docs/compare/?release=9.1.9#9.1.9-79f8f21d55e15f9d", "source_url": "/docs/release/9.1.9/#id-1.11.6.20.5"}]}, {"id": "9.0.13-1dc9b9a2540c1f6b", "cves": [], "html": "<p>让 <span>pg_dump</span> 和 <span>pg_upgrade</span> 忽略无效索引（Michael Paquier、Bruce Momjian）</p>\n<p>转储无效索引可能在恢复时造成问题，例如当索引创建失败的原因是它试图强制执行表数据不满足的唯一性条件时。此外，如果索引创建实际上仍在进行中，把它视为未提交的 DDL 变更似乎是合理的，<span>pg_dump</span> 本来也不应转储它。<span>pg_upgrade</span> 现在也跳过无效索引而不是失败。</p>", "text": "让 pg_dump 和 pg_upgrade 忽略无效索引（Michael Paquier、Bruce Momjian） 转储无效索引可能在恢复时造成问题，例如当索引创建失败的原因是它试图强制执行表数据不满足的唯一性条件时。此外，如果索引创建实际上仍在进行中，把它视为未提交的 DDL 变更似乎是合理的，pg_dump 本来也不应转储它。pg_upgrade 现在也跳过无效索引而不是失败。", "title": "让 pg_dump 和 pg_upgrade 忽略无效索引", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.13/#id-1.11.6.15.5", "source_hash": "29594f57ce848c20f7e8e4098d770aeaf2bcaa8d5ead9347ce3be8409c6f1fa9", "section_path": ["变更"], "commit_groups": [], "identity_text": "Ignore invalid indexes in pg_dump and pg_upgrade (Michael Paquier, Bruce Momjian) Dumping invalid indexes can cause problems at restore time, for example if the reason the index creation failed was because it tried to enforce a uniqueness condition not satisfied by the table's data. Also, if the index creation is in fact still in progress, it seems reasonable to consider it to be an uncommitted DDL change, which pg_dump wouldn't be expected to dump anyway. pg_upgrade now also skips invalid indexes rather than failing.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.13/changes/019", "db_id": "06b4e4c8173effe51d1574d157a3e779", "patch_ids": [], "statement_hash": "01a158cfc3e6c0f8bf857b14f498fc9174a5495611eccc74d31530547dc6322a", "relations": [{"rule": 2, "type": "equivalent", "target": "2e6d29400a9d10c40a59d76a217ac60b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "01a158cfc3e6c0f8bf857b14f498fc9174a5495611eccc74d31530547dc6322a"}}, {"rule": 2, "type": "equivalent", "target": "7ddb477eeb86351ac7b353b58dd09ac8", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "01a158cfc3e6c0f8bf857b14f498fc9174a5495611eccc74d31530547dc6322a"}}], "version": "9.0.13", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "2e6d29400a9d10c40a59d76a217ac60b", "kind": "equivalent", "version": "9.2.4", "label": "9.2.4", "title": "让 pg_dump 和 pg_upgrade 忽略无效索引", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "01a158cfc3e6c0f8bf857b14f498fc9174a5495611eccc74d31530547dc6322a"}, "url": "/docs/compare/?release=9.2.4#9.2.4-1dc9b9a2540c1f6b", "source_url": "/docs/release/9.2.4/#id-1.11.6.25.5"}, {"db_id": "7ddb477eeb86351ac7b353b58dd09ac8", "kind": "equivalent", "version": "9.1.9", "label": "9.1.9", "title": "让 pg_dump 和 pg_upgrade 忽略无效索引", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "01a158cfc3e6c0f8bf857b14f498fc9174a5495611eccc74d31530547dc6322a"}, "url": "/docs/compare/?release=9.1.9#9.1.9-1dc9b9a2540c1f6b", "source_url": "/docs/release/9.1.9/#id-1.11.6.20.5"}]}, {"id": "9.0.13-552a19bba85395ff", "cves": [], "html": "<p>修复 <code>contrib/pg_trgm</code> 的 <code>similarity()</code> 函数，使其对无三元组的字符串返回零（Tom Lane）</p>\n<p>此前它由于内部除以零而返回 <code>NaN</code>。</p>", "text": "修复 contrib/pg_trgm 的 similarity() 函数，使其对无三元组的字符串返回零（Tom Lane） 此前它由于内部除以零而返回 NaN。", "title": "修复 contrib/pg_trgm 的 similarity() 函数，使其对无三元组的字符串返回零", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.13/#id-1.11.6.15.5", "source_hash": "b2887163e317cab3d8befc69d333a110c2d30f132b34bb3e2af61aa0e12c43b7", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix contrib/pg_trgm's similarity() function to return zero for trigram-less strings (Tom Lane) Previously it returned NaN due to internal division by zero.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.13/changes/020", "db_id": "aaf1976dd0b38b51fead82e6bfdc8e80", "patch_ids": [], "statement_hash": "dbafe0f1ccf1fcf6c1a5447b02f87e6b0094c1fc4fe9bf262df3a94d733ad44b", "relations": [{"rule": 2, "type": "equivalent", "target": "4580537156c8da990f67318bb75f9d56", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dbafe0f1ccf1fcf6c1a5447b02f87e6b0094c1fc4fe9bf262df3a94d733ad44b"}}, {"rule": 2, "type": "equivalent", "target": "9c9eddc3636fdb4f973c35838ac5f66a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dbafe0f1ccf1fcf6c1a5447b02f87e6b0094c1fc4fe9bf262df3a94d733ad44b"}}], "version": "9.0.13", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "4580537156c8da990f67318bb75f9d56", "kind": "equivalent", "version": "9.2.4", "label": "9.2.4", "title": "修复 contrib/pg_trgm 的 similarity() 函数，使其对无三元组的字符串返回零", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dbafe0f1ccf1fcf6c1a5447b02f87e6b0094c1fc4fe9bf262df3a94d733ad44b"}, "url": "/docs/compare/?release=9.2.4#9.2.4-552a19bba85395ff", "source_url": "/docs/release/9.2.4/#id-1.11.6.25.5"}, {"db_id": "9c9eddc3636fdb4f973c35838ac5f66a", "kind": "equivalent", "version": "9.1.9", "label": "9.1.9", "title": "修复 contrib/pg_trgm 的 similarity() 函数，使其对无三元组的字符串返回零", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dbafe0f1ccf1fcf6c1a5447b02f87e6b0094c1fc4fe9bf262df3a94d733ad44b"}, "url": "/docs/compare/?release=9.1.9#9.1.9-552a19bba85395ff", "source_url": "/docs/release/9.1.9/#id-1.11.6.20.5"}]}, {"id": "9.0.13-be116e9f8c8d29e1", "cves": [], "html": "<p>把时区数据文件更新为 <span>tzdata</span> 版本 2013b（智利、海地、摩洛哥、巴拉圭和一些俄罗斯地区的夏令时法规变更）。另外，还修正了众多地区的历史时区数据。</p>\n<p>此外，更新时区缩写文件以反映俄罗斯和其他地方的近期变更：<code>CHOT</code>、<code>GET</code>、<code>IRKT</code>、<code>KGT</code>、<code>KRAT</code>、<code>MAGT</code>、<code>MAWT</code>、<code>MSK</code>、<code>NOVT</code>、<code>OMST</code>、<code>TKT</code>、<code>VLAT</code>、<code>WST</code>、<code>YAKT</code>、<code>YEKT</code> 现在遵循其当前含义，同时把 <code>VOLT</code>（Europe/Volgograd）和 <code>MIST</code>（Antarctica/Macquarie）加入默认缩写列表。</p>", "text": "把时区数据文件更新为 tzdata 版本 2013b（智利、海地、摩洛哥、巴拉圭和一些俄罗斯地区的夏令时法规变更）。另外，还修正了众多地区的历史时区数据。 此外，更新时区缩写文件以反映俄罗斯和其他地方的近期变更：CHOT、GET、IRKT、KGT、KRAT、MAGT、MAWT、MSK、NOVT、OMST、TKT、VLAT、WST、YAKT、YEKT 现在遵循其当前含义，同时把 VOLT（Europe/Volgograd）和 MIST（Antarctica/Macquarie）加入默认缩写列表。", "title": "把时区数据文件更新为 tzdata 版本 2013b（智利、海地、摩洛哥、巴拉圭和一些俄罗斯地区的夏令时法规变更）。另外，还修正了众多地区的历史时区数据。", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.13/#id-1.11.6.15.5", "source_hash": "75c5cda3ed3f99d686470bb4373ee96c4f4202b44e85bf4184f88243b8158d09", "section_path": ["变更"], "commit_groups": [], "identity_text": "Update time zone data files to tzdata release 2013b for DST law changes in Chile, Haiti, Morocco, Paraguay, and some Russian areas. Also, historical zone data corrections for numerous places. Also, update the time zone abbreviation files for recent changes in Russia and elsewhere: CHOT, GET, IRKT, KGT, KRAT, MAGT, MAWT, MSK, NOVT, OMST, TKT, VLAT, WST, YAKT, YEKT now follow their current meanings, and VOLT (Europe/Volgograd) and MIST (Antarctica/Macquarie) are added to the default abbreviations list.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.13/changes/021", "db_id": "720d9132029012de6ac0270481c42d4a", "patch_ids": [], "statement_hash": "d68c5f75bc41d46503a084bd9c9813dd7fb04a77034fd4c05bdcfac31425a021", "relations": [{"rule": 2, "type": "equivalent", "target": "7eaf3e6a9af1c5ae29d62da27d844291", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d68c5f75bc41d46503a084bd9c9813dd7fb04a77034fd4c05bdcfac31425a021"}}, {"rule": 2, "type": "equivalent", "target": "cf5b0229bf77b43e18a7235a265e655e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d68c5f75bc41d46503a084bd9c9813dd7fb04a77034fd4c05bdcfac31425a021"}}], "version": "9.0.13", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "cf5b0229bf77b43e18a7235a265e655e", "kind": "equivalent", "version": "9.2.4", "label": "9.2.4", "title": "把时区数据文件更新为 tzdata 版本 2013b for DST law changes in Chile, Haiti, Morocco, Paraguay, and some Russian areas。Also, historical zone data corrections for numerous places.", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d68c5f75bc41d46503a084bd9c9813dd7fb04a77034fd4c05bdcfac31425a021"}, "url": "/docs/compare/?release=9.2.4#9.2.4-f496c834c1aca2d4", "source_url": "/docs/release/9.2.4/#id-1.11.6.25.5"}, {"db_id": "7eaf3e6a9af1c5ae29d62da27d844291", "kind": "equivalent", "version": "9.1.9", "label": "9.1.9", "title": "把时区数据文件更新为 tzdata 版本 2013b for DST law changes in Chile, Haiti, Morocco, Paraguay, and some Russian areas。Also, historical zone data corrections for numerous places.", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d68c5f75bc41d46503a084bd9c9813dd7fb04a77034fd4c05bdcfac31425a021"}, "url": "/docs/compare/?release=9.1.9#9.1.9-f496c834c1aca2d4", "source_url": "/docs/release/9.1.9/#id-1.11.6.20.5"}]}]}, {"date": "2013-02-07", "build": "9.0.12", "major": "9.0", "minor": 12, "manual": "9.0", "status": "stable", "doc_git": "", "version": "9.0.12", "eol_date": "2015-10-08", "date_text": "2013-02-07", "supported": false, "manual_url": "/docs/9.0/release-9-0-12.html", "source_url": "/docs/release/9.0.12/", "entry_count": 23, "placeholder": false, "content_hash": "fbc943866ad00dd026bd881fbc735ed76d4848de5aedd31a44b34905a4ad9c1b", "manual_build": "9.0.23", "source_as_of": "", "changes_count": 23, "doc_loaded_at": "2026-09-26T02:56:48.570247", "migration_html": "<p>对于运行 9.0.X 的用户，不需要进行转储/恢复。</p>\n<p>不过，如果你是从早于 9.0.6 的版本升级，请参见<a href=\"/docs/9.0/release-9-0-6.html\" title=\"E.18. 版本 9.0.6\">第 E.18 节</a>。</p>", "compatibility_count": 0, "label": "9.0.12", "status_label": "历史版本", "eol": "2015-10-08", "age_days": 4983, "support_days": -4010, "entries": [{"id": "9.0.12-91b92bd203b9332b", "cves": ["CVE-2013-0255"], "html": "<p>防止从 SQL 执行 <code>enum_recv</code>（Tom Lane）</p>\n<p>该函数声明有误，允许一条简单的 SQL 命令使服务器崩溃。原则上攻击者可能利用它检查服务器内存的内容。感谢 Sumit Soni（通过 Secunia SVCRP）报告此问题。（CVE-2013-0255）</p>", "text": "防止从 SQL 执行 enum_recv（Tom Lane） 该函数声明有误，允许一条简单的 SQL 命令使服务器崩溃。原则上攻击者可能利用它检查服务器内存的内容。感谢 Sumit Soni（通过 Secunia SVCRP）报告此问题。（CVE-2013-0255）", "title": "防止从 SQL 执行 enum_recv", "commits": [], "section": "变更", "category": "security", "source_url": "/docs/release/9.0.12/#id-1.11.6.16.5", "source_hash": "a6b3429df40917e804ae9f3df02667745382dc8e344f06fc0212a4d806fbf864", "section_path": ["变更"], "commit_groups": [], "identity_text": "Prevent execution of enum_recv from SQL (Tom Lane) The function was misdeclared, allowing a simple SQL command to crash the server. In principle an attacker might be able to use it to examine the contents of server memory. Our thanks to Sumit Soni (via Secunia SVCRP) for reporting this issue. (CVE-2013-0255)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.12/changes/001", "db_id": "3e2c12362d5d790ac381850df41ba0d4", "patch_ids": [], "statement_hash": "8018138401c4605fd69a4015bbddab1708da0a341d9b5372ef38bd70bef6e31e", "relations": [{"rule": 2, "type": "equivalent", "target": "4221aaac3275bb1ce0907871e741ff8e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8018138401c4605fd69a4015bbddab1708da0a341d9b5372ef38bd70bef6e31e"}}, {"rule": 2, "type": "equivalent", "target": "e4073a2043e993fe80ee86d66eaf52c3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8018138401c4605fd69a4015bbddab1708da0a341d9b5372ef38bd70bef6e31e"}}], "version": "9.0.12", "category_label": "安全相关", "also_in": [], "variants": [], "related_changes": [{"db_id": "e4073a2043e993fe80ee86d66eaf52c3", "kind": "equivalent", "version": "9.2.3", "label": "9.2.3", "title": "防止从 SQL 执行 enum_recv", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8018138401c4605fd69a4015bbddab1708da0a341d9b5372ef38bd70bef6e31e"}, "url": "/docs/compare/?release=9.2.3#9.2.3-91b92bd203b9332b", "source_url": "/docs/release/9.2.3/#id-1.11.6.26.5"}, {"db_id": "4221aaac3275bb1ce0907871e741ff8e", "kind": "equivalent", "version": "9.1.8", "label": "9.1.8", "title": "防止从 SQL 执行 enum_recv", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8018138401c4605fd69a4015bbddab1708da0a341d9b5372ef38bd70bef6e31e"}, "url": "/docs/compare/?release=9.1.8#9.1.8-91b92bd203b9332b", "source_url": "/docs/release/9.1.8/#id-1.11.6.21.5"}]}, {"id": "9.0.12-a350cbbcb21a0a18", "cves": [], "html": "<p>修复 WAL 重放期间检测何时达到一致数据库状态的多个问题（Fujii Masao、Heikki Linnakangas、Simon Riggs、Andres Freund）</p>", "text": "修复 WAL 重放期间检测何时达到一致数据库状态的多个问题（Fujii Masao、Heikki Linnakangas、Simon Riggs、Andres Freund）", "title": "修复 WAL 重放期间检测何时达到一致数据库状态的多个问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.12/#id-1.11.6.16.5", "source_hash": "d2a1de107ada35245453aa44fcff32b17449af03a1e931c9baa08b66d5f28029", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix multiple problems in detection of when a consistent database state has been reached during WAL replay (Fujii Masao, Heikki Linnakangas, Simon Riggs, Andres Freund)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.12/changes/002", "db_id": "3ef43a101b38a8f7bcd2f8fcd43c625b", "patch_ids": [], "statement_hash": "5bcb0538e465c57e132664b1fe18882dc87dd6b8088f72c9541a72b30c63499d", "relations": [{"rule": 2, "type": "equivalent", "target": "fadb263785b5197f9c4077e21ddd41bd", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5bcb0538e465c57e132664b1fe18882dc87dd6b8088f72c9541a72b30c63499d"}}, {"rule": 2, "type": "equivalent", "target": "fdaa210137246825261db30f9a6f36f5", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5bcb0538e465c57e132664b1fe18882dc87dd6b8088f72c9541a72b30c63499d"}}], "version": "9.0.12", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "fdaa210137246825261db30f9a6f36f5", "kind": "equivalent", "version": "9.2.3", "label": "9.2.3", "title": "修复 WAL 重放期间检测何时达到一致数据库状态的多个问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5bcb0538e465c57e132664b1fe18882dc87dd6b8088f72c9541a72b30c63499d"}, "url": "/docs/compare/?release=9.2.3#9.2.3-a350cbbcb21a0a18", "source_url": "/docs/release/9.2.3/#id-1.11.6.26.5"}, {"db_id": "fadb263785b5197f9c4077e21ddd41bd", "kind": "equivalent", "version": "9.1.8", "label": "9.1.8", "title": "修复 WAL 重放期间检测何时达到一致数据库状态的多个问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5bcb0538e465c57e132664b1fe18882dc87dd6b8088f72c9541a72b30c63499d"}, "url": "/docs/compare/?release=9.1.8#9.1.8-a350cbbcb21a0a18", "source_url": "/docs/release/9.1.8/#id-1.11.6.21.5"}]}, {"id": "9.0.12-16307396445d2320", "cves": [], "html": "<p>在截断关系文件时更新最小恢复点（Heikki Linnakangas）</p>\n<p>数据一旦被丢弃，在时间线上更早的点停止恢复就不再安全。</p>", "text": "在截断关系文件时更新最小恢复点（Heikki Linnakangas） 数据一旦被丢弃，在时间线上更早的点停止恢复就不再安全。", "title": "在截断关系文件时更新最小恢复点", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.12/#id-1.11.6.16.5", "source_hash": "a19081b86e225c7e1f77e7a07bede0f90b47c18b9bef0e8de5fb02a87b49c0d0", "section_path": ["变更"], "commit_groups": [], "identity_text": "Update minimum recovery point when truncating a relation file (Heikki Linnakangas) Once data has been discarded, it's no longer safe to stop recovery at an earlier point in the timeline.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.12/changes/003", "db_id": "2429e8033349c37ddbdf001d05122236", "patch_ids": [], "statement_hash": "b238a16c4484b5e1ebde5f1462c1da23e79e4b0922fd4628fded093e4cefb1fe", "relations": [{"rule": 2, "type": "equivalent", "target": "a2897187973796aa1f3cb5aaf9592aea", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b238a16c4484b5e1ebde5f1462c1da23e79e4b0922fd4628fded093e4cefb1fe"}}, {"rule": 2, "type": "equivalent", "target": "f08672018f8003de3ab8249659f9d52c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b238a16c4484b5e1ebde5f1462c1da23e79e4b0922fd4628fded093e4cefb1fe"}}], "version": "9.0.12", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "a2897187973796aa1f3cb5aaf9592aea", "kind": "equivalent", "version": "9.2.3", "label": "9.2.3", "title": "在截断关系文件时更新最小恢复点", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b238a16c4484b5e1ebde5f1462c1da23e79e4b0922fd4628fded093e4cefb1fe"}, "url": "/docs/compare/?release=9.2.3#9.2.3-16307396445d2320", "source_url": "/docs/release/9.2.3/#id-1.11.6.26.5"}, {"db_id": "f08672018f8003de3ab8249659f9d52c", "kind": "equivalent", "version": "9.1.8", "label": "9.1.8", "title": "在截断关系文件时更新最小恢复点", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b238a16c4484b5e1ebde5f1462c1da23e79e4b0922fd4628fded093e4cefb1fe"}, "url": "/docs/compare/?release=9.1.8#9.1.8-16307396445d2320", "source_url": "/docs/release/9.1.8/#id-1.11.6.21.5"}]}, {"id": "9.0.12-328fca946db8a287", "cves": [], "html": "<p>修复热备模式下缺失的取消操作（Noah Misch、Simon Riggs）</p>\n<p>取消冲突热备查询的需要有时会被遗漏，使这些查询看到不一致的数据。</p>", "text": "修复热备模式下缺失的取消操作（Noah Misch、Simon Riggs） 取消冲突热备查询的需要有时会被遗漏，使这些查询看到不一致的数据。", "title": "修复热备模式下缺失的取消操作", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.12/#id-1.11.6.16.5", "source_hash": "396803c519b895fe106e82514c6a553be7f6eca24f44f97f9be044c28c2b7aed", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix missing cancellations in hot standby mode (Noah Misch, Simon Riggs) The need to cancel conflicting hot-standby queries would sometimes be missed, allowing those queries to see inconsistent data.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.12/changes/004", "db_id": "ab59487cc20954116d3a7c00f88d6c0b", "patch_ids": [], "statement_hash": "29691cf096ef2b8f7772c0c1a88f12b6a33a9b74c22e16511a5504c941ef3faf", "relations": [{"rule": 2, "type": "equivalent", "target": "1c332c471d743826c8bbd21e8da0f88b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "29691cf096ef2b8f7772c0c1a88f12b6a33a9b74c22e16511a5504c941ef3faf"}}, {"rule": 2, "type": "equivalent", "target": "fdb7b6975ab326ff1a56eb83c39c639b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "29691cf096ef2b8f7772c0c1a88f12b6a33a9b74c22e16511a5504c941ef3faf"}}], "version": "9.0.12", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "1c332c471d743826c8bbd21e8da0f88b", "kind": "equivalent", "version": "9.2.3", "label": "9.2.3", "title": "修复热备模式下缺失的取消操作", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "29691cf096ef2b8f7772c0c1a88f12b6a33a9b74c22e16511a5504c941ef3faf"}, "url": "/docs/compare/?release=9.2.3#9.2.3-328fca946db8a287", "source_url": "/docs/release/9.2.3/#id-1.11.6.26.5"}, {"db_id": "fdb7b6975ab326ff1a56eb83c39c639b", "kind": "equivalent", "version": "9.1.8", "label": "9.1.8", "title": "修复热备模式下缺失的取消操作", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "29691cf096ef2b8f7772c0c1a88f12b6a33a9b74c22e16511a5504c941ef3faf"}, "url": "/docs/compare/?release=9.1.8#9.1.8-328fca946db8a287", "source_url": "/docs/release/9.1.8/#id-1.11.6.21.5"}]}, {"id": "9.0.12-cace9bed0c76fdcf", "cves": [], "html": "<p>修复 SQL 文法，允许对子 SELECT 结果做下标或字段选择（Tom Lane）</p>", "text": "修复 SQL 文法，允许对子 SELECT 结果做下标或字段选择（Tom Lane）", "title": "修复 SQL 文法，允许对子 SELECT 结果做下标或字段选择", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.12/#id-1.11.6.16.5", "source_hash": "148f9632eda6ffb3bf75bbdc9d4d413a00ea6b27fdddb6f5cec7d4db82c5b60a", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix SQL grammar to allow subscripting or field selection from a sub-SELECT result (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.12/changes/005", "db_id": "39aafb0dd7097f163535b703f0bb8fa0", "patch_ids": [], "statement_hash": "bd01a0fa0aae935547790272a58548938856e616c9f336714db28f524b5c676d", "relations": [{"rule": 2, "type": "equivalent", "target": "895374fe22ae5293bb5f8959e25772e8", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bd01a0fa0aae935547790272a58548938856e616c9f336714db28f524b5c676d"}}, {"rule": 2, "type": "equivalent", "target": "c172c281ebf7ef05d7151ba47e04c582", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bd01a0fa0aae935547790272a58548938856e616c9f336714db28f524b5c676d"}}], "version": "9.0.12", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "c172c281ebf7ef05d7151ba47e04c582", "kind": "equivalent", "version": "9.2.3", "label": "9.2.3", "title": "修复 SQL 文法，允许对子 SELECT 结果做下标或字段选择", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bd01a0fa0aae935547790272a58548938856e616c9f336714db28f524b5c676d"}, "url": "/docs/compare/?release=9.2.3#9.2.3-cace9bed0c76fdcf", "source_url": "/docs/release/9.2.3/#id-1.11.6.26.5"}, {"db_id": "895374fe22ae5293bb5f8959e25772e8", "kind": "equivalent", "version": "9.1.8", "label": "9.1.8", "title": "修复 SQL 文法，允许对子 SELECT 结果做下标或字段选择", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bd01a0fa0aae935547790272a58548938856e616c9f336714db28f524b5c676d"}, "url": "/docs/compare/?release=9.1.8#9.1.8-cace9bed0c76fdcf", "source_url": "/docs/release/9.1.8/#id-1.11.6.21.5"}]}, {"id": "9.0.12-f0bf6d806fb9f955", "cves": [], "html": "<p>修复繁忙负载下自动清理截断的性能问题（Jan Wieck）</p>\n<p>截断表末尾的空页需要排他锁，但自动清理被编码为在出现冲突锁请求时失败（并释放表锁）。在负载下，截断很可能永远不会发生，导致表膨胀。修复方法是先执行部分截断，释放锁，然后尝试重新获取锁并继续。此修复还大幅缩短了冲突请求到达后自动清理释放锁的平均时间。</p>", "text": "修复繁忙负载下自动清理截断的性能问题（Jan Wieck） 截断表末尾的空页需要排他锁，但自动清理被编码为在出现冲突锁请求时失败（并释放表锁）。在负载下，截断很可能永远不会发生，导致表膨胀。修复方法是先执行部分截断，释放锁，然后尝试重新获取锁并继续。此修复还大幅缩短了冲突请求到达后自动清理释放锁的平均时间。", "title": "修复繁忙负载下自动清理截断的性能问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.12/#id-1.11.6.16.5", "source_hash": "a783d1fc824a4b1541252431039f7f3c7b846d5559c86a17852ffe205b266154", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix performance problems with autovacuum truncation in busy workloads (Jan Wieck) Truncation of empty pages at the end of a table requires exclusive lock, but autovacuum was coded to fail (and release the table lock) when there are conflicting lock requests. Under load, it is easily possible that truncation would never occur, resulting in table bloat. Fix by performing a partial truncation, releasing the lock, then attempting to re-acquire the lock and continue. This fix also greatly reduces the average time before autovacuum releases the lock after a conflicting request arrives.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.12/changes/006", "db_id": "3d37c1cba00aaff6d71eb9162c03d0a4", "patch_ids": [], "statement_hash": "875ccfe31c156a689602f0b94b37996e94934844623d1dc53baaeb2f3f262707", "relations": [{"rule": 2, "type": "equivalent", "target": "54219d51cf8c2a51712e6c63125aa984", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "875ccfe31c156a689602f0b94b37996e94934844623d1dc53baaeb2f3f262707"}}, {"rule": 2, "type": "equivalent", "target": "ff055e53d870d7dc5b5d43ba36306047", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "875ccfe31c156a689602f0b94b37996e94934844623d1dc53baaeb2f3f262707"}}], "version": "9.0.12", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "54219d51cf8c2a51712e6c63125aa984", "kind": "equivalent", "version": "9.2.3", "label": "9.2.3", "title": "修复繁忙负载下自动清理截断的性能问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "875ccfe31c156a689602f0b94b37996e94934844623d1dc53baaeb2f3f262707"}, "url": "/docs/compare/?release=9.2.3#9.2.3-f0bf6d806fb9f955", "source_url": "/docs/release/9.2.3/#id-1.11.6.26.5"}, {"db_id": "ff055e53d870d7dc5b5d43ba36306047", "kind": "equivalent", "version": "9.1.8", "label": "9.1.8", "title": "修复繁忙负载下自动清理截断的性能问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "875ccfe31c156a689602f0b94b37996e94934844623d1dc53baaeb2f3f262707"}, "url": "/docs/compare/?release=9.1.8#9.1.8-f0bf6d806fb9f955", "source_url": "/docs/release/9.1.8/#id-1.11.6.21.5"}]}, {"id": "9.0.12-c1c40c256e4746b0", "cves": [], "html": "<p>防止扫描 <code>pg_tablespace</code> 时的竞态条件（Stephen Frost、Tom Lane）</p>\n<p>如果 <code>pg_tablespace</code> 条目存在并发更新，<code>CREATE DATABASE</code> 和 <code>DROP DATABASE</code> 可能行为异常。</p>", "text": "防止扫描 pg_tablespace 时的竞态条件（Stephen Frost、Tom Lane） 如果 pg_tablespace 条目存在并发更新，CREATE DATABASE 和 DROP DATABASE 可能行为异常。", "title": "防止扫描 pg_tablespace 时的竞态条件", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.12/#id-1.11.6.16.5", "source_hash": "5ff82aa81813c538b10c1e7b22a4bf18e141a16b9c995ffce967c2ecb9fcc4b4", "section_path": ["变更"], "commit_groups": [], "identity_text": "Protect against race conditions when scanning pg_tablespace (Stephen Frost, Tom Lane) CREATE DATABASE and DROP DATABASE could misbehave if there were concurrent updates of pg_tablespace entries.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.12/changes/007", "db_id": "2f381663c3a7a7bdd131d724a1a19a0e", "patch_ids": [], "statement_hash": "f461ffca2349ac9eb5575bef8efe8af6be2c265a65f284d9e5e825a49f3cdae2", "relations": [{"rule": 2, "type": "equivalent", "target": "4124539c48cb4ae98e125ea6487e211e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f461ffca2349ac9eb5575bef8efe8af6be2c265a65f284d9e5e825a49f3cdae2"}}, {"rule": 2, "type": "equivalent", "target": "94f35d956572a282768b13ff3370ea5b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f461ffca2349ac9eb5575bef8efe8af6be2c265a65f284d9e5e825a49f3cdae2"}}], "version": "9.0.12", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "4124539c48cb4ae98e125ea6487e211e", "kind": "equivalent", "version": "9.2.3", "label": "9.2.3", "title": "防止扫描 pg_tablespace 时的竞态条件", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f461ffca2349ac9eb5575bef8efe8af6be2c265a65f284d9e5e825a49f3cdae2"}, "url": "/docs/compare/?release=9.2.3#9.2.3-c1c40c256e4746b0", "source_url": "/docs/release/9.2.3/#id-1.11.6.26.5"}, {"db_id": "94f35d956572a282768b13ff3370ea5b", "kind": "equivalent", "version": "9.1.8", "label": "9.1.8", "title": "防止扫描 pg_tablespace 时的竞态条件", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f461ffca2349ac9eb5575bef8efe8af6be2c265a65f284d9e5e825a49f3cdae2"}, "url": "/docs/compare/?release=9.1.8#9.1.8-c1c40c256e4746b0", "source_url": "/docs/release/9.1.8/#id-1.11.6.21.5"}]}, {"id": "9.0.12-c2386c3f3fc0b0cc", "cves": [], "html": "<p>防止 <code>DROP OWNED</code> 试图删除整个数据库或表空间（Álvaro Herrera）</p>\n<p>为安全起见，这些对象的所有权必须重新分配，而不是删除。</p>", "text": "防止 DROP OWNED 试图删除整个数据库或表空间（Álvaro Herrera） 为安全起见，这些对象的所有权必须重新分配，而不是删除。", "title": "防止 DROP OWNED 试图删除整个数据库或表空间", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.12/#id-1.11.6.16.5", "source_hash": "d9c83aaab2e664a263f83f14c989c447b35b6d1deae3f9eab497191c19eb25e1", "section_path": ["变更"], "commit_groups": [], "identity_text": "Prevent DROP OWNED from trying to drop whole databases or tablespaces (Álvaro Herrera) For safety, ownership of these objects must be reassigned, not dropped.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.12/changes/008", "db_id": "91872261cc4f61e151e9a7d0ad8c8923", "patch_ids": [], "statement_hash": "14ac52f7c4085a31a2f64a07f6bcff3dc98a49399939b3110e5e00c4fb9d7597", "relations": [{"rule": 2, "type": "equivalent", "target": "4591577da65e3adbae050099c8f44547", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "14ac52f7c4085a31a2f64a07f6bcff3dc98a49399939b3110e5e00c4fb9d7597"}}, {"rule": 2, "type": "equivalent", "target": "fd69836f756ccf7e773d19a70c716b6f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "14ac52f7c4085a31a2f64a07f6bcff3dc98a49399939b3110e5e00c4fb9d7597"}}], "version": "9.0.12", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "fd69836f756ccf7e773d19a70c716b6f", "kind": "equivalent", "version": "9.2.3", "label": "9.2.3", "title": "防止 DROP OWNED 试图删除整个数据库或表空间", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "14ac52f7c4085a31a2f64a07f6bcff3dc98a49399939b3110e5e00c4fb9d7597"}, "url": "/docs/compare/?release=9.2.3#9.2.3-c2386c3f3fc0b0cc", "source_url": "/docs/release/9.2.3/#id-1.11.6.26.5"}, {"db_id": "4591577da65e3adbae050099c8f44547", "kind": "equivalent", "version": "9.1.8", "label": "9.1.8", "title": "防止 DROP OWNED 试图删除整个数据库或表空间", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "14ac52f7c4085a31a2f64a07f6bcff3dc98a49399939b3110e5e00c4fb9d7597"}, "url": "/docs/compare/?release=9.1.8#9.1.8-c2386c3f3fc0b0cc", "source_url": "/docs/release/9.1.8/#id-1.11.6.21.5"}]}, {"id": "9.0.12-78a2eaeea160458d", "cves": [], "html": "<p>修复 <a href=\"/docs/9.0/runtime-config-client.html#GUC-VACUUM-FREEZE-TABLE-AGE\"><code>vacuum_freeze_table_age</code></a> 实现中的错误（Andres Freund）</p>\n<p>在已存在超过 <a href=\"/docs/9.0/runtime-config-client.html#GUC-VACUUM-FREEZE-MIN-AGE\"><code>vacuum_freeze_min_age</code></a> 个事务的安装中，这一失误使自动清理无法使用部分表扫描，而总是进行全表扫描。</p>", "text": "修复 vacuum_freeze_table_age 实现中的错误（Andres Freund） 在已存在超过 vacuum_freeze_min_age 个事务的安装中，这一失误使自动清理无法使用部分表扫描，而总是进行全表扫描。", "title": "修复 vacuum_freeze_table_age 实现中的错误", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.12/#id-1.11.6.16.5", "source_hash": "4555198b984fe48b89f4f07b3dea7e6b589716d32762b4bc23edd9b6a1220b79", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix error in vacuum_freeze_table_age implementation (Andres Freund) In installations that have existed for more than vacuum_freeze_min_age transactions, this mistake prevented autovacuum from using partial-table scans, so that a full-table scan would always happen instead.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.12/changes/009", "db_id": "9d4f22a0dc36ff7537a2941b36c17cda", "patch_ids": [], "statement_hash": "31737a66953407683721d550c53a8505df249a78ff018e38154783e9a292a10d", "relations": [{"rule": 2, "type": "equivalent", "target": "45ba7a11d967e4a207296b4efecc0632", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "31737a66953407683721d550c53a8505df249a78ff018e38154783e9a292a10d"}}, {"rule": 2, "type": "equivalent", "target": "8143e55d91b5a9a1e07cd5db3b0829b6", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "31737a66953407683721d550c53a8505df249a78ff018e38154783e9a292a10d"}}], "version": "9.0.12", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "8143e55d91b5a9a1e07cd5db3b0829b6", "kind": "equivalent", "version": "9.2.3", "label": "9.2.3", "title": "修复 vacuum_freeze_table_age 实现中的错误", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "31737a66953407683721d550c53a8505df249a78ff018e38154783e9a292a10d"}, "url": "/docs/compare/?release=9.2.3#9.2.3-78a2eaeea160458d", "source_url": "/docs/release/9.2.3/#id-1.11.6.26.5"}, {"db_id": "45ba7a11d967e4a207296b4efecc0632", "kind": "equivalent", "version": "9.1.8", "label": "9.1.8", "title": "修复 vacuum_freeze_table_age 实现中的错误", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "31737a66953407683721d550c53a8505df249a78ff018e38154783e9a292a10d"}, "url": "/docs/compare/?release=9.1.8#9.1.8-78a2eaeea160458d", "source_url": "/docs/release/9.1.8/#id-1.11.6.21.5"}]}, {"id": "9.0.12-8137fc2f1d97f464", "cves": [], "html": "<p>防止 <code>RowExpr</code> 或 <code>XmlExpr</code> 被二次解析分析时的不当行为（Andres Freund、Tom Lane）</p>\n<p>这一失误在 <code>CREATE TABLE LIKE INCLUDING INDEXES</code> 等上下文中可能被用户看到。</p>", "text": "防止 RowExpr 或 XmlExpr 被二次解析分析时的不当行为（Andres Freund、Tom Lane） 这一失误在 CREATE TABLE LIKE INCLUDING INDEXES 等上下文中可能被用户看到。", "title": "防止 RowExpr 或 XmlExpr 被二次解析分析时的不当行为", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.12/#id-1.11.6.16.5", "source_hash": "0542ad2f0bc683d8c5f6a898fc67cf88873f388584ab6e81f145d165697589a5", "section_path": ["变更"], "commit_groups": [], "identity_text": "Prevent misbehavior when a RowExpr or XmlExpr is parse-analyzed twice (Andres Freund, Tom Lane) This mistake could be user-visible in contexts such as CREATE TABLE LIKE INCLUDING INDEXES.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.12/changes/010", "db_id": "055a5e4dfa780543619f924473d914a2", "patch_ids": [], "statement_hash": "2447d16e3a70a94c93e81ceadfeb4a1621775052861bb147afdaf2c0010afcbc", "relations": [{"rule": 2, "type": "equivalent", "target": "26657ea883bf7500ee7cb741c6b4aea6", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2447d16e3a70a94c93e81ceadfeb4a1621775052861bb147afdaf2c0010afcbc"}}, {"rule": 2, "type": "equivalent", "target": "a845baa996857f87eee3efa1ce1336a8", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2447d16e3a70a94c93e81ceadfeb4a1621775052861bb147afdaf2c0010afcbc"}}], "version": "9.0.12", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "a845baa996857f87eee3efa1ce1336a8", "kind": "equivalent", "version": "9.2.3", "label": "9.2.3", "title": "防止 RowExpr 或 XmlExpr 被二次解析分析时的不当行为", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2447d16e3a70a94c93e81ceadfeb4a1621775052861bb147afdaf2c0010afcbc"}, "url": "/docs/compare/?release=9.2.3#9.2.3-8137fc2f1d97f464", "source_url": "/docs/release/9.2.3/#id-1.11.6.26.5"}, {"db_id": "26657ea883bf7500ee7cb741c6b4aea6", "kind": "equivalent", "version": "9.1.8", "label": "9.1.8", "title": "防止 RowExpr 或 XmlExpr 被二次解析分析时的不当行为", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2447d16e3a70a94c93e81ceadfeb4a1621775052861bb147afdaf2c0010afcbc"}, "url": "/docs/compare/?release=9.1.8#9.1.8-8137fc2f1d97f464", "source_url": "/docs/release/9.1.8/#id-1.11.6.21.5"}]}, {"id": "9.0.12-972b3cd30af49471", "cves": [], "html": "<p>增强对哈希表大小计算中整数溢出的防御（Jeff Davis）</p>", "text": "增强对哈希表大小计算中整数溢出的防御（Jeff Davis）", "title": "增强对哈希表大小计算中整数溢出的防御", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.12/#id-1.11.6.16.5", "source_hash": "f7fbe3b839f1826fbb542e1588af73d4f6bd9c66c931f4428f2a793badc03399", "section_path": ["变更"], "commit_groups": [], "identity_text": "Improve defenses against integer overflow in hashtable sizing calculations (Jeff Davis)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.12/changes/011", "db_id": "7a490a116aa2738e282697a6f4adbb39", "patch_ids": [], "statement_hash": "c40eb99c68dea04c5fb7bddd9508bb7faa85f02166cf3ea732045bafdb466912", "relations": [{"rule": 2, "type": "equivalent", "target": "407aa706c6605ff416cb7c4e4e75428f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c40eb99c68dea04c5fb7bddd9508bb7faa85f02166cf3ea732045bafdb466912"}}, {"rule": 2, "type": "equivalent", "target": "8ace4c7a60dfb373dc4953a9dc984660", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c40eb99c68dea04c5fb7bddd9508bb7faa85f02166cf3ea732045bafdb466912"}}], "version": "9.0.12", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "8ace4c7a60dfb373dc4953a9dc984660", "kind": "equivalent", "version": "9.2.3", "label": "9.2.3", "title": "增强对哈希表大小计算中整数溢出的防御", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c40eb99c68dea04c5fb7bddd9508bb7faa85f02166cf3ea732045bafdb466912"}, "url": "/docs/compare/?release=9.2.3#9.2.3-972b3cd30af49471", "source_url": "/docs/release/9.2.3/#id-1.11.6.26.5"}, {"db_id": "407aa706c6605ff416cb7c4e4e75428f", "kind": "equivalent", "version": "9.1.8", "label": "9.1.8", "title": "增强对哈希表大小计算中整数溢出的防御", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c40eb99c68dea04c5fb7bddd9508bb7faa85f02166cf3ea732045bafdb466912"}, "url": "/docs/compare/?release=9.1.8#9.1.8-972b3cd30af49471", "source_url": "/docs/release/9.1.8/#id-1.11.6.21.5"}]}, {"id": "9.0.12-3e2b49ebac471453", "cves": [], "html": "<p>拒绝 <code>to_date()</code> 中超出范围的日期（Hitoshi Harada）</p>", "text": "拒绝 to_date() 中超出范围的日期（Hitoshi Harada）", "title": "拒绝 to_date() 中超出范围的日期", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.12/#id-1.11.6.16.5", "source_hash": "4dde155dbc0607f0d1b5d7057d0b71a0253185c75ff9ce281e535661777bde35", "section_path": ["变更"], "commit_groups": [], "identity_text": "Reject out-of-range dates in to_date() (Hitoshi Harada)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.12/changes/012", "db_id": "87f59fd57277f3abf8be6ed0e44f2608", "patch_ids": [], "statement_hash": "52e9b6d4e125702cff946186f4421ab26fc28169969af07f2af9986913483863", "relations": [{"rule": 2, "type": "equivalent", "target": "9446cc85054ad889ee6c47b88e9b5b2f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "52e9b6d4e125702cff946186f4421ab26fc28169969af07f2af9986913483863"}}, {"rule": 2, "type": "equivalent", "target": "a0ada91c26ced365b2eb8779f5f204c3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "52e9b6d4e125702cff946186f4421ab26fc28169969af07f2af9986913483863"}}], "version": "9.0.12", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "9446cc85054ad889ee6c47b88e9b5b2f", "kind": "equivalent", "version": "9.2.3", "label": "9.2.3", "title": "拒绝 to_date() 中超出范围的日期", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "52e9b6d4e125702cff946186f4421ab26fc28169969af07f2af9986913483863"}, "url": "/docs/compare/?release=9.2.3#9.2.3-3e2b49ebac471453", "source_url": "/docs/release/9.2.3/#id-1.11.6.26.5"}, {"db_id": "a0ada91c26ced365b2eb8779f5f204c3", "kind": "equivalent", "version": "9.1.8", "label": "9.1.8", "title": "拒绝 to_date() 中超出范围的日期", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "52e9b6d4e125702cff946186f4421ab26fc28169969af07f2af9986913483863"}, "url": "/docs/compare/?release=9.1.8#9.1.8-3e2b49ebac471453", "source_url": "/docs/release/9.1.8/#id-1.11.6.21.5"}]}, {"id": "9.0.12-47019676ebaffb41", "cves": [], "html": "<p>确保在 Windows 上非 ASCII 提示符字符串被转换到正确的代码页（Alexander Law、Noah Misch）</p>\n<p>这一缺陷影响 <span>psql</span> 和其他一些客户端程序。</p>", "text": "确保在 Windows 上非 ASCII 提示符字符串被转换到正确的代码页（Alexander Law、Noah Misch） 这一缺陷影响 psql 和其他一些客户端程序。", "title": "确保在 Windows 上非 ASCII 提示符字符串被转换到正确的代码页", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.12/#id-1.11.6.16.5", "source_hash": "1dbf2fd4f0dbed50334ceee12a8ee4b5d67575590c022af59893f0a412a083c0", "section_path": ["变更"], "commit_groups": [], "identity_text": "Ensure that non-ASCII prompt strings are translated to the correct code page on Windows (Alexander Law, Noah Misch) This bug affected psql and some other client programs.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.12/changes/013", "db_id": "9edd7b917ecb849fa7360d797874307b", "patch_ids": [], "statement_hash": "f69a3f45358c1387bcd2664f6ff27dceb55540cdd9a475deeebc350b2489c7c8", "relations": [{"rule": 2, "type": "equivalent", "target": "499d7f239bc7f7516c6ee6d43cc02a93", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f69a3f45358c1387bcd2664f6ff27dceb55540cdd9a475deeebc350b2489c7c8"}}, {"rule": 2, "type": "equivalent", "target": "8190c8b07e5709730eb6d83c24f133db", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f69a3f45358c1387bcd2664f6ff27dceb55540cdd9a475deeebc350b2489c7c8"}}], "version": "9.0.12", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "499d7f239bc7f7516c6ee6d43cc02a93", "kind": "equivalent", "version": "9.2.3", "label": "9.2.3", "title": "确保在 Windows 上非 ASCII 提示符字符串被转换到正确的代码页", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f69a3f45358c1387bcd2664f6ff27dceb55540cdd9a475deeebc350b2489c7c8"}, "url": "/docs/compare/?release=9.2.3#9.2.3-47019676ebaffb41", "source_url": "/docs/release/9.2.3/#id-1.11.6.26.5"}, {"db_id": "8190c8b07e5709730eb6d83c24f133db", "kind": "equivalent", "version": "9.1.8", "label": "9.1.8", "title": "确保在 Windows 上非 ASCII 提示符字符串被转换到正确的代码页", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f69a3f45358c1387bcd2664f6ff27dceb55540cdd9a475deeebc350b2489c7c8"}, "url": "/docs/compare/?release=9.1.8#9.1.8-47019676ebaffb41", "source_url": "/docs/release/9.1.8/#id-1.11.6.21.5"}]}, {"id": "9.0.12-9c92341cb525866c", "cves": [], "html": "<p>修复未连接数据库时 <span>psql</span> 的 <code>\\?</code> 命令可能崩溃的问题（Meng Qingzhong）</p>", "text": "修复未连接数据库时 psql 的 \\? 命令可能崩溃的问题（Meng Qingzhong）", "title": "修复未连接数据库时 psql 的 \\? 命令可能崩溃的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.12/#id-1.11.6.16.5", "source_hash": "bebbd0e33366ac1ad910e05ec19db26c0cc3178762049f7f3ef1cbe09f68b151", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix possible crash in psql's \\? command when not connected to a database (Meng Qingzhong)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.12/changes/014", "db_id": "d43347afb56978270318afc517d27c00", "patch_ids": [], "statement_hash": "bbd8f4452bb6fb33b4c85757846e000963fc2089ae0590cd589bd0229eedad6c", "relations": [{"rule": 2, "type": "equivalent", "target": "154a8896f3df6ea0b381f0dc5fd1ffb1", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bbd8f4452bb6fb33b4c85757846e000963fc2089ae0590cd589bd0229eedad6c"}}, {"rule": 2, "type": "equivalent", "target": "7825d1cf06ef5c81b077f288f9aeb1a6", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bbd8f4452bb6fb33b4c85757846e000963fc2089ae0590cd589bd0229eedad6c"}}], "version": "9.0.12", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "7825d1cf06ef5c81b077f288f9aeb1a6", "kind": "equivalent", "version": "9.2.3", "label": "9.2.3", "title": "修复未连接数据库时 psql 的 \\? 命令可能崩溃的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bbd8f4452bb6fb33b4c85757846e000963fc2089ae0590cd589bd0229eedad6c"}, "url": "/docs/compare/?release=9.2.3#9.2.3-9c92341cb525866c", "source_url": "/docs/release/9.2.3/#id-1.11.6.26.5"}, {"db_id": "154a8896f3df6ea0b381f0dc5fd1ffb1", "kind": "equivalent", "version": "9.1.8", "label": "9.1.8", "title": "修复未连接数据库时 psql 的 \\? 命令可能崩溃的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bbd8f4452bb6fb33b4c85757846e000963fc2089ae0590cd589bd0229eedad6c"}, "url": "/docs/compare/?release=9.1.8#9.1.8-9c92341cb525866c", "source_url": "/docs/release/9.1.8/#id-1.11.6.21.5"}]}, {"id": "9.0.12-d939c31edae16dcb", "cves": [], "html": "<p>修复 <span>pg_upgrade</span>，使其安全处理无效索引（Bruce Momjian）</p>", "text": "修复 pg_upgrade，使其安全处理无效索引（Bruce Momjian）", "title": "修复 pg_upgrade，使其安全处理无效索引", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.12/#id-1.11.6.16.5", "source_hash": "71dc780c3de016743bc6aa8d54ffc6828e9138d5442c234a9a48783d1ea1b5af", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix pg_upgrade to deal with invalid indexes safely (Bruce Momjian)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.12/changes/015", "db_id": "c131f4fa68c816d68243f49e0e66d505", "patch_ids": [], "statement_hash": "4e11bc10b70c7c08a4bae50beef46b806a60dc077df9e13e1f7f9317daaf815e", "relations": [{"rule": 2, "type": "equivalent", "target": "92f2eedd0191008895ecc47a0381e525", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4e11bc10b70c7c08a4bae50beef46b806a60dc077df9e13e1f7f9317daaf815e"}}, {"rule": 2, "type": "equivalent", "target": "a67066b1ca30377c447faab9ede582e0", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4e11bc10b70c7c08a4bae50beef46b806a60dc077df9e13e1f7f9317daaf815e"}}], "version": "9.0.12", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "a67066b1ca30377c447faab9ede582e0", "kind": "equivalent", "version": "9.2.3", "label": "9.2.3", "title": "修复 pg_upgrade，使其安全处理无效索引", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4e11bc10b70c7c08a4bae50beef46b806a60dc077df9e13e1f7f9317daaf815e"}, "url": "/docs/compare/?release=9.2.3#9.2.3-d939c31edae16dcb", "source_url": "/docs/release/9.2.3/#id-1.11.6.26.5"}, {"db_id": "92f2eedd0191008895ecc47a0381e525", "kind": "equivalent", "version": "9.1.8", "label": "9.1.8", "title": "修复 pg_upgrade，使其安全处理无效索引", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4e11bc10b70c7c08a4bae50beef46b806a60dc077df9e13e1f7f9317daaf815e"}, "url": "/docs/compare/?release=9.1.8#9.1.8-d939c31edae16dcb", "source_url": "/docs/release/9.1.8/#id-1.11.6.21.5"}]}, {"id": "9.0.12-2ae2e7061cacdd1a", "cves": [], "html": "<p>修复 <span>libpq</span> 的 <code>PQprintTuples</code> 中的一字节缓冲区越界（Xi Wang）</p>\n<p>这个古老的函数没有被 <span>PostgreSQL</span> 本身在任何地方使用，但仍可能被某些客户端代码使用。</p>", "text": "修复 libpq 的 PQprintTuples 中的一字节缓冲区越界（Xi Wang） 这个古老的函数没有被 PostgreSQL 本身在任何地方使用，但仍可能被某些客户端代码使用。", "title": "修复 libpq 的 PQprintTuples 中的一字节缓冲区越界", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.12/#id-1.11.6.16.5", "source_hash": "37c5424b096a29e41b2206748cefb02b89f0feb843cdd9fd20ece00ad1fd3e2b", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix one-byte buffer overrun in libpq's PQprintTuples (Xi Wang) This ancient function is not used anywhere by PostgreSQL itself, but it might still be used by some client code.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.12/changes/016", "db_id": "ed8b11f668bf27965f1486ee0ee6c1dc", "patch_ids": [], "statement_hash": "649cc796ce72b235c2b327eed32d383596d5163a8c749997d087c3d5c39cf421", "relations": [{"rule": 2, "type": "equivalent", "target": "55a3aa9b84d8e18a8636a2bf960e674c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "649cc796ce72b235c2b327eed32d383596d5163a8c749997d087c3d5c39cf421"}}, {"rule": 2, "type": "equivalent", "target": "c7f27d190db5f6d76239b290151cabe0", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "649cc796ce72b235c2b327eed32d383596d5163a8c749997d087c3d5c39cf421"}}], "version": "9.0.12", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "c7f27d190db5f6d76239b290151cabe0", "kind": "equivalent", "version": "9.2.3", "label": "9.2.3", "title": "修复 libpq 的 PQprintTuples 中的一字节缓冲区越界", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "649cc796ce72b235c2b327eed32d383596d5163a8c749997d087c3d5c39cf421"}, "url": "/docs/compare/?release=9.2.3#9.2.3-2ae2e7061cacdd1a", "source_url": "/docs/release/9.2.3/#id-1.11.6.26.5"}, {"db_id": "55a3aa9b84d8e18a8636a2bf960e674c", "kind": "equivalent", "version": "9.1.8", "label": "9.1.8", "title": "修复 libpq 的 PQprintTuples 中的一字节缓冲区越界", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "649cc796ce72b235c2b327eed32d383596d5163a8c749997d087c3d5c39cf421"}, "url": "/docs/compare/?release=9.1.8#9.1.8-2ae2e7061cacdd1a", "source_url": "/docs/release/9.1.8/#id-1.11.6.21.5"}]}, {"id": "9.0.12-7ed1c785c1654486", "cves": [], "html": "<p>让 <span>ecpglib</span> 正确使用翻译后的消息（Chen Huajun）</p>", "text": "让 ecpglib 正确使用翻译后的消息（Chen Huajun）", "title": "让 ecpglib 正确使用翻译后的消息", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.12/#id-1.11.6.16.5", "source_hash": "f8caa4d3fd2cf60a37d71b4ddad1d7c08751b7c61104b1fd2669154c5d250896", "section_path": ["变更"], "commit_groups": [], "identity_text": "Make ecpglib use translated messages properly (Chen Huajun)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.12/changes/017", "db_id": "310e1bbd2a63a2c3059a7ab89d5a51ad", "patch_ids": [], "statement_hash": "49a7631fea6e863d77c30b1a1cd722c8fac60892e288dea3eb95e2b39ea43b33", "relations": [{"rule": 2, "type": "equivalent", "target": "c9f8816bc5e0b59b3a950e7ba129bbd9", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "49a7631fea6e863d77c30b1a1cd722c8fac60892e288dea3eb95e2b39ea43b33"}}, {"rule": 2, "type": "equivalent", "target": "eea8e6946233ce55a4993f604dc80f93", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "49a7631fea6e863d77c30b1a1cd722c8fac60892e288dea3eb95e2b39ea43b33"}}], "version": "9.0.12", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "eea8e6946233ce55a4993f604dc80f93", "kind": "equivalent", "version": "9.2.3", "label": "9.2.3", "title": "让 ecpglib 正确使用翻译后的消息", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "49a7631fea6e863d77c30b1a1cd722c8fac60892e288dea3eb95e2b39ea43b33"}, "url": "/docs/compare/?release=9.2.3#9.2.3-7ed1c785c1654486", "source_url": "/docs/release/9.2.3/#id-1.11.6.26.5"}, {"db_id": "c9f8816bc5e0b59b3a950e7ba129bbd9", "kind": "equivalent", "version": "9.1.8", "label": "9.1.8", "title": "让 ecpglib 正确使用翻译后的消息", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "49a7631fea6e863d77c30b1a1cd722c8fac60892e288dea3eb95e2b39ea43b33"}, "url": "/docs/compare/?release=9.1.8#9.1.8-7ed1c785c1654486", "source_url": "/docs/release/9.1.8/#id-1.11.6.21.5"}]}, {"id": "9.0.12-ccb9daeb6839c518", "cves": [], "html": "<p>在 MSVC 上正确安装 <span>ecpg_compat</span> 和 <span>pgtypes</span> 库（Jiang Guiqing）</p>", "text": "在 MSVC 上正确安装 ecpg_compat 和 pgtypes 库（Jiang Guiqing）", "title": "在 MSVC 上正确安装 ecpg_compat 和 pgtypes 库", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.12/#id-1.11.6.16.5", "source_hash": "aed9c30dba7d684dd617cae9fb1b11df4b882f0a0d3393078ff1da10bb2cbc40", "section_path": ["变更"], "commit_groups": [], "identity_text": "Properly install ecpg_compat and pgtypes libraries on MSVC (Jiang Guiqing)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.12/changes/018", "db_id": "10b62e8f30a945f4bebfae2e42174fa3", "patch_ids": [], "statement_hash": "0937e1a464eaade0933dd613a8a81f57b0bc406eec60623021c3cbc7c0f65d8f", "relations": [{"rule": 2, "type": "equivalent", "target": "1e024e7c1038e29cadc05c57a2c91683", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0937e1a464eaade0933dd613a8a81f57b0bc406eec60623021c3cbc7c0f65d8f"}}, {"rule": 2, "type": "equivalent", "target": "326a49f11dc364f4304b26e7f911cc66", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0937e1a464eaade0933dd613a8a81f57b0bc406eec60623021c3cbc7c0f65d8f"}}], "version": "9.0.12", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "1e024e7c1038e29cadc05c57a2c91683", "kind": "equivalent", "version": "9.2.3", "label": "9.2.3", "title": "在 MSVC 上正确安装 ecpg_compat 和 pgtypes 库", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0937e1a464eaade0933dd613a8a81f57b0bc406eec60623021c3cbc7c0f65d8f"}, "url": "/docs/compare/?release=9.2.3#9.2.3-ccb9daeb6839c518", "source_url": "/docs/release/9.2.3/#id-1.11.6.26.5"}, {"db_id": "326a49f11dc364f4304b26e7f911cc66", "kind": "equivalent", "version": "9.1.8", "label": "9.1.8", "title": "在 MSVC 上正确安装 ecpg_compat 和 pgtypes 库", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0937e1a464eaade0933dd613a8a81f57b0bc406eec60623021c3cbc7c0f65d8f"}, "url": "/docs/compare/?release=9.1.8#9.1.8-ccb9daeb6839c518", "source_url": "/docs/release/9.1.8/#id-1.11.6.21.5"}]}, {"id": "9.0.12-7c0fa34c12c36e2e", "cves": [], "html": "<p>如果系统未提供 <code>isinf()</code>，则在 <span>libecpg</span> 中包含我们自己的版本（Jiang Guiqing）</p>", "text": "如果系统未提供 isinf()，则在 libecpg 中包含我们自己的版本（Jiang Guiqing）", "title": "如果系统未提供 isinf()，则在 libecpg 中包含我们自己的版本", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.12/#id-1.11.6.16.5", "source_hash": "186fb6ca8d1e5991561c8bcac92ba53ab3e80c94238454aa0ab0f51de9cbe993", "section_path": ["变更"], "commit_groups": [], "identity_text": "Include our version of isinf() in libecpg if it's not provided by the system (Jiang Guiqing)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.12/changes/019", "db_id": "044e78f6b1acb208579c1ada54ee03ef", "patch_ids": [], "statement_hash": "93b37c1e29b31c1dd61fd56d7a42457b0b9e57c768d3138398c4b1f575e348e4", "relations": [{"rule": 2, "type": "equivalent", "target": "9264d25d4dc7016c8663a4ed60254ea0", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "93b37c1e29b31c1dd61fd56d7a42457b0b9e57c768d3138398c4b1f575e348e4"}}, {"rule": 2, "type": "equivalent", "target": "b7e8f4df499535ec1cda04ae40f923fc", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "93b37c1e29b31c1dd61fd56d7a42457b0b9e57c768d3138398c4b1f575e348e4"}}], "version": "9.0.12", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "b7e8f4df499535ec1cda04ae40f923fc", "kind": "equivalent", "version": "9.2.3", "label": "9.2.3", "title": "如果系统未提供 isinf()，则在 libecpg 中包含我们自己的版本", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "93b37c1e29b31c1dd61fd56d7a42457b0b9e57c768d3138398c4b1f575e348e4"}, "url": "/docs/compare/?release=9.2.3#9.2.3-7c0fa34c12c36e2e", "source_url": "/docs/release/9.2.3/#id-1.11.6.26.5"}, {"db_id": "9264d25d4dc7016c8663a4ed60254ea0", "kind": "equivalent", "version": "9.1.8", "label": "9.1.8", "title": "如果系统未提供 isinf()，则在 libecpg 中包含我们自己的版本", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "93b37c1e29b31c1dd61fd56d7a42457b0b9e57c768d3138398c4b1f575e348e4"}, "url": "/docs/compare/?release=9.1.8#9.1.8-7c0fa34c12c36e2e", "source_url": "/docs/release/9.1.8/#id-1.11.6.21.5"}]}, {"id": "9.0.12-90755d80ecff086a", "cves": [], "html": "<p>重新排列 configure 对系统提供函数的测试，使其不被 libedit/libreadline 的虚假导出所欺骗（Christoph Berg）</p>", "text": "重新排列 configure 对系统提供函数的测试，使其不被 libedit/libreadline 的虚假导出所欺骗（Christoph Berg）", "title": "重新排列 configure 对系统提供函数的测试，使其不被 libedit/libreadline 的虚假导出所欺骗", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.12/#id-1.11.6.16.5", "source_hash": "6863599e7568406f5a840997ce623afd0185622163f9e61d7f7c9602d0ee9602", "section_path": ["变更"], "commit_groups": [], "identity_text": "Rearrange configure's tests for supplied functions so it is not fooled by bogus exports from libedit/libreadline (Christoph Berg)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.12/changes/020", "db_id": "0458d6b686242b9a6e4bed416ba3491e", "patch_ids": [], "statement_hash": "e158edd89dba605daf3b829b35ea5c84462911f2139c0b4bf0e8791365292202", "relations": [{"rule": 2, "type": "equivalent", "target": "74c00b37070e969a13d784c94a8a0e0d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e158edd89dba605daf3b829b35ea5c84462911f2139c0b4bf0e8791365292202"}}, {"rule": 2, "type": "equivalent", "target": "c5d8b22210ced8efa76a0da9a474bff0", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e158edd89dba605daf3b829b35ea5c84462911f2139c0b4bf0e8791365292202"}}], "version": "9.0.12", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "74c00b37070e969a13d784c94a8a0e0d", "kind": "equivalent", "version": "9.2.3", "label": "9.2.3", "title": "重新排列 configure 对系统提供函数的测试，使其不被 libedit/libreadline 的虚假导出所欺骗", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e158edd89dba605daf3b829b35ea5c84462911f2139c0b4bf0e8791365292202"}, "url": "/docs/compare/?release=9.2.3#9.2.3-90755d80ecff086a", "source_url": "/docs/release/9.2.3/#id-1.11.6.26.5"}, {"db_id": "c5d8b22210ced8efa76a0da9a474bff0", "kind": "equivalent", "version": "9.1.8", "label": "9.1.8", "title": "重新排列 configure 对系统提供函数的测试，使其不被 libedit/libreadline 的虚假导出所欺骗", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e158edd89dba605daf3b829b35ea5c84462911f2139c0b4bf0e8791365292202"}, "url": "/docs/compare/?release=9.1.8#9.1.8-90755d80ecff086a", "source_url": "/docs/release/9.1.8/#id-1.11.6.21.5"}]}, {"id": "9.0.12-9232ac45578b99fb", "cves": [], "html": "<p>确保 Windows 构建号随时间递增（Magnus Hagander）</p>", "text": "确保 Windows 构建号随时间递增（Magnus Hagander）", "title": "确保 Windows 构建号随时间递增", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.12/#id-1.11.6.16.5", "source_hash": "4d4767de9d270208a9b5635f3301ca8ac9769c6a9911655406c6d6ec8d29aded", "section_path": ["变更"], "commit_groups": [], "identity_text": "Ensure Windows build number increases over time (Magnus Hagander)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.12/changes/021", "db_id": "6681c1784c69da9ff076d5c63c8309ac", "patch_ids": [], "statement_hash": "0ca2e5abb4edad748a9aa524fd49f8a90c3fa461ae8270bd9f592b8508de122b", "relations": [{"rule": 2, "type": "equivalent", "target": "173fab1f3c4b0a7ef20016598398a204", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0ca2e5abb4edad748a9aa524fd49f8a90c3fa461ae8270bd9f592b8508de122b"}}, {"rule": 2, "type": "equivalent", "target": "2b2e51914cac3e5f3c525689533f8f61", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0ca2e5abb4edad748a9aa524fd49f8a90c3fa461ae8270bd9f592b8508de122b"}}], "version": "9.0.12", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "173fab1f3c4b0a7ef20016598398a204", "kind": "equivalent", "version": "9.2.3", "label": "9.2.3", "title": "确保 Windows 构建号随时间递增", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0ca2e5abb4edad748a9aa524fd49f8a90c3fa461ae8270bd9f592b8508de122b"}, "url": "/docs/compare/?release=9.2.3#9.2.3-9232ac45578b99fb", "source_url": "/docs/release/9.2.3/#id-1.11.6.26.5"}, {"db_id": "2b2e51914cac3e5f3c525689533f8f61", "kind": "equivalent", "version": "9.1.8", "label": "9.1.8", "title": "确保 Windows 构建号随时间递增", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0ca2e5abb4edad748a9aa524fd49f8a90c3fa461ae8270bd9f592b8508de122b"}, "url": "/docs/compare/?release=9.1.8#9.1.8-9232ac45578b99fb", "source_url": "/docs/release/9.1.8/#id-1.11.6.21.5"}]}, {"id": "9.0.12-555718a0c24eaac5", "cves": [], "html": "<p>让 <span>pgxs</span> 在为 Windows 交叉编译时以正确的 <code>.exe</code> 后缀构建可执行文件（Zoltan Boszormenyi）</p>", "text": "让 pgxs 在为 Windows 交叉编译时以正确的 .exe 后缀构建可执行文件（Zoltan Boszormenyi）", "title": "让 pgxs 在为 Windows 交叉编译时以正确的 .exe 后缀构建可执行文件", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.12/#id-1.11.6.16.5", "source_hash": "4fe3f5d834e7f6666c3bd267ff1af5962cce965f5cb612157a2e237ef19ed87d", "section_path": ["变更"], "commit_groups": [], "identity_text": "Make pgxs build executables with the right .exe suffix when cross-compiling for Windows (Zoltan Boszormenyi)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.12/changes/022", "db_id": "e670243d5c363a1b9013fe1497817d61", "patch_ids": [], "statement_hash": "ae0d12b9413e4d73aa9e9fb0a0d6dfb98d3c7b12cd1cf5d04b20d41b7bb44b4a", "relations": [{"rule": 2, "type": "equivalent", "target": "6d5fc75d8bb762e5f4f74e73a3ad3dbf", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ae0d12b9413e4d73aa9e9fb0a0d6dfb98d3c7b12cd1cf5d04b20d41b7bb44b4a"}}, {"rule": 2, "type": "equivalent", "target": "db862cbcf7e6eed60db6e3530705a00a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ae0d12b9413e4d73aa9e9fb0a0d6dfb98d3c7b12cd1cf5d04b20d41b7bb44b4a"}}], "version": "9.0.12", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "6d5fc75d8bb762e5f4f74e73a3ad3dbf", "kind": "equivalent", "version": "9.2.3", "label": "9.2.3", "title": "让 pgxs 在为 Windows 交叉编译时以正确的 .exe 后缀构建可执行文件", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ae0d12b9413e4d73aa9e9fb0a0d6dfb98d3c7b12cd1cf5d04b20d41b7bb44b4a"}, "url": "/docs/compare/?release=9.2.3#9.2.3-555718a0c24eaac5", "source_url": "/docs/release/9.2.3/#id-1.11.6.26.5"}, {"db_id": "db862cbcf7e6eed60db6e3530705a00a", "kind": "equivalent", "version": "9.1.8", "label": "9.1.8", "title": "让 pgxs 在为 Windows 交叉编译时以正确的 .exe 后缀构建可执行文件", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ae0d12b9413e4d73aa9e9fb0a0d6dfb98d3c7b12cd1cf5d04b20d41b7bb44b4a"}, "url": "/docs/compare/?release=9.1.8#9.1.8-555718a0c24eaac5", "source_url": "/docs/release/9.1.8/#id-1.11.6.21.5"}]}, {"id": "9.0.12-18f2179ffa9f58c6", "cves": [], "html": "<p>新增时区缩写 <code>FET</code>（Tom Lane）</p>\n<p>它现在用于一些东欧时区。</p>", "text": "新增时区缩写 FET（Tom Lane） 它现在用于一些东欧时区。", "title": "新增时区缩写 FET", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.12/#id-1.11.6.16.5", "source_hash": "8aef290f6113515dd4315e1910737d8651f3165fb01e42377ac5be1b5c8c0298", "section_path": ["变更"], "commit_groups": [], "identity_text": "Add new timezone abbreviation FET (Tom Lane) This is now used in some eastern-European time zones.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.12/changes/023", "db_id": "cdda8dde81204828d84a1c6d648c9ae1", "patch_ids": [], "statement_hash": "bc4823c1eddd1ec9cb04935f009f536696269e6c70a152290f84faf52cb18c67", "relations": [{"rule": 2, "type": "equivalent", "target": "3e41b446a44f803d89320f2560115d34", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bc4823c1eddd1ec9cb04935f009f536696269e6c70a152290f84faf52cb18c67"}}, {"rule": 2, "type": "equivalent", "target": "d8df38792917705a75a7dd9d051709cb", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bc4823c1eddd1ec9cb04935f009f536696269e6c70a152290f84faf52cb18c67"}}], "version": "9.0.12", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "d8df38792917705a75a7dd9d051709cb", "kind": "equivalent", "version": "9.2.3", "label": "9.2.3", "title": "新增时区缩写 FET", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bc4823c1eddd1ec9cb04935f009f536696269e6c70a152290f84faf52cb18c67"}, "url": "/docs/compare/?release=9.2.3#9.2.3-18f2179ffa9f58c6", "source_url": "/docs/release/9.2.3/#id-1.11.6.26.5"}, {"db_id": "3e41b446a44f803d89320f2560115d34", "kind": "equivalent", "version": "9.1.8", "label": "9.1.8", "title": "新增时区缩写 FET", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bc4823c1eddd1ec9cb04935f009f536696269e6c70a152290f84faf52cb18c67"}, "url": "/docs/compare/?release=9.1.8#9.1.8-18f2179ffa9f58c6", "source_url": "/docs/release/9.1.8/#id-1.11.6.21.5"}]}]}, {"date": "2012-12-06", "build": "9.0.11", "major": "9.0", "minor": 11, "manual": "9.0", "status": "stable", "doc_git": "", "version": "9.0.11", "eol_date": "2015-10-08", "date_text": "2012-12-06", "supported": false, "manual_url": "/docs/9.0/release-9-0-11.html", "source_url": "/docs/release/9.0.11/", "entry_count": 32, "placeholder": false, "content_hash": "2d54f15ed8c520a971eb0c8d5e8d674f0abb1b88136e4f2fa67c114ce88d87a1", "manual_build": "9.0.23", "source_as_of": "", "changes_count": 32, "doc_loaded_at": "2026-09-26T02:56:48.570247", "migration_html": "<p>对于运行 9.0.X 的用户，不需要进行转储/恢复。</p>\n<p>不过，如果你是从早于 9.0.6 的版本升级，请参见<a href=\"/docs/9.0/release-9-0-6.html\" title=\"E.18. 版本 9.0.6\">第 E.18 节</a>。</p>", "compatibility_count": 0, "label": "9.0.11", "status_label": "历史版本", "eol": "2015-10-08", "age_days": 5046, "support_days": -4010, "entries": [{"id": "9.0.11-51c556bb5b8d0fa8", "cves": [], "html": "<p>修复与 <code>CREATE INDEX CONCURRENTLY</code> 相关的多个缺陷（Andres Freund、Tom Lane）</p>\n<p>修复 <code>CREATE INDEX CONCURRENTLY</code>，使其在更改索引 <code>pg_index</code> 行的状态时使用就地更新。这防止了可能导致并发会话错过更新目标索引（从而产生损坏的并发创建索引）的竞态条件。</p>\n<p>另外，修复各种其他操作，确保它们忽略由失败的 <code>CREATE INDEX CONCURRENTLY</code> 命令产生的无效索引。其中最重要的是 <code>VACUUM</code>，因为在采取纠正措施修复或删除无效索引之前，很容易就有自动清理在该表上启动。</p>", "text": "修复与 CREATE INDEX CONCURRENTLY 相关的多个缺陷（Andres Freund、Tom Lane） 修复 CREATE INDEX CONCURRENTLY，使其在更改索引 pg_index 行的状态时使用就地更新。这防止了可能导致并发会话错过更新目标索引（从而产生损坏的并发创建索引）的竞态条件。 另外，修复各种其他操作，确保它们忽略由失败的 CREATE INDEX CONCURRENTLY 命令产生的无效索引。其中最重要的是 VACUUM，因为在采取纠正措施修复或删除无效索引之前，很容易就有自动清理在该表上启动。", "title": "修复与 CREATE INDEX CONCURRENTLY 相关的多个缺陷", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.11/#id-1.11.6.17.5", "source_hash": "6a52ae275bbd3333fff930b487a2922474e0768f8875360a90877c4f907340e6", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix multiple bugs associated with CREATE INDEX CONCURRENTLY (Andres Freund, Tom Lane) Fix CREATE INDEX CONCURRENTLY to use in-place updates when changing the state of an index's pg_index row. This prevents race conditions that could cause concurrent sessions to miss updating the target index, thus resulting in corrupt concurrently-created indexes. Also, fix various other operations to ensure that they ignore invalid indexes resulting from a failed CREATE INDEX CONCURRENTLY command. The most important of these is VACUUM, because an auto-vacuum could easily be launched on the table before corrective action can be taken to fix or remove the invalid index.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.11/changes/001", "db_id": "b2840c276b352f4023446d129bc7a65b", "patch_ids": [], "statement_hash": "54dd5f9a185fcd2f5a896a4ee94697467d661c2bac02edebd986c5fb78ba029a", "relations": [{"rule": 2, "type": "equivalent", "target": "499c27583c780cd5c3db07e09d09dc90", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "54dd5f9a185fcd2f5a896a4ee94697467d661c2bac02edebd986c5fb78ba029a"}}], "version": "9.0.11", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "499c27583c780cd5c3db07e09d09dc90", "kind": "equivalent", "version": "9.1.7", "label": "9.1.7", "title": "修复与 CREATE INDEX CONCURRENTLY 相关的多个缺陷", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "54dd5f9a185fcd2f5a896a4ee94697467d661c2bac02edebd986c5fb78ba029a"}, "url": "/docs/compare/?release=9.1.7#9.1.7-51c556bb5b8d0fa8", "source_url": "/docs/release/9.1.7/#id-1.11.6.22.5"}]}, {"id": "9.0.11-7dbde48d243a2133", "cves": [], "html": "<p>修复 WAL 重放期间的缓冲区锁定（Tom Lane）</p>\n<p>WAL 重放代码在重放影响多个页面的 WAL 记录时，对缓冲区加锁不够谨慎。这可能导致热备查询瞬时看到不一致的状态，造成错误结果或意外失败。</p>", "text": "修复 WAL 重放期间的缓冲区锁定（Tom Lane） WAL 重放代码在重放影响多个页面的 WAL 记录时，对缓冲区加锁不够谨慎。这可能导致热备查询瞬时看到不一致的状态，造成错误结果或意外失败。", "title": "修复 WAL 重放期间的缓冲区锁定", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.11/#id-1.11.6.17.5", "source_hash": "f3ad85a69cb0fe4f28e73af374c610f73e8a6ca20b12192d848ba7101078bf65", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix buffer locking during WAL replay (Tom Lane) The WAL replay code was insufficiently careful about locking buffers when replaying WAL records that affect more than one page. This could result in hot standby queries transiently seeing inconsistent states, resulting in wrong answers or unexpected failures.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.11/changes/002", "db_id": "40ae178c8033f11d304a3c3509516eac", "patch_ids": [], "statement_hash": "e60c460aec8e3c9fc9dadf8e58b4d72ff7a4b7734c8a83dc7aba0cdf554f03cb", "relations": [{"rule": 2, "type": "equivalent", "target": "51098e75a70f44f43bede962baf0776b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e60c460aec8e3c9fc9dadf8e58b4d72ff7a4b7734c8a83dc7aba0cdf554f03cb"}}, {"rule": 2, "type": "equivalent", "target": "c90990678a48b2df18d527d1a6597839", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e60c460aec8e3c9fc9dadf8e58b4d72ff7a4b7734c8a83dc7aba0cdf554f03cb"}}], "version": "9.0.11", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "c90990678a48b2df18d527d1a6597839", "kind": "equivalent", "version": "9.2.2", "label": "9.2.2", "title": "修复 WAL 重放期间的缓冲区锁定", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e60c460aec8e3c9fc9dadf8e58b4d72ff7a4b7734c8a83dc7aba0cdf554f03cb"}, "url": "/docs/compare/?release=9.2.2#9.2.2-7dbde48d243a2133", "source_url": "/docs/release/9.2.2/#id-1.11.6.27.5"}, {"db_id": "51098e75a70f44f43bede962baf0776b", "kind": "equivalent", "version": "9.1.7", "label": "9.1.7", "title": "修复 WAL 重放期间的缓冲区锁定", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e60c460aec8e3c9fc9dadf8e58b4d72ff7a4b7734c8a83dc7aba0cdf554f03cb"}, "url": "/docs/compare/?release=9.1.7#9.1.7-7dbde48d243a2133", "source_url": "/docs/release/9.1.7/#id-1.11.6.22.5"}]}, {"id": "9.0.11-20f4599c5966ea28", "cves": [], "html": "<p>修复 GIN 索引 WAL 生成逻辑中的一个错误（Tom Lane）</p>\n<p>如果发生残缺页故障，这可能导致索引损坏。</p>", "text": "修复 GIN 索引 WAL 生成逻辑中的一个错误（Tom Lane） 如果发生残缺页故障，这可能导致索引损坏。", "title": "修复 GIN 索引 WAL 生成逻辑中的一个错误", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.11/#id-1.11.6.17.5", "source_hash": "8cd84ace00cac71de460526697f63628f127b72b111c0b96122ddb7a7ee37a0d", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix an error in WAL generation logic for GIN indexes (Tom Lane) This could result in index corruption, if a torn-page failure occurred.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.11/changes/003", "db_id": "635e3c5d90dacf55981ea265aefd4964", "patch_ids": [], "statement_hash": "6adaef02f5128971832f4f52b2eb357eab62949951a055b67884f2ec00423c9d", "relations": [{"rule": 2, "type": "equivalent", "target": "8207df19f289120274af27c78d800fbe", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6adaef02f5128971832f4f52b2eb357eab62949951a055b67884f2ec00423c9d"}}, {"rule": 2, "type": "equivalent", "target": "e4d26ec763e422d94eb9141ced9f4baf", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6adaef02f5128971832f4f52b2eb357eab62949951a055b67884f2ec00423c9d"}}], "version": "9.0.11", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "e4d26ec763e422d94eb9141ced9f4baf", "kind": "equivalent", "version": "9.2.2", "label": "9.2.2", "title": "修复 GIN 索引 WAL 生成逻辑中的一个错误", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6adaef02f5128971832f4f52b2eb357eab62949951a055b67884f2ec00423c9d"}, "url": "/docs/compare/?release=9.2.2#9.2.2-20f4599c5966ea28", "source_url": "/docs/release/9.2.2/#id-1.11.6.27.5"}, {"db_id": "8207df19f289120274af27c78d800fbe", "kind": "equivalent", "version": "9.1.7", "label": "9.1.7", "title": "修复 GIN 索引 WAL 生成逻辑中的一个错误", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6adaef02f5128971832f4f52b2eb357eab62949951a055b67884f2ec00423c9d"}, "url": "/docs/compare/?release=9.1.7#9.1.7-20f4599c5966ea28", "source_url": "/docs/release/9.1.7/#id-1.11.6.22.5"}]}, {"id": "9.0.11-f964cb1349a3ce24", "cves": [], "html": "<p>把热备服务器提升为正常运行时，正确移除启动进程的虚拟 XID 锁（Simon Riggs）</p>\n<p>这一疏忽可能阻止后续执行某些操作，例如 <code>CREATE INDEX CONCURRENTLY</code>。</p>", "text": "把热备服务器提升为正常运行时，正确移除启动进程的虚拟 XID 锁（Simon Riggs） 这一疏忽可能阻止后续执行某些操作，例如 CREATE INDEX CONCURRENTLY。", "title": "把热备服务器提升为正常运行时，正确移除启动进程的虚拟 XID 锁", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.11/#id-1.11.6.17.5", "source_hash": "f9f08a000a77ffc265b056b8fef86da92f8aa0646b5d6f700de547f57cd09403", "section_path": ["变更"], "commit_groups": [], "identity_text": "Properly remove startup process's virtual XID lock when promoting a hot standby server to normal running (Simon Riggs) This oversight could prevent subsequent execution of certain operations such as CREATE INDEX CONCURRENTLY.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.11/changes/004", "db_id": "b61e982a76c8926258760d94b1704113", "patch_ids": [], "statement_hash": "4a9b2c80ac821dd5928b1876cdc8462934249088a00d592e929c1bee51b00ded", "relations": [{"rule": 2, "type": "equivalent", "target": "9cc10929afd331b2305654f79430dcf8", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4a9b2c80ac821dd5928b1876cdc8462934249088a00d592e929c1bee51b00ded"}}, {"rule": 2, "type": "equivalent", "target": "c466a121372cdd90134fd1b120a87e93", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4a9b2c80ac821dd5928b1876cdc8462934249088a00d592e929c1bee51b00ded"}}], "version": "9.0.11", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "c466a121372cdd90134fd1b120a87e93", "kind": "equivalent", "version": "9.2.2", "label": "9.2.2", "title": "把热备服务器提升为正常运行时，正确移除启动进程的虚拟 XID 锁", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4a9b2c80ac821dd5928b1876cdc8462934249088a00d592e929c1bee51b00ded"}, "url": "/docs/compare/?release=9.2.2#9.2.2-f964cb1349a3ce24", "source_url": "/docs/release/9.2.2/#id-1.11.6.27.5"}, {"db_id": "9cc10929afd331b2305654f79430dcf8", "kind": "equivalent", "version": "9.1.7", "label": "9.1.7", "title": "把热备服务器提升为正常运行时，正确移除启动进程的虚拟 XID 锁", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4a9b2c80ac821dd5928b1876cdc8462934249088a00d592e929c1bee51b00ded"}, "url": "/docs/compare/?release=9.1.7#9.1.7-f964cb1349a3ce24", "source_url": "/docs/release/9.1.7/#id-1.11.6.22.5"}]}, {"id": "9.0.11-f4e292ab2330a219", "cves": [], "html": "<p>避免备库模式下虚假的 <span>“<span>out-of-sequence timeline ID</span>”</span> 错误（Heikki Linnakangas）</p>", "text": "避免备库模式下虚假的 “out-of-sequence timeline ID” 错误（Heikki Linnakangas）", "title": "避免备库模式下虚假的 “out-of-sequence timeline ID” 错误", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.11/#id-1.11.6.17.5", "source_hash": "abdf5933d88a9d85ef219bf8d3a66042810f12e1700f5949c13102d0a7af39c1", "section_path": ["变更"], "commit_groups": [], "identity_text": "Avoid bogus out-of-sequence timeline ID errors in standby mode (Heikki Linnakangas)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.11/changes/005", "db_id": "a73ebde118090b70ad873ee747ae6fce", "patch_ids": [], "statement_hash": "070e01732b0c4aae3265e7558b8bc1e9b7096f4343c11c05390d846ebfdbdb4e", "relations": [{"rule": 2, "type": "equivalent", "target": "944a6245c1950c2f542905a7b945924b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "070e01732b0c4aae3265e7558b8bc1e9b7096f4343c11c05390d846ebfdbdb4e"}}, {"rule": 2, "type": "equivalent", "target": "b049f106277487122b03a575e1920a9d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "070e01732b0c4aae3265e7558b8bc1e9b7096f4343c11c05390d846ebfdbdb4e"}}], "version": "9.0.11", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "b049f106277487122b03a575e1920a9d", "kind": "equivalent", "version": "9.2.2", "label": "9.2.2", "title": "避免备库模式下虚假的“out-of-sequence timeline ID”错误", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "070e01732b0c4aae3265e7558b8bc1e9b7096f4343c11c05390d846ebfdbdb4e"}, "url": "/docs/compare/?release=9.2.2#9.2.2-fff9b7427e7a2cc3", "source_url": "/docs/release/9.2.2/#id-1.11.6.27.5"}, {"db_id": "944a6245c1950c2f542905a7b945924b", "kind": "equivalent", "version": "9.1.7", "label": "9.1.7", "title": "避免备库模式下虚假的 “out-of-sequence timeline ID” 错误", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "070e01732b0c4aae3265e7558b8bc1e9b7096f4343c11c05390d846ebfdbdb4e"}, "url": "/docs/compare/?release=9.1.7#9.1.7-f4e292ab2330a219", "source_url": "/docs/release/9.1.7/#id-1.11.6.22.5"}]}, {"id": "9.0.11-d917ac02541fa2d6", "cves": [], "html": "<p>防止 postmaster 在收到关闭信号后继续启动新的子进程（Tom Lane）</p>\n<p>这一失误可能导致关闭耗时比应有的更长，甚至在没有额外用户操作的情况下永远无法完成。</p>", "text": "防止 postmaster 在收到关闭信号后继续启动新的子进程（Tom Lane） 这一失误可能导致关闭耗时比应有的更长，甚至在没有额外用户操作的情况下永远无法完成。", "title": "防止 postmaster 在收到关闭信号后继续启动新的子进程", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.11/#id-1.11.6.17.5", "source_hash": "449a9186f9989a6820a44762e3aba7bff93f81732b475746ebd1663dbe293451", "section_path": ["变更"], "commit_groups": [], "identity_text": "Prevent the postmaster from launching new child processes after it's received a shutdown signal (Tom Lane) This mistake could result in shutdown taking longer than it should, or even never completing at all without additional user action.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.11/changes/006", "db_id": "7bb04e99a81c258771653ee206166f8c", "patch_ids": [], "statement_hash": "99fd94185ca0637ca1c92b531dffc37cd7bcc00f111ae89e0e474d2579475dc1", "relations": [{"rule": 2, "type": "equivalent", "target": "91dfcffb3a9197d924b2e4b668ca9e4f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "99fd94185ca0637ca1c92b531dffc37cd7bcc00f111ae89e0e474d2579475dc1"}}, {"rule": 2, "type": "equivalent", "target": "cc631e18ec7f9c6daa6037bb9bc71d30", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "99fd94185ca0637ca1c92b531dffc37cd7bcc00f111ae89e0e474d2579475dc1"}}], "version": "9.0.11", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "cc631e18ec7f9c6daa6037bb9bc71d30", "kind": "equivalent", "version": "9.2.2", "label": "9.2.2", "title": "防止 postmaster 在收到关闭信号后继续启动新的子进程", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "99fd94185ca0637ca1c92b531dffc37cd7bcc00f111ae89e0e474d2579475dc1"}, "url": "/docs/compare/?release=9.2.2#9.2.2-d917ac02541fa2d6", "source_url": "/docs/release/9.2.2/#id-1.11.6.27.5"}, {"db_id": "91dfcffb3a9197d924b2e4b668ca9e4f", "kind": "equivalent", "version": "9.1.7", "label": "9.1.7", "title": "防止 postmaster 在收到关闭信号后继续启动新的子进程", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "99fd94185ca0637ca1c92b531dffc37cd7bcc00f111ae89e0e474d2579475dc1"}, "url": "/docs/compare/?release=9.1.7#9.1.7-d917ac02541fa2d6", "source_url": "/docs/release/9.1.7/#id-1.11.6.22.5"}]}, {"id": "9.0.11-fd2644546a70341a", "cves": [], "html": "<p>避免内存不足时内部哈希表损坏（Hitoshi Harada）</p>", "text": "避免内存不足时内部哈希表损坏（Hitoshi Harada）", "title": "避免内存不足时内部哈希表损坏", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.11/#id-1.11.6.17.5", "source_hash": "a8294e9464bf1147c27b90a4910cd6e56f7bd182e44c6587c7a83e725b1082c5", "section_path": ["变更"], "commit_groups": [], "identity_text": "Avoid corruption of internal hash tables when out of memory (Hitoshi Harada)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.11/changes/007", "db_id": "3efd3d2a6c52b704801ca0bac42dc0dd", "patch_ids": [], "statement_hash": "692dad544f7fd81c5f29ab0c6fafa30584c4bac66915d29dc7ba7dadfaac1e6c", "relations": [{"rule": 2, "type": "equivalent", "target": "b450e9ab7f4b930fa19f8dc789b0b3d3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "692dad544f7fd81c5f29ab0c6fafa30584c4bac66915d29dc7ba7dadfaac1e6c"}}, {"rule": 2, "type": "equivalent", "target": "ccd960e69197616945fb716f47fd5dbb", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "692dad544f7fd81c5f29ab0c6fafa30584c4bac66915d29dc7ba7dadfaac1e6c"}}], "version": "9.0.11", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "ccd960e69197616945fb716f47fd5dbb", "kind": "equivalent", "version": "9.2.2", "label": "9.2.2", "title": "避免内存不足时内部哈希表损坏", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "692dad544f7fd81c5f29ab0c6fafa30584c4bac66915d29dc7ba7dadfaac1e6c"}, "url": "/docs/compare/?release=9.2.2#9.2.2-fd2644546a70341a", "source_url": "/docs/release/9.2.2/#id-1.11.6.27.5"}, {"db_id": "b450e9ab7f4b930fa19f8dc789b0b3d3", "kind": "equivalent", "version": "9.1.7", "label": "9.1.7", "title": "避免内存不足时内部哈希表损坏", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "692dad544f7fd81c5f29ab0c6fafa30584c4bac66915d29dc7ba7dadfaac1e6c"}, "url": "/docs/compare/?release=9.1.7#9.1.7-fd2644546a70341a", "source_url": "/docs/release/9.1.7/#id-1.11.6.22.5"}]}, {"id": "9.0.11-2c52c04d374c6c77", "cves": [], "html": "<p>修复外连接之上非严格等值子句的规划（Tom Lane）</p>\n<p>规划器可能从把非严格构造与别的值等同的子句中推导出错误的约束，例如当 <code>foo</code> 来自外连接的可空侧时的 <code>WHERE COALESCE(foo, 0) = 0</code>。</p>", "text": "修复外连接之上非严格等值子句的规划（Tom Lane） 规划器可能从把非严格构造与别的值等同的子句中推导出错误的约束，例如当 foo 来自外连接的可空侧时的 WHERE COALESCE(foo, 0) = 0。", "title": "修复外连接之上非严格等值子句的规划", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.11/#id-1.11.6.17.5", "source_hash": "237ec65016a8b7bb1375bbc9ce07bc2b52909bbaa9101e9baec28a20395e1b0f", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix planning of non-strict equivalence clauses above outer joins (Tom Lane) The planner could derive incorrect constraints from a clause equating a non-strict construct to something else, for example WHERE COALESCE(foo, 0) = 0 when foo is coming from the nullable side of an outer join.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.11/changes/008", "db_id": "1d07e402072cfad037c33e7653b6b251", "patch_ids": [], "statement_hash": "d2f4d0b4d2e98da344c0c70bb910fca8fdfd0d4e770069c510d085e77b5325d4", "relations": [{"rule": 2, "type": "equivalent", "target": "fcf142b1ad5d013312f6364395d1f527", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d2f4d0b4d2e98da344c0c70bb910fca8fdfd0d4e770069c510d085e77b5325d4"}}], "version": "9.0.11", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "fcf142b1ad5d013312f6364395d1f527", "kind": "equivalent", "version": "9.1.7", "label": "9.1.7", "title": "修复外连接之上非严格等值子句的规划", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d2f4d0b4d2e98da344c0c70bb910fca8fdfd0d4e770069c510d085e77b5325d4"}, "url": "/docs/compare/?release=9.1.7#9.1.7-2c52c04d374c6c77", "source_url": "/docs/release/9.1.7/#id-1.11.6.22.5"}]}, {"id": "9.0.11-bc78e3577407a1df", "cves": [], "html": "<p>改进规划器从等价类证明排他约束的能力（Tom Lane）</p>", "text": "改进规划器从等价类证明排他约束的能力（Tom Lane）", "title": "改进规划器从等价类证明排他约束的能力", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.11/#id-1.11.6.17.5", "source_hash": "67b86c5282f84a4eb939d7ed7607f2fe476fbd2f48c5530c8687442738101f33", "section_path": ["变更"], "commit_groups": [], "identity_text": "Improve planner's ability to prove exclusion constraints from equivalence classes (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.11/changes/009", "db_id": "3f8fe58094a84d0377600ce86a339ccc", "patch_ids": [], "statement_hash": "d4f25cd0593297709d677f0beb85dea1481f971e634184dd7a0ee5167717f4ab", "relations": [{"rule": 2, "type": "equivalent", "target": "74f9254e5a11fc7184ce90ca95b8f939", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d4f25cd0593297709d677f0beb85dea1481f971e634184dd7a0ee5167717f4ab"}}, {"rule": 2, "type": "equivalent", "target": "85637202a3c850b068330ec258f3b8ef", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d4f25cd0593297709d677f0beb85dea1481f971e634184dd7a0ee5167717f4ab"}}], "version": "9.0.11", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "74f9254e5a11fc7184ce90ca95b8f939", "kind": "equivalent", "version": "9.2.2", "label": "9.2.2", "title": "改进规划器从等价类证明排他约束的能力", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d4f25cd0593297709d677f0beb85dea1481f971e634184dd7a0ee5167717f4ab"}, "url": "/docs/compare/?release=9.2.2#9.2.2-bc78e3577407a1df", "source_url": "/docs/release/9.2.2/#id-1.11.6.27.5"}, {"db_id": "85637202a3c850b068330ec258f3b8ef", "kind": "equivalent", "version": "9.1.7", "label": "9.1.7", "title": "改进规划器从等价类证明排他约束的能力", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d4f25cd0593297709d677f0beb85dea1481f971e634184dd7a0ee5167717f4ab"}, "url": "/docs/compare/?release=9.1.7#9.1.7-bc78e3577407a1df", "source_url": "/docs/release/9.1.7/#id-1.11.6.22.5"}]}, {"id": "9.0.11-c5d0f44d74e698c5", "cves": [], "html": "<p>修复哈希子计划中的部分行匹配，使其正确处理跨类型情况（Tom Lane）</p>\n<p>这影响多列 <code>NOT IN</code> 子计划，例如 <code>WHERE (a, b) NOT IN (SELECT x, y FROM ...)</code>，当 <code>b</code> 和 <code>y</code> 分别是 <code>int4</code> 和 <code>int8</code> 时。根据所涉及的具体数据类型，这一失误会导致错误答案或崩溃。</p>", "text": "修复哈希子计划中的部分行匹配，使其正确处理跨类型情况（Tom Lane） 这影响多列 NOT IN 子计划，例如 WHERE (a, b) NOT IN (SELECT x, y FROM ...)，当 b 和 y 分别是 int4 和 int8 时。根据所涉及的具体数据类型，这一失误会导致错误答案或崩溃。", "title": "修复哈希子计划中的部分行匹配，使其正确处理跨类型情况", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.11/#id-1.11.6.17.5", "source_hash": "8aa2aa16e5317c596c05b16a1c7170ee068954a2b699339dc57376889bea4397", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix partial-row matching in hashed subplans to handle cross-type cases correctly (Tom Lane) This affects multicolumn NOT IN subplans, such as WHERE (a, b) NOT IN (SELECT x, y FROM ...) when for instance b and y are int4 and int8 respectively. This mistake led to wrong answers or crashes depending on the specific datatypes involved.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.11/changes/010", "db_id": "7919d810a7c9a9b0539688c6e499d336", "patch_ids": [], "statement_hash": "5f8da0a2ed6413f53f3ec45b9d401dcb16912e656443acb2cb74ee9d5a6ef8cf", "relations": [{"rule": 2, "type": "equivalent", "target": "5265841a4909c6cbf5c996eee40a0979", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5f8da0a2ed6413f53f3ec45b9d401dcb16912e656443acb2cb74ee9d5a6ef8cf"}}, {"rule": 2, "type": "equivalent", "target": "968ccf662bdc209f7d0afbaed04bf1ad", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5f8da0a2ed6413f53f3ec45b9d401dcb16912e656443acb2cb74ee9d5a6ef8cf"}}], "version": "9.0.11", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "5265841a4909c6cbf5c996eee40a0979", "kind": "equivalent", "version": "9.2.2", "label": "9.2.2", "title": "修复哈希子计划中的部分行匹配，使其正确处理跨类型情况", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5f8da0a2ed6413f53f3ec45b9d401dcb16912e656443acb2cb74ee9d5a6ef8cf"}, "url": "/docs/compare/?release=9.2.2#9.2.2-c5d0f44d74e698c5", "source_url": "/docs/release/9.2.2/#id-1.11.6.27.5"}, {"db_id": "968ccf662bdc209f7d0afbaed04bf1ad", "kind": "equivalent", "version": "9.1.7", "label": "9.1.7", "title": "修复哈希子计划中的部分行匹配，使其正确处理跨类型情况", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5f8da0a2ed6413f53f3ec45b9d401dcb16912e656443acb2cb74ee9d5a6ef8cf"}, "url": "/docs/compare/?release=9.1.7#9.1.7-c5d0f44d74e698c5", "source_url": "/docs/release/9.1.7/#id-1.11.6.22.5"}]}, {"id": "9.0.11-7cb9320b6671e5f2", "cves": [], "html": "<p>在为 <code>AFTER ROW UPDATE/DELETE</code> 触发器重新获取旧元组时获取缓冲区锁（Andres Freund）</p>\n<p>在非常罕见的情况下，这一疏忽可能导致向外键强制触发器的预检查逻辑传递不正确的数据。这可能导致崩溃，或者在是否触发触发器上做出错误决定。</p>", "text": "在为 AFTER ROW UPDATE/DELETE 触发器重新获取旧元组时获取缓冲区锁（Andres Freund） 在非常罕见的情况下，这一疏忽可能导致向外键强制触发器的预检查逻辑传递不正确的数据。这可能导致崩溃，或者在是否触发触发器上做出错误决定。", "title": "在为 AFTER ROW UPDATE/DELETE 触发器重新获取旧元组时获取缓冲区锁", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.11/#id-1.11.6.17.5", "source_hash": "eb1f879f62317e1b9b445767c0cfa6ce39eca318525c9e1322ab93fc59881fb5", "section_path": ["变更"], "commit_groups": [], "identity_text": "Acquire buffer lock when re-fetching the old tuple for an AFTER ROW UPDATE/DELETE trigger (Andres Freund) In very unusual circumstances, this oversight could result in passing incorrect data to the precheck logic for a foreign-key enforcement trigger. That could result in a crash, or in an incorrect decision about whether to fire the trigger.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.11/changes/011", "db_id": "52775378f3f3d6e63962d08ba89933d7", "patch_ids": [], "statement_hash": "88b7752775bcc5c6cd3d3394e01ef86452d0fb6a409b5b21aa9fe50e78316a2d", "relations": [], "version": "9.0.11", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.11-a077a4b2e76cbe3d", "cves": [], "html": "<p>修复<code>ALTER COLUMN TYPE</code>以正确重建继承的检查约束（Tom Lane）</p>\n<p>这在 8.4 之前的版本中工作正常，现在在 8.4 及更高版本中也工作正常。</p>", "text": "修复ALTER COLUMN TYPE以正确重建继承的检查约束（Tom Lane） 这在 8.4 之前的版本中工作正常，现在在 8.4 及更高版本中也工作正常。", "title": "修复ALTER COLUMN TYPE以正确重建继承的检查约束", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.11/#id-1.11.6.17.5", "source_hash": "8f21e7583b619c7004600fbaba4f1eb25813276a0f50c7f9f90ca5a218ec0628", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix ALTER COLUMN TYPE to handle inherited check constraints properly (Pavan Deolasee) This worked correctly in pre-8.4 releases, and now works correctly in 8.4 and later.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.11/changes/012", "db_id": "c1030cf8dc27a2e3b7f6cb10b4fb1ea5", "patch_ids": [], "statement_hash": "7f2a4685500560146dfaf2c599e148c1e701249c82e53f7f451020b766a4f680", "relations": [{"rule": 2, "type": "equivalent", "target": "3f077e626bcccab27699d61b9d045f1c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7f2a4685500560146dfaf2c599e148c1e701249c82e53f7f451020b766a4f680"}}, {"rule": 2, "type": "equivalent", "target": "f26e0ba2a0e6fcd438f2ab4bbf34ccf9", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7f2a4685500560146dfaf2c599e148c1e701249c82e53f7f451020b766a4f680"}}], "version": "9.0.11", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "3f077e626bcccab27699d61b9d045f1c", "kind": "equivalent", "version": "9.2.2", "label": "9.2.2", "title": "修复ALTER COLUMN TYPE以正确重建继承的检查约束", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7f2a4685500560146dfaf2c599e148c1e701249c82e53f7f451020b766a4f680"}, "url": "/docs/compare/?release=9.2.2#9.2.2-a077a4b2e76cbe3d", "source_url": "/docs/release/9.2.2/#id-1.11.6.27.5"}, {"db_id": "f26e0ba2a0e6fcd438f2ab4bbf34ccf9", "kind": "equivalent", "version": "9.1.7", "label": "9.1.7", "title": "修复ALTER COLUMN TYPE以正确重建继承的检查约束", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7f2a4685500560146dfaf2c599e148c1e701249c82e53f7f451020b766a4f680"}, "url": "/docs/compare/?release=9.1.7#9.1.7-a077a4b2e76cbe3d", "source_url": "/docs/release/9.1.7/#id-1.11.6.22.5"}]}, {"id": "9.0.11-e27a36b387231ba6", "cves": [], "html": "<p>修复 <code>REASSIGN OWNED</code> 对表空间授权的处理（Álvaro Herrera）</p>", "text": "修复 REASSIGN OWNED 对表空间授权的处理（Álvaro Herrera）", "title": "修复 REASSIGN OWNED 对表空间授权的处理", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.11/#id-1.11.6.17.5", "source_hash": "003e929338cadf69ea5ebfbf966fa52189695edb1d4c5f74746894c0cf0f825f", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix REASSIGN OWNED to handle grants on tablespaces (Álvaro Herrera)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.11/changes/013", "db_id": "343395ba7a3fc6573e2bf11c722c65e5", "patch_ids": [], "statement_hash": "762a6558fe21e9c0de32e15bfe3f2c2a45d7c990b37cd41ea19688a73ea16ee9", "relations": [{"rule": 2, "type": "equivalent", "target": "41f99fd79892368c78b07728abad1417", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "762a6558fe21e9c0de32e15bfe3f2c2a45d7c990b37cd41ea19688a73ea16ee9"}}, {"rule": 2, "type": "equivalent", "target": "d0eafe2aae5f2e3038279ddd8ed7e41c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "762a6558fe21e9c0de32e15bfe3f2c2a45d7c990b37cd41ea19688a73ea16ee9"}}], "version": "9.0.11", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "41f99fd79892368c78b07728abad1417", "kind": "equivalent", "version": "9.2.2", "label": "9.2.2", "title": "修复 REASSIGN OWNED 对表空间授权的处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "762a6558fe21e9c0de32e15bfe3f2c2a45d7c990b37cd41ea19688a73ea16ee9"}, "url": "/docs/compare/?release=9.2.2#9.2.2-e27a36b387231ba6", "source_url": "/docs/release/9.2.2/#id-1.11.6.27.5"}, {"db_id": "d0eafe2aae5f2e3038279ddd8ed7e41c", "kind": "equivalent", "version": "9.1.7", "label": "9.1.7", "title": "修复 REASSIGN OWNED 对表空间授权的处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "762a6558fe21e9c0de32e15bfe3f2c2a45d7c990b37cd41ea19688a73ea16ee9"}, "url": "/docs/compare/?release=9.1.7#9.1.7-e27a36b387231ba6", "source_url": "/docs/release/9.1.7/#id-1.11.6.22.5"}]}, {"id": "9.0.11-ed19f8f24efc9704", "cves": [], "html": "<p>忽略视图中系统列的不正确 <code>pg_attribute</code> 条目（Tom Lane）</p>\n<p>视图没有任何系统列。然而，我们在把表转换为视图时忘记移除这类条目。这一问题在 9.3 及更高版本中已正确修复，但在以前的分支中，我们需要防御已经错误转换的视图。</p>", "text": "忽略视图中系统列的不正确 pg_attribute 条目（Tom Lane） 视图没有任何系统列。然而，我们在把表转换为视图时忘记移除这类条目。这一问题在 9.3 及更高版本中已正确修复，但在以前的分支中，我们需要防御已经错误转换的视图。", "title": "忽略视图中系统列的不正确 pg_attribute 条目", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.11/#id-1.11.6.17.5", "source_hash": "60ea0ad133be44ce162bab2cac97b135288f599e45f7a50e14e57688eef22775", "section_path": ["变更"], "commit_groups": [], "identity_text": "Ignore incorrect pg_attribute entries for system columns for views (Tom Lane) Views do not have any system columns. However, we forgot to remove such entries when converting a table to a view. That's fixed properly for 9.3 and later, but in previous branches we need to defend against existing mis-converted views.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.11/changes/014", "db_id": "33fcdb36e1fd3344ac7f97f5f85d11ca", "patch_ids": [], "statement_hash": "29602b24f8ee1fea98692ce519778907107ec2e1d964d9d68e8e8de3af26e7fa", "relations": [{"rule": 2, "type": "equivalent", "target": "24fc828ca925559f1894bd2b55b7940e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "29602b24f8ee1fea98692ce519778907107ec2e1d964d9d68e8e8de3af26e7fa"}}, {"rule": 2, "type": "equivalent", "target": "5d9f53f7dd56eb777809de1e839fb733", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "29602b24f8ee1fea98692ce519778907107ec2e1d964d9d68e8e8de3af26e7fa"}}], "version": "9.0.11", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "24fc828ca925559f1894bd2b55b7940e", "kind": "equivalent", "version": "9.2.2", "label": "9.2.2", "title": "忽略视图中系统列的不正确 pg_attribute 条目", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "29602b24f8ee1fea98692ce519778907107ec2e1d964d9d68e8e8de3af26e7fa"}, "url": "/docs/compare/?release=9.2.2#9.2.2-ed19f8f24efc9704", "source_url": "/docs/release/9.2.2/#id-1.11.6.27.5"}, {"db_id": "5d9f53f7dd56eb777809de1e839fb733", "kind": "equivalent", "version": "9.1.7", "label": "9.1.7", "title": "忽略视图中系统列的不正确 pg_attribute 条目", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "29602b24f8ee1fea98692ce519778907107ec2e1d964d9d68e8e8de3af26e7fa"}, "url": "/docs/compare/?release=9.1.7#9.1.7-ed19f8f24efc9704", "source_url": "/docs/release/9.1.7/#id-1.11.6.22.5"}]}, {"id": "9.0.11-fa4095dad36a0c20", "cves": [], "html": "<p>修复规则打印，使其正确转储 <code>INSERT INTO <em><code>table</code></em> DEFAULT VALUES</code>（Tom Lane）</p>", "text": "修复规则打印，使其正确转储 INSERT INTO table DEFAULT VALUES（Tom Lane）", "title": "修复规则打印，使其正确转储 INSERT INTO table DEFAULT VALUES", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.11/#id-1.11.6.17.5", "source_hash": "7d1e0039c3e1bdc497e2894a726ad64b3ee200a2f60c3524a00ebbca6aafa2c4", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix rule printing to dump INSERT INTO table DEFAULT VALUES correctly (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.11/changes/015", "db_id": "69f1ef7b4b3db99d894e0751399cb649", "patch_ids": [], "statement_hash": "067c993595773130e8eec4e9aa087a1e6c502d30f2cdcb0e6fc9884f1d570e7a", "relations": [{"rule": 2, "type": "equivalent", "target": "274a016bd3de73befac193b7851d22a0", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "067c993595773130e8eec4e9aa087a1e6c502d30f2cdcb0e6fc9884f1d570e7a"}}, {"rule": 2, "type": "equivalent", "target": "90d7be8c560f20e25cf3ada554e902c3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "067c993595773130e8eec4e9aa087a1e6c502d30f2cdcb0e6fc9884f1d570e7a"}}], "version": "9.0.11", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "274a016bd3de73befac193b7851d22a0", "kind": "equivalent", "version": "9.2.2", "label": "9.2.2", "title": "修复规则打印，使其正确转储 INSERT INTO table DEFAULT VALUES", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "067c993595773130e8eec4e9aa087a1e6c502d30f2cdcb0e6fc9884f1d570e7a"}, "url": "/docs/compare/?release=9.2.2#9.2.2-fa4095dad36a0c20", "source_url": "/docs/release/9.2.2/#id-1.11.6.27.5"}, {"db_id": "90d7be8c560f20e25cf3ada554e902c3", "kind": "equivalent", "version": "9.1.7", "label": "9.1.7", "title": "修复规则打印，使其正确转储 INSERT INTO table DEFAULT VALUES", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "067c993595773130e8eec4e9aa087a1e6c502d30f2cdcb0e6fc9884f1d570e7a"}, "url": "/docs/compare/?release=9.1.7#9.1.7-fa4095dad36a0c20", "source_url": "/docs/release/9.1.7/#id-1.11.6.22.5"}]}, {"id": "9.0.11-b2745f67272f840b", "cves": [], "html": "<p>防止当查询中有过多 <code>UNION</code>/<code>INTERSECT</code>/<code>EXCEPT</code> 子句时栈溢出（Tom Lane）</p>", "text": "防止当查询中有过多 UNION/INTERSECT/EXCEPT 子句时栈溢出（Tom Lane）", "title": "防止当查询中有过多 UNION/INTERSECT/EXCEPT 子句时栈溢出", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.11/#id-1.11.6.17.5", "source_hash": "77512726d7653c37802ba262c7c0dd04e9300cd87d45fc0c6b0e3b445b8119ac", "section_path": ["变更"], "commit_groups": [], "identity_text": "Guard against stack overflow when there are too many UNION/INTERSECT/EXCEPT clauses in a query (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.11/changes/016", "db_id": "84ce0fdf3b32c5c0dd5cda3d876d6208", "patch_ids": [], "statement_hash": "1450e9825a8ad22603eced43d6ecff0b7eb858d190e20342013832a4e755620e", "relations": [{"rule": 2, "type": "equivalent", "target": "02af39bcd41b8188f9592d9ed7d08aec", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1450e9825a8ad22603eced43d6ecff0b7eb858d190e20342013832a4e755620e"}}, {"rule": 2, "type": "equivalent", "target": "481004e97fd680ac9920c0781f9e9786", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1450e9825a8ad22603eced43d6ecff0b7eb858d190e20342013832a4e755620e"}}], "version": "9.0.11", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "481004e97fd680ac9920c0781f9e9786", "kind": "equivalent", "version": "9.2.2", "label": "9.2.2", "title": "防止当查询中有过多 UNION/INTERSECT/EXCEPT 子句时栈溢出", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1450e9825a8ad22603eced43d6ecff0b7eb858d190e20342013832a4e755620e"}, "url": "/docs/compare/?release=9.2.2#9.2.2-b2745f67272f840b", "source_url": "/docs/release/9.2.2/#id-1.11.6.27.5"}, {"db_id": "02af39bcd41b8188f9592d9ed7d08aec", "kind": "equivalent", "version": "9.1.7", "label": "9.1.7", "title": "防止当查询中有过多 UNION/INTERSECT/EXCEPT 子句时栈溢出", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1450e9825a8ad22603eced43d6ecff0b7eb858d190e20342013832a4e755620e"}, "url": "/docs/compare/?release=9.1.7#9.1.7-b2745f67272f840b", "source_url": "/docs/release/9.1.7/#id-1.11.6.22.5"}]}, {"id": "9.0.11-f2a7408232041331", "cves": [], "html": "<p>防止用最小可能整数值除以 -1 时依赖平台的失败（Xi Wang、Tom Lane）</p>", "text": "防止用最小可能整数值除以 -1 时依赖平台的失败（Xi Wang、Tom Lane）", "title": "防止用最小可能整数值除以 -1 时依赖平台的失败", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.11/#id-1.11.6.17.5", "source_hash": "1b7df5f7bfc6d736b0b12fbeaf9e431f5a35b47cdd8bb47b07d513b171b8d44d", "section_path": ["变更"], "commit_groups": [], "identity_text": "Prevent platform-dependent failures when dividing the minimum possible integer value by -1 (Xi Wang, Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.11/changes/017", "db_id": "b9768a094fffe40495c8ec3a027a14fc", "patch_ids": [], "statement_hash": "053df3d33e982daec41e10e7e7a52d1733bc52f57dfed410c2a7a15d0dd13eda", "relations": [{"rule": 2, "type": "equivalent", "target": "3e618f46cc6d08632858ccbe53d9f379", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "053df3d33e982daec41e10e7e7a52d1733bc52f57dfed410c2a7a15d0dd13eda"}}, {"rule": 2, "type": "equivalent", "target": "7329af02fec039c07ee6db77246ed06b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "053df3d33e982daec41e10e7e7a52d1733bc52f57dfed410c2a7a15d0dd13eda"}}], "version": "9.0.11", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "3e618f46cc6d08632858ccbe53d9f379", "kind": "equivalent", "version": "9.2.2", "label": "9.2.2", "title": "防止用最小可能整数值除以 -1 时依赖平台的失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "053df3d33e982daec41e10e7e7a52d1733bc52f57dfed410c2a7a15d0dd13eda"}, "url": "/docs/compare/?release=9.2.2#9.2.2-f2a7408232041331", "source_url": "/docs/release/9.2.2/#id-1.11.6.27.5"}, {"db_id": "7329af02fec039c07ee6db77246ed06b", "kind": "equivalent", "version": "9.1.7", "label": "9.1.7", "title": "防止用最小可能整数值除以 -1 时依赖平台的失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "053df3d33e982daec41e10e7e7a52d1733bc52f57dfed410c2a7a15d0dd13eda"}, "url": "/docs/compare/?release=9.1.7#9.1.7-f2a7408232041331", "source_url": "/docs/release/9.1.7/#id-1.11.6.22.5"}]}, {"id": "9.0.11-096353ba0082f63a", "cves": [], "html": "<p>修复日期解析中可能越过字符串末尾的访问（Hitoshi Harada）</p>", "text": "修复日期解析中可能越过字符串末尾的访问（Hitoshi Harada）", "title": "修复日期解析中可能越过字符串末尾的访问", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.11/#id-1.11.6.17.5", "source_hash": "1d43afffe89435b07e9c5b0e8f28ec74ed63286a4a4a537a537ebaa2ec17fe68", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix possible access past end of string in date parsing (Hitoshi Harada)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.11/changes/018", "db_id": "d65abcc5f53c804de848de918001f632", "patch_ids": [], "statement_hash": "b8b60e160031f49e4c1d50def21440917b398f9f64cac865dcdd0675bd60b317", "relations": [{"rule": 2, "type": "equivalent", "target": "37d10567707f1fb59eacdcddacdc4acb", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b8b60e160031f49e4c1d50def21440917b398f9f64cac865dcdd0675bd60b317"}}, {"rule": 2, "type": "equivalent", "target": "de93e88a162543f2a33608cebc01921e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b8b60e160031f49e4c1d50def21440917b398f9f64cac865dcdd0675bd60b317"}}], "version": "9.0.11", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "37d10567707f1fb59eacdcddacdc4acb", "kind": "equivalent", "version": "9.2.2", "label": "9.2.2", "title": "修复日期解析中可能越过字符串末尾的访问", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b8b60e160031f49e4c1d50def21440917b398f9f64cac865dcdd0675bd60b317"}, "url": "/docs/compare/?release=9.2.2#9.2.2-096353ba0082f63a", "source_url": "/docs/release/9.2.2/#id-1.11.6.27.5"}, {"db_id": "de93e88a162543f2a33608cebc01921e", "kind": "equivalent", "version": "9.1.7", "label": "9.1.7", "title": "修复日期解析中可能越过字符串末尾的访问", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b8b60e160031f49e4c1d50def21440917b398f9f64cac865dcdd0675bd60b317"}, "url": "/docs/compare/?release=9.1.7#9.1.7-096353ba0082f63a", "source_url": "/docs/release/9.1.7/#id-1.11.6.22.5"}]}, {"id": "9.0.11-90cfae9c3f446948", "cves": [], "html": "<p>修复当 XID 回卷发生在检查点期间且 <code>wal_level</code> 为 <code>hot_standby</code> 时 XID 纪元（epoch）未能推进的问题（Tom Lane、Andres Freund）</p>\n<p>虽然这一失误对 <span>PostgreSQL</span> 本身没有特别影响，但它对依赖 <code>txid_current()</code> 及相关函数的应用不利：TXID 值看起来会倒退。</p>", "text": "修复当 XID 回卷发生在检查点期间且 wal_level 为 hot_standby 时 XID 纪元（epoch）未能推进的问题（Tom Lane、Andres Freund） 虽然这一失误对 PostgreSQL 本身没有特别影响，但它对依赖 txid_current() 及相关函数的应用不利：TXID 值看起来会倒退。", "title": "修复当 XID 回卷发生在检查点期间且 wal_level 为 hot_standby 时 XID 纪元（epoch）未能推进的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.11/#id-1.11.6.17.5", "source_hash": "3429c31c8b9d3927cba7a2718c9a6f24a30972d1387bc8af96d3f7a10e9a839a", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix failure to advance XID epoch if XID wraparound happens during a checkpoint and wal_level is hot_standby (Tom Lane, Andres Freund) While this mistake had no particular impact on PostgreSQL itself, it was bad for applications that rely on txid_current() and related functions: the TXID value would appear to go backwards.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.11/changes/019", "db_id": "e63425a93ead86892a18fdc578b1cb81", "patch_ids": [], "statement_hash": "2d6eed93f8708a2e2b9478a2d032b212ad003115597b599d3e875b4941d9db59", "relations": [{"rule": 2, "type": "equivalent", "target": "1dc31bafecc7b3912ec7eb4a41ff6c6b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2d6eed93f8708a2e2b9478a2d032b212ad003115597b599d3e875b4941d9db59"}}, {"rule": 2, "type": "equivalent", "target": "9c88c1919d84a22fccbd58d15b4c9de5", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2d6eed93f8708a2e2b9478a2d032b212ad003115597b599d3e875b4941d9db59"}}], "version": "9.0.11", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "1dc31bafecc7b3912ec7eb4a41ff6c6b", "kind": "equivalent", "version": "9.2.2", "label": "9.2.2", "title": "修复当 XID 回卷发生在检查点期间且 wal_level 为 hot_standby 时 XID 纪元（epoch）未能推进的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2d6eed93f8708a2e2b9478a2d032b212ad003115597b599d3e875b4941d9db59"}, "url": "/docs/compare/?release=9.2.2#9.2.2-90cfae9c3f446948", "source_url": "/docs/release/9.2.2/#id-1.11.6.27.5"}, {"db_id": "9c88c1919d84a22fccbd58d15b4c9de5", "kind": "equivalent", "version": "9.1.7", "label": "9.1.7", "title": "修复当 XID 回卷发生在检查点期间且 wal_level 为 hot_standby 时 XID 纪元（epoch）未能推进的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2d6eed93f8708a2e2b9478a2d032b212ad003115597b599d3e875b4941d9db59"}, "url": "/docs/compare/?release=9.1.7#9.1.7-90cfae9c3f446948", "source_url": "/docs/release/9.1.7/#id-1.11.6.22.5"}]}, {"id": "9.0.11-f71313accaaa4b69", "cves": [], "html": "<p>当 Unix 域套接字的路径名长度超过平台特定限制时，生成可理解的错误消息（Tom Lane、Andrew Dunstan）</p>\n<p>此前这会导致相当无用的结果，例如 <span>“<span>Non-recoverable failure in name resolution</span>”</span>。</p>", "text": "当 Unix 域套接字的路径名长度超过平台特定限制时，生成可理解的错误消息（Tom Lane、Andrew Dunstan） 此前这会导致相当无用的结果，例如 “Non-recoverable failure in name resolution”。", "title": "当 Unix 域套接字的路径名长度超过平台特定限制时，生成可理解的错误消息", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.11/#id-1.11.6.17.5", "source_hash": "ec4a5a13a30ca7cd473967894fe7b3f9f2fc1e7992c3eb9ca4851fc3ce93ddd9", "section_path": ["变更"], "commit_groups": [], "identity_text": "Produce an understandable error message if the length of the path name for a Unix-domain socket exceeds the platform-specific limit (Tom Lane, Andrew Dunstan) Formerly, this would result in something quite unhelpful, such as Non-recoverable failure in name resolution.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.11/changes/020", "db_id": "e5de37f6158d6ded52fb1e3cfa49cc86", "patch_ids": [], "statement_hash": "ed7d6493553f125d1a87aa5e19322b8e7ed4fb7d8a9182efbe28fffa1b65da3b", "relations": [{"rule": 2, "type": "equivalent", "target": "5e4ef2a68eda76677b36c6d7911d32db", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ed7d6493553f125d1a87aa5e19322b8e7ed4fb7d8a9182efbe28fffa1b65da3b"}}, {"rule": 2, "type": "equivalent", "target": "8b4afadb80fca126ee808db9d81f07da", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ed7d6493553f125d1a87aa5e19322b8e7ed4fb7d8a9182efbe28fffa1b65da3b"}}], "version": "9.0.11", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "5e4ef2a68eda76677b36c6d7911d32db", "kind": "equivalent", "version": "9.2.2", "label": "9.2.2", "title": "当 Unix 域套接字的路径名长度超过平台特定限制时，生成可理解的错误消息", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ed7d6493553f125d1a87aa5e19322b8e7ed4fb7d8a9182efbe28fffa1b65da3b"}, "url": "/docs/compare/?release=9.2.2#9.2.2-f71313accaaa4b69", "source_url": "/docs/release/9.2.2/#id-1.11.6.27.5"}, {"db_id": "8b4afadb80fca126ee808db9d81f07da", "kind": "equivalent", "version": "9.1.7", "label": "9.1.7", "title": "当 Unix 域套接字的路径名长度超过平台特定限制时，生成可理解的错误消息", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ed7d6493553f125d1a87aa5e19322b8e7ed4fb7d8a9182efbe28fffa1b65da3b"}, "url": "/docs/compare/?release=9.1.7#9.1.7-f71313accaaa4b69", "source_url": "/docs/release/9.1.7/#id-1.11.6.22.5"}]}, {"id": "9.0.11-a6f35676ca881b20", "cves": [], "html": "<p>修复向客户端发送组合列值时的内存泄漏（Tom Lane）</p>", "text": "修复向客户端发送组合列值时的内存泄漏（Tom Lane）", "title": "修复向客户端发送组合列值时的内存泄漏", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.11/#id-1.11.6.17.5", "source_hash": "e6ac537d29016aa7c03972001834b711662feb9589dbf38523c3eb64e9459b5f", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix memory leaks when sending composite column values to the client (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.11/changes/021", "db_id": "845266b9d6f758be85ffece6eb32864d", "patch_ids": [], "statement_hash": "94041bc5dbcc26bd2cb30df95d7847a85ddc7f9c01bb9948c8d07a9c7ec8576e", "relations": [{"rule": 2, "type": "equivalent", "target": "29587f182d2fa5e79c706d9bf47dd8c2", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "94041bc5dbcc26bd2cb30df95d7847a85ddc7f9c01bb9948c8d07a9c7ec8576e"}}, {"rule": 2, "type": "equivalent", "target": "94ad792f70087ba4a8f3c5169cbdb11c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "94041bc5dbcc26bd2cb30df95d7847a85ddc7f9c01bb9948c8d07a9c7ec8576e"}}], "version": "9.0.11", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "29587f182d2fa5e79c706d9bf47dd8c2", "kind": "equivalent", "version": "9.2.2", "label": "9.2.2", "title": "修复向客户端发送组合列值时的内存泄漏", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "94041bc5dbcc26bd2cb30df95d7847a85ddc7f9c01bb9948c8d07a9c7ec8576e"}, "url": "/docs/compare/?release=9.2.2#9.2.2-a6f35676ca881b20", "source_url": "/docs/release/9.2.2/#id-1.11.6.27.5"}, {"db_id": "94ad792f70087ba4a8f3c5169cbdb11c", "kind": "equivalent", "version": "9.1.7", "label": "9.1.7", "title": "修复向客户端发送组合列值时的内存泄漏", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "94041bc5dbcc26bd2cb30df95d7847a85ddc7f9c01bb9948c8d07a9c7ec8576e"}, "url": "/docs/compare/?release=9.1.7#9.1.7-a6f35676ca881b20", "source_url": "/docs/release/9.1.7/#id-1.11.6.22.5"}]}, {"id": "9.0.11-22df03d462a0570c", "cves": [], "html": "<p>使 <span>pg_ctl</span> 读取 <code>postmaster.pid</code> 文件更健壮（Heikki Linnakangas）</p>\n<p>这修复了竞态条件和可能的文件描述符泄漏。</p>", "text": "使 pg_ctl 读取 postmaster.pid 文件更健壮（Heikki Linnakangas） 这修复了竞态条件和可能的文件描述符泄漏。", "title": "使 pg_ctl 读取 postmaster.pid 文件更健壮", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.11/#id-1.11.6.17.5", "source_hash": "3d5483d553ce3999f91f1c4dcae12be8497b6467dd392bf57763ce70da920cde", "section_path": ["变更"], "commit_groups": [], "identity_text": "Make pg_ctl more robust about reading the postmaster.pid file (Heikki Linnakangas) Fix race conditions and possible file descriptor leakage.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.11/changes/022", "db_id": "debe75e3ec5239205d3f38c55aeafaea", "patch_ids": [], "statement_hash": "fc179b7fd41ac47bcb533bbebe6d8601161de890fbf3159aa91280e9194083bc", "relations": [{"rule": 2, "type": "equivalent", "target": "7da180688507f8a131c936a362e943e8", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fc179b7fd41ac47bcb533bbebe6d8601161de890fbf3159aa91280e9194083bc"}}], "version": "9.0.11", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "7da180688507f8a131c936a362e943e8", "kind": "equivalent", "version": "9.1.7", "label": "9.1.7", "title": "使 pg_ctl 读取 postmaster.pid 文件更健壮", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fc179b7fd41ac47bcb533bbebe6d8601161de890fbf3159aa91280e9194083bc"}, "url": "/docs/compare/?release=9.1.7#9.1.7-22df03d462a0570c", "source_url": "/docs/release/9.1.7/#id-1.11.6.22.5"}]}, {"id": "9.0.11-f4495ad2462438ba", "cves": [], "html": "<p>修复当呈现错误编码的数据且 <code>client_encoding</code> 设置为仅客户端编码（如 SJIS）时 <span>psql</span> 可能崩溃的问题（Jiang Guiqing）</p>", "text": "修复当呈现错误编码的数据且 client_encoding 设置为仅客户端编码（如 SJIS）时 psql 可能崩溃的问题（Jiang Guiqing）", "title": "修复当呈现错误编码的数据且 client_encoding 设置为仅客户端编码（如 SJIS）时 psql 可能崩溃的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.11/#id-1.11.6.17.5", "source_hash": "0538584ee124ed272c32a43f9749ee1c01c641193e25b9f7cd9f0185139ac905", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix possible crash in psql if incorrectly-encoded data is presented and the client_encoding setting is a client-only encoding, such as SJIS (Jiang Guiqing)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.11/changes/023", "db_id": "eb261ab2484b3655d9825439be7e4fcb", "patch_ids": [], "statement_hash": "7601038850abbb31283e151280bbff27797061e933b5a55473ceabcad85b9d55", "relations": [{"rule": 2, "type": "equivalent", "target": "bbcafb2292209fa0337753b5958ec7fd", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7601038850abbb31283e151280bbff27797061e933b5a55473ceabcad85b9d55"}}, {"rule": 2, "type": "equivalent", "target": "bfd3a3b64b6be83f8a9a1eb95aa72880", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7601038850abbb31283e151280bbff27797061e933b5a55473ceabcad85b9d55"}}], "version": "9.0.11", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "bbcafb2292209fa0337753b5958ec7fd", "kind": "equivalent", "version": "9.2.2", "label": "9.2.2", "title": "修复当呈现错误编码的数据且 client_encoding 设置为仅客户端编码（如 SJIS）时 psql 可能崩溃的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7601038850abbb31283e151280bbff27797061e933b5a55473ceabcad85b9d55"}, "url": "/docs/compare/?release=9.2.2#9.2.2-f4495ad2462438ba", "source_url": "/docs/release/9.2.2/#id-1.11.6.27.5"}, {"db_id": "bfd3a3b64b6be83f8a9a1eb95aa72880", "kind": "equivalent", "version": "9.1.7", "label": "9.1.7", "title": "修复当呈现错误编码的数据且 client_encoding 设置为仅客户端编码（如 SJIS）时 psql 可能崩溃的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7601038850abbb31283e151280bbff27797061e933b5a55473ceabcad85b9d55"}, "url": "/docs/compare/?release=9.1.7#9.1.7-f4495ad2462438ba", "source_url": "/docs/release/9.1.7/#id-1.11.6.22.5"}]}, {"id": "9.0.11-122f96647ad3e80d", "cves": [], "html": "<p>修复 <span>pg_dump</span> 以 <code>tar</code> 输出格式生成的 <code>restore.sql</code> 脚本中的缺陷（Tom Lane）</p>\n<p>该脚本在表名包含大写字符时会直接失败。此外，让该脚本既能以常规 COPY 模式也能以 <code>--inserts</code> 模式恢复数据。</p>", "text": "修复 pg_dump 以 tar 输出格式生成的 restore.sql 脚本中的缺陷（Tom Lane） 该脚本在表名包含大写字符时会直接失败。此外，让该脚本既能以常规 COPY 模式也能以 --inserts 模式恢复数据。", "title": "修复 pg_dump 以 tar 输出格式生成的 restore.sql 脚本中的缺陷", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.11/#id-1.11.6.17.5", "source_hash": "233a7d47bd6db01a3f62ecb9c97120b554a4b0ae38fca90746d4e40fbf405391", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix bugs in the restore.sql script emitted by pg_dump in tar output format (Tom Lane) The script would fail outright on tables whose names include upper-case characters. Also, make the script capable of restoring data in --inserts mode as well as the regular COPY mode.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.11/changes/024", "db_id": "0fbaf302362b99ceb1b7f934fee66c89", "patch_ids": [], "statement_hash": "743ea37f7de3775ac6e5fb3b825b04a235c953be937e15f03e6d592e958da788", "relations": [{"rule": 2, "type": "equivalent", "target": "97cf44ff6bc6e3e37334890b48df6a0c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "743ea37f7de3775ac6e5fb3b825b04a235c953be937e15f03e6d592e958da788"}}, {"rule": 2, "type": "equivalent", "target": "9b17d2dea6f423dfca8ab39753913699", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "743ea37f7de3775ac6e5fb3b825b04a235c953be937e15f03e6d592e958da788"}}], "version": "9.0.11", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "97cf44ff6bc6e3e37334890b48df6a0c", "kind": "equivalent", "version": "9.2.2", "label": "9.2.2", "title": "修复 pg_dump 以 tar 输出格式生成的 restore.sql 脚本中的缺陷", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "743ea37f7de3775ac6e5fb3b825b04a235c953be937e15f03e6d592e958da788"}, "url": "/docs/compare/?release=9.2.2#9.2.2-122f96647ad3e80d", "source_url": "/docs/release/9.2.2/#id-1.11.6.27.5"}, {"db_id": "9b17d2dea6f423dfca8ab39753913699", "kind": "equivalent", "version": "9.1.7", "label": "9.1.7", "title": "修复 pg_dump 以 tar 输出格式生成的 restore.sql 脚本中的缺陷", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "743ea37f7de3775ac6e5fb3b825b04a235c953be937e15f03e6d592e958da788"}, "url": "/docs/compare/?release=9.1.7#9.1.7-122f96647ad3e80d", "source_url": "/docs/release/9.1.7/#id-1.11.6.22.5"}]}, {"id": "9.0.11-8bbe8f3ab5a3a0da", "cves": [], "html": "<p>修复 <span>pg_restore</span>，使其接受符合 POSIX 的 <code>tar</code> 文件（Brian Weaver、Tom Lane）</p>\n<p><span>pg_dump</span> 的 <code>tar</code> 输出模式的原始编码生成的文件并不完全符合 POSIX 标准。这在 9.3 版本中已得到纠正。此补丁更新了以前的分支，使它们同时接受错误格式和纠正后的格式，希望借此避免 9.3 发布时的兼容性问题。</p>", "text": "修复 pg_restore，使其接受符合 POSIX 的 tar 文件（Brian Weaver、Tom Lane） pg_dump 的 tar 输出模式的原始编码生成的文件并不完全符合 POSIX 标准。这在 9.3 版本中已得到纠正。此补丁更新了以前的分支，使它们同时接受错误格式和纠正后的格式，希望借此避免 9.3 发布时的兼容性问题。", "title": "修复 pg_restore，使其接受符合 POSIX 的 tar 文件", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.11/#id-1.11.6.17.5", "source_hash": "0566639c2379aa0448ee49466bfc314257bd0b476db42ade86ada79af169b2dc", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix pg_restore to accept POSIX-conformant tar files (Brian Weaver, Tom Lane) The original coding of pg_dump's tar output mode produced files that are not fully conformant with the POSIX standard. This has been corrected for version 9.3. This patch updates previous branches so that they will accept both the incorrect and the corrected formats, in hopes of avoiding compatibility problems when 9.3 comes out.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.11/changes/025", "db_id": "19974f58b09e48de0ad5f6b2ac35bbf7", "patch_ids": [], "statement_hash": "40b34fbe6c0ce3014832a07f496e2cccb058a72f4f9f73bf956b972849f9d8dd", "relations": [{"rule": 2, "type": "equivalent", "target": "b8805482ba721f9dfdbda828bf6df8e9", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "40b34fbe6c0ce3014832a07f496e2cccb058a72f4f9f73bf956b972849f9d8dd"}}, {"rule": 2, "type": "equivalent", "target": "f0e2ab9964db40d1bfa9fcbfacdbff81", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "40b34fbe6c0ce3014832a07f496e2cccb058a72f4f9f73bf956b972849f9d8dd"}}], "version": "9.0.11", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "b8805482ba721f9dfdbda828bf6df8e9", "kind": "equivalent", "version": "9.2.2", "label": "9.2.2", "title": "修复 pg_restore，使其接受符合 POSIX 的 tar 文件", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "40b34fbe6c0ce3014832a07f496e2cccb058a72f4f9f73bf956b972849f9d8dd"}, "url": "/docs/compare/?release=9.2.2#9.2.2-8bbe8f3ab5a3a0da", "source_url": "/docs/release/9.2.2/#id-1.11.6.27.5"}, {"db_id": "f0e2ab9964db40d1bfa9fcbfacdbff81", "kind": "equivalent", "version": "9.1.7", "label": "9.1.7", "title": "修复 pg_restore，使其接受符合 POSIX 的 tar 文件", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "40b34fbe6c0ce3014832a07f496e2cccb058a72f4f9f73bf956b972849f9d8dd"}, "url": "/docs/compare/?release=9.1.7#9.1.7-8bbe8f3ab5a3a0da", "source_url": "/docs/release/9.1.7/#id-1.11.6.22.5"}]}, {"id": "9.0.11-761810e18539c909", "cves": [], "html": "<p>修复 <span>pg_resetxlog</span>，使其在给定数据目录相对路径时正确定位 <code>postmaster.pid</code>（Tom Lane）</p>\n<p>这一失误可能导致 <span>pg_resetxlog</span> 没有注意到有活动 postmaster 正在使用该数据目录。</p>", "text": "修复 pg_resetxlog，使其在给定数据目录相对路径时正确定位 postmaster.pid（Tom Lane） 这一失误可能导致 pg_resetxlog 没有注意到有活动 postmaster 正在使用该数据目录。", "title": "修复 pg_resetxlog，使其在给定数据目录相对路径时正确定位 postmaster.pid", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.11/#id-1.11.6.17.5", "source_hash": "cd171ace921ec1d2cd90ab7c2a00246f22ea477f9f357e8246881867e0b6ac3a", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix pg_resetxlog to locate postmaster.pid correctly when given a relative path to the data directory (Tom Lane) This mistake could lead to pg_resetxlog not noticing that there is an active postmaster using the data directory.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.11/changes/026", "db_id": "a197f30d4a419afe22ed352eed6c455f", "patch_ids": [], "statement_hash": "7caf8cc7b3f02b5844757f17686d9fac5bdf47eaad7825675106bce61c63e669", "relations": [{"rule": 2, "type": "equivalent", "target": "06fc1858e102b767bb412ea6db60ac13", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7caf8cc7b3f02b5844757f17686d9fac5bdf47eaad7825675106bce61c63e669"}}, {"rule": 2, "type": "equivalent", "target": "5f23fc6d20daa7b78f92317b68a3d656", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7caf8cc7b3f02b5844757f17686d9fac5bdf47eaad7825675106bce61c63e669"}}], "version": "9.0.11", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "5f23fc6d20daa7b78f92317b68a3d656", "kind": "equivalent", "version": "9.2.2", "label": "9.2.2", "title": "修复 pg_resetxlog，使其在给定数据目录相对路径时正确定位 postmaster.pid", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7caf8cc7b3f02b5844757f17686d9fac5bdf47eaad7825675106bce61c63e669"}, "url": "/docs/compare/?release=9.2.2#9.2.2-761810e18539c909", "source_url": "/docs/release/9.2.2/#id-1.11.6.27.5"}, {"db_id": "06fc1858e102b767bb412ea6db60ac13", "kind": "equivalent", "version": "9.1.7", "label": "9.1.7", "title": "修复 pg_resetxlog，使其在给定数据目录相对路径时正确定位 postmaster.pid", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7caf8cc7b3f02b5844757f17686d9fac5bdf47eaad7825675106bce61c63e669"}, "url": "/docs/compare/?release=9.1.7#9.1.7-761810e18539c909", "source_url": "/docs/release/9.1.7/#id-1.11.6.22.5"}]}, {"id": "9.0.11-bcd4dcd362712971", "cves": [], "html": "<p>修复 <span>libpq</span> 的 <code>lo_import()</code> 和 <code>lo_export()</code> 函数，使其正确报告文件 I/O 错误（Tom Lane）</p>", "text": "修复 libpq 的 lo_import() 和 lo_export() 函数，使其正确报告文件 I/O 错误（Tom Lane）", "title": "修复 libpq 的 lo_import() 和 lo_export() 函数，使其正确报告文件 I/O 错误", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.11/#id-1.11.6.17.5", "source_hash": "ce9cbc6a605b468edc6920be7844997f9cd74fc09857e159936a8a5d73b4aabf", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix libpq's lo_import() and lo_export() functions to report file I/O errors properly (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.11/changes/027", "db_id": "7d813524766be3ff42a46349c32e2539", "patch_ids": [], "statement_hash": "eb46c0cd020a8dac2ab94bc888d155f67670e7f77eb7db826e51db21363704ba", "relations": [{"rule": 2, "type": "equivalent", "target": "4865edf1a7d48632a6ccede7d13f6d5d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "eb46c0cd020a8dac2ab94bc888d155f67670e7f77eb7db826e51db21363704ba"}}, {"rule": 2, "type": "equivalent", "target": "f2f4b83d5e72a7f944356c88f6cc771c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "eb46c0cd020a8dac2ab94bc888d155f67670e7f77eb7db826e51db21363704ba"}}], "version": "9.0.11", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "f2f4b83d5e72a7f944356c88f6cc771c", "kind": "equivalent", "version": "9.2.2", "label": "9.2.2", "title": "修复 libpq 的 lo_import() 和 lo_export() 函数，使其正确报告文件 I/O 错误", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "eb46c0cd020a8dac2ab94bc888d155f67670e7f77eb7db826e51db21363704ba"}, "url": "/docs/compare/?release=9.2.2#9.2.2-bcd4dcd362712971", "source_url": "/docs/release/9.2.2/#id-1.11.6.27.5"}, {"db_id": "4865edf1a7d48632a6ccede7d13f6d5d", "kind": "equivalent", "version": "9.1.7", "label": "9.1.7", "title": "修复 libpq 的 lo_import() 和 lo_export() 函数，使其正确报告文件 I/O 错误", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "eb46c0cd020a8dac2ab94bc888d155f67670e7f77eb7db826e51db21363704ba"}, "url": "/docs/compare/?release=9.1.7#9.1.7-bcd4dcd362712971", "source_url": "/docs/release/9.1.7/#id-1.11.6.22.5"}]}, {"id": "9.0.11-c64b6ee4bd1b0df7", "cves": [], "html": "<p>修复 <span>ecpg</span> 对嵌套结构指针变量的处理（Muhammad Usama）</p>", "text": "修复 ecpg 对嵌套结构指针变量的处理（Muhammad Usama）", "title": "修复 ecpg 对嵌套结构指针变量的处理", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.11/#id-1.11.6.17.5", "source_hash": "f66693bf5a9ffc30ec5408256006670f17056e553f19e59c26a5b76e7161daa0", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix ecpg's processing of nested structure pointer variables (Muhammad Usama)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.11/changes/028", "db_id": "41df92a6020bf58d60a096b38c9b2191", "patch_ids": [], "statement_hash": "9fd1209f4bf6fbf17e1e75f61f4f9db696c1b28331f0a9f7ac4c3f26f5aa7400", "relations": [{"rule": 2, "type": "equivalent", "target": "64f48e2eedaa8745234640d84045defd", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9fd1209f4bf6fbf17e1e75f61f4f9db696c1b28331f0a9f7ac4c3f26f5aa7400"}}, {"rule": 2, "type": "equivalent", "target": "cda221c16bc82f7d72ec2fc78e8dac16", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9fd1209f4bf6fbf17e1e75f61f4f9db696c1b28331f0a9f7ac4c3f26f5aa7400"}}], "version": "9.0.11", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "64f48e2eedaa8745234640d84045defd", "kind": "equivalent", "version": "9.2.2", "label": "9.2.2", "title": "修复 ecpg 对嵌套结构指针变量的处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9fd1209f4bf6fbf17e1e75f61f4f9db696c1b28331f0a9f7ac4c3f26f5aa7400"}, "url": "/docs/compare/?release=9.2.2#9.2.2-c64b6ee4bd1b0df7", "source_url": "/docs/release/9.2.2/#id-1.11.6.27.5"}, {"db_id": "cda221c16bc82f7d72ec2fc78e8dac16", "kind": "equivalent", "version": "9.1.7", "label": "9.1.7", "title": "修复 ecpg 对嵌套结构指针变量的处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9fd1209f4bf6fbf17e1e75f61f4f9db696c1b28331f0a9f7ac4c3f26f5aa7400"}, "url": "/docs/compare/?release=9.1.7#9.1.7-c64b6ee4bd1b0df7", "source_url": "/docs/release/9.1.7/#id-1.11.6.22.5"}]}, {"id": "9.0.11-960b987969329de1", "cves": [], "html": "<p>修复 <span>ecpg</span> 的 <code>ecpg_get_data</code> 函数，使其正确处理数组（Michael Meskes）</p>", "text": "修复 ecpg 的 ecpg_get_data 函数，使其正确处理数组（Michael Meskes）", "title": "修复 ecpg 的 ecpg_get_data 函数，使其正确处理数组", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.11/#id-1.11.6.17.5", "source_hash": "38c715183d9ad3a8670cdf732108bc22cfa92020db66ab2de5ecbfdc208d8d38", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix ecpg's ecpg_get_data function to handle arrays properly (Michael Meskes)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.11/changes/029", "db_id": "fd191ab6a78f4e84b2705f398e9f042b", "patch_ids": [], "statement_hash": "525a1c5316c2e767a9ee40ad3c94b230ec26515440ba748e894773993eec0a70", "relations": [{"rule": 2, "type": "equivalent", "target": "3302d5cb3e935705738e0df4fd624e48", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "525a1c5316c2e767a9ee40ad3c94b230ec26515440ba748e894773993eec0a70"}}, {"rule": 2, "type": "equivalent", "target": "45db943791f11342d3b435237c1c19b0", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "525a1c5316c2e767a9ee40ad3c94b230ec26515440ba748e894773993eec0a70"}}], "version": "9.0.11", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "3302d5cb3e935705738e0df4fd624e48", "kind": "equivalent", "version": "9.2.2", "label": "9.2.2", "title": "修复 ecpg 的 ecpg_get_data 函数，使其正确处理数组", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "525a1c5316c2e767a9ee40ad3c94b230ec26515440ba748e894773993eec0a70"}, "url": "/docs/compare/?release=9.2.2#9.2.2-960b987969329de1", "source_url": "/docs/release/9.2.2/#id-1.11.6.27.5"}, {"db_id": "45db943791f11342d3b435237c1c19b0", "kind": "equivalent", "version": "9.1.7", "label": "9.1.7", "title": "修复 ecpg 的 ecpg_get_data 函数，使其正确处理数组", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "525a1c5316c2e767a9ee40ad3c94b230ec26515440ba748e894773993eec0a70"}, "url": "/docs/compare/?release=9.1.7#9.1.7-960b987969329de1", "source_url": "/docs/release/9.1.7/#id-1.11.6.22.5"}]}, {"id": "9.0.11-e37aa683385d15f1", "cves": [], "html": "<p>让 <code>contrib/pageinspect</code> 的 btree 页面检查函数在检查页面时持有缓冲区锁（Tom Lane）</p>", "text": "让 contrib/pageinspect 的 btree 页面检查函数在检查页面时持有缓冲区锁（Tom Lane）", "title": "让 contrib/pageinspect 的 btree 页面检查函数在检查页面时持有缓冲区锁", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.11/#id-1.11.6.17.5", "source_hash": "dd13edf5c1c38cc173432ead3db7a4b4d406c0836be67c04e8092fb2852b89b7", "section_path": ["变更"], "commit_groups": [], "identity_text": "Make contrib/pageinspect's btree page inspection functions take buffer locks while examining pages (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.11/changes/030", "db_id": "6db7793b105ce365d08d9e2075a9b1cc", "patch_ids": [], "statement_hash": "aac1d07d86a1b0919daea13c909f5e92e75792304935a64affe58dd8a67c6b35", "relations": [{"rule": 2, "type": "equivalent", "target": "50004f2450d7e9ef28d51c2afc69d34a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "aac1d07d86a1b0919daea13c909f5e92e75792304935a64affe58dd8a67c6b35"}}, {"rule": 2, "type": "equivalent", "target": "92b55b3c92184c6da0b9418e568c58f2", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "aac1d07d86a1b0919daea13c909f5e92e75792304935a64affe58dd8a67c6b35"}}], "version": "9.0.11", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "92b55b3c92184c6da0b9418e568c58f2", "kind": "equivalent", "version": "9.2.2", "label": "9.2.2", "title": "让 contrib/pageinspect 的 btree 页面检查函数在检查页面时持有缓冲区锁", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "aac1d07d86a1b0919daea13c909f5e92e75792304935a64affe58dd8a67c6b35"}, "url": "/docs/compare/?release=9.2.2#9.2.2-e37aa683385d15f1", "source_url": "/docs/release/9.2.2/#id-1.11.6.27.5"}, {"db_id": "50004f2450d7e9ef28d51c2afc69d34a", "kind": "equivalent", "version": "9.1.7", "label": "9.1.7", "title": "让 contrib/pageinspect 的 btree 页面检查函数在检查页面时持有缓冲区锁", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "aac1d07d86a1b0919daea13c909f5e92e75792304935a64affe58dd8a67c6b35"}, "url": "/docs/compare/?release=9.1.7#9.1.7-e37aa683385d15f1", "source_url": "/docs/release/9.1.7/#id-1.11.6.22.5"}]}, {"id": "9.0.11-bc736845c4048ca5", "cves": [], "html": "<p>修复 <span>pgxs</span> 在 AIX 上构建可加载模块的支持（Tom Lane）</p>\n<p>在原始源码树之外构建模块在 AIX 上不工作。</p>", "text": "修复 pgxs 在 AIX 上构建可加载模块的支持（Tom Lane） 在原始源码树之外构建模块在 AIX 上不工作。", "title": "修复 pgxs 在 AIX 上构建可加载模块的支持", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.11/#id-1.11.6.17.5", "source_hash": "944708fa5ac503f8f09a02b13dbc4aab2ec17f7a6b306d9505e4db826d99b6f9", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix pgxs support for building loadable modules on AIX (Tom Lane) Building modules outside the original source tree didn't work on AIX.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.11/changes/031", "db_id": "15dabc8824d91d197d3137936927273b", "patch_ids": [], "statement_hash": "8eb6e11a0cdd4ad9eb440056655425188977dec2564763abdd10adb3def1e098", "relations": [{"rule": 2, "type": "equivalent", "target": "4cd7f6e5b1c444af94d81b73fc62872d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8eb6e11a0cdd4ad9eb440056655425188977dec2564763abdd10adb3def1e098"}}, {"rule": 2, "type": "equivalent", "target": "718f43ca78112555364550f686794edf", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8eb6e11a0cdd4ad9eb440056655425188977dec2564763abdd10adb3def1e098"}}], "version": "9.0.11", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "718f43ca78112555364550f686794edf", "kind": "equivalent", "version": "9.2.2", "label": "9.2.2", "title": "修复 pgxs 在 AIX 上构建可加载模块的支持", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8eb6e11a0cdd4ad9eb440056655425188977dec2564763abdd10adb3def1e098"}, "url": "/docs/compare/?release=9.2.2#9.2.2-bc736845c4048ca5", "source_url": "/docs/release/9.2.2/#id-1.11.6.27.5"}, {"db_id": "4cd7f6e5b1c444af94d81b73fc62872d", "kind": "equivalent", "version": "9.1.7", "label": "9.1.7", "title": "修复 pgxs 在 AIX 上构建可加载模块的支持", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8eb6e11a0cdd4ad9eb440056655425188977dec2564763abdd10adb3def1e098"}, "url": "/docs/compare/?release=9.1.7#9.1.7-bc736845c4048ca5", "source_url": "/docs/release/9.1.7/#id-1.11.6.22.5"}]}, {"id": "9.0.11-952c0437d7a59cc6", "cves": [], "html": "<p>把时区数据文件更新为 <span>tzdata</span> 版本 2012j for DST law changes in Cuba, Israel, Jordan, Libya, Palestine, Western Samoa, and portions of Brazil。</p>", "text": "把时区数据文件更新为 tzdata 版本 2012j for DST law changes in Cuba, Israel, Jordan, Libya, Palestine, Western Samoa, and portions of Brazil。", "title": "把时区数据文件更新为 tzdata 版本 2012j for DST law changes in Cuba, Israel, Jordan, Libya, Palestine, Western Samoa, and portions of Brazil。", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.11/#id-1.11.6.17.5", "source_hash": "7d64428e0beac28d1093c3faa0faa44131729bac38bc4ca4bbaed0c6527b3772", "section_path": ["变更"], "commit_groups": [], "identity_text": "Update time zone data files to tzdata release 2012j for DST law changes in Cuba, Israel, Jordan, Libya, Palestine, Western Samoa, and portions of Brazil.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.11/changes/032", "db_id": "1fe15744872be7b056e551e5765d535c", "patch_ids": [], "statement_hash": "b97eec4dfb4854efeb77895b2bb2829f50b77c47d05be588661b563c55522638", "relations": [{"rule": 2, "type": "equivalent", "target": "8d3974c67dd220e19c661173e02581b0", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b97eec4dfb4854efeb77895b2bb2829f50b77c47d05be588661b563c55522638"}}, {"rule": 2, "type": "equivalent", "target": "b3fd6413f3478cca8738ba1f1bb39969", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b97eec4dfb4854efeb77895b2bb2829f50b77c47d05be588661b563c55522638"}}], "version": "9.0.11", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "b3fd6413f3478cca8738ba1f1bb39969", "kind": "equivalent", "version": "9.2.2", "label": "9.2.2", "title": "把时区数据文件更新为 tzdata 版本 2012j for DST law changes in Cuba, Israel, Jordan, Libya, Palestine, Western Samoa, and portions of Brazil。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b97eec4dfb4854efeb77895b2bb2829f50b77c47d05be588661b563c55522638"}, "url": "/docs/compare/?release=9.2.2#9.2.2-952c0437d7a59cc6", "source_url": "/docs/release/9.2.2/#id-1.11.6.27.5"}, {"db_id": "8d3974c67dd220e19c661173e02581b0", "kind": "equivalent", "version": "9.1.7", "label": "9.1.7", "title": "把时区数据文件更新为 tzdata 版本 2012j for DST law changes in Cuba, Israel, Jordan, Libya, Palestine, Western Samoa, and portions of Brazil。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b97eec4dfb4854efeb77895b2bb2829f50b77c47d05be588661b563c55522638"}, "url": "/docs/compare/?release=9.1.7#9.1.7-952c0437d7a59cc6", "source_url": "/docs/release/9.1.7/#id-1.11.6.22.5"}]}]}, {"date": "2012-09-24", "build": "9.0.10", "major": "9.0", "minor": 10, "manual": "9.0", "status": "stable", "doc_git": "", "version": "9.0.10", "eol_date": "2015-10-08", "date_text": "2012-09-24", "supported": false, "manual_url": "/docs/9.0/release-9-0-10.html", "source_url": "/docs/release/9.0.10/", "entry_count": 10, "placeholder": false, "content_hash": "b461fd2138f59e0d41214093f80dcd9d79a9f955bb58e908909ab631c82d8d9a", "manual_build": "9.0.23", "source_as_of": "", "changes_count": 10, "doc_loaded_at": "2026-09-26T02:56:48.570247", "migration_html": "<p>对于运行 9.0.X 的用户，不需要进行转储/恢复。</p>\n<p>不过，如果你是从早于 9.0.6 的版本升级，请参见<a href=\"/docs/9.0/release-9-0-6.html\" title=\"E.18. 版本 9.0.6\">第 E.18 节</a>。</p>", "compatibility_count": 0, "label": "9.0.10", "status_label": "历史版本", "eol": "2015-10-08", "age_days": 5119, "support_days": -4010, "entries": [{"id": "9.0.10-f7b46a9a3bd8260f", "cves": [], "html": "<p>修复规划器对执行器参数的分配，并修复执行器对 CTE 计划节点的重新扫描逻辑（Tom Lane）</p>\n<p>这些错误可能导致多次扫描同一 <code>WITH</code> 子查询的查询给出错误答案。</p>", "text": "修复规划器对执行器参数的分配，并修复执行器对 CTE 计划节点的重新扫描逻辑（Tom Lane） 这些错误可能导致多次扫描同一 WITH 子查询的查询给出错误答案。", "title": "修复规划器对执行器参数的分配，并修复执行器对 CTE 计划节点的重新扫描逻辑", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.10/#id-1.11.6.18.5", "source_hash": "43f35048226997c7063b386fc359480d6087eaf3105709bc3391178841820b88", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix planner's assignment of executor parameters, and fix executor's rescan logic for CTE plan nodes (Tom Lane) These errors could result in wrong answers from queries that scan the same WITH subquery multiple times.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.10/changes/001", "db_id": "ed58d031ced6c708a1bafd28fb68ba46", "patch_ids": [], "statement_hash": "303ea31cb500da251536c28a534109ccb4722d41e38da69c13c7745a2ce914bf", "relations": [{"rule": 2, "type": "equivalent", "target": "c06a2faf8fe7e33717f04a653b0c566c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "303ea31cb500da251536c28a534109ccb4722d41e38da69c13c7745a2ce914bf"}}], "version": "9.0.10", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "c06a2faf8fe7e33717f04a653b0c566c", "kind": "equivalent", "version": "9.1.6", "label": "9.1.6", "title": "修复规划器对执行器参数的分配，并修复执行器对 CTE 计划节点的重新扫描逻辑", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "303ea31cb500da251536c28a534109ccb4722d41e38da69c13c7745a2ce914bf"}, "url": "/docs/compare/?release=9.1.6#9.1.6-f7b46a9a3bd8260f", "source_url": "/docs/release/9.1.6/#id-1.11.6.23.5"}]}, {"id": "9.0.10-866e4207ec937bfb", "cves": [], "html": "<p>改进 GiST 索引的页面分裂决策（Alexander Korotkov、Robert Haas、Tom Lane）</p>\n<p>多列 GiST 索引可能因此错误而遭受意外膨胀。</p>", "text": "改进 GiST 索引的页面分裂决策（Alexander Korotkov、Robert Haas、Tom Lane） 多列 GiST 索引可能因此错误而遭受意外膨胀。", "title": "改进 GiST 索引的页面分裂决策", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.10/#id-1.11.6.18.5", "source_hash": "6511b0730133e02b090fc68488140603404e2326806bb803eb6a4fe6447776cf", "section_path": ["变更"], "commit_groups": [], "identity_text": "Improve page-splitting decisions in GiST indexes (Alexander Korotkov, Robert Haas, Tom Lane) Multi-column GiST indexes might suffer unexpected bloat due to this error.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.10/changes/002", "db_id": "8cacc1f6e7dd584ba7cdf575bc4129fb", "patch_ids": [], "statement_hash": "f011fb58ac0821237d5d448459b15e8cf3408a4bef80f4856dc49cc39a6e462f", "relations": [{"rule": 2, "type": "equivalent", "target": "d78207824bf5c4c0e51b593ff8aa15fd", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f011fb58ac0821237d5d448459b15e8cf3408a4bef80f4856dc49cc39a6e462f"}}], "version": "9.0.10", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "d78207824bf5c4c0e51b593ff8aa15fd", "kind": "equivalent", "version": "9.1.6", "label": "9.1.6", "title": "改进 GiST 索引的页面分裂决策", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f011fb58ac0821237d5d448459b15e8cf3408a4bef80f4856dc49cc39a6e462f"}, "url": "/docs/compare/?release=9.1.6#9.1.6-866e4207ec937bfb", "source_url": "/docs/release/9.1.6/#id-1.11.6.23.5"}]}, {"id": "9.0.10-271b3c2678cc2d1b", "cves": [], "html": "<p>修复级联权限撤销，使其在权限仍被持有时停止（Tom Lane）</p>\n<p>如果我们撤销某个角色 <em><code>X</code></em> 的授予选项，但 <em><code>X</code></em> 仍通过别人的授予持有该选项，我们就不应从 <em><code>X</code></em> 曾授予该权限的角色 <em><code>Y</code></em> 那里递归撤销相应权限。</p>", "text": "修复级联权限撤销，使其在权限仍被持有时停止（Tom Lane） 如果我们撤销某个角色 X 的授予选项，但 X 仍通过别人的授予持有该选项，我们就不应从 X 曾授予该权限的角色 Y 那里递归撤销相应权限。", "title": "修复级联权限撤销，使其在权限仍被持有时停止", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.10/#id-1.11.6.18.5", "source_hash": "33915078e28f499fe59c31abab4e56167fba7c6dcbbd2cff712bd1f35d327e7c", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix cascading privilege revoke to stop if privileges are still held (Tom Lane) If we revoke a grant option from some role X, but X still holds that option via a grant from someone else, we should not recursively revoke the corresponding privilege from role(s) Y that X had granted it to.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.10/changes/003", "db_id": "482d15cd9d0cd2ab5aa6ee92239f6a7b", "patch_ids": [], "statement_hash": "aad8e30ad87639cf8335aa67f5ed570dd2521802b88521e87c8c52ee9d126f3b", "relations": [{"rule": 2, "type": "equivalent", "target": "7b3ad10258a3087d736206bbb232e17c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "aad8e30ad87639cf8335aa67f5ed570dd2521802b88521e87c8c52ee9d126f3b"}}], "version": "9.0.10", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "7b3ad10258a3087d736206bbb232e17c", "kind": "equivalent", "version": "9.1.6", "label": "9.1.6", "title": "修复级联权限撤销，使其在权限仍被持有时停止", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "aad8e30ad87639cf8335aa67f5ed570dd2521802b88521e87c8c52ee9d126f3b"}, "url": "/docs/compare/?release=9.1.6#9.1.6-271b3c2678cc2d1b", "source_url": "/docs/release/9.1.6/#id-1.11.6.23.5"}]}, {"id": "9.0.10-ddde93d4f878cf9a", "cves": [], "html": "<p>改进热备配置错误的错误消息（Gurjeet Singh）</p>", "text": "改进热备配置错误的错误消息（Gurjeet Singh）", "title": "改进热备配置错误的错误消息", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.10/#id-1.11.6.18.5", "source_hash": "31f3a27ff32ffcd9bfc2540b6b8eb90ae184be4a6d091002a9c488e129d6a3c5", "section_path": ["变更"], "commit_groups": [], "identity_text": "Improve error messages for Hot Standby misconfiguration errors (Gurjeet Singh)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.10/changes/004", "db_id": "8e839915505bc1e1a41f5e1847e671df", "patch_ids": [], "statement_hash": "ed7e6986b5ef5dc55358284847dd5838524f8627f0892406aead003500a2b5f9", "relations": [{"rule": 2, "type": "equivalent", "target": "9fb026bbb9f130da498f7baf877e0c0e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ed7e6986b5ef5dc55358284847dd5838524f8627f0892406aead003500a2b5f9"}}], "version": "9.0.10", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "9fb026bbb9f130da498f7baf877e0c0e", "kind": "equivalent", "version": "9.1.6", "label": "9.1.6", "title": "改进热备配置错误的错误消息", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ed7e6986b5ef5dc55358284847dd5838524f8627f0892406aead003500a2b5f9"}, "url": "/docs/compare/?release=9.1.6#9.1.6-ddde93d4f878cf9a", "source_url": "/docs/release/9.1.6/#id-1.11.6.23.5"}]}, {"id": "9.0.10-72f6b0c101616e88", "cves": [], "html": "<p>修复使用 PL/Perl 时对 <code>SIGFPE</code> 的处理（Andres Freund）</p>\n<p>Perl 会把进程的 <code>SIGFPE</code> 处理程序重置为 <code>SIG_IGN</code>，这可能导致之后崩溃。在初始化 PL/Perl 之后恢复正常的 Postgres 信号处理程序。</p>", "text": "修复使用 PL/Perl 时对 SIGFPE 的处理（Andres Freund） Perl 会把进程的 SIGFPE 处理程序重置为 SIG_IGN，这可能导致之后崩溃。在初始化 PL/Perl 之后恢复正常的 Postgres 信号处理程序。", "title": "修复使用 PL/Perl 时对 SIGFPE 的处理", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.10/#id-1.11.6.18.5", "source_hash": "86001c6dcf9b96524ba44de74fe119cc7f596170566c135d2e5532f41147f900", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix handling of SIGFPE when PL/Perl is in use (Andres Freund) Perl resets the process's SIGFPE handler to SIG_IGN, which could result in crashes later on. Restore the normal Postgres signal handler after initializing PL/Perl.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.10/changes/005", "db_id": "b58c83760e2caaa87b21b5e2035646c7", "patch_ids": [], "statement_hash": "a7cab7f741a640399873f42f8cec25f51fff8b47096b245a90dcf53500db9170", "relations": [{"rule": 2, "type": "equivalent", "target": "48c9a99f41b78ea55b70e2738fb7953b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a7cab7f741a640399873f42f8cec25f51fff8b47096b245a90dcf53500db9170"}}], "version": "9.0.10", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "48c9a99f41b78ea55b70e2738fb7953b", "kind": "equivalent", "version": "9.1.6", "label": "9.1.6", "title": "修复使用 PL/Perl 时对 SIGFPE 的处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a7cab7f741a640399873f42f8cec25f51fff8b47096b245a90dcf53500db9170"}, "url": "/docs/compare/?release=9.1.6#9.1.6-72f6b0c101616e88", "source_url": "/docs/release/9.1.6/#id-1.11.6.23.5"}]}, {"id": "9.0.10-a14a94a129f34a4c", "cves": [], "html": "<p>防止递归 PL/Perl 函数在执行期间被重定义时 PL/Perl 崩溃（Tom Lane）</p>", "text": "防止递归 PL/Perl 函数在执行期间被重定义时 PL/Perl 崩溃（Tom Lane）", "title": "防止递归 PL/Perl 函数在执行期间被重定义时 PL/Perl 崩溃", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.10/#id-1.11.6.18.5", "source_hash": "b36aa21fc2aa15564cfd4c352381531672c30fd9c7760e7e0ca6c4f064179b12", "section_path": ["变更"], "commit_groups": [], "identity_text": "Prevent PL/Perl from crashing if a recursive PL/Perl function is redefined while being executed (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.10/changes/006", "db_id": "2e12c5fc8c760f038a31f06b8163922d", "patch_ids": [], "statement_hash": "247e05f6355b0c18f3b1c9558e4ef965312d9d6960e31a616ce980f6721a542e", "relations": [{"rule": 2, "type": "equivalent", "target": "20cdaf66b51cd04d9badb1e618c75162", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "247e05f6355b0c18f3b1c9558e4ef965312d9d6960e31a616ce980f6721a542e"}}, {"rule": 2, "type": "equivalent", "target": "6fdc69dbd04a82bf8440579c87fa8d7e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "247e05f6355b0c18f3b1c9558e4ef965312d9d6960e31a616ce980f6721a542e"}}], "version": "9.0.10", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "20cdaf66b51cd04d9badb1e618c75162", "kind": "equivalent", "version": "9.2.1", "label": "9.2.1", "title": "防止递归 PL/Perl 函数在执行期间被重定义时 PL/Perl 崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "247e05f6355b0c18f3b1c9558e4ef965312d9d6960e31a616ce980f6721a542e"}, "url": "/docs/compare/?release=9.2.1#9.2.1-a14a94a129f34a4c", "source_url": "/docs/release/9.2.1/#id-1.11.6.28.5"}, {"db_id": "6fdc69dbd04a82bf8440579c87fa8d7e", "kind": "equivalent", "version": "9.1.6", "label": "9.1.6", "title": "防止递归 PL/Perl 函数在执行期间被重定义时 PL/Perl 崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "247e05f6355b0c18f3b1c9558e4ef965312d9d6960e31a616ce980f6721a542e"}, "url": "/docs/compare/?release=9.1.6#9.1.6-a14a94a129f34a4c", "source_url": "/docs/release/9.1.6/#id-1.11.6.23.5"}]}, {"id": "9.0.10-3df65794185ea017", "cves": [], "html": "<p>规避 PL/Perl 中可能的错误优化（Tom Lane）</p>\n<p>一些 Linux 发行版包含错误版本的 <code>pthread.h</code>，导致 PL/Perl 中的编译代码不正确，当一个 PL/Perl 函数调用另一个会抛出错误的函数时会导致崩溃。</p>", "text": "规避 PL/Perl 中可能的错误优化（Tom Lane） 一些 Linux 发行版包含错误版本的 pthread.h，导致 PL/Perl 中的编译代码不正确，当一个 PL/Perl 函数调用另一个会抛出错误的函数时会导致崩溃。", "title": "规避 PL/Perl 中可能的错误优化", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.10/#id-1.11.6.18.5", "source_hash": "b5671b4626ee970576604adf4625268006d304068053e20d535b96b53bd5864d", "section_path": ["变更"], "commit_groups": [], "identity_text": "Work around possible misoptimization in PL/Perl (Tom Lane) Some Linux distributions contain an incorrect version of pthread.h that results in incorrect compiled code in PL/Perl, leading to crashes if a PL/Perl function calls another one that throws an error.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.10/changes/007", "db_id": "742f3ee5a3dee3658b3a4619e0f3aab2", "patch_ids": [], "statement_hash": "7ca195ad6c0693363f8205dcdbfe966c4f653f1c9aed4c63c75fc0c61c6660fd", "relations": [{"rule": 2, "type": "equivalent", "target": "d48eca53239ce6adfb0ecb2ce1f3cfa5", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7ca195ad6c0693363f8205dcdbfe966c4f653f1c9aed4c63c75fc0c61c6660fd"}}, {"rule": 2, "type": "equivalent", "target": "eca2108a6f0e32ab28301130324e43c6", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7ca195ad6c0693363f8205dcdbfe966c4f653f1c9aed4c63c75fc0c61c6660fd"}}], "version": "9.0.10", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "eca2108a6f0e32ab28301130324e43c6", "kind": "equivalent", "version": "9.2.1", "label": "9.2.1", "title": "规避 PL/Perl 中可能的错误优化", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7ca195ad6c0693363f8205dcdbfe966c4f653f1c9aed4c63c75fc0c61c6660fd"}, "url": "/docs/compare/?release=9.2.1#9.2.1-3df65794185ea017", "source_url": "/docs/release/9.2.1/#id-1.11.6.28.5"}, {"db_id": "d48eca53239ce6adfb0ecb2ce1f3cfa5", "kind": "equivalent", "version": "9.1.6", "label": "9.1.6", "title": "规避 PL/Perl 中可能的错误优化", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7ca195ad6c0693363f8205dcdbfe966c4f653f1c9aed4c63c75fc0c61c6660fd"}, "url": "/docs/compare/?release=9.1.6#9.1.6-3df65794185ea017", "source_url": "/docs/release/9.1.6/#id-1.11.6.23.5"}]}, {"id": "9.0.10-c47055576af39a22", "cves": [], "html": "<p>修复 <span>pg_upgrade</span> 在 Windows 上对行尾的处理（Andrew Dunstan）</p>\n<p>此前，<span>pg_upgrade</span> 可能在函数体等地方添加或删除回车符。</p>", "text": "修复 pg_upgrade 在 Windows 上对行尾的处理（Andrew Dunstan） 此前，pg_upgrade 可能在函数体等地方添加或删除回车符。", "title": "修复 pg_upgrade 在 Windows 上对行尾的处理", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.10/#id-1.11.6.18.5", "source_hash": "e1fd8167191701b3c386969a1e10161bdd7590b75bf380910cb1e1f16a0cf46e", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix pg_upgrade's handling of line endings on Windows (Andrew Dunstan) Previously, pg_upgrade might add or remove carriage returns in places such as function bodies.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.10/changes/008", "db_id": "d8591fd7da4d86c575154fd3823cc95e", "patch_ids": [], "statement_hash": "3689fa5cd613a4767592dd4312565d863189fb2d99b35223be74f5e2f6557c75", "relations": [{"rule": 2, "type": "equivalent", "target": "c7879bf03c0246afe35ba7451b635ea2", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3689fa5cd613a4767592dd4312565d863189fb2d99b35223be74f5e2f6557c75"}}], "version": "9.0.10", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "c7879bf03c0246afe35ba7451b635ea2", "kind": "equivalent", "version": "9.1.6", "label": "9.1.6", "title": "修复 pg_upgrade 在 Windows 上对行尾的处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3689fa5cd613a4767592dd4312565d863189fb2d99b35223be74f5e2f6557c75"}, "url": "/docs/compare/?release=9.1.6#9.1.6-c47055576af39a22", "source_url": "/docs/release/9.1.6/#id-1.11.6.23.5"}]}, {"id": "9.0.10-c5efb72f6beb88ba", "cves": [], "html": "<p>在 Windows 上，让 <span>pg_upgrade</span> 在其生成的脚本中使用反斜杠路径分隔符（Andrew Dunstan）</p>", "text": "在 Windows 上，让 pg_upgrade 在其生成的脚本中使用反斜杠路径分隔符（Andrew Dunstan）", "title": "在 Windows 上，让 pg_upgrade 在其生成的脚本中使用反斜杠路径分隔符", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.10/#id-1.11.6.18.5", "source_hash": "35ee2f9409ee996c64255249d61dcfacd719a56049d8ccb31e1e5e1502dd95c6", "section_path": ["变更"], "commit_groups": [], "identity_text": "On Windows, make pg_upgrade use backslash path separators in the scripts it emits (Andrew Dunstan)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.10/changes/009", "db_id": "8fc6eb12af4b6c9bc4aa08063275ea55", "patch_ids": [], "statement_hash": "604f1c60574da94dfe9cc61c911a84c9966d03fd790d021b8bc41baaad932d01", "relations": [{"rule": 2, "type": "equivalent", "target": "5b21e9be799a3571f9cd9d29f6e8d44c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "604f1c60574da94dfe9cc61c911a84c9966d03fd790d021b8bc41baaad932d01"}}], "version": "9.0.10", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "5b21e9be799a3571f9cd9d29f6e8d44c", "kind": "equivalent", "version": "9.1.6", "label": "9.1.6", "title": "在 Windows 上，让 pg_upgrade 在其生成的脚本中使用反斜杠路径分隔符", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "604f1c60574da94dfe9cc61c911a84c9966d03fd790d021b8bc41baaad932d01"}, "url": "/docs/compare/?release=9.1.6#9.1.6-c5efb72f6beb88ba", "source_url": "/docs/release/9.1.6/#id-1.11.6.23.5"}]}, {"id": "9.0.10-34d486e25f2c3c26", "cves": [], "html": "<p>把时区数据文件更新为 <span>tzdata</span> 版本 2014e，以反映克里米亚、埃及和摩洛哥的夏令时法规变更。</p>", "text": "把时区数据文件更新为 tzdata 版本 2014e，以反映克里米亚、埃及和摩洛哥的夏令时法规变更。", "title": "把时区数据文件更新为 tzdata 版本 2014e，以反映克里米亚、埃及和摩洛哥的夏令时法规变更。", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.10/#id-1.11.6.18.5", "source_hash": "d8a80091b70fe4d863dd3841b32322b5b07e1979a8c64bcb8b7947c4facbb99e", "section_path": ["变更"], "commit_groups": [], "identity_text": "Update time zone data files to tzdata release 2012f for DST law changes in Fiji", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.10/changes/010", "db_id": "3355d171f59b6dd9ccfea042bb14942b", "patch_ids": [], "statement_hash": "c6e1e4392e7c2866d9d05a00c2d80972799fba21171a3252e1d5475f2b473ba8", "relations": [{"rule": 2, "type": "equivalent", "target": "7b5b3e7e60e584eb09fcc994d80bf9d3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c6e1e4392e7c2866d9d05a00c2d80972799fba21171a3252e1d5475f2b473ba8"}}, {"rule": 2, "type": "equivalent", "target": "b0a01851eb79db8339550a03879ef2e3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c6e1e4392e7c2866d9d05a00c2d80972799fba21171a3252e1d5475f2b473ba8"}}], "version": "9.0.10", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "7b5b3e7e60e584eb09fcc994d80bf9d3", "kind": "equivalent", "version": "9.2.1", "label": "9.2.1", "title": "把时区数据文件更新为 tzdata 版本 2014e，以反映克里米亚、埃及和摩洛哥的夏令时法规变更。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c6e1e4392e7c2866d9d05a00c2d80972799fba21171a3252e1d5475f2b473ba8"}, "url": "/docs/compare/?release=9.2.1#9.2.1-34d486e25f2c3c26", "source_url": "/docs/release/9.2.1/#id-1.11.6.28.5"}, {"db_id": "b0a01851eb79db8339550a03879ef2e3", "kind": "equivalent", "version": "9.1.6", "label": "9.1.6", "title": "把时区数据文件更新为 tzdata 版本 2014e，以反映克里米亚、埃及和摩洛哥的夏令时法规变更。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c6e1e4392e7c2866d9d05a00c2d80972799fba21171a3252e1d5475f2b473ba8"}, "url": "/docs/compare/?release=9.1.6#9.1.6-34d486e25f2c3c26", "source_url": "/docs/release/9.1.6/#id-1.11.6.23.5"}]}]}, {"date": "2012-08-17", "build": "9.0.9", "major": "9.0", "minor": 9, "manual": "9.0", "status": "stable", "doc_git": "", "version": "9.0.9", "eol_date": "2015-10-08", "date_text": "2012-08-17", "supported": false, "manual_url": "/docs/9.0/release-9-0-9.html", "source_url": "/docs/release/9.0.9/", "entry_count": 23, "placeholder": false, "content_hash": "fd2d6646357f5f0e069bcd4b7951c4d84618222e8804d0ef3ea5eda5725c303d", "manual_build": "9.0.23", "source_as_of": "", "changes_count": 23, "doc_loaded_at": "2026-09-26T02:56:48.570247", "migration_html": "<p>对于运行 9.0.X 的用户，不需要进行转储/恢复。</p>\n<p>不过，如果你是从早于 9.0.6 的版本升级，请参见<a href=\"/docs/9.0/release-9-0-6.html\" title=\"E.18. 版本 9.0.6\">第 E.18 节</a>。</p>", "compatibility_count": 0, "label": "9.0.9", "status_label": "历史版本", "eol": "2015-10-08", "age_days": 5157, "support_days": -4010, "entries": [{"id": "9.0.9-f89140ac431117c2", "cves": ["CVE-2012-3489"], "html": "<p>防止通过 XML 实体引用访问外部文件/URL（Noah Misch、Tom Lane）</p>\n<p><code>xml_parse()</code> 会尝试按需获取外部文件或 URL 来解析 XML 值中的 DTD 和实体引用，从而使无特权数据库用户能够尝试以数据库服务器的权限获取数据。虽然外部数据不会直接返回给用户，但如果数据不能解析为有效 XML，其部分内容可能暴露在错误消息中；而且无论如何，仅仅能够检查文件是否存在对攻击者就可能有用。（CVE-2012-3489）</p>", "text": "防止通过 XML 实体引用访问外部文件/URL（Noah Misch、Tom Lane） xml_parse() 会尝试按需获取外部文件或 URL 来解析 XML 值中的 DTD 和实体引用，从而使无特权数据库用户能够尝试以数据库服务器的权限获取数据。虽然外部数据不会直接返回给用户，但如果数据不能解析为有效 XML，其部分内容可能暴露在错误消息中；而且无论如何，仅仅能够检查文件是否存在对攻击者就可能有用。（CVE-2012-3489）", "title": "防止通过 XML 实体引用访问外部文件/URL", "commits": [], "section": "变更", "category": "security", "source_url": "/docs/release/9.0.9/#id-1.11.6.19.5", "source_hash": "a6c80934ce24d340fa0afa4985a35e24dfe0625644701cc4bf2f28e61b7a9e14", "section_path": ["变更"], "commit_groups": [], "identity_text": "Prevent access to external files/URLs via XML entity references (Noah Misch, Tom Lane) xml_parse() would attempt to fetch external files or URLs as needed to resolve DTD and entity references in an XML value, thus allowing unprivileged database users to attempt to fetch data with the privileges of the database server. While the external data wouldn't get returned directly to the user, portions of it could be exposed in error messages if the data didn't parse as valid XML; and in any case the mere ability to check existence of a file might be useful to an attacker. (CVE-2012-3489)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.9/changes/001", "db_id": "35d8516b9dd2bd8b383f3f832cd004f1", "patch_ids": [], "statement_hash": "04398600497e62c9494bc7b13d05c6dcca70d384363854edf5bbb21657a2deee", "relations": [{"rule": 2, "type": "equivalent", "target": "4992796939ce63770dd3b50b3db0a635", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "04398600497e62c9494bc7b13d05c6dcca70d384363854edf5bbb21657a2deee"}}], "version": "9.0.9", "category_label": "安全相关", "also_in": [], "variants": [], "related_changes": [{"db_id": "4992796939ce63770dd3b50b3db0a635", "kind": "equivalent", "version": "9.1.5", "label": "9.1.5", "title": "防止通过 XML 实体引用访问外部文件/URL", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "04398600497e62c9494bc7b13d05c6dcca70d384363854edf5bbb21657a2deee"}, "url": "/docs/compare/?release=9.1.5#9.1.5-f89140ac431117c2", "source_url": "/docs/release/9.1.5/#id-1.11.6.24.5"}]}, {"id": "9.0.9-2be6b2938ecf24c1", "cves": ["CVE-2012-3488", "CVE-2012-3489"], "html": "<p>防止通过 <code>contrib/xml2</code> 的 <code>xslt_process()</code> 访问外部文件/URL（Peter Eisentraut）</p>\n<p><span>libxslt</span> 提供通过样式表命令读写文件和 URL 的能力，从而使无特权数据库用户能够以数据库服务器的权限读写数据。现通过正确使用 <span>libxslt</span> 的安全选项禁用该能力。（CVE-2012-3488）</p>\n<p>此外，移除了 <code>xslt_process()</code> 从外部文件/URL 获取文档和样式表的能力。虽然这是一个有记载的<span>“<span>特性</span>”</span>，但长期以来被认为是个坏主意。CVE-2012-3489 的修复破坏了该能力，与其花费精力修复它，我们干脆将其移除。</p>", "text": "防止通过 contrib/xml2 的 xslt_process() 访问外部文件/URL（Peter Eisentraut） libxslt 提供通过样式表命令读写文件和 URL 的能力，从而使无特权数据库用户能够以数据库服务器的权限读写数据。现通过正确使用 libxslt 的安全选项禁用该能力。（CVE-2012-3488） 此外，移除了 xslt_process() 从外部文件/URL 获取文档和样式表的能力。虽然这是一个有记载的“特性”，但长期以来被认为是个坏主意。CVE-2012-3489 的修复破坏了该能力，与其花费精力修复它，我们干脆将其移除。", "title": "防止通过 contrib/xml2 的 xslt_process() 访问外部文件/URL", "commits": [], "section": "变更", "category": "security", "source_url": "/docs/release/9.0.9/#id-1.11.6.19.5", "source_hash": "bf62fb83633cffb656c67c988ca561e6aa2d7c996d09e09d62706d1dc95c2d57", "section_path": ["变更"], "commit_groups": [], "identity_text": "Prevent access to external files/URLs via contrib/xml2's xslt_process() (Peter Eisentraut) libxslt offers the ability to read and write both files and URLs through stylesheet commands, thus allowing unprivileged database users to both read and write data with the privileges of the database server. Disable that through proper use of libxslt's security options. (CVE-2012-3488) Also, remove xslt_process()'s ability to fetch documents and stylesheets from external files/URLs. While this was a documented feature, it was long regarded as a bad idea. The fix for CVE-2012-3489 broke that capability, and rather than expend effort on trying to fix it, we're just going to summarily remove it.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.9/changes/002", "db_id": "abcad5d463e33ed3276c542686c82a47", "patch_ids": [], "statement_hash": "3e0ae43c5a564e90459affb1a9add04e838de33ca4528012361ac3d08d63c72b", "relations": [{"rule": 2, "type": "equivalent", "target": "887d3d76bac74df3f027be31bd7a07b3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3e0ae43c5a564e90459affb1a9add04e838de33ca4528012361ac3d08d63c72b"}}], "version": "9.0.9", "category_label": "安全相关", "also_in": [], "variants": [], "related_changes": [{"db_id": "887d3d76bac74df3f027be31bd7a07b3", "kind": "equivalent", "version": "9.1.5", "label": "9.1.5", "title": "防止通过 contrib/xml2 的 xslt_process() 访问外部文件/URL", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3e0ae43c5a564e90459affb1a9add04e838de33ca4528012361ac3d08d63c72b"}, "url": "/docs/compare/?release=9.1.5#9.1.5-2be6b2938ecf24c1", "source_url": "/docs/release/9.1.5/#id-1.11.6.24.5"}]}, {"id": "9.0.9-4df4c0850b2d0206", "cves": [], "html": "<p>防止 btree 索引页被过早回收（Noah Misch）</p>\n<p>当我们允许只读事务跳过分配 XID 时，引入了已删除 btree 页在只读事务仍在访问它时就被回收的可能性。这会导致错误的索引搜索结果。由于时序要求，这种错误在实际中发生的概率似乎很低，但仍应修复。</p>", "text": "防止 btree 索引页被过早回收（Noah Misch） 当我们允许只读事务跳过分配 XID 时，引入了已删除 btree 页在只读事务仍在访问它时就被回收的可能性。这会导致错误的索引搜索结果。由于时序要求，这种错误在实际中发生的概率似乎很低，但仍应修复。", "title": "防止 btree 索引页被过早回收", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.9/#id-1.11.6.19.5", "source_hash": "143bd3621f8904490904efdc96eea5620bf4242c01017e726244d289400995de", "section_path": ["变更"], "commit_groups": [], "identity_text": "Prevent too-early recycling of btree index pages (Noah Misch) When we allowed read-only transactions to skip assigning XIDs, we introduced the possibility that a deleted btree page could be recycled while a read-only transaction was still in flight to it. This would result in incorrect index search results. The probability of such an error occurring in the field seems very low because of the timing requirements, but nonetheless it should be fixed.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.9/changes/003", "db_id": "b153a4cf63fb975902cfb36655588ab0", "patch_ids": [], "statement_hash": "9376e2480687801694aeb8b7494f7b1ca6a24bd8923ae61b9d76bfcfff194d7d", "relations": [{"rule": 2, "type": "equivalent", "target": "07ead3a6bded50621943d455566a3a9c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9376e2480687801694aeb8b7494f7b1ca6a24bd8923ae61b9d76bfcfff194d7d"}}], "version": "9.0.9", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "07ead3a6bded50621943d455566a3a9c", "kind": "equivalent", "version": "9.1.5", "label": "9.1.5", "title": "防止 btree 索引页被过早回收", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9376e2480687801694aeb8b7494f7b1ca6a24bd8923ae61b9d76bfcfff194d7d"}, "url": "/docs/compare/?release=9.1.5#9.1.5-4df4c0850b2d0206", "source_url": "/docs/release/9.1.5/#id-1.11.6.24.5"}]}, {"id": "9.0.9-93756539a5c962ac", "cves": [], "html": "<p>修复新创建或重置序列的崩溃安全缺陷（Tom Lane）</p>\n<p>如果在新创建或重置的序列上执行了 <code>ALTER SEQUENCE</code>，然后恰好对它调用了一次 <code>nextval()</code>，随后服务器崩溃，WAL 重放会把序列恢复到看起来没有执行过 <code>nextval()</code> 的状态，从而使下一个 <code>nextval()</code> 调用再次返回第一个序列值。这种情况尤其可能出现在 <code>serial</code> 列上，因为创建 serial 列的序列包含一个 <code>ALTER SEQUENCE OWNED BY</code> 步骤。</p>", "text": "修复新创建或重置序列的崩溃安全缺陷（Tom Lane） 如果在新创建或重置的序列上执行了 ALTER SEQUENCE，然后恰好对它调用了一次 nextval()，随后服务器崩溃，WAL 重放会把序列恢复到看起来没有执行过 nextval() 的状态，从而使下一个 nextval() 调用再次返回第一个序列值。这种情况尤其可能出现在 serial 列上，因为创建 serial 列的序列包含一个 ALTER SEQUENCE OWNED BY 步骤。", "title": "修复新创建或重置序列的崩溃安全缺陷", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.9/#id-1.11.6.19.5", "source_hash": "0c9d564d3a42581cfe9aa32142c3d26fe9447b357092bd462a6ef14545d0b128", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix crash-safety bug with newly-created-or-reset sequences (Tom Lane) If ALTER SEQUENCE was executed on a freshly created or reset sequence, and then precisely one nextval() call was made on it, and then the server crashed, WAL replay would restore the sequence to a state in which it appeared that no nextval() had been done, thus allowing the first sequence value to be returned again by the next nextval() call. In particular this could manifest for serial columns, since creation of a serial column's sequence includes an ALTER SEQUENCE OWNED BY step.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.9/changes/004", "db_id": "4589a7aaec7c7e391d33db5142a4ef24", "patch_ids": [], "statement_hash": "6e14802e83a411f58c11ff7310b4f0c6b9e38de1debf6276765865b3d5801efa", "relations": [{"rule": 2, "type": "equivalent", "target": "cb046f0275d94be401cc40dfc75c9b22", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6e14802e83a411f58c11ff7310b4f0c6b9e38de1debf6276765865b3d5801efa"}}], "version": "9.0.9", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "cb046f0275d94be401cc40dfc75c9b22", "kind": "equivalent", "version": "9.1.5", "label": "9.1.5", "title": "修复新创建或重置序列的崩溃安全缺陷", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6e14802e83a411f58c11ff7310b4f0c6b9e38de1debf6276765865b3d5801efa"}, "url": "/docs/compare/?release=9.1.5#9.1.5-93756539a5c962ac", "source_url": "/docs/release/9.1.5/#id-1.11.6.24.5"}]}, {"id": "9.0.9-6e29409d8a139529", "cves": [], "html": "<p>修复 <code>txid_current()</code>，使其在非热备下报告正确的纪元（epoch）（Heikki Linnakangas）</p>\n<p>这修复了上一个小版本引入的退化。</p>", "text": "修复 txid_current()，使其在非热备下报告正确的纪元（epoch）（Heikki Linnakangas） 这修复了上一个小版本引入的退化。", "title": "修复 txid_current()，使其在非热备下报告正确的纪元（epoch）", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.9/#id-1.11.6.19.5", "source_hash": "76cdacdf5c3f091e33d76201bd37bf4870512fb9765f59654f6aa4aa219ba678", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix txid_current() to report the correct epoch when not in hot standby (Heikki Linnakangas) This fixes a regression introduced in the previous minor release.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.9/changes/005", "db_id": "9041f612b14ba62621d965c6e2f631a2", "patch_ids": [], "statement_hash": "36cabc451de4fa9e1bfcc97cc24fd968191aa13fcd67c5bab1dd18059e9ad3bf", "relations": [{"rule": 2, "type": "equivalent", "target": "a067552706629f50b1c9e991d724f6b1", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "36cabc451de4fa9e1bfcc97cc24fd968191aa13fcd67c5bab1dd18059e9ad3bf"}}], "version": "9.0.9", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "a067552706629f50b1c9e991d724f6b1", "kind": "equivalent", "version": "9.1.5", "label": "9.1.5", "title": "修复 txid_current()，使其在非热备下报告正确的纪元（epoch）", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "36cabc451de4fa9e1bfcc97cc24fd968191aa13fcd67c5bab1dd18059e9ad3bf"}, "url": "/docs/compare/?release=9.1.5#9.1.5-6e29409d8a139529", "source_url": "/docs/release/9.1.5/#id-1.11.6.24.5"}]}, {"id": "9.0.9-b1024964475d5c38", "cves": [], "html": "<p>修复主库事务有大量子事务时热备启动的缺陷（Andres Freund）</p>\n<p>这一失误导致报告为 <span>“<span>out-of-order XID insertion in KnownAssignedXids</span>”</span> 的失败。</p>", "text": "修复主库事务有大量子事务时热备启动的缺陷（Andres Freund） 这一失误导致报告为 “out-of-order XID insertion in KnownAssignedXids” 的失败。", "title": "修复主库事务有大量子事务时热备启动的缺陷", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.9/#id-1.11.6.19.5", "source_hash": "670702f64ada41d7bc53e87ded43a60a8c4ef243b26c9f11f5ac73bbee0c2e70", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix bug in startup of Hot Standby when a master transaction has many subtransactions (Andres Freund) This mistake led to failures reported as out-of-order XID insertion in KnownAssignedXids.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.9/changes/006", "db_id": "80bcd213614b69d13571b755eaeb9ab9", "patch_ids": [], "statement_hash": "328c792f75844b3385c7fab8976ad00ebdf7ded73058b0124e6a6c34be38ddde", "relations": [{"rule": 2, "type": "equivalent", "target": "d74cd45279f701529aa637d37cd4d856", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "328c792f75844b3385c7fab8976ad00ebdf7ded73058b0124e6a6c34be38ddde"}}], "version": "9.0.9", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "d74cd45279f701529aa637d37cd4d856", "kind": "equivalent", "version": "9.1.5", "label": "9.1.5", "title": "修复主库事务有大量子事务时热备启动的缺陷", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "328c792f75844b3385c7fab8976ad00ebdf7ded73058b0124e6a6c34be38ddde"}, "url": "/docs/compare/?release=9.1.5#9.1.5-b1024964475d5c38", "source_url": "/docs/release/9.1.5/#id-1.11.6.24.5"}]}, {"id": "9.0.9-e11d47416dcf56cd", "cves": [], "html": "<p>确保 <code>pg_start_backup()</code> 之后对 <code>backup_label</code> 文件执行 fsync（Dave Kerr）</p>", "text": "确保 pg_start_backup() 之后对 backup_label 文件执行 fsync（Dave Kerr）", "title": "确保 pg_start_backup() 之后对 backup_label 文件执行 fsync", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.9/#id-1.11.6.19.5", "source_hash": "34b812ba86d602b58d79286ac89386f3ecf3c02d870d30cd21d315c1497189e7", "section_path": ["变更"], "commit_groups": [], "identity_text": "Ensure the backup_label file is fsync'd after pg_start_backup() (Dave Kerr)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.9/changes/007", "db_id": "012fd0aa470a4c7b91229a732ccb6a2f", "patch_ids": [], "statement_hash": "57441490bb924e29d31fb5c8020e544ecd25c8594dba69bc38344d1adfaa530c", "relations": [{"rule": 2, "type": "equivalent", "target": "48a9d35f9db305fa37dc33287d6b8957", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "57441490bb924e29d31fb5c8020e544ecd25c8594dba69bc38344d1adfaa530c"}}], "version": "9.0.9", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "48a9d35f9db305fa37dc33287d6b8957", "kind": "equivalent", "version": "9.1.5", "label": "9.1.5", "title": "确保 pg_start_backup() 之后对 backup_label 文件执行 fsync", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "57441490bb924e29d31fb5c8020e544ecd25c8594dba69bc38344d1adfaa530c"}, "url": "/docs/compare/?release=9.1.5#9.1.5-e11d47416dcf56cd", "source_url": "/docs/release/9.1.5/#id-1.11.6.24.5"}]}, {"id": "9.0.9-e7772098aee6da6b", "cves": [], "html": "<p>修复 walsender 进程中的超时处理（Tom Lane）</p>\n<p>WAL 发送端后台进程疏于建立 <span>SIGALRM</span> 处理程序，这意味着在某些应发生超时的极端情况下它们会永远等待。</p>", "text": "修复 walsender 进程中的超时处理（Tom Lane） WAL 发送端后台进程疏于建立 SIGALRM 处理程序，这意味着在某些应发生超时的极端情况下它们会永远等待。", "title": "修复 walsender 进程中的超时处理", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.9/#id-1.11.6.19.5", "source_hash": "b33ca10e6ae8f6bb58111050c8ef4cb3f888f0a8c068cd2c9444e0854b113de1", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix timeout handling in walsender processes (Tom Lane) WAL sender background processes neglected to establish a SIGALRM handler, meaning they would wait forever in some corner cases where a timeout ought to happen.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.9/changes/008", "db_id": "2023e5354e16641f20d57c327ece2f71", "patch_ids": [], "statement_hash": "1c415476b1fad6885e0d64939e780f43b405489c8ba3711e85f9e0bec1ebb5ce", "relations": [{"rule": 2, "type": "equivalent", "target": "b5635c171f4a52e8f6126a150f3dce44", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1c415476b1fad6885e0d64939e780f43b405489c8ba3711e85f9e0bec1ebb5ce"}}], "version": "9.0.9", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "b5635c171f4a52e8f6126a150f3dce44", "kind": "equivalent", "version": "9.1.5", "label": "9.1.5", "title": "修复 walsender 进程中的超时处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1c415476b1fad6885e0d64939e780f43b405489c8ba3711e85f9e0bec1ebb5ce"}, "url": "/docs/compare/?release=9.1.5#9.1.5-e7772098aee6da6b", "source_url": "/docs/release/9.1.5/#id-1.11.6.24.5"}]}, {"id": "9.0.9-35ce3c86be5945c1", "cves": [], "html": "<p>回移植压缩 fsync 请求队列的 9.1 改进（Robert Haas）</p>\n<p>这改进了检查点期间的性能。9.1 的变更已经过足够的实际测试，看起来可以安全回移植。</p>", "text": "回移植压缩 fsync 请求队列的 9.1 改进（Robert Haas） 这改进了检查点期间的性能。9.1 的变更已经过足够的实际测试，看起来可以安全回移植。", "title": "回移植压缩 fsync 请求队列的 9.1 改进", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.9/#id-1.11.6.19.5", "source_hash": "e0c588137e071135eae04967274983516ac4fb77f599823b900434804894fd8a", "section_path": ["变更"], "commit_groups": [], "identity_text": "Back-patch 9.1 improvement to compress the fsync request queue (Robert Haas) This improves performance during checkpoints. The 9.1 change has now seen enough field testing to seem safe to back-patch.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.9/changes/009", "db_id": "fe50abc813f8460e858235da3371ad25", "patch_ids": [], "statement_hash": "9a8aa52a3fe78daa834a26c4c0f96a10c2f01bfc17e7d98902936ca75a507990", "relations": [], "version": "9.0.9", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.9-dc2a0cc84cf2f56b", "cves": [], "html": "<p>修复 <code>LISTEN</code>/<code>NOTIFY</code>，使其更好地应对 I/O 问题（例如磁盘空间耗尽）（Tom Lane）</p>\n<p>写入失败之后，所有后续发送更多 <code>NOTIFY</code> 消息的尝试都会失败，并显示诸如 <span>“<span>Could not read from file \"pg_notify/<em><code>nnnn</code></em>\" at offset <em><code>nnnnn</code></em>: Success</span>”</span> 的消息。</p>", "text": "修复 LISTEN/NOTIFY，使其更好地应对 I/O 问题（例如磁盘空间耗尽）（Tom Lane） 写入失败之后，所有后续发送更多 NOTIFY 消息的尝试都会失败，并显示诸如 “Could not read from file \"pg_notify/nnnn\" at offset nnnnn: Success” 的消息。", "title": "修复 LISTEN/NOTIFY，使其更好地应对 I/O 问题（例如磁盘空间耗尽）", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.9/#id-1.11.6.19.5", "source_hash": "9aed13cd301571f58956bf797589bdf41a56438bfe537b1256fe6d766d35888b", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix LISTEN/NOTIFY to cope better with I/O problems, such as out of disk space (Tom Lane) After a write failure, all subsequent attempts to send more NOTIFY messages would fail with messages like Could not read from file \"pg_notify/nnnn\" at offset nnnnn: Success.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.9/changes/010", "db_id": "3158a61fbdea6a04314ac47c9bf7f620", "patch_ids": [], "statement_hash": "2d2020798c1edede37e5f28fe629fe1d824aedda9d228b85e75a95e4c22ddfe5", "relations": [{"rule": 2, "type": "equivalent", "target": "5f21a6ef115d600e1e7ba8cc06b62d8f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2d2020798c1edede37e5f28fe629fe1d824aedda9d228b85e75a95e4c22ddfe5"}}], "version": "9.0.9", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "5f21a6ef115d600e1e7ba8cc06b62d8f", "kind": "equivalent", "version": "9.1.5", "label": "9.1.5", "title": "修复 LISTEN/NOTIFY，使其更好地应对 I/O 问题（例如磁盘空间耗尽）", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2d2020798c1edede37e5f28fe629fe1d824aedda9d228b85e75a95e4c22ddfe5"}, "url": "/docs/compare/?release=9.1.5#9.1.5-dc2a0cc84cf2f56b", "source_url": "/docs/release/9.1.5/#id-1.11.6.24.5"}]}, {"id": "9.0.9-a102fcf87dd6d77b", "cves": [], "html": "<p>只允许被直接阻塞的进程自动取消自动清理（Tom Lane）</p>\n<p>原始编码在某些情况下可能允许不一致的行为；特别是自动清理可能在不足 <code>deadlock_timeout</code> 宽限期之后就被取消。</p>", "text": "只允许被直接阻塞的进程自动取消自动清理（Tom Lane） 原始编码在某些情况下可能允许不一致的行为；特别是自动清理可能在不足 deadlock_timeout 宽限期之后就被取消。", "title": "只允许被直接阻塞的进程自动取消自动清理", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.9/#id-1.11.6.19.5", "source_hash": "404e89d8455e25494afb6c3e13169cba227dfa2025350fe23aff4ca1dc142a0e", "section_path": ["变更"], "commit_groups": [], "identity_text": "Only allow autovacuum to be auto-canceled by a directly blocked process (Tom Lane) The original coding could allow inconsistent behavior in some cases; in particular, an autovacuum could get canceled after less than deadlock_timeout grace period.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.9/changes/011", "db_id": "103446aac3e3f017add1249c1e455767", "patch_ids": [], "statement_hash": "6e1539dc1dba826d8f8080f236fcdefe4d67d6d75b7e2107a8088d4915efa718", "relations": [{"rule": 2, "type": "equivalent", "target": "c8c37fa6986136f15a3210d8d923724c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6e1539dc1dba826d8f8080f236fcdefe4d67d6d75b7e2107a8088d4915efa718"}}], "version": "9.0.9", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "c8c37fa6986136f15a3210d8d923724c", "kind": "equivalent", "version": "9.1.5", "label": "9.1.5", "title": "只允许被直接阻塞的进程自动取消自动清理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6e1539dc1dba826d8f8080f236fcdefe4d67d6d75b7e2107a8088d4915efa718"}, "url": "/docs/compare/?release=9.1.5#9.1.5-a102fcf87dd6d77b", "source_url": "/docs/release/9.1.5/#id-1.11.6.24.5"}]}, {"id": "9.0.9-d6848965f05bea10", "cves": [], "html": "<p>改进自动清理取消的日志记录（Robert Haas）</p>", "text": "改进自动清理取消的日志记录（Robert Haas）", "title": "改进自动清理取消的日志记录", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.9/#id-1.11.6.19.5", "source_hash": "6e597de1ea2ef8a8fe3bb6373b26a8eca0add4add863aadabe30886dbeed83fa", "section_path": ["变更"], "commit_groups": [], "identity_text": "Improve logging of autovacuum cancels (Robert Haas)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.9/changes/012", "db_id": "b6ce52c9d02da958e2e4c990d4e85c30", "patch_ids": [], "statement_hash": "f0a7a1e4f1d2143bb0d016bbe28b789cc8c48b97b31ad90e3e24f9bb4e70affd", "relations": [{"rule": 2, "type": "equivalent", "target": "fcca657b594088becba32ddbc6599af7", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f0a7a1e4f1d2143bb0d016bbe28b789cc8c48b97b31ad90e3e24f9bb4e70affd"}}], "version": "9.0.9", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "fcca657b594088becba32ddbc6599af7", "kind": "equivalent", "version": "9.1.5", "label": "9.1.5", "title": "改进自动清理取消的日志记录", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f0a7a1e4f1d2143bb0d016bbe28b789cc8c48b97b31ad90e3e24f9bb4e70affd"}, "url": "/docs/compare/?release=9.1.5#9.1.5-d6848965f05bea10", "source_url": "/docs/release/9.1.5/#id-1.11.6.24.5"}]}, {"id": "9.0.9-761f57bcfc82f22c", "cves": [], "html": "<p>修复日志收集器，使 <code>log_truncate_on_rotation</code> 在服务器启动后的第一次日志轮转期间就能工作（Tom Lane）</p>", "text": "修复日志收集器，使 log_truncate_on_rotation 在服务器启动后的第一次日志轮转期间就能工作（Tom Lane）", "title": "修复日志收集器，使 log_truncate_on_rotation 在服务器启动后的第一次日志轮转期间就能工作", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.9/#id-1.11.6.19.5", "source_hash": "176f36a3bd115c5866897aa8192c7de1e9474f7fe58b4c1f6e65ba56bfebbedf", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix log collector so that log_truncate_on_rotation works during the very first log rotation after server start (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.9/changes/013", "db_id": "95da9af1253fc1ff9b3608f5f1118524", "patch_ids": [], "statement_hash": "4b1e5979dbb78cbb7f0e96362c68ffbeb53cbe186b4032bc6d6b7a8178cc9950", "relations": [{"rule": 2, "type": "equivalent", "target": "2e8994b7650c6b40c025f6fc4431e2eb", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4b1e5979dbb78cbb7f0e96362c68ffbeb53cbe186b4032bc6d6b7a8178cc9950"}}], "version": "9.0.9", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "2e8994b7650c6b40c025f6fc4431e2eb", "kind": "equivalent", "version": "9.1.5", "label": "9.1.5", "title": "修复日志收集器，使 log_truncate_on_rotation 在服务器启动后的第一次日志轮转期间就能工作", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4b1e5979dbb78cbb7f0e96362c68ffbeb53cbe186b4032bc6d6b7a8178cc9950"}, "url": "/docs/compare/?release=9.1.5#9.1.5-761f57bcfc82f22c", "source_url": "/docs/release/9.1.5/#id-1.11.6.24.5"}]}, {"id": "9.0.9-a74dfdc74b9b6fce", "cves": [], "html": "<p>修复附加到嵌套集合操作（<code>UNION</code>/<code>INTERSECT</code>/<code>EXCEPT</code>）上的 <code>WITH</code>（Tom Lane）</p>", "text": "修复附加到嵌套集合操作（UNION/INTERSECT/EXCEPT）上的 WITH（Tom Lane）", "title": "修复附加到嵌套集合操作（UNION/INTERSECT/EXCEPT）上的 WITH", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.9/#id-1.11.6.19.5", "source_hash": "b9b4a64a60c3e3d47029f174be2033f9f2a92582a350746a9d12415518ab460c", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix WITH attached to a nested set operation (UNION/INTERSECT/EXCEPT) (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.9/changes/014", "db_id": "4877db670c9074b96cbae24d05e366c8", "patch_ids": [], "statement_hash": "09d03806a9c5fbed69e9547ebb836ecdcd0622c3367925257a167ba820d33b03", "relations": [{"rule": 2, "type": "equivalent", "target": "1e782338af3c3d32b9f7a47ca4e5a376", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "09d03806a9c5fbed69e9547ebb836ecdcd0622c3367925257a167ba820d33b03"}}], "version": "9.0.9", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "1e782338af3c3d32b9f7a47ca4e5a376", "kind": "equivalent", "version": "9.1.5", "label": "9.1.5", "title": "修复附加到嵌套集合操作（UNION/INTERSECT/EXCEPT）上的 WITH", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "09d03806a9c5fbed69e9547ebb836ecdcd0622c3367925257a167ba820d33b03"}, "url": "/docs/compare/?release=9.1.5#9.1.5-a74dfdc74b9b6fce", "source_url": "/docs/release/9.1.5/#id-1.11.6.24.5"}]}, {"id": "9.0.9-5ede50f89754fae0", "cves": [], "html": "<p>确保对子查询的整行引用不包含任何多余的 <code>GROUP BY</code> 或 <code>ORDER BY</code> 列（Tom Lane）</p>", "text": "确保对子查询的整行引用不包含任何多余的 GROUP BY 或 ORDER BY 列（Tom Lane）", "title": "确保对子查询的整行引用不包含任何多余的 GROUP BY 或 ORDER BY 列", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.9/#id-1.11.6.19.5", "source_hash": "f8a8c23c7c58fef85057be84d3794dc4c594188e4a7d0410fefa7b260f48d1f4", "section_path": ["变更"], "commit_groups": [], "identity_text": "Ensure that a whole-row reference to a subquery doesn't include any extra GROUP BY or ORDER BY columns (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.9/changes/015", "db_id": "084e32d63dd0f51e2402832e8e54b800", "patch_ids": [], "statement_hash": "1c6c1bcb7872536f154baec2aefc7b530bae344cb4e47f50f69d12dea264ee7e", "relations": [{"rule": 2, "type": "equivalent", "target": "04efb7bc8ae944f6440c85f2ab909df0", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1c6c1bcb7872536f154baec2aefc7b530bae344cb4e47f50f69d12dea264ee7e"}}], "version": "9.0.9", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "04efb7bc8ae944f6440c85f2ab909df0", "kind": "equivalent", "version": "9.1.5", "label": "9.1.5", "title": "确保对子查询的整行引用不包含任何多余的 GROUP BY 或 ORDER BY 列", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1c6c1bcb7872536f154baec2aefc7b530bae344cb4e47f50f69d12dea264ee7e"}, "url": "/docs/compare/?release=9.1.5#9.1.5-5ede50f89754fae0", "source_url": "/docs/release/9.1.5/#id-1.11.6.24.5"}]}, {"id": "9.0.9-33d578c13f916c63", "cves": [], "html": "<p>禁止在 <code>CREATE TABLE</code> 期间复制 <code>CHECK</code> 约束和索引定义中的整行引用（Tom Lane）</p>\n<p>这种情况可能出现在带 <code>LIKE</code> 或 <code>INHERITS</code> 的 <code>CREATE TABLE</code> 中。被复制的整行变量被错误地标记为原表而不是新表的行类型。对 <code>LIKE</code> 拒绝这种情况似乎是合理的，因为行类型之后很可能分化。对 <code>INHERITS</code>，理想情况下应该允许它，并隐式强制转换为父表的行类型；但这需要的工作量超出了回移植的安全范围。</p>", "text": "禁止在 CREATE TABLE 期间复制 CHECK 约束和索引定义中的整行引用（Tom Lane） 这种情况可能出现在带 LIKE 或 INHERITS 的 CREATE TABLE 中。被复制的整行变量被错误地标记为原表而不是新表的行类型。对 LIKE 拒绝这种情况似乎是合理的，因为行类型之后很可能分化。对 INHERITS，理想情况下应该允许它，并隐式强制转换为父表的行类型；但这需要的工作量超出了回移植的安全范围。", "title": "禁止在 CREATE TABLE 期间复制 CHECK 约束和索引定义中的整行引用", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.9/#id-1.11.6.19.5", "source_hash": "9ae5291d6827bd39f49c4e62f764cef9998817dac0312b2a62318fedac7f2286", "section_path": ["变更"], "commit_groups": [], "identity_text": "Disallow copying whole-row references in CHECK constraints and index definitions during CREATE TABLE (Tom Lane) This situation can arise in CREATE TABLE with LIKE or INHERITS. The copied whole-row variable was incorrectly labeled with the row type of the original table not the new one. Rejecting the case seems reasonable for LIKE, since the row types might well diverge later. For INHERITS we should ideally allow it, with an implicit coercion to the parent table's row type; but that will require more work than seems safe to back-patch.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.9/changes/016", "db_id": "1b38b3af136078a8f8f3663ba18fae6a", "patch_ids": [], "statement_hash": "760c794d9ebc06dac889c171a706fec128d4fe6a44721becf2e740e55539ef5f", "relations": [{"rule": 2, "type": "equivalent", "target": "1d48425a12e4c18b7735438ddaf2be07", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "760c794d9ebc06dac889c171a706fec128d4fe6a44721becf2e740e55539ef5f"}}], "version": "9.0.9", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "1d48425a12e4c18b7735438ddaf2be07", "kind": "equivalent", "version": "9.1.5", "label": "9.1.5", "title": "禁止在 CREATE TABLE 期间复制 CHECK 约束和索引定义中的整行引用", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "760c794d9ebc06dac889c171a706fec128d4fe6a44721becf2e740e55539ef5f"}, "url": "/docs/compare/?release=9.1.5#9.1.5-33d578c13f916c63", "source_url": "/docs/release/9.1.5/#id-1.11.6.24.5"}]}, {"id": "9.0.9-1a080ecb5e725df1", "cves": [], "html": "<p>修复 <code>ARRAY(SELECT ...)</code> 子查询中的内存泄漏（Heikki Linnakangas、Tom Lane）</p>", "text": "修复 ARRAY(SELECT ...) 子查询中的内存泄漏（Heikki Linnakangas、Tom Lane）", "title": "修复 ARRAY(SELECT ...) 子查询中的内存泄漏", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.9/#id-1.11.6.19.5", "source_hash": "fe0194bf066c7b2b59cc7ade1ecded6768a7ae83dedbf0bee1e01d4dab5cfacf", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix memory leak in ARRAY(SELECT ...) subqueries (Heikki Linnakangas, Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.9/changes/017", "db_id": "8688b0cd63e3f818379de112cad2fe14", "patch_ids": [], "statement_hash": "b0d6f65f080ca13202d5e83941c4f07444966f866265bcc67f221d5751bfaf80", "relations": [{"rule": 2, "type": "equivalent", "target": "bc012ad4f39a0f0c66d998f6cfb9924a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b0d6f65f080ca13202d5e83941c4f07444966f866265bcc67f221d5751bfaf80"}}], "version": "9.0.9", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "bc012ad4f39a0f0c66d998f6cfb9924a", "kind": "equivalent", "version": "9.1.5", "label": "9.1.5", "title": "修复 ARRAY(SELECT ...) 子查询中的内存泄漏", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b0d6f65f080ca13202d5e83941c4f07444966f866265bcc67f221d5751bfaf80"}, "url": "/docs/compare/?release=9.1.5#9.1.5-1a080ecb5e725df1", "source_url": "/docs/release/9.1.5/#id-1.11.6.24.5"}]}, {"id": "9.0.9-ca2093f260838874", "cves": [], "html": "<p>修复从正则表达式中提取公共前缀的问题（Tom Lane）</p>\n<p>代码可能被带量词的带括号子表达式（例如 <code>^(foo)?bar</code>）混淆。这会导致对此类模式搜索的索引优化不正确。</p>", "text": "修复从正则表达式中提取公共前缀的问题（Tom Lane） 代码可能被带量词的带括号子表达式（例如 ^(foo)?bar）混淆。这会导致对此类模式搜索的索引优化不正确。", "title": "修复从正则表达式中提取公共前缀的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.9/#id-1.11.6.19.5", "source_hash": "91aa9d89dfff5af83b926ccf0d2a1909dd6f67d77dce4e49c9c58f3c4cb52e76", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix extraction of common prefixes from regular expressions (Tom Lane) The code could get confused by quantified parenthesized subexpressions, such as ^(foo)?bar. This would lead to incorrect index optimization of searches for such patterns.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.9/changes/018", "db_id": "4cf52b135c67668937aef0b58593e73f", "patch_ids": [], "statement_hash": "0c5726403215cf31b228491b9a70b7b0ef786d8a7f1c8e4af8ba23116db3eaf0", "relations": [{"rule": 2, "type": "equivalent", "target": "f36203443c0f711654b57a1754b54226", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0c5726403215cf31b228491b9a70b7b0ef786d8a7f1c8e4af8ba23116db3eaf0"}}], "version": "9.0.9", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "f36203443c0f711654b57a1754b54226", "kind": "equivalent", "version": "9.1.5", "label": "9.1.5", "title": "修复从正则表达式中提取公共前缀的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0c5726403215cf31b228491b9a70b7b0ef786d8a7f1c8e4af8ba23116db3eaf0"}, "url": "/docs/compare/?release=9.1.5#9.1.5-ca2093f260838874", "source_url": "/docs/release/9.1.5/#id-1.11.6.24.5"}]}, {"id": "9.0.9-b427a1bafaace4ef", "cves": [], "html": "<p>修复解析 <code>interval</code> 常量中带符号的 <em><code>hh</code></em><code>:</code><em><code>mm</code></em> 和 <em><code>hh</code></em><code>:</code><em><code>mm</code></em><code>:</code><em><code>ss</code></em> 字段的缺陷（Amit Kapila、Tom Lane）</p>", "text": "修复解析 interval 常量中带符号的 hh:mm 和 hh:mm:ss 字段的缺陷（Amit Kapila、Tom Lane）", "title": "修复解析 interval 常量中带符号的 hh:mm 和 hh:mm:ss 字段的缺陷", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.9/#id-1.11.6.19.5", "source_hash": "de3a806c880eaa8ea44e49fcc32f0ac887c29f42b41bbe510e754eba924e3a30", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix bugs with parsing signed hh:mm and hh:mm:ss fields in interval constants (Amit Kapila, Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.9/changes/019", "db_id": "bfa675853a121630a60adeb448c34056", "patch_ids": [], "statement_hash": "ebfa4fc3096bea13425e775272a3d504a945d295a14de8d7adb314bde5e53000", "relations": [{"rule": 2, "type": "equivalent", "target": "de4a1dd86dfe959c200ccee30e81d45a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ebfa4fc3096bea13425e775272a3d504a945d295a14de8d7adb314bde5e53000"}}], "version": "9.0.9", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "de4a1dd86dfe959c200ccee30e81d45a", "kind": "equivalent", "version": "9.1.5", "label": "9.1.5", "title": "修复解析 interval 常量中带符号的 hh:mm 和 hh:mm:ss 字段的缺陷", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ebfa4fc3096bea13425e775272a3d504a945d295a14de8d7adb314bde5e53000"}, "url": "/docs/compare/?release=9.1.5#9.1.5-b427a1bafaace4ef", "source_url": "/docs/release/9.1.5/#id-1.11.6.24.5"}]}, {"id": "9.0.9-5022bc6aeb89efa5", "cves": [], "html": "<p>在 PL/Python 中把 Python Unicode 字符串转换为服务器编码时，使用 Postgres 而不是 Python 的编码转换函数（Jan Urbanski）</p>\n<p>这避免了一些极端情况的问题，尤其是 Python 并不支持 Postgres 的所有编码。一个显著的功能变化是：如果服务器编码是 SQL_ASCII，你将得到该字符串的 UTF-8 表示；此前字符串中的任何非 ASCII 字符都会导致错误。</p>", "text": "在 PL/Python 中把 Python Unicode 字符串转换为服务器编码时，使用 Postgres 而不是 Python 的编码转换函数（Jan Urbanski） 这避免了一些极端情况的问题，尤其是 Python 并不支持 Postgres 的所有编码。一个显著的功能变化是：如果服务器编码是 SQL_ASCII，你将得到该字符串的 UTF-8 表示；此前字符串中的任何非 ASCII 字符都会导致错误。", "title": "在 PL/Python 中把 Python Unicode 字符串转换为服务器编码时，使用 Postgres 而不是 Python 的编码转换函数", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.9/#id-1.11.6.19.5", "source_hash": "f8a1873a8c5b059de10f9e021cf231ad49926729f56d6f867c03d047e2032b52", "section_path": ["变更"], "commit_groups": [], "identity_text": "Use Postgres' encoding conversion functions, not Python's, when converting a Python Unicode string to the server encoding in PL/Python (Jan Urbanski) This avoids some corner-case problems, notably that Python doesn't support all the encodings Postgres does. A notable functional change is that if the server encoding is SQL_ASCII, you will get the UTF-8 representation of the string; formerly, any non-ASCII characters in the string would result in an error.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.9/changes/020", "db_id": "6e3c410cefd90131da3b37322b3bbe5a", "patch_ids": [], "statement_hash": "8ceccafb05d6ac158c35a27524065fe41865bc2631064c70104865c5910b62db", "relations": [{"rule": 2, "type": "equivalent", "target": "080bec2ed777ebf87d524bfc43d7b08d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8ceccafb05d6ac158c35a27524065fe41865bc2631064c70104865c5910b62db"}}], "version": "9.0.9", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "080bec2ed777ebf87d524bfc43d7b08d", "kind": "equivalent", "version": "9.1.5", "label": "9.1.5", "title": "在 PL/Python 中把 Python Unicode 字符串转换为服务器编码时，使用 Postgres 而不是 Python 的编码转换函数", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8ceccafb05d6ac158c35a27524065fe41865bc2631064c70104865c5910b62db"}, "url": "/docs/compare/?release=9.1.5#9.1.5-5022bc6aeb89efa5", "source_url": "/docs/release/9.1.5/#id-1.11.6.24.5"}]}, {"id": "9.0.9-9ebcea96c345aae8", "cves": [], "html": "<p>修复 PL/Python 中 PostgreSQL 编码到 Python 编码的映射（Jan Urbanski）</p>", "text": "修复 PL/Python 中 PostgreSQL 编码到 Python 编码的映射（Jan Urbanski）", "title": "修复 PL/Python 中 PostgreSQL 编码到 Python 编码的映射", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.9/#id-1.11.6.19.5", "source_hash": "4d57cd52b5215efba928214ee8ff119883b8c030f048f6769d83477970600911", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix mapping of PostgreSQL encodings to Python encodings in PL/Python (Jan Urbanski)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.9/changes/021", "db_id": "e2e684e26dbec7497ecfa8c5b1db9dce", "patch_ids": [], "statement_hash": "984566dfa271b9b7ce8d0c32011370101ec8cbe789ec8245b87a383bc41a0c8b", "relations": [{"rule": 2, "type": "equivalent", "target": "362f6953d5e4e7330ca4d3113c432e3a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "984566dfa271b9b7ce8d0c32011370101ec8cbe789ec8245b87a383bc41a0c8b"}}], "version": "9.0.9", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "362f6953d5e4e7330ca4d3113c432e3a", "kind": "equivalent", "version": "9.1.5", "label": "9.1.5", "title": "修复 PL/Python 中 PostgreSQL 编码到 Python 编码的映射", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "984566dfa271b9b7ce8d0c32011370101ec8cbe789ec8245b87a383bc41a0c8b"}, "url": "/docs/compare/?release=9.1.5#9.1.5-9ebcea96c345aae8", "source_url": "/docs/release/9.1.5/#id-1.11.6.24.5"}]}, {"id": "9.0.9-490c6cd0accc655d", "cves": [], "html": "<p>修复 <code>contrib/xml2</code> 的 <code>xslt_process()</code> 中的错误报告（Tom Lane）</p>", "text": "修复 contrib/xml2 的 xslt_process() 中的错误报告（Tom Lane）", "title": "修复 contrib/xml2 的 xslt_process() 中的错误报告", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.9/#id-1.11.6.19.5", "source_hash": "e66e36f850107277e161186fc736e9527298817877163d338e200d265aaad648", "section_path": ["变更"], "commit_groups": [], "identity_text": "Report errors properly in contrib/xml2's xslt_process() (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.9/changes/022", "db_id": "9f413c585b61969835ca84bd1afb2a8c", "patch_ids": [], "statement_hash": "20d136cac7ffaba9cf395726b84ed40c596693a435f3ca4cbcc1b8d234adcea6", "relations": [{"rule": 2, "type": "equivalent", "target": "411222a3858a803e20ad822d6fe7650b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "20d136cac7ffaba9cf395726b84ed40c596693a435f3ca4cbcc1b8d234adcea6"}}], "version": "9.0.9", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "411222a3858a803e20ad822d6fe7650b", "kind": "equivalent", "version": "9.1.5", "label": "9.1.5", "title": "修复 contrib/xml2 的 xslt_process() 中的错误报告", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "20d136cac7ffaba9cf395726b84ed40c596693a435f3ca4cbcc1b8d234adcea6"}, "url": "/docs/compare/?release=9.1.5#9.1.5-490c6cd0accc655d", "source_url": "/docs/release/9.1.5/#id-1.11.6.24.5"}]}, {"id": "9.0.9-166d178e81b06f0b", "cves": [], "html": "<p>把时区数据文件更新为 <span>tzdata</span> 版本 2012e，以反映摩洛哥和托克劳的夏令时法规变更</p>", "text": "把时区数据文件更新为 tzdata 版本 2012e，以反映摩洛哥和托克劳的夏令时法规变更", "title": "把时区数据文件更新为 tzdata 版本 2012e，以反映摩洛哥和托克劳的夏令时法规变更", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.9/#id-1.11.6.19.5", "source_hash": "f5570407bce72d3d472401fd7367b1a6cd5fd2255ad3365d1b4024158f921227", "section_path": ["变更"], "commit_groups": [], "identity_text": "Update time zone data files to tzdata release 2012e for DST law changes in Morocco and Tokelau", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.9/changes/023", "db_id": "82cfac29d68a0457b1ed7275ed7063ca", "patch_ids": [], "statement_hash": "24e4fb24a20b5a0a02a7a687ec3fd980ed28ec71ed34d52fc874f8970a222b98", "relations": [{"rule": 2, "type": "equivalent", "target": "dedf0acf047dd2b04189342a4bde3417", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "24e4fb24a20b5a0a02a7a687ec3fd980ed28ec71ed34d52fc874f8970a222b98"}}], "version": "9.0.9", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "dedf0acf047dd2b04189342a4bde3417", "kind": "equivalent", "version": "9.1.5", "label": "9.1.5", "title": "把时区数据文件更新为 tzdata 版本 2012e，以反映摩洛哥和托克劳的夏令时法规变更", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "24e4fb24a20b5a0a02a7a687ec3fd980ed28ec71ed34d52fc874f8970a222b98"}, "url": "/docs/compare/?release=9.1.5#9.1.5-166d178e81b06f0b", "source_url": "/docs/release/9.1.5/#id-1.11.6.24.5"}]}]}, {"date": "2012-06-04", "build": "9.0.8", "major": "9.0", "minor": 8, "manual": "9.0", "status": "stable", "doc_git": "", "version": "9.0.8", "eol_date": "2015-10-08", "date_text": "2012-06-04", "supported": false, "manual_url": "/docs/9.0/release-9-0-8.html", "source_url": "/docs/release/9.0.8/", "entry_count": 27, "placeholder": false, "content_hash": "84dc39e4117bfcbc39211cf81fb642146eff82475be41e71aa8f75a6b89a586d", "manual_build": "9.0.23", "source_as_of": "", "changes_count": 27, "doc_loaded_at": "2026-09-26T02:56:48.570247", "migration_html": "<p>对于运行 9.0.X 的用户，不需要进行转储/恢复。</p>\n<p>不过，如果你是从早于 9.0.6 的版本升级，请参见<a href=\"/docs/9.0/release-9-0-6.html\" title=\"E.18. 版本 9.0.6\">第 E.18 节</a>。</p>", "compatibility_count": 0, "label": "9.0.8", "status_label": "历史版本", "eol": "2015-10-08", "age_days": 5231, "support_days": -4010, "entries": [{"id": "9.0.8-f7e027714cbe55a9", "cves": ["CVE-2012-2143"], "html": "<p>修复 <code>contrib/pgcrypto</code> 的 DES <code>crypt()</code> 函数中不正确的口令变换（Solar Designer）</p>\n<p>如果口令串包含字节值 <code>0x80</code>，口令的其余部分会被忽略，使口令比看起来弱得多。修复后，字符串的其余部分会被正确纳入 DES 哈希。因此，受此缺陷影响的任何已存储口令值将不再匹配，所以可能需要更新已存储的值。（CVE-2012-2143）</p>", "text": "修复 contrib/pgcrypto 的 DES crypt() 函数中不正确的口令变换（Solar Designer） 如果口令串包含字节值 0x80，口令的其余部分会被忽略，使口令比看起来弱得多。修复后，字符串的其余部分会被正确纳入 DES 哈希。因此，受此缺陷影响的任何已存储口令值将不再匹配，所以可能需要更新已存储的值。（CVE-2012-2143）", "title": "修复 contrib/pgcrypto 的 DES crypt() 函数中不正确的口令变换", "commits": [], "section": "变更", "category": "security", "source_url": "/docs/release/9.0.8/#id-1.11.6.20.5", "source_hash": "03a1260ee215d2a25cc1484b7103f4107390ddf678301f7bd1ceae282b0d55b1", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix incorrect password transformation in contrib/pgcrypto's DES crypt() function (Solar Designer) If a password string contained the byte value 0x80, the remainder of the password was ignored, causing the password to be much weaker than it appeared. With this fix, the rest of the string is properly included in the DES hash. Any stored password values that are affected by this bug will thus no longer match, so the stored values may need to be updated. (CVE-2012-2143)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.8/changes/001", "db_id": "cb5920a7729a661d027d04e87378653a", "patch_ids": [], "statement_hash": "0f947a81af48a2bd27b30000bab97b036e134d06ee4907612bcff56b4d16f7aa", "relations": [{"rule": 2, "type": "equivalent", "target": "d1c9aa8a6e42b789d6b12bf1c19ff48d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0f947a81af48a2bd27b30000bab97b036e134d06ee4907612bcff56b4d16f7aa"}}], "version": "9.0.8", "category_label": "安全相关", "also_in": [], "variants": [], "related_changes": [{"db_id": "d1c9aa8a6e42b789d6b12bf1c19ff48d", "kind": "equivalent", "version": "9.1.4", "label": "9.1.4", "title": "修复 contrib/pgcrypto 的 DES crypt() 函数中不正确的口令变换", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0f947a81af48a2bd27b30000bab97b036e134d06ee4907612bcff56b4d16f7aa"}, "url": "/docs/compare/?release=9.1.4#9.1.4-f7e027714cbe55a9", "source_url": "/docs/release/9.1.4/#id-1.11.6.25.5"}]}, {"id": "9.0.8-950752998fe1f2a1", "cves": ["CVE-2012-2655"], "html": "<p>忽略过程语言调用处理程序的 <code>SECURITY DEFINER</code> 和 <code>SET</code> 属性（Tom Lane）</p>\n<p>把这类属性应用于调用处理程序可能导致服务器崩溃。（CVE-2012-2655）</p>", "text": "忽略过程语言调用处理程序的 SECURITY DEFINER 和 SET 属性（Tom Lane） 把这类属性应用于调用处理程序可能导致服务器崩溃。（CVE-2012-2655）", "title": "忽略过程语言调用处理程序的 SECURITY DEFINER 和 SET 属性", "commits": [], "section": "变更", "category": "security", "source_url": "/docs/release/9.0.8/#id-1.11.6.20.5", "source_hash": "bbdb239a6841f1e9d3da8a3a37b3e91395b788f87fd1a80b91653ba2dd93352c", "section_path": ["变更"], "commit_groups": [], "identity_text": "Ignore SECURITY DEFINER and SET attributes for a procedural language's call handler (Tom Lane) Applying such attributes to a call handler could crash the server. (CVE-2012-2655)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.8/changes/002", "db_id": "2dc791f135e8a00bb8117ee8ba9bbf9f", "patch_ids": [], "statement_hash": "3a45f8c9f78d68b6bb81173d47eee8e0f3bfb011cdfceb55b611990b4bfde531", "relations": [{"rule": 2, "type": "equivalent", "target": "1e9aa9dadb7f705940e29fe92ef4e58c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3a45f8c9f78d68b6bb81173d47eee8e0f3bfb011cdfceb55b611990b4bfde531"}}], "version": "9.0.8", "category_label": "安全相关", "also_in": [], "variants": [], "related_changes": [{"db_id": "1e9aa9dadb7f705940e29fe92ef4e58c", "kind": "equivalent", "version": "9.1.4", "label": "9.1.4", "title": "忽略过程语言调用处理程序的 SECURITY DEFINER 和 SET 属性", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3a45f8c9f78d68b6bb81173d47eee8e0f3bfb011cdfceb55b611990b4bfde531"}, "url": "/docs/compare/?release=9.1.4#9.1.4-950752998fe1f2a1", "source_url": "/docs/release/9.1.4/#id-1.11.6.25.5"}]}, {"id": "9.0.8-c62fc7c46c9b6370", "cves": [], "html": "<p>允许 <code>timestamp</code> 输入中的数字时区偏移距 UTC 最多 16 小时（Tom Lane）</p>\n<p>一些历史时区的偏移超过此前 15 小时的限制。这可能导致转储的数据值在重载期间被拒绝。</p>", "text": "允许 timestamp 输入中的数字时区偏移距 UTC 最多 16 小时（Tom Lane） 一些历史时区的偏移超过此前 15 小时的限制。这可能导致转储的数据值在重载期间被拒绝。", "title": "允许 timestamp 输入中的数字时区偏移距 UTC 最多 16 小时", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.8/#id-1.11.6.20.5", "source_hash": "095455017b66c55da7ed039aa3f5560a3263adfea20dda6aa302de82de828030", "section_path": ["变更"], "commit_groups": [], "identity_text": "Allow numeric timezone offsets in timestamp input to be up to 16 hours away from UTC (Tom Lane) Some historical time zones have offsets larger than 15 hours, the previous limit. This could result in dumped data values being rejected during reload.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.8/changes/003", "db_id": "66dfcc585e0253d76efafa427b1cfacf", "patch_ids": [], "statement_hash": "c3e3ec0ac5c3d36697ec4d7790092641fb62939d3e45a1ab5fb07e9627be88e7", "relations": [{"rule": 2, "type": "equivalent", "target": "148a0e4a0398fc58c07421da3704ba28", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c3e3ec0ac5c3d36697ec4d7790092641fb62939d3e45a1ab5fb07e9627be88e7"}}], "version": "9.0.8", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "148a0e4a0398fc58c07421da3704ba28", "kind": "equivalent", "version": "9.1.4", "label": "9.1.4", "title": "允许 timestamp 输入中的数字时区偏移距 UTC 最多 16 小时", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c3e3ec0ac5c3d36697ec4d7790092641fb62939d3e45a1ab5fb07e9627be88e7"}, "url": "/docs/compare/?release=9.1.4#9.1.4-c62fc7c46c9b6370", "source_url": "/docs/release/9.1.4/#id-1.11.6.25.5"}]}, {"id": "9.0.8-8d118edb2ae197ca", "cves": [], "html": "<p>修复时间戳转换，使其在给定时间恰好是当前时区最后一次夏令时转换时间时能正确处理（Tom Lane）</p>\n<p>这一疏忽已存在很长时间，但此前未被注意到，因为大多数使用夏令时的时区被假定有无限的未来夏令时转换序列。</p>", "text": "修复时间戳转换，使其在给定时间恰好是当前时区最后一次夏令时转换时间时能正确处理（Tom Lane） 这一疏忽已存在很长时间，但此前未被注意到，因为大多数使用夏令时的时区被假定有无限的未来夏令时转换序列。", "title": "修复时间戳转换，使其在给定时间恰好是当前时区最后一次夏令时转换时间时能正确处理", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.8/#id-1.11.6.20.5", "source_hash": "dcb250ef64a23c07160dcef95f88732260b4bea6fb201bd5fc62375f81319c48", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix timestamp conversion to cope when the given time is exactly the last DST transition time for the current timezone (Tom Lane) This oversight has been there a long time, but was not noticed previously because most DST-using zones are presumed to have an indefinite sequence of future DST transitions.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.8/changes/004", "db_id": "adbae31d5c047fe31754c449e1bbaa24", "patch_ids": [], "statement_hash": "83fe48e3588100d31ea25ded9b792e4acf012f89a6827c2e26ad123c24092655", "relations": [{"rule": 2, "type": "equivalent", "target": "dba677f0792ea4293b27390098dc3d6d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "83fe48e3588100d31ea25ded9b792e4acf012f89a6827c2e26ad123c24092655"}}], "version": "9.0.8", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "dba677f0792ea4293b27390098dc3d6d", "kind": "equivalent", "version": "9.1.4", "label": "9.1.4", "title": "修复时间戳转换，使其在给定时间恰好是当前时区最后一次夏令时转换时间时能正确处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "83fe48e3588100d31ea25ded9b792e4acf012f89a6827c2e26ad123c24092655"}, "url": "/docs/compare/?release=9.1.4#9.1.4-8d118edb2ae197ca", "source_url": "/docs/release/9.1.4/#id-1.11.6.25.5"}]}, {"id": "9.0.8-cb1403d26eab4c62", "cves": [], "html": "<p>修复 <code>text</code> 到 <code>name</code> 以及 <code>char</code> 到 <code>name</code> 的转换，使其在多字节编码下正确执行字符串截断（Karl Schnaitter）</p>", "text": "修复 text 到 name 以及 char 到 name 的转换，使其在多字节编码下正确执行字符串截断（Karl Schnaitter）", "title": "修复 text 到 name 以及 char 到 name 的转换，使其在多字节编码下正确执行字符串截断", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.8/#id-1.11.6.20.5", "source_hash": "b238c8128f334e29dd27f26a155f4798409dd546ad6a8b2118ce60dec4ea1779", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix text to name and char to name casts to perform string truncation correctly in multibyte encodings (Karl Schnaitter)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.8/changes/005", "db_id": "b62ecf087122590c91da50302d70e3ff", "patch_ids": [], "statement_hash": "2c91579c14e0421cc4befc73e67c9f3a6bdee231311a8a3f88da3cea2f6eaa05", "relations": [{"rule": 2, "type": "equivalent", "target": "d2cebd1f21edbebaa93a2a85740498f1", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2c91579c14e0421cc4befc73e67c9f3a6bdee231311a8a3f88da3cea2f6eaa05"}}], "version": "9.0.8", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "d2cebd1f21edbebaa93a2a85740498f1", "kind": "equivalent", "version": "9.1.4", "label": "9.1.4", "title": "修复 text 到 name 以及 char 到 name 的转换，使其在多字节编码下正确执行字符串截断", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2c91579c14e0421cc4befc73e67c9f3a6bdee231311a8a3f88da3cea2f6eaa05"}, "url": "/docs/compare/?release=9.1.4#9.1.4-cb1403d26eab4c62", "source_url": "/docs/release/9.1.4/#id-1.11.6.25.5"}]}, {"id": "9.0.8-5a31d7980364b87c", "cves": [], "html": "<p>修复 <code>to_tsquery()</code> 中的内存复制缺陷（Heikki Linnakangas）</p>", "text": "修复 to_tsquery() 中的内存复制缺陷（Heikki Linnakangas）", "title": "修复 to_tsquery() 中的内存复制缺陷", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.8/#id-1.11.6.20.5", "source_hash": "88d94d6ef8e5b743952e58e6e2f93bb4574b553085c6bc89ed71c0e9e1b0413d", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix memory copying bug in to_tsquery() (Heikki Linnakangas)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.8/changes/006", "db_id": "c69a6087c68a06d664f2f8f71e09fb6e", "patch_ids": [], "statement_hash": "17052e5fa0cc283e7f8c8c7f3b11ae8239d038ed05d86b422f744fa3e28545f4", "relations": [{"rule": 2, "type": "equivalent", "target": "246ee9f97ad753e16c3afac6fdea659c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "17052e5fa0cc283e7f8c8c7f3b11ae8239d038ed05d86b422f744fa3e28545f4"}}], "version": "9.0.8", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "246ee9f97ad753e16c3afac6fdea659c", "kind": "equivalent", "version": "9.1.4", "label": "9.1.4", "title": "修复 to_tsquery() 中的内存复制缺陷", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "17052e5fa0cc283e7f8c8c7f3b11ae8239d038ed05d86b422f744fa3e28545f4"}, "url": "/docs/compare/?release=9.1.4#9.1.4-5a31d7980364b87c", "source_url": "/docs/release/9.1.4/#id-1.11.6.25.5"}]}, {"id": "9.0.8-360cb51d2a1fd171", "cves": [], "html": "<p>确保 <code>txid_current()</code> 在热备中执行时报告正确的纪元（epoch）（Simon Riggs）</p>", "text": "确保 txid_current() 在热备中执行时报告正确的纪元（epoch）（Simon Riggs）", "title": "确保 txid_current() 在热备中执行时报告正确的纪元（epoch）", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.8/#id-1.11.6.20.5", "source_hash": "b0ccb6472cbc75c153b6da657f721258b1d7c69f33eb187eca5ff4774d793988", "section_path": ["变更"], "commit_groups": [], "identity_text": "Ensure txid_current() reports the correct epoch when executed in hot standby (Simon Riggs)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.8/changes/007", "db_id": "558735af561463755186750792b27395", "patch_ids": [], "statement_hash": "6ff384176800c990eead1448541e563e2034b2d035497e65e5f33c45cff13118", "relations": [{"rule": 2, "type": "equivalent", "target": "2c0dec606905b65df86f3696314a0f28", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6ff384176800c990eead1448541e563e2034b2d035497e65e5f33c45cff13118"}}], "version": "9.0.8", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "2c0dec606905b65df86f3696314a0f28", "kind": "equivalent", "version": "9.1.4", "label": "9.1.4", "title": "确保 txid_current() 在热备中执行时报告正确的纪元（epoch）", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6ff384176800c990eead1448541e563e2034b2d035497e65e5f33c45cff13118"}, "url": "/docs/compare/?release=9.1.4#9.1.4-360cb51d2a1fd171", "source_url": "/docs/release/9.1.4/#id-1.11.6.25.5"}]}, {"id": "9.0.8-6c756bffcdb78f66", "cves": [], "html": "<p>修复规划器对子查询内外层 PlaceHolderVar 的处理（Tom Lane）</p>\n<p>该缺陷涉及引用来自外层查询外连接可空侧变量的子 SELECT。在 9.1 中，受此缺陷影响的查询会报 <span>“<span>ERROR: Upper-level PlaceHolderVar found where not expected</span>”</span> 失败。但在 9.0 和 8.4 中，你会静默地得到可能错误的答案，因为传入子查询的值不会在该为空时变为空。</p>", "text": "修复规划器对子查询内外层 PlaceHolderVar 的处理（Tom Lane） 该缺陷涉及引用来自外层查询外连接可空侧变量的子 SELECT。在 9.1 中，受此缺陷影响的查询会报 “ERROR: Upper-level PlaceHolderVar found where not expected” 失败。但在 9.0 和 8.4 中，你会静默地得到可能错误的答案，因为传入子查询的值不会在该为空时变为空。", "title": "修复规划器对子查询内外层 PlaceHolderVar 的处理", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.8/#id-1.11.6.20.5", "source_hash": "74402dad6b2aa4c05f2ded5ac17ec2100eab3cb773d7b741805a6b81b4c7e85b", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix planner's handling of outer PlaceHolderVars within subqueries (Tom Lane) This bug concerns sub-SELECTs that reference variables coming from the nullable side of an outer join of the surrounding query. In 9.1, queries affected by this bug would fail with ERROR: Upper-level PlaceHolderVar found where not expected. But in 9.0 and 8.4, you'd silently get possibly-wrong answers, since the value transmitted into the subquery wouldn't go to null when it should.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.8/changes/008", "db_id": "19a6e1973e59e9da729551e85bc3d665", "patch_ids": [], "statement_hash": "8ee28efc2fbfda74cb453da5f680773337fd25421ee1855c571078dd937bb706", "relations": [{"rule": 2, "type": "equivalent", "target": "ef188976cac2505dda8376e40a42b5d1", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8ee28efc2fbfda74cb453da5f680773337fd25421ee1855c571078dd937bb706"}}], "version": "9.0.8", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "ef188976cac2505dda8376e40a42b5d1", "kind": "equivalent", "version": "9.1.4", "label": "9.1.4", "title": "修复规划器对子查询内外层 PlaceHolderVar 的处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8ee28efc2fbfda74cb453da5f680773337fd25421ee1855c571078dd937bb706"}, "url": "/docs/compare/?release=9.1.4#9.1.4-6c756bffcdb78f66", "source_url": "/docs/release/9.1.4/#id-1.11.6.25.5"}]}, {"id": "9.0.8-0ee6a4c6ae8c98fb", "cves": [], "html": "<p>修复 <code>pg_attribute</code> 非常大会话启动缓慢的问题（Tom Lane）</p>\n<p>如果 <code>pg_attribute</code> 超过 <code>shared_buffers</code> 的四分之一，会话启动期间有时需要的缓存重建代码就会触发同步扫描逻辑，使其耗时比正常情况多数倍。如果许多新会话同时启动，问题尤为严重。</p>", "text": "修复 pg_attribute 非常大会话启动缓慢的问题（Tom Lane） 如果 pg_attribute 超过 shared_buffers 的四分之一，会话启动期间有时需要的缓存重建代码就会触发同步扫描逻辑，使其耗时比正常情况多数倍。如果许多新会话同时启动，问题尤为严重。", "title": "修复 pg_attribute 非常大会话启动缓慢的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.8/#id-1.11.6.20.5", "source_hash": "f291eb34a8053b272fe285d3cb88a3e84de3ed5e0d6a59c98714e1d708ded0e3", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix slow session startup when pg_attribute is very large (Tom Lane) If pg_attribute exceeds one-fourth of shared_buffers, cache rebuilding code that is sometimes needed during session start would trigger the synchronized-scan logic, causing it to take many times longer than normal. The problem was particularly acute if many new sessions were starting at once.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.8/changes/009", "db_id": "8e30e72a2405bcb8cb42f78c56812986", "patch_ids": [], "statement_hash": "0a7f507b1407c40499c963726716788f68d57c16325ddd52739c2610a0f7af0b", "relations": [{"rule": 2, "type": "equivalent", "target": "3067d257f33b50d90891579b75bb82b1", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0a7f507b1407c40499c963726716788f68d57c16325ddd52739c2610a0f7af0b"}}], "version": "9.0.8", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "3067d257f33b50d90891579b75bb82b1", "kind": "equivalent", "version": "9.1.4", "label": "9.1.4", "title": "修复 pg_attribute 非常大会话启动缓慢的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0a7f507b1407c40499c963726716788f68d57c16325ddd52739c2610a0f7af0b"}, "url": "/docs/compare/?release=9.1.4#9.1.4-0ee6a4c6ae8c98fb", "source_url": "/docs/release/9.1.4/#id-1.11.6.25.5"}]}, {"id": "9.0.8-dd3e7759287e444a", "cves": [], "html": "<p>确保顺序扫描以合理的频率检查查询取消（Merlin Moncure）</p>\n<p>遇到许多不含存活元组的连续页面的扫描在此期间不会响应中断。</p>", "text": "确保顺序扫描以合理的频率检查查询取消（Merlin Moncure） 遇到许多不含存活元组的连续页面的扫描在此期间不会响应中断。", "title": "确保顺序扫描以合理的频率检查查询取消", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.8/#id-1.11.6.20.5", "source_hash": "48f014989507f574f50e0319eea1787d248a8c0acb89c83bd8cb242202121d25", "section_path": ["变更"], "commit_groups": [], "identity_text": "Ensure sequential scans check for query cancel reasonably often (Merlin Moncure) A scan encountering many consecutive pages that contain no live tuples would not respond to interrupts meanwhile.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.8/changes/010", "db_id": "1adeba20bc22f27bf9f5441c733c00fe", "patch_ids": [], "statement_hash": "32c4ebad7086dd8ff0fb67a82b5d81e2020c0da9c949bd90c1da163f46f80891", "relations": [{"rule": 2, "type": "equivalent", "target": "bd6436e92343187447f9bd25be2155e3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "32c4ebad7086dd8ff0fb67a82b5d81e2020c0da9c949bd90c1da163f46f80891"}}], "version": "9.0.8", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "bd6436e92343187447f9bd25be2155e3", "kind": "equivalent", "version": "9.1.4", "label": "9.1.4", "title": "确保顺序扫描以合理的频率检查查询取消", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "32c4ebad7086dd8ff0fb67a82b5d81e2020c0da9c949bd90c1da163f46f80891"}, "url": "/docs/compare/?release=9.1.4#9.1.4-dd3e7759287e444a", "source_url": "/docs/release/9.1.4/#id-1.11.6.25.5"}]}, {"id": "9.0.8-a6be6a0fdf406fc1", "cves": [], "html": "<p>确保 <code>PGSemaphoreLock()</code> 的 Windows 实现在返回前清除 <code>ImmediateInterruptOK</code>（Tom Lane）</p>\n<p>这一疏忽意味着同一查询稍后收到的查询取消中断可能在不安全的时刻被接受，后果不可预测且不好。</p>", "text": "确保 PGSemaphoreLock() 的 Windows 实现在返回前清除 ImmediateInterruptOK（Tom Lane） 这一疏忽意味着同一查询稍后收到的查询取消中断可能在不安全的时刻被接受，后果不可预测且不好。", "title": "确保 PGSemaphoreLock() 的 Windows 实现在返回前清除 ImmediateInterruptOK", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.8/#id-1.11.6.20.5", "source_hash": "0515df05c357e80f06528ed45102c74a7345c0c78656281ee72ab3a2948a8f1b", "section_path": ["变更"], "commit_groups": [], "identity_text": "Ensure the Windows implementation of PGSemaphoreLock() clears ImmediateInterruptOK before returning (Tom Lane) This oversight meant that a query-cancel interrupt received later in the same query could be accepted at an unsafe time, with unpredictable but not good consequences.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.8/changes/011", "db_id": "621e08ded86dac462543a1b66528aedf", "patch_ids": [], "statement_hash": "475baa30bf05e7068b9227b884192b9296ffb209bb282f734ab8b4f1bad76d95", "relations": [{"rule": 2, "type": "equivalent", "target": "db01691604fa124e6f972589c146118e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "475baa30bf05e7068b9227b884192b9296ffb209bb282f734ab8b4f1bad76d95"}}], "version": "9.0.8", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "db01691604fa124e6f972589c146118e", "kind": "equivalent", "version": "9.1.4", "label": "9.1.4", "title": "确保 PGSemaphoreLock() 的 Windows 实现在返回前清除 ImmediateInterruptOK", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "475baa30bf05e7068b9227b884192b9296ffb209bb282f734ab8b4f1bad76d95"}, "url": "/docs/compare/?release=9.1.4#9.1.4-a6be6a0fdf406fc1", "source_url": "/docs/release/9.1.4/#id-1.11.6.25.5"}]}, {"id": "9.0.8-37785b7bff0bb5e4", "cves": [], "html": "<p>在打印视图或规则时安全地显示整行变量（Abbas Butt、Tom Lane）</p>\n<p>涉及有歧义名称（即该名称既可能是查询的表名也可能是列名）的极端情况此前以有歧义的方式打印，存在视图或规则在转储和重载后被不同解释的风险。现通过附加无操作转换来避免歧义情况。</p>", "text": "在打印视图或规则时安全地显示整行变量（Abbas Butt、Tom Lane） 涉及有歧义名称（即该名称既可能是查询的表名也可能是列名）的极端情况此前以有歧义的方式打印，存在视图或规则在转储和重载后被不同解释的风险。现通过附加无操作转换来避免歧义情况。", "title": "在打印视图或规则时安全地显示整行变量", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.8/#id-1.11.6.20.5", "source_hash": "3e74b472e7c0b99515ebc321a5a5838a351a6c867b3a9ba9b84464243793b519", "section_path": ["变更"], "commit_groups": [], "identity_text": "Show whole-row variables safely when printing views or rules (Abbas Butt, Tom Lane) Corner cases involving ambiguous names (that is, the name could be either a table or column name of the query) were printed in an ambiguous way, risking that the view or rule would be interpreted differently after dump and reload. Avoid the ambiguous case by attaching a no-op cast.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.8/changes/012", "db_id": "046268baafb6eb208a178d325c4f509f", "patch_ids": [], "statement_hash": "b08bd7aedbfa17f2c0ae9439b638e1f95a9356d905183fa9049d8bf16d7b6dcb", "relations": [{"rule": 2, "type": "equivalent", "target": "4c8e9274b22ace290b1f223746068ee3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b08bd7aedbfa17f2c0ae9439b638e1f95a9356d905183fa9049d8bf16d7b6dcb"}}], "version": "9.0.8", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "4c8e9274b22ace290b1f223746068ee3", "kind": "equivalent", "version": "9.1.4", "label": "9.1.4", "title": "在打印视图或规则时安全地显示整行变量", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b08bd7aedbfa17f2c0ae9439b638e1f95a9356d905183fa9049d8bf16d7b6dcb"}, "url": "/docs/compare/?release=9.1.4#9.1.4-37785b7bff0bb5e4", "source_url": "/docs/release/9.1.4/#id-1.11.6.25.5"}]}, {"id": "9.0.8-829dca33ef5c035f", "cves": [], "html": "<p>修复 <code>COPY FROM</code>，使其正确处理对应无效编码的空值标记串（Tom Lane）</p>\n<p>诸如 <code>E'\\\\0'</code> 这样的空值标记串本应有效，过去也确实有效，但该情况在 8.4 中被破坏。</p>", "text": "修复 COPY FROM，使其正确处理对应无效编码的空值标记串（Tom Lane） 诸如 E'\\\\0' 这样的空值标记串本应有效，过去也确实有效，但该情况在 8.4 中被破坏。", "title": "修复 COPY FROM，使其正确处理对应无效编码的空值标记串", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.8/#id-1.11.6.20.5", "source_hash": "cae92798a320025c41a60c0b6591a20eb89652cf2db5351718a0341c03f56614", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix COPY FROM to properly handle null marker strings that correspond to invalid encoding (Tom Lane) A null marker string such as E'\\\\0' should work, and did work in the past, but the case got broken in 8.4.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.8/changes/013", "db_id": "2a4117a0b88da00252fd221e090f5545", "patch_ids": [], "statement_hash": "e95a56110050751e2be814ee1968520c2f1bdb1d487ab0ed47dfa2672f30fb83", "relations": [{"rule": 2, "type": "equivalent", "target": "b5da3801ab6a6f88ccbc5d535a02965a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e95a56110050751e2be814ee1968520c2f1bdb1d487ab0ed47dfa2672f30fb83"}}], "version": "9.0.8", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "b5da3801ab6a6f88ccbc5d535a02965a", "kind": "equivalent", "version": "9.1.4", "label": "9.1.4", "title": "修复 COPY FROM，使其正确处理对应无效编码的空值标记串", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e95a56110050751e2be814ee1968520c2f1bdb1d487ab0ed47dfa2672f30fb83"}, "url": "/docs/compare/?release=9.1.4#9.1.4-829dca33ef5c035f", "source_url": "/docs/release/9.1.4/#id-1.11.6.25.5"}]}, {"id": "9.0.8-ffb859808358d3e6", "cves": [], "html": "<p>确保自动清理工作进程正确执行栈深度检查（Heikki Linnakangas）</p>\n<p>此前，由自动 <code>ANALYZE</code> 调用的函数中的无限递归可能导致工作进程崩溃。</p>", "text": "确保自动清理工作进程正确执行栈深度检查（Heikki Linnakangas） 此前，由自动 ANALYZE 调用的函数中的无限递归可能导致工作进程崩溃。", "title": "确保自动清理工作进程正确执行栈深度检查", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.8/#id-1.11.6.20.5", "source_hash": "b794dd5ddc8be160f08b469b5728c89827fbc41451390fb278c4a23161abce8e", "section_path": ["变更"], "commit_groups": [], "identity_text": "Ensure autovacuum worker processes perform stack depth checking properly (Heikki Linnakangas) Previously, infinite recursion in a function invoked by auto-ANALYZE could crash worker processes.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.8/changes/014", "db_id": "36167ec72ac13f36f65ffe51dfc10ef8", "patch_ids": [], "statement_hash": "0f52396aa707d6b843a52a7c887bbdde0c730d2fec6c70552b6a7c795241c07e", "relations": [{"rule": 2, "type": "equivalent", "target": "5163f9da5a826eaa7bbcf89a43982fec", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0f52396aa707d6b843a52a7c887bbdde0c730d2fec6c70552b6a7c795241c07e"}}], "version": "9.0.8", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "5163f9da5a826eaa7bbcf89a43982fec", "kind": "equivalent", "version": "9.1.4", "label": "9.1.4", "title": "确保自动清理工作进程正确执行栈深度检查", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0f52396aa707d6b843a52a7c887bbdde0c730d2fec6c70552b6a7c795241c07e"}, "url": "/docs/compare/?release=9.1.4#9.1.4-ffb859808358d3e6", "source_url": "/docs/release/9.1.4/#id-1.11.6.25.5"}]}, {"id": "9.0.8-6bfe9c34cb456dbf", "cves": [], "html": "<p>修复日志收集器，使其在高负载下不丢失日志连贯性（Andrew Dunstan）</p>\n<p>此前，如果收集器过于忙碌，可能无法重新组装大消息。</p>", "text": "修复日志收集器，使其在高负载下不丢失日志连贯性（Andrew Dunstan） 此前，如果收集器过于忙碌，可能无法重新组装大消息。", "title": "修复日志收集器，使其在高负载下不丢失日志连贯性", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.8/#id-1.11.6.20.5", "source_hash": "92a514017fd659be3e62a4e84ff9ac785df62dba2904561c23526e0231724645", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix logging collector to not lose log coherency under high load (Andrew Dunstan) The collector previously could fail to reassemble large messages if it got too busy.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.8/changes/015", "db_id": "7bf5d3e7f3ea95a754f5c5a79f806a3b", "patch_ids": [], "statement_hash": "a8f1eaf60d9cbec4f01617787fed23b1a7342ea79b3c4a281c02d49023cafb0e", "relations": [{"rule": 2, "type": "equivalent", "target": "b153bdac2cdae4cf4c2db4419094a37c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a8f1eaf60d9cbec4f01617787fed23b1a7342ea79b3c4a281c02d49023cafb0e"}}], "version": "9.0.8", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "b153bdac2cdae4cf4c2db4419094a37c", "kind": "equivalent", "version": "9.1.4", "label": "9.1.4", "title": "修复日志收集器，使其在高负载下不丢失日志连贯性", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a8f1eaf60d9cbec4f01617787fed23b1a7342ea79b3c4a281c02d49023cafb0e"}, "url": "/docs/compare/?release=9.1.4#9.1.4-6bfe9c34cb456dbf", "source_url": "/docs/release/9.1.4/#id-1.11.6.25.5"}]}, {"id": "9.0.8-b91475414d755f42", "cves": [], "html": "<p>修复日志收集器，确保它在收到 <span>SIGHUP</span> 后会重新开始文件轮转（Tom Lane）</p>", "text": "修复日志收集器，确保它在收到 SIGHUP 后会重新开始文件轮转（Tom Lane）", "title": "修复日志收集器，确保它在收到 SIGHUP 后会重新开始文件轮转", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.8/#id-1.11.6.20.5", "source_hash": "ab1071859ba97152c11f5b6a38b747a6de1aab06302f74487e414a0272650715", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix logging collector to ensure it will restart file rotation after receiving SIGHUP (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.8/changes/016", "db_id": "848cae60cce40e40e5f5d0f271a779af", "patch_ids": [], "statement_hash": "6fac7f36ad3dde95d58b318c8f49bfa7bae648666592c387f0e27dca94ab7c6b", "relations": [{"rule": 2, "type": "equivalent", "target": "874b3ea93908f9ba5c8325180087db06", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6fac7f36ad3dde95d58b318c8f49bfa7bae648666592c387f0e27dca94ab7c6b"}}], "version": "9.0.8", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "874b3ea93908f9ba5c8325180087db06", "kind": "equivalent", "version": "9.1.4", "label": "9.1.4", "title": "修复日志收集器，确保它在收到 SIGHUP 后会重新开始文件轮转", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6fac7f36ad3dde95d58b318c8f49bfa7bae648666592c387f0e27dca94ab7c6b"}, "url": "/docs/compare/?release=9.1.4#9.1.4-b91475414d755f42", "source_url": "/docs/release/9.1.4/#id-1.11.6.25.5"}]}, {"id": "9.0.8-079134671ec2bd62", "cves": [], "html": "<p>修复 GIN 索引的 WAL 重放逻辑，使其在索引随后被删除时不失败（Tom Lane）</p>", "text": "修复 GIN 索引的 WAL 重放逻辑，使其在索引随后被删除时不失败（Tom Lane）", "title": "修复 GIN 索引的 WAL 重放逻辑，使其在索引随后被删除时不失败", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.8/#id-1.11.6.20.5", "source_hash": "9c968194c67f0d8782fce65804003937935d85c5c96170c7279f172e067c889e", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix WAL replay logic for GIN indexes to not fail if the index was subsequently dropped (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.8/changes/017", "db_id": "f31f64f9c579661cdacb2fbfa7f24af1", "patch_ids": [], "statement_hash": "3c20319e0fbcbc1ecbf8cc8cc2c9c0d70f21c12ade0d88c48cc5722447792d84", "relations": [{"rule": 2, "type": "equivalent", "target": "78130b6a8a0ac77de9d35f9a208a5366", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3c20319e0fbcbc1ecbf8cc8cc2c9c0d70f21c12ade0d88c48cc5722447792d84"}}], "version": "9.0.8", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "78130b6a8a0ac77de9d35f9a208a5366", "kind": "equivalent", "version": "9.1.4", "label": "9.1.4", "title": "修复 GIN 索引的 WAL 重放逻辑，使其在索引随后被删除时不失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3c20319e0fbcbc1ecbf8cc8cc2c9c0d70f21c12ade0d88c48cc5722447792d84"}, "url": "/docs/compare/?release=9.1.4#9.1.4-079134671ec2bd62", "source_url": "/docs/release/9.1.4/#id-1.11.6.25.5"}]}, {"id": "9.0.8-20ade416d0c79ad8", "cves": [], "html": "<p>修复 PL/pgSQL 的 <code>RETURN NEXT</code> 命令中的内存泄漏（Joe Conway）</p>", "text": "修复 PL/pgSQL 的 RETURN NEXT 命令中的内存泄漏（Joe Conway）", "title": "修复 PL/pgSQL 的 RETURN NEXT 命令中的内存泄漏", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.8/#id-1.11.6.20.5", "source_hash": "d6994eee9cd96838028f24df93e4f13f0c4a1e76dc3d347dee298abb934442e1", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix memory leak in PL/pgSQL's RETURN NEXT command (Joe Conway)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.8/changes/018", "db_id": "540f10a54d1bf2813fecd40209bc5457", "patch_ids": [], "statement_hash": "ff4f48f8b2ccc6064b6ea5b63e49627a4fff4828e77ab95c5cb88d7917cd3e05", "relations": [{"rule": 2, "type": "equivalent", "target": "ae5ee9f16eeeec833b76b57a9a9ce715", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ff4f48f8b2ccc6064b6ea5b63e49627a4fff4828e77ab95c5cb88d7917cd3e05"}}], "version": "9.0.8", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "ae5ee9f16eeeec833b76b57a9a9ce715", "kind": "equivalent", "version": "9.1.4", "label": "9.1.4", "title": "修复 PL/pgSQL 的 RETURN NEXT 命令中的内存泄漏", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ff4f48f8b2ccc6064b6ea5b63e49627a4fff4828e77ab95c5cb88d7917cd3e05"}, "url": "/docs/compare/?release=9.1.4#9.1.4-20ade416d0c79ad8", "source_url": "/docs/release/9.1.4/#id-1.11.6.25.5"}]}, {"id": "9.0.8-9ecdbc49ec73f15c", "cves": [], "html": "<p>修复 PL/pgSQL 的 <code>GET DIAGNOSTICS</code> 命令在目标是函数第一个变量时的问题（Tom Lane）</p>", "text": "修复 PL/pgSQL 的 GET DIAGNOSTICS 命令在目标是函数第一个变量时的问题（Tom Lane）", "title": "修复 PL/pgSQL 的 GET DIAGNOSTICS 命令在目标是函数第一个变量时的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.8/#id-1.11.6.20.5", "source_hash": "c45f1bfd877d53a249b8e330a739f5cf5ac77d73651702b41c94463e1223fd18", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix PL/pgSQL's GET DIAGNOSTICS command when the target is the function's first variable (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.8/changes/019", "db_id": "7f0bc33006563175bc5414d7816dcf96", "patch_ids": [], "statement_hash": "ac74968daa2b65e50dc6e0d049d58e3be94549e24bc4bf9939ab692a8b4b4222", "relations": [{"rule": 2, "type": "equivalent", "target": "87472d649a176ede91baaebedd0b831d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ac74968daa2b65e50dc6e0d049d58e3be94549e24bc4bf9939ab692a8b4b4222"}}], "version": "9.0.8", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "87472d649a176ede91baaebedd0b831d", "kind": "equivalent", "version": "9.1.4", "label": "9.1.4", "title": "修复 PL/pgSQL 的 GET DIAGNOSTICS 命令在目标是函数第一个变量时的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ac74968daa2b65e50dc6e0d049d58e3be94549e24bc4bf9939ab692a8b4b4222"}, "url": "/docs/compare/?release=9.1.4#9.1.4-9ecdbc49ec73f15c", "source_url": "/docs/release/9.1.4/#id-1.11.6.25.5"}]}, {"id": "9.0.8-ee0a7018cabc2610", "cves": [], "html": "<p>修复 <span>psql</span> 扩展显示（<code>\\x</code>）模式中可能越过内存末尾的访问（Peter Eisentraut）</p>", "text": "修复 psql 扩展显示（\\x）模式中可能越过内存末尾的访问（Peter Eisentraut）", "title": "修复 psql 扩展显示（\\x）模式中可能越过内存末尾的访问", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.8/#id-1.11.6.20.5", "source_hash": "589cf070918bbc41aa76c74fc9ab68b3c5b10e1f95bba059b7ebf1eae17d599f", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix potential access off the end of memory in psql's expanded display (\\x) mode (Peter Eisentraut)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.8/changes/020", "db_id": "73ebf284c9b01ca4b21dd84fb622e363", "patch_ids": [], "statement_hash": "cd3f8f30a929dcb62c007262f8144eb4ff9da0bb6418fc7c9f05188a025e2d00", "relations": [{"rule": 2, "type": "equivalent", "target": "03d3ce536e76a31bdcc0cc050132798f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cd3f8f30a929dcb62c007262f8144eb4ff9da0bb6418fc7c9f05188a025e2d00"}}], "version": "9.0.8", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "03d3ce536e76a31bdcc0cc050132798f", "kind": "equivalent", "version": "9.1.4", "label": "9.1.4", "title": "修复 psql 扩展显示（\\x）模式中可能越过内存末尾的访问", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cd3f8f30a929dcb62c007262f8144eb4ff9da0bb6418fc7c9f05188a025e2d00"}, "url": "/docs/compare/?release=9.1.4#9.1.4-ee0a7018cabc2610", "source_url": "/docs/release/9.1.4/#id-1.11.6.25.5"}]}, {"id": "9.0.8-f207e94deeeb708f", "cves": [], "html": "<p>修复数据库包含大量对象时 <span>pg_dump</span> 的若干性能问题（Jeff Janes、Tom Lane）</p>\n<p>如果数据库包含许多模式、许多对象处于依赖循环中、或有许多被拥有的序列，<span>pg_dump</span> 可能变得非常慢。</p>", "text": "修复数据库包含大量对象时 pg_dump 的若干性能问题（Jeff Janes、Tom Lane） 如果数据库包含许多模式、许多对象处于依赖循环中、或有许多被拥有的序列，pg_dump 可能变得非常慢。", "title": "修复数据库包含大量对象时 pg_dump 的若干性能问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.8/#id-1.11.6.20.5", "source_hash": "0b7b863e6ad07da1a0c1b29b0e6399b9cbafefcbfb400ad6e854033bf55f1521", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix several performance problems in pg_dump when the database contains many objects (Jeff Janes, Tom Lane) pg_dump could get very slow if the database contained many schemas, or if many objects are in dependency loops, or if there are many owned sequences.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.8/changes/021", "db_id": "5b97b955dcbbdace43be1ac7e00eca55", "patch_ids": [], "statement_hash": "ba9de3cb96597ea955a9878da3161da87dfdaf13e916d135578cb969c0f0a402", "relations": [{"rule": 2, "type": "equivalent", "target": "e3be79fdcc3d8276f9c34911da1b31e1", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ba9de3cb96597ea955a9878da3161da87dfdaf13e916d135578cb969c0f0a402"}}], "version": "9.0.8", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "e3be79fdcc3d8276f9c34911da1b31e1", "kind": "equivalent", "version": "9.1.4", "label": "9.1.4", "title": "修复数据库包含大量对象时 pg_dump 的若干性能问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ba9de3cb96597ea955a9878da3161da87dfdaf13e916d135578cb969c0f0a402"}, "url": "/docs/compare/?release=9.1.4#9.1.4-f207e94deeeb708f", "source_url": "/docs/release/9.1.4/#id-1.11.6.25.5"}]}, {"id": "9.0.8-891206aa6a7bb4b6", "cves": [], "html": "<p>修复 <span>pg_upgrade</span> 处理存储在非默认表空间的数据库包含集簇默认表空间中的表的情况（Bruce Momjian）</p>", "text": "修复 pg_upgrade 处理存储在非默认表空间的数据库包含集簇默认表空间中的表的情况（Bruce Momjian）", "title": "修复 pg_upgrade 处理存储在非默认表空间的数据库包含集簇默认表空间中的表的情况", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.8/#id-1.11.6.20.5", "source_hash": "3a5130d2f40e09ab624cebd62dfdebfddab087f3853ddfbded5155986a620e56", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix pg_upgrade for the case that a database stored in a non-default tablespace contains a table in the cluster's default tablespace (Bruce Momjian)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.8/changes/022", "db_id": "01705f9cce568b7bae7577ad54fe41ee", "patch_ids": [], "statement_hash": "8aad3c1d6704206ddf8218a7c0e100bc2566e7363ba0fcc9658c1870879f552d", "relations": [{"rule": 2, "type": "equivalent", "target": "c7ed7794cd7dd70f465e312ef9cf1d26", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8aad3c1d6704206ddf8218a7c0e100bc2566e7363ba0fcc9658c1870879f552d"}}], "version": "9.0.8", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "c7ed7794cd7dd70f465e312ef9cf1d26", "kind": "equivalent", "version": "9.1.4", "label": "9.1.4", "title": "修复 pg_upgrade 处理存储在非默认表空间的数据库包含集簇默认表空间中的表的情况", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8aad3c1d6704206ddf8218a7c0e100bc2566e7363ba0fcc9658c1870879f552d"}, "url": "/docs/compare/?release=9.1.4#9.1.4-891206aa6a7bb4b6", "source_url": "/docs/release/9.1.4/#id-1.11.6.25.5"}]}, {"id": "9.0.8-f27d2854a7c714d2", "cves": [], "html": "<p>在 <span>ecpg</span> 中，修复罕见的内存泄漏以及 <code>sqlca_t</code> 结构之后一个字节可能被覆写的问题（Peter Eisentraut）</p>", "text": "在 ecpg 中，修复罕见的内存泄漏以及 sqlca_t 结构之后一个字节可能被覆写的问题（Peter Eisentraut）", "title": "在 ecpg 中，修复罕见的内存泄漏以及 sqlca_t 结构之后一个字节可能被覆写的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.8/#id-1.11.6.20.5", "source_hash": "6c439c4f1d44043b85741512b28bdd168696c05a022adc48627638aef88e23ff", "section_path": ["变更"], "commit_groups": [], "identity_text": "In ecpg, fix rare memory leaks and possible overwrite of one byte after the sqlca_t structure (Peter Eisentraut)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.8/changes/023", "db_id": "968b61bf5aa38dbfd77252a6036bdf7e", "patch_ids": [], "statement_hash": "cd0d7d48c81eb93b5adce5ca4e2079fcd7d857236d49b52474fb34287e7501f0", "relations": [{"rule": 2, "type": "equivalent", "target": "0e0311bb9e47ab1a5317107abd83681e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cd0d7d48c81eb93b5adce5ca4e2079fcd7d857236d49b52474fb34287e7501f0"}}], "version": "9.0.8", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "0e0311bb9e47ab1a5317107abd83681e", "kind": "equivalent", "version": "9.1.4", "label": "9.1.4", "title": "在 ecpg 中，修复罕见的内存泄漏以及 sqlca_t 结构之后一个字节可能被覆写的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cd0d7d48c81eb93b5adce5ca4e2079fcd7d857236d49b52474fb34287e7501f0"}, "url": "/docs/compare/?release=9.1.4#9.1.4-f27d2854a7c714d2", "source_url": "/docs/release/9.1.4/#id-1.11.6.25.5"}]}, {"id": "9.0.8-9c9c5bf3e2935558", "cves": [], "html": "<p>修复 <code>contrib/dblink</code> 的 <code>dblink_exec()</code>，使其在出错时不泄漏临时数据库连接（Tom Lane）</p>", "text": "修复 contrib/dblink 的 dblink_exec()，使其在出错时不泄漏临时数据库连接（Tom Lane）", "title": "修复 contrib/dblink 的 dblink_exec()，使其在出错时不泄漏临时数据库连接", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.8/#id-1.11.6.20.5", "source_hash": "a470ae866f4e01750447f1fdf06ef55889b7db57a610b08252029e543c795568", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix contrib/dblink's dblink_exec() to not leak temporary database connections upon error (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.8/changes/024", "db_id": "0a4347750fa1fc8bdc0b002851db44ff", "patch_ids": [], "statement_hash": "162444061d4bb632cb068bb4a6f0205104aeb64fea3c3c2a7ac8203c344b958e", "relations": [{"rule": 2, "type": "equivalent", "target": "4a40399bde68729941fab650eecad469", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "162444061d4bb632cb068bb4a6f0205104aeb64fea3c3c2a7ac8203c344b958e"}}], "version": "9.0.8", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "4a40399bde68729941fab650eecad469", "kind": "equivalent", "version": "9.1.4", "label": "9.1.4", "title": "修复 contrib/dblink 的 dblink_exec()，使其在出错时不泄漏临时数据库连接", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "162444061d4bb632cb068bb4a6f0205104aeb64fea3c3c2a7ac8203c344b958e"}, "url": "/docs/compare/?release=9.1.4#9.1.4-9c9c5bf3e2935558", "source_url": "/docs/release/9.1.4/#id-1.11.6.25.5"}]}, {"id": "9.0.8-935f6fc4e1a844d9", "cves": [], "html": "<p>修复 <code>contrib/dblink</code>，使其在错误消息中报告正确的连接名（Kyotaro Horiguchi）</p>", "text": "修复 contrib/dblink，使其在错误消息中报告正确的连接名（Kyotaro Horiguchi）", "title": "修复 contrib/dblink，使其在错误消息中报告正确的连接名", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.8/#id-1.11.6.20.5", "source_hash": "b9663f734e81c9170f9ba6ef52e2d1004f33b98d2a59f9df1f6e205f5ab8b572", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix contrib/dblink to report the correct connection name in error messages (Kyotaro Horiguchi)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.8/changes/025", "db_id": "debb644b8744c4750b6f6786febb0987", "patch_ids": [], "statement_hash": "73885a3938aa56d22a54a4a7b9f4738ae3ca9e973105cdf6dddb2d188782ee30", "relations": [{"rule": 2, "type": "equivalent", "target": "8f6f7773f98b1d3398f9747ac43e8ead", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "73885a3938aa56d22a54a4a7b9f4738ae3ca9e973105cdf6dddb2d188782ee30"}}], "version": "9.0.8", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "8f6f7773f98b1d3398f9747ac43e8ead", "kind": "equivalent", "version": "9.1.4", "label": "9.1.4", "title": "修复 contrib/dblink，使其在错误消息中报告正确的连接名", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "73885a3938aa56d22a54a4a7b9f4738ae3ca9e973105cdf6dddb2d188782ee30"}, "url": "/docs/compare/?release=9.1.4#9.1.4-935f6fc4e1a844d9", "source_url": "/docs/release/9.1.4/#id-1.11.6.25.5"}]}, {"id": "9.0.8-89556c862fe759a7", "cves": [], "html": "<p>修复 <code>contrib/vacuumlo</code>，使其在删除许多大对象时使用多个事务（Tim Lewis、Robert Haas、Tom Lane）</p>\n<p>此变更避免了需要删除许多对象时超出 <code>max_locks_per_transaction</code>。该行为可以通过新的 <code>-l</code>（limit）选项调整。</p>", "text": "修复 contrib/vacuumlo，使其在删除许多大对象时使用多个事务（Tim Lewis、Robert Haas、Tom Lane） 此变更避免了需要删除许多对象时超出 max_locks_per_transaction。该行为可以通过新的 -l（limit）选项调整。", "title": "修复 contrib/vacuumlo，使其在删除许多大对象时使用多个事务", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.8/#id-1.11.6.20.5", "source_hash": "b4a2df1eb0447802de26c326832d9843c2242374b13f375b386e450227910397", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix contrib/vacuumlo to use multiple transactions when dropping many large objects (Tim Lewis, Robert Haas, Tom Lane) This change avoids exceeding max_locks_per_transaction when many objects need to be dropped. The behavior can be adjusted with the new -l (limit) option.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.8/changes/026", "db_id": "9e65fef5790e9fb2e40776c0dce94ba1", "patch_ids": [], "statement_hash": "fa38809048291f61b64535c94125b01f22bbe03881cae84b7aa8f3448aa98433", "relations": [{"rule": 2, "type": "equivalent", "target": "041593791e94dea325e10e027f7ff0c2", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fa38809048291f61b64535c94125b01f22bbe03881cae84b7aa8f3448aa98433"}}], "version": "9.0.8", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "041593791e94dea325e10e027f7ff0c2", "kind": "equivalent", "version": "9.1.4", "label": "9.1.4", "title": "修复 contrib/vacuumlo，使其在删除许多大对象时使用多个事务", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fa38809048291f61b64535c94125b01f22bbe03881cae84b7aa8f3448aa98433"}, "url": "/docs/compare/?release=9.1.4#9.1.4-89556c862fe759a7", "source_url": "/docs/release/9.1.4/#id-1.11.6.25.5"}]}, {"id": "9.0.8-7dd8898a26f7107e", "cves": [], "html": "<p>把时区数据文件更新为 <span>tzdata</span> 版本 2012c for DST law changes in Antarctica, Armenia, Chile, Cuba, Falkland Islands, Gaza, Haiti, Hebron, Morocco, Syria, and Tokelau Islands; also historical corrections for Canada。</p>", "text": "把时区数据文件更新为 tzdata 版本 2012c for DST law changes in Antarctica, Armenia, Chile, Cuba, Falkland Islands, Gaza, Haiti, Hebron, Morocco, Syria, and Tokelau Islands; also historical corrections for Canada。", "title": "把时区数据文件更新为 tzdata 版本 2012c for DST law changes in Antarctica, Armenia, Chile, Cuba, Falkland Islands, Gaza, Haiti, Hebron, Morocco, Syria, and Tokelau Islands; also historical corrections for Canada。", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.8/#id-1.11.6.20.5", "source_hash": "dc0176a41c662846b8edd357cf239310d2889274a66ba9ecc80334be96fa97b7", "section_path": ["变更"], "commit_groups": [], "identity_text": "Update time zone data files to tzdata release 2012c for DST law changes in Antarctica, Armenia, Chile, Cuba, Falkland Islands, Gaza, Haiti, Hebron, Morocco, Syria, and Tokelau Islands; also historical corrections for Canada.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.8/changes/027", "db_id": "545903ff595e4f4546424f7f487341da", "patch_ids": [], "statement_hash": "3f17c38061acf5621020544a0ed298975c38f8f64df80267f36868e3cdcb8114", "relations": [{"rule": 2, "type": "equivalent", "target": "0a49d71104e76727e9d5ecdcfc06035e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3f17c38061acf5621020544a0ed298975c38f8f64df80267f36868e3cdcb8114"}}], "version": "9.0.8", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "0a49d71104e76727e9d5ecdcfc06035e", "kind": "equivalent", "version": "9.1.4", "label": "9.1.4", "title": "把时区数据文件更新为 tzdata 版本 2012c for DST law changes in Antarctica, Armenia, Chile, Cuba, Falkland Islands, Gaza, Haiti, Hebron, Morocco, Syria, and Tokelau Islands; also historical corrections for Canada。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3f17c38061acf5621020544a0ed298975c38f8f64df80267f36868e3cdcb8114"}, "url": "/docs/compare/?release=9.1.4#9.1.4-7dd8898a26f7107e", "source_url": "/docs/release/9.1.4/#id-1.11.6.25.5"}]}]}, {"date": "2012-02-27", "build": "9.0.7", "major": "9.0", "minor": 7, "manual": "9.0", "status": "stable", "doc_git": "", "version": "9.0.7", "eol_date": "2015-10-08", "date_text": "2012-02-27", "supported": false, "manual_url": "/docs/9.0/release-9-0-7.html", "source_url": "/docs/release/9.0.7/", "entry_count": 35, "placeholder": false, "content_hash": "57969d045c73fd4a8d20ee04b0236e7734d0ab8c10ba6062cf9d73c5fdebb613", "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.6 的版本升级，请参见<a href=\"/docs/9.0/release-9-0-6.html\" title=\"E.18. 版本 9.0.6\">第 E.18 节</a>。</p>", "compatibility_count": 0, "label": "9.0.7", "status_label": "历史版本", "eol": "2015-10-08", "age_days": 5329, "support_days": -4010, "entries": [{"id": "9.0.7-f083a5a6d2ce0179", "cves": ["CVE-2012-0866"], "html": "<p>让 <code>CREATE TRIGGER</code> 要求对触发器函数有执行权限（Robert Haas）</p>\n<p>这一缺失的检查可能允许另一用户通过把触发器函数安装到自己拥有的表上，以伪造的输入数据执行该触发器函数。这只对标记为 <code>SECURITY DEFINER</code> 的触发器函数有影响，因为其他情况下触发器函数本来就以表所有者身份运行。（CVE-2012-0866）</p>", "text": "让 CREATE TRIGGER 要求对触发器函数有执行权限（Robert Haas） 这一缺失的检查可能允许另一用户通过把触发器函数安装到自己拥有的表上，以伪造的输入数据执行该触发器函数。这只对标记为 SECURITY DEFINER 的触发器函数有影响，因为其他情况下触发器函数本来就以表所有者身份运行。（CVE-2012-0866）", "title": "让 CREATE TRIGGER 要求对触发器函数有执行权限", "commits": [], "section": "变更", "category": "security", "source_url": "/docs/release/9.0.7/#id-1.11.6.21.5", "source_hash": "f185c98c9271cbedf976f32c3ae8420689685928240a9782e2334da90d417ea7", "section_path": ["变更"], "commit_groups": [], "identity_text": "Require execute permission on the trigger function for CREATE TRIGGER (Robert Haas) This missing check could allow another user to execute a trigger function with forged input data, by installing it on a table he owns. This is only of significance for trigger functions marked SECURITY DEFINER, since otherwise trigger functions run as the table owner anyway. (CVE-2012-0866)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.7/changes/001", "db_id": "26b02113f452aaaf624bf2520ac53149", "patch_ids": [], "statement_hash": "19f57d30fbe16a8863a49850917ed4d43cb2f8009b070386942c582390d4a83b", "relations": [{"rule": 2, "type": "equivalent", "target": "680e859597132b24c2d158d94fb28370", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "19f57d30fbe16a8863a49850917ed4d43cb2f8009b070386942c582390d4a83b"}}], "version": "9.0.7", "category_label": "安全相关", "also_in": [], "variants": [], "related_changes": [{"db_id": "680e859597132b24c2d158d94fb28370", "kind": "equivalent", "version": "9.1.3", "label": "9.1.3", "title": "让 CREATE TRIGGER 要求对触发器函数有执行权限", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "19f57d30fbe16a8863a49850917ed4d43cb2f8009b070386942c582390d4a83b"}, "url": "/docs/compare/?release=9.1.3#9.1.3-f083a5a6d2ce0179", "source_url": "/docs/release/9.1.3/#id-1.11.6.26.5"}]}, {"id": "9.0.7-df1d463a920aaa1e", "cves": ["CVE-2012-0867"], "html": "<p>移除 SSL 证书中通用名长度的任意限制（Heikki Linnakangas）</p>\n<p><span>libpq</span> 和服务器此前都会把从 SSL 证书提取的通用名截断到 32 字节。通常这最坏只会造成意外的验证失败，但在一些相当难以置信的场景下，它可能允许一个证书持有者冒充另一个。受害者必须恰好有 32 字节长的通用名，而攻击者必须说服受信任的 CA 颁发一个通用名以该字符串为前缀的证书。冒充服务器还需要额外的攻击手段来重定向客户端连接。（CVE-2012-0867）</p>", "text": "移除 SSL 证书中通用名长度的任意限制（Heikki Linnakangas） libpq 和服务器此前都会把从 SSL 证书提取的通用名截断到 32 字节。通常这最坏只会造成意外的验证失败，但在一些相当难以置信的场景下，它可能允许一个证书持有者冒充另一个。受害者必须恰好有 32 字节长的通用名，而攻击者必须说服受信任的 CA 颁发一个通用名以该字符串为前缀的证书。冒充服务器还需要额外的攻击手段来重定向客户端连接。（CVE-2012-0867）", "title": "移除 SSL 证书中通用名长度的任意限制", "commits": [], "section": "变更", "category": "security", "source_url": "/docs/release/9.0.7/#id-1.11.6.21.5", "source_hash": "534e4e83a825e240a1ba001c9324d2e088842ad9d972e5cf07a115324d8b7c93", "section_path": ["变更"], "commit_groups": [], "identity_text": "Remove arbitrary limitation on length of common name in SSL certificates (Heikki Linnakangas) Both libpq and the server truncated the common name extracted from an SSL certificate at 32 bytes. Normally this would cause nothing worse than an unexpected verification failure, but there are some rather-implausible scenarios in which it might allow one certificate holder to impersonate another. The victim would have to have a common name exactly 32 bytes long, and the attacker would have to persuade a trusted CA to issue a certificate in which the common name has that string as a prefix. Impersonating a server would also require some additional exploit to redirect client connections. (CVE-2012-0867)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.7/changes/002", "db_id": "54d6b75ce33ca34c85740d0964067e06", "patch_ids": [], "statement_hash": "1f6119daf181f5172be4537e26fa9333ca8a7e6116f75eb15c40500d68e5bb08", "relations": [{"rule": 2, "type": "equivalent", "target": "609aa3e3f09561d954d9de731da005a9", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1f6119daf181f5172be4537e26fa9333ca8a7e6116f75eb15c40500d68e5bb08"}}], "version": "9.0.7", "category_label": "安全相关", "also_in": [], "variants": [], "related_changes": [{"db_id": "609aa3e3f09561d954d9de731da005a9", "kind": "equivalent", "version": "9.1.3", "label": "9.1.3", "title": "移除 SSL 证书中通用名长度的任意限制", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1f6119daf181f5172be4537e26fa9333ca8a7e6116f75eb15c40500d68e5bb08"}, "url": "/docs/compare/?release=9.1.3#9.1.3-df1d463a920aaa1e", "source_url": "/docs/release/9.1.3/#id-1.11.6.26.5"}]}, {"id": "9.0.7-ad3fba8fa05ed7c5", "cves": ["CVE-2012-0868"], "html": "<p>把 <span>pg_dump</span> 注释中写入的名称里的换行符转换为空格（Robert Haas）</p>\n<p><span>pg_dump</span> 此前对其输出脚本中 SQL 注释内写出的对象名清理不慎。包含换行符的名称至少会使脚本语法错误。恶意构造的对象名可能在脚本重载时构成 SQL 注入风险。（CVE-2012-0868）</p>", "text": "把 pg_dump 注释中写入的名称里的换行符转换为空格（Robert Haas） pg_dump 此前对其输出脚本中 SQL 注释内写出的对象名清理不慎。包含换行符的名称至少会使脚本语法错误。恶意构造的对象名可能在脚本重载时构成 SQL 注入风险。（CVE-2012-0868）", "title": "把 pg_dump 注释中写入的名称里的换行符转换为空格", "commits": [], "section": "变更", "category": "security", "source_url": "/docs/release/9.0.7/#id-1.11.6.21.5", "source_hash": "4a8938e378199e03db0bf2d07aadb973d24a59c4fd9281d164b000d208727b7a", "section_path": ["变更"], "commit_groups": [], "identity_text": "Convert newlines to spaces in names written in pg_dump comments (Robert Haas) pg_dump was incautious about sanitizing object names that are emitted within SQL comments in its output script. A name containing a newline would at least render the script syntactically incorrect. Maliciously crafted object names could present a SQL injection risk when the script is reloaded. (CVE-2012-0868)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.7/changes/003", "db_id": "bd58f457a1fa901a54216b90cd88d6f9", "patch_ids": [], "statement_hash": "8ee87ada79326bd22269ee74be7442cb685114eb3498acd94ed9c1d4c73a8cc9", "relations": [{"rule": 2, "type": "equivalent", "target": "4bd5cdda7438441a9815ce950f8c7201", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8ee87ada79326bd22269ee74be7442cb685114eb3498acd94ed9c1d4c73a8cc9"}}], "version": "9.0.7", "category_label": "安全相关", "also_in": [], "variants": [], "related_changes": [{"db_id": "4bd5cdda7438441a9815ce950f8c7201", "kind": "equivalent", "version": "9.1.3", "label": "9.1.3", "title": "把 pg_dump 注释中写入的名称里的换行符转换为空格", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8ee87ada79326bd22269ee74be7442cb685114eb3498acd94ed9c1d4c73a8cc9"}, "url": "/docs/compare/?release=9.1.3#9.1.3-ad3fba8fa05ed7c5", "source_url": "/docs/release/9.1.3/#id-1.11.6.26.5"}]}, {"id": "9.0.7-e0533db610f7ca11", "cves": [], "html": "<p>修复插入与清理并发导致 btree 索引损坏的问题（Tom Lane）</p>\n<p>插入导致的索引页分裂有时会使并发运行的 <code>VACUUM</code> 漏删本应删除的索引项。在相应的表行被删除后，悬空的索引项会导致错误（例如 <span>“<span>could not read block N in file ...</span>”</span>），或者更糟：当不相关的行被重新插入到现已空闲的表位置后，查询会静默地得到错误结果。该缺陷自 8.2 起就存在，但发生频率极低，直到现在才被诊断出来。如果你有理由怀疑它曾在你的数据库中发生，对受影响的索引重建索引即可修复。</p>", "text": "修复插入与清理并发导致 btree 索引损坏的问题（Tom Lane） 插入导致的索引页分裂有时会使并发运行的 VACUUM 漏删本应删除的索引项。在相应的表行被删除后，悬空的索引项会导致错误（例如 “could not read block N in file ...”），或者更糟：当不相关的行被重新插入到现已空闲的表位置后，查询会静默地得到错误结果。该缺陷自 8.2 起就存在，但发生频率极低，直到现在才被诊断出来。如果你有理由怀疑它曾在你的数据库中发生，对受影响的索引重建索引即可修复。", "title": "修复插入与清理并发导致 btree 索引损坏的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.7/#id-1.11.6.21.5", "source_hash": "8ee5c3c06ab2298247401d4b53c84b1996c08a75f037496d39e220cf334be864", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix btree index corruption from insertions concurrent with vacuuming (Tom Lane) An index page split caused by an insertion could sometimes cause a concurrently-running VACUUM to miss removing index entries that it should remove. After the corresponding table rows are removed, the dangling index entries would cause errors (such as could not read block N in file ...) or worse, silently wrong query results after unrelated rows are re-inserted at the now-free table locations. This bug has been present since release 8.2, but occurs so infrequently that it was not diagnosed until now. If you have reason to suspect that it has happened in your database, reindexing the affected index will fix things.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.7/changes/004", "db_id": "f7ac8a299522ac33b856b0ecece0dc73", "patch_ids": [], "statement_hash": "3643ac225f7f4bab62b8312d1ff0a3076206add00fc40bf2b3cad2c3f8ada5bd", "relations": [{"rule": 2, "type": "equivalent", "target": "ec8bc47e3a27c09da3ad5fcb19702699", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3643ac225f7f4bab62b8312d1ff0a3076206add00fc40bf2b3cad2c3f8ada5bd"}}], "version": "9.0.7", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "ec8bc47e3a27c09da3ad5fcb19702699", "kind": "equivalent", "version": "9.1.3", "label": "9.1.3", "title": "修复插入与清理并发导致 btree 索引损坏的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3643ac225f7f4bab62b8312d1ff0a3076206add00fc40bf2b3cad2c3f8ada5bd"}, "url": "/docs/compare/?release=9.1.3#9.1.3-e0533db610f7ca11", "source_url": "/docs/release/9.1.3/#id-1.11.6.26.5"}]}, {"id": "9.0.7-0ba85772db2d9970", "cves": [], "html": "<p>修复 WAL 重放期间共享缓冲区的瞬时清零（Tom Lane）</p>\n<p>重放逻辑有时会把一个共享缓冲区清零再重新填充，使其内容瞬时无效。在热备模式下，这可能导致并行执行的查询看到垃圾数据。这可能引发各种症状，但最常见的好像是 <span>“<span>invalid memory alloc request size</span>”</span>。</p>", "text": "修复 WAL 重放期间共享缓冲区的瞬时清零（Tom Lane） 重放逻辑有时会把一个共享缓冲区清零再重新填充，使其内容瞬时无效。在热备模式下，这可能导致并行执行的查询看到垃圾数据。这可能引发各种症状，但最常见的好像是 “invalid memory alloc request size”。", "title": "修复 WAL 重放期间共享缓冲区的瞬时清零", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.7/#id-1.11.6.21.5", "source_hash": "2a82b508f0f0910117c0364ddeab358dfd30d393d984c207ca99c8c9754ddc07", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix transient zeroing of shared buffers during WAL replay (Tom Lane) The replay logic would sometimes zero and refill a shared buffer, so that the contents were transiently invalid. In hot standby mode this can result in a query that's executing in parallel seeing garbage data. Various symptoms could result from that, but the most common one seems to be invalid memory alloc request size.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.7/changes/005", "db_id": "b3c5285a82bee94642b1e78ca2cc1b48", "patch_ids": [], "statement_hash": "090fc8d3b10c7340835a3115b64147fac0ff48e28091a7f81cbd3f634be1cc25", "relations": [{"rule": 2, "type": "equivalent", "target": "96c35f4e4282161ae5e4d0c45c634a76", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "090fc8d3b10c7340835a3115b64147fac0ff48e28091a7f81cbd3f634be1cc25"}}], "version": "9.0.7", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "96c35f4e4282161ae5e4d0c45c634a76", "kind": "equivalent", "version": "9.1.3", "label": "9.1.3", "title": "修复 WAL 重放期间共享缓冲区的瞬时清零", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "090fc8d3b10c7340835a3115b64147fac0ff48e28091a7f81cbd3f634be1cc25"}, "url": "/docs/compare/?release=9.1.3#9.1.3-0ba85772db2d9970", "source_url": "/docs/release/9.1.3/#id-1.11.6.26.5"}]}, {"id": "9.0.7-ec849f62a0661a97", "cves": [], "html": "<p>修复 postmaster，使其在热备崩溃后尝试重启（Tom Lane）</p>\n<p>一个逻辑错误导致：如果有后端进程在热备模式下运行时崩溃，postmaster 会终止而不是尝试重启集簇。</p>", "text": "修复 postmaster，使其在热备崩溃后尝试重启（Tom Lane） 一个逻辑错误导致：如果有后端进程在热备模式下运行时崩溃，postmaster 会终止而不是尝试重启集簇。", "title": "修复 postmaster，使其在热备崩溃后尝试重启", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.7/#id-1.11.6.21.5", "source_hash": "d8a3e132e26fa2824c24f62aa160c54fadacad8bb9d694b7694b500230a43ab4", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix postmaster to attempt restart after a hot-standby crash (Tom Lane) A logic error caused the postmaster to terminate, rather than attempt to restart the cluster, if any backend process crashed while operating in hot standby mode.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.7/changes/006", "db_id": "f994282056023c0e0d9fea5ca06dd491", "patch_ids": [], "statement_hash": "2d81200d6fc3ee5821f25b45f09d430d9adb7b9e29fb30097017d8804c9b708c", "relations": [{"rule": 2, "type": "equivalent", "target": "cfa701801201c939ec4e83f8c9e4e7b9", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2d81200d6fc3ee5821f25b45f09d430d9adb7b9e29fb30097017d8804c9b708c"}}], "version": "9.0.7", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "cfa701801201c939ec4e83f8c9e4e7b9", "kind": "equivalent", "version": "9.1.3", "label": "9.1.3", "title": "修复 postmaster，使其在热备崩溃后尝试重启", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2d81200d6fc3ee5821f25b45f09d430d9adb7b9e29fb30097017d8804c9b708c"}, "url": "/docs/compare/?release=9.1.3#9.1.3-ec849f62a0661a97", "source_url": "/docs/release/9.1.3/#id-1.11.6.26.5"}]}, {"id": "9.0.7-6896362fe11bd211", "cves": [], "html": "<p>修复 <code>CLUSTER</code>/<code>VACUUM FULL</code> 对最近更新的行所拥有的 toast 值的处理（Tom Lane）</p>\n<p>这一疏忽可能导致在这些命令之一执行期间，toast 表的索引报 <span>“<span>duplicate key value violates unique constraint</span>”</span> 错误。</p>", "text": "修复 CLUSTER/VACUUM FULL 对最近更新的行所拥有的 toast 值的处理（Tom Lane） 这一疏忽可能导致在这些命令之一执行期间，toast 表的索引报 “duplicate key value violates unique constraint” 错误。", "title": "修复 CLUSTER/VACUUM FULL 对最近更新的行所拥有的 toast 值的处理", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.7/#id-1.11.6.21.5", "source_hash": "ce96eac0a4fb494dedc44b7e84c28b89abb0ff2d15656e8dfbaf4446e2afa017", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix CLUSTER/VACUUM FULL handling of toast values owned by recently-updated rows (Tom Lane) This oversight could lead to duplicate key value violates unique constraint errors being reported against the toast table's index during one of these commands.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.7/changes/007", "db_id": "b8f1ea8e66a4638bdb76dc28bee9625a", "patch_ids": [], "statement_hash": "53cd09b11d1808b31e43a6d20983dee50115f3d5b2c1490d23c7e118b0d26f8e", "relations": [{"rule": 2, "type": "equivalent", "target": "730e06b0bc38bccf6a6c0f0d9b2e3c5d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "53cd09b11d1808b31e43a6d20983dee50115f3d5b2c1490d23c7e118b0d26f8e"}}], "version": "9.0.7", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "730e06b0bc38bccf6a6c0f0d9b2e3c5d", "kind": "equivalent", "version": "9.1.3", "label": "9.1.3", "title": "修复 CLUSTER/VACUUM FULL 对最近更新的行所拥有的 toast 值的处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "53cd09b11d1808b31e43a6d20983dee50115f3d5b2c1490d23c7e118b0d26f8e"}, "url": "/docs/compare/?release=9.1.3#9.1.3-6896362fe11bd211", "source_url": "/docs/release/9.1.3/#id-1.11.6.26.5"}]}, {"id": "9.0.7-8c8e7746cdf57aaa", "cves": [], "html": "<p>更改表所有者时，不仅更新表级权限，也更新逐列权限（Tom Lane）</p>\n<p>未做到这一点意味着，此前授予的所有列权限仍显示为由旧所有者授予。这导致新所有者和超级用户都无法撤销这些现在无法追溯到表所有者的权限。</p>", "text": "更改表所有者时，不仅更新表级权限，也更新逐列权限（Tom Lane） 未做到这一点意味着，此前授予的所有列权限仍显示为由旧所有者授予。这导致新所有者和超级用户都无法撤销这些现在无法追溯到表所有者的权限。", "title": "更改表所有者时，不仅更新表级权限，也更新逐列权限", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.7/#id-1.11.6.21.5", "source_hash": "e002ec23afbaa600fcbc50e95c448435169fe1936c0269a682a498b4ecc826c3", "section_path": ["变更"], "commit_groups": [], "identity_text": "Update per-column permissions, not only per-table permissions, when changing table owner (Tom Lane) Failure to do this meant that any previously granted column permissions were still shown as having been granted by the old owner. This meant that neither the new owner nor a superuser could revoke the now-untraceable-to-table-owner permissions.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.7/changes/008", "db_id": "d89ff54da92bdae6c96e370f9ddc51fc", "patch_ids": [], "statement_hash": "93cf15145a719354196c33610e3d4f572dc9d86e3351b2a8bd6464ad4c28c922", "relations": [{"rule": 2, "type": "equivalent", "target": "3045b0625786e25e788c78b16b9efabd", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "93cf15145a719354196c33610e3d4f572dc9d86e3351b2a8bd6464ad4c28c922"}}], "version": "9.0.7", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "3045b0625786e25e788c78b16b9efabd", "kind": "equivalent", "version": "9.1.3", "label": "9.1.3", "title": "更改表所有者时，不仅更新表级权限，也更新逐列权限", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "93cf15145a719354196c33610e3d4f572dc9d86e3351b2a8bd6464ad4c28c922"}, "url": "/docs/compare/?release=9.1.3#9.1.3-8c8e7746cdf57aaa", "source_url": "/docs/release/9.1.3/#id-1.11.6.26.5"}]}, {"id": "9.0.7-b2c482552241f084", "cves": [], "html": "<p>在 <code>REASSIGN OWNED</code> 中支持外部数据包装器和外部服务器（Alvaro Herrera）</p>\n<p>如果该命令需要更改任何这类对象的所有权，会报 <span>“<span>unexpected classid</span>”</span> 错误。</p>", "text": "在 REASSIGN OWNED 中支持外部数据包装器和外部服务器（Alvaro Herrera） 如果该命令需要更改任何这类对象的所有权，会报 “unexpected classid” 错误。", "title": "在 REASSIGN OWNED 中支持外部数据包装器和外部服务器", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.7/#id-1.11.6.21.5", "source_hash": "1c0087ccfd39a0e2284fe81a6be82c0a7720f8577153f0ae65fc76b259e57076", "section_path": ["变更"], "commit_groups": [], "identity_text": "Support foreign data wrappers and foreign servers in REASSIGN OWNED (Alvaro Herrera) This command failed with unexpected classid errors if it needed to change the ownership of any such objects.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.7/changes/009", "db_id": "1bd76939a626e129bc8e63ab53648b06", "patch_ids": [], "statement_hash": "c92e0cee2c2e73610943fbecb08dfc69cd047c37016f63f382f8be6803afa9eb", "relations": [{"rule": 2, "type": "equivalent", "target": "703cc5614f37d7592e45176e3bc45ae9", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c92e0cee2c2e73610943fbecb08dfc69cd047c37016f63f382f8be6803afa9eb"}}], "version": "9.0.7", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "703cc5614f37d7592e45176e3bc45ae9", "kind": "equivalent", "version": "9.1.3", "label": "9.1.3", "title": "在 REASSIGN OWNED 中支持外部数据包装器和外部服务器", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c92e0cee2c2e73610943fbecb08dfc69cd047c37016f63f382f8be6803afa9eb"}, "url": "/docs/compare/?release=9.1.3#9.1.3-b2c482552241f084", "source_url": "/docs/release/9.1.3/#id-1.11.6.26.5"}]}, {"id": "9.0.7-8d8836ef8f7032bb", "cves": [], "html": "<p>允许 <code>ALTER USER/DATABASE SET</code> 中某些设置取不存在的值（Heikki Linnakangas）</p>\n<p>允许把 <code>default_text_search_config</code>、<code>default_tablespace</code> 和 <code>temp_tablespaces</code> 设为未知的名称。这是因为设置要在其中使用的另一个数据库中它们可能是已知的；对表空间的情况，则是因为表空间可能尚未创建。此前 <code>search_path</code> 已被认识到有同样的问题，这些设置现在的行为与它一致。</p>", "text": "允许 ALTER USER/DATABASE SET 中某些设置取不存在的值（Heikki Linnakangas） 允许把 default_text_search_config、default_tablespace 和 temp_tablespaces 设为未知的名称。这是因为设置要在其中使用的另一个数据库中它们可能是已知的；对表空间的情况，则是因为表空间可能尚未创建。此前 search_path 已被认识到有同样的问题，这些设置现在的行为与它一致。", "title": "允许 ALTER USER/DATABASE SET 中某些设置取不存在的值", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.7/#id-1.11.6.21.5", "source_hash": "e0d2612d9c74e5f8365d58842d6aaae52178f090efda6615a0d2c57e4237a43e", "section_path": ["变更"], "commit_groups": [], "identity_text": "Allow non-existent values for some settings in ALTER USER/DATABASE SET (Heikki Linnakangas) Allow default_text_search_config, default_tablespace, and temp_tablespaces to be set to names that are not known. This is because they might be known in another database where the setting is intended to be used, or for the tablespace cases because the tablespace might not be created yet. The same issue was previously recognized for search_path, and these settings now act like that one.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.7/changes/010", "db_id": "f805e469aabaaf4f45b068c452ff07b2", "patch_ids": [], "statement_hash": "b945b45efaa386b8ab42d4639b3ba15ac1f0084e5e4583a0ce90f545e37521ed", "relations": [{"rule": 2, "type": "equivalent", "target": "3604b11f214ac6572537274e583518cc", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b945b45efaa386b8ab42d4639b3ba15ac1f0084e5e4583a0ce90f545e37521ed"}}], "version": "9.0.7", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "3604b11f214ac6572537274e583518cc", "kind": "equivalent", "version": "9.1.3", "label": "9.1.3", "title": "允许 ALTER USER/DATABASE SET 中某些设置取不存在的值", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b945b45efaa386b8ab42d4639b3ba15ac1f0084e5e4583a0ce90f545e37521ed"}, "url": "/docs/compare/?release=9.1.3#9.1.3-8d8836ef8f7032bb", "source_url": "/docs/release/9.1.3/#id-1.11.6.26.5"}]}, {"id": "9.0.7-32d51ef42271fc7b", "cves": [], "html": "<p>避免在提交后删除表文件出现问题时崩溃（Tom Lane）</p>\n<p>删除表应只在事务提交后才删除底层磁盘文件。如果那时失败（例如因为文件权限错误），代码本应只发出警告消息并继续，因为此时中止事务已为时过晚。这一逻辑从 8.4 起被破坏，导致这类情况引发 PANIC 和无法重启的数据库。</p>", "text": "避免在提交后删除表文件出现问题时崩溃（Tom Lane） 删除表应只在事务提交后才删除底层磁盘文件。如果那时失败（例如因为文件权限错误），代码本应只发出警告消息并继续，因为此时中止事务已为时过晚。这一逻辑从 8.4 起被破坏，导致这类情况引发 PANIC 和无法重启的数据库。", "title": "避免在提交后删除表文件出现问题时崩溃", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.7/#id-1.11.6.21.5", "source_hash": "7c00c6db05f5ff9d8ffedcd498fd2d744af44e04c55aa4a574c65d609f8c206d", "section_path": ["变更"], "commit_groups": [], "identity_text": "Avoid crashing when we have problems deleting table files post-commit (Tom Lane) Dropping a table should lead to deleting the underlying disk files only after the transaction commits. In event of failure then (for instance, because of wrong file permissions) the code is supposed to just emit a warning message and go on, since it's too late to abort the transaction. This logic got broken as of release 8.4, causing such situations to result in a PANIC and an unrestartable database.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.7/changes/011", "db_id": "a1388272176a08fb3acffcbcb9594e1f", "patch_ids": [], "statement_hash": "33275906ebd74a09f4eac93b40b396764580f92662e967a85376ac96bb75abe0", "relations": [{"rule": 2, "type": "equivalent", "target": "d49ff4bb32fd078e37e1f87d3f65af49", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "33275906ebd74a09f4eac93b40b396764580f92662e967a85376ac96bb75abe0"}}], "version": "9.0.7", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "d49ff4bb32fd078e37e1f87d3f65af49", "kind": "equivalent", "version": "9.1.3", "label": "9.1.3", "title": "避免在提交后删除表文件出现问题时崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "33275906ebd74a09f4eac93b40b396764580f92662e967a85376ac96bb75abe0"}, "url": "/docs/compare/?release=9.1.3#9.1.3-32d51ef42271fc7b", "source_url": "/docs/release/9.1.3/#id-1.11.6.26.5"}]}, {"id": "9.0.7-07407b6c0f2c4122", "cves": [], "html": "<p>从 <code>DROP TABLESPACE</code> 的 WAL 重放期间的错误中恢复（Tom Lane）</p>\n<p>重放会尝试删除表空间的目录，但这可能因各种原因失败（例如这些目录的所有权或权限不正确）。此前重放代码会 panic，使数据库在没有人工干预的情况下无法重启。记录问题并继续似乎更好，因为删除目录失败唯一后果只是浪费一些磁盘空间。</p>", "text": "从 DROP TABLESPACE 的 WAL 重放期间的错误中恢复（Tom Lane） 重放会尝试删除表空间的目录，但这可能因各种原因失败（例如这些目录的所有权或权限不正确）。此前重放代码会 panic，使数据库在没有人工干预的情况下无法重启。记录问题并继续似乎更好，因为删除目录失败唯一后果只是浪费一些磁盘空间。", "title": "从 DROP TABLESPACE 的 WAL 重放期间的错误中恢复", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.7/#id-1.11.6.21.5", "source_hash": "5bcbee6e1f8a04b37d51d94185db2a1140b48110816d70ed2973f2d1e16b3222", "section_path": ["变更"], "commit_groups": [], "identity_text": "Recover from errors occurring during WAL replay of DROP TABLESPACE (Tom Lane) Replay will attempt to remove the tablespace's directories, but there are various reasons why this might fail (for example, incorrect ownership or permissions on those directories). Formerly the replay code would panic, rendering the database unrestartable without manual intervention. It seems better to log the problem and continue, since the only consequence of failure to remove the directories is some wasted disk space.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.7/changes/012", "db_id": "908b78a5dbe0c616f0dda2e3a98f80db", "patch_ids": [], "statement_hash": "7877bee24a684d4b6640392c42741c6743f335e590f8c5bbe382c83ca9339226", "relations": [{"rule": 2, "type": "equivalent", "target": "45a4ade1a57c75713e646f80e8668fe1", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7877bee24a684d4b6640392c42741c6743f335e590f8c5bbe382c83ca9339226"}}], "version": "9.0.7", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "45a4ade1a57c75713e646f80e8668fe1", "kind": "equivalent", "version": "9.1.3", "label": "9.1.3", "title": "从 DROP TABLESPACE 的 WAL 重放期间的错误中恢复", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7877bee24a684d4b6640392c42741c6743f335e590f8c5bbe382c83ca9339226"}, "url": "/docs/compare/?release=9.1.3#9.1.3-07407b6c0f2c4122", "source_url": "/docs/release/9.1.3/#id-1.11.6.26.5"}]}, {"id": "9.0.7-3e7e45a2db46e982", "cves": [], "html": "<p>修复为热备记录 AccessExclusiveLock 时的竞态条件（Simon Riggs）</p>\n<p>有时锁会被记录为由<span>“<span>事务零</span>”</span>持有。至少已知这会在从库服务器上产生断言失败，还可能是更严重问题的原因。</p>", "text": "修复为热备记录 AccessExclusiveLock 时的竞态条件（Simon Riggs） 有时锁会被记录为由“事务零”持有。至少已知这会在从库服务器上产生断言失败，还可能是更严重问题的原因。", "title": "修复为热备记录 AccessExclusiveLock 时的竞态条件", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.7/#id-1.11.6.21.5", "source_hash": "188cc726c414bc29aeea88ebb0330986e8682c75405a0bfde813ee79c3a0d9ef", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix race condition in logging AccessExclusiveLocks for hot standby (Simon Riggs) Sometimes a lock would be logged as being held by transaction zero. This is at least known to produce assertion failures on slave servers, and might be the cause of more serious problems.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.7/changes/013", "db_id": "78f489ca6fb603bb8b16b274cc3230a7", "patch_ids": [], "statement_hash": "7d2519ddaa4595857e71eadf1b8067b1af6ed49a0983358236d5703da7022146", "relations": [{"rule": 2, "type": "equivalent", "target": "37143f979d46181eb9292e3f1625a663", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7d2519ddaa4595857e71eadf1b8067b1af6ed49a0983358236d5703da7022146"}}], "version": "9.0.7", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "37143f979d46181eb9292e3f1625a663", "kind": "equivalent", "version": "9.1.3", "label": "9.1.3", "title": "修复为热备记录 AccessExclusiveLock 时的竞态条件", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7d2519ddaa4595857e71eadf1b8067b1af6ed49a0983358236d5703da7022146"}, "url": "/docs/compare/?release=9.1.3#9.1.3-3e7e45a2db46e982", "source_url": "/docs/release/9.1.3/#id-1.11.6.26.5"}]}, {"id": "9.0.7-6eb2d4f77b7db1d9", "cves": [], "html": "<p>在 WAL 重放期间正确跟踪 OID 计数器，即使它发生回卷（Tom Lane）</p>\n<p>此前 OID 计数器会一直停留在高值，直到系统退出重放模式。其实际后果通常为零，但在某些场景下，已提升为主库的备库服务器在需要 OID 值时，可能要很长时间才能把 OID 计数器推进到合理的值。</p>", "text": "在 WAL 重放期间正确跟踪 OID 计数器，即使它发生回卷（Tom Lane） 此前 OID 计数器会一直停留在高值，直到系统退出重放模式。其实际后果通常为零，但在某些场景下，已提升为主库的备库服务器在需要 OID 值时，可能要很长时间才能把 OID 计数器推进到合理的值。", "title": "在 WAL 重放期间正确跟踪 OID 计数器，即使它发生回卷", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.7/#id-1.11.6.21.5", "source_hash": "9062bfd4e02214f12e7200f50401beb06f6110abde916304df19f5f33789787b", "section_path": ["变更"], "commit_groups": [], "identity_text": "Track the OID counter correctly during WAL replay, even when it wraps around (Tom Lane) Previously the OID counter would remain stuck at a high value until the system exited replay mode. The practical consequences of that are usually nil, but there are scenarios wherein a standby server that's been promoted to master might take a long time to advance the OID counter to a reasonable value once values are needed.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.7/changes/014", "db_id": "7c88bc39a1c2c77547b05a411b780977", "patch_ids": [], "statement_hash": "991d6135c75d4274d68b016f26845aead1591748bddf38e3da2eb23085ef5ae6", "relations": [{"rule": 2, "type": "equivalent", "target": "b107080e846200423e9f1e5fc0858c97", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "991d6135c75d4274d68b016f26845aead1591748bddf38e3da2eb23085ef5ae6"}}], "version": "9.0.7", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "b107080e846200423e9f1e5fc0858c97", "kind": "equivalent", "version": "9.1.3", "label": "9.1.3", "title": "在 WAL 重放期间正确跟踪 OID 计数器，即使它发生回卷", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "991d6135c75d4274d68b016f26845aead1591748bddf38e3da2eb23085ef5ae6"}, "url": "/docs/compare/?release=9.1.3#9.1.3-6eb2d4f77b7db1d9", "source_url": "/docs/release/9.1.3/#id-1.11.6.26.5"}]}, {"id": "9.0.7-840fb2b6366d32fb", "cves": [], "html": "<p>防止在崩溃恢复开始时发出误导性的 <span>“<span>consistent recovery state reached</span>”</span> 日志消息（Heikki Linnakangas）</p>", "text": "防止在崩溃恢复开始时发出误导性的 “consistent recovery state reached” 日志消息（Heikki Linnakangas）", "title": "防止在崩溃恢复开始时发出误导性的 “consistent recovery state reached” 日志消息", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.7/#id-1.11.6.21.5", "source_hash": "ae1efc868fd3efa3744e73a0764dda77d1b0ec44ddd1edddaf8ef5e8543f42b1", "section_path": ["变更"], "commit_groups": [], "identity_text": "Prevent emitting misleading consistent recovery state reached log message at the beginning of crash recovery (Heikki Linnakangas)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.7/changes/015", "db_id": "da68b6a249a4586d59ac0da69852e068", "patch_ids": [], "statement_hash": "3997e9004537d3a05fd28f797f7678ba0ee3de0950c2bacfa99899dbc584fdd6", "relations": [{"rule": 2, "type": "equivalent", "target": "325476af3c77ccef992a95250a47a827", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3997e9004537d3a05fd28f797f7678ba0ee3de0950c2bacfa99899dbc584fdd6"}}], "version": "9.0.7", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "325476af3c77ccef992a95250a47a827", "kind": "equivalent", "version": "9.1.3", "label": "9.1.3", "title": "防止在崩溃恢复开始时发出误导性的 “consistent recovery state reached” 日志消息", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3997e9004537d3a05fd28f797f7678ba0ee3de0950c2bacfa99899dbc584fdd6"}, "url": "/docs/compare/?release=9.1.3#9.1.3-840fb2b6366d32fb", "source_url": "/docs/release/9.1.3/#id-1.11.6.26.5"}]}, {"id": "9.0.7-6a332cf1c1973570", "cves": [], "html": "<p>修复 <code>pg_stat_replication</code>.<code>replay_location</code> 的初始值（Fujii Masao）</p>\n<p>此前，在至少重放一条 WAL 记录之前，显示的值是错误的。</p>", "text": "修复 pg_stat_replication.replay_location 的初始值（Fujii Masao） 此前，在至少重放一条 WAL 记录之前，显示的值是错误的。", "title": "修复 pg_stat_replication.replay_location 的初始值", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.7/#id-1.11.6.21.5", "source_hash": "7394dc519199f7acaf5b4551c5a2e9a7f9fa93d2b829a1c095c035ac55bd3501", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix initial value of pg_stat_replication.replay_location (Fujii Masao) Previously, the value shown would be wrong until at least one WAL record had been replayed.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.7/changes/016", "db_id": "2c63667e320d63612a8300f028bcbe84", "patch_ids": [], "statement_hash": "631b8cc2971ea5676587d6c0bd66830854e392ba6e0f333ea63dbc67618595a2", "relations": [{"rule": 2, "type": "equivalent", "target": "a882e3aba8b52ba172262ed7aa9329c0", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "631b8cc2971ea5676587d6c0bd66830854e392ba6e0f333ea63dbc67618595a2"}}], "version": "9.0.7", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "a882e3aba8b52ba172262ed7aa9329c0", "kind": "equivalent", "version": "9.1.3", "label": "9.1.3", "title": "修复 pg_stat_replication.replay_location 的初始值", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "631b8cc2971ea5676587d6c0bd66830854e392ba6e0f333ea63dbc67618595a2"}, "url": "/docs/compare/?release=9.1.3#9.1.3-6a332cf1c1973570", "source_url": "/docs/release/9.1.3/#id-1.11.6.26.5"}]}, {"id": "9.0.7-cae05cd76680812f", "cves": [], "html": "<p>修复带 <code>*</code> 的正则表达式反向引用（Tom Lane）</p>\n<p>代码实际上并不强制精确字符串匹配，而是接受任何满足反向引用符号所引用的模式子表达式的字符串。</p>\n<p>类似问题仍困扰着嵌入在更大带量词表达式中（而非量词直接作用对象）的反向引用。这将在未来的 <span>PostgreSQL</span> 版本中解决。</p>", "text": "修复带 * 的正则表达式反向引用（Tom Lane） 代码实际上并不强制精确字符串匹配，而是接受任何满足反向引用符号所引用的模式子表达式的字符串。 类似问题仍困扰着嵌入在更大带量词表达式中（而非量词直接作用对象）的反向引用。这将在未来的 PostgreSQL 版本中解决。", "title": "修复带 * 的正则表达式反向引用", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.7/#id-1.11.6.21.5", "source_hash": "ce52410ddcf3f7dbebbe5d850d9f7b3c47ed5e87b349e5e24bd0c64fa4fa80e0", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix regular expression back-references with * attached (Tom Lane) Rather than enforcing an exact string match, the code would effectively accept any string that satisfies the pattern sub-expression referenced by the back-reference symbol. A similar problem still afflicts back-references that are embedded in a larger quantified expression, rather than being the immediate subject of the quantifier. This will be addressed in a future PostgreSQL release.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.7/changes/017", "db_id": "7e442e3cb2a23239e845297d4db918d7", "patch_ids": [], "statement_hash": "6d0110b8ac06cfe572b8de35153a57c8a7001379b82707f1053c917f21f7630b", "relations": [{"rule": 2, "type": "equivalent", "target": "a6ec364b24724dec9c036e0aa05c713d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6d0110b8ac06cfe572b8de35153a57c8a7001379b82707f1053c917f21f7630b"}}], "version": "9.0.7", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "a6ec364b24724dec9c036e0aa05c713d", "kind": "equivalent", "version": "9.1.3", "label": "9.1.3", "title": "修复带 * 的正则表达式反向引用", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6d0110b8ac06cfe572b8de35153a57c8a7001379b82707f1053c917f21f7630b"}, "url": "/docs/compare/?release=9.1.3#9.1.3-cae05cd76680812f", "source_url": "/docs/release/9.1.3/#id-1.11.6.26.5"}]}, {"id": "9.0.7-ecec12062949cf50", "cves": [], "html": "<p>修复最近引入的 <code>inet</code>/<code>cidr</code> 值处理中的内存泄漏（Heikki Linnakangas）</p>\n<p><span>PostgreSQL</span> 2011 年 12 月版本中的一个补丁导致这些操作中的内存泄漏，在此类列上构建 btree 索引等场景中可能相当显著。</p>", "text": "修复最近引入的 inet/cidr 值处理中的内存泄漏（Heikki Linnakangas） PostgreSQL 2011 年 12 月版本中的一个补丁导致这些操作中的内存泄漏，在此类列上构建 btree 索引等场景中可能相当显著。", "title": "修复最近引入的 inet/cidr 值处理中的内存泄漏", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.7/#id-1.11.6.21.5", "source_hash": "293d39a7abde2093ec7f358909adf7e0bda763b70a2407205ce913e824c4a34c", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix recently-introduced memory leak in processing of inet/cidr values (Heikki Linnakangas) A patch in the December 2011 releases of PostgreSQL caused memory leakage in these operations, which could be significant in scenarios such as building a btree index on such a column.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.7/changes/018", "db_id": "cd8089e79cb365365b68d08c6392598a", "patch_ids": [], "statement_hash": "f433343748cac74886853901f86a81320e9550f5ea7973e6261f35a4266faef3", "relations": [{"rule": 2, "type": "equivalent", "target": "243f77125011a59f7470f2ff416f1922", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f433343748cac74886853901f86a81320e9550f5ea7973e6261f35a4266faef3"}}], "version": "9.0.7", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "243f77125011a59f7470f2ff416f1922", "kind": "equivalent", "version": "9.1.3", "label": "9.1.3", "title": "修复最近引入的 inet/cidr 值处理中的内存泄漏", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f433343748cac74886853901f86a81320e9550f5ea7973e6261f35a4266faef3"}, "url": "/docs/compare/?release=9.1.3#9.1.3-ecec12062949cf50", "source_url": "/docs/release/9.1.3/#id-1.11.6.26.5"}]}, {"id": "9.0.7-cf876d2ac3d432d2", "cves": [], "html": "<p>修复 SQL 语言函数中 <code>CREATE TABLE AS</code>/<code>SELECT INTO</code> 之后的悬空指针（Tom Lane）</p>\n<p>大多数情况下这只会在启用断言的构建中导致断言失败，但似乎可能有更糟的后果。</p>", "text": "修复 SQL 语言函数中 CREATE TABLE AS/SELECT INTO 之后的悬空指针（Tom Lane） 大多数情况下这只会在启用断言的构建中导致断言失败，但似乎可能有更糟的后果。", "title": "修复 SQL 语言函数中 CREATE TABLE AS/SELECT INTO 之后的悬空指针", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.7/#id-1.11.6.21.5", "source_hash": "f51016b24d19be2c097c117204a0ace6464c9b52cd69c90631c851cee54168d0", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix dangling pointer after CREATE TABLE AS/SELECT INTO in a SQL-language function (Tom Lane) In most cases this only led to an assertion failure in assert-enabled builds, but worse consequences seem possible.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.7/changes/019", "db_id": "87b9f81b5dd2c16f7d5b13fccbcf8410", "patch_ids": [], "statement_hash": "5a4b4eec0d936566ea518f47908739da90fe403d08f2af9cb986472a2afec861", "relations": [{"rule": 2, "type": "equivalent", "target": "c0d55b2dc7cd18ddddb0f00151e0aa4f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5a4b4eec0d936566ea518f47908739da90fe403d08f2af9cb986472a2afec861"}}], "version": "9.0.7", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "c0d55b2dc7cd18ddddb0f00151e0aa4f", "kind": "equivalent", "version": "9.1.3", "label": "9.1.3", "title": "修复 SQL 语言函数中 CREATE TABLE AS/SELECT INTO 之后的悬空指针", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5a4b4eec0d936566ea518f47908739da90fe403d08f2af9cb986472a2afec861"}, "url": "/docs/compare/?release=9.1.3#9.1.3-cf876d2ac3d432d2", "source_url": "/docs/release/9.1.3/#id-1.11.6.26.5"}]}, {"id": "9.0.7-065e36ee2eadb088", "cves": [], "html": "<p>避免 Windows 上 syslogger 中文件句柄的双重关闭（MauMau）</p>\n<p>通常这个错误不可见，但在调试版 Windows 上运行时会导致异常。</p>", "text": "避免 Windows 上 syslogger 中文件句柄的双重关闭（MauMau） 通常这个错误不可见，但在调试版 Windows 上运行时会导致异常。", "title": "避免 Windows 上 syslogger 中文件句柄的双重关闭", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.7/#id-1.11.6.21.5", "source_hash": "bdfdc4245b9537a81d65f4140c78937d85abb17a7e10ba705f12094a2e5d25fb", "section_path": ["变更"], "commit_groups": [], "identity_text": "Avoid double close of file handle in syslogger on Windows (MauMau) Ordinarily this error was invisible, but it would cause an exception when running on a debug version of Windows.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.7/changes/020", "db_id": "eeca78a7e0ee66abe8f857d8a4fe437b", "patch_ids": [], "statement_hash": "ef81bb3b29c693d98f75fc9085d70f162f69c783777a838226a4024aa7d2d281", "relations": [{"rule": 2, "type": "equivalent", "target": "210f7430ae5d959f3e6c3abee0f3501c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ef81bb3b29c693d98f75fc9085d70f162f69c783777a838226a4024aa7d2d281"}}], "version": "9.0.7", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "210f7430ae5d959f3e6c3abee0f3501c", "kind": "equivalent", "version": "9.1.3", "label": "9.1.3", "title": "避免 Windows 上 syslogger 中文件句柄的双重关闭", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ef81bb3b29c693d98f75fc9085d70f162f69c783777a838226a4024aa7d2d281"}, "url": "/docs/compare/?release=9.1.3#9.1.3-065e36ee2eadb088", "source_url": "/docs/release/9.1.3/#id-1.11.6.26.5"}]}, {"id": "9.0.7-49b12ebe0824eef1", "cves": [], "html": "<p>修复 plpgsql 中与 I/O 转换相关的内存泄漏（Andres Freund、Jan Urbanski、Tom Lane）</p>\n<p>某些操作会一直泄漏内存直到当前函数结束。</p>", "text": "修复 plpgsql 中与 I/O 转换相关的内存泄漏（Andres Freund、Jan Urbanski、Tom Lane） 某些操作会一直泄漏内存直到当前函数结束。", "title": "修复 plpgsql 中与 I/O 转换相关的内存泄漏", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.7/#id-1.11.6.21.5", "source_hash": "01e26c9ad78e4eb127f850621042255550778884cb839e3a826670c78c649fd5", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix I/O-conversion-related memory leaks in plpgsql (Andres Freund, Jan Urbanski, Tom Lane) Certain operations would leak memory until the end of the current function.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.7/changes/021", "db_id": "12ef3204431aad0793cc73c57f591029", "patch_ids": [], "statement_hash": "e71dc6b22fc26105e30d2e688f3b25e8f95efbd302045ff758f1515596272511", "relations": [{"rule": 2, "type": "equivalent", "target": "66e206bf04676822f69fc1303fd80554", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e71dc6b22fc26105e30d2e688f3b25e8f95efbd302045ff758f1515596272511"}}], "version": "9.0.7", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "66e206bf04676822f69fc1303fd80554", "kind": "equivalent", "version": "9.1.3", "label": "9.1.3", "title": "修复 plpgsql 中与 I/O 转换相关的内存泄漏", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e71dc6b22fc26105e30d2e688f3b25e8f95efbd302045ff758f1515596272511"}, "url": "/docs/compare/?release=9.1.3#9.1.3-49b12ebe0824eef1", "source_url": "/docs/release/9.1.3/#id-1.11.6.26.5"}]}, {"id": "9.0.7-5f79ec0d30be849f", "cves": [], "html": "<p>改进 <span>pg_dump</span> 对继承表列的处理（Tom Lane）</p>\n<p><span>pg_dump</span> 错误处理了子列与父列默认表达式不同的情况。如果默认值在文本上与父列相同但实际不同（例如因为模式搜索路径差异），它不会被识别为不同，因此转储和恢复后子列会被允许继承父列的默认值。子列为 <code>NOT NULL</code> 而父列不是的情况也可能被微妙地错误恢复。</p>", "text": "改进 pg_dump 对继承表列的处理（Tom Lane） pg_dump 错误处理了子列与父列默认表达式不同的情况。如果默认值在文本上与父列相同但实际不同（例如因为模式搜索路径差异），它不会被识别为不同，因此转储和恢复后子列会被允许继承父列的默认值。子列为 NOT NULL 而父列不是的情况也可能被微妙地错误恢复。", "title": "改进 pg_dump 对继承表列的处理", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.7/#id-1.11.6.21.5", "source_hash": "b658f5a3db2474d633ed50169e3954c444b78efdf0ca112d453569cf1df5e636", "section_path": ["变更"], "commit_groups": [], "identity_text": "Improve pg_dump's handling of inherited table columns (Tom Lane) pg_dump mishandled situations where a child column has a different default expression than its parent column. If the default is textually identical to the parent's default, but not actually the same (for instance, because of schema search path differences) it would not be recognized as different, so that after dump and restore the child would be allowed to inherit the parent's default. Child columns that are NOT NULL where their parent is not could also be restored subtly incorrectly.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.7/changes/022", "db_id": "6f8ed89a79151282bb2858992414a4b2", "patch_ids": [], "statement_hash": "158a537c69db028d923b5c2991e773518e4dd2cfa7c47b23e368d07b2fb717d3", "relations": [{"rule": 2, "type": "equivalent", "target": "be7afd93dc822f0d5ad95e1da48202a7", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "158a537c69db028d923b5c2991e773518e4dd2cfa7c47b23e368d07b2fb717d3"}}], "version": "9.0.7", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "be7afd93dc822f0d5ad95e1da48202a7", "kind": "equivalent", "version": "9.1.3", "label": "9.1.3", "title": "改进 pg_dump 对继承表列的处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "158a537c69db028d923b5c2991e773518e4dd2cfa7c47b23e368d07b2fb717d3"}, "url": "/docs/compare/?release=9.1.3#9.1.3-5f79ec0d30be849f", "source_url": "/docs/release/9.1.3/#id-1.11.6.26.5"}]}, {"id": "9.0.7-1ddf5ea2b03ade76", "cves": [], "html": "<p>修复 <span>pg_restore</span> 直接写数据库模式对 INSERT 式表数据的处理（Tom Lane）</p>\n<p>当使用 2011 年 9 月或 12 月版本的 <span>pg_restore</span> 时，对以 <code>--inserts</code> 或 <code>--column-inserts</code> 选项制作的归档文件直接恢复到数据库会失败，这是对另一个问题的修复中的一个疏忽所致。归档文件本身没有问题，文本模式输出也正常。</p>", "text": "修复 pg_restore 直接写数据库模式对 INSERT 式表数据的处理（Tom Lane） 当使用 2011 年 9 月或 12 月版本的 pg_restore 时，对以 --inserts 或 --column-inserts 选项制作的归档文件直接恢复到数据库会失败，这是对另一个问题的修复中的一个疏忽所致。归档文件本身没有问题，文本模式输出也正常。", "title": "修复 pg_restore 直接写数据库模式对 INSERT 式表数据的处理", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.7/#id-1.11.6.21.5", "source_hash": "816c02db9562e24f89860b847dcf51d7c8fe20f30c97b64a44dd8b2a02d9494d", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix pg_restore's direct-to-database mode for INSERT-style table data (Tom Lane) Direct-to-database restores from archive files made with --inserts or --column-inserts options fail when using pg_restore from a release dated September or December 2011, as a result of an oversight in a fix for another problem. The archive file itself is not at fault, and text-mode output is okay.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.7/changes/023", "db_id": "0970a61a30fd3e0714c7470405969c85", "patch_ids": [], "statement_hash": "6237f99699a3afb2dc3319b805c4e2e0de8fc963d25e0de58c0bf75261479eb3", "relations": [{"rule": 2, "type": "equivalent", "target": "83bed41baed2c47a1c8fb9b454210aa6", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6237f99699a3afb2dc3319b805c4e2e0de8fc963d25e0de58c0bf75261479eb3"}}], "version": "9.0.7", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "83bed41baed2c47a1c8fb9b454210aa6", "kind": "equivalent", "version": "9.1.3", "label": "9.1.3", "title": "修复 pg_restore 直接写数据库模式对 INSERT 式表数据的处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6237f99699a3afb2dc3319b805c4e2e0de8fc963d25e0de58c0bf75261479eb3"}, "url": "/docs/compare/?release=9.1.3#9.1.3-1ddf5ea2b03ade76", "source_url": "/docs/release/9.1.3/#id-1.11.6.26.5"}]}, {"id": "9.0.7-57e7e1ff5018f68c", "cves": [], "html": "<p>允许 <span>pg_upgrade</span> 处理包含 <code>regclass</code> 列的表（Bruce Momjian）</p>\n<p>由于 <span>pg_upgrade</span> 现在注意保留 <code>pg_class</code> OID，这一限制不再有任何理由存在。</p>", "text": "允许 pg_upgrade 处理包含 regclass 列的表（Bruce Momjian） 由于 pg_upgrade 现在注意保留 pg_class OID，这一限制不再有任何理由存在。", "title": "允许 pg_upgrade 处理包含 regclass 列的表", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.7/#id-1.11.6.21.5", "source_hash": "a588ffe1dcef55bd802ee811c5721039edaa16d5516e29548684198df57ddfde", "section_path": ["变更"], "commit_groups": [], "identity_text": "Allow pg_upgrade to process tables containing regclass columns (Bruce Momjian) Since pg_upgrade now takes care to preserve pg_class OIDs, there was no longer any reason for this restriction.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.7/changes/024", "db_id": "1d8dc46d4a6189c5594be814ed311956", "patch_ids": [], "statement_hash": "fec882118548896820b01bead9de257957251abeacd6ab29a1f5655111291053", "relations": [{"rule": 2, "type": "equivalent", "target": "10573e20bb8af84b76cb4d8321aedeb1", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fec882118548896820b01bead9de257957251abeacd6ab29a1f5655111291053"}}], "version": "9.0.7", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "10573e20bb8af84b76cb4d8321aedeb1", "kind": "equivalent", "version": "9.1.3", "label": "9.1.3", "title": "允许 pg_upgrade 处理包含 regclass 列的表", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fec882118548896820b01bead9de257957251abeacd6ab29a1f5655111291053"}, "url": "/docs/compare/?release=9.1.3#9.1.3-57e7e1ff5018f68c", "source_url": "/docs/release/9.1.3/#id-1.11.6.26.5"}]}, {"id": "9.0.7-d48a735cdaa9cc3f", "cves": [], "html": "<p>让 <span>libpq</span> 在查找 SSL 客户端证书文件时忽略 <code>ENOTDIR</code> 错误（Magnus Hagander）</p>\n<p>即使用户的主目录被设置为 <code>/dev/null</code> 之类，这也能建立 SSL 连接（虽然没有证书）。</p>", "text": "让 libpq 在查找 SSL 客户端证书文件时忽略 ENOTDIR 错误（Magnus Hagander） 即使用户的主目录被设置为 /dev/null 之类，这也能建立 SSL 连接（虽然没有证书）。", "title": "让 libpq 在查找 SSL 客户端证书文件时忽略 ENOTDIR 错误", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.7/#id-1.11.6.21.5", "source_hash": "b870db6ba3b1f1b5f7762c8c748320377626a4eb68bcaebca7da4d0943da7333", "section_path": ["变更"], "commit_groups": [], "identity_text": "Make libpq ignore ENOTDIR errors when looking for an SSL client certificate file (Magnus Hagander) This allows SSL connections to be established, though without a certificate, even when the user's home directory is set to something like /dev/null.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.7/changes/025", "db_id": "14f6084593935bd5f77623e5e6c91e9e", "patch_ids": [], "statement_hash": "9aeeae1ccf345ad8ba77dd38bb88d26e9d3413cbe9b5cb99fcdb307c6cabfb69", "relations": [{"rule": 2, "type": "equivalent", "target": "79789395ce1d453bf402c9fc53f29d1b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9aeeae1ccf345ad8ba77dd38bb88d26e9d3413cbe9b5cb99fcdb307c6cabfb69"}}], "version": "9.0.7", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "79789395ce1d453bf402c9fc53f29d1b", "kind": "equivalent", "version": "9.1.3", "label": "9.1.3", "title": "让 libpq 在查找 SSL 客户端证书文件时忽略 ENOTDIR 错误", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9aeeae1ccf345ad8ba77dd38bb88d26e9d3413cbe9b5cb99fcdb307c6cabfb69"}, "url": "/docs/compare/?release=9.1.3#9.1.3-d48a735cdaa9cc3f", "source_url": "/docs/release/9.1.3/#id-1.11.6.26.5"}]}, {"id": "9.0.7-bc29f69f891e8092", "cves": [], "html": "<p>修复 <span>ecpg</span> 的 SQLDA 区域中更多的字段对齐问题（Zoltan Boszormenyi）</p>", "text": "修复 ecpg 的 SQLDA 区域中更多的字段对齐问题（Zoltan Boszormenyi）", "title": "修复 ecpg 的 SQLDA 区域中更多的字段对齐问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.7/#id-1.11.6.21.5", "source_hash": "76b2c11b01a44cc65cbb7e5d1d6fbe817ced8b89d53cc7f7d4fd3971131cec9f", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix some more field alignment issues in ecpg's SQLDA area (Zoltan Boszormenyi)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.7/changes/026", "db_id": "92fef594bd7ea01829eec5eefbced285", "patch_ids": [], "statement_hash": "7ce31dbcd512cda110883e88b34128b5a9ef4ae6304dc7386653cfc2bbcb2bbf", "relations": [{"rule": 2, "type": "equivalent", "target": "2738177bb370c81a0ad27e668b1c9e1a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7ce31dbcd512cda110883e88b34128b5a9ef4ae6304dc7386653cfc2bbcb2bbf"}}], "version": "9.0.7", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "2738177bb370c81a0ad27e668b1c9e1a", "kind": "equivalent", "version": "9.1.3", "label": "9.1.3", "title": "修复 ecpg 的 SQLDA 区域中更多的字段对齐问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7ce31dbcd512cda110883e88b34128b5a9ef4ae6304dc7386653cfc2bbcb2bbf"}, "url": "/docs/compare/?release=9.1.3#9.1.3-bc29f69f891e8092", "source_url": "/docs/release/9.1.3/#id-1.11.6.26.5"}]}, {"id": "9.0.7-aff74475c9e32c03", "cves": [], "html": "<p>允许 <span>ecpg</span> 的 <code>DEALLOCATE</code> 语句中使用 <code>AT</code> 选项（Michael Meskes）</p>\n<p>支持它的基础设施已存在一段时间，但由于疏忽仍有一个错误检查拒绝这种情况。</p>", "text": "允许 ecpg 的 DEALLOCATE 语句中使用 AT 选项（Michael Meskes） 支持它的基础设施已存在一段时间，但由于疏忽仍有一个错误检查拒绝这种情况。", "title": "允许 ecpg 的 DEALLOCATE 语句中使用 AT 选项", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.7/#id-1.11.6.21.5", "source_hash": "2ea42743d4f1699e5c0a6ef69ee874c3a2e2e6f17ba2b877058c0fba30f6b714", "section_path": ["变更"], "commit_groups": [], "identity_text": "Allow AT option in ecpg DEALLOCATE statements (Michael Meskes) The infrastructure to support this has been there for awhile, but through an oversight there was still an error check rejecting the case.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.7/changes/027", "db_id": "d15465f266c890d6251a790170f0c49b", "patch_ids": [], "statement_hash": "8980c7ab34eca5ca3cf73f66be69ecfe94dabb8376bf5ef5524cb886026b5e12", "relations": [{"rule": 2, "type": "equivalent", "target": "01e6e364db058723950f1b8fcf55728b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8980c7ab34eca5ca3cf73f66be69ecfe94dabb8376bf5ef5524cb886026b5e12"}}], "version": "9.0.7", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "01e6e364db058723950f1b8fcf55728b", "kind": "equivalent", "version": "9.1.3", "label": "9.1.3", "title": "允许 ecpg 的 DEALLOCATE 语句中使用 AT 选项", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8980c7ab34eca5ca3cf73f66be69ecfe94dabb8376bf5ef5524cb886026b5e12"}, "url": "/docs/compare/?release=9.1.3#9.1.3-aff74475c9e32c03", "source_url": "/docs/release/9.1.3/#id-1.11.6.26.5"}]}, {"id": "9.0.7-c05cdf70a35a0137", "cves": [], "html": "<p>在 ecpg 中定义 varchar 结构时不使用变量名（Michael Meskes）</p>", "text": "在 ecpg 中定义 varchar 结构时不使用变量名（Michael Meskes）", "title": "在 ecpg 中定义 varchar 结构时不使用变量名", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.7/#id-1.11.6.21.5", "source_hash": "3a1bad7e1d05db25fd517166eb46b9f794a3c603d49f02e2aefd6a92887c2355", "section_path": ["变更"], "commit_groups": [], "identity_text": "Do not use the variable name when defining a varchar structure in ecpg (Michael Meskes)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.7/changes/028", "db_id": "f31732d1b67e8904a5ec18674e2fc40e", "patch_ids": [], "statement_hash": "3d26d8ec273a92fe515c4cf82c8452db492420ad95f5cab947917984d17d4e63", "relations": [{"rule": 2, "type": "equivalent", "target": "dcdd1182cbaa888e1972835df6bfe4de", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3d26d8ec273a92fe515c4cf82c8452db492420ad95f5cab947917984d17d4e63"}}], "version": "9.0.7", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "dcdd1182cbaa888e1972835df6bfe4de", "kind": "equivalent", "version": "9.1.3", "label": "9.1.3", "title": "在 ecpg 中定义 varchar 结构时不使用变量名", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3d26d8ec273a92fe515c4cf82c8452db492420ad95f5cab947917984d17d4e63"}, "url": "/docs/compare/?release=9.1.3#9.1.3-c05cdf70a35a0137", "source_url": "/docs/release/9.1.3/#id-1.11.6.26.5"}]}, {"id": "9.0.7-18d5fb07e010666f", "cves": [], "html": "<p>修复 <code>contrib/auto_explain</code> 的 JSON 输出模式，使其产生有效的 JSON（Andrew Dunstan）</p>\n<p>输出在顶层使用了方括号，而本应使用花括号。</p>", "text": "修复 contrib/auto_explain 的 JSON 输出模式，使其产生有效的 JSON（Andrew Dunstan） 输出在顶层使用了方括号，而本应使用花括号。", "title": "修复 contrib/auto_explain 的 JSON 输出模式，使其产生有效的 JSON", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.7/#id-1.11.6.21.5", "source_hash": "f1b9d7704f75e88187caafe5d525f3678e368b69550cf07e8b4292f895bf4f55", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix contrib/auto_explain's JSON output mode to produce valid JSON (Andrew Dunstan) The output used brackets at the top level, when it should have used braces.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.7/changes/029", "db_id": "05ca8e8f608ee6c97fa85633e3f36612", "patch_ids": [], "statement_hash": "57ef4397ef76a71d401c417d58411e1203dd1f98da0d525e868acec90db792c6", "relations": [{"rule": 2, "type": "equivalent", "target": "16ced96beb9bb282be9c60757f74e5d7", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "57ef4397ef76a71d401c417d58411e1203dd1f98da0d525e868acec90db792c6"}}], "version": "9.0.7", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "16ced96beb9bb282be9c60757f74e5d7", "kind": "equivalent", "version": "9.1.3", "label": "9.1.3", "title": "修复 contrib/auto_explain 的 JSON 输出模式，使其产生有效的 JSON", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "57ef4397ef76a71d401c417d58411e1203dd1f98da0d525e868acec90db792c6"}, "url": "/docs/compare/?release=9.1.3#9.1.3-18d5fb07e010666f", "source_url": "/docs/release/9.1.3/#id-1.11.6.26.5"}]}, {"id": "9.0.7-a814d604cc339e9f", "cves": [], "html": "<p>修复 <code>contrib/intarray</code> 的 <code>int[] &amp; int[]</code> 操作符中的错误（Guillaume Lelarge）</p>\n<p>如果两个输入数组共有的最小整数是 1，且任一数组中有更小的值，那么 1 会被错误地从结果中遗漏。</p>", "text": "修复 contrib/intarray 的 int[] & int[] 操作符中的错误（Guillaume Lelarge） 如果两个输入数组共有的最小整数是 1，且任一数组中有更小的值，那么 1 会被错误地从结果中遗漏。", "title": "修复 contrib/intarray 的 int[] & int[] 操作符中的错误", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.7/#id-1.11.6.21.5", "source_hash": "9f5304099089b75c2e674f06d34b9a06a254080d246b14b150a6bf9d2cebceae", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix error in contrib/intarray's int[] & int[] operator (Guillaume Lelarge) If the smallest integer the two input arrays have in common is 1, and there are smaller values in either array, then 1 would be incorrectly omitted from the result.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.7/changes/030", "db_id": "94c69f7c46af12f9d388d9d24b65826f", "patch_ids": [], "statement_hash": "82b353c53abec0448427e3214669b11afadb5f052b5eeb32da0373e7abd2a329", "relations": [{"rule": 2, "type": "equivalent", "target": "2bb21ee93315a177b41dcbbcebb3459f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "82b353c53abec0448427e3214669b11afadb5f052b5eeb32da0373e7abd2a329"}}], "version": "9.0.7", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "2bb21ee93315a177b41dcbbcebb3459f", "kind": "equivalent", "version": "9.1.3", "label": "9.1.3", "title": "修复 contrib/intarray 的 int[] & int[] 操作符中的错误", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "82b353c53abec0448427e3214669b11afadb5f052b5eeb32da0373e7abd2a329"}, "url": "/docs/compare/?release=9.1.3#9.1.3-a814d604cc339e9f", "source_url": "/docs/release/9.1.3/#id-1.11.6.26.5"}]}, {"id": "9.0.7-2506f208fa1d901a", "cves": [], "html": "<p>修复 <code>contrib/pgcrypto</code> 的 <code>encrypt_iv()</code> 和 <code>decrypt_iv()</code> 中的错误检测（Marko Kreen）</p>\n<p>这些函数未能报告某些类型的无效输入错误，而是对错误输入返回随机垃圾值。</p>", "text": "修复 contrib/pgcrypto 的 encrypt_iv() 和 decrypt_iv() 中的错误检测（Marko Kreen） 这些函数未能报告某些类型的无效输入错误，而是对错误输入返回随机垃圾值。", "title": "修复 contrib/pgcrypto 的 encrypt_iv() 和 decrypt_iv() 中的错误检测", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.7/#id-1.11.6.21.5", "source_hash": "e676363fbfa9ca5c6af8e76b8eed0a1c73d7ec2b8da0497a3cdeec20c26b27c5", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix error detection in contrib/pgcrypto's encrypt_iv() and decrypt_iv() (Marko Kreen) These functions failed to report certain types of invalid-input errors, and would instead return random garbage values for incorrect input.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.7/changes/031", "db_id": "54f9d3f079a9f4d0099d578b59ecd00e", "patch_ids": [], "statement_hash": "ad3ebf392b7f11e4c043b6a65a12dc4de4f78b47a414333e6dd887a6f1782ad8", "relations": [{"rule": 2, "type": "equivalent", "target": "7180e02f64a8698c1014ce4d23db4ac8", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ad3ebf392b7f11e4c043b6a65a12dc4de4f78b47a414333e6dd887a6f1782ad8"}}], "version": "9.0.7", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "7180e02f64a8698c1014ce4d23db4ac8", "kind": "equivalent", "version": "9.1.3", "label": "9.1.3", "title": "修复 contrib/pgcrypto 的 encrypt_iv() 和 decrypt_iv() 中的错误检测", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ad3ebf392b7f11e4c043b6a65a12dc4de4f78b47a414333e6dd887a6f1782ad8"}, "url": "/docs/compare/?release=9.1.3#9.1.3-2506f208fa1d901a", "source_url": "/docs/release/9.1.3/#id-1.11.6.26.5"}]}, {"id": "9.0.7-d90e16591826c78c", "cves": [], "html": "<p>修复 <code>contrib/test_parser</code> 中的一字节缓冲区越界（Paul Guyot）</p>\n<p>代码会尝试多读一个字节，这在极端情况下会崩溃。由于 <code>contrib/test_parser</code> 只是示例代码，这本身不是安全问题，但坏的示例代码仍然是坏的。</p>", "text": "修复 contrib/test_parser 中的一字节缓冲区越界（Paul Guyot） 代码会尝试多读一个字节，这在极端情况下会崩溃。由于 contrib/test_parser 只是示例代码，这本身不是安全问题，但坏的示例代码仍然是坏的。", "title": "修复 contrib/test_parser 中的一字节缓冲区越界", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.7/#id-1.11.6.21.5", "source_hash": "fd001559b01970fae897a9cda97253c585f8b62f5ba2b72a5d15cf28ea4188ac", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix one-byte buffer overrun in contrib/test_parser (Paul Guyot) The code would try to read one more byte than it should, which would crash in corner cases. Since contrib/test_parser is only example code, this is not a security issue in itself, but bad example code is still bad.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.7/changes/032", "db_id": "4e693177659a63abd875b9c9572ea052", "patch_ids": [], "statement_hash": "3bc9ff2f5d63cdfb4a5f5c432078c619dd7c30945ccbe507f82ccb50318d6f79", "relations": [{"rule": 2, "type": "equivalent", "target": "7b18767c0f8313a9a39f10a53e5b35b0", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3bc9ff2f5d63cdfb4a5f5c432078c619dd7c30945ccbe507f82ccb50318d6f79"}}], "version": "9.0.7", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "7b18767c0f8313a9a39f10a53e5b35b0", "kind": "equivalent", "version": "9.1.3", "label": "9.1.3", "title": "修复 contrib/test_parser 中的一字节缓冲区越界", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3bc9ff2f5d63cdfb4a5f5c432078c619dd7c30945ccbe507f82ccb50318d6f79"}, "url": "/docs/compare/?release=9.1.3#9.1.3-d90e16591826c78c", "source_url": "/docs/release/9.1.3/#id-1.11.6.26.5"}]}, {"id": "9.0.7-0c27adbf005906ea", "cves": [], "html": "<p>在 ARM 上如果可用则使用 <code>__sync_lock_test_and_set()</code> 实现自旋锁（Martin Pitt）</p>\n<p>该函数取代了我们此前对 <code>SWPB</code> 指令的使用，该指令已被弃用且在 ARMv6 及更高版本上不可用。报告表明旧代码在较新的 ARM 板上不会以明显方式失败，而只是不对并发访问互锁，导致多进程操作中的离奇失败。</p>", "text": "在 ARM 上如果可用则使用 __sync_lock_test_and_set() 实现自旋锁（Martin Pitt） 该函数取代了我们此前对 SWPB 指令的使用，该指令已被弃用且在 ARMv6 及更高版本上不可用。报告表明旧代码在较新的 ARM 板上不会以明显方式失败，而只是不对并发访问互锁，导致多进程操作中的离奇失败。", "title": "在 ARM 上如果可用则使用 __sync_lock_test_and_set() 实现自旋锁", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.7/#id-1.11.6.21.5", "source_hash": "746342a3b556b3594598c06cc1d8cdb5f654a7165e7e06153b1fcc9c7e995bbf", "section_path": ["变更"], "commit_groups": [], "identity_text": "Use __sync_lock_test_and_set() for spinlocks on ARM, if available (Martin Pitt) This function replaces our previous use of the SWPB instruction, which is deprecated and not available on ARMv6 and later. Reports suggest that the old code doesn't fail in an obvious way on recent ARM boards, but simply doesn't interlock concurrent accesses, leading to bizarre failures in multiprocess operation.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.7/changes/033", "db_id": "1007754c319d010b37f2f434bbf0f476", "patch_ids": [], "statement_hash": "9e9d4345b16000415b0573b50612682290f0bb61f211a8463ed848c6172efb61", "relations": [{"rule": 2, "type": "equivalent", "target": "1d34f3b759a378570598edf260beb006", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9e9d4345b16000415b0573b50612682290f0bb61f211a8463ed848c6172efb61"}}], "version": "9.0.7", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "1d34f3b759a378570598edf260beb006", "kind": "equivalent", "version": "9.1.3", "label": "9.1.3", "title": "在 ARM 上如果可用则使用 __sync_lock_test_and_set() 实现自旋锁", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9e9d4345b16000415b0573b50612682290f0bb61f211a8463ed848c6172efb61"}, "url": "/docs/compare/?release=9.1.3#9.1.3-0c27adbf005906ea", "source_url": "/docs/release/9.1.3/#id-1.11.6.26.5"}]}, {"id": "9.0.7-38c8ef906a738e1e", "cves": [], "html": "<p>在使用接受该选项的 gcc 版本构建时使用 <code>-fexcess-precision=standard</code> 选项（Andrew Dunstan）</p>\n<p>这防止了较新版本 gcc 产生\"创造性\"结果的各种场景。</p>", "text": "在使用接受该选项的 gcc 版本构建时使用 -fexcess-precision=standard 选项（Andrew Dunstan） 这防止了较新版本 gcc 产生\"创造性\"结果的各种场景。", "title": "在使用接受该选项的 gcc 版本构建时使用 -fexcess-precision=standard 选项", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.7/#id-1.11.6.21.5", "source_hash": "855f3ba6fda4e4cbf311525801f20aefd2fd44e297d47935568843356c183061", "section_path": ["变更"], "commit_groups": [], "identity_text": "Use -fexcess-precision=standard option when building with gcc versions that accept it (Andrew Dunstan) This prevents assorted scenarios wherein recent versions of gcc will produce creative results.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.7/changes/034", "db_id": "40c55f7b57cc4a2f2064ab97113ecfaa", "patch_ids": [], "statement_hash": "43fed1ff06418e12a83b302fd1634ef1c169e9814384d856d500ee1f9326c0b2", "relations": [{"rule": 2, "type": "equivalent", "target": "73293dec31b2426901717af61b622e0f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "43fed1ff06418e12a83b302fd1634ef1c169e9814384d856d500ee1f9326c0b2"}}], "version": "9.0.7", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "73293dec31b2426901717af61b622e0f", "kind": "equivalent", "version": "9.1.3", "label": "9.1.3", "title": "在使用接受该选项的 gcc 版本构建时使用 -fexcess-precision=standard 选项", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "43fed1ff06418e12a83b302fd1634ef1c169e9814384d856d500ee1f9326c0b2"}, "url": "/docs/compare/?release=9.1.3#9.1.3-38c8ef906a738e1e", "source_url": "/docs/release/9.1.3/#id-1.11.6.26.5"}]}, {"id": "9.0.7-102fd708b6ca5c2d", "cves": [], "html": "<p>允许在 FreeBSD 上使用线程化 Python（Chris Rees）</p>\n<p>我们的 configure 脚本此前认为这种组合无法工作；但 FreeBSD 修复了问题，因此移除该错误检查。</p>", "text": "允许在 FreeBSD 上使用线程化 Python（Chris Rees） 我们的 configure 脚本此前认为这种组合无法工作；但 FreeBSD 修复了问题，因此移除该错误检查。", "title": "允许在 FreeBSD 上使用线程化 Python", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.7/#id-1.11.6.21.5", "source_hash": "9586297b931f5430f9ad5a84acac1f081275027979dde3d06990d67eab018087", "section_path": ["变更"], "commit_groups": [], "identity_text": "Allow use of threaded Python on FreeBSD (Chris Rees) Our configure script previously believed that this combination wouldn't work; but FreeBSD fixed the problem, so remove that error check.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.7/changes/035", "db_id": "73d16e12d17663a4d556d8b5f3ee8919", "patch_ids": [], "statement_hash": "748c557c27d47995433e5c33df254fc3ec3dff06284934bdbdc0425854bfe8d2", "relations": [{"rule": 2, "type": "equivalent", "target": "8972121a9e9a512ba41e56d398fcbd20", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "748c557c27d47995433e5c33df254fc3ec3dff06284934bdbdc0425854bfe8d2"}}], "version": "9.0.7", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "8972121a9e9a512ba41e56d398fcbd20", "kind": "equivalent", "version": "9.1.3", "label": "9.1.3", "title": "允许在 FreeBSD 上使用线程化 Python", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "748c557c27d47995433e5c33df254fc3ec3dff06284934bdbdc0425854bfe8d2"}, "url": "/docs/compare/?release=9.1.3#9.1.3-102fd708b6ca5c2d", "source_url": "/docs/release/9.1.3/#id-1.11.6.26.5"}]}]}, {"date": "2011-12-05", "build": "9.0.6", "major": "9.0", "minor": 6, "manual": "9.0", "status": "stable", "doc_git": "", "version": "9.0.6", "eol_date": "2015-10-08", "date_text": "2011-12-05", "supported": false, "manual_url": "/docs/9.0/release-9-0-6.html", "source_url": "/docs/release/9.0.6/", "entry_count": 29, "placeholder": false, "content_hash": "16deef75611a51c7e2bbba51c8a9802703b584e2d9fc967ed4654dc9bc64f4fd", "manual_build": "9.0.23", "source_as_of": "", "changes_count": 29, "doc_loaded_at": "2026-09-26T02:56:48.570247", "migration_html": "<p>对于运行 9.0.X 的用户，不需要进行转储/恢复。</p>\n<p>不过，<code>information_schema.referential_constraints</code> 视图的定义中被发现存在一个长期错误。如果你依赖该视图的正确结果，应按下面第一条变更日志条目的说明替换其定义。</p>\n<p>不过，如果你是从早于 9.0.4 的版本升级，请参见<a href=\"/docs/9.0/release-9-0-4.html\" title=\"E.20. 版本 9.0.4\">第 E.20 节</a>。</p>", "compatibility_count": 0, "label": "9.0.6", "status_label": "历史版本", "eol": "2015-10-08", "age_days": 5413, "support_days": -4010, "entries": [{"id": "9.0.6-85fb024ac8fe0c73", "cves": [], "html": "<p>修复 <code>information_schema.referential_constraints</code> 视图中的缺陷（Tom Lane）</p>\n<p>该视图在把外键约束与它依赖的主键或唯一键约束匹配时不够谨慎。这可能导致某个外键约束完全不被显示、被显示多次，或者声称它依赖于一个并非其实际依赖的约束。</p>\n<p>由于该视图定义是由 <span>initdb</span> 安装的，仅靠升级不会修复问题。如果需要修复现有安装，可以（以超级用户身份）删除 <code>information_schema</code> 模式，然后通过载入 <code><em><code>SHAREDIR</code></em>/information_schema.sql</code> 重新创建它。（如果不确定 <em><code>SHAREDIR</code></em> 在哪里，运行 <code>pg_config --sharedir</code>。）这必须在每个要修复的数据库中重复执行。</p>", "text": "修复 information_schema.referential_constraints 视图中的缺陷（Tom Lane） 该视图在把外键约束与它依赖的主键或唯一键约束匹配时不够谨慎。这可能导致某个外键约束完全不被显示、被显示多次，或者声称它依赖于一个并非其实际依赖的约束。 由于该视图定义是由 initdb 安装的，仅靠升级不会修复问题。如果需要修复现有安装，可以（以超级用户身份）删除 information_schema 模式，然后通过载入 SHAREDIR/information_schema.sql 重新创建它。（如果不确定 SHAREDIR 在哪里，运行 pg_config --sharedir。）这必须在每个要修复的数据库中重复执行。", "title": "修复 information_schema.referential_constraints 视图中的缺陷", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.6/#id-1.11.6.22.5", "source_hash": "9386ddd652d57baa746058efa036cf75ef10fea8ba8ee2c433e5cc928df87982", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix bugs in information_schema.referential_constraints view (Tom Lane) This view was being insufficiently careful about matching the foreign-key constraint to the depended-on primary or unique key constraint. That could result in failure to show a foreign key constraint at all, or showing it multiple times, or claiming that it depends on a different constraint than the one it really does. Since the view definition is installed by initdb, merely upgrading will not fix the problem. If you need to fix this in an existing installation, you can (as a superuser) drop the information_schema schema then re-create it by sourcing SHAREDIR/information_schema.sql. (Run pg_config --sharedir if you're uncertain where SHAREDIR is.) This must be repeated in each database to be fixed.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.6/changes/001", "db_id": "d778743354ffc01e473254043b41fd7b", "patch_ids": [], "statement_hash": "f96bddcd07f383c75a22bd49a3b74bee3a57e498897d2dfe9c6460fd55bc8652", "relations": [{"rule": 2, "type": "equivalent", "target": "92e410bc23772d58172da9b62177555e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f96bddcd07f383c75a22bd49a3b74bee3a57e498897d2dfe9c6460fd55bc8652"}}], "version": "9.0.6", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "92e410bc23772d58172da9b62177555e", "kind": "equivalent", "version": "9.1.2", "label": "9.1.2", "title": "修复 information_schema.referential_constraints 视图中的缺陷", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f96bddcd07f383c75a22bd49a3b74bee3a57e498897d2dfe9c6460fd55bc8652"}, "url": "/docs/compare/?release=9.1.2#9.1.2-85fb024ac8fe0c73", "source_url": "/docs/release/9.1.2/#id-1.11.6.27.5"}]}, {"id": "9.0.6-d423eea4c859424b", "cves": [], "html": "<p>修复连接到返回标量的函数输出的 <code>UPDATE</code> 或 <code>DELETE</code> 期间可能崩溃的问题（Tom Lane）</p>\n<p>只有当目标行被并发更新时才可能崩溃，因此该问题只是间歇性出现。</p>", "text": "修复连接到返回标量的函数输出的 UPDATE 或 DELETE 期间可能崩溃的问题（Tom Lane） 只有当目标行被并发更新时才可能崩溃，因此该问题只是间歇性出现。", "title": "修复连接到返回标量的函数输出的 UPDATE 或 DELETE 期间可能崩溃的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.6/#id-1.11.6.22.5", "source_hash": "c5022c673435a151aba9fc74a3fbe306fa278a15cc2e885af53357ec4d9305be", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix possible crash during UPDATE or DELETE that joins to the output of a scalar-returning function (Tom Lane) A crash could only occur if the target row had been concurrently updated, so this problem surfaced only intermittently.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.6/changes/002", "db_id": "51efaa949afc963ee0be46e420af00cd", "patch_ids": [], "statement_hash": "b2ae8b1345784902957b924a8733980e68d820938c3450b7d1a5af8f91899696", "relations": [{"rule": 2, "type": "equivalent", "target": "d108611113394e2d26922009679254f6", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b2ae8b1345784902957b924a8733980e68d820938c3450b7d1a5af8f91899696"}}], "version": "9.0.6", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "d108611113394e2d26922009679254f6", "kind": "equivalent", "version": "9.1.2", "label": "9.1.2", "title": "修复连接到返回标量的函数输出的 UPDATE 或 DELETE 期间可能崩溃的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b2ae8b1345784902957b924a8733980e68d820938c3450b7d1a5af8f91899696"}, "url": "/docs/compare/?release=9.1.2#9.1.2-d423eea4c859424b", "source_url": "/docs/release/9.1.2/#id-1.11.6.27.5"}]}, {"id": "9.0.6-3006dd53a18cf688", "cves": [], "html": "<p>修复 GIN 索引更新 WAL 记录的错误重放（Tom Lane）</p>\n<p>这可能导致崩溃后或热备服务器上瞬时找不到索引项。不过，该问题会在该索引下一次 <code>VACUUM</code> 时被修复。</p>", "text": "修复 GIN 索引更新 WAL 记录的错误重放（Tom Lane） 这可能导致崩溃后或热备服务器上瞬时找不到索引项。不过，该问题会在该索引下一次 VACUUM 时被修复。", "title": "修复 GIN 索引更新 WAL 记录的错误重放", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.6/#id-1.11.6.22.5", "source_hash": "167c4b85bc96baf748ca0b5dedd16abfb3a2059fd233351bd63ac6c0a2991c06", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix incorrect replay of WAL records for GIN index updates (Tom Lane) This could result in transiently failing to find index entries after a crash, or on a hot-standby server. The problem would be repaired by the next VACUUM of the index, however.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.6/changes/003", "db_id": "ca9a12aaa3d7ed46abd856a48c858d60", "patch_ids": [], "statement_hash": "63b2e2ee066d365afc6a1d2adc6f59dd1129304adead5d85510f0acb58969b70", "relations": [{"rule": 2, "type": "equivalent", "target": "449ca8bfa0477328631b2201078f6d47", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "63b2e2ee066d365afc6a1d2adc6f59dd1129304adead5d85510f0acb58969b70"}}], "version": "9.0.6", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "449ca8bfa0477328631b2201078f6d47", "kind": "equivalent", "version": "9.1.2", "label": "9.1.2", "title": "修复 GIN 索引更新 WAL 记录的错误重放", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "63b2e2ee066d365afc6a1d2adc6f59dd1129304adead5d85510f0acb58969b70"}, "url": "/docs/compare/?release=9.1.2#9.1.2-3006dd53a18cf688", "source_url": "/docs/release/9.1.2/#id-1.11.6.27.5"}]}, {"id": "9.0.6-2d9bfd29a0d320bd", "cves": [], "html": "<p>修复 <code>CREATE TABLE dest AS SELECT * FROM src</code> 或 <code>INSERT INTO dest SELECT * FROM src</code> 期间与 TOAST 相关的数据损坏（Tom Lane）</p>\n<p>如果表曾被 <code>ALTER TABLE ADD COLUMN</code> 修改过，在某些极端情况下，尝试把它的数据原样复制到另一个表可能产生损坏的结果。该问题只会在 8.4 及更高版本中以这种确切形式出现，但我们也给更早的版本打了补丁，以防有其他代码路径可能触发同一缺陷。</p>", "text": "修复 CREATE TABLE dest AS SELECT * FROM src 或 INSERT INTO dest SELECT * FROM src 期间与 TOAST 相关的数据损坏（Tom Lane） 如果表曾被 ALTER TABLE ADD COLUMN 修改过，在某些极端情况下，尝试把它的数据原样复制到另一个表可能产生损坏的结果。该问题只会在 8.4 及更高版本中以这种确切形式出现，但我们也给更早的版本打了补丁，以防有其他代码路径可能触发同一缺陷。", "title": "修复 CREATE TABLE dest AS SELECT * FROM src 或 INSERT INTO dest SELECT * FROM src 期间与 TOAST 相关的数据损坏", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.6/#id-1.11.6.22.5", "source_hash": "38c351cf50b961352e3988a75508e16929e7156a1016ad8732aa4245dfd10cf1", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix TOAST-related data corruption during CREATE TABLE dest AS SELECT * FROM src or INSERT INTO dest SELECT * FROM src (Tom Lane) If a table has been modified by ALTER TABLE ADD COLUMN, attempts to copy its data verbatim to another table could produce corrupt results in certain corner cases. The problem can only manifest in this precise form in 8.4 and later, but we patched earlier versions as well in case there are other code paths that could trigger the same bug.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.6/changes/004", "db_id": "629121ba75ba1de67b9add5a97908c01", "patch_ids": [], "statement_hash": "dd2201091a4cc7227358294105a2eccf81d3a4ca2c03ef4bbe38587e52a2aa74", "relations": [{"rule": 2, "type": "equivalent", "target": "1ceea89f0b8a90b77b21fb707733af30", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dd2201091a4cc7227358294105a2eccf81d3a4ca2c03ef4bbe38587e52a2aa74"}}], "version": "9.0.6", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "1ceea89f0b8a90b77b21fb707733af30", "kind": "equivalent", "version": "9.1.2", "label": "9.1.2", "title": "修复 CREATE TABLE dest AS SELECT * FROM src 或 INSERT INTO dest SELECT * FROM src 期间与 TOAST 相关的数据损坏", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dd2201091a4cc7227358294105a2eccf81d3a4ca2c03ef4bbe38587e52a2aa74"}, "url": "/docs/compare/?release=9.1.2#9.1.2-2d9bfd29a0d320bd", "source_url": "/docs/release/9.1.2/#id-1.11.6.27.5"}]}, {"id": "9.0.6-7a6ebca2ca27750d", "cves": [], "html": "<p>修复热备启动期间可能的失败（Simon Riggs）</p>", "text": "修复热备启动期间可能的失败（Simon Riggs）", "title": "修复热备启动期间可能的失败", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.6/#id-1.11.6.22.5", "source_hash": "db92f00d8102ba2ebb1b41eeeeeea69f1739176b4030f40dfdf7fec53387df95", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix possible failures during hot standby startup (Simon Riggs)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.6/changes/005", "db_id": "464bad6cb768185648530f246457d8fc", "patch_ids": [], "statement_hash": "3a734e0738b5035f1c088d7ec3ee6ad860069e0f20e0bd57fd0beedaa26f55e9", "relations": [{"rule": 2, "type": "equivalent", "target": "4279106ec7d14d6a180402dbd6a1aa1a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3a734e0738b5035f1c088d7ec3ee6ad860069e0f20e0bd57fd0beedaa26f55e9"}}], "version": "9.0.6", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "4279106ec7d14d6a180402dbd6a1aa1a", "kind": "equivalent", "version": "9.1.2", "label": "9.1.2", "title": "修复热备启动期间可能的失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3a734e0738b5035f1c088d7ec3ee6ad860069e0f20e0bd57fd0beedaa26f55e9"}, "url": "/docs/compare/?release=9.1.2#9.1.2-7a6ebca2ca27750d", "source_url": "/docs/release/9.1.2/#id-1.11.6.27.5"}]}, {"id": "9.0.6-a3282037f9e26a02", "cves": [], "html": "<p>当初始快照不完整时更快地启动热备（Simon Riggs）</p>", "text": "当初始快照不完整时更快地启动热备（Simon Riggs）", "title": "当初始快照不完整时更快地启动热备", "commits": [], "section": "变更", "category": "performance", "source_url": "/docs/release/9.0.6/#id-1.11.6.22.5", "source_hash": "f72d85c544b092d85ada6aefcbfc457157a08a84ac08937b575fd5f5883c76f2", "section_path": ["变更"], "commit_groups": [], "identity_text": "Start hot standby faster when initial snapshot is incomplete (Simon Riggs)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.6/changes/006", "db_id": "381014a2d7eeb21d89dae65da3b88aa1", "patch_ids": [], "statement_hash": "80cc6c7a6ab8b721008337f0b99dcfb42eaf67b987d75449cb1660a68ea82b0f", "relations": [{"rule": 2, "type": "equivalent", "target": "b2692b32fb6238969bfd723747c2a8f7", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "80cc6c7a6ab8b721008337f0b99dcfb42eaf67b987d75449cb1660a68ea82b0f"}}], "version": "9.0.6", "category_label": "性能改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "b2692b32fb6238969bfd723747c2a8f7", "kind": "equivalent", "version": "9.1.2", "label": "9.1.2", "title": "当初始快照不完整时更快地启动热备", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "80cc6c7a6ab8b721008337f0b99dcfb42eaf67b987d75449cb1660a68ea82b0f"}, "url": "/docs/compare/?release=9.1.2#9.1.2-a3282037f9e26a02", "source_url": "/docs/release/9.1.2/#id-1.11.6.27.5"}]}, {"id": "9.0.6-6ca587f387d81b55", "cves": [], "html": "<p>修复从过期 syscache 条目访问 toast 表时的竞态条件（Tom Lane）</p>\n<p>典型症状是诸如 <span>“<span>missing chunk number 0 for toast value NNNNN in pg_toast_2619</span>”</span> 的瞬时错误，其中引用的 toast 表总是属于某个系统目录。</p>", "text": "修复从过期 syscache 条目访问 toast 表时的竞态条件（Tom Lane） 典型症状是诸如 “missing chunk number 0 for toast value NNNNN in pg_toast_2619” 的瞬时错误，其中引用的 toast 表总是属于某个系统目录。", "title": "修复从过期 syscache 条目访问 toast 表时的竞态条件", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.6/#id-1.11.6.22.5", "source_hash": "2e3e211a3ea2aa34745ec0d8f27ddef6bb29633a23ac079876909db554cc8c7f", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix race condition during toast table access from stale syscache entries (Tom Lane) The typical symptom was transient errors like missing chunk number 0 for toast value NNNNN in pg_toast_2619, where the cited toast table would always belong to a system catalog.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.6/changes/007", "db_id": "7135434ccf1f94d793585668d2dbafa6", "patch_ids": [], "statement_hash": "4303d3923718a7e699240eb8653363ab228c015b5b056b2dd7095e99e607273e", "relations": [{"rule": 2, "type": "equivalent", "target": "8322f87d656dbb1125e148c5df89bc42", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4303d3923718a7e699240eb8653363ab228c015b5b056b2dd7095e99e607273e"}}], "version": "9.0.6", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "8322f87d656dbb1125e148c5df89bc42", "kind": "equivalent", "version": "9.1.2", "label": "9.1.2", "title": "修复从过期 syscache 条目访问 toast 表时的竞态条件", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4303d3923718a7e699240eb8653363ab228c015b5b056b2dd7095e99e607273e"}, "url": "/docs/compare/?release=9.1.2#9.1.2-6ca587f387d81b55", "source_url": "/docs/release/9.1.2/#id-1.11.6.27.5"}]}, {"id": "9.0.6-893476778e22088f", "cves": [], "html": "<p>跟踪函数对参数默认值表达式中所用项的依赖（Tom Lane）</p>\n<p>此前，被引用的对象可以在未删除或修改函数的情况下被删除，导致函数被使用时行为异常。注意，仅仅安装此更新不会修复缺失的依赖条目；要做到这一点，之后需要对每个这样的函数执行 <code>CREATE OR REPLACE</code>。如果你的函数默认值依赖于非内建对象，建议这样做。</p>", "text": "跟踪函数对参数默认值表达式中所用项的依赖（Tom Lane） 此前，被引用的对象可以在未删除或修改函数的情况下被删除，导致函数被使用时行为异常。注意，仅仅安装此更新不会修复缺失的依赖条目；要做到这一点，之后需要对每个这样的函数执行 CREATE OR REPLACE。如果你的函数默认值依赖于非内建对象，建议这样做。", "title": "跟踪函数对参数默认值表达式中所用项的依赖", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.6/#id-1.11.6.22.5", "source_hash": "e2882a7bd9ed27d40c36e8e58b31f6ac69b888b8a44d26d4847708fff72f2bf6", "section_path": ["变更"], "commit_groups": [], "identity_text": "Track dependencies of functions on items used in parameter default expressions (Tom Lane) Previously, a referenced object could be dropped without having dropped or modified the function, leading to misbehavior when the function was used. Note that merely installing this update will not fix the missing dependency entries; to do that, you'd need to CREATE OR REPLACE each such function afterwards. If you have functions whose defaults depend on non-built-in objects, doing so is recommended.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.6/changes/008", "db_id": "a76d2d4471da35f880c4a2e268ae8f3c", "patch_ids": [], "statement_hash": "612b9a10a05bd75b4678fcfc0fbf0e6b90f0fe083dff6fdc75f953200301f4eb", "relations": [{"rule": 2, "type": "equivalent", "target": "c1e12d9e6f83abe7227080d232de05fd", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "612b9a10a05bd75b4678fcfc0fbf0e6b90f0fe083dff6fdc75f953200301f4eb"}}], "version": "9.0.6", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "c1e12d9e6f83abe7227080d232de05fd", "kind": "equivalent", "version": "9.1.2", "label": "9.1.2", "title": "跟踪函数对参数默认值表达式中所用项的依赖", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "612b9a10a05bd75b4678fcfc0fbf0e6b90f0fe083dff6fdc75f953200301f4eb"}, "url": "/docs/compare/?release=9.1.2#9.1.2-893476778e22088f", "source_url": "/docs/release/9.1.2/#id-1.11.6.27.5"}]}, {"id": "9.0.6-9ee1e8fca9b07877", "cves": [], "html": "<p>允许内联带多个 OUT 参数的集合返回 SQL 函数（Tom Lane）</p>", "text": "允许内联带多个 OUT 参数的集合返回 SQL 函数（Tom Lane）", "title": "允许内联带多个 OUT 参数的集合返回 SQL 函数", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.6/#id-1.11.6.22.5", "source_hash": "aa5bbedb9571e99f346c111f820072f5f7460c523b7eab77193ee53752126e44", "section_path": ["变更"], "commit_groups": [], "identity_text": "Allow inlining of set-returning SQL functions with multiple OUT parameters (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.6/changes/009", "db_id": "aec336cc1b647e0433239a1198af40ce", "patch_ids": [], "statement_hash": "b7ca3851513c50c046d73c773ed0ad43ee2e9c7d63875a7c7a2a1b5958f1ec3f", "relations": [{"rule": 2, "type": "equivalent", "target": "541c3a93fe072ef35c169e7ba30f7275", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b7ca3851513c50c046d73c773ed0ad43ee2e9c7d63875a7c7a2a1b5958f1ec3f"}}], "version": "9.0.6", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "541c3a93fe072ef35c169e7ba30f7275", "kind": "equivalent", "version": "9.1.2", "label": "9.1.2", "title": "允许内联带多个 OUT 参数的集合返回 SQL 函数", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b7ca3851513c50c046d73c773ed0ad43ee2e9c7d63875a7c7a2a1b5958f1ec3f"}, "url": "/docs/compare/?release=9.1.2#9.1.2-9ee1e8fca9b07877", "source_url": "/docs/release/9.1.2/#id-1.11.6.27.5"}]}, {"id": "9.0.6-10b1995133f3beb7", "cves": [], "html": "<p>不要为连接消除信任延迟唯一索引（Tom Lane、Marti Raudsepp）</p>\n<p>延迟唯一约束在事务内可能不成立，因此假设它成立可能给出错误的查询结果。</p>", "text": "不要为连接消除信任延迟唯一索引（Tom Lane、Marti Raudsepp） 延迟唯一约束在事务内可能不成立，因此假设它成立可能给出错误的查询结果。", "title": "不要为连接消除信任延迟唯一索引", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.6/#id-1.11.6.22.5", "source_hash": "a92e6fe834794fee8d8ba4b76e0fe51eaa181fd567e66232f6803ba3d64bfa59", "section_path": ["变更"], "commit_groups": [], "identity_text": "Don't trust deferred-unique indexes for join removal (Tom Lane and Marti Raudsepp) A deferred uniqueness constraint might not hold intra-transaction, so assuming that it does could give incorrect query results.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.6/changes/010", "db_id": "8ffb88c8e547d9e1663b4fd0aa0f5025", "patch_ids": [], "statement_hash": "da6ede1f26849a51706bba1754d473c176f65bba1c93650cf79c864d68f7828b", "relations": [{"rule": 2, "type": "equivalent", "target": "0f502bcca16bc46bc5b36787b214a3ec", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "da6ede1f26849a51706bba1754d473c176f65bba1c93650cf79c864d68f7828b"}}], "version": "9.0.6", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "0f502bcca16bc46bc5b36787b214a3ec", "kind": "equivalent", "version": "9.1.2", "label": "9.1.2", "title": "不要为连接消除信任延迟唯一索引", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "da6ede1f26849a51706bba1754d473c176f65bba1c93650cf79c864d68f7828b"}, "url": "/docs/compare/?release=9.1.2#9.1.2-10b1995133f3beb7", "source_url": "/docs/release/9.1.2/#id-1.11.6.27.5"}]}, {"id": "9.0.6-033fe8abb4248406", "cves": [], "html": "<p>让 <code>DatumGetInetP()</code> 解包带 1 字节头的 inet datum，并新增一个不做此事的宏 <code>DatumGetInetPP()</code>（Heikki Linnakangas）</p>\n<p>此变更不影响任何核心代码，但可能避免期望 <code>DatumGetInetP()</code> 按常规约定产生已解包 datum 的附加代码中的崩溃。</p>", "text": "让 DatumGetInetP() 解包带 1 字节头的 inet datum，并新增一个不做此事的宏 DatumGetInetPP()（Heikki Linnakangas） 此变更不影响任何核心代码，但可能避免期望 DatumGetInetP() 按常规约定产生已解包 datum 的附加代码中的崩溃。", "title": "让 DatumGetInetP() 解包带 1 字节头的 inet datum，并新增一个不做此事的宏 DatumGetInetPP()", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.6/#id-1.11.6.22.5", "source_hash": "dd1aed895170d6e5f08a6c112aae86fa6eccb9ce1ebef5b1367d248c30ad9f30", "section_path": ["变更"], "commit_groups": [], "identity_text": "Make DatumGetInetP() unpack inet datums that have a 1-byte header, and add a new macro, DatumGetInetPP(), that does not (Heikki Linnakangas) This change affects no core code, but might prevent crashes in add-on code that expects DatumGetInetP() to produce an unpacked datum as per usual convention.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.6/changes/011", "db_id": "b985a7d1e68ec3966dc328793085a0ca", "patch_ids": [], "statement_hash": "581050ea251196f500f3fb2adac545a45512855a50c1165c4ec9ef93ef2a3968", "relations": [{"rule": 2, "type": "equivalent", "target": "5c08f8b38dffd2d5c6497ba46e6dc5a1", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "581050ea251196f500f3fb2adac545a45512855a50c1165c4ec9ef93ef2a3968"}}], "version": "9.0.6", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "5c08f8b38dffd2d5c6497ba46e6dc5a1", "kind": "equivalent", "version": "9.1.2", "label": "9.1.2", "title": "让 DatumGetInetP() 解包带 1 字节头的 inet datum，并新增一个不做此事的宏 DatumGetInetPP()", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "581050ea251196f500f3fb2adac545a45512855a50c1165c4ec9ef93ef2a3968"}, "url": "/docs/compare/?release=9.1.2#9.1.2-033fe8abb4248406", "source_url": "/docs/release/9.1.2/#id-1.11.6.27.5"}]}, {"id": "9.0.6-a4fe1ecf06987cea", "cves": [], "html": "<p>改进 <code>money</code> 类型输入和输出的区域支持（Tom Lane）</p>\n<p>除了不支持所有标准 <a href=\"/docs/9.0/runtime-config-client.html#GUC-LC-MONETARY\"><code>lc_monetary</code></a> 格式化选项外，输入和输出函数还不一致，这意味着在某些区域设置下转储的 <code>money</code> 值无法重新读取。</p>", "text": "改进 money 类型输入和输出的区域支持（Tom Lane） 除了不支持所有标准 lc_monetary 格式化选项外，输入和输出函数还不一致，这意味着在某些区域设置下转储的 money 值无法重新读取。", "title": "改进 money 类型输入和输出的区域支持", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.6/#id-1.11.6.22.5", "source_hash": "21dc0ba8d0c0b26bd77d4d3240bdf46c8b47254ca8ffc4569705f7288c95e26d", "section_path": ["变更"], "commit_groups": [], "identity_text": "Improve locale support in money type's input and output (Tom Lane) Aside from not supporting all standard lc_monetary formatting options, the input and output functions were inconsistent, meaning there were locales in which dumped money values could not be re-read.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.6/changes/012", "db_id": "b8101cca67318d05504da1a6d1226721", "patch_ids": [], "statement_hash": "8a60fe292710ee67f2ef93af31a3bc7bf5d714c153026f12105181b6114e0cd4", "relations": [{"rule": 2, "type": "equivalent", "target": "4f017b19b67e25b0dde727396e75eeb0", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8a60fe292710ee67f2ef93af31a3bc7bf5d714c153026f12105181b6114e0cd4"}}], "version": "9.0.6", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "4f017b19b67e25b0dde727396e75eeb0", "kind": "equivalent", "version": "9.1.2", "label": "9.1.2", "title": "改进 money 类型输入和输出的区域支持", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8a60fe292710ee67f2ef93af31a3bc7bf5d714c153026f12105181b6114e0cd4"}, "url": "/docs/compare/?release=9.1.2#9.1.2-a4fe1ecf06987cea", "source_url": "/docs/release/9.1.2/#id-1.11.6.27.5"}]}, {"id": "9.0.6-23ef48aa654da5b1", "cves": [], "html": "<p>不让 <a href=\"/docs/9.0/runtime-config-compatible.html#GUC-TRANSFORM-NULL-EQUALS\"><code>transform_null_equals</code></a> 影响 <code>CASE foo WHEN NULL ...</code> 构造（Heikki Linnakangas）</p>\n<p><code>transform_null_equals</code> 只应影响用户直接写的 <code>foo = NULL</code> 表达式，而不是这种形式的 <code>CASE</code> 在内部生成的相等性检查。</p>", "text": "不让 transform_null_equals 影响 CASE foo WHEN NULL ... 构造（Heikki Linnakangas） transform_null_equals 只应影响用户直接写的 foo = NULL 表达式，而不是这种形式的 CASE 在内部生成的相等性检查。", "title": "不让 transform_null_equals 影响 CASE foo WHEN NULL ... 构造", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.6/#id-1.11.6.22.5", "source_hash": "28a99d5c371223af7e58cd73d19fdaa0f55406e66fd270e0ae7d25a2ab6922d7", "section_path": ["变更"], "commit_groups": [], "identity_text": "Don't let transform_null_equals affect CASE foo WHEN NULL ... constructs (Heikki Linnakangas) transform_null_equals is only supposed to affect foo = NULL expressions written directly by the user, not equality checks generated internally by this form of CASE.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.6/changes/013", "db_id": "afbc237f4cc3bdf977e490e34f485137", "patch_ids": [], "statement_hash": "2ed0f12d766f01cb207e0b976933b1ae61bf3d4e3959a14c187b0ebed7d89a65", "relations": [{"rule": 2, "type": "equivalent", "target": "a1cfc4dcbee44282c57eb780cb5c36d6", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2ed0f12d766f01cb207e0b976933b1ae61bf3d4e3959a14c187b0ebed7d89a65"}}], "version": "9.0.6", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "a1cfc4dcbee44282c57eb780cb5c36d6", "kind": "equivalent", "version": "9.1.2", "label": "9.1.2", "title": "不让 transform_null_equals 影响 CASE foo WHEN NULL ... 构造", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2ed0f12d766f01cb207e0b976933b1ae61bf3d4e3959a14c187b0ebed7d89a65"}, "url": "/docs/compare/?release=9.1.2#9.1.2-23ef48aa654da5b1", "source_url": "/docs/release/9.1.2/#id-1.11.6.27.5"}]}, {"id": "9.0.6-7463fb5460a12278", "cves": [], "html": "<p>更改外键触发器的创建顺序，以更好地支持自引用外键（Tom Lane）</p>\n<p>对于引用自身表的级联外键，行更新会作为一个事件同时触发 <code>ON UPDATE</code> 触发器和 <code>CHECK</code> 触发器。<code>ON UPDATE</code> 触发器必须先执行，否则 <code>CHECK</code> 会检查行的非最终状态，并可能抛出不恰当的错误。然而这些触发器的触发顺序由其名称决定，而由于触发器使用遵循 <span>“<span>RI_ConstraintTrigger_NNNN</span>”</span> 约定的自动生成名称，它们通常按创建顺序排序。彻底的修复需要修改该约定（我们将在 9.2 中做），但在现有版本中更改它似乎有风险。因此此补丁只更改触发器的创建顺序。遇到这类错误的用户应删除并重新创建外键约束，使其触发器处于正确顺序。</p>", "text": "更改外键触发器的创建顺序，以更好地支持自引用外键（Tom Lane） 对于引用自身表的级联外键，行更新会作为一个事件同时触发 ON UPDATE 触发器和 CHECK 触发器。ON UPDATE 触发器必须先执行，否则 CHECK 会检查行的非最终状态，并可能抛出不恰当的错误。然而这些触发器的触发顺序由其名称决定，而由于触发器使用遵循 “RI_ConstraintTrigger_NNNN” 约定的自动生成名称，它们通常按创建顺序排序。彻底的修复需要修改该约定（我们将在 9.2 中做），但在现有版本中更改它似乎有风险。因此此补丁只更改触发器的创建顺序。遇到这类错误的用户应删除并重新创建外键约束，使其触发器处于正确顺序。", "title": "更改外键触发器的创建顺序，以更好地支持自引用外键", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.6/#id-1.11.6.22.5", "source_hash": "6b2cda3b8f198d0f2b5aac09f0fd7c58aa1e86112bbb04a86d9845635b45a98d", "section_path": ["变更"], "commit_groups": [], "identity_text": "Change foreign-key trigger creation order to better support self-referential foreign keys (Tom Lane) For a cascading foreign key that references its own table, a row update will fire both the ON UPDATE trigger and the CHECK trigger as one event. The ON UPDATE trigger must execute first, else the CHECK will check a non-final state of the row and possibly throw an inappropriate error. However, the firing order of these triggers is determined by their names, which generally sort in creation order since the triggers have auto-generated names following the convention RI_ConstraintTrigger_NNNN. A proper fix would require modifying that convention, which we will do in 9.2, but it seems risky to change it in existing releases. So this patch just changes the creation order of the triggers. Users encountering this type of error should drop and re-create the foreign key constraint to get its triggers into the right order.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.6/changes/014", "db_id": "5d217c24d55f825a088174cfa76f1298", "patch_ids": [], "statement_hash": "a5c0ba6d611829fb02aad58119ff5af98e457ecdcb6289fadf441d05da46212f", "relations": [{"rule": 2, "type": "equivalent", "target": "3c856dc7a3094049f46a14a8c5b172ac", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a5c0ba6d611829fb02aad58119ff5af98e457ecdcb6289fadf441d05da46212f"}}], "version": "9.0.6", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "3c856dc7a3094049f46a14a8c5b172ac", "kind": "equivalent", "version": "9.1.2", "label": "9.1.2", "title": "更改外键触发器的创建顺序，以更好地支持自引用外键", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a5c0ba6d611829fb02aad58119ff5af98e457ecdcb6289fadf441d05da46212f"}, "url": "/docs/compare/?release=9.1.2#9.1.2-7463fb5460a12278", "source_url": "/docs/release/9.1.2/#id-1.11.6.27.5"}]}, {"id": "9.0.6-03616927317171bb", "cves": [], "html": "<p>避免在跟踪缓冲区分配率时发生浮点下溢（Greg Matthews）</p>\n<p>虽然这本身无害，但在某些平台上会导致烦人的内核日志消息。</p>", "text": "避免在跟踪缓冲区分配率时发生浮点下溢（Greg Matthews） 虽然这本身无害，但在某些平台上会导致烦人的内核日志消息。", "title": "避免在跟踪缓冲区分配率时发生浮点下溢", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.6/#id-1.11.6.22.5", "source_hash": "5206ddbdf0128e968684164409308aa0e4a779f60cb4af22ed9a821a2dcc6b05", "section_path": ["变更"], "commit_groups": [], "identity_text": "Avoid floating-point underflow while tracking buffer allocation rate (Greg Matthews) While harmless in itself, on certain platforms this would result in annoying kernel log messages.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.6/changes/015", "db_id": "54df9680074d23e2395b887b812446b9", "patch_ids": [], "statement_hash": "8f83e270b485160f65aeb788da3dabf090d68aadc6058a48749bd947e8097edc", "relations": [{"rule": 2, "type": "equivalent", "target": "5a21e745ac07215afa9997ea186d5f42", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8f83e270b485160f65aeb788da3dabf090d68aadc6058a48749bd947e8097edc"}}], "version": "9.0.6", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "5a21e745ac07215afa9997ea186d5f42", "kind": "equivalent", "version": "9.1.2", "label": "9.1.2", "title": "避免在跟踪缓冲区分配率时发生浮点下溢", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8f83e270b485160f65aeb788da3dabf090d68aadc6058a48749bd947e8097edc"}, "url": "/docs/compare/?release=9.1.2#9.1.2-03616927317171bb", "source_url": "/docs/release/9.1.2/#id-1.11.6.27.5"}]}, {"id": "9.0.6-0e31cb5366dd90e4", "cves": [], "html": "<p>在 Windows 下启动子进程时保留配置文件名和行号值（Tom Lane）</p>\n<p>此前它们不会在 <code>pg_settings</code> 视图中正确显示。</p>", "text": "在 Windows 下启动子进程时保留配置文件名和行号值（Tom Lane） 此前它们不会在 pg_settings 视图中正确显示。", "title": "在 Windows 下启动子进程时保留配置文件名和行号值", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.6/#id-1.11.6.22.5", "source_hash": "faa4d22cde182e684be767edfc8f7f57c68f604302e9ef19769695172c2a3d36", "section_path": ["变更"], "commit_groups": [], "identity_text": "Preserve configuration file name and line number values when starting child processes under Windows (Tom Lane) Formerly, these would not be displayed correctly in the pg_settings view.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.6/changes/016", "db_id": "976328605e20c89c9fba186bae2f5196", "patch_ids": [], "statement_hash": "bd237e247cbed31af8aca5feb2e4b2d2b936f89fffb02ff1f40c771ffce86c2a", "relations": [{"rule": 2, "type": "equivalent", "target": "fd16442a2e69564a43f1c63804a0b74e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bd237e247cbed31af8aca5feb2e4b2d2b936f89fffb02ff1f40c771ffce86c2a"}}], "version": "9.0.6", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "fd16442a2e69564a43f1c63804a0b74e", "kind": "equivalent", "version": "9.1.2", "label": "9.1.2", "title": "在 Windows 下启动子进程时保留配置文件名和行号值", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bd237e247cbed31af8aca5feb2e4b2d2b936f89fffb02ff1f40c771ffce86c2a"}, "url": "/docs/compare/?release=9.1.2#9.1.2-0e31cb5366dd90e4", "source_url": "/docs/release/9.1.2/#id-1.11.6.27.5"}]}, {"id": "9.0.6-dbec5f2950d9ea54", "cves": [], "html": "<p>修复 <span>ecpg</span> 的 SQLDA 区域中不正确的字段对齐（Zoltan Boszormenyi）</p>", "text": "修复 ecpg 的 SQLDA 区域中不正确的字段对齐（Zoltan Boszormenyi）", "title": "修复 ecpg 的 SQLDA 区域中不正确的字段对齐", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.6/#id-1.11.6.22.5", "source_hash": "b337e09da25ff824f0f15aa57aa85014ba5a4e5918304bb57a0b088e3c27f743", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix incorrect field alignment in ecpg's SQLDA area (Zoltan Boszormenyi)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.6/changes/017", "db_id": "e2cbbff27a71e75bc0b96456d57223cf", "patch_ids": [], "statement_hash": "88c6a4237cc486a702e3820ce3aa6717f306b4a80670d3fff44e0988f677b390", "relations": [{"rule": 2, "type": "equivalent", "target": "bd986ef8d9e45f60957b6ca7659b7741", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "88c6a4237cc486a702e3820ce3aa6717f306b4a80670d3fff44e0988f677b390"}}], "version": "9.0.6", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "bd986ef8d9e45f60957b6ca7659b7741", "kind": "equivalent", "version": "9.1.2", "label": "9.1.2", "title": "修复 ecpg 的 SQLDA 区域中不正确的字段对齐", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "88c6a4237cc486a702e3820ce3aa6717f306b4a80670d3fff44e0988f677b390"}, "url": "/docs/compare/?release=9.1.2#9.1.2-dbec5f2950d9ea54", "source_url": "/docs/release/9.1.2/#id-1.11.6.27.5"}]}, {"id": "9.0.6-0ee60edb4d385095", "cves": [], "html": "<p>在 <span>psql</span> 的命令历史中保留命令内的空行（Robert Haas）</p>\n<p>例如，如果从字符串字面量中删除了空行，先前的行为可能导致问题。</p>", "text": "在 psql 的命令历史中保留命令内的空行（Robert Haas） 例如，如果从字符串字面量中删除了空行，先前的行为可能导致问题。", "title": "在 psql 的命令历史中保留命令内的空行", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.6/#id-1.11.6.22.5", "source_hash": "c5fadb66e5c5beab22df276bbfa7422ba1813e33b6f1c9d61f631c64d88e5a9d", "section_path": ["变更"], "commit_groups": [], "identity_text": "Preserve blank lines within commands in psql's command history (Robert Haas) The former behavior could cause problems if an empty line was removed from within a string literal, for example.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.6/changes/018", "db_id": "8f13aae171202168dd3a54cc46997805", "patch_ids": [], "statement_hash": "7d942cdb9fa1249b9034db931ef6331592837d713e664b7be772629178cf32b8", "relations": [{"rule": 2, "type": "equivalent", "target": "c964558d808089b18305d9f549a0c5ca", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7d942cdb9fa1249b9034db931ef6331592837d713e664b7be772629178cf32b8"}}], "version": "9.0.6", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "c964558d808089b18305d9f549a0c5ca", "kind": "equivalent", "version": "9.1.2", "label": "9.1.2", "title": "在 psql 的命令历史中保留命令内的空行", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7d942cdb9fa1249b9034db931ef6331592837d713e664b7be772629178cf32b8"}, "url": "/docs/compare/?release=9.1.2#9.1.2-0ee60edb4d385095", "source_url": "/docs/release/9.1.2/#id-1.11.6.27.5"}]}, {"id": "9.0.6-5f819232c0e909b9", "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.6/#id-1.11.6.22.5", "source_hash": "0033c3950939d16c772624ae675bec9b1675703d8382043dc489ffe5d742d7fb", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix pg_dump to dump user-defined casts between auto-generated types, such as table rowtypes (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.6/changes/019", "db_id": "df73aa2735e64b3b7036b9a42c2da21e", "patch_ids": [], "statement_hash": "6f9ef46a3916bb4571be53509150d69f5e7efc90ad6c903764309147c73ab6cc", "relations": [{"rule": 2, "type": "equivalent", "target": "a87162c891d862282b062652a16a60e1", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6f9ef46a3916bb4571be53509150d69f5e7efc90ad6c903764309147c73ab6cc"}}], "version": "9.0.6", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "a87162c891d862282b062652a16a60e1", "kind": "equivalent", "version": "9.1.2", "label": "9.1.2", "title": "修复 pg_dump，使其转储自动生成类型（如表行类型）之间的用户定义转换", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6f9ef46a3916bb4571be53509150d69f5e7efc90ad6c903764309147c73ab6cc"}, "url": "/docs/compare/?release=9.1.2#9.1.2-5f819232c0e909b9", "source_url": "/docs/release/9.1.2/#id-1.11.6.27.5"}]}, {"id": "9.0.6-add49306e3e119aa", "cves": [], "html": "<p>对 <span>pg_upgrade</span> 的若干修复（Bruce Momjian）</p>\n<p>正确处理排他约束、避免 Windows 上的失败、不再对 8.4 数据库中不匹配的 toast 表名报错。</p>", "text": "对 pg_upgrade 的若干修复（Bruce Momjian） 正确处理排他约束、避免 Windows 上的失败、不再对 8.4 数据库中不匹配的 toast 表名报错。", "title": "对 pg_upgrade 的若干修复", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.6/#id-1.11.6.22.5", "source_hash": "9cc4448558805deeaa3087ba9087e653ebb4bbc972bac23e13db9daadd593464", "section_path": ["变更"], "commit_groups": [], "identity_text": "Assorted fixes for pg_upgrade (Bruce Momjian) Handle exclusion constraints correctly, avoid failures on Windows, don't complain about mismatched toast table names in 8.4 databases.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.6/changes/020", "db_id": "4e9272e7420d2950829395f90390b377", "patch_ids": [], "statement_hash": "ba440a21e24dc0dfef64dbed35401a81581e8b10390b69a8776d45e896905437", "relations": [{"rule": 2, "type": "equivalent", "target": "1974083edace1bdae89eb4ecbae5c779", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ba440a21e24dc0dfef64dbed35401a81581e8b10390b69a8776d45e896905437"}}], "version": "9.0.6", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "1974083edace1bdae89eb4ecbae5c779", "kind": "equivalent", "version": "9.1.2", "label": "9.1.2", "title": "对 pg_upgrade 的若干修复", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ba440a21e24dc0dfef64dbed35401a81581e8b10390b69a8776d45e896905437"}, "url": "/docs/compare/?release=9.1.2#9.1.2-add49306e3e119aa", "source_url": "/docs/release/9.1.2/#id-1.11.6.27.5"}]}, {"id": "9.0.6-47765f2b21a5e358", "cves": [], "html": "<p>使用首选版本的 <span>xsubpp</span> 构建 PL/Perl，而不一定是操作系统的主副本（David Wheeler、Alex Hunsaker）</p>", "text": "使用首选版本的 xsubpp 构建 PL/Perl，而不一定是操作系统的主副本（David Wheeler、Alex Hunsaker）", "title": "使用首选版本的 xsubpp 构建 PL/Perl，而不一定是操作系统的主副本", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.6/#id-1.11.6.22.5", "source_hash": "c0f00b01ad2424cd17c36b4d35f00213f2c1cab581ab342ab368bd715a757c42", "section_path": ["变更"], "commit_groups": [], "identity_text": "Use the preferred version of xsubpp to build PL/Perl, not necessarily the operating system's main copy (David Wheeler and Alex Hunsaker)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.6/changes/021", "db_id": "a1821edd0d0c327bc815fb2775778774", "patch_ids": [], "statement_hash": "0c04ffc129379757bc71747cbab20fc54fff1556febd7505a0443009bbd3a2f5", "relations": [{"rule": 2, "type": "equivalent", "target": "c1753ef4146fadbf60910a1e9abfe31e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0c04ffc129379757bc71747cbab20fc54fff1556febd7505a0443009bbd3a2f5"}}], "version": "9.0.6", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "c1753ef4146fadbf60910a1e9abfe31e", "kind": "equivalent", "version": "9.1.2", "label": "9.1.2", "title": "使用首选版本的 xsubpp 构建 PL/Perl，而不一定是操作系统的主副本", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0c04ffc129379757bc71747cbab20fc54fff1556febd7505a0443009bbd3a2f5"}, "url": "/docs/compare/?release=9.1.2#9.1.2-47765f2b21a5e358", "source_url": "/docs/release/9.1.2/#id-1.11.6.27.5"}]}, {"id": "9.0.6-f76314c606184658", "cves": [], "html": "<p>修复 <code>contrib/dict_int</code> 和 <code>contrib/dict_xsyn</code> 中的错误编码（Tom Lane）</p>\n<p>一些函数错误地假定 <code>palloc()</code> 返回的内存保证被清零。</p>", "text": "修复 contrib/dict_int 和 contrib/dict_xsyn 中的错误编码（Tom Lane） 一些函数错误地假定 palloc() 返回的内存保证被清零。", "title": "修复 contrib/dict_int 和 contrib/dict_xsyn 中的错误编码", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.6/#id-1.11.6.22.5", "source_hash": "d901e0d87f38c160c8660a8c4cad422d9247a4ae6741d761ad7ff707c832c75a", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix incorrect coding in contrib/dict_int and contrib/dict_xsyn (Tom Lane) Some functions incorrectly assumed that memory returned by palloc() is guaranteed zeroed.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.6/changes/022", "db_id": "451d61d5e81dfa6cca805dcde7476269", "patch_ids": [], "statement_hash": "49ba02709b9bbf2c5cf57be27b8c0f9fd6347143c33a082a0b8e1bfb82614e31", "relations": [{"rule": 2, "type": "equivalent", "target": "d7923ba53ac52d74adb79a0fa44f4cda", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "49ba02709b9bbf2c5cf57be27b8c0f9fd6347143c33a082a0b8e1bfb82614e31"}}], "version": "9.0.6", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "d7923ba53ac52d74adb79a0fa44f4cda", "kind": "equivalent", "version": "9.1.2", "label": "9.1.2", "title": "修复 contrib/dict_int 和 contrib/dict_xsyn 中的错误编码", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "49ba02709b9bbf2c5cf57be27b8c0f9fd6347143c33a082a0b8e1bfb82614e31"}, "url": "/docs/compare/?release=9.1.2#9.1.2-f76314c606184658", "source_url": "/docs/release/9.1.2/#id-1.11.6.27.5"}]}, {"id": "9.0.6-91f6d65c2873b4b1", "cves": [], "html": "<p>修复 <code>contrib/unaccent</code> 配置文件解析中的若干错误（Tom Lane）</p>", "text": "修复 contrib/unaccent 配置文件解析中的若干错误（Tom Lane）", "title": "修复 contrib/unaccent 配置文件解析中的若干错误", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.6/#id-1.11.6.22.5", "source_hash": "8ee8d64057a7a1990505927d953549991d3cddaaa2a46fb73680a37c4b787ef0", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix assorted errors in contrib/unaccent's configuration file parsing (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.6/changes/023", "db_id": "65668c3bcd03a2b93cf4f5b39705db80", "patch_ids": [], "statement_hash": "18b18bdc840787c6e58aa8f54409bd59f135fa848a5c27a73371997a42aac7d2", "relations": [{"rule": 2, "type": "equivalent", "target": "9bd711eada9a21c91a1e00fa925ceeff", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "18b18bdc840787c6e58aa8f54409bd59f135fa848a5c27a73371997a42aac7d2"}}], "version": "9.0.6", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "9bd711eada9a21c91a1e00fa925ceeff", "kind": "equivalent", "version": "9.1.2", "label": "9.1.2", "title": "修复 contrib/unaccent 配置文件解析中的若干错误", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "18b18bdc840787c6e58aa8f54409bd59f135fa848a5c27a73371997a42aac7d2"}, "url": "/docs/compare/?release=9.1.2#9.1.2-91f6d65c2873b4b1", "source_url": "/docs/release/9.1.2/#id-1.11.6.27.5"}]}, {"id": "9.0.6-2992e3678bb7b453", "cves": [], "html": "<p>让 <code>pgstatindex()</code> 及时响应查询取消中断（Robert Haas）</p>", "text": "让 pgstatindex() 及时响应查询取消中断（Robert Haas）", "title": "让 pgstatindex() 及时响应查询取消中断", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.6/#id-1.11.6.22.5", "source_hash": "9d8c1a35ef166df5deccb3036b7f47d29c90f750ad3802dd04ce5e126b718509", "section_path": ["变更"], "commit_groups": [], "identity_text": "Honor query cancel interrupts promptly in pgstatindex() (Robert Haas)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.6/changes/024", "db_id": "fee7c8d1ebaa1542aa0493891cbbaafd", "patch_ids": [], "statement_hash": "e04cff4dc22ebfeb96c875ffa23f12907f6d30581ba1471a464f070a2b5c8101", "relations": [{"rule": 2, "type": "equivalent", "target": "9a4ea28a7e2655a57613c375a53135cf", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e04cff4dc22ebfeb96c875ffa23f12907f6d30581ba1471a464f070a2b5c8101"}}], "version": "9.0.6", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "9a4ea28a7e2655a57613c375a53135cf", "kind": "equivalent", "version": "9.1.2", "label": "9.1.2", "title": "让 pgstatindex() 及时响应查询取消中断", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e04cff4dc22ebfeb96c875ffa23f12907f6d30581ba1471a464f070a2b5c8101"}, "url": "/docs/compare/?release=9.1.2#9.1.2-2992e3678bb7b453", "source_url": "/docs/release/9.1.2/#id-1.11.6.27.5"}]}, {"id": "9.0.6-0cd019371b0af250", "cves": [], "html": "<p>修复 Mac OS X 启动脚本中日志文件名的不正确引号（Sidar Lopez）</p>", "text": "修复 Mac OS X 启动脚本中日志文件名的不正确引号（Sidar Lopez）", "title": "修复 Mac OS X 启动脚本中日志文件名的不正确引号", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.6/#id-1.11.6.22.5", "source_hash": "74261667f9a53a57891629e9f40fdcb849d9a8fc03781a5091d9b65178482be5", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix incorrect quoting of log file name in Mac OS X start script (Sidar Lopez)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.6/changes/025", "db_id": "e15efdd0dcee7c45c6db9aeb8ee5f8d2", "patch_ids": [], "statement_hash": "be3160e973709bac32f75e05aeadc044b77c8f042fc1f179068f20dd7f7c1a50", "relations": [], "version": "9.0.6", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.6-6f49e5ff3f1b7a7b", "cves": [], "html": "<p>确保 VPATH 构建正确安装所有服务器头文件（Peter Eisentraut）</p>", "text": "确保 VPATH 构建正确安装所有服务器头文件（Peter Eisentraut）", "title": "确保 VPATH 构建正确安装所有服务器头文件", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.6/#id-1.11.6.22.5", "source_hash": "837a5931e716a6a9a09a3b2bef70204a2bde1f791cc2dee7d1ae56e225de7f2d", "section_path": ["变更"], "commit_groups": [], "identity_text": "Ensure VPATH builds properly install all server header files (Peter Eisentraut)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.6/changes/026", "db_id": "5d4dfa8f4605373daf5f6da0d01353b5", "patch_ids": [], "statement_hash": "798739f09a1990a5cd61d58120fc2867d43e5aafa81fc59387d4295ec7abb9c2", "relations": [{"rule": 2, "type": "equivalent", "target": "7903c2a9e85de74e7113a4ef6ee2d5be", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "798739f09a1990a5cd61d58120fc2867d43e5aafa81fc59387d4295ec7abb9c2"}}], "version": "9.0.6", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "7903c2a9e85de74e7113a4ef6ee2d5be", "kind": "equivalent", "version": "9.1.2", "label": "9.1.2", "title": "确保 VPATH 构建正确安装所有服务器头文件", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "798739f09a1990a5cd61d58120fc2867d43e5aafa81fc59387d4295ec7abb9c2"}, "url": "/docs/compare/?release=9.1.2#9.1.2-6f49e5ff3f1b7a7b", "source_url": "/docs/release/9.1.2/#id-1.11.6.27.5"}]}, {"id": "9.0.6-715426b0a9d07255", "cves": [], "html": "<p>缩短详细错误消息中报告的文件名（Peter Eisentraut）</p>\n<p>常规构建一直只报告包含错误消息调用的 C 文件的名称，但 VPATH 构建此前报告绝对路径名。</p>", "text": "缩短详细错误消息中报告的文件名（Peter Eisentraut） 常规构建一直只报告包含错误消息调用的 C 文件的名称，但 VPATH 构建此前报告绝对路径名。", "title": "缩短详细错误消息中报告的文件名", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.6/#id-1.11.6.22.5", "source_hash": "0081828b4edcf0ef22fa2ceb5d4fac6b04b27e55aa235ab95225c3c3a0e8e1f4", "section_path": ["变更"], "commit_groups": [], "identity_text": "Shorten file names reported in verbose error messages (Peter Eisentraut) Regular builds have always reported just the name of the C file containing the error message call, but VPATH builds formerly reported an absolute path name.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.6/changes/027", "db_id": "67309ef57a143e750b341962ded85834", "patch_ids": [], "statement_hash": "ef196f53da83dd09fddcd963dd88e7e6c91f24de165efb506f0386a9a409576a", "relations": [{"rule": 2, "type": "equivalent", "target": "3f2d13bc3c5ef6646051ee222766f33c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ef196f53da83dd09fddcd963dd88e7e6c91f24de165efb506f0386a9a409576a"}}], "version": "9.0.6", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "3f2d13bc3c5ef6646051ee222766f33c", "kind": "equivalent", "version": "9.1.2", "label": "9.1.2", "title": "缩短详细错误消息中报告的文件名", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ef196f53da83dd09fddcd963dd88e7e6c91f24de165efb506f0386a9a409576a"}, "url": "/docs/compare/?release=9.1.2#9.1.2-715426b0a9d07255", "source_url": "/docs/release/9.1.2/#id-1.11.6.27.5"}]}, {"id": "9.0.6-1200737128401fc7", "cves": [], "html": "<p>修复中美洲 Windows 时区名的解释（Tom Lane）</p>\n<p>把<span>“<span>Central America Standard Time</span>”</span>映射为 <code>CST6</code> 而不是 <code>CST6CDT</code>，因为中美洲各地通常不实行夏令时。</p>", "text": "修复中美洲 Windows 时区名的解释（Tom Lane） 把“Central America Standard Time”映射为 CST6 而不是 CST6CDT，因为中美洲各地通常不实行夏令时。", "title": "修复中美洲 Windows 时区名的解释", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.6/#id-1.11.6.22.5", "source_hash": "7ecb6dbfb98e7f784cc58d387440ad58faa9112e345abf3c7649d1f2ed5d04b8", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix interpretation of Windows timezone names for Central America (Tom Lane) Map Central America Standard Time to CST6, not CST6CDT, because DST is generally not observed anywhere in Central America.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.6/changes/028", "db_id": "0305081a576970e7a6561a59b14cfdeb", "patch_ids": [], "statement_hash": "197646cee75e417848124b46ef55dae08f26820adc10c43efd1c22081bcf654b", "relations": [{"rule": 2, "type": "equivalent", "target": "a3fa82172395c4969d8412adae42969a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "197646cee75e417848124b46ef55dae08f26820adc10c43efd1c22081bcf654b"}}], "version": "9.0.6", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "a3fa82172395c4969d8412adae42969a", "kind": "equivalent", "version": "9.1.2", "label": "9.1.2", "title": "修复中美洲 Windows 时区名的解释", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "197646cee75e417848124b46ef55dae08f26820adc10c43efd1c22081bcf654b"}, "url": "/docs/compare/?release=9.1.2#9.1.2-1200737128401fc7", "source_url": "/docs/release/9.1.2/#id-1.11.6.27.5"}]}, {"id": "9.0.6-a5172703a2fa0d11", "cves": [], "html": "<p>把时区数据文件更新为 <span>tzdata</span> 版本 2011n for DST law changes in Brazil, Cuba, Fiji, Palestine, Russia, and Samoa; also historical corrections for Alaska and British East Africa。</p>", "text": "把时区数据文件更新为 tzdata 版本 2011n for DST law changes in Brazil, Cuba, Fiji, Palestine, Russia, and Samoa; also historical corrections for Alaska and British East Africa。", "title": "把时区数据文件更新为 tzdata 版本 2011n for DST law changes in Brazil, Cuba, Fiji, Palestine, Russia, and Samoa; also historical corrections for Alaska and British East Africa。", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.6/#id-1.11.6.22.5", "source_hash": "8c039797b3d2a20cd9fb7af66aad51627d613ea894afcdda63956ee9032a8e27", "section_path": ["变更"], "commit_groups": [], "identity_text": "Update time zone data files to tzdata release 2011n for DST law changes in Brazil, Cuba, Fiji, Palestine, Russia, and Samoa; also historical corrections for Alaska and British East Africa.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.6/changes/029", "db_id": "f21b7b0073ea08b8c2f04977f092d4d3", "patch_ids": [], "statement_hash": "0d0ef3b8d4a09d9470c13cec565b2804846f7f60af62c1fb0e5451406036ec40", "relations": [{"rule": 2, "type": "equivalent", "target": "ff1dd9d66281b58b1028d0c1a5624ee3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0d0ef3b8d4a09d9470c13cec565b2804846f7f60af62c1fb0e5451406036ec40"}}], "version": "9.0.6", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "ff1dd9d66281b58b1028d0c1a5624ee3", "kind": "equivalent", "version": "9.1.2", "label": "9.1.2", "title": "把时区数据文件更新为 tzdata 版本 2011n for DST law changes in Brazil, Cuba, Fiji, Palestine, Russia, and Samoa; also historical corrections for Alaska and British East Africa。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0d0ef3b8d4a09d9470c13cec565b2804846f7f60af62c1fb0e5451406036ec40"}, "url": "/docs/compare/?release=9.1.2#9.1.2-a5172703a2fa0d11", "source_url": "/docs/release/9.1.2/#id-1.11.6.27.5"}]}]}, {"date": "2011-09-26", "build": "9.0.5", "major": "9.0", "minor": 5, "manual": "9.0", "status": "stable", "doc_git": "", "version": "9.0.5", "eol_date": "2015-10-08", "date_text": "2011-09-26", "supported": false, "manual_url": "/docs/9.0/release-9-0-5.html", "source_url": "/docs/release/9.0.5/", "entry_count": 64, "placeholder": false, "content_hash": "4ca6c20d4ad0ad956fb670627785928c87054b869d76ec2d5d3ac1e7c4b2fbc3", "manual_build": "9.0.23", "source_as_of": "", "changes_count": 64, "doc_loaded_at": "2026-09-26T02:56:48.570247", "migration_html": "<p>对于运行 9.0.X 的用户，不需要进行转储/恢复。</p>\n<p>不过，如果你是从早于 9.0.4 的版本升级，请参见<a href=\"/docs/9.0/release-9-0-4.html\" title=\"E.20. 版本 9.0.4\">第 E.20 节</a>。</p>", "compatibility_count": 0, "label": "9.0.5", "status_label": "历史版本", "eol": "2015-10-08", "age_days": 5483, "support_days": -4010, "entries": [{"id": "9.0.5-6e5aa8d1e3b37b32", "cves": [], "html": "<p>修复对系统目录执行 <code>VACUUM FULL</code> 或 <code>CLUSTER</code> 之后的目录缓存失效（Tom Lane）</p>\n<p>某些情况下，系统目录行被重定位到别处不会被并发服务器进程识别，如果它们随后尝试更新该行，就可能发生目录损坏。最坏的结果可能是一张表完全丢失。</p>", "text": "修复对系统目录执行 VACUUM FULL 或 CLUSTER 之后的目录缓存失效（Tom Lane） 某些情况下，系统目录行被重定位到别处不会被并发服务器进程识别，如果它们随后尝试更新该行，就可能发生目录损坏。最坏的结果可能是一张表完全丢失。", "title": "修复对系统目录执行 VACUUM FULL 或 CLUSTER 之后的目录缓存失效", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.5/#id-1.11.6.23.5", "source_hash": "c20d4c45cfff3c07585a526b32023088f505a102feb830d631270e2edf9a77f5", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix catalog cache invalidation after a VACUUM FULL or CLUSTER on a system catalog (Tom Lane) In some cases the relocation of a system catalog row to another place would not be recognized by concurrent server processes, allowing catalog corruption to occur if they then tried to update that row. The worst-case outcome could be as bad as complete loss of a table.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.5/changes/001", "db_id": "856e9d5d223d74d568f0e17f5afbbfc2", "patch_ids": [], "statement_hash": "63863d095ef33e79cedb032eb30c9fd047099049cc60f677b5ea37d6dcdbc862", "relations": [], "version": "9.0.5", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.5-16f4b3739ae4d4a4", "cves": [], "html": "<p>修复 sinval 重置处理期间错误的操作顺序，并确保 TOAST OID 在系统目录中被保留（Tom Lane）</p>\n<p>这些失误可能导致对系统目录执行 <code>VACUUM FULL</code> 或 <code>CLUSTER</code> 之后出现瞬时失败。</p>", "text": "修复 sinval 重置处理期间错误的操作顺序，并确保 TOAST OID 在系统目录中被保留（Tom Lane） 这些失误可能导致对系统目录执行 VACUUM FULL 或 CLUSTER 之后出现瞬时失败。", "title": "修复 sinval 重置处理期间错误的操作顺序，并确保 TOAST OID 在系统目录中被保留", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.5/#id-1.11.6.23.5", "source_hash": "ae0c040c454f08084d3396d97155b7d30fe30ab8a9ec9f04659020d85452c94a", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix incorrect order of operations during sinval reset processing, and ensure that TOAST OIDs are preserved in system catalogs (Tom Lane) These mistakes could lead to transient failures after a VACUUM FULL or CLUSTER on a system catalog.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.5/changes/002", "db_id": "447cf27aad36ec45d993fc170834c613", "patch_ids": [], "statement_hash": "248ec099036427aabc2b9fbf033f2d1c6e0755a0238ff85d8c48d3bc76caa360", "relations": [], "version": "9.0.5", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.5-953f67140d08de96", "cves": [], "html": "<p>修复对不确定的 HOT 更新元组建立索引的缺陷（Tom Lane）</p>\n<p>这些缺陷可能导致重建系统目录索引之后索引损坏。据信它们不影响用户索引。</p>", "text": "修复对不确定的 HOT 更新元组建立索引的缺陷（Tom Lane） 这些缺陷可能导致重建系统目录索引之后索引损坏。据信它们不影响用户索引。", "title": "修复对不确定的 HOT 更新元组建立索引的缺陷", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.5/#id-1.11.6.23.5", "source_hash": "5d6ca5c3d96472de04f7cbbf2e1ba620e95401a447468540fd0f09081dd34b0f", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix bugs in indexing of in-doubt HOT-updated tuples (Tom Lane) These bugs could result in index corruption after reindexing a system catalog. They are not believed to affect user indexes.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.5/changes/003", "db_id": "694bb6b55270e077158b51ac03a7c398", "patch_ids": [], "statement_hash": "7e3f920bad95df37786f12de0335c438fc09b2ba045ec55436c2d0aef18cf501", "relations": [], "version": "9.0.5", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.5-7689b77b5dafd2be", "cves": [], "html": "<p>修复 GiST 索引页面分裂处理中的多个缺陷（Heikki Linnakangas）</p>\n<p>发生概率很低，但它们可能导致索引损坏。</p>", "text": "修复 GiST 索引页面分裂处理中的多个缺陷（Heikki Linnakangas） 发生概率很低，但它们可能导致索引损坏。", "title": "修复 GiST 索引页面分裂处理中的多个缺陷", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.5/#id-1.11.6.23.5", "source_hash": "26ed948fc24a56125611747ae40ab4dd55d9d4e6a016d3fc9ec89200b4ed7483", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix multiple bugs in GiST index page split processing (Heikki Linnakangas) The probability of occurrence was low, but these could lead to index corruption.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.5/changes/004", "db_id": "65356b0cef0cbd777ceeb26e78dfdc18", "patch_ids": [], "statement_hash": "85c5527676fcc8624e3aec3fa758cf8407520bac6bc88d650ebfce4a1dd000b5", "relations": [], "version": "9.0.5", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.5-1883aeb6b79d57cf", "cves": [], "html": "<p>修复 <code>tsvector_concat()</code> 中可能的缓冲区越界（Tom Lane）</p>\n<p>该函数可能低估其结果所需的内存量，导致服务器崩溃。</p>", "text": "修复 tsvector_concat() 中可能的缓冲区越界（Tom Lane） 该函数可能低估其结果所需的内存量，导致服务器崩溃。", "title": "修复 tsvector_concat() 中可能的缓冲区越界", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.5/#id-1.11.6.23.5", "source_hash": "9781609519add05cb38c06b912c4d52fc129b3438a75273b9501b923ab4588e8", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix possible buffer overrun in tsvector_concat() (Tom Lane) The function could underestimate the amount of memory needed for its result, leading to server crashes.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.5/changes/005", "db_id": "f7c63b89903fb3a8c2a478abff3496f6", "patch_ids": [], "statement_hash": "6fe54e948134cccddc2f0168daa3aaa99e0a7412033d1e2c070e5fa0a0c1f7b4", "relations": [], "version": "9.0.5", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.5-5b4de0da7aa17ffe", "cves": [], "html": "<p>修复 <code>xml_recv</code> 处理<span>“<span>standalone</span>”</span>参数时的崩溃（Tom Lane）</p>", "text": "修复 xml_recv 处理“standalone”参数时的崩溃（Tom Lane）", "title": "修复 xml_recv 处理“standalone”参数时的崩溃", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.5/#id-1.11.6.23.5", "source_hash": "5f79643d4f266063538b7aec69df7bd0af7b32410041a4500383124f92c75877", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix crash in xml_recv when processing a standalone parameter (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.5/changes/006", "db_id": "bdb40905288e997b73496b3707534be8", "patch_ids": [], "statement_hash": "7438702c1d29fb63f0129c847a3d38fadbc81a8aa117380e15bce4ecd3fcf9be", "relations": [], "version": "9.0.5", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.5-0a8f5042148adac6", "cves": [], "html": "<p>让 <code>pg_options_to_table</code> 对没有值的选项返回 NULL（Tom Lane）</p>\n<p>此前这类情况会导致服务器崩溃。</p>", "text": "让 pg_options_to_table 对没有值的选项返回 NULL（Tom Lane） 此前这类情况会导致服务器崩溃。", "title": "让 pg_options_to_table 对没有值的选项返回 NULL", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.5/#id-1.11.6.23.5", "source_hash": "ef2c4fc70b5bfc80d699a96673e3d789c23325a49e97565fcfedf20919eca37b", "section_path": ["变更"], "commit_groups": [], "identity_text": "Make pg_options_to_table return NULL for an option with no value (Tom Lane) Previously such cases would result in a server crash.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.5/changes/007", "db_id": "3275f538db4250626cf3e2aa565b86e3", "patch_ids": [], "statement_hash": "c5a91c96a58e17d12b264f8f1d6c5d86d29e514b4299ea3b821b642e03ac9f0b", "relations": [{"rule": 2, "type": "equivalent", "target": "5b6cb6d2b65558c733595876dca7678e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c5a91c96a58e17d12b264f8f1d6c5d86d29e514b4299ea3b821b642e03ac9f0b"}}], "version": "9.0.5", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "5b6cb6d2b65558c733595876dca7678e", "kind": "equivalent", "version": "9.1.1", "label": "9.1.1", "title": "让 pg_options_to_table 对没有值的选项返回 NULL", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c5a91c96a58e17d12b264f8f1d6c5d86d29e514b4299ea3b821b642e03ac9f0b"}, "url": "/docs/compare/?release=9.1.1#9.1.1-0a8f5042148adac6", "source_url": "/docs/release/9.1.1/#id-1.11.6.28.5"}]}, {"id": "9.0.5-dee81aff4f59d857", "cves": [], "html": "<p>避免在 <code>ANALYZE</code> 和 SJIS-2004 编码转换中可能越过内存末尾的访问（Noah Misch）</p>\n<p>这修复了一些概率极低的服务器崩溃场景。</p>", "text": "避免在 ANALYZE 和 SJIS-2004 编码转换中可能越过内存末尾的访问（Noah Misch） 这修复了一些概率极低的服务器崩溃场景。", "title": "避免在 ANALYZE 和 SJIS-2004 编码转换中可能越过内存末尾的访问", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.5/#id-1.11.6.23.5", "source_hash": "c3d1d102b63f6310954b6049ee7f546c4e39e1615eb7925670c13da9039b04a4", "section_path": ["变更"], "commit_groups": [], "identity_text": "Avoid possibly accessing off the end of memory in ANALYZE and in SJIS-2004 encoding conversion (Noah Misch) This fixes some very-low-probability server crash scenarios.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.5/changes/008", "db_id": "b15ac05af66b011a2bbfd3e21b7bff04", "patch_ids": [], "statement_hash": "4186b29ee691ee044380791f0b587ea72dae6f25e0c1ebb3c15a3ccea612782f", "relations": [], "version": "9.0.5", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.5-549e27ea26c2a72a", "cves": [], "html": "<p>保护 <code>pg_stat_reset_shared()</code> 免受 NULL 输入（Magnus Hagander）</p>", "text": "保护 pg_stat_reset_shared() 免受 NULL 输入（Magnus Hagander）", "title": "保护 pg_stat_reset_shared() 免受 NULL 输入", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.5/#id-1.11.6.23.5", "source_hash": "690a7b4ded12d3cbf2626c5dbff44f57d6d1cdb73256da7387d67a3f5e0af5f4", "section_path": ["变更"], "commit_groups": [], "identity_text": "Protect pg_stat_reset_shared() against NULL input (Magnus Hagander)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.5/changes/009", "db_id": "8f0d49ce229762abcbf44a4fe2f3c47d", "patch_ids": [], "statement_hash": "8cc60c35ec3dceb774b86e4a043ec7d3a37ca8db4ed4b960b113097e1ad18fc0", "relations": [], "version": "9.0.5", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.5-7486c5e6e0c9e241", "cves": [], "html": "<p>修复在子事务内检测到恢复冲突死锁时可能的失败（Tom Lane）</p>", "text": "修复在子事务内检测到恢复冲突死锁时可能的失败（Tom Lane）", "title": "修复在子事务内检测到恢复冲突死锁时可能的失败", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.5/#id-1.11.6.23.5", "source_hash": "5ed8c395829e609e26f953ee7565d2852a46e0ef0a1247555e852bad67e2c092", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix possible failure when a recovery conflict deadlock is detected within a sub-transaction (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.5/changes/010", "db_id": "dcf64558c3fa1974ae2244457843775c", "patch_ids": [], "statement_hash": "0973d9b455346e91c4d83873a3f16a9e881e840f15a590276e1413b0d8ba17fe", "relations": [], "version": "9.0.5", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.5-0bfcc8b17f4790bd", "cves": [], "html": "<p>避免热备期间回收 btree 索引页时的虚假冲突（Noah Misch、Simon Riggs）</p>", "text": "避免热备期间回收 btree 索引页时的虚假冲突（Noah Misch、Simon Riggs）", "title": "避免热备期间回收 btree 索引页时的虚假冲突", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.5/#id-1.11.6.23.5", "source_hash": "f9cf2cbc69caa94d1a9069f82b7dc522c1e0e9572755ce63d6d3de5ac7a4d6ec", "section_path": ["变更"], "commit_groups": [], "identity_text": "Avoid spurious conflicts while recycling btree index pages during hot standby (Noah Misch, Simon Riggs)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.5/changes/011", "db_id": "f53165e2b121acf845fc00e43a6b09b5", "patch_ids": [], "statement_hash": "b04ee02920bbdb0c84980fe57fb033d60eaebf11f2d1964b86752c70c65d0228", "relations": [], "version": "9.0.5", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.5-3f81d1a963c876b1", "cves": [], "html": "<p>如果恢复结束时 WAL 接收端仍在运行则将其关闭（Heikki Linnakangas）</p>\n<p>postmaster 此前在这种情况下会 panic，但这实际上是合法的情况。</p>", "text": "如果恢复结束时 WAL 接收端仍在运行则将其关闭（Heikki Linnakangas） postmaster 此前在这种情况下会 panic，但这实际上是合法的情况。", "title": "如果恢复结束时 WAL 接收端仍在运行则将其关闭", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.5/#id-1.11.6.23.5", "source_hash": "307065e1847fa3e9c61b9adeb9423f1874a8df604e2d17ebe14f4ba3bd418fbb", "section_path": ["变更"], "commit_groups": [], "identity_text": "Shut down WAL receiver if it's still running at end of recovery (Heikki Linnakangas) The postmaster formerly panicked in this situation, but it's actually a legitimate case.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.5/changes/012", "db_id": "ac7799aef9cb07e00ee702eb95c994f1", "patch_ids": [], "statement_hash": "95c7c6fdc183c0038ec2b7d655734aa9e8669b9026940631ee2b5beba7ca4147", "relations": [], "version": "9.0.5", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.5-53d306ce436e59f1", "cves": [], "html": "<p>修复 relcache init 文件失效中的竞态条件（Tom Lane）</p>\n<p>存在一个时间窗口，新的后端进程可能读到过期的 init 文件，却错过本应告知它数据已过期的失效消息。结果是目录访问中的离奇失败，通常在启动稍后阶段报 <span>“<span>could not read block 0 in file ...</span>”</span>。</p>", "text": "修复 relcache init 文件失效中的竞态条件（Tom Lane） 存在一个时间窗口，新的后端进程可能读到过期的 init 文件，却错过本应告知它数据已过期的失效消息。结果是目录访问中的离奇失败，通常在启动稍后阶段报 “could not read block 0 in file ...”。", "title": "修复 relcache init 文件失效中的竞态条件", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.5/#id-1.11.6.23.5", "source_hash": "8848e6ed14a8bf17ef585d48f0788fc5916b2f69403abef8090da7b8ce2c0fc5", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix race condition in relcache init file invalidation (Tom Lane) There was a window wherein a new backend process could read a stale init file but miss the inval messages that would tell it the data is stale. The result would be bizarre failures in catalog accesses, typically could not read block 0 in file ... later during startup.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.5/changes/013", "db_id": "6551ce20b6d12f5ac4a62be33f11a9a5", "patch_ids": [], "statement_hash": "9568f308fc0b02167a5a672baeecbf160a6f018e18bad2a4e2836c468ff21fe7", "relations": [], "version": "9.0.5", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.5-361cf834b74f649c", "cves": [], "html": "<p>修复 GiST 索引扫描结束时的内存泄漏（Tom Lane）</p>\n<p>执行许多独立 GiST 索引扫描的命令（例如对已包含许多行的表验证新的基于 GiST 的排他约束）会因此泄漏瞬时需要大量内存。</p>", "text": "修复 GiST 索引扫描结束时的内存泄漏（Tom Lane） 执行许多独立 GiST 索引扫描的命令（例如对已包含许多行的表验证新的基于 GiST 的排他约束）会因此泄漏瞬时需要大量内存。", "title": "修复 GiST 索引扫描结束时的内存泄漏", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.5/#id-1.11.6.23.5", "source_hash": "fdb92f56027c9ddb6a06f1a7c1a8d3eabbd8f28e1f0a26aa2ddb28460dbbe33f", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix memory leak at end of a GiST index scan (Tom Lane) Commands that perform many separate GiST index scans, such as verification of a new GiST-based exclusion constraint on a table already containing many rows, could transiently require large amounts of memory due to this leak.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.5/changes/014", "db_id": "5663370bfa82647a3e2d0d54fa53390d", "patch_ids": [], "statement_hash": "8874e4cbab18a89732c29a6ac6e39590040bb8903e77ecc7207f67ff9d1b8d9c", "relations": [{"rule": 2, "type": "equivalent", "target": "fa34ca25147b2f0661795577525fb45e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8874e4cbab18a89732c29a6ac6e39590040bb8903e77ecc7207f67ff9d1b8d9c"}}], "version": "9.0.5", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "fa34ca25147b2f0661795577525fb45e", "kind": "equivalent", "version": "9.1.1", "label": "9.1.1", "title": "修复 GiST 索引扫描结束时的内存泄漏", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8874e4cbab18a89732c29a6ac6e39590040bb8903e77ecc7207f67ff9d1b8d9c"}, "url": "/docs/compare/?release=9.1.1#9.1.1-361cf834b74f649c", "source_url": "/docs/release/9.1.1/#id-1.11.6.28.5"}]}, {"id": "9.0.5-3c8c9cf483b691a6", "cves": [], "html": "<p>修复当必须对传入的命令串做编码转换且 <code>LISTEN</code> 处于活动状态时的内存泄漏（Tom Lane）</p>", "text": "修复当必须对传入的命令串做编码转换且 LISTEN 处于活动状态时的内存泄漏（Tom Lane）", "title": "修复当必须对传入的命令串做编码转换且 LISTEN 处于活动状态时的内存泄漏", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.5/#id-1.11.6.23.5", "source_hash": "8293189a75d056e27f46d9750bc15fabf686c0989b03125310efeecd6945ba10", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix memory leak when encoding conversion has to be done on incoming command strings and LISTEN is active (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.5/changes/015", "db_id": "af59f65f61654b847c7788988c94361a", "patch_ids": [], "statement_hash": "cdd5cb03934c910ad7f52513ddf61274529989dc4cd535f1b1117b96b22d9b4a", "relations": [], "version": "9.0.5", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.5-e41a42fdb63e20c7", "cves": [], "html": "<p>修复支持可持有游标和 plpgsql 的 <code>RETURN NEXT</code> 命令的 tuplestore 中不正确的内存核算（可能导致内存膨胀）（Tom Lane）</p>", "text": "修复支持可持有游标和 plpgsql 的 RETURN NEXT 命令的 tuplestore 中不正确的内存核算（可能导致内存膨胀）（Tom Lane）", "title": "修复支持可持有游标和 plpgsql 的 RETURN NEXT 命令的 tuplestore 中不正确的内存核算（可能导致内存膨胀）", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.5/#id-1.11.6.23.5", "source_hash": "6b8d88e22ef10075039edc4436f829c8e3a2d585a1b326a720b5ff49ee94670d", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix incorrect memory accounting (leading to possible memory bloat) in tuplestores supporting holdable cursors and plpgsql's RETURN NEXT command (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.5/changes/016", "db_id": "22568f3287258d608e50fe915c6d001c", "patch_ids": [], "statement_hash": "b0e38a1946570ed2dc6271b314ae7cedc2861ec9f69ae4ccb0c1beda5016dd1f", "relations": [], "version": "9.0.5", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.5-76e08001a2d87682", "cves": [], "html": "<p>修复同时存在 <code>BEFORE</code> 和 <code>AFTER</code> 触发器时的触发器 <code>WHEN</code> 条件（Tom Lane）</p>\n<p>如果同一更新曾触发过 <code>BEFORE ROW</code> 触发器，<code>AFTER ROW UPDATE</code> 触发器的 <code>WHEN</code> 条件求值可能崩溃。</p>", "text": "修复同时存在 BEFORE 和 AFTER 触发器时的触发器 WHEN 条件（Tom Lane） 如果同一更新曾触发过 BEFORE ROW 触发器，AFTER ROW UPDATE 触发器的 WHEN 条件求值可能崩溃。", "title": "修复同时存在 BEFORE 和 AFTER 触发器时的触发器 WHEN 条件", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.5/#id-1.11.6.23.5", "source_hash": "bc070d7d0309506446a2f74c037a95dbc388e4114aa327c57b9966eb1e9587cc", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix trigger WHEN conditions when both BEFORE and AFTER triggers exist (Tom Lane) Evaluation of WHEN conditions for AFTER ROW UPDATE triggers could crash if there had been a BEFORE ROW trigger fired for the same update.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.5/changes/017", "db_id": "8812d18aa06489526250e6c6492a37ee", "patch_ids": [], "statement_hash": "d0efaefc1fe59fca219af6ae6af3585d49e137a731f08f8b0299062cfee6780a", "relations": [], "version": "9.0.5", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.5-948aaf28ba2649ce", "cves": [], "html": "<p>修复构造大型有损位图时的性能问题（Tom Lane）</p>", "text": "修复构造大型有损位图时的性能问题（Tom Lane）", "title": "修复构造大型有损位图时的性能问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.5/#id-1.11.6.23.5", "source_hash": "b85224e0f6a8b93e2351815fb20a2503c37e04e35e70fc2f5d62e63f6d9556d8", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix performance problem when constructing a large, lossy bitmap (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.5/changes/018", "db_id": "55cc6f55cba55ffa93ef57961be2ac95", "patch_ids": [], "statement_hash": "e44ebdbcbb59cf95f8c20bc38cd4e83e633de9440fdefc182753b42951bc8531", "relations": [], "version": "9.0.5", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.5-8b0415156c792b22", "cves": [], "html": "<p>修复唯一列的连接选择率估计（Tom Lane）</p>\n<p>这修复了一个可能错误估计连接结果大小的规划器启发式规则。</p>", "text": "修复唯一列的连接选择率估计（Tom Lane） 这修复了一个可能错误估计连接结果大小的规划器启发式规则。", "title": "修复唯一列的连接选择率估计", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.5/#id-1.11.6.23.5", "source_hash": "905ec20ae679c45d08d02bc727e9826ea1433ccdb194e3f1b6480afe38379014", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix join selectivity estimation for unique columns (Tom Lane) This fixes an erroneous planner heuristic that could lead to poor estimates of the result size of a join.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.5/changes/019", "db_id": "7dad43c8353783a77a650810dae8791b", "patch_ids": [], "statement_hash": "a87da81d67ddab08c882787371b18e36ad654341a685b5aee4e0c2a345945018", "relations": [], "version": "9.0.5", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.5-81466eafb8c57f7f", "cves": [], "html": "<p>修复只出现在子 SELECT 目标列表中的嵌套 PlaceHolderVar 表达式（Tom Lane）</p>\n<p>这一失误可能导致外连接的输出错误地显示为 NULL。</p>", "text": "修复只出现在子 SELECT 目标列表中的嵌套 PlaceHolderVar 表达式（Tom Lane） 这一失误可能导致外连接的输出错误地显示为 NULL。", "title": "修复只出现在子 SELECT 目标列表中的嵌套 PlaceHolderVar 表达式", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.5/#id-1.11.6.23.5", "source_hash": "6d4fac7e348a57bcd2e2ff08b929b0ec01aed237b9e90042764c7b39fde76b7a", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix nested PlaceHolderVar expressions that appear only in sub-select target lists (Tom Lane) This mistake could result in outputs of an outer join incorrectly appearing as NULL.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.5/changes/020", "db_id": "1ec15e5aa85689c10c679e5644ecdbb3", "patch_ids": [], "statement_hash": "a1ebaf9d60cf87245f05e4ca30d1c9519a35b410ad3bfa5187a254be8277046e", "relations": [], "version": "9.0.5", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.5-8ce828eab01765b8", "cves": [], "html": "<p>允许规划器假定空的父表真的是空的（Tom Lane）</p>\n<p>通常为了规划目的，空表被假定具有某个最小大小；但对继承层次的父表而言，这一启发式规则似乎弊大于利，因为父表往往永久为空。</p>", "text": "允许规划器假定空的父表真的是空的（Tom Lane） 通常为了规划目的，空表被假定具有某个最小大小；但对继承层次的父表而言，这一启发式规则似乎弊大于利，因为父表往往永久为空。", "title": "允许规划器假定空的父表真的是空的", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.5/#id-1.11.6.23.5", "source_hash": "b795a1b013ccaebf53d936042a5f25065dc105d45f5137249635bae3af007ade", "section_path": ["变更"], "commit_groups": [], "identity_text": "Allow the planner to assume that empty parent tables really are empty (Tom Lane) Normally an empty table is assumed to have a certain minimum size for planning purposes; but this heuristic seems to do more harm than good for the parent table of an inheritance hierarchy, which often is permanently empty.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.5/changes/021", "db_id": "c8f7aab04e542ab8eef63ad57ad69a58", "patch_ids": [], "statement_hash": "59b6c8414da6433822282d9a7285d01cd2bb6c6c848bc70bcaf78952d5f3869c", "relations": [], "version": "9.0.5", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.5-5a8d36db3efb478e", "cves": [], "html": "<p>允许嵌套的 <code>EXISTS</code> 查询被正确优化（Tom Lane）</p>", "text": "允许嵌套的 EXISTS 查询被正确优化（Tom Lane）", "title": "允许嵌套的 EXISTS 查询被正确优化", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.5/#id-1.11.6.23.5", "source_hash": "abbe7021646a675c5a3674a1fbde6ecfaeed34272aea284bc5c2f5c1acd35986", "section_path": ["变更"], "commit_groups": [], "identity_text": "Allow nested EXISTS queries to be optimized properly (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.5/changes/022", "db_id": "f6a8d525781f247b1a0254e2b4a48382", "patch_ids": [], "statement_hash": "dcef8b96e4b546e00bc6c7cd1bc4374b0e11912df74c689eeb6cf36160edf55f", "relations": [], "version": "9.0.5", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.5-7dae5edaca921b05", "cves": [], "html": "<p>修复数组和路径创建函数，确保填充字节为零（Tom Lane）</p>\n<p>这避免了一些规划器认为语义相等的常量不相等的情况，这种情况会导致糟糕的优化。</p>", "text": "修复数组和路径创建函数，确保填充字节为零（Tom Lane） 这避免了一些规划器认为语义相等的常量不相等的情况，这种情况会导致糟糕的优化。", "title": "修复数组和路径创建函数，确保填充字节为零", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.5/#id-1.11.6.23.5", "source_hash": "26c7a7b1c06241926ad8f93b103d50d184e3da400ade9e90fd3392994afe7ec2", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix array- and path-creating functions to ensure padding bytes are zeroes (Tom Lane) This avoids some situations where the planner will think that semantically-equal constants are not equal, resulting in poor optimization.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.5/changes/023", "db_id": "9497e669ed72fd24145b3791e61de4b8", "patch_ids": [], "statement_hash": "2e65199111f2b15f6deee34a853bdf0cc3826ec7ad190f3699234311b56fd59d", "relations": [], "version": "9.0.5", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.5-0229aa3a07327796", "cves": [], "html": "<p>修复 <code>EXPLAIN</code>，使其处理内层索引扫描子计划中的门控 Result 节点（Tom Lane）</p>\n<p>这一疏忽的常见症状是 <span>“<span>bogus varno</span>”</span> 错误。</p>", "text": "修复 EXPLAIN，使其处理内层索引扫描子计划中的门控 Result 节点（Tom Lane） 这一疏忽的常见症状是 “bogus varno” 错误。", "title": "修复 EXPLAIN，使其处理内层索引扫描子计划中的门控 Result 节点", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.5/#id-1.11.6.23.5", "source_hash": "6d311a694997f8629e88d29471d8fc0a1eb12f400d1fee677d825f6fa0fa46fc", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix EXPLAIN to handle gating Result nodes within inner-indexscan subplans (Tom Lane) The usual symptom of this oversight was bogus varno errors.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.5/changes/024", "db_id": "3c1a8717a3e2be7ba66ba978a99be412", "patch_ids": [], "statement_hash": "e2e76fd9f19e74a4e3aea822bd1a9996bc1e63c2c5498f3059347a930f80877a", "relations": [], "version": "9.0.5", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.5-e20a487909d91a39", "cves": [], "html": "<p>修复 btree 对 <em><code>indexedcol</code></em> <code>IS NULL</code> 条件的预处理（Dean Rasheed）</p>\n<p>如果与同一索引列上任何其他类型的 btree 可索引条件组合，该条件是不可满足的。这种情况在 9.0.0 及更高版本中处理不正确，导致本应没有输出的查询产生输出。</p>", "text": "修复 btree 对 indexedcol IS NULL 条件的预处理（Dean Rasheed） 如果与同一索引列上任何其他类型的 btree 可索引条件组合，该条件是不可满足的。这种情况在 9.0.0 及更高版本中处理不正确，导致本应没有输出的查询产生输出。", "title": "修复 btree 对 indexedcol IS NULL 条件的预处理", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.5/#id-1.11.6.23.5", "source_hash": "95b1cfec18daf2c89f04a9ec59d110a6a116b02bab52b69ab507354ba2a1f8ac", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix btree preprocessing of indexedcol IS NULL conditions (Dean Rasheed) Such a condition is unsatisfiable if combined with any other type of btree-indexable condition on the same index column. The case was handled incorrectly in 9.0.0 and later, leading to query output where there should be none.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.5/changes/025", "db_id": "52c1de0a09fc66d1715dd4b67ad7cd0e", "patch_ids": [], "statement_hash": "f2ebf8238a47175eaf86883f453b54351b830b826350d910f5d0e1d38514d92c", "relations": [], "version": "9.0.5", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.5-3b2b9f2077f1bf2d", "cves": [], "html": "<p>规避破坏 WAL 重放的 gcc 4.6.0 缺陷（Tom Lane）</p>\n<p>这可能导致服务器崩溃后已提交事务的丢失。</p>", "text": "规避破坏 WAL 重放的 gcc 4.6.0 缺陷（Tom Lane） 这可能导致服务器崩溃后已提交事务的丢失。", "title": "规避破坏 WAL 重放的 gcc 4.6.0 缺陷", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.5/#id-1.11.6.23.5", "source_hash": "c2ffe9cd686a8a73ab92ae7834f46833a99e673d0ac32e066621f69329faf181", "section_path": ["变更"], "commit_groups": [], "identity_text": "Work around gcc 4.6.0 bug that breaks WAL replay (Tom Lane) This could lead to loss of committed transactions after a server crash.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.5/changes/026", "db_id": "e88cfc316fc676ded841ba7a66217586", "patch_ids": [], "statement_hash": "8bb8b96335a07e88bac007bf3bfde12d46e8a1671f066097ad5f7dbc430c5428", "relations": [], "version": "9.0.5", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.5-b34ce89c14574d8e", "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.5/#id-1.11.6.23.5", "source_hash": "629f994d1adf5ea7f4954ac800a4f3c28291043f40cbb4f0e35cd2c40bc738f3", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix dump bug for VALUES in a view (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.5/changes/027", "db_id": "a9bfd38da546eed615afbd3d607a6a23", "patch_ids": [], "statement_hash": "9f960f1184908c5db3b4f5ba0263fa71977bfa10b91a8217e65307aa443aba61", "relations": [], "version": "9.0.5", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.5-f221e6f1d54c79a5", "cves": [], "html": "<p>禁止对序列执行 <code>SELECT FOR UPDATE/SHARE</code>（Tom Lane）</p>\n<p>这种操作不像预期那样工作，可能导致失败。</p>", "text": "禁止对序列执行 SELECT FOR UPDATE/SHARE（Tom Lane） 这种操作不像预期那样工作，可能导致失败。", "title": "禁止对序列执行 SELECT FOR UPDATE/SHARE", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.5/#id-1.11.6.23.5", "source_hash": "70fdc4e13c14e4621f265195984a05d3d15a43f5c2e65b2c5cd437e30dac4975", "section_path": ["变更"], "commit_groups": [], "identity_text": "Disallow SELECT FOR UPDATE/SHARE on sequences (Tom Lane) This operation doesn't work as expected and can lead to failures.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.5/changes/028", "db_id": "e4e9bff2da207c3597b9846ce5f98556", "patch_ids": [], "statement_hash": "e340a2209a2573f31d2d74657e9db8987726a88b80640dd6450ba3bef8872335", "relations": [], "version": "9.0.5", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.5-229741120fe65dcf", "cves": [], "html": "<p>修复 <code>VACUUM</code>，使其总是更新 <code>pg_class</code>.<code>reltuples</code>/<code>relpages</code>（Tom Lane）</p>\n<p>这修复了一些自动清理可能对何时清理表做出越来越差决策的场景。</p>", "text": "修复 VACUUM，使其总是更新 pg_class.reltuples/relpages（Tom Lane） 这修复了一些自动清理可能对何时清理表做出越来越差决策的场景。", "title": "修复 VACUUM，使其总是更新 pg_class.reltuples/relpages", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.5/#id-1.11.6.23.5", "source_hash": "4a0f450a9436ec3c5f1de00d3ad3d15309321ab56d2d83e7e77559608854fcb3", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix VACUUM so that it always updates pg_class.reltuples/relpages (Tom Lane) This fixes some scenarios where autovacuum could make increasingly poor decisions about when to vacuum tables.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.5/changes/029", "db_id": "17150a9b8c992338101b85c58ad82304", "patch_ids": [], "statement_hash": "0f5790194aaaee7128f9e6ac233fba2540e29afdc136c3c5756badf884a5fc05", "relations": [], "version": "9.0.5", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.5-3af44e85ca3eabc8", "cves": [], "html": "<p>防御计算哈希表大小时的整数溢出（Tom Lane）</p>", "text": "防御计算哈希表大小时的整数溢出（Tom Lane）", "title": "防御计算哈希表大小时的整数溢出", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.5/#id-1.11.6.23.5", "source_hash": "098fd8c0a20624203516b865f8fd7c310ac29b1d093f9070030a4d4f1f8fb632", "section_path": ["变更"], "commit_groups": [], "identity_text": "Defend against integer overflow when computing size of a hash table (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.5/changes/030", "db_id": "2579443088e1eea68df44d485fb4a18c", "patch_ids": [], "statement_hash": "11bdc5c76fc2b17a837929748392dd3c8e1628814149c9860b744512c540df6d", "relations": [], "version": "9.0.5", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.5-76d1c335be3bc54c", "cves": [], "html": "<p>修复 <code>CLUSTER</code> 可能尝试访问已移除的 TOAST 数据的情况（Tom Lane）</p>", "text": "修复 CLUSTER 可能尝试访问已移除的 TOAST 数据的情况（Tom Lane）", "title": "修复 CLUSTER 可能尝试访问已移除的 TOAST 数据的情况", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.5/#id-1.11.6.23.5", "source_hash": "6827e20bbc7efc3ffc7f479ff5a862d7cd6856607d543770770f187d7ba3eefa", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix cases where CLUSTER might attempt to access already-removed TOAST data (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.5/changes/031", "db_id": "c72ef84acc516077dd9cd60b715b9d60", "patch_ids": [], "statement_hash": "580e9de0e176ab5203c6f021892377c1bc8b7ba56fd66a693a704f754e51ccd7", "relations": [], "version": "9.0.5", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.5-1b3ca72fa4a33d33", "cves": [], "html": "<p>修复初始认证事务期间的过早超时失败（Tom Lane）</p>", "text": "修复初始认证事务期间的过早超时失败（Tom Lane）", "title": "修复初始认证事务期间的过早超时失败", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.5/#id-1.11.6.23.5", "source_hash": "730a4bcc23571e31d929c47196fe9ac3e788133bfb4b35885261d1be9624122e", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix premature timeout failures during initial authentication transaction (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.5/changes/032", "db_id": "15a9237fa68fae4b0d10cbfc65641d21", "patch_ids": [], "statement_hash": "732936b06c1497e801443b1408493c8dd6bd35cf4dc94249cdc36682895e6934", "relations": [], "version": "9.0.5", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.5-21a34a76836837b0", "cves": [], "html": "<p>修复 <span>“<span>peer</span>”</span> 认证使用凭据控制消息时的可移植性缺陷（Tom Lane）</p>", "text": "修复 “peer” 认证使用凭据控制消息时的可移植性缺陷（Tom Lane）", "title": "修复 “peer” 认证使用凭据控制消息时的可移植性缺陷", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.5/#id-1.11.6.23.5", "source_hash": "707e792a951a2481edd7e5198168c90e0248908585623a95eaa798f6d1ff482c", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix portability bugs in use of credentials control messages for peer authentication (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.5/changes/033", "db_id": "6f6808ceee482a9ed9d8b55a2085d442", "patch_ids": [], "statement_hash": "cb6fbd738a87b296793cc48ca50f75cc9bd6f8097aa344261656ac5898e950e5", "relations": [], "version": "9.0.5", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.5-a1b4379a7835d9d9", "cves": [], "html": "<p>修复需要多次往返时的 SSPI 登录（Ahmed Shinwari、Magnus Hagander）</p>\n<p>该问题的典型症状是 SSPI 登录期间的 <span>“<span>The function requested is not supported</span>”</span> 错误。</p>", "text": "修复需要多次往返时的 SSPI 登录（Ahmed Shinwari、Magnus Hagander） 该问题的典型症状是 SSPI 登录期间的 “The function requested is not supported” 错误。", "title": "修复需要多次往返时的 SSPI 登录", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.5/#id-1.11.6.23.5", "source_hash": "f1f3975518d8eff680f5c29ae7d80eeb58b8fe6e3eda5868fe2dc4b0ccb40b3b", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix SSPI login when multiple roundtrips are required (Ahmed Shinwari, Magnus Hagander) The typical symptom of this problem was The function requested is not supported errors during SSPI login.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.5/changes/034", "db_id": "de930a64439fe15c6fb5927b1a514612", "patch_ids": [], "statement_hash": "ab01a1b223d43d2a06696c29615f44109d67e8e53fd9e73b29f96228b99bf650", "relations": [], "version": "9.0.5", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.5-35f12da9cc71db20", "cves": [], "html": "<p>修复向 <code>postgresql.conf</code> 添加自定义变量类的新变量时的失败（Tom Lane）</p>", "text": "修复向 postgresql.conf 添加自定义变量类的新变量时的失败（Tom Lane）", "title": "修复向 postgresql.conf 添加自定义变量类的新变量时的失败", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.5/#id-1.11.6.23.5", "source_hash": "4a730688e140cf7576fd0467a689781d2a0c2b65795b5e873cf42c98a9f56d91", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix failure when adding a new variable of a custom variable class to postgresql.conf (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.5/changes/035", "db_id": "2429c675b934971d682aca5c5a2a51a0", "patch_ids": [], "statement_hash": "860673118bbda9f103f29c41b94491705df2bc27d885e8c3a28677f65aef1481", "relations": [], "version": "9.0.5", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.5-620d44ee967cd550", "cves": [], "html": "<p>如果 <code>pg_hba.conf</code> 包含 <code>hostssl</code> 但 SSL 被禁用则抛出错误（Tom Lane）</p>\n<p>这被认定比此前静默忽略这类行的行为更用户友好。</p>", "text": "如果 pg_hba.conf 包含 hostssl 但 SSL 被禁用则抛出错误（Tom Lane） 这被认定比此前静默忽略这类行的行为更用户友好。", "title": "如果 pg_hba.conf 包含 hostssl 但 SSL 被禁用则抛出错误", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.5/#id-1.11.6.23.5", "source_hash": "8982feb6f172ac9516467958ba21f5fd0bba63b25632751c7c33d647d7c070ff", "section_path": ["变更"], "commit_groups": [], "identity_text": "Throw an error if pg_hba.conf contains hostssl but SSL is disabled (Tom Lane) This was concluded to be more user-friendly than the previous behavior of silently ignoring such lines.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.5/changes/036", "db_id": "3bc5bad025281e1d8dfd4cd091d37411", "patch_ids": [], "statement_hash": "c2f35d109c4dc81195dd7b963c6e4252915f05aea85b001d78188bf8ff764393", "relations": [], "version": "9.0.5", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.5-b99b09c935aaab5b", "cves": [], "html": "<p>修复 <code>DROP OWNED BY</code> 试图移除序列上的默认权限时的失败（Shigeru Hanada）</p>", "text": "修复 DROP OWNED BY 试图移除序列上的默认权限时的失败（Shigeru Hanada）", "title": "修复 DROP OWNED BY 试图移除序列上的默认权限时的失败", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.5/#id-1.11.6.23.5", "source_hash": "5df2b0b8bda503738445a525582394d4ab8bab53fe97b3dd2a4f9e1f32ae0c3c", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix failure when DROP OWNED BY attempts to remove default privileges on sequences (Shigeru Hanada)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.5/changes/037", "db_id": "a0dc2b3a31aa65c92e80428f8ebed71e", "patch_ids": [], "statement_hash": "8adfc2fc84bd5880acee351fdc7b516cd689cf78c485ed8e1f02c9c2f4145d31", "relations": [], "version": "9.0.5", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.5-373ff2d9038657d6", "cves": [], "html": "<p>修复 <code>pg_srand48</code> 种子初始化中的笔误（Andres Freund）</p>\n<p>这导致未能使用所提供种子的所有位。该函数在大多数平台上不使用（只在没有 <code>srandom</code> 的平台上使用），而且无论如何看待，随机性低于预期的种子带来的潜在安全暴露似乎都很小。</p>", "text": "修复 pg_srand48 种子初始化中的笔误（Andres Freund） 这导致未能使用所提供种子的所有位。该函数在大多数平台上不使用（只在没有 srandom 的平台上使用），而且无论如何看待，随机性低于预期的种子带来的潜在安全暴露似乎都很小。", "title": "修复 pg_srand48 种子初始化中的笔误", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.5/#id-1.11.6.23.5", "source_hash": "60a918ee384b378d199f8929cf7cf76bda9a26ee67a2a8f668f5664ae138553e", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix typo in pg_srand48 seed initialization (Andres Freund) This led to failure to use all bits of the provided seed. This function is not used on most platforms (only those without srandom), and the potential security exposure from a less-random-than-expected seed seems minimal in any case.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.5/changes/038", "db_id": "5962a5136a459cfe61cba33ad9608591", "patch_ids": [], "statement_hash": "bcd870012d3ceab35bcf7cfe6827d0a05c4cb6873e17b285cfa584364183123b", "relations": [], "version": "9.0.5", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.5-b2e9aa965a56523a", "cves": [], "html": "<p>避免 <code>LIMIT</code> 与 <code>OFFSET</code> 值之和超过 2^63 时的整数溢出（Heikki Linnakangas）</p>", "text": "避免 LIMIT 与 OFFSET 值之和超过 2^63 时的整数溢出（Heikki Linnakangas）", "title": "避免 LIMIT 与 OFFSET 值之和超过 2^63 时的整数溢出", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.5/#id-1.11.6.23.5", "source_hash": "cbff0cd5e458765535aafff1b67fb705e452f4d7a543a564039dfe7669c38297", "section_path": ["变更"], "commit_groups": [], "identity_text": "Avoid integer overflow when the sum of LIMIT and OFFSET values exceeds 2^63 (Heikki Linnakangas)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.5/changes/039", "db_id": "3290d9413373e594e9f3d16c22b95063", "patch_ids": [], "statement_hash": "df1103b9b1d8136ab89450a9726f7d52ff2b187e15d20c2f99ad5bc0cc081c8a", "relations": [], "version": "9.0.5", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.5-df66ecf58509fb9f", "cves": [], "html": "<p>为 <code>generate_series()</code> 的 <code>int4</code> 和 <code>int8</code> 版本添加溢出检查（Robert Haas）</p>", "text": "为 generate_series() 的 int4 和 int8 版本添加溢出检查（Robert Haas）", "title": "为 generate_series() 的 int4 和 int8 版本添加溢出检查", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.5/#id-1.11.6.23.5", "source_hash": "861cd787a619f30ef483a608e1a235c5d5e47feda526742794177624b679faa9", "section_path": ["变更"], "commit_groups": [], "identity_text": "Add overflow checks to int4 and int8 versions of generate_series() (Robert Haas)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.5/changes/040", "db_id": "7bd0bd68be3423196286d7df132d3ce5", "patch_ids": [], "statement_hash": "215cad62583c2586e6931a68fc9ba4882dc260258f16c8cbcd0bd908a9f51195", "relations": [], "version": "9.0.5", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.5-66d9f7e566186b07", "cves": [], "html": "<p>修复 <code>to_char()</code> 中移除尾随零的问题（Marti Raudsepp）</p>\n<p>在使用 <code>FM</code> 且小数点后没有数字位的格式中，小数点左侧的零可能被错误移除。</p>", "text": "修复 to_char() 中移除尾随零的问题（Marti Raudsepp） 在使用 FM 且小数点后没有数字位的格式中，小数点左侧的零可能被错误移除。", "title": "修复 to_char() 中移除尾随零的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.5/#id-1.11.6.23.5", "source_hash": "77f445402e0bba2b6c603b84d6588e215599762946cfbd630eed0efac13ae4e0", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix trailing-zero removal in to_char() (Marti Raudsepp) In a format with FM and no digit positions after the decimal point, zeroes to the left of the decimal point could be removed incorrectly.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.5/changes/041", "db_id": "29fee015b85b064dbe56a39bd2d43f89", "patch_ids": [], "statement_hash": "74a1cb9a6c71025cc94e282f923c5fd5efd2eb5d38d77873e690ba73f2dcd453", "relations": [], "version": "9.0.5", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.5-c921c6ce97351436", "cves": [], "html": "<p>修复 <code>pg_size_pretty()</code>，避免接近 2^63 的输入溢出（Tom Lane）</p>", "text": "修复 pg_size_pretty()，避免接近 2^63 的输入溢出（Tom Lane）", "title": "修复 pg_size_pretty()，避免接近 2^63 的输入溢出", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.5/#id-1.11.6.23.5", "source_hash": "1e682cfab495656deeb16686c72ee7587d86f63b17d31293981f9cad77061e8a", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix pg_size_pretty() to avoid overflow for inputs close to 2^63 (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.5/changes/042", "db_id": "0949a94d1689920f980cc74e0bb2334a", "patch_ids": [], "statement_hash": "f312e0450f959ec585908dd60e566d7bfd321ce8ddadb2fa2a96d1a9a807d14b", "relations": [], "version": "9.0.5", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.5-79fa954be0c93585", "cves": [], "html": "<p>放宽 plpgsql 对记录值中 typmod 匹配的检查（Tom Lane）</p>\n<p>过于严格的检查可能导致丢弃本应保留的长度修饰符。</p>", "text": "放宽 plpgsql 对记录值中 typmod 匹配的检查（Tom Lane） 过于严格的检查可能导致丢弃本应保留的长度修饰符。", "title": "放宽 plpgsql 对记录值中 typmod 匹配的检查", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.5/#id-1.11.6.23.5", "source_hash": "08b79c31cb927f9fe618aceef340960d24be3847cb653738b99f11b820993446", "section_path": ["变更"], "commit_groups": [], "identity_text": "Weaken plpgsql's check for typmod matching in record values (Tom Lane) An overly enthusiastic check could lead to discarding length modifiers that should have been kept.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.5/changes/043", "db_id": "aa5c1fc267ab4160fca5c4b2d84f5083", "patch_ids": [], "statement_hash": "cad4edd036a183354d872eec2c4c84858fb28b0c988301e582c1b18543fcb0a1", "relations": [], "version": "9.0.5", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.5-1d0f582e6ca971f5", "cves": [], "html": "<p>在 <span>initdb</span> 期间正确处理区域名中的引号（Heikki Linnakangas）</p>\n<p>这种情况可能出现在某些 Windows 区域设置下，例如<span>“<span>People's Republic of China</span>”</span>。</p>", "text": "在 initdb 期间正确处理区域名中的引号（Heikki Linnakangas） 这种情况可能出现在某些 Windows 区域设置下，例如“People's Republic of China”。", "title": "在 initdb 期间正确处理区域名中的引号", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.5/#id-1.11.6.23.5", "source_hash": "cd44d96038b8d61704ab9f6996a310da211855039d0c85b76a1c9fa8bcacf7a5", "section_path": ["变更"], "commit_groups": [], "identity_text": "Correctly handle quotes in locale names during initdb (Heikki Linnakangas) The case can arise with some Windows locales, such as People's Republic of China.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.5/changes/044", "db_id": "5a38c8c5ca59255222e5985f0a9bdf0c", "patch_ids": [], "statement_hash": "4d0a997eb7763684cee9e01ea136e39c98657c75d954f3f9c65b6baa4944248b", "relations": [], "version": "9.0.5", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.5-f02aa99a218ec1aa", "cves": [], "html": "<p>在 <span>pg_upgrade</span> 中，避免转储孤儿临时表（Bruce Momjian）</p>\n<p>这防止了表 OID 分配在新旧安装之间失去同步的情况。</p>", "text": "在 pg_upgrade 中，避免转储孤儿临时表（Bruce Momjian） 这防止了表 OID 分配在新旧安装之间失去同步的情况。", "title": "在 pg_upgrade 中，避免转储孤儿临时表", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.5/#id-1.11.6.23.5", "source_hash": "833100418cbcbcafcf60497ce8292624bfc8c69a0de75bdef107584197b1484c", "section_path": ["变更"], "commit_groups": [], "identity_text": "In pg_upgrade, avoid dumping orphaned temporary tables (Bruce Momjian) This prevents situations wherein table OID assignments could get out of sync between old and new installations.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.5/changes/045", "db_id": "765c8c68aa3b0490a3144b5de0374973", "patch_ids": [], "statement_hash": "c33616aeadca6719d71e7f27485695b8da8c2070c734f3f96ba51c7887464d95", "relations": [], "version": "9.0.5", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.5-199ca631561f96b9", "cves": [], "html": "<p>修复 <span>pg_upgrade</span>，使其在从 8.3 升级期间保留 toast 表的 relfrozenxid（Bruce Momjian）</p>\n<p>不这样做可能导致升级后 <code>pg_clog</code> 文件被过早删除。</p>", "text": "修复 pg_upgrade，使其在从 8.3 升级期间保留 toast 表的 relfrozenxid（Bruce Momjian） 不这样做可能导致升级后 pg_clog 文件被过早删除。", "title": "修复 pg_upgrade，使其在从 8.3 升级期间保留 toast 表的 relfrozenxid", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.5/#id-1.11.6.23.5", "source_hash": "55b103784c1a48d9797ebde9cd3be98d5f818fb214c1c62e32fdb72f7012ff4e", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix pg_upgrade to preserve toast tables' relfrozenxids during an upgrade from 8.3 (Bruce Momjian) Failure to do this could lead to pg_clog files being removed too soon after the upgrade.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.5/changes/046", "db_id": "8415c1c3dc08f38f1d45d652f862a1bd", "patch_ids": [], "statement_hash": "ddc1c6526624820884e9f9bc0e99ac5f553bc01deb160b27459d3be5b7c959d4", "relations": [], "version": "9.0.5", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.5-d0e63265a941ae1f", "cves": [], "html": "<p>修复 <span>pg_upgrade</span> 的 <code>-l</code>（日志）选项在 Windows 上工作的问题（Bruce Momjian）</p>", "text": "修复 pg_upgrade 的 -l（日志）选项在 Windows 上工作的问题（Bruce Momjian）", "title": "修复 pg_upgrade 的 -l（日志）选项在 Windows 上工作的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.5/#id-1.11.6.23.5", "source_hash": "b767a553ac2357ab2e5840bd1ebf4708de28b1612708f74349c83e3992337f96", "section_path": ["变更"], "commit_groups": [], "identity_text": "In pg_upgrade, fix the -l (log) option to work on Windows (Bruce Momjian)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.5/changes/047", "db_id": "a9824c0aa58301fc7d30e458e944f408", "patch_ids": [], "statement_hash": "99bd558234664f9b2640a6181cc522c38b44ee08c0f165e6db4aa77147d08e2c", "relations": [], "version": "9.0.5", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.5-7a71612309b0978a", "cves": [], "html": "<p>在 <span>pg_ctl</span> 中，支持 Windows 上服务注册的静默模式（MauMau）</p>", "text": "在 pg_ctl 中，支持 Windows 上服务注册的静默模式（MauMau）", "title": "在 pg_ctl 中，支持 Windows 上服务注册的静默模式", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.5/#id-1.11.6.23.5", "source_hash": "33f01ca79eb91e9b23c37a613e543ab8df36c5365b047c5c567dfe96eadc1b8f", "section_path": ["变更"], "commit_groups": [], "identity_text": "In pg_ctl, support silent mode for service registrations on Windows (MauMau)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.5/changes/048", "db_id": "7ccef7a9a042c981506ef45de83bb0af", "patch_ids": [], "statement_hash": "960e1bccb5b0eaa28fb129275454cc70f79491ecd9d16481356db89e8af55cfa", "relations": [], "version": "9.0.5", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.5-500ffa84ee5376ae", "cves": [], "html": "<p>修复 <span>psql</span> 在从其他文件执行 <code>COPY</code> 期间脚本文件行号计数的问题（Tom Lane）</p>", "text": "修复 psql 在从其他文件执行 COPY 期间脚本文件行号计数的问题（Tom Lane）", "title": "修复 psql 在从其他文件执行 COPY 期间脚本文件行号计数的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.5/#id-1.11.6.23.5", "source_hash": "c0fab1c24befa47d9816567b268ab22ad0af69bdfc879edc62a1d5fbe29a2aa0", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix psql's counting of script file line numbers during COPY from a different file (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.5/changes/049", "db_id": "f54baf1859489d2b302ddeeb303fd1af", "patch_ids": [], "statement_hash": "519db0e5cadc52e87f6c27e43c26d5d968d11c033c846fc027aa2540184df5b0", "relations": [], "version": "9.0.5", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.5-206ed6f2c1afeb16", "cves": [], "html": "<p>修复 <span>pg_restore</span> 直接写数据库模式对 <code>standard_conforming_strings</code> 的处理（Tom Lane）</p>\n<p>当从以 <code>standard_conforming_strings</code> 设为 <code>on</code> 制作的归档文件直接恢复到数据库服务器时，<span>pg_restore</span> 可能发出不正确的命令。</p>", "text": "修复 pg_restore 直接写数据库模式对 standard_conforming_strings 的处理（Tom Lane） 当从以 standard_conforming_strings 设为 on 制作的归档文件直接恢复到数据库服务器时，pg_restore 可能发出不正确的命令。", "title": "修复 pg_restore 直接写数据库模式对 standard_conforming_strings 的处理", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.5/#id-1.11.6.23.5", "source_hash": "b7882366a9c1a43ddbbcdf17484cbcc9a7468440c8ba51369729aab9e7948f85", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix pg_restore's direct-to-database mode for standard_conforming_strings (Tom Lane) pg_restore could emit incorrect commands when restoring directly to a database server from an archive file that had been made with standard_conforming_strings set to on.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.5/changes/050", "db_id": "cc8678655d5aa3b16b31676a4f667d50", "patch_ids": [], "statement_hash": "d467006aeaf351bfe5f4a918f505d5e3ae36913a993ebc5cf938382f245115ac", "relations": [], "version": "9.0.5", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.5-fa1b620295f0059e", "cves": [], "html": "<p>对并行 <span>pg_restore</span> 不支持的情况更加用户友好（Tom Lane）</p>\n<p>此变更确保这类情况在任何恢复动作发生之前就被检测并报告。</p>", "text": "对并行 pg_restore 不支持的情况更加用户友好（Tom Lane） 此变更确保这类情况在任何恢复动作发生之前就被检测并报告。", "title": "对并行 pg_restore 不支持的情况更加用户友好", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.5/#id-1.11.6.23.5", "source_hash": "e01c339f5f08e217a5548656802a1a546c2e8357e78f1069ae0242c3ab33255d", "section_path": ["变更"], "commit_groups": [], "identity_text": "Be more user-friendly about unsupported cases for parallel pg_restore (Tom Lane) This change ensures that such cases are detected and reported before any restore actions have been taken.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.5/changes/051", "db_id": "9ae3e4f65ca6d29df28d7d88ef3f706b", "patch_ids": [], "statement_hash": "e00782bcc74c2bc8778ccbc4a6bea49945060044e6340863f689fa2febcf9519", "relations": [], "version": "9.0.5", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.5-6dab054de8c595b1", "cves": [], "html": "<p>修复 <span>libpq</span> 的 LDAP 服务查找代码中的越界写入和内存泄漏（Albe Laurenz）</p>", "text": "修复 libpq 的 LDAP 服务查找代码中的越界写入和内存泄漏（Albe Laurenz）", "title": "修复 libpq 的 LDAP 服务查找代码中的越界写入和内存泄漏", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.5/#id-1.11.6.23.5", "source_hash": "42b1fc497673eb77704d769c83fdfd6a169505a73120eac6a3b17f7ccfcdf4d6", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix write-past-buffer-end and memory leak in libpq's LDAP service lookup code (Albe Laurenz)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.5/changes/052", "db_id": "917cf5d250528bd3875516340bb75fd2", "patch_ids": [], "statement_hash": "bd4dcb56ef61729730f9dbf2a2cd5a60227019c86baf545975db44829284ee49", "relations": [], "version": "9.0.5", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.5-7701c79f717a3b2e", "cves": [], "html": "<p>在 <span>libpq</span> 中，避免使用非阻塞 I/O 和 SSL 连接时的失败（Martin Pihlak、Tom Lane）</p>", "text": "在 libpq 中，避免使用非阻塞 I/O 和 SSL 连接时的失败（Martin Pihlak、Tom Lane）", "title": "在 libpq 中，避免使用非阻塞 I/O 和 SSL 连接时的失败", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.5/#id-1.11.6.23.5", "source_hash": "a32e2369b8348097d32661a445d02d079dc08724da1d8a945d9f705326effa42", "section_path": ["变更"], "commit_groups": [], "identity_text": "In libpq, avoid failures when using nonblocking I/O and an SSL connection (Martin Pihlak, Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.5/changes/053", "db_id": "6784e623de94a233a03e77ec426a68d5", "patch_ids": [], "statement_hash": "53b787c5b6935585b58d4337feb835dadfbb96b49f5bb783930d8dc2d4037da6", "relations": [], "version": "9.0.5", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.5-a101b5cab308ee6f", "cves": [], "html": "<p>改进 libpq 对连接启动期间失败的处理（Tom Lane）</p>\n<p>特别是，对 SSL 连接启动期间服务器报告 <code>fork()</code> 失败的响应现在更合理。</p>", "text": "改进 libpq 对连接启动期间失败的处理（Tom Lane） 特别是，对 SSL 连接启动期间服务器报告 fork() 失败的响应现在更合理。", "title": "改进 libpq 对连接启动期间失败的处理", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.5/#id-1.11.6.23.5", "source_hash": "4e981a97581dff259214e5ae67001fa610ca4351774c678178aa07e4bde0a366", "section_path": ["变更"], "commit_groups": [], "identity_text": "Improve libpq's handling of failures during connection startup (Tom Lane) In particular, the response to a server report of fork() failure during SSL connection startup is now saner.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.5/changes/054", "db_id": "a8d60624652f066c216c8e69963f65b1", "patch_ids": [], "statement_hash": "70c3548483e98f4e5a077408e60f4cb337e29468a95f103972a27f7f42692ba4", "relations": [], "version": "9.0.5", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.5-0972c9710f08dd0e", "cves": [], "html": "<p>改进 <span>libpq</span> 对 SSL 失败的错误报告（Tom Lane）</p>", "text": "改进 libpq 对 SSL 失败的错误报告（Tom Lane）", "title": "改进 libpq 对 SSL 失败的错误报告", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.5/#id-1.11.6.23.5", "source_hash": "dcb9d57f3052090ee17199fe01b19fe37badbb965406f2992e40d12ae129f803", "section_path": ["变更"], "commit_groups": [], "identity_text": "Improve libpq's error reporting for SSL failures (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.5/changes/055", "db_id": "2da6cd33cd6257df7bd32170cbc8cbee", "patch_ids": [], "statement_hash": "804f0119bbe102ff21ef4975ee11f69540630023e00cc072e1b8a1e49b5da912", "relations": [], "version": "9.0.5", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.5-16f52d1ed3025c0f", "cves": [], "html": "<p>修复 <code>PQsetvalue()</code>，避免向最初来自服务器查询的 <code>PGresult</code> 添加新元组时可能崩溃（Andrew Chernow）</p>", "text": "修复 PQsetvalue()，避免向最初来自服务器查询的 PGresult 添加新元组时可能崩溃（Andrew Chernow）", "title": "修复 PQsetvalue()，避免向最初来自服务器查询的 PGresult 添加新元组时可能崩溃", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.5/#id-1.11.6.23.5", "source_hash": "4ded92db027fc053fae3ee81bf7aabc3a4b23ecc7d98da7daec51124c400ec9b", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix PQsetvalue() to avoid possible crash when adding a new tuple to a PGresult originally obtained from a server query (Andrew Chernow)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.5/changes/056", "db_id": "52b8cb8ac298dc4913395ca23fb98988", "patch_ids": [], "statement_hash": "6974b93cba3c7b9889b7720f95285c3e35c9cdd8eff0e5109cbfbd27889b830e", "relations": [], "version": "9.0.5", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.5-30de52633c6b1378", "cves": [], "html": "<p>让 <span>ecpglib</span> 以 15 位精度写 <code>double</code> 值（Akira Kurosawa）</p>", "text": "让 ecpglib 以 15 位精度写 double 值（Akira Kurosawa）", "title": "让 ecpglib 以 15 位精度写 double 值", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.5/#id-1.11.6.23.5", "source_hash": "8cf58ed2e410ab492228bb8281ae2c441ea2d2e906bb26242aee059ee6956c20", "section_path": ["变更"], "commit_groups": [], "identity_text": "Make ecpglib write double values with 15 digits precision (Akira Kurosawa)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.5/changes/057", "db_id": "32cce2f386b93225e8c1512983a0775e", "patch_ids": [], "statement_hash": "ab2cb34b99e58c77332ebe45246e9ce93b901e3b8144d6cb26c5ee1c0058f1db", "relations": [], "version": "9.0.5", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.5-39a05104fe03bf9c", "cves": [], "html": "<p>在 <span>ecpglib</span> 中，确保出错后恢复 <code>LC_NUMERIC</code> 设置（Michael Meskes）</p>", "text": "在 ecpglib 中，确保出错后恢复 LC_NUMERIC 设置（Michael Meskes）", "title": "在 ecpglib 中，确保出错后恢复 LC_NUMERIC 设置", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.5/#id-1.11.6.23.5", "source_hash": "69d0e25a293adf973ae955741d715d93880ef67fda7109646672864cd27f0271", "section_path": ["变更"], "commit_groups": [], "identity_text": "In ecpglib, be sure LC_NUMERIC setting is restored after an error (Michael Meskes)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.5/changes/058", "db_id": "c4c61e913a9b8376eeb4c1539cba75c5", "patch_ids": [], "statement_hash": "d50580bab4e2e322065c472ab7b671751d5213921e5d84a0b3e9b4d7cad668da", "relations": [], "version": "9.0.5", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.5-45abca80e0ebbc1f", "cves": ["CVE-2011-2483"], "html": "<p>应用上游对 blowfish 有符号字符缺陷的修复（CVE-2011-2483）（Tom Lane）</p>\n<p><code>contrib/pg_crypto</code> 的 blowfish 加密代码在 char 为有符号的平台（大多数平台如此）上可能给出错误结果，导致加密口令比应有的强度更弱。</p>", "text": "应用上游对 blowfish 有符号字符缺陷的修复（CVE-2011-2483）（Tom Lane） contrib/pg_crypto 的 blowfish 加密代码在 char 为有符号的平台（大多数平台如此）上可能给出错误结果，导致加密口令比应有的强度更弱。", "title": "应用上游对 blowfish 有符号字符缺陷的修复（CVE-2011-2483）", "commits": [], "section": "变更", "category": "security", "source_url": "/docs/release/9.0.5/#id-1.11.6.23.5", "source_hash": "8cc298dd27eea7530b7c835b7a588b7cf712ae5ba17aa774fc4f4aefed85e2e6", "section_path": ["变更"], "commit_groups": [], "identity_text": "Apply upstream fix for blowfish signed-character bug (CVE-2011-2483) (Tom Lane) contrib/pg_crypto's blowfish encryption code could give wrong results on platforms where char is signed (which is most), leading to encrypted passwords being weaker than they should be.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.5/changes/059", "db_id": "651ec42de4f2d053dfaeed3d9006d138", "patch_ids": [], "statement_hash": "e7599445eba73f2a0ab35becc6321fa0a10ab6d4b609fedfa286dcaf49e12e83", "relations": [], "version": "9.0.5", "category_label": "安全相关", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.5-042e95eb2ba19e9d", "cves": [], "html": "<p>修复 <code>contrib/seg</code> 中的内存泄漏（Heikki Linnakangas）</p>", "text": "修复 contrib/seg 中的内存泄漏（Heikki Linnakangas）", "title": "修复 contrib/seg 中的内存泄漏", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.5/#id-1.11.6.23.5", "source_hash": "451095d637b2d4150954c168a1251e134f9fa9339e1433dcf0cbc9508c354eec", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix memory leak in contrib/seg (Heikki Linnakangas)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.5/changes/060", "db_id": "d6557f7f6c6aa560e0dafb9bfc9a2cda", "patch_ids": [], "statement_hash": "67a306816788ac7314daec3934f3e2c9615399c265e7dbe47ebf796fd0a7c9e8", "relations": [], "version": "9.0.5", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.5-1dec28c0fe0c349f", "cves": [], "html": "<p>修复 <code>pgstatindex()</code>，使其对空索引给出一致结果（Tom Lane）</p>", "text": "修复 pgstatindex()，使其对空索引给出一致结果（Tom Lane）", "title": "修复 pgstatindex()，使其对空索引给出一致结果", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.5/#id-1.11.6.23.5", "source_hash": "1e77f485d31fb68099230295cf33b84cb1694ffbbb84b1ea7dc219cd10cc3cbe", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix pgstatindex() to give consistent results for empty indexes (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.5/changes/061", "db_id": "a9be25b986c562b01ea3aa8fab6f89d7", "patch_ids": [], "statement_hash": "70c8f9f25f514560603d0e618696509aa14ecd5c9bcd138035816a854f4b8af1", "relations": [], "version": "9.0.5", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.5-d04db3a4e5896a7b", "cves": [], "html": "<p>允许使用 perl 5.14 构建（Alex Hunsaker）</p>", "text": "允许使用 perl 5.14 构建（Alex Hunsaker）", "title": "允许使用 perl 5.14 构建", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.5/#id-1.11.6.23.5", "source_hash": "2e13d277be584a5c9cb5a19aa4ea51096f05ed3dff3a702a6c31c71824f5e5fa", "section_path": ["变更"], "commit_groups": [], "identity_text": "Allow building with perl 5.14 (Alex Hunsaker)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.5/changes/062", "db_id": "12181919e797977fd6a8eb4604be0f38", "patch_ids": [], "statement_hash": "8da45459c0723dc9f9270d845d7831a2a1fba49fe2b0715f16416dccef7db06c", "relations": [], "version": "9.0.5", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.5-0681077ecca05c06", "cves": [], "html": "<p>修复构建和安装文件路径包含空格的各种问题（Tom Lane）</p>", "text": "修复构建和安装文件路径包含空格的各种问题（Tom Lane）", "title": "修复构建和安装文件路径包含空格的各种问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.5/#id-1.11.6.23.5", "source_hash": "a03ec91891f0c6438a8f27d211d85bd89cb583495c43a797fed4402818979c9c", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix assorted issues with build and install file paths containing spaces (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.5/changes/063", "db_id": "70c32ab657796b82a95e1f86f2b0c16a", "patch_ids": [], "statement_hash": "611b0c2aa93036b38510e3236a6a739f9631a0cd714fcda610b2f520496d31f8", "relations": [], "version": "9.0.5", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.5-390fc5430fa56c16", "cves": [], "html": "<p>把时区数据文件更新为 <span>tzdata</span> 版本 2011i for DST law changes in Canada, Egypt, Russia, Samoa, and South Sudan。</p>", "text": "把时区数据文件更新为 tzdata 版本 2011i for DST law changes in Canada, Egypt, Russia, Samoa, and South Sudan。", "title": "把时区数据文件更新为 tzdata 版本 2011i for DST law changes in Canada, Egypt, Russia, Samoa, and South Sudan。", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.5/#id-1.11.6.23.5", "source_hash": "c7b1e5361546c15140f3f2c0461e5cf344d7a1929675dcfbfda0a219bd647810", "section_path": ["变更"], "commit_groups": [], "identity_text": "Update time zone data files to tzdata release 2011i for DST law changes in Canada, Egypt, Russia, Samoa, and South Sudan.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.5/changes/064", "db_id": "96a19602f4b237484f0fb352155f3ed8", "patch_ids": [], "statement_hash": "5a1b869d950438d25a1f8a65efc5256ff3b6ed06abf97a28ac8cc6b34237c8a2", "relations": [], "version": "9.0.5", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}]}, {"date": "2011-04-18", "build": "9.0.4", "major": "9.0", "minor": 4, "manual": "9.0", "status": "stable", "doc_git": "", "version": "9.0.4", "eol_date": "2015-10-08", "date_text": "2011-04-18", "supported": false, "manual_url": "/docs/9.0/release-9-0-4.html", "source_url": "/docs/release/9.0.4/", "entry_count": 29, "placeholder": false, "content_hash": "7f74c432cc01dd2925cb71a8074bd9c2692b1ebe4094099c2b705f1ff60d5d0a", "manual_build": "9.0.23", "source_as_of": "", "changes_count": 29, "doc_loaded_at": "2026-09-26T02:56:48.570247", "migration_html": "<p>对于运行 9.0.X 的用户，不需要进行转储/恢复。</p>\n<p>不过，如果你的安装是通过运行 <span>pg_upgrade</span> 从前一个大版本升级的，应采取措施防止因 <span>pg_upgrade</span> 一个现已修复的缺陷导致可能的数据丢失。推荐的解决方案是对所有 TOAST 表执行 <code>VACUUM FREEZE</code>。更多信息见 <a href=\"http://wiki.postgresql.org/wiki/20110408pg_upgrade_fix\">http://wiki.postgresql.org/wiki/20110408pg_upgrade_fix</a>。</p>", "compatibility_count": 0, "label": "9.0.4", "status_label": "历史版本", "eol": "2015-10-08", "age_days": 5644, "support_days": -4010, "entries": [{"id": "9.0.4-78db56164a4fe2cd", "cves": [], "html": "<p>修复 <span>pg_upgrade</span> 对 TOAST 表的处理（Bruce Momjian）</p>\n<p>在 <span>pg_upgrade</span> 期间，TOAST 表的 <code>pg_class</code>.<code>relfrozenxid</code> 值未被正确复制到新安装。这之后可能导致 <code>pg_clog</code> 文件在仍被需要用于验证 TOAST 表中的元组时被丢弃，导致 <span>“<span>could not access status of transaction</span>”</span> 失败。</p>\n<p>这一错误对曾用 <span>pg_upgrade</span> 升级的安装构成显著的数据丢失风险。此补丁纠正了未来使用 <span>pg_upgrade</span> 时的问题，但本身不能治愈已用带缺陷版本的 <span>pg_upgrade</span> 处理过的安装中的问题。</p>", "text": "修复 pg_upgrade 对 TOAST 表的处理（Bruce Momjian） 在 pg_upgrade 期间，TOAST 表的 pg_class.relfrozenxid 值未被正确复制到新安装。这之后可能导致 pg_clog 文件在仍被需要用于验证 TOAST 表中的元组时被丢弃，导致 “could not access status of transaction” 失败。 这一错误对曾用 pg_upgrade 升级的安装构成显著的数据丢失风险。此补丁纠正了未来使用 pg_upgrade 时的问题，但本身不能治愈已用带缺陷版本的 pg_upgrade 处理过的安装中的问题。", "title": "修复 pg_upgrade 对 TOAST 表的处理", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.4/#id-1.11.6.24.5", "source_hash": "0807076979c47bdafbee3a16da50f18829c446ec53e143a7f084ddbd214883c1", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix pg_upgrade's handling of TOAST tables (Bruce Momjian) The pg_class.relfrozenxid value for TOAST tables was not correctly copied into the new installation during pg_upgrade. This could later result in pg_clog files being discarded while they were still needed to validate tuples in the TOAST tables, leading to could not access status of transaction failures. This error poses a significant risk of data loss for installations that have been upgraded with pg_upgrade. This patch corrects the problem for future uses of pg_upgrade, but does not in itself cure the issue in installations that have been processed with a buggy version of pg_upgrade.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.4/changes/001", "db_id": "b1b600505eb94600a25d8e45fd752eed", "patch_ids": [], "statement_hash": "163dd42244d988e02239ef1d998a1951e653f2162d6652a6a81aed8ef8983a7f", "relations": [], "version": "9.0.4", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.4-443c8b6a1cfc346d", "cves": [], "html": "<p>抑制错误的 <span>“<span>PD_ALL_VISIBLE flag was incorrectly set</span>”</span> 警告（Heikki Linnakangas）</p>\n<p><code>VACUUM</code> 有时会在实际有效的情况下发出此警告。</p>", "text": "抑制错误的 “PD_ALL_VISIBLE flag was incorrectly set” 警告（Heikki Linnakangas） VACUUM 有时会在实际有效的情况下发出此警告。", "title": "抑制错误的 “PD_ALL_VISIBLE flag was incorrectly set” 警告", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.4/#id-1.11.6.24.5", "source_hash": "2d3d9900b78b20b7a37370c1db7c8ebee3cb32ef0a8cf11f07cab7fdbe56631b", "section_path": ["变更"], "commit_groups": [], "identity_text": "Suppress incorrect PD_ALL_VISIBLE flag was incorrectly set warning (Heikki Linnakangas) VACUUM would sometimes issue this warning in cases that are actually valid.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.4/changes/002", "db_id": "f4d439f2d0f2e45c2ac1956c5d68c24f", "patch_ids": [], "statement_hash": "0b41750e055e079830c8a467d29839f457722aef966fc4b71a6717042f4b8708", "relations": [], "version": "9.0.4", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.4-56daa98e4f12fd49", "cves": [], "html": "<p>为热备冲突情况使用更好的 SQLSTATE 错误码（Tatsuo Ishii、Simon Riggs）</p>\n<p>所有可重试的冲突错误现在都具有指示可以重试的错误码。此外，因主库上数据库被删除而关闭会话现在报告为 <code>ERRCODE_DATABASE_DROPPED</code> 而不是 <code>ERRCODE_ADMIN_SHUTDOWN</code>，使连接池能够正确处理这种情况。</p>", "text": "为热备冲突情况使用更好的 SQLSTATE 错误码（Tatsuo Ishii、Simon Riggs） 所有可重试的冲突错误现在都具有指示可以重试的错误码。此外，因主库上数据库被删除而关闭会话现在报告为 ERRCODE_DATABASE_DROPPED 而不是 ERRCODE_ADMIN_SHUTDOWN，使连接池能够正确处理这种情况。", "title": "为热备冲突情况使用更好的 SQLSTATE 错误码", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.4/#id-1.11.6.24.5", "source_hash": "2f2ed815489f65286f90efe70273ab12c3a727c9fa649f3d8210518b89990e65", "section_path": ["变更"], "commit_groups": [], "identity_text": "Use better SQLSTATE error codes for hot standby conflict cases (Tatsuo Ishii and Simon Riggs) All retryable conflict errors now have an error code that indicates that a retry is possible. Also, session closure due to the database being dropped on the master is now reported as ERRCODE_DATABASE_DROPPED, rather than ERRCODE_ADMIN_SHUTDOWN, so that connection poolers can handle the situation correctly.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.4/changes/003", "db_id": "8220a13fac37af3ca3bb25082bdf96ef", "patch_ids": [], "statement_hash": "f13dbed18551240d780d4c3d3f90f88a60bdb03c950c9d307733b093c658b2c3", "relations": [], "version": "9.0.4", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.4-1a31386f69713309", "cves": [], "html": "<p>防止启动进程与 bgwriter 进程交互时的间歇性挂起（Simon Riggs）</p>\n<p>这影响非热备情况下的恢复。</p>", "text": "防止启动进程与 bgwriter 进程交互时的间歇性挂起（Simon Riggs） 这影响非热备情况下的恢复。", "title": "防止启动进程与 bgwriter 进程交互时的间歇性挂起", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.4/#id-1.11.6.24.5", "source_hash": "6f7e0c44d76105ad0ab9dff6345e007b584f6e95deed466b2afb2e9ec6224d30", "section_path": ["变更"], "commit_groups": [], "identity_text": "Prevent intermittent hang in interactions of startup process with bgwriter process (Simon Riggs) This affected recovery in non-hot-standby cases.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.4/changes/004", "db_id": "1f5f96cb9f4cca288ec82b374cd785c1", "patch_ids": [], "statement_hash": "7ae172bd47912f8d87ea14870bd7d24dd110f6649f0d63ac969ea59e1f42aba7", "relations": [], "version": "9.0.4", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.4-169ecddc81b7318d", "cves": [], "html": "<p>禁止在组合类型中包含其自身（Tom Lane）</p>\n<p>这防止了服务器在处理该组合类型时无限递归的场景。虽然这种结构有一些可能的用途，但它们似乎不足以抵消确保其始终安全工作所需的努力。</p>", "text": "禁止在组合类型中包含其自身（Tom Lane） 这防止了服务器在处理该组合类型时无限递归的场景。虽然这种结构有一些可能的用途，但它们似乎不足以抵消确保其始终安全工作所需的努力。", "title": "禁止在组合类型中包含其自身", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.4/#id-1.11.6.24.5", "source_hash": "af3f6dd660975aadcc10c2d57259faefd45362a26b37a31cf70527799b17753f", "section_path": ["变更"], "commit_groups": [], "identity_text": "Disallow including a composite type in itself (Tom Lane) This prevents scenarios wherein the server could recurse infinitely while processing the composite type. While there are some possible uses for such a structure, they don't seem compelling enough to justify the effort required to make sure it always works safely.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.4/changes/005", "db_id": "1b15660d65d4bb5789f07d23a6f9d027", "patch_ids": [], "statement_hash": "77451f7459f24c81415626c2b9388caa2e9a4230c84083788716727002e28991", "relations": [], "version": "9.0.4", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.4-82beb1227b6f3fcb", "cves": [], "html": "<p>避免目录缓存初始化期间的潜在死锁（Nikhil Sontakke）</p>\n<p>某些情况下，缓存加载代码会在锁定索引的目录之前获取系统索引上的共享锁。这可能与尝试以另一种更标准的顺序获取排他锁的进程死锁。</p>", "text": "避免目录缓存初始化期间的潜在死锁（Nikhil Sontakke） 某些情况下，缓存加载代码会在锁定索引的目录之前获取系统索引上的共享锁。这可能与尝试以另一种更标准的顺序获取排他锁的进程死锁。", "title": "避免目录缓存初始化期间的潜在死锁", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.4/#id-1.11.6.24.5", "source_hash": "84fe0a235d3c412b19744bd753b445471c45bbe91a6d4fd144b3d96e31497ef6", "section_path": ["变更"], "commit_groups": [], "identity_text": "Avoid potential deadlock during catalog cache initialization (Nikhil Sontakke) In some cases the cache loading code would acquire share lock on a system index before locking the index's catalog. This could deadlock against processes trying to acquire exclusive locks in the other, more standard order.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.4/changes/006", "db_id": "0c32e76719a592d9b833b5d6471d8d51", "patch_ids": [], "statement_hash": "2227a3d53c2738c645e8ae4e27d257d89f29dda4c166eb297df555233b58ed79", "relations": [], "version": "9.0.4", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.4-24a20175cb7a6659", "cves": [], "html": "<p>修复当目标元组存在并发更新时 <code>BEFORE ROW UPDATE</code> 触发器处理中的悬空指针问题（Tom Lane）</p>\n<p>已观察到该缺陷在尝试执行 <code>UPDATE RETURNING ctid</code> 时导致间歇性的 <span>“<span>cannot extract system attribute from virtual tuple</span>”</span> 失败。发生更严重错误（例如为更新后的元组生成错误索引项）的概率非常小。</p>", "text": "修复当目标元组存在并发更新时 BEFORE ROW UPDATE 触发器处理中的悬空指针问题（Tom Lane） 已观察到该缺陷在尝试执行 UPDATE RETURNING ctid 时导致间歇性的 “cannot extract system attribute from virtual tuple” 失败。发生更严重错误（例如为更新后的元组生成错误索引项）的概率非常小。", "title": "修复当目标元组存在并发更新时 BEFORE ROW UPDATE 触发器处理中的悬空指针问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.4/#id-1.11.6.24.5", "source_hash": "c69b7ccbd7e1c8aecaf72232cea71743d48328eead13f51955e667ea2d11ea15", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix dangling-pointer problem in BEFORE ROW UPDATE trigger handling when there was a concurrent update to the target tuple (Tom Lane) This bug has been observed to result in intermittent cannot extract system attribute from virtual tuple failures while trying to do UPDATE RETURNING ctid. There is a very small probability of more serious errors, such as generating incorrect index entries for the updated tuple.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.4/changes/007", "db_id": "e03b5f827b0ab8103318fdd692417122", "patch_ids": [], "statement_hash": "0d70aae5956d25f3e90c5e1875303c24c51a0f866c44daa4bbc4218706231e34", "relations": [], "version": "9.0.4", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.4-05891a7627f40e60", "cves": [], "html": "<p>当表存在未决的延迟触发器事件时禁止 <code>DROP TABLE</code>（Tom Lane）</p>\n<p>此前 <code>DROP</code> 会照常执行，导致触发器最终触发时报 <span>“<span>could not open relation with OID nnn</span>”</span> 错误。</p>", "text": "当表存在未决的延迟触发器事件时禁止 DROP TABLE（Tom Lane） 此前 DROP 会照常执行，导致触发器最终触发时报 “could not open relation with OID nnn” 错误。", "title": "当表存在未决的延迟触发器事件时禁止 DROP TABLE", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.4/#id-1.11.6.24.5", "source_hash": "03f5099b235965e4d5c96c52ed2a551b484626371075c8c8276f3add335290eb", "section_path": ["变更"], "commit_groups": [], "identity_text": "Disallow DROP TABLE when there are pending deferred trigger events for the table (Tom Lane) Formerly the DROP would go through, leading to could not open relation with OID nnn errors when the triggers were eventually fired.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.4/changes/008", "db_id": "b0cb6fbf7af9b318ae7d05c0b294a3d8", "patch_ids": [], "statement_hash": "cb9593ebf0e2718245281388b0d55c872898f34e18bfb0c647e756e5210d641b", "relations": [], "version": "9.0.4", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.4-4269f0280e798b34", "cves": [], "html": "<p>允许 <span>“<span>replication</span>”</span> 作为 <code>pg_hba.conf</code> 中的用户名（Andrew Dunstan）</p>\n<p><span>“<span>replication</span>”</span> 在数据库名列中是特殊的，但它被误认为在用户名列中也是特殊的。</p>", "text": "允许 “replication” 作为 pg_hba.conf 中的用户名（Andrew Dunstan） “replication” 在数据库名列中是特殊的，但它被误认为在用户名列中也是特殊的。", "title": "允许 “replication” 作为 pg_hba.conf 中的用户名", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.4/#id-1.11.6.24.5", "source_hash": "6e633da8e0b1aadcf523d6a6c621b13b1e7b46fce688d81da582ca793280c88d", "section_path": ["变更"], "commit_groups": [], "identity_text": "Allow replication as a user name in pg_hba.conf (Andrew Dunstan) replication is special in the database name column, but it was mistakenly also treated as special in the user name column.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.4/changes/009", "db_id": "cfb5f7eb1d87f25f1ca160d1dabdae7a", "patch_ids": [], "statement_hash": "d7fc64af5994afe4645f77a000a93724885abe72463b5726bdf90b783b4ab5dc", "relations": [], "version": "9.0.4", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.4-7321f7e9727e655d", "cves": [], "html": "<p>防止 GEQO 优化期间由恒假 WHERE 条件触发的崩溃（Tom Lane）</p>", "text": "防止 GEQO 优化期间由恒假 WHERE 条件触发的崩溃（Tom Lane）", "title": "防止 GEQO 优化期间由恒假 WHERE 条件触发的崩溃", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.4/#id-1.11.6.24.5", "source_hash": "44da9facad43ea6af96b50ec4d3d7a27b4cb32ccfd0b7fe07d732a5a30ae544e", "section_path": ["变更"], "commit_groups": [], "identity_text": "Prevent crash triggered by constant-false WHERE conditions during GEQO optimization (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.4/changes/010", "db_id": "6c86b2023b03102d513e1260a5bb969e", "patch_ids": [], "statement_hash": "8b251c042a225147a415fcd7d274bdb8606a7d05bcd34c636613f4d89051e0be", "relations": [], "version": "9.0.4", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.4-09b62430183b3c0e", "cves": [], "html": "<p>改进规划器对半连接和反连接情况的处理（Tom Lane）</p>", "text": "改进规划器对半连接和反连接情况的处理（Tom Lane）", "title": "改进规划器对半连接和反连接情况的处理", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.4/#id-1.11.6.24.5", "source_hash": "adf85ba19f1aa4a96f1724469d2600cf4b5246f9fb823fdda9404992a0e07582", "section_path": ["变更"], "commit_groups": [], "identity_text": "Improve planner's handling of semi-join and anti-join cases (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.4/changes/011", "db_id": "3d814fa565e4e7e7e32e5b591de2c7fc", "patch_ids": [], "statement_hash": "fd2a37dcbfa4e51cf5621a7d29f342ea3512757f9f44d46b10640268f85c6b6f", "relations": [], "version": "9.0.4", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.4-1e07ca1b711def6e", "cves": [], "html": "<p>修复子 SELECT 中 <code>SELECT FOR UPDATE</code> 的处理（Tom Lane）</p>\n<p>该缺陷通常导致 <span>“<span>cannot extract system attribute from virtual tuple</span>”</span> 错误。</p>", "text": "修复子 SELECT 中 SELECT FOR UPDATE 的处理（Tom Lane） 该缺陷通常导致 “cannot extract system attribute from virtual tuple” 错误。", "title": "修复子 SELECT 中 SELECT FOR UPDATE 的处理", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.4/#id-1.11.6.24.5", "source_hash": "27b8dc6518bb71dc8f14f6e553ea1007ba769da73b72c91c514d3ddcf0e79962", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix handling of SELECT FOR UPDATE in a sub-SELECT (Tom Lane) This bug typically led to cannot extract system attribute from virtual tuple errors.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.4/changes/012", "db_id": "80b9ae54784f656384ff164b7936008e", "patch_ids": [], "statement_hash": "5db979c38cbb37a5e92bb384dde39ad8560d2fa3afd39ae67548a71f1ed50c5d", "relations": [], "version": "9.0.4", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.4-3f5650e0b10c7cde", "cves": [], "html": "<p>修复文本搜索的选择率估计，使其考虑 NULL（Jesper Krogh）</p>", "text": "修复文本搜索的选择率估计，使其考虑 NULL（Jesper Krogh）", "title": "修复文本搜索的选择率估计，使其考虑 NULL", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.4/#id-1.11.6.24.5", "source_hash": "51f506a7bf178ffb69f8b776f75d8538de82be3941c87aa32a9c62111e21b2f5", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix selectivity estimation for text search to account for NULLs (Jesper Krogh)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.4/changes/013", "db_id": "133e7755b96c9f6a6140796f74e9f527", "patch_ids": [], "statement_hash": "2a19038b32c431b83b7c43f8bdd3281b2a383718c7487c51e57c23cc40128799", "relations": [], "version": "9.0.4", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.4-7a510cacd99ca342", "cves": [], "html": "<p>修复 get_actual_variable_range()，使其支持由索引顾问插件注入的假设索引（Gurjeet Singh）</p>", "text": "修复 get_actual_variable_range()，使其支持由索引顾问插件注入的假设索引（Gurjeet Singh）", "title": "修复 get_actual_variable_range()，使其支持由索引顾问插件注入的假设索引", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.4/#id-1.11.6.24.5", "source_hash": "63db42bbbb14a242301b09f120b4fa965df3e3cf4e1691ea5b4451735192df19", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix get_actual_variable_range() to support hypothetical indexes injected by an index adviser plugin (Gurjeet Singh)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.4/changes/014", "db_id": "b1bb92b407ed05a843f7fc18b7be147a", "patch_ids": [], "statement_hash": "3c51065a91c2722079ce49516e9ad815a846ebcad6db70021494e51197dc6ee3", "relations": [], "version": "9.0.4", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.4-4ade43490e3ce501", "cves": [], "html": "<p>修复涉及数组切片的 PL/Python 内存泄漏（Daniel Popowich）</p>", "text": "修复涉及数组切片的 PL/Python 内存泄漏（Daniel Popowich）", "title": "修复涉及数组切片的 PL/Python 内存泄漏", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.4/#id-1.11.6.24.5", "source_hash": "50dbb56f624b49729298114f784dc64b1f787d37ad3e3bd0f26470c6b93a477a", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix PL/Python memory leak involving array slices (Daniel Popowich)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.4/changes/015", "db_id": "84ccba5a2d024c455fc7c17b3d3e8dc9", "patch_ids": [], "statement_hash": "6ebc58549db8d13da5424a7f01fec4fb1b234a4a6855074f8be25abc54c8cd45", "relations": [], "version": "9.0.4", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.4-ed0b4d9913f59d50", "cves": [], "html": "<p>允许 <span>libpq</span> 的 SSL 初始化在用户主目录不可用时成功（Tom Lane）</p>\n<p>如果 SSL 模式不要求根证书文件，就没有必要失败。此变更将行为恢复为 9.0 之前的样子。</p>", "text": "允许 libpq 的 SSL 初始化在用户主目录不可用时成功（Tom Lane） 如果 SSL 模式不要求根证书文件，就没有必要失败。此变更将行为恢复为 9.0 之前的样子。", "title": "允许 libpq 的 SSL 初始化在用户主目录不可用时成功", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.4/#id-1.11.6.24.5", "source_hash": "2a240b89fb126aabef0c453ceabbc7fc4f855f87e712157234c886b19b162d88", "section_path": ["变更"], "commit_groups": [], "identity_text": "Allow libpq's SSL initialization to succeed when user's home directory is unavailable (Tom Lane) If the SSL mode is such that a root certificate file is not required, there is no need to fail. This change restores the behavior to what it was in pre-9.0 releases.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.4/changes/016", "db_id": "033a3bc251996f3179427576e2d779fe", "patch_ids": [], "statement_hash": "b2c1d85c0a432cad8785a98416d7d4fb78d9d16db749b27e5e9d10a474f786bd", "relations": [], "version": "9.0.4", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.4-a598a2824af8dde8", "cves": [], "html": "<p>修复 <span>libpq</span>，使其对 <code>conninfo_array_parse</code> 中检测到的错误返回有用的错误消息（Joseph Adams）</p>\n<p>一个笔误导致库向应用返回 NULL 而不是包含错误消息的 <code>PGconn</code> 结构。</p>", "text": "修复 libpq，使其对 conninfo_array_parse 中检测到的错误返回有用的错误消息（Joseph Adams） 一个笔误导致库向应用返回 NULL 而不是包含错误消息的 PGconn 结构。", "title": "修复 libpq，使其对 conninfo_array_parse 中检测到的错误返回有用的错误消息", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.4/#id-1.11.6.24.5", "source_hash": "6d23ac6a65fa42a30ed305833b9b3f6f793c7caba4a49447302bb42662fd6cb0", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix libpq to return a useful error message for errors detected in conninfo_array_parse (Joseph Adams) A typo caused the library to return NULL, rather than the PGconn structure containing the error message, to the application.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.4/changes/017", "db_id": "91f4724332b736e84ee33d2dcf943558", "patch_ids": [], "statement_hash": "b05b329fcd8dc386e5de4c6408538f563d6b463d3a10fe3341e423a9ac0b406d", "relations": [], "version": "9.0.4", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.4-cc13e044bdcebf73", "cves": [], "html": "<p>修复 <span>ecpg</span> 预处理器对 float 常量的处理（Heikki Linnakangas）</p>", "text": "修复 ecpg 预处理器对 float 常量的处理（Heikki Linnakangas）", "title": "修复 ecpg 预处理器对 float 常量的处理", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.4/#id-1.11.6.24.5", "source_hash": "526454c397303096b2c446fa4772da4f5aeedb7ecc58bb35acde698c784f33b5", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix ecpg preprocessor's handling of float constants (Heikki Linnakangas)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.4/changes/018", "db_id": "01b1a4bcaefe01d8f7b7c24754c7b449", "patch_ids": [], "statement_hash": "c549ba58b0f3d7f27ba9249ccd2dfdf99ed7c3c5f3e803082ee4b74a5c7e025d", "relations": [], "version": "9.0.4", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.4-efc8123e7f4ef14c", "cves": [], "html": "<p>修复并行 <span>pg_restore</span>，使其正确处理 POST_DATA 项上的注释（Arnd Hannemann）</p>", "text": "修复并行 pg_restore，使其正确处理 POST_DATA 项上的注释（Arnd Hannemann）", "title": "修复并行 pg_restore，使其正确处理 POST_DATA 项上的注释", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.4/#id-1.11.6.24.5", "source_hash": "605f158ae7eb46f145349c3a1b0235ad4c44a1aa6c19f4d6289e3a2dd45f6aa7", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix parallel pg_restore to handle comments on POST_DATA items correctly (Arnd Hannemann)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.4/changes/019", "db_id": "e38ef3008a42b292f0d50e3b027e788e", "patch_ids": [], "statement_hash": "02f41bcc4a89bf5cd2c0d85cb423da48773d6951bfecc489e1c85ba808508db0", "relations": [], "version": "9.0.4", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.4-788087257ecf9d60", "cves": [], "html": "<p>修复 <span>pg_restore</span>，使其能处理 TOC 文件中的长行（超过 1KB）（Tom Lane）</p>", "text": "修复 pg_restore，使其能处理 TOC 文件中的长行（超过 1KB）（Tom Lane）", "title": "修复 pg_restore，使其能处理 TOC 文件中的长行（超过 1KB）", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.4/#id-1.11.6.24.5", "source_hash": "16ac887a32bec712d9e4cfdba5dc203fd448dc6f1df716a1d95151fcda2b1707", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix pg_restore to cope with long lines (over 1KB) in TOC files (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.4/changes/020", "db_id": "56adc1a0ee434e8bce28979ac784724d", "patch_ids": [], "statement_hash": "2af305e781716fe06a5a11cdb53ba7be87351fefe28c85161450383cf0f25e5e", "relations": [], "version": "9.0.4", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.4-a312ef0d58312044", "cves": [], "html": "<p>加入更多防护，防止因过于激进的编译器优化导致的除零崩溃（Aurelien Jarno）</p>", "text": "加入更多防护，防止因过于激进的编译器优化导致的除零崩溃（Aurelien Jarno）", "title": "加入更多防护，防止因过于激进的编译器优化导致的除零崩溃", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.4/#id-1.11.6.24.5", "source_hash": "48b652773d8d12366e4764a7b1dc89c38ce0f5d0087d2c738b1ec902d0206d80", "section_path": ["变更"], "commit_groups": [], "identity_text": "Put in more safeguards against crashing due to division-by-zero with overly enthusiastic compiler optimization (Aurelien Jarno)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.4/changes/021", "db_id": "88e839fb33f1629abca5377bfea3de2d", "patch_ids": [], "statement_hash": "b444102450ff663ecd6dad93758048325d6ad44023307641b8db512364523ef9", "relations": [], "version": "9.0.4", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.4-d8daead6c8d6686b", "cves": [], "html": "<p>支持在 FreeBSD 和 OpenBSD 的 MIPS 上使用 dlopen()（Tom Lane）</p>\n<p>此前有一个硬编码的假设：该系统函数在这些系统的 MIPS 硬件上不可用。现在改用编译期测试，因为较新的版本已经有了它。</p>", "text": "支持在 FreeBSD 和 OpenBSD 的 MIPS 上使用 dlopen()（Tom Lane） 此前有一个硬编码的假设：该系统函数在这些系统的 MIPS 硬件上不可用。现在改用编译期测试，因为较新的版本已经有了它。", "title": "支持在 FreeBSD 和 OpenBSD 的 MIPS 上使用 dlopen()", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.4/#id-1.11.6.24.5", "source_hash": "7c4d359441d9e28659ef252eb8eb7bb19c9e551c68f2f80fc98b5c4487908a09", "section_path": ["变更"], "commit_groups": [], "identity_text": "Support use of dlopen() in FreeBSD and OpenBSD on MIPS (Tom Lane) There was a hard-wired assumption that this system function was not available on MIPS hardware on these systems. Use a compile-time test instead, since more recent versions have it.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.4/changes/022", "db_id": "6881dfb99a098293e41faaab89c52f7e", "patch_ids": [], "statement_hash": "00cca5410e8113acf236f2ddc400aed251b457a355160e0a30e1b2e1c6449ce9", "relations": [], "version": "9.0.4", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.4-ef8f00bfe5a00f5b", "cves": [], "html": "<p>修复 HP-UX 上的编译失败（Heikki Linnakangas）</p>", "text": "修复 HP-UX 上的编译失败（Heikki Linnakangas）", "title": "修复 HP-UX 上的编译失败", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.4/#id-1.11.6.24.5", "source_hash": "f8df688ba2b89488160aa173c4ccf57346a1c72514ab9e55940436062bd7a08e", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix compilation failures on HP-UX (Heikki Linnakangas)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.4/changes/023", "db_id": "616c00f1fea9a080d20f865115ce4f29", "patch_ids": [], "statement_hash": "6c3e0189705c9b678d4b58a83349c20338df9fd6a7208f653ec341d526784c62", "relations": [], "version": "9.0.4", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.4-a882040c0f2a10eb", "cves": [], "html": "<p>避免在进程启动极早期尝试写入 Windows 控制台时崩溃（Rushabh Lathia）</p>", "text": "避免在进程启动极早期尝试写入 Windows 控制台时崩溃（Rushabh Lathia）", "title": "避免在进程启动极早期尝试写入 Windows 控制台时崩溃", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.4/#id-1.11.6.24.5", "source_hash": "f2a86888c28f76b9923828bf6e285d15e918366e1ab02e5cbe3ee9b1501c2bc4", "section_path": ["变更"], "commit_groups": [], "identity_text": "Avoid crash when trying to write to the Windows console very early in process startup (Rushabh Lathia)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.4/changes/024", "db_id": "bf8efc53caf1574d95c32df561f86569", "patch_ids": [], "statement_hash": "e802271dcfe590a1c4cdc8059a926dc03bee180403f2bf4f2f1c7ec884884a7f", "relations": [], "version": "9.0.4", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.4-9a8fb24bd2a1d2b2", "cves": [], "html": "<p>支持使用 MinGW 64 位编译器为 Windows 构建（Andrew Dunstan）</p>", "text": "支持使用 MinGW 64 位编译器为 Windows 构建（Andrew Dunstan）", "title": "支持使用 MinGW 64 位编译器为 Windows 构建", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.4/#id-1.11.6.24.5", "source_hash": "e8e52806552c442ef98792964a68f5bb92d67e2fb40ca425a0cac85325456204", "section_path": ["变更"], "commit_groups": [], "identity_text": "Support building with MinGW 64 bit compiler for Windows (Andrew Dunstan)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.4/changes/025", "db_id": "925dc1cb9ee564b1cb5ca8575b15a6a5", "patch_ids": [], "statement_hash": "24c1d446b374bbd890a982c1385c783244d821719f7ae0dfea566f6c7e9791df", "relations": [], "version": "9.0.4", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.4-104cb81fffcba80b", "cves": [], "html": "<p>修复 Windows 上 <span>libintl</span> 的版本不兼容问题（Hiroshi Inoue）</p>", "text": "修复 Windows 上 libintl 的版本不兼容问题（Hiroshi Inoue）", "title": "修复 Windows 上 libintl 的版本不兼容问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.4/#id-1.11.6.24.5", "source_hash": "ce3b752b3636974f10f6d1821e16738aa3711afbea973c7d3a90f2c8f1090d2e", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix version-incompatibility problem with libintl on Windows (Hiroshi Inoue)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.4/changes/026", "db_id": "ecf30c2e17fc6cd1580536f7ed21253c", "patch_ids": [], "statement_hash": "4be8c709b51d8b9c035e8cd97c5e3248d5ab437c5a178178c376295f3e120e1f", "relations": [], "version": "9.0.4", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.4-98f2ea86678e9fb2", "cves": [], "html": "<p>修复 Windows 构建脚本中 <span>xcopy</span> 的用法，使其在 Windows 7 下正确工作（Andrew Dunstan）</p>\n<p>这只影响构建脚本，不影响安装或使用。</p>", "text": "修复 Windows 构建脚本中 xcopy 的用法，使其在 Windows 7 下正确工作（Andrew Dunstan） 这只影响构建脚本，不影响安装或使用。", "title": "修复 Windows 构建脚本中 xcopy 的用法，使其在 Windows 7 下正确工作", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.4/#id-1.11.6.24.5", "source_hash": "2df3226f7ad8b11960b232dc74a532805dd4f2140eac7a7e335802ea4b2627f8", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix usage of xcopy in Windows build scripts to work correctly under Windows 7 (Andrew Dunstan) This affects the build scripts only, not installation or usage.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.4/changes/027", "db_id": "4d00478d9c47a06ca9f3d543f3898af3", "patch_ids": [], "statement_hash": "da231355ed59baeb6c660d03fba0ac58347d07f981fd64bbba7848bbcb939838", "relations": [], "version": "9.0.4", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.4-513af748539113b8", "cves": [], "html": "<p>修复 <span>pg_regress</span> 在 Cygwin 上使用的路径分隔符（Andrew Dunstan）</p>", "text": "修复 pg_regress 在 Cygwin 上使用的路径分隔符（Andrew Dunstan）", "title": "修复 pg_regress 在 Cygwin 上使用的路径分隔符", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.4/#id-1.11.6.24.5", "source_hash": "7531dfb226bf67b3efa6c38b5e0fb46742ec4b14b8b49369fb0d1920ce121a91", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix path separator used by pg_regress on Cygwin (Andrew Dunstan)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.4/changes/028", "db_id": "f4e80b21d5f3019b09475b8c029a8968", "patch_ids": [], "statement_hash": "b1b7150d36e2116b85876d15b701e33fc9c8a8675aa75d8b3c0abf18ba34d14f", "relations": [], "version": "9.0.4", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.4-d3482a0d6a3b3126", "cves": [], "html": "<p>把时区数据文件更新为 <span>tzdata</span> 版本 2011f for DST law changes in Chile, Cuba, Falkland Islands, Morocco, Samoa, and Turkey; also historical corrections for South Australia, Alaska, and Hawaii。</p>", "text": "把时区数据文件更新为 tzdata 版本 2011f for DST law changes in Chile, Cuba, Falkland Islands, Morocco, Samoa, and Turkey; also historical corrections for South Australia, Alaska, and Hawaii。", "title": "把时区数据文件更新为 tzdata 版本 2011f for DST law changes in Chile, Cuba, Falkland Islands, Morocco, Samoa, and Turkey; also historical corrections for South Australia, Alaska, and Hawaii。", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.4/#id-1.11.6.24.5", "source_hash": "98ee97102389b6e247391cfda294d637234faac13615706d444e5a91349049a5", "section_path": ["变更"], "commit_groups": [], "identity_text": "Update time zone data files to tzdata release 2011f for DST law changes in Chile, Cuba, Falkland Islands, Morocco, Samoa, and Turkey; also historical corrections for South Australia, Alaska, and Hawaii.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.4/changes/029", "db_id": "302e2571da954235705734850ff42ef5", "patch_ids": [], "statement_hash": "760bae1b2eb7fa504f70224a404551ef62f6fad32fa3bdff2951b014de01c8bf", "relations": [], "version": "9.0.4", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}]}, {"date": "2011-01-31", "build": "9.0.3", "major": "9.0", "minor": 3, "manual": "9.0", "status": "stable", "doc_git": "", "version": "9.0.3", "eol_date": "2015-10-08", "date_text": "2011-01-31", "supported": false, "manual_url": "/docs/9.0/release-9-0-3.html", "source_url": "/docs/release/9.0.3/", "entry_count": 12, "placeholder": false, "content_hash": "39a3f380ad2288156155e48d57de79917415780b5ed1b547c0ed6bbffb8372e3", "manual_build": "9.0.23", "source_as_of": "", "changes_count": 12, "doc_loaded_at": "2026-09-26T02:56:48.570247", "migration_html": "<p>对于运行 9.0.X 的用户，不需要进行转储/恢复。</p>", "compatibility_count": 0, "label": "9.0.3", "status_label": "历史版本", "eol": "2015-10-08", "age_days": 5721, "support_days": -4010, "entries": [{"id": "9.0.3-85ae0fb6d1dd0d86", "cves": [], "html": "<p>在退出 <span>walreceiver</span> 之前，确保所有已接收的 WAL 都已 fsync 到磁盘（Heikki Linnakangas）</p>\n<p>否则备库服务器可能重放一些未同步的 WAL，如果系统恰好在那时崩溃，可想而知会导致数据损坏。</p>", "text": "在退出 walreceiver 之前，确保所有已接收的 WAL 都已 fsync 到磁盘（Heikki Linnakangas） 否则备库服务器可能重放一些未同步的 WAL，如果系统恰好在那时崩溃，可想而知会导致数据损坏。", "title": "在退出 walreceiver 之前，确保所有已接收的 WAL 都已 fsync 到磁盘", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.3/#id-1.11.6.25.5", "source_hash": "2fcc5cac7be8ad659460b6a6d798ac822d0aff66052b3118c0cf4d5130392d6f", "section_path": ["变更"], "commit_groups": [], "identity_text": "Before exiting walreceiver, ensure all the received WAL is fsync'd to disk (Heikki Linnakangas) Otherwise the standby server could replay some un-synced WAL, conceivably leading to data corruption if the system crashes just at that point.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.3/changes/001", "db_id": "7e7155379559a7f1c447a65d02ccc82e", "patch_ids": [], "statement_hash": "397c6730bf5209b0dfc1aa679dbac3b0b02597fae92c4bec05be3124e45cdd24", "relations": [], "version": "9.0.3", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.3-bb4e29d8af349856", "cves": [], "html": "<p>避免 <span>walreceiver</span> 中过多的 fsync 活动（Heikki Linnakangas）</p>", "text": "避免 walreceiver 中过多的 fsync 活动（Heikki Linnakangas）", "title": "避免 walreceiver 中过多的 fsync 活动", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.3/#id-1.11.6.25.5", "source_hash": "4ea483cf291ecfb8d34aea1b941ebcb64fbb6ba902e0859c63d8cdd7672ac459", "section_path": ["变更"], "commit_groups": [], "identity_text": "Avoid excess fsync activity in walreceiver (Heikki Linnakangas)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.3/changes/002", "db_id": "7dafb36b6aa0313d4219382bd13f0b24", "patch_ids": [], "statement_hash": "6a1ad358fd6c61a0fcf8590ec367698d4950692089a72ab8ed4fe0f8717a4ce9", "relations": [], "version": "9.0.3", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.3-4007c265d297085d", "cves": [], "html": "<p>让 <code>ALTER TABLE</code> 在需要时重新验证唯一性和排他约束（Noah Misch）</p>\n<p>这在 9.0 中被一个本意是抑制 <code>VACUUM FULL</code> 和 <code>CLUSTER</code> 期间重新验证的变更破坏，但该变更无意中也影响了 <code>ALTER TABLE</code>。</p>", "text": "让 ALTER TABLE 在需要时重新验证唯一性和排他约束（Noah Misch） 这在 9.0 中被一个本意是抑制 VACUUM FULL 和 CLUSTER 期间重新验证的变更破坏，但该变更无意中也影响了 ALTER TABLE。", "title": "让 ALTER TABLE 在需要时重新验证唯一性和排他约束", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.3/#id-1.11.6.25.5", "source_hash": "eb6921e9302fbce38ee5181b5d2a69587fb4a244e62d35a29562306849c29b92", "section_path": ["变更"], "commit_groups": [], "identity_text": "Make ALTER TABLE revalidate uniqueness and exclusion constraints when needed (Noah Misch) This was broken in 9.0 by a change that was intended to suppress revalidation during VACUUM FULL and CLUSTER, but unintentionally affected ALTER TABLE as well.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.3/changes/003", "db_id": "942e9a7402e967cca0308a1ec872e559", "patch_ids": [], "statement_hash": "31259e5e7494560182328ce5c3d2925885f8c74a9931faf1e5663c07f4c5820e", "relations": [], "version": "9.0.3", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.3-8275dbec302fca4f", "cves": [], "html": "<p>修复对表不完全相同的继承树执行 <code>UPDATE</code> 时 EvalPlanQual 的问题（Tom Lane）</p>\n<p>表行类型的任何变化（包括只存在于部分子表中的已删除列）都会混淆 EvalPlanQual 代码，导致行为异常甚至崩溃。由于 EvalPlanQual 只在同一行的并发更新期间执行，该问题只是间歇性出现。</p>", "text": "修复对表不完全相同的继承树执行 UPDATE 时 EvalPlanQual 的问题（Tom Lane） 表行类型的任何变化（包括只存在于部分子表中的已删除列）都会混淆 EvalPlanQual 代码，导致行为异常甚至崩溃。由于 EvalPlanQual 只在同一行的并发更新期间执行，该问题只是间歇性出现。", "title": "修复对表不完全相同的继承树执行 UPDATE 时 EvalPlanQual 的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.3/#id-1.11.6.25.5", "source_hash": "ae96037d8b75beff929f8bcc66cae40993da893c31e7aaee525ec5c8fa0790d5", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix EvalPlanQual for UPDATE of an inheritance tree in which the tables are not all alike (Tom Lane) Any variation in the table row types (including dropped columns present in only some child tables) would confuse the EvalPlanQual code, leading to misbehavior or even crashes. Since EvalPlanQual is only executed during concurrent updates to the same row, the problem was only seen intermittently.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.3/changes/004", "db_id": "4e1ffa32ef4dac3c6a4af365e68fb2df", "patch_ids": [], "statement_hash": "b6f6ead7ecd54f59f079ed477a72e6b8bd76710fc4f4bb78a4056bcf2eecb65d", "relations": [], "version": "9.0.3", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.3-b828a7a1255bc6e6", "cves": [], "html": "<p>避免 <code>EXPLAIN</code> 尝试显示简单形式 <code>CASE</code> 表达式时的失败（Tom Lane）</p>\n<p>如果 <code>CASE</code> 的测试表达式是常量，规划器可能把 <code>CASE</code> 简化为令表达式显示代码困惑的形式，导致 <span>“<span>unexpected CASE WHEN clause</span>”</span> 错误。</p>", "text": "避免 EXPLAIN 尝试显示简单形式 CASE 表达式时的失败（Tom Lane） 如果 CASE 的测试表达式是常量，规划器可能把 CASE 简化为令表达式显示代码困惑的形式，导致 “unexpected CASE WHEN clause” 错误。", "title": "避免 EXPLAIN 尝试显示简单形式 CASE 表达式时的失败", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.3/#id-1.11.6.25.5", "source_hash": "42751c177ce908f2a4c257d39911b415f1de3b3ebc50b728a5405db71f5260cb", "section_path": ["变更"], "commit_groups": [], "identity_text": "Avoid failures when EXPLAIN tries to display a simple-form CASE expression (Tom Lane) If the CASE's test expression was a constant, the planner could simplify the CASE into a form that confused the expression-display code, resulting in unexpected CASE WHEN clause errors.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.3/changes/005", "db_id": "18dd39df075f5d797233c42bcde360d0", "patch_ids": [], "statement_hash": "64e4b9dab016f19f5da866f3983aa3b9d74aa00338a65ecd1ba23f1008530fbe", "relations": [], "version": "9.0.3", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.3-6f44b7bedcc3cc47", "cves": [], "html": "<p>修复对现有下标范围之前的数组切片赋值的问题（Tom Lane）</p>\n<p>如果新增下标与第一个既有下标之间存在间隙，代码会错误计算需要从旧数组的空值位图复制多少条目，可能导致数据损坏或崩溃。</p>", "text": "修复对现有下标范围之前的数组切片赋值的问题（Tom Lane） 如果新增下标与第一个既有下标之间存在间隙，代码会错误计算需要从旧数组的空值位图复制多少条目，可能导致数据损坏或崩溃。", "title": "修复对现有下标范围之前的数组切片赋值的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.3/#id-1.11.6.25.5", "source_hash": "4c499e8d8a55dc4933d6706bc39a395aa34af769c37241390c8cb3b4b3bde101", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix assignment to an array slice that is before the existing range of subscripts (Tom Lane) If there was a gap between the newly added subscripts and the first pre-existing subscript, the code miscalculated how many entries needed to be copied from the old array's null bitmap, potentially leading to data corruption or crash.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.3/changes/006", "db_id": "cdabba62d615c81f1033c708da04b293", "patch_ids": [], "statement_hash": "f2b786b0e272789fba06de82c5b33a86327dd7880ff08d742d5708fc3c0ab211", "relations": [], "version": "9.0.3", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.3-24fe4bee96c2f7fd", "cves": [], "html": "<p>避免规划器对非常久远的日期值出现意外的转换溢出（Tom Lane）</p>\n<p><code>date</code> 类型支持的日期范围比 <code>timestamp</code> 类型能表示的更宽，但规划器假定它总是可以不受惩罚地把 date 转换为 timestamp。</p>", "text": "避免规划器对非常久远的日期值出现意外的转换溢出（Tom Lane） date 类型支持的日期范围比 timestamp 类型能表示的更宽，但规划器假定它总是可以不受惩罚地把 date 转换为 timestamp。", "title": "避免规划器对非常久远的日期值出现意外的转换溢出", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.3/#id-1.11.6.25.5", "source_hash": "01b5ac904f39efdc0a4ae20cb919286dcc273a4de143ab481f32d12bef5809af", "section_path": ["变更"], "commit_groups": [], "identity_text": "Avoid unexpected conversion overflow in planner for very distant date values (Tom Lane) The date type supports a wider range of dates than can be represented by the timestamp types, but the planner assumed it could always convert a date to timestamp with impunity.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.3/changes/007", "db_id": "9332b1bab72f0712de06ca69deca066d", "patch_ids": [], "statement_hash": "8cc0e904e8004cf167c1399d6fff52129de7999bb72f100b7a8e26743562bd3e", "relations": [], "version": "9.0.3", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.3-178895b0572f9c5a", "cves": [], "html": "<p>修复数组包含空条目时 PL/Python 的崩溃（Alex Hunsaker）</p>", "text": "修复数组包含空条目时 PL/Python 的崩溃（Alex Hunsaker）", "title": "修复数组包含空条目时 PL/Python 的崩溃", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.3/#id-1.11.6.25.5", "source_hash": "6e295d1b6c79eb6be85a8b67d97f19d8458d1f77b8a940d991172ff284efe52b", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix PL/Python crash when an array contains null entries (Alex Hunsaker)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.3/changes/008", "db_id": "2ce45f2cb69204aaf44ac7ee7685703d", "patch_ids": [], "statement_hash": "c3680f0b4f1075c46c08a473fc9e4d385cc76e0f286d4868342c8f429640535e", "relations": [], "version": "9.0.3", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.3-cea0dd6e0ea53aa2", "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.3/#id-1.11.6.25.5", "source_hash": "fb783cefde913595076a47009583827a9d93bb6ced0989ef398fb568afc27adc", "section_path": ["变更"], "commit_groups": [], "identity_text": "Remove ecpg's fixed length limit for constants defining an array dimension (Michael Meskes)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.3/changes/009", "db_id": "d478e35a648edf0a03c0cc6dce1a21be", "patch_ids": [], "statement_hash": "c0654b9f9c0887e330cae94313fa413b390680376a47f0c84a4c83c2c7a80a09", "relations": [], "version": "9.0.3", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.3-9cb4845d08b192bf", "cves": [], "html": "<p>修复对包含 <code>... &amp; !(subexpression) | ...</code> 的 <code>tsquery</code> 值的错误解析（Tom Lane）</p>\n<p>包含这种操作符组合的查询没有被正确执行。同样的错误也存在于 <code>contrib/intarray</code> 的 <code>query_int</code> 类型和 <code>contrib/ltree</code> 的 <code>ltxtquery</code> 类型中。</p>", "text": "修复对包含 ... & !(subexpression) | ... 的 tsquery 值的错误解析（Tom Lane） 包含这种操作符组合的查询没有被正确执行。同样的错误也存在于 contrib/intarray 的 query_int 类型和 contrib/ltree 的 ltxtquery 类型中。", "title": "修复对包含 ... & !(subexpression) | ... 的 tsquery 值的错误解析", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.3/#id-1.11.6.25.5", "source_hash": "4c99c2c70c2fc834e3434a68f89a3cf134fbd912409d2482cc9855d0c2f5757b", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix erroneous parsing of tsquery values containing ... & !(subexpression) | ... (Tom Lane) Queries containing this combination of operators were not executed correctly. The same error existed in contrib/intarray's query_int type and contrib/ltree's ltxtquery type.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.3/changes/010", "db_id": "812fa2e09419b8e7957c05c322e6be8a", "patch_ids": [], "statement_hash": "735159116ab0efe8b4dece1dd72a060181e9faa1e68a5348ea89434c47f2d927", "relations": [], "version": "9.0.3", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.3-196f3e6ff4041a0c", "cves": ["CVE-2010-4015"], "html": "<p>修复 <code>contrib/intarray</code> 的 <code>query_int</code> 类型输入函数中的缓冲区越界（Apple）</p>\n<p>该缺陷构成安全风险，因为函数的返回地址可能被覆写。感谢 Apple Inc 的安全团队报告此问题并提供修复。（CVE-2010-4015）</p>", "text": "修复 contrib/intarray 的 query_int 类型输入函数中的缓冲区越界（Apple） 该缺陷构成安全风险，因为函数的返回地址可能被覆写。感谢 Apple Inc 的安全团队报告此问题并提供修复。（CVE-2010-4015）", "title": "修复 contrib/intarray 的 query_int 类型输入函数中的缓冲区越界", "commits": [], "section": "变更", "category": "security", "source_url": "/docs/release/9.0.3/#id-1.11.6.25.5", "source_hash": "da0b7f67213b50ef8a13392aa5b947880183e937786213ad4a277e4931b25072", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix buffer overrun in contrib/intarray's input function for the query_int type (Apple) This bug is a security risk since the function's return address could be overwritten. Thanks to Apple Inc's security team for reporting this issue and supplying the fix. (CVE-2010-4015)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.3/changes/011", "db_id": "c74da74892f5ffdef0d6a846e1a0fbcf", "patch_ids": [], "statement_hash": "2fbff1202393f6ec346462183144d5fb1d154cd8fdb0e9f0e9936ef849043d26", "relations": [], "version": "9.0.3", "category_label": "安全相关", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.3-f6aa9843565db508", "cves": [], "html": "<p>修复 <code>contrib/seg</code> 的 GiST picksplit 算法中的缺陷（Alexander Korotkov）</p>\n<p>这可能导致 <code>seg</code> 列上的 GiST 索引相当低效，尽管答案并非真正错误。如果你有这样的索引，考虑在安装此更新后对其执行 <code>REINDEX</code>。（这与上一次更新中在 <code>contrib/cube</code> 中修复的缺陷相同。）</p>", "text": "修复 contrib/seg 的 GiST picksplit 算法中的缺陷（Alexander Korotkov） 这可能导致 seg 列上的 GiST 索引相当低效，尽管答案并非真正错误。如果你有这样的索引，考虑在安装此更新后对其执行 REINDEX。（这与上一次更新中在 contrib/cube 中修复的缺陷相同。）", "title": "修复 contrib/seg 的 GiST picksplit 算法中的缺陷", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.3/#id-1.11.6.25.5", "source_hash": "2fc074a5f14ac149ab4cfe9e483ee2d8e73cd6fbda0f78d7c8950d45b2810e62", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix bug in contrib/seg's GiST picksplit algorithm (Alexander Korotkov) This could result in considerable inefficiency, though not actually incorrect answers, in a GiST index on a seg column. If you have such an index, consider REINDEXing it after installing this update. (This is identical to the bug that was fixed in contrib/cube in the previous update.)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.3/changes/012", "db_id": "33159fa5704c01ad0135843bea6fbd0a", "patch_ids": [], "statement_hash": "0c68b7d7de17a6dada0c32a3a4becfd88ef1610693b02a2780653e06a6e8c288", "relations": [], "version": "9.0.3", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}]}, {"date": "2010-12-16", "build": "9.0.2", "major": "9.0", "minor": 2, "manual": "9.0", "status": "stable", "doc_git": "", "version": "9.0.2", "eol_date": "2015-10-08", "date_text": "2010-12-16", "supported": false, "manual_url": "/docs/9.0/release-9-0-2.html", "source_url": "/docs/release/9.0.2/", "entry_count": 42, "placeholder": false, "content_hash": "74d2219c591db7824c1cdf20cea79a39f64bbc2735e18896281b8550deaf7ea0", "manual_build": "9.0.23", "source_as_of": "", "changes_count": 42, "doc_loaded_at": "2026-09-26T02:56:48.570247", "migration_html": "<p>对于运行 9.0.X 的用户，不需要进行转储/恢复。</p>", "compatibility_count": 0, "label": "9.0.2", "status_label": "历史版本", "eol": "2015-10-08", "age_days": 5767, "support_days": -4010, "entries": [{"id": "9.0.2-8d507d44af5ad2de", "cves": [], "html": "<p>强制 Linux 上的默认 <a href=\"/docs/9.0/runtime-config-wal.html#GUC-WAL-SYNC-METHOD\"><code>wal_sync_method</code></a> 为 <code>fdatasync</code>（Tom Lane、Marti Raudsepp）</p>\n<p>Linux 上的默认值实际上多年来一直是 <code>fdatasync</code>，但最近的内核变更导致 <span>PostgreSQL</span> 改选 <code>open_datasync</code>。这一选择没有带来任何性能改进，反而在某些文件系统（特别是使用 <code>data=journal</code> 挂载选项的 <code>ext4</code>）上导致彻底失败。</p>", "text": "强制 Linux 上的默认 wal_sync_method 为 fdatasync（Tom Lane、Marti Raudsepp） Linux 上的默认值实际上多年来一直是 fdatasync，但最近的内核变更导致 PostgreSQL 改选 open_datasync。这一选择没有带来任何性能改进，反而在某些文件系统（特别是使用 data=journal 挂载选项的 ext4）上导致彻底失败。", "title": "强制 Linux 上的默认 wal_sync_method 为 fdatasync", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.2/#id-1.11.6.26.5", "source_hash": "ee2b55ff589022ba8af9416f4c80719b1829f941c1b7ea8ce26cbfa5f9765431", "section_path": ["变更"], "commit_groups": [], "identity_text": "Force the default wal_sync_method to be fdatasync on Linux (Tom Lane, Marti Raudsepp) The default on Linux has actually been fdatasync for many years, but recent kernel changes caused PostgreSQL to choose open_datasync instead. This choice did not result in any performance improvement, and caused outright failures on certain filesystems, notably ext4 with the data=journal mount option.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.2/changes/001", "db_id": "93d301488fb125ac7a34020db3ce88ef", "patch_ids": [], "statement_hash": "608b4ef667312ab6b50f4f61b11cc5a13d04f1dd299e885f754ae809486f04de", "relations": [], "version": "9.0.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.2-ee341b9eaa6a2f36", "cves": [], "html": "<p>修复热备重放期间的 <span>“<span>too many KnownAssignedXids</span>”</span> 错误（Heikki Linnakangas）</p>", "text": "修复热备重放期间的 “too many KnownAssignedXids” 错误（Heikki Linnakangas）", "title": "修复热备重放期间的 “too many KnownAssignedXids” 错误", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.2/#id-1.11.6.26.5", "source_hash": "341611f99a3b78a339dd8c64bf7a9c8f3222342dc421f741a3d98f8c095b2eda", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix too many KnownAssignedXids error during Hot Standby replay (Heikki Linnakangas)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.2/changes/002", "db_id": "f1697701e87c0b4c41c0abc14a1bda44", "patch_ids": [], "statement_hash": "bc0dc120091e35d011498e5af3419ec29fda2d51f375e704a8f773c0d97e39c5", "relations": [], "version": "9.0.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.2-3979ca633a4a1844", "cves": [], "html": "<p>修复热备期间锁获取中的竞态条件（Simon Riggs）</p>", "text": "修复热备期间锁获取中的竞态条件（Simon Riggs）", "title": "修复热备期间锁获取中的竞态条件", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.2/#id-1.11.6.26.5", "source_hash": "07dcea70770d22d29cf47c90965a7342490f600b41072a5203e923e66537f914", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix race condition in lock acquisition during Hot Standby (Simon Riggs)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.2/changes/003", "db_id": "5fdb06cb9620d7f0e13e888df230f619", "patch_ids": [], "statement_hash": "6ec2c9f8db734a5e0d1aae4a42a77e421ab757f85d1ec6deec513b166505148d", "relations": [], "version": "9.0.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.2-8ae46a5ddae45b74", "cves": [], "html": "<p>避免热备期间不必要的冲突（Simon Riggs）</p>\n<p>这修复了一些重放被认为与备库查询冲突（导致重放延迟或可能取消查询）但实际上并不存在真正冲突的情况。</p>", "text": "避免热备期间不必要的冲突（Simon Riggs） 这修复了一些重放被认为与备库查询冲突（导致重放延迟或可能取消查询）但实际上并不存在真正冲突的情况。", "title": "避免热备期间不必要的冲突", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.2/#id-1.11.6.26.5", "source_hash": "ebf3aa392a32b83b337a979681bb0528bccc6246593ff3ca66cccad6c4a8fe49", "section_path": ["变更"], "commit_groups": [], "identity_text": "Avoid unnecessary conflicts during Hot Standby (Simon Riggs) This fixes some cases where replay was considered to conflict with standby queries (causing delay of replay or possibly cancellation of the queries), but there was no real conflict.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.2/changes/004", "db_id": "d9811dd344bfcca6c0fb7cf3e4680308", "patch_ids": [], "statement_hash": "cd2ce58b30dbbbbb00f7df5e13d43a323acb8616a859bd458cc2821ba17f4b8e", "relations": [], "version": "9.0.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.2-e5fa1d98be7f75dd", "cves": [], "html": "<p>修复 GIN 索引 WAL 重放逻辑中的若干缺陷（Tom Lane）</p>\n<p>这可能导致复制期间的 <span>“<span>bad buffer id: 0</span>”</span> 失败或索引内容损坏。</p>", "text": "修复 GIN 索引 WAL 重放逻辑中的若干缺陷（Tom Lane） 这可能导致复制期间的 “bad buffer id: 0” 失败或索引内容损坏。", "title": "修复 GIN 索引 WAL 重放逻辑中的若干缺陷", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.2/#id-1.11.6.26.5", "source_hash": "2b9e57fbedcab283c28b6526bfd65355616a6f7c87365caebc8634c937df7306", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix assorted bugs in WAL replay logic for GIN indexes (Tom Lane) This could result in bad buffer id: 0 failures or corruption of index contents during replication.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.2/changes/005", "db_id": "edd6115c947e48657925129caeab1881", "patch_ids": [], "statement_hash": "b786728336e1aa8b4322f52df47a737eee9d644353a60b8ae31db8902b43b267", "relations": [], "version": "9.0.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.2-5dfc21756f679dce", "cves": [], "html": "<p>修复当起始检查点 WAL 记录与其重做点不在同一 WAL 段时从基础备份恢复的问题（Jeff Davis）</p>", "text": "修复当起始检查点 WAL 记录与其重做点不在同一 WAL 段时从基础备份恢复的问题（Jeff Davis）", "title": "修复当起始检查点 WAL 记录与其重做点不在同一 WAL 段时从基础备份恢复的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.2/#id-1.11.6.26.5", "source_hash": "17030fa918d971b036e7fb9150ec046c6541f9bfa7a0755772c0f0521f825b78", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix recovery from base backup when the starting checkpoint WAL record is not in the same WAL segment as its redo point (Jeff Davis)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.2/changes/006", "db_id": "82cb95a0139d2515253f2b4ea69ea50f", "patch_ids": [], "statement_hash": "bb3643dfb08e25e4f7da74a044e0489c7d14555385f4b17a6668756a56dfef0f", "relations": [], "version": "9.0.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.2-ee020f928b55b63d", "cves": [], "html": "<p>修复在创建主数据库集簇后立即启用流复制时的极端情况缺陷（Heikki Linnakangas）</p>", "text": "修复在创建主数据库集簇后立即启用流复制时的极端情况缺陷（Heikki Linnakangas）", "title": "修复在创建主数据库集簇后立即启用流复制时的极端情况缺陷", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.2/#id-1.11.6.26.5", "source_hash": "837d44284d2a117039dcf1576943aafc7eab7039f8abb02da9737b4804c29124", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix corner-case bug when streaming replication is enabled immediately after creating the master database cluster (Heikki Linnakangas)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.2/changes/007", "db_id": "e5f512540ad951d21a24dba301686857", "patch_ids": [], "statement_hash": "6e7778f8df3a3d722fad102811f27c784abd32c26f311e3235f066c0be644c2c", "relations": [], "version": "9.0.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.2-d72ee9420915ad35", "cves": [], "html": "<p>修复多个工作进程长期保持活动时自动清理工作进程的持续变慢（Tom Lane）</p>\n<p>如果自动清理工作进程处理了足够多的表，其有效 <code>vacuum_cost_limit</code> 可能降到接近零，导致其运行极慢。</p>", "text": "修复多个工作进程长期保持活动时自动清理工作进程的持续变慢（Tom Lane） 如果自动清理工作进程处理了足够多的表，其有效 vacuum_cost_limit 可能降到接近零，导致其运行极慢。", "title": "修复多个工作进程长期保持活动时自动清理工作进程的持续变慢", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.2/#id-1.11.6.26.5", "source_hash": "4fb8a8c67170308ba979030d7618ca079fa8d55759d68a661392505368933793", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix persistent slowdown of autovacuum workers when multiple workers remain active for a long time (Tom Lane) The effective vacuum_cost_limit for an autovacuum worker could drop to nearly zero if it processed enough tables, causing it to run extremely slowly.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.2/changes/008", "db_id": "753d1138c5b8e46255b4bdad6d8ba546", "patch_ids": [], "statement_hash": "285618da7240131acadd496b1df387a960b12f7bf5c90e6dd0012d2c49e2aac4", "relations": [], "version": "9.0.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.2-a4589bdd11838fd8", "cves": [], "html": "<p>修复自动清理启动器中的长期内存泄漏（Alvaro Herrera）</p>", "text": "修复自动清理启动器中的长期内存泄漏（Alvaro Herrera）", "title": "修复自动清理启动器中的长期内存泄漏", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.2/#id-1.11.6.26.5", "source_hash": "3c72b69c2d7b6a6318cdda2246062fa514892cff1b54e12d7f1969d3c432d3c7", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix long-term memory leak in autovacuum launcher (Alvaro Herrera)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.2/changes/009", "db_id": "c9831dcd37fe25019d286bb76f90643c", "patch_ids": [], "statement_hash": "b994018836cc84e5d5f67e58ad2f82318e123bc05275171db55ddf1271d517d7", "relations": [], "version": "9.0.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.2-86de0401e758d15d", "cves": [], "html": "<p>避免在事务之外尝试报告即将发生的事务回卷情况时失败（Tom Lane）</p>\n<p>这一疏忽阻碍了事务回卷过于接近后的恢复，因为数据库启动处理会失败。</p>", "text": "避免在事务之外尝试报告即将发生的事务回卷情况时失败（Tom Lane） 这一疏忽阻碍了事务回卷过于接近后的恢复，因为数据库启动处理会失败。", "title": "避免在事务之外尝试报告即将发生的事务回卷情况时失败", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.2/#id-1.11.6.26.5", "source_hash": "a636c5d0b59cd2de1f201796f40c0fb25b985cbfc9c00bccf2db99aef3f1666f", "section_path": ["变更"], "commit_groups": [], "identity_text": "Avoid failure when trying to report an impending transaction wraparound condition from outside a transaction (Tom Lane) This oversight prevented recovery after transaction wraparound got too close, because database startup processing would fail.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.2/changes/010", "db_id": "dfebd202963a9ce011fae5e5f1d6833f", "patch_ids": [], "statement_hash": "d7ae3b75ead5df98916a650937287bf390c47f0ba3bc75adab94dbebc0427184", "relations": [], "version": "9.0.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.2-6ecfc4b1e05231e6", "cves": [], "html": "<p>新增在 <code>IA64</code> 上检测寄存器栈溢出的支持（Tom Lane）</p>\n<p><code>IA64</code> 架构有两个硬件栈。要完全防止栈溢出失败需要同时检查两者。</p>", "text": "新增在 IA64 上检测寄存器栈溢出的支持（Tom Lane） IA64 架构有两个硬件栈。要完全防止栈溢出失败需要同时检查两者。", "title": "新增在 IA64 上检测寄存器栈溢出的支持", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.2/#id-1.11.6.26.5", "source_hash": "2d3d0548d2230220dcf8f675ed2a02a7550770f9d0966ec8290ffb504d4a5622", "section_path": ["变更"], "commit_groups": [], "identity_text": "Add support for detecting register-stack overrun on IA64 (Tom Lane) The IA64 architecture has two hardware stacks. Full prevention of stack-overrun failures requires checking both.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.2/changes/011", "db_id": "2dc8159d5221a2cd44ad4f0816040dbf", "patch_ids": [], "statement_hash": "8fba9ae3fc03d31bf3b3ea6bc438e6ca28b0b0afcd3c0bc9a3c60a7082ed23bc", "relations": [], "version": "9.0.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.2-1996248393e19710", "cves": [], "html": "<p>在 <code>copyObject()</code> 中添加栈溢出检查（Tom Lane）</p>\n<p>给定足够复杂的查询，某些代码路径可能因栈溢出而崩溃。</p>", "text": "在 copyObject() 中添加栈溢出检查（Tom Lane） 给定足够复杂的查询，某些代码路径可能因栈溢出而崩溃。", "title": "在 copyObject() 中添加栈溢出检查", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.2/#id-1.11.6.26.5", "source_hash": "57c52797bf15087c584f5a1856593654c5b96239605c639d7d610a5487d58669", "section_path": ["变更"], "commit_groups": [], "identity_text": "Add a check for stack overflow in copyObject() (Tom Lane) Certain code paths could crash due to stack overflow given a sufficiently complex query.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.2/changes/012", "db_id": "fab3556994f348a8bde09dbac5023e3d", "patch_ids": [], "statement_hash": "62598be390dbf15864e5ac4d9c300f0563b57ff0fa0b291f11b320c61ed1e111", "relations": [], "version": "9.0.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.2-b1e07dd3cbb9d09b", "cves": [], "html": "<p>修复临时 GiST 索引中页面分裂的检测（Heikki Linnakangas）</p>\n<p>在临时索引中可能出现<span>“<span>并发</span>”</span>页面分裂，例如当插入时有打开的游标正在扫描该索引。GiST 未能检测到这种情况，因此当游标继续执行时可能给出错误结果。</p>", "text": "修复临时 GiST 索引中页面分裂的检测（Heikki Linnakangas） 在临时索引中可能出现“并发”页面分裂，例如当插入时有打开的游标正在扫描该索引。GiST 未能检测到这种情况，因此当游标继续执行时可能给出错误结果。", "title": "修复临时 GiST 索引中页面分裂的检测", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.2/#id-1.11.6.26.5", "source_hash": "677f5871fb0178d12de5359da4017f18efd05d6743a03e1504d493c2402a7979", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix detection of page splits in temporary GiST indexes (Heikki Linnakangas) It is possible to have a concurrent page split in a temporary index, if for example there is an open cursor scanning the index when an insertion is done. GiST failed to detect this case and hence could deliver wrong results when execution of the cursor continued.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.2/changes/013", "db_id": "5631626feed6c5f4f206cb0327b6250e", "patch_ids": [], "statement_hash": "f353fa08e38e5defbbf7064341a3b648ffa03547cde3cc12d936282127212f3b", "relations": [], "version": "9.0.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.2-d2d674855db376f4", "cves": [], "html": "<p>修复早期连接处理期间的错误检查（Tom Lane）</p>\n<p>某些情况下对子进程过多的检查被跳过，可能在尝试把新子进程添加到固定大小数组时导致 postmaster 崩溃。</p>", "text": "修复早期连接处理期间的错误检查（Tom Lane） 某些情况下对子进程过多的检查被跳过，可能在尝试把新子进程添加到固定大小数组时导致 postmaster 崩溃。", "title": "修复早期连接处理期间的错误检查", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.2/#id-1.11.6.26.5", "source_hash": "76fa2df108b17410b274655f8dc4a4a700dca4a0f7f1016cf5f46a2c62bc660f", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix error checking during early connection processing (Tom Lane) The check for too many child processes was skipped in some cases, possibly leading to postmaster crash when attempting to add the new child process to fixed-size arrays.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.2/changes/014", "db_id": "2c8d8613775f30a53c411ca19fb94386", "patch_ids": [], "statement_hash": "3ee7f433e68384fd176acbc3d6b6ed34a68dae759bc9479656ca998f7d2099b0", "relations": [], "version": "9.0.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.2-74464b009f93e99c", "cves": [], "html": "<p>改进窗口函数的效率（Tom Lane）</p>\n<p>某些需要提前读取大量元组、但 <code>work_mem</code> 足够大可以全部保存在内存中的情况意外地慢。<code>percent_rank()</code>、<code>cume_dist()</code> 和 <code>ntile()</code> 尤其受此问题影响。</p>", "text": "改进窗口函数的效率（Tom Lane） 某些需要提前读取大量元组、但 work_mem 足够大可以全部保存在内存中的情况意外地慢。percent_rank()、cume_dist() 和 ntile() 尤其受此问题影响。", "title": "改进窗口函数的效率", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.2/#id-1.11.6.26.5", "source_hash": "2a3e1cbbb5ac1701ac6d028fe0e4e7f9349e4398508987998f994c8986fa86af", "section_path": ["变更"], "commit_groups": [], "identity_text": "Improve efficiency of window functions (Tom Lane) Certain cases where a large number of tuples needed to be read in advance, but work_mem was large enough to allow them all to be held in memory, were unexpectedly slow. percent_rank(), cume_dist() and ntile() in particular were subject to this problem.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.2/changes/015", "db_id": "ad0dacf2ae16680eea7b7313842bfd6f", "patch_ids": [], "statement_hash": "e51f9e5fef9181abeda8fdc4ad9d27c30e1907b11b50ead24532b347e1e2aed4", "relations": [], "version": "9.0.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.2-7aa243d20ba316fc", "cves": [], "html": "<p>避免在 <code>ANALYZE</code> 复杂索引表达式时内存泄漏（Tom Lane）</p>", "text": "避免在 ANALYZE 复杂索引表达式时内存泄漏（Tom Lane）", "title": "避免在 ANALYZE 复杂索引表达式时内存泄漏", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.2/#id-1.11.6.26.5", "source_hash": "b0052f474bd8a2e449fd0364b4728056ebbbac20374e8de7552412cbd2f0d29a", "section_path": ["变更"], "commit_groups": [], "identity_text": "Avoid memory leakage while ANALYZE'ing complex index expressions (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.2/changes/016", "db_id": "51f8ccca1a31b925ac22e367ea7c7938", "patch_ids": [], "statement_hash": "16f9df371942fa8d6ea6e287ffdcbef3f50d30f1c9760cca49adea47cc823095", "relations": [], "version": "9.0.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.2-51df90790773d742", "cves": [], "html": "<p>确保使用整行 Var 的索引仍依赖于其表（Tom Lane）</p>\n<p>像 <code>create index i on t (foo(t.*))</code> 这样声明的索引在删除其表时不会自动被删除。</p>", "text": "确保使用整行 Var 的索引仍依赖于其表（Tom Lane） 像 create index i on t (foo(t.*)) 这样声明的索引在删除其表时不会自动被删除。", "title": "确保使用整行 Var 的索引仍依赖于其表", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.2/#id-1.11.6.26.5", "source_hash": "ee123dad93cb693b02e02039e0300d816f6ec5b16f7c04fad9f3992d165798c1", "section_path": ["变更"], "commit_groups": [], "identity_text": "Ensure an index that uses a whole-row Var still depends on its table (Tom Lane) An index declared like create index i on t (foo(t.*)) would not automatically get dropped when its table was dropped.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.2/changes/017", "db_id": "a671cb3e3383f7e46c1c745183a9152f", "patch_ids": [], "statement_hash": "c844d95a27e7000c4d1b9241a17dcc81ecd59589be2a7ecda80d1fb201b1799e", "relations": [], "version": "9.0.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.2-c8dd4970cc2c67b5", "cves": [], "html": "<p>补齐 <code>DROP OWNED BY</code> 中缺失的移除用户所拥有的外部数据包装器/服务器权限的支持（Heikki Linnakangas）</p>", "text": "补齐 DROP OWNED BY 中缺失的移除用户所拥有的外部数据包装器/服务器权限的支持（Heikki Linnakangas）", "title": "补齐 DROP OWNED BY 中缺失的移除用户所拥有的外部数据包装器/服务器权限的支持", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.2/#id-1.11.6.26.5", "source_hash": "56cc1551c55bece45fe619dc83892fee5d8f71c87f4e8e79be2631e386ea2779", "section_path": ["变更"], "commit_groups": [], "identity_text": "Add missing support in DROP OWNED BY for removing foreign data wrapper/server privileges belonging to a user (Heikki Linnakangas)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.2/changes/018", "db_id": "bd220dd392692308f91569ba370806cc", "patch_ids": [], "statement_hash": "208734b6e17de973e30925b2c74a1e7a45c96c368268825b505d41ff9fe0baeb", "relations": [], "version": "9.0.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.2-574ed569227c5b22", "cves": [], "html": "<p>不要<span>“<span>内联</span>”</span>带多个 <code>OUT</code> 参数的 SQL 函数（Tom Lane）</p>\n<p>这避免了因丢失预期结果行类型信息而可能出现的崩溃。</p>", "text": "不要“内联”带多个 OUT 参数的 SQL 函数（Tom Lane） 这避免了因丢失预期结果行类型信息而可能出现的崩溃。", "title": "不要“内联”带多个 OUT 参数的 SQL 函数", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.2/#id-1.11.6.26.5", "source_hash": "7a1df660a071de5c07e46ffd4501de08f7cc69d75d309c073e2512ec9b50e2f2", "section_path": ["变更"], "commit_groups": [], "identity_text": "Do not inline a SQL function with multiple OUT parameters (Tom Lane) This avoids a possible crash due to loss of information about the expected result rowtype.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.2/changes/019", "db_id": "29d1c0c80db664df87358d57c0c753e1", "patch_ids": [], "statement_hash": "8107f7046b4add0aa1d745b767c84eec84043050816d8c26e19abcee818edf4d", "relations": [], "version": "9.0.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.2-4cd3c45d53ee6587", "cves": [], "html": "<p>修复内联参数列表包含对可内联用户函数引用的集合返回函数时的崩溃（Tom Lane）</p>", "text": "修复内联参数列表包含对可内联用户函数引用的集合返回函数时的崩溃（Tom Lane）", "title": "修复内联参数列表包含对可内联用户函数引用的集合返回函数时的崩溃", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.2/#id-1.11.6.26.5", "source_hash": "14148e0cbba2f2866eeee2f07c88e11c182b3d81a583223417417ddcf82234a9", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix crash when inline-ing a set-returning function whose argument list contains a reference to an inline-able user function (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.2/changes/020", "db_id": "cdf261c7539717bd796221b71b021577", "patch_ids": [], "statement_hash": "6b75dc2712841c495a1fa669a52f11d749103a14ce6355a6ebb5e0e8e870e3bd", "relations": [], "version": "9.0.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.2-18512023d83fe0d8", "cves": [], "html": "<p>修复当 <code>ORDER BY</code>、<code>LIMIT</code>、<code>FOR UPDATE</code> 或 <code>WITH</code> 附加到 <code>INSERT ... VALUES</code> 的 <code>VALUES</code> 部分时的正确行为（Tom Lane）</p>", "text": "修复当 ORDER BY、LIMIT、FOR UPDATE 或 WITH 附加到 INSERT ... VALUES 的 VALUES 部分时的正确行为（Tom Lane）", "title": "修复当 ORDER BY、LIMIT、FOR UPDATE 或 WITH 附加到 INSERT ... VALUES 的 VALUES 部分时的正确行为", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.2/#id-1.11.6.26.5", "source_hash": "4bc629a71477852a3612ddb85f0fe46001ef20730d0b0ef017deef417ba01f6b", "section_path": ["变更"], "commit_groups": [], "identity_text": "Behave correctly if ORDER BY, LIMIT, FOR UPDATE, or WITH is attached to the VALUES part of INSERT ... VALUES (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.2/changes/021", "db_id": "ded8d85be9ab103a764ffd254cabb3eb", "patch_ids": [], "statement_hash": "4c3bc408ee16215545d3890c485cbe8469db8b9097a3c299aaa3ac57a324fe29", "relations": [], "version": "9.0.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.2-3ec5210cdaa9d1a5", "cves": [], "html": "<p>把 <code>OFF</code> 关键字改为非保留（Heikki Linnakangas）</p>\n<p>这避免了在 <span>PL/pgSQL</span> 中使用 <code>off</code> 作为变量名的问题。这在 9.0 之前可行，但现在被破坏了，因为 <span>PL/pgSQL</span> 现在把所有核心保留字视为保留。</p>", "text": "把 OFF 关键字改为非保留（Heikki Linnakangas） 这避免了在 PL/pgSQL 中使用 off 作为变量名的问题。这在 9.0 之前可行，但现在被破坏了，因为 PL/pgSQL 现在把所有核心保留字视为保留。", "title": "把 OFF 关键字改为非保留", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.2/#id-1.11.6.26.5", "source_hash": "fb638afa08d51adad2d4522a8f04cb174f25475e1f3ffe400e9b77d3c9593e03", "section_path": ["变更"], "commit_groups": [], "identity_text": "Make the OFF keyword unreserved (Heikki Linnakangas) This prevents problems with using off as a variable name in PL/pgSQL. That worked before 9.0, but was now broken because PL/pgSQL now treats all core reserved words as reserved.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.2/changes/022", "db_id": "bf01afcc484380b917817819eb8b2ef2", "patch_ids": [], "statement_hash": "8da15ab2780abbc524fba973e610b8c68865bdc33848ceb9ef570304f4a9bea8", "relations": [], "version": "9.0.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.2-55c2ab9a4d310ccc", "cves": [], "html": "<p>修复 <code>COALESCE()</code> 表达式的常量折叠（Tom Lane）</p>\n<p>规划器有时会尝试求值实际上永远不可达的子表达式，可能导致意外错误。</p>", "text": "修复 COALESCE() 表达式的常量折叠（Tom Lane） 规划器有时会尝试求值实际上永远不可达的子表达式，可能导致意外错误。", "title": "修复 COALESCE() 表达式的常量折叠", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.2/#id-1.11.6.26.5", "source_hash": "b7b3f9ab327088c648c447b7eaf7c53cdba0d54842c3934ff9fae2fb467d1f0d", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix constant-folding of COALESCE() expressions (Tom Lane) The planner would sometimes attempt to evaluate sub-expressions that in fact could never be reached, possibly leading to unexpected errors.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.2/changes/023", "db_id": "19a5f59c0b2d17df84f464af7c510ce0", "patch_ids": [], "statement_hash": "f7172c949ec2b612d429e994c53c6e5028c0749aab510cda9f94054d98d8a93b", "relations": [], "version": "9.0.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.2-13a15ca79836824f", "cves": [], "html": "<p>修复比较整行 Var 时的 <span>“<span>could not find pathkey item to sort</span>”</span> 规划器失败（Tom Lane）</p>", "text": "修复比较整行 Var 时的 “could not find pathkey item to sort” 规划器失败（Tom Lane）", "title": "修复比较整行 Var 时的 “could not find pathkey item to sort” 规划器失败", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.2/#id-1.11.6.26.5", "source_hash": "762cf72a79cf8d0aad9877234301b7d3471cc9dcf33c06ff3e1f921acd29173f", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix could not find pathkey item to sort planner failure with comparison of whole-row Vars (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.2/changes/024", "db_id": "9d3ca780657b9c9fff78d87ea8cd24e0", "patch_ids": [], "statement_hash": "144266208c1e167a4127aa37fd6ae5f9c659780dd0140810513c0690bd6a8cb9", "relations": [], "version": "9.0.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.2-02995bc42a6a1d0b", "cves": [], "html": "<p>修复当连接接受（<code>accept()</code> 或紧随其后的调用之一）失败且 postmaster 编译时带 GSSAPI 支持时的 postmaster 崩溃（Alexander Chernikov）</p>", "text": "修复当连接接受（accept() 或紧随其后的调用之一）失败且 postmaster 编译时带 GSSAPI 支持时的 postmaster 崩溃（Alexander Chernikov）", "title": "修复当连接接受（accept() 或紧随其后的调用之一）失败且 postmaster 编译时带 GSSAPI 支持时的 postmaster 崩溃", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.2/#id-1.11.6.26.5", "source_hash": "9f31f4f32665a0d0eb7d51f1f1b62954a3dcad9ebd49fb8bf3698e421eab670f", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix postmaster crash when connection acceptance (accept() or one of the calls made immediately after it) fails, and the postmaster was compiled with GSSAPI support (Alexander Chernikov)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.2/changes/025", "db_id": "5fe4d9d833ba9d3ac0de7e6abde2f12b", "patch_ids": [], "statement_hash": "f38fd4f7ae5b97110d0f608af6368d139babcb01b0ccbbe393645bb1f78536ab", "relations": [], "version": "9.0.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.2-d08deffba426e11f", "cves": [], "html": "<p>在收到来自 RADIUS 认证服务器的无效响应包之后重试（Magnus Hagander）</p>\n<p>这修复了一个低风险的潜在拒绝服务条件。</p>", "text": "在收到来自 RADIUS 认证服务器的无效响应包之后重试（Magnus Hagander） 这修复了一个低风险的潜在拒绝服务条件。", "title": "在收到来自 RADIUS 认证服务器的无效响应包之后重试", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.2/#id-1.11.6.26.5", "source_hash": "8f7208c13216568797a725c3ff1f94249763bcf61aea03061fc2029a7e6d2c48", "section_path": ["变更"], "commit_groups": [], "identity_text": "Retry after receiving an invalid response packet from a RADIUS authentication server (Magnus Hagander) This fixes a low-risk potential denial of service condition.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.2/changes/026", "db_id": "167906d50539c48e1496028d4054d9bc", "patch_ids": [], "statement_hash": "697947151a236aab0e3b710355edee679075a9116d9cbec9cb1e023626c51f67", "relations": [], "version": "9.0.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.2-1bd8ff2c7c075177", "cves": [], "html": "<p>修复 <code>log_temp_files</code> 处于活动状态时临时文件漏删的问题（Tom Lane）</p>\n<p>如果尝试发出日志消息时出错，就不会执行删除，导致临时文件累积。</p>", "text": "修复 log_temp_files 处于活动状态时临时文件漏删的问题（Tom Lane） 如果尝试发出日志消息时出错，就不会执行删除，导致临时文件累积。", "title": "修复 log_temp_files 处于活动状态时临时文件漏删的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.2/#id-1.11.6.26.5", "source_hash": "5f0e9ed711085444061d9adc92e32cfd846d2e74c2d3f90130ec550fd2895c99", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix missed unlink of temporary files when log_temp_files is active (Tom Lane) If an error occurred while attempting to emit the log message, the unlink was not done, resulting in accumulation of temp files.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.2/changes/027", "db_id": "c1a79ae092b042c6006f2ed4f31f74f2", "patch_ids": [], "statement_hash": "a0ba8683c1146ac50a1cb28715dd053b91a62f2d248b07b50d2f6bca52e0059f", "relations": [], "version": "9.0.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.2-9c9eabdfb3058fd6", "cves": [], "html": "<p>为 <code>InhRelation</code> 节点添加打印功能（Tom Lane）</p>\n<p>这避免了启用 <code>debug_print_parse</code> 且执行某些类型的查询时的失败。</p>", "text": "为 InhRelation 节点添加打印功能（Tom Lane） 这避免了启用 debug_print_parse 且执行某些类型的查询时的失败。", "title": "为 InhRelation 节点添加打印功能", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.2/#id-1.11.6.26.5", "source_hash": "c572d9774429f11db1b9e107d62d7e18e9560a8fa7914ed8d95f971c7d66fdac", "section_path": ["变更"], "commit_groups": [], "identity_text": "Add print functionality for InhRelation nodes (Tom Lane) This avoids a failure when debug_print_parse is enabled and certain types of query are executed.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.2/changes/028", "db_id": "47a3a6344571ec63d32c684724fc6f94", "patch_ids": [], "statement_hash": "e790c1ae48cba2d77dbd787d32406230b8b48bb1befd795244ba94af19b71c35", "relations": [], "version": "9.0.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.2-b2be3357526c36c1", "cves": [], "html": "<p>修复点到水平线段距离的错误计算（Tom Lane）</p>\n<p>该缺陷影响多个不同的几何距离测量操作符。</p>", "text": "修复点到水平线段距离的错误计算（Tom Lane） 该缺陷影响多个不同的几何距离测量操作符。", "title": "修复点到水平线段距离的错误计算", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.2/#id-1.11.6.26.5", "source_hash": "2a6b6adbbc610c976788e63e7d7f83d207d1ab722e54c5472eb38f4cd577b726", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix incorrect calculation of distance from a point to a horizontal line segment (Tom Lane) This bug affected several different geometric distance-measurement operators.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.2/changes/029", "db_id": "3ac449d8aa6f520e348000321722cb3a", "patch_ids": [], "statement_hash": "6f6ceebfa5cd978ecb6b1bf7a0e8f3ca69b425c2ff7708ad0f92fe17c531fbc8", "relations": [], "version": "9.0.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.2-674f3a68cfa28c5d", "cves": [], "html": "<p>修复 <span>ecpg</span> 中事务状态的错误计算（Itagaki Takahiro）</p>", "text": "修复 ecpg 中事务状态的错误计算（Itagaki Takahiro）", "title": "修复 ecpg 中事务状态的错误计算", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.2/#id-1.11.6.26.5", "source_hash": "0942d2349bc93eb33b2210493aa4f68f22b6f42f54e7dd06fe9bfea0587a2354", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix incorrect calculation of transaction status in ecpg (Itagaki Takahiro)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.2/changes/030", "db_id": "c748c5fce4507f46d3f760c4d50403de", "patch_ids": [], "statement_hash": "996b9c335473a394cc0a0f3034a6fdf20ed871f1734fc7d53edb4e5dd6db5d1f", "relations": [], "version": "9.0.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.2-9c046108556a592c", "cves": [], "html": "<p>修复 <span>psql</span> Unicode 转义支持的错误（Tom Lane）</p>", "text": "修复 psql Unicode 转义支持的错误（Tom Lane）", "title": "修复 psql Unicode 转义支持的错误", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.2/#id-1.11.6.26.5", "source_hash": "5dbc701efac7abc7febd3293e377ee8bd574ce0a0630d89b608936dce61d01a5", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix errors in psql's Unicode-escape support (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.2/changes/031", "db_id": "22833c7d82a87371676c3f18f300cce4", "patch_ids": [], "statement_hash": "84e2ceb7a31f7dd39c00e5e095234a16c627d64001ba60797a271d2659bb5e31", "relations": [], "version": "9.0.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.2-624f0a44eedef4ef", "cves": [], "html": "<p>加快归档包含许多大对象（blob）时并行 <span>pg_restore</span> 的速度（Tom Lane）</p>", "text": "加快归档包含许多大对象（blob）时并行 pg_restore 的速度（Tom Lane）", "title": "加快归档包含许多大对象（blob）时并行 pg_restore 的速度", "commits": [], "section": "变更", "category": "performance", "source_url": "/docs/release/9.0.2/#id-1.11.6.26.5", "source_hash": "0fe589f8a8d00efc87bb368c4b5eb07f1bd4d3a7dd4c1004f95c8ed6cc1d67e6", "section_path": ["变更"], "commit_groups": [], "identity_text": "Speed up parallel pg_restore when the archive contains many large objects (blobs) (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.2/changes/032", "db_id": "024db4086d99949dd4642c42f90786ce", "patch_ids": [], "statement_hash": "044e09c0111839f283d0382cd79c6ee7876738a90414d543197bdbe4053bfe4f", "relations": [], "version": "9.0.2", "category_label": "性能改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.2-246617500a79099a", "cves": [], "html": "<p>修复 <span>PL/pgSQL</span> 对<span>“<span>简单</span>”</span>表达式的处理，使其在递归或错误恢复情况下不失败（Tom Lane）</p>", "text": "修复 PL/pgSQL 对“简单”表达式的处理，使其在递归或错误恢复情况下不失败（Tom Lane）", "title": "修复 PL/pgSQL 对“简单”表达式的处理，使其在递归或错误恢复情况下不失败", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.2/#id-1.11.6.26.5", "source_hash": "de400eca835cb0b7640b31c4f6ef9267b63c47a82e1260dedf783846f672f327", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix PL/pgSQL's handling of simple expressions to not fail in recursion or error-recovery cases (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.2/changes/033", "db_id": "b70645bb5df4e09eb300b43e99a0cf20", "patch_ids": [], "statement_hash": "b0948e3dd097842d2d563c65ad803bb994ee7265c8d86a31ea0a4d83a9858725", "relations": [], "version": "9.0.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.2-127b666450c3440b", "cves": [], "html": "<p>修复 <span>PL/pgSQL</span> 对不存在列情况的错误报告（Tom Lane）</p>\n<p>从 9.0 起，它有时会报 <span>“<span>missing FROM-clause entry for table foo</span>”</span>，而更合适的消息应是 <span>“<span>record foo has no field bar</span>”</span>。</p>", "text": "修复 PL/pgSQL 对不存在列情况的错误报告（Tom Lane） 从 9.0 起，它有时会报 “missing FROM-clause entry for table foo”，而更合适的消息应是 “record foo has no field bar”。", "title": "修复 PL/pgSQL 对不存在列情况的错误报告", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.2/#id-1.11.6.26.5", "source_hash": "b8f80c027db2a188a663a22b0d66eed3465b2727081b529db1f8054b52b44a3f", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix PL/pgSQL's error reporting for no-such-column cases (Tom Lane) As of 9.0, it would sometimes report missing FROM-clause entry for table foo when record foo has no field bar would be more appropriate.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.2/changes/034", "db_id": "79dfe91911f7cc04b3d1df7817f0b82f", "patch_ids": [], "statement_hash": "4f0a70b6cba8dd0717cffcf96c9756edbb0883b6600e2d1d8e9481c6d5aa31e8", "relations": [], "version": "9.0.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.2-4e10906f1bce6dce", "cves": [], "html": "<p>修复 <span>PL/Python</span>，使其在给元组字段赋值时遵循 typmod（即长度或精度限制）（Tom Lane）</p>\n<p>这修复了一个自 8.4 以来的退化。</p>", "text": "修复 PL/Python，使其在给元组字段赋值时遵循 typmod（即长度或精度限制）（Tom Lane） 这修复了一个自 8.4 以来的退化。", "title": "修复 PL/Python，使其在给元组字段赋值时遵循 typmod（即长度或精度限制）", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.2/#id-1.11.6.26.5", "source_hash": "6acd54442e82b4396126ac38c2ddb0b0ba68bb2a91fc415355c21d98a1e8aec4", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix PL/Python to honor typmod (i.e., length or precision restrictions) when assigning to tuple fields (Tom Lane) This fixes a regression from 8.4.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.2/changes/035", "db_id": "940c7285b0b58b6eafc3890580fd9cde", "patch_ids": [], "statement_hash": "44df1780f3e5434d8890162babeb2682dbe10b3f126f9b63078d415e28876832", "relations": [], "version": "9.0.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.2-9bc074afa1f4698d", "cves": [], "html": "<p>修复 <span>PL/Python</span> 对集合返回函数的处理（Jan Urbanski）</p>\n<p>在生成集合结果的迭代器内尝试调用 SPI 函数会失败。</p>", "text": "修复 PL/Python 对集合返回函数的处理（Jan Urbanski） 在生成集合结果的迭代器内尝试调用 SPI 函数会失败。", "title": "修复 PL/Python 对集合返回函数的处理", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.2/#id-1.11.6.26.5", "source_hash": "8a0d765b2892c1185f7b0b46548b5dcac13f5d42353a251a0a6537f0a8a4c7d3", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix PL/Python's handling of set-returning functions (Jan Urbanski) Attempts to call SPI functions within the iterator generating a set result would fail.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.2/changes/036", "db_id": "4f4534bf92e555ac9ee7c1cdb1261efe", "patch_ids": [], "statement_hash": "67af5f54a4a8faf966937886f1538b427d222d0e8cd459b13b641e84eb3cc563", "relations": [], "version": "9.0.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.2-e432fd45b5091786", "cves": [], "html": "<p>修复 <code>contrib/cube</code> 的 GiST picksplit 算法中的缺陷（Alexander Korotkov）</p>\n<p>这可能导致 <code>cube</code> 列上的 GiST 索引相当低效，尽管答案并非真正错误。如果你有这样的索引，考虑在安装此更新后对其执行 <code>REINDEX</code>。</p>", "text": "修复 contrib/cube 的 GiST picksplit 算法中的缺陷（Alexander Korotkov） 这可能导致 cube 列上的 GiST 索引相当低效，尽管答案并非真正错误。如果你有这样的索引，考虑在安装此更新后对其执行 REINDEX。", "title": "修复 contrib/cube 的 GiST picksplit 算法中的缺陷", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.2/#id-1.11.6.26.5", "source_hash": "01277a31046f3a23a754d96f08364e38b29cbfaff289274416200b49973659a7", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix bug in contrib/cube's GiST picksplit algorithm (Alexander Korotkov) This could result in considerable inefficiency, though not actually incorrect answers, in a GiST index on a cube column. If you have such an index, consider REINDEXing it after installing this update.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.2/changes/037", "db_id": "5ef5d921fd7f55e1b51791daf02bf4f2", "patch_ids": [], "statement_hash": "bc660fb86f4fa0965811535dc1569bd34b312f346b97a4d8333e1c365ee2ebbc", "relations": [], "version": "9.0.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.2-3c83c8b60190c6bc", "cves": [], "html": "<p><code>contrib/dblink</code> 除了在创建新连接时外不再发出<span>“<span>identifier will be truncated</span>”</span>通知（Itagaki Takahiro）</p>", "text": "contrib/dblink 除了在创建新连接时外不再发出“identifier will be truncated”通知（Itagaki Takahiro）", "title": "contrib/dblink 除了在创建新连接时外不再发出“identifier will be truncated”通知", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.2/#id-1.11.6.26.5", "source_hash": "bfabd79526b7d88fb543b8cd34ffa72431061314bf13a934269e487716bdedcb", "section_path": ["变更"], "commit_groups": [], "identity_text": "Don't emit identifier will be truncated notices in contrib/dblink except when creating new connections (Itagaki Takahiro)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.2/changes/038", "db_id": "7272117f59305991d189bd3609cc1d53", "patch_ids": [], "statement_hash": "445edda4fa2828b449729369718a83ccb0350593ea59aacd603064300c5e37d8", "relations": [], "version": "9.0.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.2-d51b6dc5b0fe723d", "cves": [], "html": "<p>修复 <code>contrib/pgcrypto</code> 在缺少公钥时可能的核心转储（Marti Raudsepp）</p>", "text": "修复 contrib/pgcrypto 在缺少公钥时可能的核心转储（Marti Raudsepp）", "title": "修复 contrib/pgcrypto 在缺少公钥时可能的核心转储", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.2/#id-1.11.6.26.5", "source_hash": "863e785f49f59beebe788b0322b0d2650c7096127f53304ddebb0a592af4659d", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix potential coredump on missing public key in contrib/pgcrypto (Marti Raudsepp)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.2/changes/039", "db_id": "07bdf6aeba248ef570f398f917c15b28", "patch_ids": [], "statement_hash": "756882c7fbe5916c039abe5f114690a8324a01735db904549f5d5196011d068c", "relations": [], "version": "9.0.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.2-7e0ba513c68e7ddb", "cves": [], "html": "<p>修复 <code>contrib/pg_upgrade</code> 中的缓冲区越界（Hernan Gonzalez）</p>", "text": "修复 contrib/pg_upgrade 中的缓冲区越界（Hernan Gonzalez）", "title": "修复 contrib/pg_upgrade 中的缓冲区越界", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.2/#id-1.11.6.26.5", "source_hash": "ec245e370820500e2382725c72b871c9c69ca2335a8cadc958956f4564e8ab2e", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix buffer overrun in contrib/pg_upgrade (Hernan Gonzalez)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.2/changes/040", "db_id": "063dbf6e0bb82cac5ab705d1619ebabf", "patch_ids": [], "statement_hash": "75beccdbe8cf30e0dfa39e7dded0f6e7ebee3bba23482e411d8ef4862449b9e2", "relations": [], "version": "9.0.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.2-4b54bd9f578fc555", "cves": [], "html": "<p>修复 <code>contrib/xml2</code> 的 XPath 查询函数中的内存泄漏（Tom Lane）</p>", "text": "修复 contrib/xml2 的 XPath 查询函数中的内存泄漏（Tom Lane）", "title": "修复 contrib/xml2 的 XPath 查询函数中的内存泄漏", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.2/#id-1.11.6.26.5", "source_hash": "8bbe01c6ad65cd69648fabc6e0fae5110ffebe658608d5d204a933ff4aa681ed", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix memory leak in contrib/xml2's XPath query functions (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.2/changes/041", "db_id": "f7eb8b87b1e19515d24067c5f3d090c7", "patch_ids": [], "statement_hash": "3a50b6f57453ede69ae1bc731811f73c30c63e2098d0b6836ec911359e065e0f", "relations": [], "version": "9.0.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.2-c27bc3568d715f75", "cves": [], "html": "<p>把时区数据文件更新为 <span>tzdata</span> 版本 2010o for DST law changes in Fiji and Samoa; also historical corrections for Hong Kong。</p>", "text": "把时区数据文件更新为 tzdata 版本 2010o for DST law changes in Fiji and Samoa; also historical corrections for Hong Kong。", "title": "把时区数据文件更新为 tzdata 版本 2010o for DST law changes in Fiji and Samoa; also historical corrections for Hong Kong。", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.2/#id-1.11.6.26.5", "source_hash": "b1e03f97ec8ed473d05ad665d6af9a8947f991b96af5ae51c46c0bf04981f81f", "section_path": ["变更"], "commit_groups": [], "identity_text": "Update time zone data files to tzdata release 2010o for DST law changes in Fiji and Samoa; also historical corrections for Hong Kong.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.2/changes/042", "db_id": "41aa83ca226f8eefde4a127758ce058a", "patch_ids": [], "statement_hash": "dfb844426c100dee6f520e1152dced660047a990a18732167a24e731cc8bfa9c", "relations": [], "version": "9.0.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}]}, {"date": "2010-10-04", "build": "9.0.1", "major": "9.0", "minor": 1, "manual": "9.0", "status": "stable", "doc_git": "", "version": "9.0.1", "eol_date": "2015-10-08", "date_text": "2010-10-04", "supported": false, "manual_url": "/docs/9.0/release-9-0-1.html", "source_url": "/docs/release/9.0.1/", "entry_count": 10, "placeholder": false, "content_hash": "40592d3b9a2dd0a6d0c5822da476cb34374da5f3c194124acfd6ff4b052a363b", "manual_build": "9.0.23", "source_as_of": "", "changes_count": 10, "doc_loaded_at": "2026-09-26T02:56:48.570247", "migration_html": "<p>对于运行 9.0.X 的用户，不需要进行转储/恢复。</p>", "compatibility_count": 0, "label": "9.0.1", "status_label": "历史版本", "eol": "2015-10-08", "age_days": 5840, "support_days": -4010, "entries": [{"id": "9.0.1-c624c8adcc0176f4", "cves": ["CVE-2010-3433"], "html": "<p>在 PL/Perl 和 PL/Tcl 中为每个调用方 SQL 用户 ID 使用单独的解释器（Tom Lane）</p>\n<p>此变更防止了可通过破坏稍后将在同一会话中以另一 SQL 用户身份执行的 Perl 或 Tcl 代码（例如在 <code>SECURITY DEFINER</code> 函数内）而造成的安全问题。大多数脚本语言都提供许多实现这一点的手段，例如重新定义目标函数调用的标准函数或操作符。如果没有此变更，任何拥有 Perl 或 Tcl 语言使用权的 SQL 用户基本上都能以目标函数所有者的 SQL 权限为所欲为。</p>\n<p>此变更的代价是 Perl 和 Tcl 函数之间的有意通信变得更困难。为提供出路，PL/PerlU 和 PL/TclU 函数继续每会话只使用一个解释器。这不被视为安全问题，因为所有这类函数本来就以数据库超级用户的信任级别执行。</p>\n<p>声称提供可信执行的第三方过程语言很可能存在类似的安全问题。我们建议就安全关键用途联系你所依赖的任何 PL 的作者。</p>\n<p>感谢 Tim Bunce 指出此问题（CVE-2010-3433）。</p>", "text": "在 PL/Perl 和 PL/Tcl 中为每个调用方 SQL 用户 ID 使用单独的解释器（Tom Lane） 此变更防止了可通过破坏稍后将在同一会话中以另一 SQL 用户身份执行的 Perl 或 Tcl 代码（例如在 SECURITY DEFINER 函数内）而造成的安全问题。大多数脚本语言都提供许多实现这一点的手段，例如重新定义目标函数调用的标准函数或操作符。如果没有此变更，任何拥有 Perl 或 Tcl 语言使用权的 SQL 用户基本上都能以目标函数所有者的 SQL 权限为所欲为。 此变更的代价是 Perl 和 Tcl 函数之间的有意通信变得更困难。为提供出路，PL/PerlU 和 PL/TclU 函数继续每会话只使用一个解释器。这不被视为安全问题，因为所有这类函数本来就以数据库超级用户的信任级别执行。 声称提供可信执行的第三方过程语言很可能存在类似的安全问题。我们建议就安全关键用途联系你所依赖的任何 PL 的作者。 感谢 Tim Bunce 指出此问题（CVE-2010-3433）。", "title": "在 PL/Perl 和 PL/Tcl 中为每个调用方 SQL 用户 ID 使用单独的解释器", "commits": [], "section": "变更", "category": "security", "source_url": "/docs/release/9.0.1/#id-1.11.6.27.5", "source_hash": "7595824ebbb771e36673953a0db338fda17be64a87018d5567b2c9c28387482d", "section_path": ["变更"], "commit_groups": [], "identity_text": "Use a separate interpreter for each calling SQL userid in PL/Perl and PL/Tcl (Tom Lane) This change prevents security problems that can be caused by subverting Perl or Tcl code that will be executed later in the same session under another SQL user identity (for example, within a SECURITY DEFINER function). Most scripting languages offer numerous ways that that might be done, such as redefining standard functions or operators called by the target function. Without this change, any SQL user with Perl or Tcl language usage rights can do essentially anything with the SQL privileges of the target function's owner. The cost of this change is that intentional communication among Perl and Tcl functions becomes more difficult. To provide an escape hatch, PL/PerlU and PL/TclU functions continue to use only one interpreter per session. This is not considered a security issue since all such functions execute at the trust level of a database superuser already. It is likely that third-party procedural languages that claim to offer trusted execution have similar security issues. We advise contacting the authors of any PL you are depending on for security-critical purposes. Our thanks to Tim Bunce for pointing out this issue (CVE-2010-3433).", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.1/changes/001", "db_id": "491239023374ba84bfc8e1efde211029", "patch_ids": [], "statement_hash": "919e1d60dbdb889b71827b41def2c79179825514e699d86c55bea11808fa1c5d", "relations": [], "version": "9.0.1", "category_label": "安全相关", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.1-fa8a98adde2e4c45", "cves": [], "html": "<p>改进 <code>pg_get_expr()</code> 的安全修复，使该函数仍可用于子 SELECT 的输出（Tom Lane）</p>", "text": "改进 pg_get_expr() 的安全修复，使该函数仍可用于子 SELECT 的输出（Tom Lane）", "title": "改进 pg_get_expr() 的安全修复，使该函数仍可用于子 SELECT 的输出", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.1/#id-1.11.6.27.5", "source_hash": "22cb4661228d3df6b973975525feb783754146d8f8a154f5de48a1d464a40bee", "section_path": ["变更"], "commit_groups": [], "identity_text": "Improve pg_get_expr() security fix so that the function can still be used on the output of a sub-select (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.1/changes/002", "db_id": "d31119b7a615a4cf53b9bb064bdf4bfd", "patch_ids": [], "statement_hash": "41ea78ee317bc5d40d2aa100d873c4e2b79246a7c43d295428226c2cc3c96037", "relations": [], "version": "9.0.1", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.1-23da127fd07b1a59", "cves": [], "html": "<p>修复占位符求值位置不正确的问题（Tom Lane）</p>\n<p>当外连接的内侧是输出列表中含非严格表达式的子 SELECT 时，该缺陷可能导致本应为空的查询输出非空。</p>", "text": "修复占位符求值位置不正确的问题（Tom Lane） 当外连接的内侧是输出列表中含非严格表达式的子 SELECT 时，该缺陷可能导致本应为空的查询输出非空。", "title": "修复占位符求值位置不正确的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.1/#id-1.11.6.27.5", "source_hash": "c0eff0953d2564e017a5aa451218b1844b8c861cbb57a414dafe03f939abc637", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix incorrect placement of placeholder evaluation (Tom Lane) This bug could result in query outputs being non-null when they should be null, in cases where the inner side of an outer join is a sub-select with non-strict expressions in its output list.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.1/changes/003", "db_id": "58a1999e525004e1437506f26464bb19", "patch_ids": [], "statement_hash": "d57a66324d30476e4815ea1fd5f383be27872fe2a82fcfe0502f31db84be3a41", "relations": [], "version": "9.0.1", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.1-c0c377a05122b9d0", "cves": [], "html": "<p>修复连接消除对占位符表达式的处理（Tom Lane）</p>", "text": "修复连接消除对占位符表达式的处理（Tom Lane）", "title": "修复连接消除对占位符表达式的处理", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.1/#id-1.11.6.27.5", "source_hash": "012ef97029f0e54a63ab77efbe3262eb7be9fd3e821afefce3e4b176f8740301", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix join removal's handling of placeholder expressions (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.1/changes/004", "db_id": "237740152fb17773601a84c6ac3f8fd8", "patch_ids": [], "statement_hash": "664d90c5653bfbd7ab67495b2e3a610089b5b5a4e25cb92b547a65752625ccb7", "relations": [], "version": "9.0.1", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.1-b28b3107c02a7a25", "cves": [], "html": "<p>修复 <code>UNION ALL</code> 成员关系可能被重复扫描的问题（Tom Lane）</p>", "text": "修复 UNION ALL 成员关系可能被重复扫描的问题（Tom Lane）", "title": "修复 UNION ALL 成员关系可能被重复扫描的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.1/#id-1.11.6.27.5", "source_hash": "6009f7448fc47d91af550d657a68a43d62da3ba42de6db4d65b9621341bbcb2c", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix possible duplicate scans of UNION ALL member relations (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.1/changes/005", "db_id": "fe0acc2a49e5d713012f383f3d8804c9", "patch_ids": [], "statement_hash": "4874e84641167897f2a8770c1ecb9207e0b47d4a34ca3f1be4bf595dc246a5da", "relations": [], "version": "9.0.1", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.1-47b0130542946504", "cves": [], "html": "<p>防止取消监听后 ProcessIncomingNotify() 中的无限循环（Jeff Davis）</p>", "text": "防止取消监听后 ProcessIncomingNotify() 中的无限循环（Jeff Davis）", "title": "防止取消监听后 ProcessIncomingNotify() 中的无限循环", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.1/#id-1.11.6.27.5", "source_hash": "97e89b7695cf331c005a36796e78db59468be8843b8ab57538b340ebe35d1194", "section_path": ["变更"], "commit_groups": [], "identity_text": "Prevent infinite loop in ProcessIncomingNotify() after unlistening (Jeff Davis)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.1/changes/006", "db_id": "e25739c5024af137c583a5c56f764b66", "patch_ids": [], "statement_hash": "7fc1dd7cdb189a06b5ed0a4b6bed825bdd44800bd43f13c1bcfb49081c2e657d", "relations": [], "version": "9.0.1", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.1-0d2918f16a552ab7", "cves": [], "html": "<p>防止 show_session_authorization() 在自动清理进程中崩溃（Tom Lane）</p>", "text": "防止 show_session_authorization() 在自动清理进程中崩溃（Tom Lane）", "title": "防止 show_session_authorization() 在自动清理进程中崩溃", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.1/#id-1.11.6.27.5", "source_hash": "ad0c543230fee2735fb3f52aafe5fb9be71a2a1f45f586bbb5c9476a0857954c", "section_path": ["变更"], "commit_groups": [], "identity_text": "Prevent show_session_authorization() from crashing within autovacuum processes (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.1/changes/007", "db_id": "86f194f707157b9694d05165461d64ef", "patch_ids": [], "statement_hash": "c41fcbe70702d932dd2d6fd21a34c8d213f7a65882d3ce71baff1c9f13307ba2", "relations": [], "version": "9.0.1", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.1-78fa0a62c4d68365", "cves": [], "html": "<p>重新允许输入公元 0001-01-01 之前的儒略日期（Tom Lane）</p>\n<p>像 <code>'J100000'::date</code> 这样的输入在 8.4 之前可行，但被新增的错误检查无意中破坏。</p>", "text": "重新允许输入公元 0001-01-01 之前的儒略日期（Tom Lane） 像 'J100000'::date 这样的输入在 8.4 之前可行，但被新增的错误检查无意中破坏。", "title": "重新允许输入公元 0001-01-01 之前的儒略日期", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.1/#id-1.11.6.27.5", "source_hash": "9f8044cdaeefa8746da7bcc8707d1b7b27fc8f562fec305644e1ae4cc36e8aac", "section_path": ["变更"], "commit_groups": [], "identity_text": "Re-allow input of Julian dates prior to 0001-01-01 AD (Tom Lane) Input such as 'J100000'::date worked before 8.4, but was unintentionally broken by added error-checking.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.1/changes/008", "db_id": "21b0d5c3d442260382c49e4f3feb5742", "patch_ids": [], "statement_hash": "ddada525738004ce5cdc4b589e26fb396cbbda814032c95772c78422e00e8dbc", "relations": [], "version": "9.0.1", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.1-baf8e4f574f795d4", "cves": [], "html": "<p>让 psql 在自动提交关闭模式下把 <code>DISCARD ALL</code> 识别为不应包裹在事务块中的命令（Itagaki Takahiro）</p>", "text": "让 psql 在自动提交关闭模式下把 DISCARD ALL 识别为不应包裹在事务块中的命令（Itagaki Takahiro）", "title": "让 psql 在自动提交关闭模式下把 DISCARD ALL 识别为不应包裹在事务块中的命令", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.1/#id-1.11.6.27.5", "source_hash": "9779251eaa4e41136402491983b02f7e6286f5218b55e4e17c9215ad162f27bc", "section_path": ["变更"], "commit_groups": [], "identity_text": "Make psql recognize DISCARD ALL as a command that should not be encased in a transaction block in autocommit-off mode (Itagaki Takahiro)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.1/changes/009", "db_id": "d518cc1d662a819f55ba5f3df34834ba", "patch_ids": [], "statement_hash": "5d46bc9172a5d5d8c3bc45f446f056bd7f4b27c39fef6986a7d5916667974926", "relations": [], "version": "9.0.1", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.1-f285734efb6ae9a4", "cves": [], "html": "<p>更新构建基础设施和文档，反映源代码仓库从 CVS 迁移到 Git 的变化（Magnus Hagander 等）</p>", "text": "更新构建基础设施和文档，反映源代码仓库从 CVS 迁移到 Git 的变化（Magnus Hagander 等）", "title": "更新构建基础设施和文档，反映源代码仓库从 CVS 迁移到 Git 的变化（Magnus Hagander 等）", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.1/#id-1.11.6.27.5", "source_hash": "0183f0b259895c5a5e339b225bbd01e78596e5da611fc6dea4492640395fefff", "section_path": ["变更"], "commit_groups": [], "identity_text": "Update build infrastructure and documentation to reflect the source code repository's move from CVS to Git (Magnus Hagander and others)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.1/changes/010", "db_id": "c6aa975c2a788b983e12d6369a3dd2fa", "patch_ids": [], "statement_hash": "e9b1e1e377c1197adf85f5546ac19d2e7a3b3aaf4a67b5d6508aa6b97c1e9ba5", "relations": [], "version": "9.0.1", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}]}], "stats": [{"key": "all", "label": "全部变更", "count": 613}, {"key": "feature", "label": "新功能", "count": 0}, {"key": "bugfix", "label": "BUG 修复", "count": 322}, {"key": "security", "label": "安全相关", "count": 32}, {"key": "performance", "label": "性能改进", "count": 4}, {"key": "compatibility", "label": "兼容性变化", "count": 0}, {"key": "improvement", "label": "其他改进", "count": 255}], "total": 613, "cve_count": 29, "cves": [{"id": "CVE-2014-0062", "url": "https://www.postgresql.org/support/security/CVE-2014-0062/", "fixed": {"8.4": "8.4.20", "9.0": "9.0.16", "9.1": "9.1.12", "9.2": "9.2.7", "9.3": "9.3.3"}, "score": 8.8, "title": "避免在表和索引 DDL 期间进行多次名称查找", "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "affected": {"8.4": "8.4", "9.0": "9.0", "9.1": "9.1", "9.2": "9.2", "9.3": "9.3"}, "component": "core server", "published": {}, "introduced": {}, "cvss_version": "3.0", "description_en": "", "first_published": null, "fixed_version": "9.0.16", "severity": "高危", "status_label": "目标版本已修复"}, {"id": "CVE-2015-0244", "url": "https://www.postgresql.org/support/security/CVE-2015-0244/", "fixed": {"9.0": "9.0.19", "9.1": "9.1.15", "9.2": "9.2.10", "9.3": "9.3.6", "9.4": "9.4.1"}, "score": 8.1, "title": "修复出错后前端/后端协议可能失去同步的问题", "vector": "AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/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-02-05", "9.1": "2015-02-05", "9.2": "2015-02-05", "9.3": "2015-02-05", "9.4": "2015-02-05"}, "introduced": {}, "cvss_version": "3.0", "description_en": "", "first_published": "2015-02-05", "fixed_version": "9.0.19", "severity": "高危", "status_label": "目标版本已修复"}, {"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", "severity": "高危", "status_label": "目标版本已修复"}, {"id": "CVE-2014-0061", "url": "https://www.postgresql.org/support/security/CVE-2014-0061/", "fixed": {"8.4": "8.4.20", "9.0": "9.0.16", "9.1": "9.1.12", "9.2": "9.2.7", "9.3": "9.3.3"}, "score": 7.5, "title": "防止通过手工调用 PL 验证器函数进行权限提升", "vector": "AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H", "affected": {"8.4": "8.4", "9.0": "9.0", "9.1": "9.1", "9.2": "9.2", "9.3": "9.3"}, "component": "core server", "published": {}, "introduced": {}, "cvss_version": "3.0", "description_en": "", "first_published": null, "fixed_version": "9.0.16", "severity": "高危", "status_label": "目标版本已修复"}, {"id": "CVE-2014-0067", "url": "https://www.postgresql.org/support/security/CVE-2014-0067/", "fixed": {"9.0": "9.0.19", "9.1": "9.1.15", "9.2": "9.2.10", "9.3": "9.3.6", "9.4": "9.4.1"}, "score": 7.0, "title": "锁定 Windows 上回归测试的临时安装", "vector": "AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H", "affected": {"9.0": "9.0", "9.1": "9.1", "9.2": "9.2", "9.3": "9.3", "9.4": "9.4"}, "component": "other", "published": {}, "introduced": {}, "cvss_version": "3.0", "description_en": "", "first_published": null, "fixed_version": "9.0.19", "severity": "高危", "status_label": "目标版本已修复"}, {"id": "CVE-2015-0243", "url": "https://www.postgresql.org/support/security/CVE-2015-0243/", "fixed": {"9.0": "9.0.19", "9.1": "9.1.15", "9.2": "9.2.10", "9.3": "9.3.6", "9.4": "9.4.1"}, "score": 6.5, "title": "修复contrib/pgcrypto中的缓冲区越界", "vector": "AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:H", "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-02-05", "9.1": "2015-02-05", "9.2": "2015-02-05", "9.3": "2015-02-05", "9.4": "2015-02-05"}, "introduced": {}, "cvss_version": "3.0", "description_en": "", "first_published": "2015-02-05", "fixed_version": "9.0.19", "severity": "中危", "status_label": "目标版本已修复"}, {"id": "CVE-2014-0064", "url": "https://www.postgresql.org/support/security/CVE-2014-0064/", "fixed": {"8.4": "8.4.20", "9.0": "9.0.16", "9.1": "9.1.12", "9.2": "9.2.7", "9.3": "9.3.3"}, "score": 6.5, "title": "防止大小计算中的整数溢出导致缓冲区越界", "vector": "AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:H", "affected": {"8.4": "8.4", "9.0": "9.0", "9.1": "9.1", "9.2": "9.2", "9.3": "9.3"}, "component": "core server", "published": {}, "introduced": {}, "cvss_version": "3.0", "description_en": "", "first_published": null, "fixed_version": "9.0.16", "severity": "中危", "status_label": "目标版本已修复"}, {"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", "severity": "中危", "status_label": "目标版本已修复"}, {"id": "CVE-2014-0063", "url": "https://www.postgresql.org/support/security/CVE-2014-0063/", "fixed": {"8.4": "8.4.20", "9.0": "9.0.16", "9.1": "9.1.12", "9.2": "9.2.7", "9.3": "9.3.3"}, "score": 4.3, "title": "防止长日期时间字符串造成缓冲区越界", "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:N", "affected": {"8.4": "8.4", "9.0": "9.0", "9.1": "9.1", "9.2": "9.2", "9.3": "9.3"}, "component": "core server", "published": {}, "introduced": {}, "cvss_version": "3.0", "description_en": "", "first_published": null, "fixed_version": "9.0.16", "severity": "中危", "status_label": "目标版本已修复"}, {"id": "CVE-2015-0242", "url": "https://www.postgresql.org/support/security/CVE-2015-0242/", "fixed": {"9.0": "9.0.19", "9.1": "9.1.15", "9.2": "9.2.10", "9.3": "9.3.6", "9.4": "9.4.1"}, "score": 4.2, "title": "修复替换实现的*printf()函数中的缓冲区越界", "vector": "AV:N/AC:H/PR:L/UI:N/S:U/C:L/I:L/A:N", "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-02-05", "9.1": "2015-02-05", "9.2": "2015-02-05", "9.3": "2015-02-05", "9.4": "2015-02-05"}, "introduced": {}, "cvss_version": "3.0", "description_en": "", "first_published": "2015-02-05", "fixed_version": "9.0.19", "severity": "中危", "status_label": "目标版本已修复"}, {"id": "CVE-2015-0241", "url": "https://www.postgresql.org/support/security/CVE-2015-0241/", "fixed": {"9.0": "9.0.19", "9.1": "9.1.15", "9.2": "9.2.10", "9.3": "9.3.6", "9.4": "9.4.1"}, "score": 4.2, "title": "修复to_char()中的缓冲区越界", "vector": "AV:N/AC:H/PR:L/UI:N/S:U/C:L/I:L/A:N", "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-02-05", "9.1": "2015-02-05", "9.2": "2015-02-05", "9.3": "2015-02-05", "9.4": "2015-02-05"}, "introduced": {}, "cvss_version": "3.0", "description_en": "", "first_published": "2015-02-05", "fixed_version": "9.0.19", "severity": "中危", "status_label": "目标版本已修复"}, {"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", "severity": "低危", "status_label": "目标版本已修复"}, {"id": "CVE-2015-5288", "url": "https://www.postgresql.org/support/security/CVE-2015-5288/", "fixed": {"9.0": "9.0.23", "9.1": "9.1.19", "9.2": "9.2.14", "9.3": "9.3.10", "9.4": "9.4.5"}, "score": 3.1, "title": "修复contrib/pgcrypto以检测并报告过短的crypt()盐值", "vector": "AV:N/AC:H/PR:L/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-10-08", "9.1": "2015-10-08", "9.2": "2015-10-08", "9.3": "2015-10-08", "9.4": "2015-10-08"}, "introduced": {}, "cvss_version": "3.0", "description_en": "", "first_published": "2015-10-08", "fixed_version": "9.0.23", "severity": "低危", "status_label": "目标版本已修复"}, {"id": "CVE-2014-8161", "url": "https://www.postgresql.org/support/security/CVE-2014-8161/", "fixed": {"9.0": "9.0.19", "9.1": "9.1.15", "9.2": "9.2.10", "9.3": "9.3.6", "9.4": "9.4.1"}, "score": 3.1, "title": "修复通过约束违反错误消息的信息泄露", "vector": "AV:N/AC:H/PR:L/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": "core server", "published": {}, "introduced": {}, "cvss_version": "3.0", "description_en": "", "first_published": null, "fixed_version": "9.0.19", "severity": "低危", "status_label": "目标版本已修复"}, {"id": "CVE-2014-0060", "url": "https://www.postgresql.org/support/security/CVE-2014-0060/", "fixed": {"8.4": "8.4.20", "9.0": "9.0.16", "9.1": "9.1.12", "9.2": "9.2.7", "9.3": "9.3.3"}, "score": 3.1, "title": "加固 GRANT ... WITH ADMIN OPTION 的限制", "vector": "AV:N/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:L", "affected": {"8.4": "8.4", "9.0": "9.0", "9.1": "9.1", "9.2": "9.2", "9.3": "9.3"}, "component": "core server", "published": {}, "introduced": {}, "cvss_version": "3.0", "description_en": "", "first_published": null, "fixed_version": "9.0.16", "severity": "低危", "status_label": "目标版本已修复"}, {"id": "CVE-2014-0066", "url": "https://www.postgresql.org/support/security/CVE-2014-0066/", "fixed": {"8.4": "8.4.20", "9.0": "9.0.16", "9.1": "9.1.12", "9.2": "9.2.7", "9.3": "9.3.3"}, "score": 0.0, "title": "避免在 crypt() 返回 NULL 时崩溃", "vector": "AV:N/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:N", "affected": {"8.4": "8.4", "9.0": "9.0", "9.1": "9.1", "9.2": "9.2", "9.3": "9.3"}, "component": "contrib module", "published": {}, "introduced": {}, "cvss_version": "3.0", "description_en": "", "first_published": null, "fixed_version": "9.0.16", "severity": "无", "status_label": "目标版本已修复"}, {"id": "CVE-2014-0065", "url": "https://www.postgresql.org/support/security/CVE-2014-0065/", "fixed": {"8.4": "8.4.20", "9.0": "9.0.16", "9.1": "9.1.12", "9.2": "9.2.7", "9.3": "9.3.3"}, "score": 0.0, "title": "防止固定大小缓冲区越界", "vector": "AV:N/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:N", "affected": {"8.4": "8.4", "9.0": "9.0", "9.1": "9.1", "9.2": "9.2", "9.3": "9.3"}, "component": "core server", "published": {}, "introduced": {}, "cvss_version": "3.0", "description_en": "", "first_published": null, "fixed_version": "9.0.16", "severity": "无", "status_label": "目标版本已修复"}, {"id": "CVE-2013-1900", "url": "https://www.postgresql.org/support/security/CVE-2013-1900/", "fixed": {"8.4": "8.4.17", "9.0": "9.0.13", "9.1": "9.1.9", "9.2": "9.2.4"}, "score": null, "title": "在每个 postmaster 子进程中重置 OpenSSL 随机状态", "vector": "", "affected": {"8.4": "8.4", "9.0": "9.0", "9.1": "9.1", "9.2": "9.2"}, "component": "", "published": {}, "introduced": {}, "cvss_version": "", "description_en": "", "first_published": null, "fixed_version": "9.0.13", "severity": "", "status_label": "目标版本已修复"}, {"id": "CVE-2013-1899", "url": "https://www.postgresql.org/support/security/CVE-2013-1899/", "fixed": {"9.0": "9.0.13", "9.1": "9.1.9", "9.2": "9.2.4"}, "score": null, "title": "修复服务器命令行开关解析不安全的问题", "vector": "", "affected": {"9.0": "9.0", "9.1": "9.1", "9.2": "9.2"}, "component": "", "published": {}, "introduced": {}, "cvss_version": "", "description_en": "", "first_published": null, "fixed_version": "9.0.13", "severity": "", "status_label": "目标版本已修复"}, {"id": "CVE-2013-0255", "url": "https://www.postgresql.org/support/security/CVE-2013-0255/", "fixed": {"8.3": "8.3.23", "8.4": "8.4.16", "9.0": "9.0.12", "9.1": "9.1.8", "9.2": "9.2.3"}, "score": null, "title": "防止从 SQL 执行 enum_recv", "vector": "", "affected": {"8.3": "8.3", "8.4": "8.4", "9.0": "9.0", "9.1": "9.1", "9.2": "9.2"}, "component": "", "published": {}, "introduced": {}, "cvss_version": "", "description_en": "", "first_published": null, "fixed_version": "9.0.12", "severity": "", "status_label": "目标版本已修复"}, {"id": "CVE-2012-3489", "url": "https://www.postgresql.org/support/security/CVE-2012-3489/", "fixed": {"8.3": "8.3.20", "8.4": "8.4.13", "9.0": "9.0.9", "9.1": "9.1.5"}, "score": null, "title": "防止通过 XML 实体引用访问外部文件/URL", "vector": "", "affected": {"8.3": "8.3", "8.4": "8.4", "9.0": "9.0", "9.1": "9.1"}, "component": "", "published": {}, "introduced": {}, "cvss_version": "", "description_en": "", "first_published": null, "fixed_version": "9.0.9", "severity": "", "status_label": "目标版本已修复"}, {"id": "CVE-2012-3488", "url": "https://www.postgresql.org/support/security/CVE-2012-3488/", "fixed": {"8.3": "8.3.20", "8.4": "8.4.13", "9.0": "9.0.9", "9.1": "9.1.5"}, "score": null, "title": "防止通过 contrib/xml2 的 xslt_process() 访问外部文件/URL", "vector": "", "affected": {"8.3": "8.3", "8.4": "8.4", "9.0": "9.0", "9.1": "9.1"}, "component": "", "published": {}, "introduced": {}, "cvss_version": "", "description_en": "", "first_published": null, "fixed_version": "9.0.9", "severity": "", "status_label": "目标版本已修复"}, {"id": "CVE-2012-2655", "url": "https://www.postgresql.org/support/security/CVE-2012-2655/", "fixed": {"8.3": "8.3.19", "8.4": "8.4.12", "9.0": "9.0.8", "9.1": "9.1.4"}, "score": null, "title": "忽略过程语言调用处理程序的 SECURITY DEFINER 和 SET 属性", "vector": "", "affected": {"8.3": "8.3", "8.4": "8.4", "9.0": "9.0", "9.1": "9.1"}, "component": "", "published": {}, "introduced": {}, "cvss_version": "", "description_en": "", "first_published": null, "fixed_version": "9.0.8", "severity": "", "status_label": "目标版本已修复"}, {"id": "CVE-2012-2143", "url": "https://www.postgresql.org/support/security/CVE-2012-2143/", "fixed": {"8.3": "8.3.19", "8.4": "8.4.12", "9.0": "9.0.8", "9.1": "9.1.4"}, "score": null, "title": "修复 contrib/pgcrypto 的 DES crypt() 函数中不正确的口令变换", "vector": "", "affected": {"8.3": "8.3", "8.4": "8.4", "9.0": "9.0", "9.1": "9.1"}, "component": "", "published": {}, "introduced": {}, "cvss_version": "", "description_en": "", "first_published": null, "fixed_version": "9.0.8", "severity": "", "status_label": "目标版本已修复"}, {"id": "CVE-2012-0868", "url": "https://www.postgresql.org/support/security/CVE-2012-0868/", "fixed": {"8.3": "8.3.18", "8.4": "8.4.11", "9.0": "9.0.7", "9.1": "9.1.3"}, "score": null, "title": "把 pg_dump 注释中写入的名称里的换行符转换为空格", "vector": "", "affected": {"8.3": "8.3", "8.4": "8.4", "9.0": "9.0", "9.1": "9.1"}, "component": "", "published": {}, "introduced": {}, "cvss_version": "", "description_en": "", "first_published": null, "fixed_version": "9.0.7", "severity": "", "status_label": "目标版本已修复"}, {"id": "CVE-2012-0867", "url": "https://www.postgresql.org/support/security/CVE-2012-0867/", "fixed": {"8.4": "8.4.11", "9.0": "9.0.7", "9.1": "9.1.3"}, "score": null, "title": "移除 SSL 证书中通用名长度的任意限制", "vector": "", "affected": {"8.4": "8.4", "9.0": "9.0", "9.1": "9.1"}, "component": "", "published": {}, "introduced": {}, "cvss_version": "", "description_en": "", "first_published": null, "fixed_version": "9.0.7", "severity": "", "status_label": "目标版本已修复"}, {"id": "CVE-2012-0866", "url": "https://www.postgresql.org/support/security/CVE-2012-0866/", "fixed": {"8.3": "8.3.18", "8.4": "8.4.11", "9.0": "9.0.7", "9.1": "9.1.3"}, "score": null, "title": "让 CREATE TRIGGER 要求对触发器函数有执行权限", "vector": "", "affected": {"8.3": "8.3", "8.4": "8.4", "9.0": "9.0", "9.1": "9.1"}, "component": "", "published": {}, "introduced": {}, "cvss_version": "", "description_en": "", "first_published": null, "fixed_version": "9.0.7", "severity": "", "status_label": "目标版本已修复"}, {"id": "CVE-2010-4015", "url": "https://www.postgresql.org/support/security/CVE-2010-4015/", "fixed": {"8.2": "8.2.20", "8.3": "8.3.14", "8.4": "8.4.7", "9.0": "9.0.3"}, "score": null, "title": "修复 contrib/intarray 的 query_int 类型输入函数中的缓冲区越界", "vector": "", "affected": {"8.2": "8.2", "8.3": "8.3", "8.4": "8.4", "9.0": "9.0"}, "component": "", "published": {}, "introduced": {}, "cvss_version": "", "description_en": "", "first_published": null, "fixed_version": "9.0.3", "severity": "", "status_label": "目标版本已修复"}, {"id": "CVE-2010-3433", "url": "https://www.postgresql.org/support/security/CVE-2010-3433/", "fixed": {"7.4": "7.4.30", "8.0": "8.0.26", "8.1": "8.1.22", "8.2": "8.2.18", "8.3": "8.3.12", "8.4": "8.4.5", "9.0": "9.0.1"}, "score": null, "title": "在 PL/Perl 和 PL/Tcl 中为每个调用方 SQL 用户 ID 使用单独的解释器", "vector": "", "affected": {"7.4": "7.4", "8.0": "8.0", "8.1": "8.1", "8.2": "8.2", "8.3": "8.3", "8.4": "8.4", "9.0": "9.0"}, "component": "", "published": {}, "introduced": {}, "cvss_version": "", "description_en": "", "first_published": null, "fixed_version": "9.0.1", "severity": "", "status_label": "目标版本已修复"}], "cve_available": true, "security_regressions": [], "remaining_cves": [{"id": "CVE-2026-6637", "url": "https://www.postgresql.org/support/security/CVE-2026-6637/", "fixed": {"14": "14.23", "15": "15.18", "16": "16.14", "17": "17.10", "18": "18.4"}, "score": 8.8, "title": "PostgreSQL refint allows stack buffer overflow and SQL injection", "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2026-6637", "affected": {"14": "14", "15": "15", "16": "16", "17": "17", "18": "18"}, "component": "contrib module", "published": {"14": "2026-05-14", "15": "2026-05-14", "16": "2026-05-14", "17": "2026-05-14", "18": "2026-05-14"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Stack buffer overflow in PostgreSQL module \"refint\" allows an unprivileged database user to execute arbitrary code as the operating system user running the database. A distinct attack is possible if the application declares a user-controlled column as a \"refint\" cascade primary key and facilitates user-controlled updates to that column. In that case, a SQL injection allows a primary key update value provider to execute arbitrary SQL as the database user performing the primary key update. Versions before PostgreSQL 18.4, 17.10, 16.14, 15.18, and 14.23 are affected.", "affected_ranges": [{"from": "0", "until": "14.23"}, {"from": "15", "until": "15.18"}, {"from": "16", "until": "16.14"}, {"from": "17", "until": "17.10"}, {"from": "18", "until": "18.4"}], "first_published": "2026-05-14", "fixed_version": "", "severity": "高危"}, {"id": "CVE-2026-6477", "url": "https://www.postgresql.org/support/security/CVE-2026-6477/", "fixed": {"14": "14.23", "15": "15.18", "16": "16.14", "17": "17.10", "18": "18.4"}, "score": 8.8, "title": "PostgreSQL libpq lo_* functions let server superuser overwrite client stack memory", "vector": "AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2026-6477", "affected": {"14": "14", "15": "15", "16": "16", "17": "17", "18": "18"}, "component": "client", "published": {"14": "2026-05-14", "15": "2026-05-14", "16": "2026-05-14", "17": "2026-05-14", "18": "2026-05-14"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Use of inherently dangerous function PQfn(..., result_is_int=0, ...) in PostgreSQL libpq lo_export(), lo_read(), lo_lseek64(), and lo_tell64() functions allows the server superuser to overwrite a client stack buffer with an arbitrarily-large response. Like gets(), PQfn(..., result_is_int=0, ...) stores arbitrary-length, server-determined data into a buffer of unspecified size. Because both the \\lo_export command in psql and pg_dump call lo_read(), the server superuser can overwrite pg_dump or psql stack memory. Versions before PostgreSQL 18.4, 17.10, 16.14, 15.18, and 14.23 are affected.", "affected_ranges": [{"from": "0", "until": "14.23"}, {"from": "15", "until": "15.18"}, {"from": "16", "until": "16.14"}, {"from": "17", "until": "17.10"}, {"from": "18", "until": "18.4"}], "first_published": "2026-05-14", "fixed_version": "", "severity": "高危"}, {"id": "CVE-2026-6475", "url": "https://www.postgresql.org/support/security/CVE-2026-6475/", "fixed": {"14": "14.23", "15": "15.18", "16": "16.14", "17": "17.10", "18": "18.4"}, "score": 8.8, "title": "PostgreSQL pg_basebackup and pg_rewind can overwrite unrelated files of origin superuser choice", "vector": "AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2026-6475", "affected": {"14": "14", "15": "15", "16": "16", "17": "17", "18": "18"}, "component": "client", "published": {"14": "2026-05-14", "15": "2026-05-14", "16": "2026-05-14", "17": "2026-05-14", "18": "2026-05-14"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Symlink following in PostgreSQL pg_basebackup plain format and in pg_rewind allows an origin superuser to overwrite local files, e.g. /var/lib/postgres/.bashrc, that hijack the operating system account. It will remain the case that starting the server after these commands implicitly trusts the origin superuser, due to features like shared_preload_libraries. Hence, the attack has practical implications only if one takes relevant action between these commands and server start, like moving the files to a different VM or snapshotting the VM. Versions before PostgreSQL 18.4, 17.10, 16.14, 15.18, and 14.23 are affected.", "affected_ranges": [{"from": "0", "until": "14.23"}, {"from": "15", "until": "15.18"}, {"from": "16", "until": "16.14"}, {"from": "17", "until": "17.10"}, {"from": "18", "until": "18.4"}], "first_published": "2026-05-14", "fixed_version": "", "severity": "高危"}, {"id": "CVE-2026-6473", "url": "https://www.postgresql.org/support/security/CVE-2026-6473/", "fixed": {"14": "14.23", "15": "15.18", "16": "16.14", "17": "17.10", "18": "18.4"}, "score": 8.8, "title": "PostgreSQL server undersizes allocations, via integer wraparound", "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2026-6473", "affected": {"14": "14", "15": "15", "16": "16", "17": "17", "18": "18"}, "component": "core server", "published": {"14": "2026-05-14", "15": "2026-05-14", "16": "2026-05-14", "17": "2026-05-14", "18": "2026-05-14"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Integer wraparound in multiple PostgreSQL server features allows an unprivileged database user to cause the server to undersize an allocation and write out-of-bounds. This may execute arbitrary code as the operating system user running the database. In applications that pass gigabyte-scale user inputs to the relevant database functions, the application input provider may achieve a segmentation fault. Versions before PostgreSQL 18.4, 17.10, 16.14, 15.18, and 14.23 are affected.", "affected_ranges": [{"from": "0", "until": "14.23"}, {"from": "15", "until": "15.18"}, {"from": "16", "until": "16.14"}, {"from": "17", "until": "17.10"}, {"from": "18", "until": "18.4"}], "first_published": "2026-05-14", "fixed_version": "", "severity": "高危"}, {"id": "CVE-2026-2006", "url": "https://www.postgresql.org/support/security/CVE-2026-2006/", "fixed": {"14": "14.21", "15": "15.16", "16": "16.12", "17": "17.8", "18": "18.2"}, "score": 8.8, "title": "PostgreSQL missing validation of multibyte character length executes arbitrary code", "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2026-2006", "affected": {"14": "14", "15": "15", "16": "16", "17": "17", "18": "18"}, "component": "core server", "published": {"14": "2026-02-12", "15": "2026-02-12", "16": "2026-02-12", "17": "2026-02-12", "18": "2026-02-12"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Missing validation of multibyte character length in PostgreSQL text manipulation allows a database user to issue crafted queries that achieve a buffer overrun. That suffices to execute arbitrary code as the operating system user running the database. Versions before PostgreSQL 18.2, 17.8, 16.12, 15.16, and 14.21 are affected.", "affected_ranges": [{"from": "0", "until": "14.21"}, {"from": "15", "until": "15.16"}, {"from": "16", "until": "16.12"}, {"from": "17", "until": "17.8"}, {"from": "18", "until": "18.2"}], "first_published": "2026-02-12", "fixed_version": "", "severity": "高危"}, {"id": "CVE-2026-2005", "url": "https://www.postgresql.org/support/security/CVE-2026-2005/", "fixed": {"14": "14.21", "15": "15.16", "16": "16.12", "17": "17.8", "18": "18.2"}, "score": 8.8, "title": "PostgreSQL pgcrypto heap buffer overflow executes arbitrary code", "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2026-2005", "affected": {"14": "14", "15": "15", "16": "16", "17": "17", "18": "18"}, "component": "contrib module", "published": {"14": "2026-02-12", "15": "2026-02-12", "16": "2026-02-12", "17": "2026-02-12", "18": "2026-02-12"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Heap buffer overflow in PostgreSQL pgcrypto allows a ciphertext provider to execute arbitrary code as the operating system user running the database. Versions before PostgreSQL 18.2, 17.8, 16.12, 15.16, and 14.21 are affected.", "affected_ranges": [{"from": "0", "until": "14.21"}, {"from": "15", "until": "15.16"}, {"from": "16", "until": "16.12"}, {"from": "17", "until": "17.8"}, {"from": "18", "until": "18.2"}], "first_published": "2026-02-12", "fixed_version": "", "severity": "高危"}, {"id": "CVE-2026-2004", "url": "https://www.postgresql.org/support/security/CVE-2026-2004/", "fixed": {"14": "14.21", "15": "15.16", "16": "16.12", "17": "17.8", "18": "18.2"}, "score": 8.8, "title": "PostgreSQL intarray missing validation of type of input to selectivity estimator executes arbitrary code", "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2026-2004", "affected": {"14": "14", "15": "15", "16": "16", "17": "17", "18": "18"}, "component": "contrib module", "published": {"14": "2026-02-12", "15": "2026-02-12", "16": "2026-02-12", "17": "2026-02-12", "18": "2026-02-12"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Missing validation of type of input in PostgreSQL intarray extension selectivity estimator function allows an object creator to execute arbitrary code as the operating system user running the database. Versions before PostgreSQL 18.2, 17.8, 16.12, 15.16, and 14.21 are affected.", "affected_ranges": [{"from": "0", "until": "14.21"}, {"from": "15", "until": "15.16"}, {"from": "16", "until": "16.12"}, {"from": "17", "until": "17.8"}, {"from": "18", "until": "18.2"}], "first_published": "2026-02-12", "fixed_version": "", "severity": "高危"}, {"id": "CVE-2026-19385", "url": "https://www.postgresql.org/support/security/CVE-2026-19385/", "fixed": {"14": "14.24", "15": "15.19", "16": "16.15", "17": "17.11", "18": "18.6"}, "score": 8.8, "title": "PostgreSQL pg_dump heap buffer overflow executes arbitrary code", "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2026-19385", "affected": {"14": "14", "15": "15", "16": "16", "17": "17", "18": "18"}, "component": "client", "published": {"14": "2026-08-13", "15": "2026-08-13", "16": "2026-08-13", "17": "2026-08-13", "18": "2026-08-13"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Heap buffer overflow in PostgreSQL pg_dump of long function transform lists allows an object creator to execute arbitrary code as the operating system user running pg_dump, via a crafted transform list. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.", "affected_ranges": [{"from": "0", "until": "14.24"}, {"from": "15", "until": "15.19"}, {"from": "16", "until": "16.15"}, {"from": "17", "until": "17.11"}, {"from": "18", "until": "18.6"}], "first_published": "2026-08-13", "fixed_version": "", "severity": "高危"}, {"id": "CVE-2026-18408", "url": "https://www.postgresql.org/support/security/CVE-2026-18408/", "fixed": {"14": "14.24", "15": "15.19", "16": "16.15", "17": "17.11", "18": "18.6"}, "score": 8.8, "title": "PostgreSQL psql \\unrestrict lets superuser of pg_dump origin server execute arbitrary code in psql client", "vector": "AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2026-18408", "affected": {"14": "14", "15": "15", "16": "16", "17": "17", "18": "18"}, "component": "client", "published": {"14": "2026-08-13", "15": "2026-08-13", "16": "2026-08-13", "17": "2026-08-13", "18": "2026-08-13"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Untrusted data inclusion in pg_dump in PostgreSQL allows a malicious superuser of the origin server to inject arbitrary code for restore-time execution as the client operating system account running psql to restore the dump, via psql \\restrict meta-command input expansion. The fix for CVE-2025-8714 introduced \\restrict and \\unrestrict to block this attack, but \\unrestrict itself was sufficient for an attack. pg_dumpall is also affected. pg_restore is affected when used to generate a plain-format dump. Non-core use of \\restrict would be affected, but we've not identified non-core use. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.", "affected_ranges": [{"from": "0", "until": "14.24"}, {"from": "15", "until": "15.19"}, {"from": "16", "until": "16.15"}, {"from": "17", "until": "17.11"}, {"from": "18", "until": "18.6"}], "first_published": "2026-08-13", "fixed_version": "", "severity": "高危"}, {"id": "CVE-2026-16239", "url": "https://www.postgresql.org/support/security/CVE-2026-16239/", "fixed": {"14": "14.24", "15": "15.19", "16": "16.15", "17": "17.11", "18": "18.6"}, "score": 8.8, "title": "PostgreSQL type confusion in cursor CLOSE + DECLARE executes arbitrary code", "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2026-16239", "affected": {"14": "14", "15": "15", "16": "16", "17": "17", "18": "18"}, "component": "core server", "published": {"14": "2026-08-13", "15": "2026-08-13", "16": "2026-08-13", "17": "2026-08-13", "18": "2026-08-13"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Type confusion in PostgreSQL \"portal\"/cursor lifecycle allows a user to execute arbitrary code as the operating system user running the database, via re-creation of a cursor or other portal with different types. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.", "affected_ranges": [{"from": "0", "until": "14.24"}, {"from": "15", "until": "15.19"}, {"from": "16", "until": "16.15"}, {"from": "17", "until": "17.11"}, {"from": "18", "until": "18.6"}], "first_published": "2026-08-13", "fixed_version": "", "severity": "高危"}, {"id": "CVE-2026-15742", "url": "https://www.postgresql.org/support/security/CVE-2026-15742/", "fixed": {"14": "14.24", "15": "15.19", "16": "16.15", "17": "17.11", "18": "18.6"}, "score": 8.8, "title": "PostgreSQL fuzzystrmatch writes effectively-arbitrary addresses, via integer wraparound", "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2026-15742", "affected": {"14": "14", "15": "15", "16": "16", "17": "17", "18": "18"}, "component": "contrib module", "published": {"14": "2026-08-13", "15": "2026-08-13", "16": "2026-08-13", "17": "2026-08-13", "18": "2026-08-13"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Integer wraparound in PostgreSQL fuzzystrmatch allows a user to direct writes to a huge range of addresses, executing arbitrary code as the operating system user running the database, via extreme inputs to SQL function levenshtein() or levenshtein_less_equal(). Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.", "affected_ranges": [{"from": "0", "until": "14.24"}, {"from": "15", "until": "15.19"}, {"from": "16", "until": "16.15"}, {"from": "17", "until": "17.11"}, {"from": "18", "until": "18.6"}], "first_published": "2026-08-13", "fixed_version": "", "severity": "高危"}, {"id": "CVE-2026-15741", "url": "https://www.postgresql.org/support/security/CVE-2026-15741/", "fixed": {"14": "14.24", "15": "15.19", "16": "16.15", "17": "17.11", "18": "18.6"}, "score": 8.8, "title": "PostgreSQL expression deparse allows SQL injection via EXTRACT argument", "vector": "AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2026-15741", "affected": {"14": "14", "15": "15", "16": "16", "17": "17", "18": "18"}, "component": "core server", "published": {"14": "2026-08-13", "15": "2026-08-13", "16": "2026-08-13", "17": "2026-08-13", "18": "2026-08-13"}, "introduced": {}, "cvss_version": "3.0", "description_en": "SQL injection in PostgreSQL EXTRACT() deparse allows an object owner to execute arbitrary SQL as a superuser via a hostile object definition. Attacks affect expression deparse consumers broadly, including pg_dump, psql commands like \\sf, and any similar usage in non-core tools. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.", "affected_ranges": [{"from": "0", "until": "14.24"}, {"from": "15", "until": "15.19"}, {"from": "16", "until": "16.15"}, {"from": "17", "until": "17.11"}, {"from": "18", "until": "18.6"}], "first_published": "2026-08-13", "fixed_version": "", "severity": "高危"}, {"id": "CVE-2026-14680", "url": "https://www.postgresql.org/support/security/CVE-2026-14680/", "fixed": {"14": "14.24", "15": "15.19", "16": "16.15", "17": "17.11", "18": "18.6"}, "score": 8.8, "title": "PostgreSQL type confusion via \"internal\" arguments", "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2026-14680", "affected": {"14": "14", "15": "15", "16": "16", "17": "17", "18": "18"}, "component": "core server", "published": {"14": "2026-08-13", "15": "2026-08-13", "16": "2026-08-13", "17": "2026-08-13", "18": "2026-08-13"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Type confusion with PostgreSQL \"internal\" data type arguments allows any user to execute arbitrary code as the operating system user running the database, via calls to functions with that argument type. Type \"internal\" represents a class of mutually-incompatible data structures not intended for access from SQL. The system intended to prevent such function calls, but this prevention had gaps. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.", "affected_ranges": [{"from": "0", "until": "14.24"}, {"from": "15", "until": "15.19"}, {"from": "16", "until": "16.15"}, {"from": "17", "until": "17.11"}, {"from": "18", "until": "18.6"}], "first_published": "2026-08-13", "fixed_version": "", "severity": "高危"}, {"id": "CVE-2026-14677", "url": "https://www.postgresql.org/support/security/CVE-2026-14677/", "fixed": {"14": "14.24", "15": "15.19", "16": "16.15", "17": "17.11", "18": "18.6"}, "score": 8.8, "title": "PostgreSQL 32-bit pltcl and plperl undersize allocations, via integer wraparound", "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2026-14677", "affected": {"14": "14", "15": "15", "16": "16", "17": "17", "18": "18"}, "component": "core server", "published": {"14": "2026-08-13", "15": "2026-08-13", "16": "2026-08-13", "17": "2026-08-13", "18": "2026-08-13"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Integer wraparound in PostgreSQL 32-bit builds of pltcl and plperl allows an object creator to cause the server to undersize an allocation and write out-of-bounds via crafted function bodies. This may execute arbitrary code as the operating system user running the database. CVE-2026-6473 had fixed similar problems. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.", "affected_ranges": [{"from": "0", "until": "14.24"}, {"from": "15", "until": "15.19"}, {"from": "16", "until": "16.15"}, {"from": "17", "until": "17.11"}, {"from": "18", "until": "18.6"}], "first_published": "2026-08-13", "fixed_version": "", "severity": "高危"}, {"id": "CVE-2026-14671", "url": "https://www.postgresql.org/support/security/CVE-2026-14671/", "fixed": {"14": "14.24", "15": "15.19", "16": "16.15", "17": "17.11", "18": "18.6"}, "score": 8.8, "title": "PostgreSQL refint plan cache type confusion executes arbitrary code", "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2026-14671", "affected": {"14": "14", "15": "15", "16": "16", "17": "17", "18": "18"}, "component": "contrib module", "published": {"14": "2026-08-13", "15": "2026-08-13", "16": "2026-08-13", "17": "2026-08-13", "18": "2026-08-13"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Type confusion in PostgreSQL module \"refint\" allows an object creator to execute arbitrary code as the operating system user running the database. The fix for this emerged as a non-security bug report, and the fix appear in the git repository with subject \"refint: Remove plan cache.\", without a CVE number. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.", "affected_ranges": [{"from": "0", "until": "14.24"}, {"from": "15", "until": "15.19"}, {"from": "16", "until": "16.15"}, {"from": "17", "until": "17.11"}, {"from": "18", "until": "18.6"}], "first_published": "2026-08-13", "fixed_version": "", "severity": "高危"}, {"id": "CVE-2026-14670", "url": "https://www.postgresql.org/support/security/CVE-2026-14670/", "fixed": {"14": "14.24", "15": "15.19", "16": "16.15", "17": "17.11", "18": "18.6"}, "score": 8.8, "title": "PostgreSQL plperl tied object heap buffer overflow executes arbitrary code", "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2026-14670", "affected": {"14": "14", "15": "15", "16": "16", "17": "17", "18": "18"}, "component": "core server", "published": {"14": "2026-08-13", "15": "2026-08-13", "16": "2026-08-13", "17": "2026-08-13", "18": "2026-08-13"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Heap buffer overflow in PostgreSQL plperl return of a tied hash allows the function owner to execute arbitrary code as the operating system user running the database, via a crafted function body. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.", "affected_ranges": [{"from": "0", "until": "14.24"}, {"from": "15", "until": "15.19"}, {"from": "16", "until": "16.15"}, {"from": "17", "until": "17.11"}, {"from": "18", "until": "18.6"}], "first_published": "2026-08-13", "fixed_version": "", "severity": "高危"}, {"id": "CVE-2026-14669", "url": "https://www.postgresql.org/support/security/CVE-2026-14669/", "fixed": {"14": "14.24", "15": "15.19", "16": "16.15", "17": "17.11", "18": "18.6"}, "score": 8.8, "title": "PostgreSQL to_char heap buffer overflow executes arbitrary code", "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2026-14669", "affected": {"14": "14", "15": "15", "16": "16", "17": "17", "18": "18"}, "component": "core server", "published": {"14": "2026-08-13", "15": "2026-08-13", "16": "2026-08-13", "17": "2026-08-13", "18": "2026-08-13"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Heap buffer overflow in PostgreSQL to_char(timestamptz) allows the party choosing the timezone to execute arbitrary code as the operating system user running the database, via a long POSIX timezone abbreviation. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.", "affected_ranges": [{"from": "0", "until": "14.24"}, {"from": "15", "until": "15.19"}, {"from": "16", "until": "16.15"}, {"from": "17", "until": "17.11"}, {"from": "18", "until": "18.6"}], "first_published": "2026-08-13", "fixed_version": "", "severity": "高危"}, {"id": "CVE-2026-14664", "url": "https://www.postgresql.org/support/security/CVE-2026-14664/", "fixed": {"14": "14.24", "15": "15.19", "16": "16.15", "17": "17.11", "18": "18.6"}, "score": 8.8, "title": "PostgreSQL regexp heap buffer overflow executes arbitrary code", "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2026-14664", "affected": {"14": "14", "15": "15", "16": "16", "17": "17", "18": "18"}, "component": "core server", "published": {"14": "2026-08-13", "15": "2026-08-13", "16": "2026-08-13", "17": "2026-08-13", "18": "2026-08-13"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Heap buffer overflow in PostgreSQL regexp allows the query author to execute arbitrary code as the operating system user running the database, via text that would not pass encoding validation. This shares heritage with CVE-2026-2006, but this case involved unanticipated data growth when round-tripped through pg_wchar. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.", "affected_ranges": [{"from": "0", "until": "14.24"}, {"from": "15", "until": "15.19"}, {"from": "16", "until": "16.15"}, {"from": "17", "until": "17.11"}, {"from": "18", "until": "18.6"}], "first_published": "2026-08-13", "fixed_version": "", "severity": "高危"}, {"id": "CVE-2026-14662", "url": "https://www.postgresql.org/support/security/CVE-2026-14662/", "fixed": {"14": "14.24", "15": "15.19", "16": "16.15", "17": "17.11", "18": "18.6"}, "score": 8.8, "title": "PostgreSQL tsvector and tsquery undersize allocations, via integer wraparound", "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2026-14662", "affected": {"14": "14", "15": "15", "16": "16", "17": "17", "18": "18"}, "component": "core server", "published": {"14": "2026-08-13", "15": "2026-08-13", "16": "2026-08-13", "17": "2026-08-13", "18": "2026-08-13"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Integer wraparound in PostgreSQL tsvector and tsquery data type functions allows an unprivileged database user to cause the server to undersize an allocation and write out-of-bounds, via crafted large inputs. This may execute arbitrary code as the operating system user running the database. These types are typically sourced from application logic, not taken from the application's user. Hence, application users attacking the database, through the application as a conduit, are unlikely. CVE-2026-6473 had fixed similar problems. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.", "affected_ranges": [{"from": "0", "until": "14.24"}, {"from": "15", "until": "15.19"}, {"from": "16", "until": "16.15"}, {"from": "17", "until": "17.11"}, {"from": "18", "until": "18.6"}], "first_published": "2026-08-13", "fixed_version": "", "severity": "高危"}, {"id": "CVE-2025-8714", "url": "https://www.postgresql.org/support/security/CVE-2025-8714/", "fixed": {"13": "13.22", "14": "14.19", "15": "15.14", "16": "16.10", "17": "17.6"}, "score": 8.8, "title": "PostgreSQL pg_dump lets superuser of origin server execute arbitrary code in psql client", "vector": "AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2025-8714", "affected": {"13": "13", "14": "14", "15": "15", "16": "16", "17": "17"}, "component": "core server", "published": {"13": "2025-08-14", "14": "2025-08-14", "15": "2025-08-14", "16": "2025-08-14", "17": "2025-08-14"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Untrusted data inclusion in pg_dump in PostgreSQL allows a malicious superuser of the origin server to inject arbitrary code for restore-time execution as the client operating system account running psql to restore the dump, via psql meta-commands. pg_dumpall is also affected. pg_restore is affected when used to generate a plain-format dump. This is similar to MySQL CVE-2024-21096. Versions before PostgreSQL 17.6, 16.10, 15.14, 14.19, and 13.22 are affected.", "affected_ranges": [{"from": "0", "until": "13.22"}, {"from": "14", "until": "14.19"}, {"from": "15", "until": "15.14"}, {"from": "16", "until": "16.10"}, {"from": "17", "until": "17.6"}], "first_published": "2025-08-14", "fixed_version": "", "severity": "高危"}, {"id": "CVE-2024-7348", "url": "https://www.postgresql.org/support/security/CVE-2024-7348/", "fixed": {"12": "12.20", "13": "13.16", "14": "14.13", "15": "15.8", "16": "16.4"}, "score": 8.8, "title": "PostgreSQL relation replacement during pg_dump executes arbitrary SQL", "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2024-7348", "affected": {"12": "12", "13": "13", "14": "14", "15": "15", "16": "16"}, "component": "core server", "published": {"12": "2024-08-08", "13": "2024-08-08", "14": "2024-08-08", "15": "2024-08-08", "16": "2024-08-08"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Time-of-check Time-of-use (TOCTOU) race condition in pg_dump in PostgreSQL allows an object creator to execute arbitrary SQL functions as the user running pg_dump, which is often a superuser. The attack involves replacing another relation type with a view or foreign table. The attack requires waiting for pg_dump to start, but winning the race condition is trivial if the attacker retains an open transaction. Versions before PostgreSQL 16.4, 15.8, 14.13, 13.16, and 12.20 are affected.\n\nThe PostgreSQL project thanks Noah Misch for reporting this problem.", "affected_ranges": [{"from": "0", "until": "12.20"}, {"from": "13", "until": "13.16"}, {"from": "14", "until": "14.13"}, {"from": "15", "until": "15.8"}, {"from": "16", "until": "16.4"}], "first_published": "2024-08-08", "fixed_version": "", "severity": "高危"}, {"id": "CVE-2024-10979", "url": "https://www.postgresql.org/support/security/CVE-2024-10979/", "fixed": {"12": "12.21", "13": "13.17", "14": "14.14", "15": "15.9", "16": "16.5", "17": "17.1"}, "score": 8.8, "title": "PostgreSQL PL/Perl environment variable changes execute arbitrary code", "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2024-10979", "affected": {"12": "12", "13": "13", "14": "14", "15": "15", "16": "16", "17": "17"}, "component": "core server", "published": {"12": "2024-11-14", "13": "2024-11-14", "14": "2024-11-14", "15": "2024-11-14", "16": "2024-11-14", "17": "2024-11-14"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Incorrect control of environment variables in PostgreSQL PL/Perl allows an unprivileged database user to change sensitive process environment variables (e.g. PATH ). That often suffices to enable arbitrary code execution, even if the attacker lacks a database server operating system user. Versions before PostgreSQL 17.1, 16.5, 15.9, 14.14, 13.17, and 12.21 are affected.\n\nThe PostgreSQL project thanks Coby Abrams for reporting this problem.", "affected_ranges": [{"from": "0", "until": "12.21"}, {"from": "13", "until": "13.17"}, {"from": "14", "until": "14.14"}, {"from": "15", "until": "15.9"}, {"from": "16", "until": "16.5"}, {"from": "17", "until": "17.1"}], "first_published": "2024-11-14", "fixed_version": "", "severity": "高危"}, {"id": "CVE-2026-14679", "url": "https://www.postgresql.org/support/security/CVE-2026-14679/", "fixed": {"14": "14.24", "15": "15.19", "16": "16.15", "17": "17.11", "18": "18.6"}, "score": 8.2, "title": "PostgreSQL stack buffer overflow in argument match writes 0x0 and 0x1 to server memory", "vector": "AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:H", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2026-14679", "affected": {"14": "14", "15": "15", "16": "16", "17": "17", "18": "18"}, "component": "core server", "published": {"14": "2026-08-13", "15": "2026-08-13", "16": "2026-08-13", "17": "2026-08-13", "18": "2026-08-13"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Stack buffer overflow in PostgreSQL argument name matching allows an object creator to achieve unknown impacts via OUT parameter count. The attack can write only 0x0 and 0x1 bytes. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.", "affected_ranges": [{"from": "0", "until": "14.24"}, {"from": "15", "until": "15.19"}, {"from": "16", "until": "16.15"}, {"from": "17", "until": "17.11"}, {"from": "18", "until": "18.6"}], "first_published": "2026-08-13", "fixed_version": "", "severity": "高危"}, {"id": "CVE-2026-6464", "url": "https://www.postgresql.org/support/security/CVE-2026-6464/", "fixed": {"14": "14.24", "15": "15.19", "16": "16.15", "17": "17.11", "18": "18.6"}, "score": 8.1, "title": "PostgreSQL psql COPY FROM STDIN early failure processes data lines as psql commands", "vector": "AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2026-6464", "affected": {"14": "14", "15": "15", "16": "16", "17": "17", "18": "18"}, "component": "client", "published": {"14": "2026-08-13", "15": "2026-08-13", "16": "2026-08-13", "17": "2026-08-13", "18": "2026-08-13"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Untrusted data inclusion in PostgreSQL psql COPY may allow a server administrator to elicit execution of data lines as psql commands, via error injection. If the \"COPY FROM STDIN\" or \"\\copy FROM STDIN\" command fails before the server indicates that it awaits input rows, psql processes the in-line data rows as psql commands. \"COPY FROM\" with a filename is unaffected. The server administrator has no inherent control over the data rows, so a complete attack requires the attacker to separately acquire control of both the server and the data rows. Alternatively, an attacker controlling data rows alone might complete an attack through a coincidental error that they don't control. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.", "affected_ranges": [{"from": "0", "until": "14.24"}, {"from": "15", "until": "15.19"}, {"from": "16", "until": "16.15"}, {"from": "17", "until": "17.11"}, {"from": "18", "until": "18.6"}], "first_published": "2026-08-13", "fixed_version": "", "severity": "高危"}, {"id": "CVE-2026-14668", "url": "https://www.postgresql.org/support/security/CVE-2026-14668/", "fixed": {"14": "14.24", "15": "15.19", "16": "16.15", "17": "17.11", "18": "18.6"}, "score": 8.1, "title": "PostgreSQL ctid type confusion in selectivity estimator discloses derivative of arbitrary read", "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:H", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2026-14668", "affected": {"14": "14", "15": "15", "16": "16", "17": "17", "18": "18"}, "component": "core server", "published": {"14": "2026-08-13", "15": "2026-08-13", "16": "2026-08-13", "17": "2026-08-13", "18": "2026-08-13"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Type confusion regarding input of PostgreSQL ctid data type selectivity estimator allows an object creator to view a calculation derived from the value of an arbitrary 4-byte span of memory, via a chosen non-ctid input. While the calculation loses precision, substantial memory value recovery appears possible. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.", "affected_ranges": [{"from": "0", "until": "14.24"}, {"from": "15", "until": "15.19"}, {"from": "16", "until": "16.15"}, {"from": "17", "until": "17.11"}, {"from": "18", "until": "18.6"}], "first_published": "2026-08-13", "fixed_version": "", "severity": "高危"}, {"id": "CVE-2025-1094", "url": "https://www.postgresql.org/support/security/CVE-2025-1094/", "fixed": {"13": "13.19", "14": "14.16", "15": "15.11", "16": "16.7", "17": "17.3"}, "score": 8.1, "title": "PostgreSQL quoting APIs miss neutralizing quoting syntax in text that fails encoding validation", "vector": "AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2025-1094", "affected": {"13": "13", "14": "14", "15": "15", "16": "16", "17": "17"}, "component": "core server", "published": {"13": "2025-02-13", "14": "2025-02-13", "15": "2025-02-13", "16": "2025-02-13", "17": "2025-02-13"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Improper neutralization of quoting syntax in PostgreSQL libpq functions PQescapeLiteral(), PQescapeIdentifier(), PQescapeString(), and PQescapeStringConn() allows a database input provider to achieve SQL injection in certain usage patterns. Specifically, SQL injection requires the application to use the function result to construct input to psql, the PostgreSQL interactive terminal. Similarly, improper neutralization of quoting syntax in PostgreSQL command line utility programs allows a source of command line arguments to achieve SQL injection when client_encoding is BIG5 and server_encoding is one of EUC_TW or MULE_INTERNAL. Versions before PostgreSQL 17.3, 16.7, 15.11, 14.16, and 13.19 are affected.", "affected_ranges": [{"from": "0", "until": "13.19"}, {"from": "14", "until": "14.16"}, {"from": "15", "until": "15.11"}, {"from": "16", "until": "16.7"}, {"from": "17", "until": "17.3"}], "first_published": "2025-02-13", "fixed_version": "", "severity": "高危"}, {"id": "CVE-2024-0985", "url": "https://www.postgresql.org/support/security/CVE-2024-0985/", "fixed": {"12": "12.18", "13": "13.14", "14": "14.11", "15": "15.6", "16": "16.2"}, "score": 8.0, "title": "PostgreSQL non-owner REFRESH MATERIALIZED VIEW CONCURRENTLY executes arbitrary SQL", "vector": "AV:N/AC:L/PR:L/UI:R/S:U/C:H/I:H/A:H", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2024-0985", "affected": {"12": "12", "13": "13", "14": "14", "15": "15", "16": "16"}, "component": "core server", "published": {"12": "2024-02-08", "13": "2024-02-08", "14": "2024-02-08", "15": "2024-02-08", "16": "2024-02-08"}, "introduced": {}, "cvss_version": "3.0", "description_en": "UPDATE (June 19, 2024) : Added v16 as impacted. Updated description to clarify the attack vector.\n\nLate privilege drop in REFRESH MATERIALIZED VIEW CONCURRENTLY in PostgreSQL allows an object creator to execute arbitrary SQL functions as the command issuer. The command intends to run SQL functions as the owner of the materialized view, enabling safe refresh of untrusted materialized views. The victim is a superuser or member of one of the attacker's roles. The attack requires luring the victim into running REFRESH MATERIALIZED VIEW CONCURRENTLY on the attacker's materialized view.", "affected_ranges": [{"from": "0", "until": "12.18"}, {"from": "13", "until": "13.14"}, {"from": "14", "until": "14.11"}, {"from": "15", "until": "15.6"}, {"from": "16", "until": "16.2"}], "first_published": "2024-02-08", "fixed_version": "", "severity": "高危"}, {"id": "CVE-2026-6479", "url": "https://www.postgresql.org/support/security/CVE-2026-6479/", "fixed": {"14": "14.23", "15": "15.18", "16": "16.14", "17": "17.10", "18": "18.4"}, "score": 7.5, "title": "PostgreSQL SSL/GSS init causes denial of service, via uncontrolled recursion", "vector": "AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2026-6479", "affected": {"14": "14", "15": "15", "16": "16", "17": "17", "18": "18"}, "component": "core server", "published": {"14": "2026-05-14", "15": "2026-05-14", "16": "2026-05-14", "17": "2026-05-14", "18": "2026-05-14"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Uncontrolled recursion in PostgreSQL SSL and GSS negotiation allows an attacker able to connect to a PostgreSQL AF_UNIX socket to achieve sustained denial of service. If SSL and GSS are both disabled, an attacker can do the same via access to a PostgreSQL TCP socket. Versions before PostgreSQL 18.4, 17.10, 16.14, 15.18, and 14.23 are affected.", "affected_ranges": [{"from": "0", "until": "14.23"}, {"from": "15", "until": "15.18"}, {"from": "16", "until": "16.14"}, {"from": "17", "until": "17.10"}, {"from": "18", "until": "18.4"}], "first_published": "2026-05-14", "fixed_version": "", "severity": "高危"}, {"id": "CVE-2026-6471", "url": "https://www.postgresql.org/support/security/CVE-2026-6471/", "fixed": {"14": "14.24", "15": "15.19", "16": "16.15", "17": "17.11", "18": "18.6"}, "score": 7.2, "title": "PostgreSQL logical decoding can dlopen arbitrary file", "vector": "AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2026-6471", "affected": {"14": "14", "15": "15", "16": "16", "17": "17", "18": "18"}, "component": "core server", "published": {"14": "2026-08-13", "15": "2026-08-13", "16": "2026-08-13", "17": "2026-08-13", "18": "2026-08-13"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Missing authorization in PostgreSQL logical decoding allows a non-superuser holding REPLICATION privilege to dlopen any file visible to the operating system account running the server, via the choice of logical decoding plugin. This in turn runs arbitrary code as that account. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.", "affected_ranges": [{"from": "0", "until": "14.24"}, {"from": "15", "until": "15.19"}, {"from": "16", "until": "16.15"}, {"from": "17", "until": "17.11"}, {"from": "18", "until": "18.6"}], "first_published": "2026-08-13", "fixed_version": "", "severity": "高危"}, {"id": "CVE-2026-6478", "url": "https://www.postgresql.org/support/security/CVE-2026-6478/", "fixed": {"14": "14.23", "15": "15.18", "16": "16.14", "17": "17.10", "18": "18.4"}, "score": 6.5, "title": "PostgreSQL discloses MD5-hashed passwords via covert timing channel", "vector": "AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2026-6478", "affected": {"14": "14", "15": "15", "16": "16", "17": "17", "18": "18"}, "component": "core server", "published": {"14": "2026-05-14", "15": "2026-05-14", "16": "2026-05-14", "17": "2026-05-14", "18": "2026-05-14"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Covert timing channel in comparison of MD5-hashed password in PostgreSQL authentication allows an attacker to recover user credentials sufficient to authenticate. This does not affect scram-sha-256 passwords, the default in all supported releases. However, current databases may have MD5-hashed passwords originating in upgrades from PostgreSQL 13 or earlier. Versions before PostgreSQL 18.4, 17.10, 16.14, 15.18, and 14.23 are affected.", "affected_ranges": [{"from": "0", "until": "14.23"}, {"from": "15", "until": "15.18"}, {"from": "16", "until": "16.14"}, {"from": "17", "until": "17.10"}, {"from": "18", "until": "18.4"}], "first_published": "2026-05-14", "fixed_version": "", "severity": "中危"}, {"id": "CVE-2026-14663", "url": "https://www.postgresql.org/support/security/CVE-2026-14663/", "fixed": {"14": "14.24", "15": "15.19", "16": "16.15", "17": "17.11", "18": "18.6"}, "score": 6.5, "title": "PostgreSQL pgcrypto, for OpenSSL-disabled ciphers, silently encrypts to and decrypts from cleartext", "vector": "AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2026-14663", "affected": {"14": "14", "15": "15", "16": "16", "17": "17", "18": "18"}, "component": "contrib module", "published": {"14": "2026-08-13", "15": "2026-08-13", "16": "2026-08-13", "17": "2026-08-13", "18": "2026-08-13"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Cleartext storage in PostgreSQL pgcrypto disabled ciphers allows a user to recover cleartext, via direct observation of the faulty ciphertext. The OpenSSL version and OpenSSL configuration determine the disabled ciphers. If the application accepts encrypted data as input, decryption will succeed even with the wrong key. This in turn loses the modest protection from the Modification Detection Code (MDC). Affected functions are pgp_sym_encrypt, pgp_sym_decrypt, pgp_pub_encrypt, pgp_pub_decrypt, pgp_sym_encrypt_bytea, pgp_sym_decrypt_bytea, pgp_pub_encrypt_bytea, and pgp_pub_decrypt_bytea. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.", "affected_ranges": [{"from": "0", "until": "14.24"}, {"from": "15", "until": "15.19"}, {"from": "16", "until": "16.15"}, {"from": "17", "until": "17.11"}, {"from": "18", "until": "18.6"}], "first_published": "2026-08-13", "fixed_version": "", "severity": "中危"}, {"id": "CVE-2025-4207", "url": "https://www.postgresql.org/support/security/CVE-2025-4207/", "fixed": {"13": "13.21", "14": "14.18", "15": "15.13", "16": "16.9", "17": "17.5"}, "score": 5.9, "title": "PostgreSQL GB18030 encoding validation can read one byte past end of allocation for text that fails validation", "vector": "AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2025-4207", "affected": {"13": "13", "14": "14", "15": "15", "16": "16", "17": "17"}, "component": "core server", "published": {"13": "2025-05-08", "14": "2025-05-08", "15": "2025-05-08", "16": "2025-05-08", "17": "2025-05-08"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Buffer over-read in PostgreSQL GB18030 encoding validation allows a database input provider to achieve temporary denial of service on platforms where a 1-byte over-read can elicit process termination. This affects the database server and also libpq. Versions before PostgreSQL 17.5, 16.9, 15.13, 14.18, and 13.21 are affected.", "affected_ranges": [{"from": "0", "until": "13.21"}, {"from": "14", "until": "14.18"}, {"from": "15", "until": "15.13"}, {"from": "16", "until": "16.9"}, {"from": "17", "until": "17.5"}], "first_published": "2025-05-08", "fixed_version": "", "severity": "中危"}, {"id": "CVE-2025-12818", "url": "https://www.postgresql.org/support/security/CVE-2025-12818/", "fixed": {"13": "13.23", "14": "14.20", "15": "15.15", "16": "16.11", "17": "17.7", "18": "18.1"}, "score": 5.9, "title": "PostgreSQL libpq undersizes allocations, via integer wraparound", "vector": "AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2025-12818", "affected": {"13": "13", "14": "14", "15": "15", "16": "16", "17": "17", "18": "18"}, "component": "core server", "published": {"13": "2025-11-13", "14": "2025-11-13", "15": "2025-11-13", "16": "2025-11-13", "17": "2025-11-13", "18": "2025-11-13"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Integer wraparound in multiple PostgreSQL libpq client library functions allows an application input provider or network peer to cause libpq to undersize an allocation and write out-of-bounds by hundreds of megabytes. This results in a segmentation fault for the application using libpq. Versions before PostgreSQL 18.1, 17.7, 16.11, 15.15, 14.20, and 13.23 are affected.", "affected_ranges": [{"from": "0", "until": "13.23"}, {"from": "14", "until": "14.20"}, {"from": "15", "until": "15.15"}, {"from": "16", "until": "16.11"}, {"from": "17", "until": "17.7"}, {"from": "18", "until": "18.1"}], "first_published": "2025-11-13", "fixed_version": "", "severity": "中危"}, {"id": "CVE-2026-6472", "url": "https://www.postgresql.org/support/security/CVE-2026-6472/", "fixed": {"14": "14.23", "15": "15.18", "16": "16.14", "17": "17.10", "18": "18.4"}, "score": 5.4, "title": "PostgreSQL CREATE TYPE does not check multirange schema CREATE privilege", "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:N", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2026-6472", "affected": {"14": "14", "15": "15", "16": "16", "17": "17", "18": "18"}, "component": "core server", "published": {"14": "2026-05-14", "15": "2026-05-14", "16": "2026-05-14", "17": "2026-05-14", "18": "2026-05-14"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Missing authorization in PostgreSQL CREATE TYPE allows an object creator to hijack other queries that use search_path to find user-defined types, including extension-defined types. That is to say, the victim will execute arbitrary SQL functions of the attacker's choice. Versions before PostgreSQL 18.4, 17.10, 16.14, 15.18, and 14.23 are affected.", "affected_ranges": [{"from": "0", "until": "14.23"}, {"from": "15", "until": "15.18"}, {"from": "16", "until": "16.14"}, {"from": "17", "until": "17.10"}, {"from": "18", "until": "18.4"}], "first_published": "2026-05-14", "fixed_version": "", "severity": "中危"}, {"id": "CVE-2026-6474", "url": "https://www.postgresql.org/support/security/CVE-2026-6474/", "fixed": {"14": "14.23", "15": "15.18", "16": "16.14", "17": "17.10", "18": "18.4"}, "score": 4.3, "title": "PostgreSQL timeofday() can disclose portions of server memory", "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2026-6474", "affected": {"14": "14", "15": "15", "16": "16", "17": "17", "18": "18"}, "component": "core server", "published": {"14": "2026-05-14", "15": "2026-05-14", "16": "2026-05-14", "17": "2026-05-14", "18": "2026-05-14"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Externally-controlled format string in PostgreSQL timeofday() function allows an attacker to retrieve portions of server memory, via crafted timezone zones. Versions before PostgreSQL 18.4, 17.10, 16.14, 15.18, and 14.23 are affected.", "affected_ranges": [{"from": "0", "until": "14.23"}, {"from": "15", "until": "15.18"}, {"from": "16", "until": "16.14"}, {"from": "17", "until": "17.10"}, {"from": "18", "until": "18.4"}], "first_published": "2026-05-14", "fixed_version": "", "severity": "中危"}, {"id": "CVE-2026-6470", "url": "https://www.postgresql.org/support/security/CVE-2026-6470/", "fixed": {"14": "14.24", "15": "15.19", "16": "16.15", "17": "17.11", "18": "18.6"}, "score": 4.3, "title": "PostgreSQL fails to check type USAGE privilege", "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:L", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2026-6470", "affected": {"14": "14", "15": "15", "16": "16", "17": "17", "18": "18"}, "component": "core server", "published": {"14": "2026-08-13", "15": "2026-08-13", "16": "2026-08-13", "17": "2026-08-13", "18": "2026-08-13"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Missing authorization in PostgreSQL DDL commands allows an object creator to achieve denial of service against ALTER and DROP of the type, via creating a dependency on the type. Many DDL operations did check the privilege, but assigning a range subtype and referencing the type from an SQL expression did not. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.", "affected_ranges": [{"from": "0", "until": "14.24"}, {"from": "15", "until": "15.19"}, {"from": "16", "until": "16.15"}, {"from": "17", "until": "17.11"}, {"from": "18", "until": "18.6"}], "first_published": "2026-08-13", "fixed_version": "", "severity": "中危"}, {"id": "CVE-2026-2003", "url": "https://www.postgresql.org/support/security/CVE-2026-2003/", "fixed": {"14": "14.21", "15": "15.16", "16": "16.12", "17": "17.8", "18": "18.2"}, "score": 4.3, "title": "PostgreSQL oidvector discloses a few bytes of memory", "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2026-2003", "affected": {"14": "14", "15": "15", "16": "16", "17": "17", "18": "18"}, "component": "core server", "published": {"14": "2026-02-12", "15": "2026-02-12", "16": "2026-02-12", "17": "2026-02-12", "18": "2026-02-12"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Improper validation of type \"oidvector\" in PostgreSQL allows a database user to disclose a few bytes of server memory. We have not ruled out viability of attacks that arrange for presence of confidential information in disclosed bytes, but they seem unlikely. Versions before PostgreSQL 18.2, 17.8, 16.12, 15.16, and 14.21 are affected.", "affected_ranges": [{"from": "0", "until": "14.21"}, {"from": "15", "until": "15.16"}, {"from": "16", "until": "16.12"}, {"from": "17", "until": "17.8"}, {"from": "18", "until": "18.2"}], "first_published": "2026-02-12", "fixed_version": "", "severity": "中危"}, {"id": "CVE-2026-18024", "url": "https://www.postgresql.org/support/security/CVE-2026-18024/", "fixed": {"14": "14.24", "15": "15.19", "16": "16.15", "17": "17.11", "18": "18.6"}, "score": 4.3, "title": "PostgreSQL ascii() function reads past end of buffer", "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2026-18024", "affected": {"14": "14", "15": "15", "16": "16", "17": "17", "18": "18"}, "component": "core server", "published": {"14": "2026-08-13", "15": "2026-08-13", "16": "2026-08-13", "17": "2026-08-13", "18": "2026-08-13"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Buffer over-read in PostgreSQL ascii() SQL function allows a user to disclose up to 3 bytes after the end of a specific allocation, via a crafted text value. This is the same class of defect that CVE-2026-2006 fixed, though this instance has less impact. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.", "affected_ranges": [{"from": "0", "until": "14.24"}, {"from": "15", "until": "15.19"}, {"from": "16", "until": "16.15"}, {"from": "17", "until": "17.11"}, {"from": "18", "until": "18.6"}], "first_published": "2026-08-13", "fixed_version": "", "severity": "中危"}, {"id": "CVE-2026-14678", "url": "https://www.postgresql.org/support/security/CVE-2026-14678/", "fixed": {"14": "14.24", "15": "15.19", "16": "16.15", "17": "17.11", "18": "18.6"}, "score": 4.3, "title": "PostgreSQL pg_trgm picksplit reads past end of buffer", "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2026-14678", "affected": {"14": "14", "15": "15", "16": "16", "17": "17", "18": "18"}, "component": "contrib module", "published": {"14": "2026-08-13", "15": "2026-08-13", "16": "2026-08-13", "17": "2026-08-13", "18": "2026-08-13"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Buffer over-read in PostgreSQL pg_trgm index picksplit function reads past end of a heap buffer. This might allow a table maintainer to infer limited memory values, via the lossy signal of index split choices. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.", "affected_ranges": [{"from": "0", "until": "14.24"}, {"from": "15", "until": "15.19"}, {"from": "16", "until": "16.15"}, {"from": "17", "until": "17.11"}, {"from": "18", "until": "18.6"}], "first_published": "2026-08-13", "fixed_version": "", "severity": "中危"}, {"id": "CVE-2026-14666", "url": "https://www.postgresql.org/support/security/CVE-2026-14666/", "fixed": {"14": "14.24", "15": "15.19", "16": "16.15", "17": "17.11", "18": "18.6"}, "score": 4.2, "title": "PostgreSQL row security caching disregards role modifications", "vector": "AV:N/AC:H/PR:L/UI:N/S:U/C:L/I:L/A:N", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2026-14666", "affected": {"14": "14", "15": "15", "16": "16", "17": "17", "18": "18"}, "component": "core server", "published": {"14": "2026-08-13", "15": "2026-08-13", "16": "2026-08-13", "17": "2026-08-13", "18": "2026-08-13"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Incomplete tracking in PostgreSQL of changes to role membership, role attributes, and database ownership allows a query to continue using cached row-level security policies after those changes require a different policy, via plan reuse. Stale policies continue until some other event invalidates the cache or connection termination ends the session. This permits a user to complete reads and modifications that were recently permitted but now forbidden. An attacker must tailor an attack to a particular application's pattern of privilege removal and role-specific row security policies. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.", "affected_ranges": [{"from": "0", "until": "14.24"}, {"from": "15", "until": "15.19"}, {"from": "16", "until": "16.15"}, {"from": "17", "until": "17.11"}, {"from": "18", "until": "18.6"}], "first_published": "2026-08-13", "fixed_version": "", "severity": "中危"}, {"id": "CVE-2024-10978", "url": "https://www.postgresql.org/support/security/CVE-2024-10978/", "fixed": {"12": "12.21", "13": "13.17", "14": "14.14", "15": "15.9", "16": "16.5", "17": "17.1"}, "score": 4.2, "title": "PostgreSQL SET ROLE, SET SESSION AUTHORIZATION reset to wrong user ID", "vector": "AV:N/AC:H/PR:L/UI:N/S:U/C:L/I:L/A:N", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2024-10978", "affected": {"12": "12", "13": "13", "14": "14", "15": "15", "16": "16", "17": "17"}, "component": "core server", "published": {"12": "2024-11-14", "13": "2024-11-14", "14": "2024-11-14", "15": "2024-11-14", "16": "2024-11-14", "17": "2024-11-14"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Incorrect privilege assignment in PostgreSQL allows a less-privileged application user to view or change different rows from those intended. An attack requires the application to use SET ROLE , SET SESSION AUTHORIZATION , or an equivalent feature. The problem arises when an application query uses parameters from the attacker or conveys query results to the attacker. If that query reacts to current_setting('role') or the current user ID, it may modify or return data as though the session had not used SET ROLE or SET SESSION AUTHORIZATION . The attacker does not control which incorrect user ID applies. Query text from less-privileged sources is not a concern here, because SET ROLE and SET SESSION AUTHORIZATION are not sandboxes for unvetted queries. Versions before PostgreSQL 17.1, 16.5, 15.9, 14.14, 13.17, and 12.21 are affected.\n\nThe PostgreSQL project thanks Tom Lane for reporting this problem.", "affected_ranges": [{"from": "0", "until": "12.21"}, {"from": "13", "until": "13.17"}, {"from": "14", "until": "14.14"}, {"from": "15", "until": "15.9"}, {"from": "16", "until": "16.5"}, {"from": "17", "until": "17.1"}], "first_published": "2024-11-14", "fixed_version": "", "severity": "中危"}, {"id": "CVE-2024-10976", "url": "https://www.postgresql.org/support/security/CVE-2024-10976/", "fixed": {"12": "12.21", "13": "13.17", "14": "14.14", "15": "15.9", "16": "16.5", "17": "17.1"}, "score": 4.2, "title": "PostgreSQL row security below e.g. subqueries disregards user ID changes", "vector": "AV:N/AC:H/PR:L/UI:N/S:U/C:L/I:L/A:N", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2024-10976", "affected": {"12": "12", "13": "13", "14": "14", "15": "15", "16": "16", "17": "17"}, "component": "core server", "published": {"12": "2024-11-14", "13": "2024-11-14", "14": "2024-11-14", "15": "2024-11-14", "16": "2024-11-14", "17": "2024-11-14"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Incomplete tracking in PostgreSQL of tables with row security allows a reused query to view or change different rows from those intended. CVE-2023-2455 and CVE-2016-2193 fixed most interaction between row security and user ID changes. They missed cases where a subquery, WITH query, security invoker view, or SQL-language function references a table with a row-level security policy. This has the same consequences as the two earlier CVEs. That is to say, it leads to potentially incorrect policies being applied in cases where role-specific policies are used and a given query is planned under one role and then executed under other roles. This scenario can happen under security definer functions or when a common user and query is planned initially and then re-used across multiple SET ROLEs.\n\nApplying an incorrect policy may permit a user to complete otherwise-forbidden reads and modifications. This affects only databases that have used CREATE POLICY to define a row security policy. An attacker must tailor an attack to a particular application's pattern of query plan reuse, user ID changes, and role-specific row security policies. Versions before PostgreSQL 17.1, 16.5, 15.9, 14.14, 13.17, and 12.21 are affected.", "affected_ranges": [{"from": "0", "until": "12.21"}, {"from": "13", "until": "13.17"}, {"from": "14", "until": "14.14"}, {"from": "15", "until": "15.9"}, {"from": "16", "until": "16.5"}, {"from": "17", "until": "17.1"}], "first_published": "2024-11-14", "fixed_version": "", "severity": "中危"}, {"id": "CVE-2026-6469", "url": "https://www.postgresql.org/support/security/CVE-2026-6469/", "fixed": {"14": "14.24", "15": "15.19", "16": "16.15", "17": "17.11", "18": "18.6"}, "score": 3.8, "title": "PostgreSQL ALTER TABLE ALTER TYPE resets extended statistics ownership", "vector": "AV:N/AC:L/PR:H/UI:N/S:U/C:N/I:L/A:L", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2026-6469", "affected": {"14": "14", "15": "15", "16": "16", "17": "17", "18": "18"}, "component": "core server", "published": {"14": "2026-08-13", "15": "2026-08-13", "16": "2026-08-13", "17": "2026-08-13", "18": "2026-08-13"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Incorrect ownership assignment in PostgreSQL ALTER TABLE ALTER TYPE command reassigns ownership of dependent statistics objects to the current user. This wrongly allows the table owner to run DROP STATISTICS and ALTER STATISTICS via this improper ownership. It wrongly denies those commands to the prior statistics object owner. DROP TABLE remains able to remove statistics objects, so this exploit achieves nothing in many ownership arrangements. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.", "affected_ranges": [{"from": "0", "until": "14.24"}, {"from": "15", "until": "15.19"}, {"from": "16", "until": "16.15"}, {"from": "17", "until": "17.11"}, {"from": "18", "until": "18.6"}], "first_published": "2026-08-13", "fixed_version": "", "severity": "低危"}, {"id": "CVE-2026-16241", "url": "https://www.postgresql.org/support/security/CVE-2026-16241/", "fixed": {"14": "14.24", "15": "15.19", "16": "16.15", "17": "17.11", "18": "18.6"}, "score": 3.8, "title": "PostgreSQL ECPG integer underflow can crash the client", "vector": "AV:N/AC:L/PR:H/UI:N/S:U/C:N/I:L/A:L", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2026-16241", "affected": {"14": "14", "15": "15", "16": "16", "17": "17", "18": "18"}, "component": "client", "published": {"14": "2026-08-13", "15": "2026-08-13", "16": "2026-08-13", "17": "2026-08-13", "18": "2026-08-13"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Integer underflow in PostgreSQL ECPG allows a database server administrator to achieve temporary denial of service against the ECPG client via sending a bytea value lacking the mandatory prefix. The client overwrites a huge memory region with bytes outside attacker knowledge or control. This typically yields a simple SIGSEGV, but rare cases might achieve client-specific integrity impact via the write. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.", "affected_ranges": [{"from": "0", "until": "14.24"}, {"from": "15", "until": "15.19"}, {"from": "16", "until": "16.15"}, {"from": "17", "until": "17.11"}, {"from": "18", "until": "18.6"}], "first_published": "2026-08-13", "fixed_version": "", "severity": "低危"}, {"id": "CVE-2026-14673", "url": "https://www.postgresql.org/support/security/CVE-2026-14673/", "fixed": {"14": "14.24", "15": "15.19", "16": "16.15", "18": "18.6"}, "score": 3.8, "title": "PostgreSQL amcheck does not clear untrusted search path", "vector": "AV:N/AC:L/PR:H/UI:N/S:U/C:L/I:L/A:N", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2026-14673", "affected": {"14": "14", "15": "15", "16": "16", "18": "18"}, "component": "contrib module", "published": {"14": "2026-08-13", "15": "2026-08-13", "16": "2026-08-13", "18": "2026-08-13"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Untrusted search path in PostgreSQL amcheck allows a grantee of amcheck function EXECUTE privilege to execute arbitrary functions as the owners of expression indexes that depend on the search path, via setting a hostile search path before calling the amcheck function. Within major versions 18, 16, 15, and 14, minor versions before PostgreSQL 18.6, 16.15, 15.19, and 14.24 are affected. PostgreSQL 17 is unaffected.", "affected_ranges": [{"from": "0", "until": "14.24"}, {"from": "15", "until": "15.19"}, {"from": "16", "until": "16.15"}, {"from": "18", "until": "18.6"}], "first_published": "2026-08-13", "fixed_version": "", "severity": "低危"}, {"id": "CVE-2025-8713", "url": "https://www.postgresql.org/support/security/CVE-2025-8713/", "fixed": {"13": "13.22", "14": "14.19", "15": "15.14", "16": "16.10", "17": "17.6"}, "score": 3.1, "title": "PostgreSQL optimizer statistics can expose sampled data within a view, partition, or child table", "vector": "AV:N/AC:H/PR:L/UI:N/S:U/C:L/I:N/A:N", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2025-8713", "affected": {"13": "13", "14": "14", "15": "15", "16": "16", "17": "17"}, "component": "core server", "published": {"13": "2025-08-14", "14": "2025-08-14", "15": "2025-08-14", "16": "2025-08-14", "17": "2025-08-14"}, "introduced": {}, "cvss_version": "3.0", "description_en": "PostgreSQL optimizer statistics allow a user to read sampled data within a view that the user cannot access. Separately, statistics allow a user to read sampled data that a row security policy intended to hide. PostgreSQL maintains statistics for tables by sampling data available in columns; this data is consulted during the query planning process. Prior to this release, a user could craft a leaky operator that bypassed view access control lists (ACLs) and bypassed row security policies in partitioning or table inheritance hierarchies. Reachable statistics data notably included histograms and most-common-values lists. CVE-2017-7484 and CVE-2019-10130 intended to close this class of vulnerability, but this gap remained. Versions before PostgreSQL 17.6, 16.10, 15.14, 14.19, and 13.22 are affected.", "affected_ranges": [{"from": "0", "until": "13.22"}, {"from": "14", "until": "14.19"}, {"from": "15", "until": "15.14"}, {"from": "16", "until": "16.10"}, {"from": "17", "until": "17.6"}], "first_published": "2025-08-14", "fixed_version": "", "severity": "低危"}, {"id": "CVE-2025-12817", "url": "https://www.postgresql.org/support/security/CVE-2025-12817/", "fixed": {"13": "13.23", "14": "14.20", "15": "15.15", "16": "16.11", "17": "17.7", "18": "18.1"}, "score": 3.1, "title": "PostgreSQL CREATE STATISTICS does not check for schema CREATE privilege", "vector": "AV:N/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:L", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2025-12817", "affected": {"13": "13", "14": "14", "15": "15", "16": "16", "17": "17", "18": "18"}, "component": "core server", "published": {"13": "2025-11-13", "14": "2025-11-13", "15": "2025-11-13", "16": "2025-11-13", "17": "2025-11-13", "18": "2025-11-13"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Missing authorization in PostgreSQL CREATE STATISTICS command allows a table owner to achieve denial of service against other CREATE STATISTICS users by creating in any schema. A later CREATE STATISTICS for the same name, from a user having the CREATE privilege, would then fail. Versions before PostgreSQL 18.1, 17.7, 16.11, 15.15, 14.20, and 13.23 are affected.", "affected_ranges": [{"from": "0", "until": "13.23"}, {"from": "14", "until": "14.20"}, {"from": "15", "until": "15.15"}, {"from": "16", "until": "16.11"}, {"from": "17", "until": "17.7"}, {"from": "18", "until": "18.1"}], "first_published": "2025-11-13", "fixed_version": "", "severity": "低危"}, {"id": "CVE-2024-10977", "url": "https://www.postgresql.org/support/security/CVE-2024-10977/", "fixed": {"12": "12.21", "13": "13.17", "14": "14.14", "15": "15.9", "16": "16.5", "17": "17.1"}, "score": 3.1, "title": "PostgreSQL libpq retains an error message from man-in-the-middle", "vector": "AV:N/AC:H/PR:N/UI:R/S:U/C:N/I:L/A:N", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2024-10977", "affected": {"12": "12", "13": "13", "14": "14", "15": "15", "16": "16", "17": "17"}, "component": "client", "published": {"12": "2024-11-14", "13": "2024-11-14", "14": "2024-11-14", "15": "2024-11-14", "16": "2024-11-14", "17": "2024-11-14"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Client use of server error message in PostgreSQL allows a server not trusted under current SSL or GSS settings to furnish arbitrary non-NUL bytes to the libpq application. For example, a man-in-the-middle attacker could send a long error message that a human or screen-scraper user of psql mistakes for valid query results. This is probably not a concern for clients where the user interface unambiguously indicates the boundary between one error message and other text. Versions before PostgreSQL 17.1, 16.5, 15.9, 14.14, 13.17, and 12.21 are affected.\n\nThe PostgreSQL project thanks Jacob Champion for reporting this problem.", "affected_ranges": [{"from": "0", "until": "12.21"}, {"from": "13", "until": "13.17"}, {"from": "14", "until": "14.14"}, {"from": "15", "until": "15.9"}, {"from": "16", "until": "16.5"}, {"from": "17", "until": "17.1"}], "first_published": "2024-11-14", "fixed_version": "", "severity": "低危"}], "cross_major": false, "excluded_count": 0, "already_in_source_count": 0, "duplicate_count": 0, "candidate_count": 613, "exclusions": [], "history": {"source": ["9.0.0"], "target": ["9.0.0", "9.0.1", "9.0.2", "9.0.3", "9.0.4", "9.0.5", "9.0.6", "9.0.7", "9.0.8", "9.0.9", "9.0.10", "9.0.11", "9.0.12", "9.0.13", "9.0.14", "9.0.15", "9.0.16", "9.0.17", "9.0.18", "9.0.19", "9.0.20", "9.0.21", "9.0.22", "9.0.23"], "candidates": ["9.0.1", "9.0.2", "9.0.3", "9.0.4", "9.0.5", "9.0.6", "9.0.7", "9.0.8", "9.0.9", "9.0.10", "9.0.11", "9.0.12", "9.0.13", "9.0.14", "9.0.15", "9.0.16", "9.0.17", "9.0.18", "9.0.19", "9.0.20", "9.0.21", "9.0.22", "9.0.23"]}, "release_count": 23, "warnings": [], "source_as_of": "2026-09-26", "security_as_of": "2026-09-26"}