{"format": 1, "mode": "release", "from_release": null, "to_release": {"date": "2012-12-06", "build": "9.2.2", "major": "9.2", "minor": 2, "manual": "9.2", "status": "stable", "doc_git": "", "version": "9.2.2", "eol_date": "2017-11-09", "date_text": "2012-12-06", "supported": false, "manual_url": "/docs/9.2/release-9-2-2.html", "source_url": "/docs/release/9.2.2/", "entry_count": 60, "placeholder": false, "content_hash": "1b5a7a77944504a833a183f99443918f28711494e037540de74701d34844d8ea", "manual_build": "9.2.24", "source_as_of": "", "changes_count": 60, "doc_loaded_at": "2026-09-26T02:56:46.946617", "migration_html": "<p>    对于运行 9.2.X 的用户，不需要进行转储/恢复。</p><p>      不过，你可能需要执行 <code>REINDEX</code> 操作来纠正并发构建的索引中的问题，如下面第一条变更日志条目所述。\n     </p><p>     另外，如果你是从 9.2.0 版本升级，参见<a href=\"/docs/9.2/release-9-2-1.html\" title=\"E.24. 版本 9.2.1\">第 E.24 节</a>。\n    </p>", "compatibility_count": 0, "label": "9.2.2", "status_label": "历史版本", "eol": "2017-11-09", "age_days": 5046, "support_days": -3247}, "groups": [{"date": "2012-12-06", "build": "9.2.2", "major": "9.2", "minor": 2, "manual": "9.2", "status": "stable", "doc_git": "", "version": "9.2.2", "eol_date": "2017-11-09", "date_text": "2012-12-06", "supported": false, "manual_url": "/docs/9.2/release-9-2-2.html", "source_url": "/docs/release/9.2.2/", "entry_count": 60, "placeholder": false, "content_hash": "1b5a7a77944504a833a183f99443918f28711494e037540de74701d34844d8ea", "manual_build": "9.2.24", "source_as_of": "", "changes_count": 60, "doc_loaded_at": "2026-09-26T02:56:46.946617", "migration_html": "<p>    对于运行 9.2.X 的用户，不需要进行转储/恢复。</p><p>      不过，你可能需要执行 <code>REINDEX</code> 操作来纠正并发构建的索引中的问题，如下面第一条变更日志条目所述。\n     </p><p>     另外，如果你是从 9.2.0 版本升级，参见<a href=\"/docs/9.2/release-9-2-1.html\" title=\"E.24. 版本 9.2.1\">第 E.24 节</a>。\n    </p>", "compatibility_count": 0, "label": "9.2.2", "status_label": "历史版本", "eol": "2017-11-09", "age_days": 5046, "support_days": -3247, "entries": [{"id": "9.2.2-ecf8579a45f0ce3c", "cves": [], "html": "<p>      修复与 <code>CREATE/DROP INDEX CONCURRENTLY</code> 相关的多个缺陷（Andres Freund、Tom Lane、Simon Riggs、Pavan Deolasee）\n     </p><p>      添加 <code>DROP INDEX CONCURRENTLY</code> 时引入的一个错误，允许在 <code>CREATE INDEX CONCURRENTLY</code> 的初始阶段做出错误的索引决策，导致该命令构建的索引可能损坏。建议在应用此更新后，重建 9.2.X 中用 <code>CREATE INDEX CONCURRENTLY</code> 构建的所有索引。\n     </p><p>      此外，修复 <code>CREATE/DROP INDEX CONCURRENTLY</code>，使其在更改索引 <code>pg_index</code> 行的状态时使用就地更新。这防止了可能导致并发会话错过更新目标索引（从而再次产生损坏的并发创建索引）的竞态条件。\n     </p><p>      另外，修复各种其他操作，确保它们忽略由失败的 <code>CREATE INDEX CONCURRENTLY</code> 命令产生的无效索引。其中最重要的是 <code>VACUUM</code>，因为在采取纠正措施修复或删除无效索引之前，很容易就有自动清理在该表上启动。\n     </p><p>      还修复了 <code>DROP INDEX CONCURRENTLY</code>，使其在使用目标索引的所有查询完成之前不禁止向其插入。\n     </p><p>      还修复了 <code>DROP INDEX CONCURRENTLY</code> 被取消时的不当行为：先前的编码可能留下一个无法删除的索引。\n     </p>", "text": "修复与 CREATE/DROP INDEX CONCURRENTLY 相关的多个缺陷（Andres Freund、Tom Lane、Simon Riggs、Pavan Deolasee） 添加 DROP INDEX CONCURRENTLY 时引入的一个错误，允许在 CREATE INDEX CONCURRENTLY 的初始阶段做出错误的索引决策，导致该命令构建的索引可能损坏。建议在应用此更新后，重建 9.2.X 中用 CREATE INDEX CONCURRENTLY 构建的所有索引。 此外，修复 CREATE/DROP INDEX CONCURRENTLY，使其在更改索引 pg_index 行的状态时使用就地更新。这防止了可能导致并发会话错过更新目标索引（从而再次产生损坏的并发创建索引）的竞态条件。 另外，修复各种其他操作，确保它们忽略由失败的 CREATE INDEX CONCURRENTLY 命令产生的无效索引。其中最重要的是 VACUUM，因为在采取纠正措施修复或删除无效索引之前，很容易就有自动清理在该表上启动。 还修复了 DROP INDEX CONCURRENTLY，使其在使用目标索引的所有查询完成之前不禁止向其插入。 还修复了 DROP INDEX CONCURRENTLY 被取消时的不当行为：先前的编码可能留下一个无法删除的索引。", "title": "修复与 CREATE/DROP INDEX CONCURRENTLY 相关的多个缺陷", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.2.2/#id-1.11.6.27.5", "source_hash": "856eb3309239f9607ef372766981c98d278dc678c0da12f488312d392348cc37", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix multiple bugs associated with CREATE/DROP INDEX CONCURRENTLY (Andres Freund, Tom Lane, Simon Riggs, Pavan Deolasee) An error introduced while adding DROP INDEX CONCURRENTLY allowed incorrect indexing decisions to be made during the initial phase of CREATE INDEX CONCURRENTLY; so that indexes built by that command could be corrupt. It is recommended that indexes built in 9.2.X with CREATE INDEX CONCURRENTLY be rebuilt after applying this update. In addition, fix CREATE/DROP 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 again 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. Also fix DROP INDEX CONCURRENTLY to not disable insertions into the target index until all queries using it are done. Also fix misbehavior if DROP INDEX CONCURRENTLY is canceled: the previous coding could leave an un-droppable index behind.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.2.2/changes/001", "db_id": "4724d6974665009fba44d011191ba8ca", "patch_ids": [], "statement_hash": "adacee2102905cfee3615046a5efba740770e897f0e590f14ecd660eb0f75ac7", "relations": [], "version": "9.2.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.2.2-a0a24a8d20a9f323", "cves": [], "html": "<p>      修正 <code>DROP INDEX CONCURRENTLY</code> 的谓词锁定（Kevin Grittner）\n     </p><p>      此前，SSI 谓词锁的处理时机不对，可能导致与 <code>DROP</code> 并行执行的可序列化事务行为不正确。\n     </p>", "text": "修正 DROP INDEX CONCURRENTLY 的谓词锁定（Kevin Grittner） 此前，SSI 谓词锁的处理时机不对，可能导致与 DROP 并行执行的可序列化事务行为不正确。", "title": "修正 DROP INDEX CONCURRENTLY 的谓词锁定", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.2.2/#id-1.11.6.27.5", "source_hash": "38335964acb8d6a4a0286e7b92bd92da8fa78a591cbdd32e2d657054b1bd7dd4", "section_path": ["变更"], "commit_groups": [], "identity_text": "Correct predicate locking for DROP INDEX CONCURRENTLY (Kevin Grittner) Previously, SSI predicate locks were processed at the wrong time, possibly leading to incorrect behavior of serializable transactions executing in parallel with the DROP.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.2.2/changes/002", "db_id": "90ae9af3209886ca9ca9d295a53b4702", "patch_ids": [], "statement_hash": "41ac5caab92459360fa5376b968783e4529d4a3e6b98ea44274e3d022baf6e77", "relations": [], "version": "9.2.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.2.2-7dbde48d243a2133", "cves": [], "html": "<p>      修复 WAL 重放期间的缓冲区锁定（Tom Lane）\n     </p><p>      WAL 重放代码在重放影响多个页面的 WAL 记录时，对缓冲区加锁不够谨慎。这可能导致热备查询瞬时看到不一致的状态，造成错误结果或意外失败。\n     </p>", "text": "修复 WAL 重放期间的缓冲区锁定（Tom Lane） WAL 重放代码在重放影响多个页面的 WAL 记录时，对缓冲区加锁不够谨慎。这可能导致热备查询瞬时看到不一致的状态，造成错误结果或意外失败。", "title": "修复 WAL 重放期间的缓冲区锁定", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.2.2/#id-1.11.6.27.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.2.2/changes/003", "db_id": "c90990678a48b2df18d527d1a6597839", "patch_ids": [], "statement_hash": "e60c460aec8e3c9fc9dadf8e58b4d72ff7a4b7734c8a83dc7aba0cdf554f03cb", "relations": [{"rule": 2, "type": "equivalent", "target": "40ae178c8033f11d304a3c3509516eac", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e60c460aec8e3c9fc9dadf8e58b4d72ff7a4b7734c8a83dc7aba0cdf554f03cb"}}, {"rule": 2, "type": "equivalent", "target": "51098e75a70f44f43bede962baf0776b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e60c460aec8e3c9fc9dadf8e58b4d72ff7a4b7734c8a83dc7aba0cdf554f03cb"}}], "version": "9.2.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"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"}, {"db_id": "40ae178c8033f11d304a3c3509516eac", "kind": "equivalent", "version": "9.0.11", "label": "9.0.11", "title": "修复 WAL 重放期间的缓冲区锁定", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e60c460aec8e3c9fc9dadf8e58b4d72ff7a4b7734c8a83dc7aba0cdf554f03cb"}, "url": "/docs/compare/?release=9.0.11#9.0.11-7dbde48d243a2133", "source_url": "/docs/release/9.0.11/#id-1.11.6.17.5"}]}, {"id": "9.2.2-20f4599c5966ea28", "cves": [], "html": "<p>      修复 GIN 索引 WAL 生成逻辑中的一个错误（Tom Lane）\n     </p><p>      如果发生残缺页故障，这可能导致索引损坏。\n     </p>", "text": "修复 GIN 索引 WAL 生成逻辑中的一个错误（Tom Lane） 如果发生残缺页故障，这可能导致索引损坏。", "title": "修复 GIN 索引 WAL 生成逻辑中的一个错误", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.2.2/#id-1.11.6.27.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.2.2/changes/004", "db_id": "e4d26ec763e422d94eb9141ced9f4baf", "patch_ids": [], "statement_hash": "6adaef02f5128971832f4f52b2eb357eab62949951a055b67884f2ec00423c9d", "relations": [{"rule": 2, "type": "equivalent", "target": "635e3c5d90dacf55981ea265aefd4964", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6adaef02f5128971832f4f52b2eb357eab62949951a055b67884f2ec00423c9d"}}, {"rule": 2, "type": "equivalent", "target": "8207df19f289120274af27c78d800fbe", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6adaef02f5128971832f4f52b2eb357eab62949951a055b67884f2ec00423c9d"}}], "version": "9.2.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"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"}, {"db_id": "635e3c5d90dacf55981ea265aefd4964", "kind": "equivalent", "version": "9.0.11", "label": "9.0.11", "title": "修复 GIN 索引 WAL 生成逻辑中的一个错误", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6adaef02f5128971832f4f52b2eb357eab62949951a055b67884f2ec00423c9d"}, "url": "/docs/compare/?release=9.0.11#9.0.11-20f4599c5966ea28", "source_url": "/docs/release/9.0.11/#id-1.11.6.17.5"}]}, {"id": "9.2.2-8bb1aa82fe43638d", "cves": [], "html": "<p>      修复 SP-GiST 索引 WAL 重放逻辑中的一个错误（Tom Lane）\n     </p><p>      这可能导致崩溃之后或备库服务器上的索引损坏。\n     </p>", "text": "修复 SP-GiST 索引 WAL 重放逻辑中的一个错误（Tom Lane） 这可能导致崩溃之后或备库服务器上的索引损坏。", "title": "修复 SP-GiST 索引 WAL 重放逻辑中的一个错误", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.2.2/#id-1.11.6.27.5", "source_hash": "56a5f1e0222470400522c29998b4d0b4c6cce2433214eb9d6ec4a66175efb806", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix an error in WAL replay logic for SP-GiST indexes (Tom Lane) This could result in index corruption after a crash, or on a standby server.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.2.2/changes/005", "db_id": "02f9b4c7c67683504b654000b0b923b6", "patch_ids": [], "statement_hash": "bbbaaf18e71ce706c6384f63564781e77a5aff64cad6fe0fb9595058fa6e9ca8", "relations": [], "version": "9.2.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.2.2-6a9ae7d9b5a4dd2e", "cves": [], "html": "<p>      修复 WAL 恢复期间对基础备份结束点的不正确检测（Heikki Linnakangas）\n     </p><p>      这一失误使热备模式可能在数据库达到一致状态之前就启动。\n     </p>", "text": "修复 WAL 恢复期间对基础备份结束点的不正确检测（Heikki Linnakangas） 这一失误使热备模式可能在数据库达到一致状态之前就启动。", "title": "修复 WAL 恢复期间对基础备份结束点的不正确检测", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.2.2/#id-1.11.6.27.5", "source_hash": "d322380ff89adc42b2f009e012c4291e17c4a2c6c4eb6956b4257f2166268710", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix incorrect detection of end-of-base-backup location during WAL recovery (Heikki Linnakangas) This mistake allowed hot standby mode to start up before the database reaches a consistent state.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.2.2/changes/006", "db_id": "74e5d0692b046d4ed743ea803701ca4c", "patch_ids": [], "statement_hash": "c022efe0bbfdb558f29e7bc8d6d810bebb0124d9dfb63821dc7d8b3a66c2796c", "relations": [], "version": "9.2.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.2.2-f964cb1349a3ce24", "cves": [], "html": "<p>      把热备服务器提升为正常运行时，正确移除启动进程的虚拟 XID 锁（Simon Riggs）\n     </p><p>      这一疏忽可能阻止后续执行某些操作，例如 <code>CREATE INDEX CONCURRENTLY</code>。\n     </p>", "text": "把热备服务器提升为正常运行时，正确移除启动进程的虚拟 XID 锁（Simon Riggs） 这一疏忽可能阻止后续执行某些操作，例如 CREATE INDEX CONCURRENTLY。", "title": "把热备服务器提升为正常运行时，正确移除启动进程的虚拟 XID 锁", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.2.2/#id-1.11.6.27.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.2.2/changes/007", "db_id": "c466a121372cdd90134fd1b120a87e93", "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": "b61e982a76c8926258760d94b1704113", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4a9b2c80ac821dd5928b1876cdc8462934249088a00d592e929c1bee51b00ded"}}], "version": "9.2.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"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"}, {"db_id": "b61e982a76c8926258760d94b1704113", "kind": "equivalent", "version": "9.0.11", "label": "9.0.11", "title": "把热备服务器提升为正常运行时，正确移除启动进程的虚拟 XID 锁", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4a9b2c80ac821dd5928b1876cdc8462934249088a00d592e929c1bee51b00ded"}, "url": "/docs/compare/?release=9.0.11#9.0.11-f964cb1349a3ce24", "source_url": "/docs/release/9.0.11/#id-1.11.6.17.5"}]}, {"id": "9.2.2-fff9b7427e7a2cc3", "cves": [], "html": "<p>      避免备库模式下虚假的<span>“<span>out-of-sequence timeline ID</span>”</span>错误（Heikki Linnakangas）\n     </p>", "text": "避免备库模式下虚假的“out-of-sequence timeline ID”错误（Heikki Linnakangas）", "title": "避免备库模式下虚假的“out-of-sequence timeline ID”错误", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.2.2/#id-1.11.6.27.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.2.2/changes/008", "db_id": "b049f106277487122b03a575e1920a9d", "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": "a73ebde118090b70ad873ee747ae6fce", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "070e01732b0c4aae3265e7558b8bc1e9b7096f4343c11c05390d846ebfdbdb4e"}}], "version": "9.2.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"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"}, {"db_id": "a73ebde118090b70ad873ee747ae6fce", "kind": "equivalent", "version": "9.0.11", "label": "9.0.11", "title": "避免备库模式下虚假的 “out-of-sequence timeline ID” 错误", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "070e01732b0c4aae3265e7558b8bc1e9b7096f4343c11c05390d846ebfdbdb4e"}, "url": "/docs/compare/?release=9.0.11#9.0.11-f4e292ab2330a219", "source_url": "/docs/release/9.0.11/#id-1.11.6.17.5"}]}, {"id": "9.2.2-d917ac02541fa2d6", "cves": [], "html": "<p>      防止 postmaster 在收到关闭信号后继续启动新的子进程（Tom Lane）\n     </p><p>      这一失误可能导致关闭耗时比应有的更长，甚至在没有额外用户操作的情况下永远无法完成。\n     </p>", "text": "防止 postmaster 在收到关闭信号后继续启动新的子进程（Tom Lane） 这一失误可能导致关闭耗时比应有的更长，甚至在没有额外用户操作的情况下永远无法完成。", "title": "防止 postmaster 在收到关闭信号后继续启动新的子进程", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.2.2/#id-1.11.6.27.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.2.2/changes/009", "db_id": "cc631e18ec7f9c6daa6037bb9bc71d30", "patch_ids": [], "statement_hash": "99fd94185ca0637ca1c92b531dffc37cd7bcc00f111ae89e0e474d2579475dc1", "relations": [{"rule": 2, "type": "equivalent", "target": "7bb04e99a81c258771653ee206166f8c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "99fd94185ca0637ca1c92b531dffc37cd7bcc00f111ae89e0e474d2579475dc1"}}, {"rule": 2, "type": "equivalent", "target": "91dfcffb3a9197d924b2e4b668ca9e4f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "99fd94185ca0637ca1c92b531dffc37cd7bcc00f111ae89e0e474d2579475dc1"}}], "version": "9.2.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"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"}, {"db_id": "7bb04e99a81c258771653ee206166f8c", "kind": "equivalent", "version": "9.0.11", "label": "9.0.11", "title": "防止 postmaster 在收到关闭信号后继续启动新的子进程", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "99fd94185ca0637ca1c92b531dffc37cd7bcc00f111ae89e0e474d2579475dc1"}, "url": "/docs/compare/?release=9.0.11#9.0.11-d917ac02541fa2d6", "source_url": "/docs/release/9.0.11/#id-1.11.6.17.5"}]}, {"id": "9.2.2-1876c1446002dd13", "cves": [], "html": "<p>      修复 <code>log_rotation_age</code> 超过 2^31 毫秒（约 25 天）时 syslogger 进程失败的问题（Tom Lane）\n     </p>", "text": "修复 log_rotation_age 超过 2^31 毫秒（约 25 天）时 syslogger 进程失败的问题（Tom Lane）", "title": "修复 log_rotation_age 超过 2^31 毫秒（约 25 天）时 syslogger 进程失败的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.2.2/#id-1.11.6.27.5", "source_hash": "7599b93c48290ab495c8edfac4b284c1b9012acd74dc0c9b9db7798cc78fdce4", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix the syslogger process to not fail when log_rotation_age exceeds 2^31 milliseconds (about 25 days) (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.2.2/changes/010", "db_id": "0ec18d38123aaba11d7c153d3f333f1a", "patch_ids": [], "statement_hash": "bdd191f04e67b39dd4e0897b35ba5e60ec76dfba7584aba039eb4dbbfed0b655", "relations": [], "version": "9.2.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.2.2-821caf737b3f40c4", "cves": [], "html": "<p>      修复 <code>WaitLatch()</code>，使其在请求的超时到期时立即返回（Jeff Janes、Tom Lane）\n     </p><p>      在先前的编码下，持续不断的非等待终止中断可能无限期地延迟 <code>WaitLatch()</code> 的返回。这已被证明会给自动清理启动器进程带来问题，也可能在其他地方造成麻烦。\n     </p>", "text": "修复 WaitLatch()，使其在请求的超时到期时立即返回（Jeff Janes、Tom Lane） 在先前的编码下，持续不断的非等待终止中断可能无限期地延迟 WaitLatch() 的返回。这已被证明会给自动清理启动器进程带来问题，也可能在其他地方造成麻烦。", "title": "修复 WaitLatch()，使其在请求的超时到期时立即返回", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.2.2/#id-1.11.6.27.5", "source_hash": "d26bf725d4586d16ea22fa62694df1192be1a1365936c59bb2c73847d1d7cb58", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix WaitLatch() to return promptly when the requested timeout expires (Jeff Janes, Tom Lane) With the previous coding, a steady stream of non-wait-terminating interrupts could delay return from WaitLatch() indefinitely. This has been shown to be a problem for the autovacuum launcher process, and might cause trouble elsewhere as well.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.2.2/changes/011", "db_id": "6e53240f8eb8928cbbd12ba66e449b7d", "patch_ids": [], "statement_hash": "a294c9968c36e7fb010dc6d246c778a1d905bc2cbb0b15cfd8dedc722672ec94", "relations": [], "version": "9.2.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.2.2-fd2644546a70341a", "cves": [], "html": "<p>      避免内存不足时内部哈希表损坏（Hitoshi Harada）\n     </p>", "text": "避免内存不足时内部哈希表损坏（Hitoshi Harada）", "title": "避免内存不足时内部哈希表损坏", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.2.2/#id-1.11.6.27.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.2.2/changes/012", "db_id": "ccd960e69197616945fb716f47fd5dbb", "patch_ids": [], "statement_hash": "692dad544f7fd81c5f29ab0c6fafa30584c4bac66915d29dc7ba7dadfaac1e6c", "relations": [{"rule": 2, "type": "equivalent", "target": "3efd3d2a6c52b704801ca0bac42dc0dd", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "692dad544f7fd81c5f29ab0c6fafa30584c4bac66915d29dc7ba7dadfaac1e6c"}}, {"rule": 2, "type": "equivalent", "target": "b450e9ab7f4b930fa19f8dc789b0b3d3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "692dad544f7fd81c5f29ab0c6fafa30584c4bac66915d29dc7ba7dadfaac1e6c"}}], "version": "9.2.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"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"}, {"db_id": "3efd3d2a6c52b704801ca0bac42dc0dd", "kind": "equivalent", "version": "9.0.11", "label": "9.0.11", "title": "避免内存不足时内部哈希表损坏", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "692dad544f7fd81c5f29ab0c6fafa30584c4bac66915d29dc7ba7dadfaac1e6c"}, "url": "/docs/compare/?release=9.0.11#9.0.11-fd2644546a70341a", "source_url": "/docs/release/9.0.11/#id-1.11.6.17.5"}]}, {"id": "9.2.2-fb6d8a3a260ed8d6", "cves": [], "html": "<p>      防止已删除表的文件描述符在事务结束之后仍保持打开（Tom Lane）\n     </p><p>      这应能减少早已删除的表继续占用磁盘空间的问题。\n     </p>", "text": "防止已删除表的文件描述符在事务结束之后仍保持打开（Tom Lane） 这应能减少早已删除的表继续占用磁盘空间的问题。", "title": "防止已删除表的文件描述符在事务结束之后仍保持打开", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.2.2/#id-1.11.6.27.5", "source_hash": "d4e049db33a633fdcc538bceb7e0862b6975bcdcaa274fa94f9eb233a56373bd", "section_path": ["变更"], "commit_groups": [], "identity_text": "Prevent file descriptors for dropped tables from being held open past transaction end (Tom Lane) This should reduce problems with long-since-dropped tables continuing to occupy disk space.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.2.2/changes/013", "db_id": "6ce12a724fd73e1b58d9c01cf31948a5", "patch_ids": [], "statement_hash": "a779b6476a507f403fa28e4a688301b1c35e51f3123dab951471998392d0076d", "relations": [{"rule": 2, "type": "equivalent", "target": "6e66ce2e8c8f93c1f4fa828afda55a0b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a779b6476a507f403fa28e4a688301b1c35e51f3123dab951471998392d0076d"}}], "version": "9.2.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "6e66ce2e8c8f93c1f4fa828afda55a0b", "kind": "equivalent", "version": "9.1.7", "label": "9.1.7", "title": "防止已删除表的文件描述符在事务结束之后仍保持打开", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a779b6476a507f403fa28e4a688301b1c35e51f3123dab951471998392d0076d"}, "url": "/docs/compare/?release=9.1.7#9.1.7-fb6d8a3a260ed8d6", "source_url": "/docs/release/9.1.7/#id-1.11.6.22.5"}]}, {"id": "9.2.2-d1742de6f2883880", "cves": [], "html": "<p>      防止当新子进程无法为其闩锁创建管道时整个数据库崩溃并重启（Tom Lane）\n     </p><p>      虽然新进程必须失败，但没有充分理由强制整个数据库重启，因此避免这样做。这提高了内核文件描述符几乎耗尽时的健壮性。\n     </p>", "text": "防止当新子进程无法为其闩锁创建管道时整个数据库崩溃并重启（Tom Lane） 虽然新进程必须失败，但没有充分理由强制整个数据库重启，因此避免这样做。这提高了内核文件描述符几乎耗尽时的健壮性。", "title": "防止当新子进程无法为其闩锁创建管道时整个数据库崩溃并重启", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.2.2/#id-1.11.6.27.5", "source_hash": "b63f9e26ce474ff675205c35aef0c70062859f8a380eec49c23b484bd490caf2", "section_path": ["变更"], "commit_groups": [], "identity_text": "Prevent database-wide crash and restart when a new child process is unable to create a pipe for its latch (Tom Lane) Although the new process must fail, there is no good reason to force a database-wide restart, so avoid that. This improves robustness when the kernel is nearly out of file descriptors.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.2.2/changes/014", "db_id": "e3a7e046628b9c7e0d7dc0cc8aa895ac", "patch_ids": [], "statement_hash": "a9e60e42dcf2a246ad5e97d7c9dda2ee6b9b49e99efe41d54fdb9d8626035505", "relations": [{"rule": 2, "type": "equivalent", "target": "00a2b56bed2c0e2e3b716aea1d88aec6", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a9e60e42dcf2a246ad5e97d7c9dda2ee6b9b49e99efe41d54fdb9d8626035505"}}], "version": "9.2.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "00a2b56bed2c0e2e3b716aea1d88aec6", "kind": "equivalent", "version": "9.1.7", "label": "9.1.7", "title": "防止当新子进程无法为其闩锁创建管道时整个数据库崩溃并重启", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a9e60e42dcf2a246ad5e97d7c9dda2ee6b9b49e99efe41d54fdb9d8626035505"}, "url": "/docs/compare/?release=9.1.7#9.1.7-d1742de6f2883880", "source_url": "/docs/release/9.1.7/#id-1.11.6.22.5"}]}, {"id": "9.2.2-421d482dbc141907", "cves": [], "html": "<p>      避免与未展平子查询连接时规划器崩溃（Tom Lane）\n     </p>", "text": "避免与未展平子查询连接时规划器崩溃（Tom Lane）", "title": "避免与未展平子查询连接时规划器崩溃", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.2.2/#id-1.11.6.27.5", "source_hash": "b553cfd80914594dfdcb9e2c14b4c14ca1bca90673056552bf42de67fda7f1c5", "section_path": ["变更"], "commit_groups": [], "identity_text": "Avoid planner crash with joins to unflattened subqueries (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.2.2/changes/015", "db_id": "1e709c04b6d96543f7f9f2c5404b6d39", "patch_ids": [], "statement_hash": "707c95a6bda3910bc53a56ed177b971a901c3ab1b4c03843937af6e76fade177", "relations": [], "version": "9.2.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.2.2-2c52c04d374c6c77", "cves": [], "html": "<p>      修复外连接之上非严格等值子句的规划（Tom Lane）\n     </p><p>      规划器可能从把非严格构造与别的值等同的子句中推导出错误的约束，例如当 <code>foo</code> 来自外连接的可空侧时的 <code>WHERE COALESCE(foo, 0) = 0</code>。9.2 中出现这类错误的情况比以前的版本多，但基本缺陷已经存在很长时间。\n     </p>", "text": "修复外连接之上非严格等值子句的规划（Tom Lane） 规划器可能从把非严格构造与别的值等同的子句中推导出错误的约束，例如当 foo 来自外连接的可空侧时的 WHERE COALESCE(foo, 0) = 0。9.2 中出现这类错误的情况比以前的版本多，但基本缺陷已经存在很长时间。", "title": "修复外连接之上非严格等值子句的规划", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.2.2/#id-1.11.6.27.5", "source_hash": "6031c9eaf41d7006862828eb68c87b3f76ba07da5959bd91ba20197a9a7a54a3", "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. 9.2 showed this type of error in more cases than previous releases, but the basic bug has been there for a long time.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.2.2/changes/016", "db_id": "c196aacd230879b06d3bcee1b5f2858f", "patch_ids": [], "statement_hash": "0b46f8f98b2480bd19701c8aa77c4a235eaa7305a38a5563225afa5e68df5209", "relations": [], "version": "9.2.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.2.2-a276f231734706d6", "cves": [], "html": "<p>      修复在继承树上对索引优化的 <code>MIN</code>/<code>MAX</code> 使用 <code>SELECT DISTINCT</code> 的问题（Tom Lane）\n     </p><p>      在这种因素组合下，规划器会报<span>“<span>failed to re-find MinMaxAggInfo record</span>”</span>失败。\n     </p>", "text": "修复在继承树上对索引优化的 MIN/MAX 使用 SELECT DISTINCT 的问题（Tom Lane） 在这种因素组合下，规划器会报“failed to re-find MinMaxAggInfo record”失败。", "title": "修复在继承树上对索引优化的 MIN/MAX 使用 SELECT DISTINCT 的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.2.2/#id-1.11.6.27.5", "source_hash": "fcec2135a04bf655e7f9c7be129fdc4f017712503f6cea0ed254ef56c3c31c6e", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix SELECT DISTINCT with index-optimized MIN/MAX on an inheritance tree (Tom Lane) The planner would fail with failed to re-find MinMaxAggInfo record given this combination of factors.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.2.2/changes/017", "db_id": "77dbfd50bbe61e3e4dcdf868550af6a6", "patch_ids": [], "statement_hash": "edf4fe22357b70fd0ac9bdd1bc5a0a4c900951151b9aedf7d7690ec8e0b0c4bf", "relations": [{"rule": 2, "type": "equivalent", "target": "a7723dfb5c90c9c8ffe5c46e170276f7", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "edf4fe22357b70fd0ac9bdd1bc5a0a4c900951151b9aedf7d7690ec8e0b0c4bf"}}], "version": "9.2.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "a7723dfb5c90c9c8ffe5c46e170276f7", "kind": "equivalent", "version": "9.1.7", "label": "9.1.7", "title": "修复在继承树上对索引优化的 MIN/MAX 使用 SELECT DISTINCT 的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "edf4fe22357b70fd0ac9bdd1bc5a0a4c900951151b9aedf7d7690ec8e0b0c4bf"}, "url": "/docs/compare/?release=9.1.7#9.1.7-a276f231734706d6", "source_url": "/docs/release/9.1.7/#id-1.11.6.22.5"}]}, {"id": "9.2.2-8531edde95f57109", "cves": [], "html": "<p>      确保规划器在所有用途上把隐式和显式转换视为等价，除了极少数确实存在语义差异的情况（Tom Lane）\n     </p>", "text": "确保规划器在所有用途上把隐式和显式转换视为等价，除了极少数确实存在语义差异的情况（Tom Lane）", "title": "确保规划器在所有用途上把隐式和显式转换视为等价，除了极少数确实存在语义差异的情况", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.2.2/#id-1.11.6.27.5", "source_hash": "b3a94f690350b6baf438938875ebcae7c73d43928463e408dded09121d3021c2", "section_path": ["变更"], "commit_groups": [], "identity_text": "Make sure the planner sees implicit and explicit casts as equivalent for all purposes, except in the minority of cases where there's actually a semantic difference (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.2.2/changes/018", "db_id": "d1ed73360790532167d116974ce60985", "patch_ids": [], "statement_hash": "c2c4b983ed588c142303ea66f5d4bb24eeaec449641501e34146810dc28556b5", "relations": [], "version": "9.2.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.2.2-62571c8cb571be36", "cves": [], "html": "<p>      在考虑查询能否使用部分索引时把连接子句也考虑在内（Tom Lane）\n     </p><p>      例如，一个严格连接子句就足以确立 <em><code>x</code></em> <code>IS NOT NULL</code> 谓词。这修复了 9.2 中的一项规划器退化，因为以前的版本可以做类似的推导。\n     </p>", "text": "在考虑查询能否使用部分索引时把连接子句也考虑在内（Tom Lane） 例如，一个严格连接子句就足以确立 x IS NOT NULL 谓词。这修复了 9.2 中的一项规划器退化，因为以前的版本可以做类似的推导。", "title": "在考虑查询能否使用部分索引时把连接子句也考虑在内", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.2.2/#id-1.11.6.27.5", "source_hash": "732daf3cd3bb7081715fb2119a54c52e6063ccddd991e55e244287db3f1aefb5", "section_path": ["变更"], "commit_groups": [], "identity_text": "Include join clauses when considering whether partial indexes can be used for a query (Tom Lane) A strict join clause can be sufficient to establish an x IS NOT NULL predicate, for example. This fixes a planner regression in 9.2, since previous versions could make comparable deductions.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.2.2/changes/019", "db_id": "c0f9151911e93fef468070200c07db81", "patch_ids": [], "statement_hash": "4d7076a8c58044b297703589de8288fb09c4d799946aa9ffc1878aad71507056", "relations": [], "version": "9.2.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.2.2-4a0d4b4375cdaaa4", "cves": [], "html": "<p>      限制当同一索引有大量可索引连接子句时规划时间的增长（Tom Lane）\n     </p>", "text": "限制当同一索引有大量可索引连接子句时规划时间的增长（Tom Lane）", "title": "限制当同一索引有大量可索引连接子句时规划时间的增长", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.2.2/#id-1.11.6.27.5", "source_hash": "26a47857ee12a2319a054200e484cb0f9e32104209e1fb93c0dd819e5eb72474", "section_path": ["变更"], "commit_groups": [], "identity_text": "Limit growth of planning time when there are many indexable join clauses for the same index (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.2.2/changes/020", "db_id": "2d9d6beb1ba911f02b40636e96de3cf2", "patch_ids": [], "statement_hash": "44ac0aeb92a6ac895b4957ac7f5b22b943db9efe8ff5014311547a9034131d2a", "relations": [], "version": "9.2.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.2.2-bc78e3577407a1df", "cves": [], "html": "<p>      改进规划器从等价类证明排他约束的能力（Tom Lane）\n     </p>", "text": "改进规划器从等价类证明排他约束的能力（Tom Lane）", "title": "改进规划器从等价类证明排他约束的能力", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.2.2/#id-1.11.6.27.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.2.2/changes/021", "db_id": "74f9254e5a11fc7184ce90ca95b8f939", "patch_ids": [], "statement_hash": "d4f25cd0593297709d677f0beb85dea1481f971e634184dd7a0ee5167717f4ab", "relations": [{"rule": 2, "type": "equivalent", "target": "3f8fe58094a84d0377600ce86a339ccc", "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.2.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"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"}, {"db_id": "3f8fe58094a84d0377600ce86a339ccc", "kind": "equivalent", "version": "9.0.11", "label": "9.0.11", "title": "改进规划器从等价类证明排他约束的能力", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d4f25cd0593297709d677f0beb85dea1481f971e634184dd7a0ee5167717f4ab"}, "url": "/docs/compare/?release=9.0.11#9.0.11-bc78e3577407a1df", "source_url": "/docs/release/9.0.11/#id-1.11.6.17.5"}]}, {"id": "9.2.2-c5d0f44d74e698c5", "cves": [], "html": "<p>      修复哈希子计划中的部分行匹配，使其正确处理跨类型情况（Tom Lane）\n     </p><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> 时。根据所涉及的具体数据类型，这一失误会导致错误答案或崩溃。\n     </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.2.2/#id-1.11.6.27.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.2.2/changes/022", "db_id": "5265841a4909c6cbf5c996eee40a0979", "patch_ids": [], "statement_hash": "5f8da0a2ed6413f53f3ec45b9d401dcb16912e656443acb2cb74ee9d5a6ef8cf", "relations": [{"rule": 2, "type": "equivalent", "target": "7919d810a7c9a9b0539688c6e499d336", "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.2.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"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"}, {"db_id": "7919d810a7c9a9b0539688c6e499d336", "kind": "equivalent", "version": "9.0.11", "label": "9.0.11", "title": "修复哈希子计划中的部分行匹配，使其正确处理跨类型情况", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5f8da0a2ed6413f53f3ec45b9d401dcb16912e656443acb2cb74ee9d5a6ef8cf"}, "url": "/docs/compare/?release=9.0.11#9.0.11-c5d0f44d74e698c5", "source_url": "/docs/release/9.0.11/#id-1.11.6.17.5"}]}, {"id": "9.2.2-193fd80f479c7ee8", "cves": [], "html": "<p>      修复 btree 标记/恢复函数，使其处理数组键（Tom Lane）\n     </p><p>      这一疏忽可能导致内层是使用 <code><em><code>indexed_column</code></em> = ANY(<em><code>array</code></em>)</code> 条件的索引扫描的合并连接给出错误答案。\n     </p>", "text": "修复 btree 标记/恢复函数，使其处理数组键（Tom Lane） 这一疏忽可能导致内层是使用 indexed_column = ANY(array) 条件的索引扫描的合并连接给出错误答案。", "title": "修复 btree 标记/恢复函数，使其处理数组键", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.2.2/#id-1.11.6.27.5", "source_hash": "e526b66e56ae313f2c40e4f80db82f2461e86f7f293dd53c43e15787c73edc36", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix btree mark/restore functions to handle array keys (Tom Lane) This oversight could result in wrong answers from merge joins whose inner side is an index scan using an indexed_column = ANY(array) condition.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.2.2/changes/023", "db_id": "205ddd491161b8bba8fd28b0ef7d861d", "patch_ids": [], "statement_hash": "89dd82c7750556e96d594622e538da0a95e18ddc5a8dcd953a64e9acf3609b30", "relations": [], "version": "9.2.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.2.2-45cd5faebe4e3008", "cves": [], "html": "<p>      撤销减少快照获取数量的补丁（Tom Lane）\n     </p><p>      9.2 中减少查询执行期间快照获取数量的变更导致了一些以前版本中未见的异常行为，因为执行会使用在锁定查询所用的表之前获取的快照继续进行。因此，例如即使前一事务持有排他锁，查询也不保证能看到该事务提交的更新。我们可能会在未来版本中重新处理这一点，但目前先恢复为 9.2 之前的方式。\n     </p>", "text": "撤销减少快照获取数量的补丁（Tom Lane） 9.2 中减少查询执行期间快照获取数量的变更导致了一些以前版本中未见的异常行为，因为执行会使用在锁定查询所用的表之前获取的快照继续进行。因此，例如即使前一事务持有排他锁，查询也不保证能看到该事务提交的更新。我们可能会在未来版本中重新处理这一点，但目前先恢复为 9.2 之前的方式。", "title": "撤销减少快照获取数量的补丁", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.2.2/#id-1.11.6.27.5", "source_hash": "fc0bbec62355662530cf0025c1ebcdf0bc5a8bfa0b6104a3d17edfdd0a2eee7b", "section_path": ["变更"], "commit_groups": [], "identity_text": "Revert patch for taking fewer snapshots (Tom Lane) The 9.2 change to reduce the number of snapshots taken during query execution led to some anomalous behaviors not seen in previous releases, because execution would proceed with a snapshot acquired before locking the tables used by the query. Thus, for example, a query would not be guaranteed to see updates committed by a preceding transaction even if that transaction had exclusive lock. We'll probably revisit this in future releases, but meanwhile put it back the way it was before 9.2.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.2.2/changes/024", "db_id": "fa7273cf480537135d0f93f8e6f215cf", "patch_ids": [], "statement_hash": "7edc5647cde09fbf812c3af2e5eb70271c868b386f08f5f6066cfd1775b07c22", "relations": [], "version": "9.2.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.2.2-7cb9320b6671e5f2", "cves": [], "html": "<p>      在为 <code>AFTER ROW UPDATE/DELETE</code> 触发器重新获取旧元组时获取缓冲区锁（Andres Freund）\n     </p><p>      在非常罕见的情况下，这一疏忽可能导致向触发器 <code>WHEN</code> 条件或外键强制触发器的预检查逻辑传递不正确的数据。这可能导致崩溃，或者在是否触发触发器上做出错误决定。\n     </p>", "text": "在为 AFTER ROW UPDATE/DELETE 触发器重新获取旧元组时获取缓冲区锁（Andres Freund） 在非常罕见的情况下，这一疏忽可能导致向触发器 WHEN 条件或外键强制触发器的预检查逻辑传递不正确的数据。这可能导致崩溃，或者在是否触发触发器上做出错误决定。", "title": "在为 AFTER ROW UPDATE/DELETE 触发器重新获取旧元组时获取缓冲区锁", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.2.2/#id-1.11.6.27.5", "source_hash": "f9376417f22c1c489300dd90480deabe03f873955d2f1371d26adfcc1285b729", "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 a trigger WHEN condition, or 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.2.2/changes/025", "db_id": "baa0d25eb6e4db0113e2f1c94090ddf9", "patch_ids": [], "statement_hash": "d3b49daf2cdcaba953da22aaf23a47cf6b3c743687239a0372a175ef7f77ef7d", "relations": [{"rule": 2, "type": "equivalent", "target": "3cf3ced6a733e5aa39958ba11f149fa2", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d3b49daf2cdcaba953da22aaf23a47cf6b3c743687239a0372a175ef7f77ef7d"}}], "version": "9.2.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "3cf3ced6a733e5aa39958ba11f149fa2", "kind": "equivalent", "version": "9.1.7", "label": "9.1.7", "title": "在为 AFTER ROW UPDATE/DELETE 触发器重新获取旧元组时获取缓冲区锁", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d3b49daf2cdcaba953da22aaf23a47cf6b3c743687239a0372a175ef7f77ef7d"}, "url": "/docs/compare/?release=9.1.7#9.1.7-7cb9320b6671e5f2", "source_url": "/docs/release/9.1.7/#id-1.11.6.22.5"}]}, {"id": "9.2.2-a077a4b2e76cbe3d", "cves": [], "html": "<p>      修复<code>ALTER COLUMN TYPE</code>以正确重建继承的检查约束（Tom Lane）\n     </p><p>      这在 8.4 之前的版本中工作正常，现在在 8.4 及更高版本中也工作正常。\n     </p>", "text": "修复ALTER COLUMN TYPE以正确重建继承的检查约束（Tom Lane） 这在 8.4 之前的版本中工作正常，现在在 8.4 及更高版本中也工作正常。", "title": "修复ALTER COLUMN TYPE以正确重建继承的检查约束", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.2.2/#id-1.11.6.27.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.2.2/changes/026", "db_id": "3f077e626bcccab27699d61b9d045f1c", "patch_ids": [], "statement_hash": "7f2a4685500560146dfaf2c599e148c1e701249c82e53f7f451020b766a4f680", "relations": [{"rule": 2, "type": "equivalent", "target": "c1030cf8dc27a2e3b7f6cb10b4fb1ea5", "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.2.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"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"}, {"db_id": "c1030cf8dc27a2e3b7f6cb10b4fb1ea5", "kind": "equivalent", "version": "9.0.11", "label": "9.0.11", "title": "修复ALTER COLUMN TYPE以正确重建继承的检查约束", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7f2a4685500560146dfaf2c599e148c1e701249c82e53f7f451020b766a4f680"}, "url": "/docs/compare/?release=9.0.11#9.0.11-a077a4b2e76cbe3d", "source_url": "/docs/release/9.0.11/#id-1.11.6.17.5"}]}, {"id": "9.2.2-81b68c53694823ea", "cves": [], "html": "<p>      修复 <code>ALTER EXTENSION SET SCHEMA</code> 未能把一些从属对象移入新模式的问题（Álvaro Herrera、Dimitri Fontaine）\n     </p>", "text": "修复 ALTER EXTENSION SET SCHEMA 未能把一些从属对象移入新模式的问题（Álvaro Herrera、Dimitri Fontaine）", "title": "修复 ALTER EXTENSION SET SCHEMA 未能把一些从属对象移入新模式的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.2.2/#id-1.11.6.27.5", "source_hash": "3e151374874b5e391548cc6c9349bcece4bea23eb12119be629f11b5ede795b8", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix ALTER EXTENSION SET SCHEMA's failure to move some subsidiary objects into the new schema (Álvaro Herrera, Dimitri Fontaine)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.2.2/changes/027", "db_id": "3cef992570913f29f7a35a1c0fddb3b1", "patch_ids": [], "statement_hash": "a1392e72dad6bf15ef28242ba90d8024dc5c17817dda0c1ad1e3a0acf099b1fa", "relations": [{"rule": 2, "type": "equivalent", "target": "a02f46093564bc9aff8fec0d28007a9e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a1392e72dad6bf15ef28242ba90d8024dc5c17817dda0c1ad1e3a0acf099b1fa"}}], "version": "9.2.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "a02f46093564bc9aff8fec0d28007a9e", "kind": "equivalent", "version": "9.1.7", "label": "9.1.7", "title": "修复 ALTER EXTENSION SET SCHEMA 未能把一些从属对象移入新模式的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a1392e72dad6bf15ef28242ba90d8024dc5c17817dda0c1ad1e3a0acf099b1fa"}, "url": "/docs/compare/?release=9.1.7#9.1.7-81b68c53694823ea", "source_url": "/docs/release/9.1.7/#id-1.11.6.22.5"}]}, {"id": "9.2.2-0395c658bdb692f0", "cves": [], "html": "<p>      在扩展查询协议中正确处理 <code>CREATE TABLE AS EXECUTE</code>（Tom Lane）\n     </p>", "text": "在扩展查询协议中正确处理 CREATE TABLE AS EXECUTE（Tom Lane）", "title": "在扩展查询协议中正确处理 CREATE TABLE AS EXECUTE", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.2.2/#id-1.11.6.27.5", "source_hash": "ae0a1e7418bf744ac0101c937ba5f70a7ed1fc900d41c288ad06993dee7bc8cc", "section_path": ["变更"], "commit_groups": [], "identity_text": "Handle CREATE TABLE AS EXECUTE correctly in extended query protocol (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.2.2/changes/028", "db_id": "a2b997ad0ca12901d572c90f47a48300", "patch_ids": [], "statement_hash": "e3239ae032ec983de7aca2861397a5f78317407d7dc7068c2f2ed21fdc645d11", "relations": [], "version": "9.2.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.2.2-49fb4eb20f238016", "cves": [], "html": "<p>      在 <code>DROP RULE IF NOT EXISTS</code> 和 <code>DROP TRIGGER IF NOT EXISTS</code> 中不修改输入解析树（Tom Lane）\n     </p><p>      如果这类已缓存语句被重新执行，这一失误会导致错误。\n     </p>", "text": "在 DROP RULE IF NOT EXISTS 和 DROP TRIGGER IF NOT EXISTS 中不修改输入解析树（Tom Lane） 如果这类已缓存语句被重新执行，这一失误会导致错误。", "title": "在 DROP RULE IF NOT EXISTS 和 DROP TRIGGER IF NOT EXISTS 中不修改输入解析树", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.2.2/#id-1.11.6.27.5", "source_hash": "242859fc779fda5c2c244de210a85ac5554f28d93fb3a73e6ae7bbaf328899b8", "section_path": ["变更"], "commit_groups": [], "identity_text": "Don't modify the input parse tree in DROP RULE IF NOT EXISTS and DROP TRIGGER IF NOT EXISTS (Tom Lane) This mistake would cause errors if a cached statement of one of these types was re-executed.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.2.2/changes/029", "db_id": "0d9f6826610db52b9757d14341f30016", "patch_ids": [], "statement_hash": "9d139df65ab3c3ffa7861284691d4555cb4503d8e7d45dd305baac3d85350391", "relations": [], "version": "9.2.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.2.2-e27a36b387231ba6", "cves": [], "html": "<p>      修复 <code>REASSIGN OWNED</code> 对表空间授权的处理（Álvaro Herrera）\n     </p>", "text": "修复 REASSIGN OWNED 对表空间授权的处理（Álvaro Herrera）", "title": "修复 REASSIGN OWNED 对表空间授权的处理", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.2.2/#id-1.11.6.27.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.2.2/changes/030", "db_id": "41f99fd79892368c78b07728abad1417", "patch_ids": [], "statement_hash": "762a6558fe21e9c0de32e15bfe3f2c2a45d7c990b37cd41ea19688a73ea16ee9", "relations": [{"rule": 2, "type": "equivalent", "target": "343395ba7a3fc6573e2bf11c722c65e5", "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.2.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"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"}, {"db_id": "343395ba7a3fc6573e2bf11c722c65e5", "kind": "equivalent", "version": "9.0.11", "label": "9.0.11", "title": "修复 REASSIGN OWNED 对表空间授权的处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "762a6558fe21e9c0de32e15bfe3f2c2a45d7c990b37cd41ea19688a73ea16ee9"}, "url": "/docs/compare/?release=9.0.11#9.0.11-e27a36b387231ba6", "source_url": "/docs/release/9.0.11/#id-1.11.6.17.5"}]}, {"id": "9.2.2-ed19f8f24efc9704", "cves": [], "html": "<p>      忽略视图中系统列的不正确 <code>pg_attribute</code> 条目（Tom Lane）\n     </p><p>      视图没有任何系统列。然而，我们在把表转换为视图时忘记移除这类条目。这一问题在 9.3 及更高版本中已正确修复，但在以前的分支中，我们需要防御已经错误转换的视图。\n     </p>", "text": "忽略视图中系统列的不正确 pg_attribute 条目（Tom Lane） 视图没有任何系统列。然而，我们在把表转换为视图时忘记移除这类条目。这一问题在 9.3 及更高版本中已正确修复，但在以前的分支中，我们需要防御已经错误转换的视图。", "title": "忽略视图中系统列的不正确 pg_attribute 条目", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.2.2/#id-1.11.6.27.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.2.2/changes/031", "db_id": "24fc828ca925559f1894bd2b55b7940e", "patch_ids": [], "statement_hash": "29602b24f8ee1fea98692ce519778907107ec2e1d964d9d68e8e8de3af26e7fa", "relations": [{"rule": 2, "type": "equivalent", "target": "33fcdb36e1fd3344ac7f97f5f85d11ca", "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.2.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"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"}, {"db_id": "33fcdb36e1fd3344ac7f97f5f85d11ca", "kind": "equivalent", "version": "9.0.11", "label": "9.0.11", "title": "忽略视图中系统列的不正确 pg_attribute 条目", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "29602b24f8ee1fea98692ce519778907107ec2e1d964d9d68e8e8de3af26e7fa"}, "url": "/docs/compare/?release=9.0.11#9.0.11-ed19f8f24efc9704", "source_url": "/docs/release/9.0.11/#id-1.11.6.17.5"}]}, {"id": "9.2.2-fa4095dad36a0c20", "cves": [], "html": "<p>      修复规则打印，使其正确转储 <code>INSERT INTO <em><code>table</code></em> DEFAULT VALUES</code>（Tom Lane）\n     </p>", "text": "修复规则打印，使其正确转储 INSERT INTO table DEFAULT VALUES（Tom Lane）", "title": "修复规则打印，使其正确转储 INSERT INTO table DEFAULT VALUES", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.2.2/#id-1.11.6.27.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.2.2/changes/032", "db_id": "274a016bd3de73befac193b7851d22a0", "patch_ids": [], "statement_hash": "067c993595773130e8eec4e9aa087a1e6c502d30f2cdcb0e6fc9884f1d570e7a", "relations": [{"rule": 2, "type": "equivalent", "target": "69f1ef7b4b3db99d894e0751399cb649", "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.2.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"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"}, {"db_id": "69f1ef7b4b3db99d894e0751399cb649", "kind": "equivalent", "version": "9.0.11", "label": "9.0.11", "title": "修复规则打印，使其正确转储 INSERT INTO table DEFAULT VALUES", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "067c993595773130e8eec4e9aa087a1e6c502d30f2cdcb0e6fc9884f1d570e7a"}, "url": "/docs/compare/?release=9.0.11#9.0.11-fa4095dad36a0c20", "source_url": "/docs/release/9.0.11/#id-1.11.6.17.5"}]}, {"id": "9.2.2-b2745f67272f840b", "cves": [], "html": "<p>      防止当查询中有过多 <code>UNION</code>/<code>INTERSECT</code>/<code>EXCEPT</code> 子句时栈溢出（Tom Lane）\n     </p>", "text": "防止当查询中有过多 UNION/INTERSECT/EXCEPT 子句时栈溢出（Tom Lane）", "title": "防止当查询中有过多 UNION/INTERSECT/EXCEPT 子句时栈溢出", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.2.2/#id-1.11.6.27.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.2.2/changes/033", "db_id": "481004e97fd680ac9920c0781f9e9786", "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": "84ce0fdf3b32c5c0dd5cda3d876d6208", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1450e9825a8ad22603eced43d6ecff0b7eb858d190e20342013832a4e755620e"}}], "version": "9.2.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"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"}, {"db_id": "84ce0fdf3b32c5c0dd5cda3d876d6208", "kind": "equivalent", "version": "9.0.11", "label": "9.0.11", "title": "防止当查询中有过多 UNION/INTERSECT/EXCEPT 子句时栈溢出", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1450e9825a8ad22603eced43d6ecff0b7eb858d190e20342013832a4e755620e"}, "url": "/docs/compare/?release=9.0.11#9.0.11-b2745f67272f840b", "source_url": "/docs/release/9.0.11/#id-1.11.6.17.5"}]}, {"id": "9.2.2-f2a7408232041331", "cves": [], "html": "<p>      防止用最小可能整数值除以 -1 时依赖平台的失败（Xi Wang、Tom Lane）\n     </p>", "text": "防止用最小可能整数值除以 -1 时依赖平台的失败（Xi Wang、Tom Lane）", "title": "防止用最小可能整数值除以 -1 时依赖平台的失败", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.2.2/#id-1.11.6.27.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.2.2/changes/034", "db_id": "3e618f46cc6d08632858ccbe53d9f379", "patch_ids": [], "statement_hash": "053df3d33e982daec41e10e7e7a52d1733bc52f57dfed410c2a7a15d0dd13eda", "relations": [{"rule": 2, "type": "equivalent", "target": "7329af02fec039c07ee6db77246ed06b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "053df3d33e982daec41e10e7e7a52d1733bc52f57dfed410c2a7a15d0dd13eda"}}, {"rule": 2, "type": "equivalent", "target": "b9768a094fffe40495c8ec3a027a14fc", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "053df3d33e982daec41e10e7e7a52d1733bc52f57dfed410c2a7a15d0dd13eda"}}], "version": "9.2.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"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"}, {"db_id": "b9768a094fffe40495c8ec3a027a14fc", "kind": "equivalent", "version": "9.0.11", "label": "9.0.11", "title": "防止用最小可能整数值除以 -1 时依赖平台的失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "053df3d33e982daec41e10e7e7a52d1733bc52f57dfed410c2a7a15d0dd13eda"}, "url": "/docs/compare/?release=9.0.11#9.0.11-f2a7408232041331", "source_url": "/docs/release/9.0.11/#id-1.11.6.17.5"}]}, {"id": "9.2.2-096353ba0082f63a", "cves": [], "html": "<p>      修复日期解析中可能越过字符串末尾的访问（Hitoshi Harada）\n     </p>", "text": "修复日期解析中可能越过字符串末尾的访问（Hitoshi Harada）", "title": "修复日期解析中可能越过字符串末尾的访问", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.2.2/#id-1.11.6.27.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.2.2/changes/035", "db_id": "37d10567707f1fb59eacdcddacdc4acb", "patch_ids": [], "statement_hash": "b8b60e160031f49e4c1d50def21440917b398f9f64cac865dcdd0675bd60b317", "relations": [{"rule": 2, "type": "equivalent", "target": "d65abcc5f53c804de848de918001f632", "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.2.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"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"}, {"db_id": "d65abcc5f53c804de848de918001f632", "kind": "equivalent", "version": "9.0.11", "label": "9.0.11", "title": "修复日期解析中可能越过字符串末尾的访问", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b8b60e160031f49e4c1d50def21440917b398f9f64cac865dcdd0675bd60b317"}, "url": "/docs/compare/?release=9.0.11#9.0.11-096353ba0082f63a", "source_url": "/docs/release/9.0.11/#id-1.11.6.17.5"}]}, {"id": "9.2.2-90cfae9c3f446948", "cves": [], "html": "<p>      修复当 XID 回卷发生在检查点期间且 <code>wal_level</code> 为 <code>hot_standby</code> 时 XID 纪元（epoch）未能推进的问题（Tom Lane、Andres Freund）\n     </p><p>      虽然这一失误对 <span>PostgreSQL</span> 本身没有特别影响，但它对依赖 <code>txid_current()</code> 及相关函数的应用不利：TXID 值看起来会倒退。\n     </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.2.2/#id-1.11.6.27.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.2.2/changes/036", "db_id": "1dc31bafecc7b3912ec7eb4a41ff6c6b", "patch_ids": [], "statement_hash": "2d6eed93f8708a2e2b9478a2d032b212ad003115597b599d3e875b4941d9db59", "relations": [{"rule": 2, "type": "equivalent", "target": "9c88c1919d84a22fccbd58d15b4c9de5", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2d6eed93f8708a2e2b9478a2d032b212ad003115597b599d3e875b4941d9db59"}}, {"rule": 2, "type": "equivalent", "target": "e63425a93ead86892a18fdc578b1cb81", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2d6eed93f8708a2e2b9478a2d032b212ad003115597b599d3e875b4941d9db59"}}], "version": "9.2.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"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"}, {"db_id": "e63425a93ead86892a18fdc578b1cb81", "kind": "equivalent", "version": "9.0.11", "label": "9.0.11", "title": "修复当 XID 回卷发生在检查点期间且 wal_level 为 hot_standby 时 XID 纪元（epoch）未能推进的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2d6eed93f8708a2e2b9478a2d032b212ad003115597b599d3e875b4941d9db59"}, "url": "/docs/compare/?release=9.0.11#9.0.11-90cfae9c3f446948", "source_url": "/docs/release/9.0.11/#id-1.11.6.17.5"}]}, {"id": "9.2.2-4b1eee72b154a8ee", "cves": [], "html": "<p>      修复 <code>pg_terminate_backend()</code> 和 <code>pg_cancel_backend()</code>，使其对不存在的目标进程不抛出错误（Josh Kupershmidt）\n     </p><p>      这种情况下，超级用户调用时已经按预期工作，但普通用户调用时则不然。\n     </p>", "text": "修复 pg_terminate_backend() 和 pg_cancel_backend()，使其对不存在的目标进程不抛出错误（Josh Kupershmidt） 这种情况下，超级用户调用时已经按预期工作，但普通用户调用时则不然。", "title": "修复 pg_terminate_backend() 和 pg_cancel_backend()，使其对不存在的目标进程不抛出错误", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.2.2/#id-1.11.6.27.5", "source_hash": "f831f40cfa9fdc58e7c12f21d2b15e1baef61c6a75a67973cdf5079fc9c9e8f6", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix pg_terminate_backend() and pg_cancel_backend() to not throw error for a non-existent target process (Josh Kupershmidt) This case already worked as intended when called by a superuser, but not so much when called by ordinary users.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.2.2/changes/037", "db_id": "be7f61d12af1e4c461a93bb394dccdf3", "patch_ids": [], "statement_hash": "8fc124ec5c0b4dfb2d39ab278c25a3869814f734d3cd0fbc7bbf6fd7c9cf1d53", "relations": [], "version": "9.2.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.2.2-d20d3f11663d3728", "cves": [], "html": "<p>      修复 <code>pg_stat_replication</code>.<code>sync_state</code> 在页边界处的显示（Kyotaro Horiguchi）\n     </p>", "text": "修复 pg_stat_replication.sync_state 在页边界处的显示（Kyotaro Horiguchi）", "title": "修复 pg_stat_replication.sync_state 在页边界处的显示", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.2.2/#id-1.11.6.27.5", "source_hash": "0c0b7e0143029ac63668f79dd73d716c25e4d103a4f3d42d899bb64b6ea8a917", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix display of pg_stat_replication.sync_state at a page boundary (Kyotaro Horiguchi)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.2.2/changes/038", "db_id": "be59d3f49b7aeb812e1afebc36c43a55", "patch_ids": [], "statement_hash": "e675847f8e783b85bd744dbdb068cf4fd020149ac8f658123c20abd4245ef300", "relations": [{"rule": 2, "type": "equivalent", "target": "4ae3e6873e06755c9f1cfb95c283f945", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e675847f8e783b85bd744dbdb068cf4fd020149ac8f658123c20abd4245ef300"}}], "version": "9.2.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "4ae3e6873e06755c9f1cfb95c283f945", "kind": "equivalent", "version": "9.1.7", "label": "9.1.7", "title": "修复 pg_stat_replication.sync_state 在页边界处的显示", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e675847f8e783b85bd744dbdb068cf4fd020149ac8f658123c20abd4245ef300"}, "url": "/docs/compare/?release=9.1.7#9.1.7-d20d3f11663d3728", "source_url": "/docs/release/9.1.7/#id-1.11.6.22.5"}]}, {"id": "9.2.2-f71313accaaa4b69", "cves": [], "html": "<p>      当 Unix 域套接字的路径名长度超过平台特定限制时，生成可理解的错误消息（Tom Lane、Andrew Dunstan）\n     </p><p>      此前这会导致相当无用的结果，例如<span>“<span>Non-recoverable failure in name resolution</span>”</span>。\n     </p>", "text": "当 Unix 域套接字的路径名长度超过平台特定限制时，生成可理解的错误消息（Tom Lane、Andrew Dunstan） 此前这会导致相当无用的结果，例如“Non-recoverable failure in name resolution”。", "title": "当 Unix 域套接字的路径名长度超过平台特定限制时，生成可理解的错误消息", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.2.2/#id-1.11.6.27.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.2.2/changes/039", "db_id": "5e4ef2a68eda76677b36c6d7911d32db", "patch_ids": [], "statement_hash": "ed7d6493553f125d1a87aa5e19322b8e7ed4fb7d8a9182efbe28fffa1b65da3b", "relations": [{"rule": 2, "type": "equivalent", "target": "8b4afadb80fca126ee808db9d81f07da", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ed7d6493553f125d1a87aa5e19322b8e7ed4fb7d8a9182efbe28fffa1b65da3b"}}, {"rule": 2, "type": "equivalent", "target": "e5de37f6158d6ded52fb1e3cfa49cc86", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ed7d6493553f125d1a87aa5e19322b8e7ed4fb7d8a9182efbe28fffa1b65da3b"}}], "version": "9.2.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"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"}, {"db_id": "e5de37f6158d6ded52fb1e3cfa49cc86", "kind": "equivalent", "version": "9.0.11", "label": "9.0.11", "title": "当 Unix 域套接字的路径名长度超过平台特定限制时，生成可理解的错误消息", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ed7d6493553f125d1a87aa5e19322b8e7ed4fb7d8a9182efbe28fffa1b65da3b"}, "url": "/docs/compare/?release=9.0.11#9.0.11-f71313accaaa4b69", "source_url": "/docs/release/9.0.11/#id-1.11.6.17.5"}]}, {"id": "9.2.2-a6f35676ca881b20", "cves": [], "html": "<p>      修复向客户端发送组合列值时的内存泄漏（Tom Lane）\n     </p>", "text": "修复向客户端发送组合列值时的内存泄漏（Tom Lane）", "title": "修复向客户端发送组合列值时的内存泄漏", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.2.2/#id-1.11.6.27.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.2.2/changes/040", "db_id": "29587f182d2fa5e79c706d9bf47dd8c2", "patch_ids": [], "statement_hash": "94041bc5dbcc26bd2cb30df95d7847a85ddc7f9c01bb9948c8d07a9c7ec8576e", "relations": [{"rule": 2, "type": "equivalent", "target": "845266b9d6f758be85ffece6eb32864d", "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.2.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"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"}, {"db_id": "845266b9d6f758be85ffece6eb32864d", "kind": "equivalent", "version": "9.0.11", "label": "9.0.11", "title": "修复向客户端发送组合列值时的内存泄漏", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "94041bc5dbcc26bd2cb30df95d7847a85ddc7f9c01bb9948c8d07a9c7ec8576e"}, "url": "/docs/compare/?release=9.0.11#9.0.11-a6f35676ca881b20", "source_url": "/docs/release/9.0.11/#id-1.11.6.17.5"}]}, {"id": "9.2.2-40410a2d404e572f", "cves": [], "html": "<p>      通过在提交时不搜索子事务锁来节省一些周期（Simon Riggs）\n     </p><p>      在持有大量排他锁的事务中，这种无用活动可能开销相当大。\n     </p>", "text": "通过在提交时不搜索子事务锁来节省一些周期（Simon Riggs） 在持有大量排他锁的事务中，这种无用活动可能开销相当大。", "title": "通过在提交时不搜索子事务锁来节省一些周期", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.2.2/#id-1.11.6.27.5", "source_hash": "12e8128287d9127af57f6f2cb3e9f8f669e0c484df56ceaeeada6ac8ad0f7e64", "section_path": ["变更"], "commit_groups": [], "identity_text": "Save some cycles by not searching for subtransaction locks at commit (Simon Riggs) In a transaction holding many exclusive locks, this useless activity could be quite costly.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.2.2/changes/041", "db_id": "dcd14a056c616d7b05e17fcb42ce96ef", "patch_ids": [], "statement_hash": "1a2a7d557e973679455cdc85db1dd2893335e80020cc92a5f2bed6ea207bbf03", "relations": [], "version": "9.2.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.2.2-22df03d462a0570c", "cves": [], "html": "<p>      使 <span>pg_ctl</span> 读取 <code>postmaster.pid</code> 文件更健壮（Heikki Linnakangas）\n     </p><p>      这修复了竞态条件和可能的文件描述符泄漏。\n     </p>", "text": "使 pg_ctl 读取 postmaster.pid 文件更健壮（Heikki Linnakangas） 这修复了竞态条件和可能的文件描述符泄漏。", "title": "使 pg_ctl 读取 postmaster.pid 文件更健壮", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.2.2/#id-1.11.6.27.5", "source_hash": "8a518c777257e6f70f53a3aac78fd9a88808c7a23f38a30083e26bc2cc034a56", "section_path": ["变更"], "commit_groups": [], "identity_text": "Make pg_ctl more robust about reading the postmaster.pid file (Heikki Linnakangas) This fixes race conditions and possible file descriptor leakage.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.2.2/changes/042", "db_id": "c879416a99eb12ad8319790b081b4e7a", "patch_ids": [], "statement_hash": "47b06487ad2d1d7221a4ec4c92d81e6f6d0082e64c0ca2b243f3999dad7dd1cf", "relations": [], "version": "9.2.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.2.2-f4495ad2462438ba", "cves": [], "html": "<p>      修复当呈现错误编码的数据且 <code>client_encoding</code> 设置为仅客户端编码（如 SJIS）时 <span>psql</span> 可能崩溃的问题（Jiang Guiqing）\n     </p>", "text": "修复当呈现错误编码的数据且 client_encoding 设置为仅客户端编码（如 SJIS）时 psql 可能崩溃的问题（Jiang Guiqing）", "title": "修复当呈现错误编码的数据且 client_encoding 设置为仅客户端编码（如 SJIS）时 psql 可能崩溃的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.2.2/#id-1.11.6.27.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.2.2/changes/043", "db_id": "bbcafb2292209fa0337753b5958ec7fd", "patch_ids": [], "statement_hash": "7601038850abbb31283e151280bbff27797061e933b5a55473ceabcad85b9d55", "relations": [{"rule": 2, "type": "equivalent", "target": "bfd3a3b64b6be83f8a9a1eb95aa72880", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7601038850abbb31283e151280bbff27797061e933b5a55473ceabcad85b9d55"}}, {"rule": 2, "type": "equivalent", "target": "eb261ab2484b3655d9825439be7e4fcb", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7601038850abbb31283e151280bbff27797061e933b5a55473ceabcad85b9d55"}}], "version": "9.2.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"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"}, {"db_id": "eb261ab2484b3655d9825439be7e4fcb", "kind": "equivalent", "version": "9.0.11", "label": "9.0.11", "title": "修复当呈现错误编码的数据且 client_encoding 设置为仅客户端编码（如 SJIS）时 psql 可能崩溃的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7601038850abbb31283e151280bbff27797061e933b5a55473ceabcad85b9d55"}, "url": "/docs/compare/?release=9.0.11#9.0.11-f4495ad2462438ba", "source_url": "/docs/release/9.0.11/#id-1.11.6.17.5"}]}, {"id": "9.2.2-b9182edf8812ed7a", "cves": [], "html": "<p>      让 <span>pg_dump</span> 把 <code>SEQUENCE SET</code> 项转储到归档的数据节而不是前数据节（Tom Lane）\n     </p><p>      这修复了 <code>--data-only</code> 与 <code>--section=data</code> 含义之间不合需要的 inconsistency，还修复了被标记为扩展配置表的序列的转储。\n     </p>", "text": "让 pg_dump 把 SEQUENCE SET 项转储到归档的数据节而不是前数据节（Tom Lane） 这修复了 --data-only 与 --section=data 含义之间不合需要的 inconsistency，还修复了被标记为扩展配置表的序列的转储。", "title": "让 pg_dump 把 SEQUENCE SET 项转储到归档的数据节而不是前数据节", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.2.2/#id-1.11.6.27.5", "source_hash": "47f9d3f9c1e5ac1773b791a4223ab100b657facc3d045119b93a796ecf4676cf", "section_path": ["变更"], "commit_groups": [], "identity_text": "Make pg_dump dump SEQUENCE SET items in the data not pre-data section of the archive (Tom Lane) This fixes an undesirable inconsistency between the meanings of --data-only and --section=data, and also fixes dumping of sequences that are marked as extension configuration tables.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.2.2/changes/044", "db_id": "1b9c5212d5ed93ad5fc8c06a52acce50", "patch_ids": [], "statement_hash": "941da5cbbda8f0f99d14e5d380f17f0f4c7c46d6837cbff4d4f56a02930d1d9a", "relations": [], "version": "9.2.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.2.2-3ed727a9225826f9", "cves": [], "html": "<p>      修复 <span>pg_dump</span> 在 <code>--clean</code> 模式下对 <code>DROP DATABASE</code> 命令的处理（Guillaume Lelarge）\n     </p><p>      从 9.2.0 开始，<code>pg_dump --clean</code> 会发出一条 <code>DROP DATABASE</code> 命令，根据使用场景的不同，这要么无用要么危险。它不再这样做。此变更还修复了 <code>--clean</code> 与 <code>--create</code> 的组合，使其合理工作，即在重新连接到目标数据库之前发出 <code>DROP DATABASE</code> 和 <code>CREATE DATABASE</code>。\n     </p>", "text": "修复 pg_dump 在 --clean 模式下对 DROP DATABASE 命令的处理（Guillaume Lelarge） 从 9.2.0 开始，pg_dump --clean 会发出一条 DROP DATABASE 命令，根据使用场景的不同，这要么无用要么危险。它不再这样做。此变更还修复了 --clean 与 --create 的组合，使其合理工作，即在重新连接到目标数据库之前发出 DROP DATABASE 和 CREATE DATABASE。", "title": "修复 pg_dump 在 --clean 模式下对 DROP DATABASE 命令的处理", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.2.2/#id-1.11.6.27.5", "source_hash": "e26fb93709e62c2fef1c9117b43422c03e0591d7ef9f5cf2107ed7dc0e94885e", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix pg_dump's handling of DROP DATABASE commands in --clean mode (Guillaume Lelarge) Beginning in 9.2.0, pg_dump --clean would issue a DROP DATABASE command, which was either useless or dangerous depending on the usage scenario. It no longer does that. This change also fixes the combination of --clean and --create to work sensibly, i.e., emit DROP DATABASE then CREATE DATABASE before reconnecting to the target database.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.2.2/changes/045", "db_id": "46ca1ec131259229aed8cc11172c0ecd", "patch_ids": [], "statement_hash": "67ef243ce3552812bb8a12b29d40d02d53ac351d774f91b214bd450bb1f7170e", "relations": [], "version": "9.2.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.2.2-24595a542f495dd2", "cves": [], "html": "<p>      修复 <span>pg_dump</span> 处理带循环依赖且无关系选项的视图的问题（Tom Lane）\n     </p><p>      先前对涉及循环依赖的视图转储关系选项的修复，在视图没有选项的情况下不能正确工作；它生成了语法无效的 <code>ALTER VIEW foo SET ()</code>。\n     </p>", "text": "修复 pg_dump 处理带循环依赖且无关系选项的视图的问题（Tom Lane） 先前对涉及循环依赖的视图转储关系选项的修复，在视图没有选项的情况下不能正确工作；它生成了语法无效的 ALTER VIEW foo SET ()。", "title": "修复 pg_dump 处理带循环依赖且无关系选项的视图的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.2.2/#id-1.11.6.27.5", "source_hash": "ec07635664c511bdc8cc3b317d9c81c39dcc3022c1fce8a0e398124956244fe6", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix pg_dump for views with circular dependencies and no relation options (Tom Lane) The previous fix to dump relation options when a view is involved in a circular dependency didn't work right for the case that the view has no options; it emitted ALTER VIEW foo SET () which is invalid syntax.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.2.2/changes/046", "db_id": "8ff60ed2d06b0218e67a4fd3f6601c40", "patch_ids": [], "statement_hash": "7a81290295b408e28313aca0287773ec225f038997ca32f4ae9cf0abb0e5ef8d", "relations": [], "version": "9.2.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.2.2-122f96647ad3e80d", "cves": [], "html": "<p>      修复 <span>pg_dump</span> 以 <code>tar</code> 输出格式生成的 <code>restore.sql</code> 脚本中的缺陷（Tom Lane）\n     </p><p>      该脚本在表名包含大写字符时会直接失败。此外，让该脚本既能以常规 COPY 模式也能以 <code>--inserts</code> 模式恢复数据。\n     </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.2.2/#id-1.11.6.27.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.2.2/changes/047", "db_id": "97cf44ff6bc6e3e37334890b48df6a0c", "patch_ids": [], "statement_hash": "743ea37f7de3775ac6e5fb3b825b04a235c953be937e15f03e6d592e958da788", "relations": [{"rule": 2, "type": "equivalent", "target": "0fbaf302362b99ceb1b7f934fee66c89", "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.2.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"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"}, {"db_id": "0fbaf302362b99ceb1b7f934fee66c89", "kind": "equivalent", "version": "9.0.11", "label": "9.0.11", "title": "修复 pg_dump 以 tar 输出格式生成的 restore.sql 脚本中的缺陷", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "743ea37f7de3775ac6e5fb3b825b04a235c953be937e15f03e6d592e958da788"}, "url": "/docs/compare/?release=9.0.11#9.0.11-122f96647ad3e80d", "source_url": "/docs/release/9.0.11/#id-1.11.6.17.5"}]}, {"id": "9.2.2-8bbe8f3ab5a3a0da", "cves": [], "html": "<p>      修复 <span>pg_restore</span>，使其接受符合 POSIX 的 <code>tar</code> 文件（Brian Weaver、Tom Lane）\n     </p><p> <span>pg_dump</span> 的 <code>tar</code> 输出模式的原始编码生成的文件并不完全符合 POSIX 标准。这在 9.3 版本中已得到纠正。此补丁更新了以前的分支，使它们同时接受错误格式和纠正后的格式，希望借此避免 9.3 发布时的兼容性问题。\n     </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.2.2/#id-1.11.6.27.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.2.2/changes/048", "db_id": "b8805482ba721f9dfdbda828bf6df8e9", "patch_ids": [], "statement_hash": "40b34fbe6c0ce3014832a07f496e2cccb058a72f4f9f73bf956b972849f9d8dd", "relations": [{"rule": 2, "type": "equivalent", "target": "19974f58b09e48de0ad5f6b2ac35bbf7", "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.2.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"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"}, {"db_id": "19974f58b09e48de0ad5f6b2ac35bbf7", "kind": "equivalent", "version": "9.0.11", "label": "9.0.11", "title": "修复 pg_restore，使其接受符合 POSIX 的 tar 文件", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "40b34fbe6c0ce3014832a07f496e2cccb058a72f4f9f73bf956b972849f9d8dd"}, "url": "/docs/compare/?release=9.0.11#9.0.11-8bbe8f3ab5a3a0da", "source_url": "/docs/release/9.0.11/#id-1.11.6.17.5"}]}, {"id": "9.2.2-b092ddd79d8e78fb", "cves": [], "html": "<p>      修复 <span>pg_basebackup</span> 生成的 <code>tar</code> 文件，使其符合 POSIX（Brian Weaver、Tom Lane）\n     </p>", "text": "修复 pg_basebackup 生成的 tar 文件，使其符合 POSIX（Brian Weaver、Tom Lane）", "title": "修复 pg_basebackup 生成的 tar 文件，使其符合 POSIX", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.2.2/#id-1.11.6.27.5", "source_hash": "f8f046ddf2bcd727913125a2f6a688df5b4dbf5b8f43b6b84397e53975b8a7e9", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix tar files emitted by pg_basebackup to be POSIX conformant (Brian Weaver, Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.2.2/changes/049", "db_id": "4b45350b80211b97339fb937c470cd5c", "patch_ids": [], "statement_hash": "82b791857fe12b63413de16010da4d42d22d0549638441d483422cd27a35dc14", "relations": [{"rule": 2, "type": "equivalent", "target": "7fd20daf0b04635053d7050e17ff7b81", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "82b791857fe12b63413de16010da4d42d22d0549638441d483422cd27a35dc14"}}], "version": "9.2.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "7fd20daf0b04635053d7050e17ff7b81", "kind": "equivalent", "version": "9.1.7", "label": "9.1.7", "title": "修复 pg_basebackup 生成的 tar 文件，使其符合 POSIX", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "82b791857fe12b63413de16010da4d42d22d0549638441d483422cd27a35dc14"}, "url": "/docs/compare/?release=9.1.7#9.1.7-b092ddd79d8e78fb", "source_url": "/docs/release/9.1.7/#id-1.11.6.22.5"}]}, {"id": "9.2.2-761810e18539c909", "cves": [], "html": "<p>      修复 <span>pg_resetxlog</span>，使其在给定数据目录相对路径时正确定位 <code>postmaster.pid</code>（Tom Lane）\n     </p><p>      这一失误可能导致 <span>pg_resetxlog</span> 没有注意到有活动 postmaster 正在使用该数据目录。\n     </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.2.2/#id-1.11.6.27.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.2.2/changes/050", "db_id": "5f23fc6d20daa7b78f92317b68a3d656", "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": "a197f30d4a419afe22ed352eed6c455f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7caf8cc7b3f02b5844757f17686d9fac5bdf47eaad7825675106bce61c63e669"}}], "version": "9.2.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"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"}, {"db_id": "a197f30d4a419afe22ed352eed6c455f", "kind": "equivalent", "version": "9.0.11", "label": "9.0.11", "title": "修复 pg_resetxlog，使其在给定数据目录相对路径时正确定位 postmaster.pid", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7caf8cc7b3f02b5844757f17686d9fac5bdf47eaad7825675106bce61c63e669"}, "url": "/docs/compare/?release=9.0.11#9.0.11-761810e18539c909", "source_url": "/docs/release/9.0.11/#id-1.11.6.17.5"}]}, {"id": "9.2.2-bcd4dcd362712971", "cves": [], "html": "<p>      修复 <span>libpq</span> 的 <code>lo_import()</code> 和 <code>lo_export()</code> 函数，使其正确报告文件 I/O 错误（Tom Lane）\n     </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.2.2/#id-1.11.6.27.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.2.2/changes/051", "db_id": "f2f4b83d5e72a7f944356c88f6cc771c", "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": "7d813524766be3ff42a46349c32e2539", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "eb46c0cd020a8dac2ab94bc888d155f67670e7f77eb7db826e51db21363704ba"}}], "version": "9.2.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"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"}, {"db_id": "7d813524766be3ff42a46349c32e2539", "kind": "equivalent", "version": "9.0.11", "label": "9.0.11", "title": "修复 libpq 的 lo_import() 和 lo_export() 函数，使其正确报告文件 I/O 错误", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "eb46c0cd020a8dac2ab94bc888d155f67670e7f77eb7db826e51db21363704ba"}, "url": "/docs/compare/?release=9.0.11#9.0.11-bcd4dcd362712971", "source_url": "/docs/release/9.0.11/#id-1.11.6.17.5"}]}, {"id": "9.2.2-c64b6ee4bd1b0df7", "cves": [], "html": "<p>      修复 <span>ecpg</span> 对嵌套结构指针变量的处理（Muhammad Usama）\n     </p>", "text": "修复 ecpg 对嵌套结构指针变量的处理（Muhammad Usama）", "title": "修复 ecpg 对嵌套结构指针变量的处理", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.2.2/#id-1.11.6.27.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.2.2/changes/052", "db_id": "64f48e2eedaa8745234640d84045defd", "patch_ids": [], "statement_hash": "9fd1209f4bf6fbf17e1e75f61f4f9db696c1b28331f0a9f7ac4c3f26f5aa7400", "relations": [{"rule": 2, "type": "equivalent", "target": "41df92a6020bf58d60a096b38c9b2191", "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.2.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"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"}, {"db_id": "41df92a6020bf58d60a096b38c9b2191", "kind": "equivalent", "version": "9.0.11", "label": "9.0.11", "title": "修复 ecpg 对嵌套结构指针变量的处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9fd1209f4bf6fbf17e1e75f61f4f9db696c1b28331f0a9f7ac4c3f26f5aa7400"}, "url": "/docs/compare/?release=9.0.11#9.0.11-c64b6ee4bd1b0df7", "source_url": "/docs/release/9.0.11/#id-1.11.6.17.5"}]}, {"id": "9.2.2-960b987969329de1", "cves": [], "html": "<p>      修复 <span>ecpg</span> 的 <code>ecpg_get_data</code> 函数，使其正确处理数组（Michael Meskes）\n     </p>", "text": "修复 ecpg 的 ecpg_get_data 函数，使其正确处理数组（Michael Meskes）", "title": "修复 ecpg 的 ecpg_get_data 函数，使其正确处理数组", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.2.2/#id-1.11.6.27.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.2.2/changes/053", "db_id": "3302d5cb3e935705738e0df4fd624e48", "patch_ids": [], "statement_hash": "525a1c5316c2e767a9ee40ad3c94b230ec26515440ba748e894773993eec0a70", "relations": [{"rule": 2, "type": "equivalent", "target": "45db943791f11342d3b435237c1c19b0", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "525a1c5316c2e767a9ee40ad3c94b230ec26515440ba748e894773993eec0a70"}}, {"rule": 2, "type": "equivalent", "target": "fd191ab6a78f4e84b2705f398e9f042b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "525a1c5316c2e767a9ee40ad3c94b230ec26515440ba748e894773993eec0a70"}}], "version": "9.2.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"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"}, {"db_id": "fd191ab6a78f4e84b2705f398e9f042b", "kind": "equivalent", "version": "9.0.11", "label": "9.0.11", "title": "修复 ecpg 的 ecpg_get_data 函数，使其正确处理数组", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "525a1c5316c2e767a9ee40ad3c94b230ec26515440ba748e894773993eec0a70"}, "url": "/docs/compare/?release=9.0.11#9.0.11-960b987969329de1", "source_url": "/docs/release/9.0.11/#id-1.11.6.17.5"}]}, {"id": "9.2.2-82bdd97b6d799a0c", "cves": [], "html": "<p>      防止 <span>pg_upgrade</span> 试图处理系统目录的 TOAST 表（Bruce Momjian）\n     </p><p>      这修复了当 <code>information_schema</code> 被删除并重建后出现的错误。其他失败也可能出现。\n     </p>", "text": "防止 pg_upgrade 试图处理系统目录的 TOAST 表（Bruce Momjian） 这修复了当 information_schema 被删除并重建后出现的错误。其他失败也可能出现。", "title": "防止 pg_upgrade 试图处理系统目录的 TOAST 表", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.2.2/#id-1.11.6.27.5", "source_hash": "cecdc79e970f2ad60a6bf8219f02dde16b8368b48a0eb998a9ecded76ef90ddc", "section_path": ["变更"], "commit_groups": [], "identity_text": "Prevent pg_upgrade from trying to process TOAST tables for system catalogs (Bruce Momjian) This fixes an error seen when the information_schema has been dropped and recreated. Other failures were also possible.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.2.2/changes/054", "db_id": "66fb76bdbfe3c4954833effb0f2a2a79", "patch_ids": [], "statement_hash": "d9382855522a4d5394bceb62a76df144c47c61780f4dab5db30b0139ad7eb1d4", "relations": [], "version": "9.2.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.2.2-95d14b6c0a1794d3", "cves": [], "html": "<p>      通过在新集簇中把 <code>synchronous_commit</code> 设为 <code>off</code> 来改进 <span>pg_upgrade</span> 性能（Bruce Momjian）\n     </p>", "text": "通过在新集簇中把 synchronous_commit 设为 off 来改进 pg_upgrade 性能（Bruce Momjian）", "title": "通过在新集簇中把 synchronous_commit 设为 off 来改进 pg_upgrade 性能", "commits": [], "section": "变更", "category": "performance", "source_url": "/docs/release/9.2.2/#id-1.11.6.27.5", "source_hash": "ffd6164799b462744285c06fc673a2fdbabaa962f1ce8ace886f78a173f0adac", "section_path": ["变更"], "commit_groups": [], "identity_text": "Improve pg_upgrade performance by setting synchronous_commit to off in the new cluster (Bruce Momjian)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.2.2/changes/055", "db_id": "6f95ea0562f34ba9a38f1678c7e1a4ae", "patch_ids": [], "statement_hash": "a28e3d82e143d2f7376542cb2bbf7113d724ed9876e00fb10f4443972f778a25", "relations": [], "version": "9.2.2", "category_label": "性能改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.2.2-e37aa683385d15f1", "cves": [], "html": "<p>      让 <code>contrib/pageinspect</code> 的 btree 页面检查函数在检查页面时持有缓冲区锁（Tom Lane）\n     </p>", "text": "让 contrib/pageinspect 的 btree 页面检查函数在检查页面时持有缓冲区锁（Tom Lane）", "title": "让 contrib/pageinspect 的 btree 页面检查函数在检查页面时持有缓冲区锁", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.2.2/#id-1.11.6.27.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.2.2/changes/056", "db_id": "92b55b3c92184c6da0b9418e568c58f2", "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": "6db7793b105ce365d08d9e2075a9b1cc", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "aac1d07d86a1b0919daea13c909f5e92e75792304935a64affe58dd8a67c6b35"}}], "version": "9.2.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"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"}, {"db_id": "6db7793b105ce365d08d9e2075a9b1cc", "kind": "equivalent", "version": "9.0.11", "label": "9.0.11", "title": "让 contrib/pageinspect 的 btree 页面检查函数在检查页面时持有缓冲区锁", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "aac1d07d86a1b0919daea13c909f5e92e75792304935a64affe58dd8a67c6b35"}, "url": "/docs/compare/?release=9.0.11#9.0.11-e37aa683385d15f1", "source_url": "/docs/release/9.0.11/#id-1.11.6.17.5"}]}, {"id": "9.2.2-a3fa5a66ce0f2717", "cves": [], "html": "<p>      规避 <code>malloc(0)</code> 和 <code>realloc(NULL, 0)</code> 不可移植的行为（Tom Lane）\n     </p><p>      在这些调用返回 <code>NULL</code> 的平台上，一些代码误以为这意味着内存不足。已知这曾导致 <span>pg_dump</span> 在不含用户定义聚合的数据库上出错。可能还有其他情况。\n     </p>", "text": "规避 malloc(0) 和 realloc(NULL, 0) 不可移植的行为（Tom Lane） 在这些调用返回 NULL 的平台上，一些代码误以为这意味着内存不足。已知这曾导致 pg_dump 在不含用户定义聚合的数据库上出错。可能还有其他情况。", "title": "规避 malloc(0) 和 realloc(NULL, 0) 不可移植的行为", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.2.2/#id-1.11.6.27.5", "source_hash": "9bcf6db75987843ee64335d6c244dee2f56197a433bfa76dbd1171c9791b9d2c", "section_path": ["变更"], "commit_groups": [], "identity_text": "Work around unportable behavior of malloc(0) and realloc(NULL, 0) (Tom Lane) On platforms where these calls return NULL, some code mistakenly thought that meant out-of-memory. This is known to have broken pg_dump for databases containing no user-defined aggregates. There might be other cases as well.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.2.2/changes/057", "db_id": "a8435b99cf55cdf2594e750a020b4796", "patch_ids": [], "statement_hash": "221d23d3b42049396237c193a5aa1049d83582c31592595376805d88a3ec8105", "relations": [], "version": "9.2.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.2.2-c8837a591f67f23a", "cves": [], "html": "<p>      确保扩展的 <code>make install</code> 会创建 <code>extension</code> 安装目录（Cédric Villemain）\n     </p><p>      此前，如果扩展的 Makefile 设置了 <code>MODULEDIR</code>，就会漏掉这一步。\n     </p>", "text": "确保扩展的 make install 会创建 extension 安装目录（Cédric Villemain） 此前，如果扩展的 Makefile 设置了 MODULEDIR，就会漏掉这一步。", "title": "确保扩展的 make install 会创建 extension 安装目录", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.2.2/#id-1.11.6.27.5", "source_hash": "6c67936ec6c24599ebaaa624f2fdefdc35032491b95484445b7110afd3ef8091", "section_path": ["变更"], "commit_groups": [], "identity_text": "Ensure that make install for an extension creates the extension installation directory (Cédric Villemain) Previously, this step was missed if MODULEDIR was set in the extension's Makefile.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.2.2/changes/058", "db_id": "853b6ab6c768eb825ed130545a5d4b63", "patch_ids": [], "statement_hash": "352c908634796010526837995ce0c046ab96fccd1c12cc4db3deaa8a872b4874", "relations": [{"rule": 2, "type": "equivalent", "target": "d843dd772ca1aaf46749cee6e8c885d4", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "352c908634796010526837995ce0c046ab96fccd1c12cc4db3deaa8a872b4874"}}], "version": "9.2.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "d843dd772ca1aaf46749cee6e8c885d4", "kind": "equivalent", "version": "9.1.7", "label": "9.1.7", "title": "确保扩展的 make install 会创建 extension 安装目录", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "352c908634796010526837995ce0c046ab96fccd1c12cc4db3deaa8a872b4874"}, "url": "/docs/compare/?release=9.1.7#9.1.7-c8837a591f67f23a", "source_url": "/docs/release/9.1.7/#id-1.11.6.22.5"}]}, {"id": "9.2.2-bc736845c4048ca5", "cves": [], "html": "<p>      修复 <span>pgxs</span> 在 AIX 上构建可加载模块的支持（Tom Lane）\n     </p><p>      在原始源码树之外构建模块在 AIX 上不工作。\n     </p>", "text": "修复 pgxs 在 AIX 上构建可加载模块的支持（Tom Lane） 在原始源码树之外构建模块在 AIX 上不工作。", "title": "修复 pgxs 在 AIX 上构建可加载模块的支持", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.2.2/#id-1.11.6.27.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.2.2/changes/059", "db_id": "718f43ca78112555364550f686794edf", "patch_ids": [], "statement_hash": "8eb6e11a0cdd4ad9eb440056655425188977dec2564763abdd10adb3def1e098", "relations": [{"rule": 2, "type": "equivalent", "target": "15dabc8824d91d197d3137936927273b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8eb6e11a0cdd4ad9eb440056655425188977dec2564763abdd10adb3def1e098"}}, {"rule": 2, "type": "equivalent", "target": "4cd7f6e5b1c444af94d81b73fc62872d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8eb6e11a0cdd4ad9eb440056655425188977dec2564763abdd10adb3def1e098"}}], "version": "9.2.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"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"}, {"db_id": "15dabc8824d91d197d3137936927273b", "kind": "equivalent", "version": "9.0.11", "label": "9.0.11", "title": "修复 pgxs 在 AIX 上构建可加载模块的支持", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8eb6e11a0cdd4ad9eb440056655425188977dec2564763abdd10adb3def1e098"}, "url": "/docs/compare/?release=9.0.11#9.0.11-bc736845c4048ca5", "source_url": "/docs/release/9.0.11/#id-1.11.6.17.5"}]}, {"id": "9.2.2-952c0437d7a59cc6", "cves": [], "html": "<p>      把时区数据文件更新为 <span>tzdata</span> 版本 2012j\n      for DST law changes in Cuba, Israel, Jordan, Libya, Palestine, Western\n      Samoa, and portions of Brazil。\n     </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.2.2/#id-1.11.6.27.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.2.2/changes/060", "db_id": "b3fd6413f3478cca8738ba1f1bb39969", "patch_ids": [], "statement_hash": "b97eec4dfb4854efeb77895b2bb2829f50b77c47d05be588661b563c55522638", "relations": [{"rule": 2, "type": "equivalent", "target": "1fe15744872be7b056e551e5765d535c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b97eec4dfb4854efeb77895b2bb2829f50b77c47d05be588661b563c55522638"}}, {"rule": 2, "type": "equivalent", "target": "8d3974c67dd220e19c661173e02581b0", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b97eec4dfb4854efeb77895b2bb2829f50b77c47d05be588661b563c55522638"}}], "version": "9.2.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"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"}, {"db_id": "1fe15744872be7b056e551e5765d535c", "kind": "equivalent", "version": "9.0.11", "label": "9.0.11", "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.0.11#9.0.11-952c0437d7a59cc6", "source_url": "/docs/release/9.0.11/#id-1.11.6.17.5"}]}]}], "stats": [{"key": "all", "label": "全部变更", "count": 60}, {"key": "feature", "label": "新功能", "count": 0}, {"key": "bugfix", "label": "BUG 修复", "count": 35}, {"key": "security", "label": "安全相关", "count": 0}, {"key": "performance", "label": "性能改进", "count": 1}, {"key": "compatibility", "label": "兼容性变化", "count": 0}, {"key": "improvement", "label": "其他改进", "count": 24}], "total": 60, "release_count": 1, "cross_major": false, "cve_count": 0, "cves": [], "cve_available": true, "remaining_cves": [], "security_regressions": [], "warnings": [], "candidate_count": 60, "already_in_source_count": 0, "duplicate_count": 0, "excluded_count": 0, "exclusions": [], "source_as_of": "2026-09-26", "security_as_of": "2026-09-26"}