{"format": 1, "mode": "release", "from_release": null, "to_release": {"date": "2012-09-24", "build": "9.1.6", "major": "9.1", "minor": 6, "manual": "9.1", "status": "stable", "doc_git": "", "version": "9.1.6", "eol_date": "2016-10-27", "date_text": "2012-09-24", "supported": false, "manual_url": "/docs/9.1/release-9-1-6.html", "source_url": "/docs/release/9.1.6/", "entry_count": 17, "placeholder": false, "content_hash": "a36ef4d4d9987869a007f5675bc214bae1ecfb4839a0ed32d3861550ce0c3bf0", "manual_build": "9.1.24", "source_as_of": "", "changes_count": 17, "doc_loaded_at": "2026-09-26T02:56:47.783417", "migration_html": "<p>对于运行 9.1.X 的用户，不需要进行转储/恢复。</p>\n<p>不过，你可能需要执行 <code>REINDEX</code> 操作，以从下面第一条变更日志条目所述的数据损坏缺陷的影响中恢复。</p>\n<p>不过，如果你是从早于 9.1.4 的版本升级，请参见<a href=\"/docs/9.1/release-9-1-4.html\" title=\"E.21. 版本 9.1.4\">第 E.21 节</a>。</p>", "compatibility_count": 0, "label": "9.1.6", "status_label": "历史版本", "eol": "2016-10-27", "age_days": 5119, "support_days": -3625}, "groups": [{"date": "2012-09-24", "build": "9.1.6", "major": "9.1", "minor": 6, "manual": "9.1", "status": "stable", "doc_git": "", "version": "9.1.6", "eol_date": "2016-10-27", "date_text": "2012-09-24", "supported": false, "manual_url": "/docs/9.1/release-9-1-6.html", "source_url": "/docs/release/9.1.6/", "entry_count": 17, "placeholder": false, "content_hash": "a36ef4d4d9987869a007f5675bc214bae1ecfb4839a0ed32d3861550ce0c3bf0", "manual_build": "9.1.24", "source_as_of": "", "changes_count": 17, "doc_loaded_at": "2026-09-26T02:56:47.783417", "migration_html": "<p>对于运行 9.1.X 的用户，不需要进行转储/恢复。</p>\n<p>不过，你可能需要执行 <code>REINDEX</code> 操作，以从下面第一条变更日志条目所述的数据损坏缺陷的影响中恢复。</p>\n<p>不过，如果你是从早于 9.1.4 的版本升级，请参见<a href=\"/docs/9.1/release-9-1-4.html\" title=\"E.21. 版本 9.1.4\">第 E.21 节</a>。</p>", "compatibility_count": 0, "label": "9.1.6", "status_label": "历史版本", "eol": "2016-10-27", "age_days": 5119, "support_days": -3625, "entries": [{"id": "9.1.6-ba03e3026aa326e2", "cves": [], "html": "<p>修复 WAL 重放期间共享缓冲区的持久性标记（Jeff Davis）</p>\n<p>这一失误可能导致缓冲区在检查点期间未被写出，如果服务器之后在这些缓冲区从未写出的情况下崩溃，就会造成数据损坏。任何服务器在崩溃恢复之后都可能发生损坏，但在备库从库服务器上发生的可能性显著更高，因为它们执行多得多的 WAL 重放。btree 和 GIN 索引损坏的概率较低。表<span>“<span>可见性映射</span>”</span>损坏的概率要高得多。幸运的是，可见性映射在 9.1 中不是关键数据，因此这种损坏在 9.1 安装中最坏的后果只是清理的瞬时低效。表数据本身不会因此缺陷损坏。</p>\n<p>虽然尚无此缺陷导致的索引损坏在实际环境中发生的已知案例，但作为预防措施，建议生产安装在升级到 9.1.6 后的方便时间对所有 btree 和 GIN 索引执行 <code>REINDEX</code>。</p>\n<p>此外，如果你打算就地升级到 9.2.X，建议在升级之前在把 <a href=\"/docs/9.1/runtime-config-client.html#GUC-VACUUM-FREEZE-TABLE-AGE\"><code>vacuum_freeze_table_age</code></a> 设为零的情况下对所有表执行 <code>VACUUM</code>。这将确保可见性映射中任何残留的错误数据在 9.2.X 依赖它之前被纠正。可以调整 <a href=\"/docs/9.1/runtime-config-resource.html#GUC-VACUUM-COST-DELAY\"><code>vacuum_cost_delay</code></a> 来降低清理的性能影响，代价是需要更长时间完成。</p>", "text": "修复 WAL 重放期间共享缓冲区的持久性标记（Jeff Davis） 这一失误可能导致缓冲区在检查点期间未被写出，如果服务器之后在这些缓冲区从未写出的情况下崩溃，就会造成数据损坏。任何服务器在崩溃恢复之后都可能发生损坏，但在备库从库服务器上发生的可能性显著更高，因为它们执行多得多的 WAL 重放。btree 和 GIN 索引损坏的概率较低。表“可见性映射”损坏的概率要高得多。幸运的是，可见性映射在 9.1 中不是关键数据，因此这种损坏在 9.1 安装中最坏的后果只是清理的瞬时低效。表数据本身不会因此缺陷损坏。 虽然尚无此缺陷导致的索引损坏在实际环境中发生的已知案例，但作为预防措施，建议生产安装在升级到 9.1.6 后的方便时间对所有 btree 和 GIN 索引执行 REINDEX。 此外，如果你打算就地升级到 9.2.X，建议在升级之前在把 vacuum_freeze_table_age 设为零的情况下对所有表执行 VACUUM。这将确保可见性映射中任何残留的错误数据在 9.2.X 依赖它之前被纠正。可以调整 vacuum_cost_delay 来降低清理的性能影响，代价是需要更长时间完成。", "title": "修复 WAL 重放期间共享缓冲区的持久性标记", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.1.6/#id-1.11.6.23.5", "source_hash": "912043c24852084ce35417876ebea2a622278007d31671a2eee12b36954d348d", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix persistence marking of shared buffers during WAL replay (Jeff Davis) This mistake can result in buffers not being written out during checkpoints, resulting in data corruption if the server later crashes without ever having written those buffers. Corruption can occur on any server following crash recovery, but it is significantly more likely to occur on standby slave servers since those perform much more WAL replay. There is a low probability of corruption of btree and GIN indexes. There is a much higher probability of corruption of table visibility maps. Fortunately, visibility maps are non-critical data in 9.1, so the worst consequence of such corruption in 9.1 installations is transient inefficiency of vacuuming. Table data proper cannot be corrupted by this bug. While no index corruption due to this bug is known to have occurred in the field, as a precautionary measure it is recommended that production installations REINDEX all btree and GIN indexes at a convenient time after upgrading to 9.1.6. Also, if you intend to do an in-place upgrade to 9.2.X, before doing so it is recommended to perform a VACUUM of all tables while having vacuum_freeze_table_age set to zero. This will ensure that any lingering wrong data in the visibility maps is corrected before 9.2.X can depend on it. vacuum_cost_delay can be adjusted to reduce the performance impact of vacuuming, while causing it to take longer to finish.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.6/changes/001", "db_id": "0a840acb99b93acf03644cbc33236d39", "patch_ids": [], "statement_hash": "ef6132b4a5d2f407156952cf6e4c3ccf5cdb5fb10169dfcfe44f6b8b7924c227", "relations": [], "version": "9.1.6", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.1.6-f7b46a9a3bd8260f", "cves": [], "html": "<p>修复规划器对执行器参数的分配，并修复执行器对 CTE 计划节点的重新扫描逻辑（Tom Lane）</p>\n<p>这些错误可能导致多次扫描同一 <code>WITH</code> 子查询的查询给出错误答案。</p>", "text": "修复规划器对执行器参数的分配，并修复执行器对 CTE 计划节点的重新扫描逻辑（Tom Lane） 这些错误可能导致多次扫描同一 WITH 子查询的查询给出错误答案。", "title": "修复规划器对执行器参数的分配，并修复执行器对 CTE 计划节点的重新扫描逻辑", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.1.6/#id-1.11.6.23.5", "source_hash": "43f35048226997c7063b386fc359480d6087eaf3105709bc3391178841820b88", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix planner's assignment of executor parameters, and fix executor's rescan logic for CTE plan nodes (Tom Lane) These errors could result in wrong answers from queries that scan the same WITH subquery multiple times.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.6/changes/002", "db_id": "c06a2faf8fe7e33717f04a653b0c566c", "patch_ids": [], "statement_hash": "303ea31cb500da251536c28a534109ccb4722d41e38da69c13c7745a2ce914bf", "relations": [{"rule": 2, "type": "equivalent", "target": "ed58d031ced6c708a1bafd28fb68ba46", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "303ea31cb500da251536c28a534109ccb4722d41e38da69c13c7745a2ce914bf"}}], "version": "9.1.6", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "ed58d031ced6c708a1bafd28fb68ba46", "kind": "equivalent", "version": "9.0.10", "label": "9.0.10", "title": "修复规划器对执行器参数的分配，并修复执行器对 CTE 计划节点的重新扫描逻辑", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "303ea31cb500da251536c28a534109ccb4722d41e38da69c13c7745a2ce914bf"}, "url": "/docs/compare/?release=9.0.10#9.0.10-f7b46a9a3bd8260f", "source_url": "/docs/release/9.0.10/#id-1.11.6.18.5"}]}, {"id": "9.1.6-27c6ac97c264a2ad", "cves": [], "html": "<p>修复把 <a href=\"/docs/9.1/runtime-config-client.html#GUC-DEFAULT-TRANSACTION-ISOLATION\"><code>default_transaction_isolation</code></a> 设为 <code>serializable</code> 时的不当行为（Kevin Grittner、Tom Lane、Heikki Linnakangas）</p>\n<p>症状包括 Windows 上进程启动时崩溃，以及热备操作中崩溃。</p>", "text": "修复把 default_transaction_isolation 设为 serializable 时的不当行为（Kevin Grittner、Tom Lane、Heikki Linnakangas） 症状包括 Windows 上进程启动时崩溃，以及热备操作中崩溃。", "title": "修复把 default_transaction_isolation 设为 serializable 时的不当行为", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.1.6/#id-1.11.6.23.5", "source_hash": "f9fc402bc255c9ab856b05ddb52207a4bc87fc058763962aaa8a810dfcca5380", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix misbehavior when default_transaction_isolation is set to serializable (Kevin Grittner, Tom Lane, Heikki Linnakangas) Symptoms include crashes at process start on Windows, and crashes in hot standby operation.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.6/changes/003", "db_id": "9fd6f8074ff35a9a710f62ea960acec4", "patch_ids": [], "statement_hash": "b86fcff61262dc590e5113d60774f81f0a7080d5603516b45ff47290fac90032", "relations": [], "version": "9.1.6", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.1.6-b9624d2aca1167ec", "cves": [], "html": "<p>改进对涉及前缀（即 <em><code>word</code></em><code>:*</code> 模式）的文本搜索查询的选择率估计（Tom Lane）</p>", "text": "改进对涉及前缀（即 word:* 模式）的文本搜索查询的选择率估计（Tom Lane）", "title": "改进对涉及前缀（即 word:* 模式）的文本搜索查询的选择率估计", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.1.6/#id-1.11.6.23.5", "source_hash": "58c0611b67c94457e37f510983c880fe44e57188906aed1955fa11f72a34e3ae", "section_path": ["变更"], "commit_groups": [], "identity_text": "Improve selectivity estimation for text search queries involving prefixes, i.e. word:* patterns (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.6/changes/004", "db_id": "ce2a2707afd6173a834a41c93a8b3ce3", "patch_ids": [], "statement_hash": "a129380b69503d333fd7939426a54dc45e6a227d608adf207ea4294b6886892f", "relations": [{"rule": 2, "type": "equivalent", "target": "27beb6cece9a1a13f5f330c57555aef9", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a129380b69503d333fd7939426a54dc45e6a227d608adf207ea4294b6886892f"}}], "version": "9.1.6", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "27beb6cece9a1a13f5f330c57555aef9", "kind": "equivalent", "version": "9.2.1", "label": "9.2.1", "title": "改进对涉及前缀（即 word:* 模式）的文本搜索查询的选择率估计", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a129380b69503d333fd7939426a54dc45e6a227d608adf207ea4294b6886892f"}, "url": "/docs/compare/?release=9.2.1#9.2.1-b9624d2aca1167ec", "source_url": "/docs/release/9.2.1/#id-1.11.6.28.5"}]}, {"id": "9.1.6-866e4207ec937bfb", "cves": [], "html": "<p>改进 GiST 索引的页面分裂决策（Alexander Korotkov、Robert Haas、Tom Lane）</p>\n<p>多列 GiST 索引可能因此错误而遭受意外膨胀。</p>", "text": "改进 GiST 索引的页面分裂决策（Alexander Korotkov、Robert Haas、Tom Lane） 多列 GiST 索引可能因此错误而遭受意外膨胀。", "title": "改进 GiST 索引的页面分裂决策", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.1.6/#id-1.11.6.23.5", "source_hash": "6511b0730133e02b090fc68488140603404e2326806bb803eb6a4fe6447776cf", "section_path": ["变更"], "commit_groups": [], "identity_text": "Improve page-splitting decisions in GiST indexes (Alexander Korotkov, Robert Haas, Tom Lane) Multi-column GiST indexes might suffer unexpected bloat due to this error.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.6/changes/005", "db_id": "d78207824bf5c4c0e51b593ff8aa15fd", "patch_ids": [], "statement_hash": "f011fb58ac0821237d5d448459b15e8cf3408a4bef80f4856dc49cc39a6e462f", "relations": [{"rule": 2, "type": "equivalent", "target": "8cacc1f6e7dd584ba7cdf575bc4129fb", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f011fb58ac0821237d5d448459b15e8cf3408a4bef80f4856dc49cc39a6e462f"}}], "version": "9.1.6", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "8cacc1f6e7dd584ba7cdf575bc4129fb", "kind": "equivalent", "version": "9.0.10", "label": "9.0.10", "title": "改进 GiST 索引的页面分裂决策", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f011fb58ac0821237d5d448459b15e8cf3408a4bef80f4856dc49cc39a6e462f"}, "url": "/docs/compare/?release=9.0.10#9.0.10-866e4207ec937bfb", "source_url": "/docs/release/9.0.10/#id-1.11.6.18.5"}]}, {"id": "9.1.6-271b3c2678cc2d1b", "cves": [], "html": "<p>修复级联权限撤销，使其在权限仍被持有时停止（Tom Lane）</p>\n<p>如果我们撤销某个角色 <em><code>X</code></em> 的授予选项，但 <em><code>X</code></em> 仍通过别人的授予持有该选项，我们就不应从 <em><code>X</code></em> 曾授予该权限的角色 <em><code>Y</code></em> 那里递归撤销相应权限。</p>", "text": "修复级联权限撤销，使其在权限仍被持有时停止（Tom Lane） 如果我们撤销某个角色 X 的授予选项，但 X 仍通过别人的授予持有该选项，我们就不应从 X 曾授予该权限的角色 Y 那里递归撤销相应权限。", "title": "修复级联权限撤销，使其在权限仍被持有时停止", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.1.6/#id-1.11.6.23.5", "source_hash": "33915078e28f499fe59c31abab4e56167fba7c6dcbbd2cff712bd1f35d327e7c", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix cascading privilege revoke to stop if privileges are still held (Tom Lane) If we revoke a grant option from some role X, but X still holds that option via a grant from someone else, we should not recursively revoke the corresponding privilege from role(s) Y that X had granted it to.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.6/changes/006", "db_id": "7b3ad10258a3087d736206bbb232e17c", "patch_ids": [], "statement_hash": "aad8e30ad87639cf8335aa67f5ed570dd2521802b88521e87c8c52ee9d126f3b", "relations": [{"rule": 2, "type": "equivalent", "target": "482d15cd9d0cd2ab5aa6ee92239f6a7b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "aad8e30ad87639cf8335aa67f5ed570dd2521802b88521e87c8c52ee9d126f3b"}}], "version": "9.1.6", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "482d15cd9d0cd2ab5aa6ee92239f6a7b", "kind": "equivalent", "version": "9.0.10", "label": "9.0.10", "title": "修复级联权限撤销，使其在权限仍被持有时停止", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "aad8e30ad87639cf8335aa67f5ed570dd2521802b88521e87c8c52ee9d126f3b"}, "url": "/docs/compare/?release=9.0.10#9.0.10-271b3c2678cc2d1b", "source_url": "/docs/release/9.0.10/#id-1.11.6.18.5"}]}, {"id": "9.1.6-e2291bbd7c65e219", "cves": [], "html": "<p>不允许扩展包含被指派给它的模式（Thom Brown）</p>\n<p>这种情况会造成循环依赖，使 <span>pg_dump</span> 及可能的其他东西困惑。它对人类也容易造成困惑，因此予以禁止。</p>", "text": "不允许扩展包含被指派给它的模式（Thom Brown） 这种情况会造成循环依赖，使 pg_dump 及可能的其他东西困惑。它对人类也容易造成困惑，因此予以禁止。", "title": "不允许扩展包含被指派给它的模式", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.1.6/#id-1.11.6.23.5", "source_hash": "d97e624a3a79fc0efa4c991a8a40546e8c64f95977cae136512c567d8c48757e", "section_path": ["变更"], "commit_groups": [], "identity_text": "Disallow extensions from containing the schema they are assigned to (Thom Brown) This situation creates circular dependencies that confuse pg_dump and probably other things. It's confusing for humans too, so disallow it.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.6/changes/007", "db_id": "a38890e3da38d0c906dd23c20f65fec9", "patch_ids": [], "statement_hash": "26c9f5d06d66dcd4cd2ec9dccf4a1976d0cf8efd49411885b9c0da6f08011007", "relations": [], "version": "9.1.6", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.1.6-ddde93d4f878cf9a", "cves": [], "html": "<p>改进热备配置错误的错误消息（Gurjeet Singh）</p>", "text": "改进热备配置错误的错误消息（Gurjeet Singh）", "title": "改进热备配置错误的错误消息", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.1.6/#id-1.11.6.23.5", "source_hash": "31f3a27ff32ffcd9bfc2540b6b8eb90ae184be4a6d091002a9c488e129d6a3c5", "section_path": ["变更"], "commit_groups": [], "identity_text": "Improve error messages for Hot Standby misconfiguration errors (Gurjeet Singh)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.6/changes/008", "db_id": "9fb026bbb9f130da498f7baf877e0c0e", "patch_ids": [], "statement_hash": "ed7e6986b5ef5dc55358284847dd5838524f8627f0892406aead003500a2b5f9", "relations": [{"rule": 2, "type": "equivalent", "target": "8e839915505bc1e1a41f5e1847e671df", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ed7e6986b5ef5dc55358284847dd5838524f8627f0892406aead003500a2b5f9"}}], "version": "9.1.6", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "8e839915505bc1e1a41f5e1847e671df", "kind": "equivalent", "version": "9.0.10", "label": "9.0.10", "title": "改进热备配置错误的错误消息", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ed7e6986b5ef5dc55358284847dd5838524f8627f0892406aead003500a2b5f9"}, "url": "/docs/compare/?release=9.0.10#9.0.10-ddde93d4f878cf9a", "source_url": "/docs/release/9.0.10/#id-1.11.6.18.5"}]}, {"id": "9.1.6-1a997b03825db6df", "cves": [], "html": "<p>让 <span>configure</span> 探测 <code>mbstowcs_l</code>（Tom Lane）</p>\n<p>这修复了某些 AIX 版本上的构建失败。</p>", "text": "让 configure 探测 mbstowcs_l（Tom Lane） 这修复了某些 AIX 版本上的构建失败。", "title": "让 configure 探测 mbstowcs_l", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.1.6/#id-1.11.6.23.5", "source_hash": "2127df8fdfc2d0ee0e15c68b2a17997f00d6cdcd80ce22c3a1834a5da06719b7", "section_path": ["变更"], "commit_groups": [], "identity_text": "Make configure probe for mbstowcs_l (Tom Lane) This fixes build failures on some versions of AIX.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.6/changes/009", "db_id": "80b737db3a5ed24e4828630ecc39cd4d", "patch_ids": [], "statement_hash": "47012e31f79ac5b4801837428722f79c20a9be7e845dd6b2bd567e25c3b2946a", "relations": [], "version": "9.1.6", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.1.6-72f6b0c101616e88", "cves": [], "html": "<p>修复使用 PL/Perl 时对 <code>SIGFPE</code> 的处理（Andres Freund）</p>\n<p>Perl 会把进程的 <code>SIGFPE</code> 处理程序重置为 <code>SIG_IGN</code>，这可能导致之后崩溃。在初始化 PL/Perl 之后恢复正常的 Postgres 信号处理程序。</p>", "text": "修复使用 PL/Perl 时对 SIGFPE 的处理（Andres Freund） Perl 会把进程的 SIGFPE 处理程序重置为 SIG_IGN，这可能导致之后崩溃。在初始化 PL/Perl 之后恢复正常的 Postgres 信号处理程序。", "title": "修复使用 PL/Perl 时对 SIGFPE 的处理", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.1.6/#id-1.11.6.23.5", "source_hash": "86001c6dcf9b96524ba44de74fe119cc7f596170566c135d2e5532f41147f900", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix handling of SIGFPE when PL/Perl is in use (Andres Freund) Perl resets the process's SIGFPE handler to SIG_IGN, which could result in crashes later on. Restore the normal Postgres signal handler after initializing PL/Perl.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.6/changes/010", "db_id": "48c9a99f41b78ea55b70e2738fb7953b", "patch_ids": [], "statement_hash": "a7cab7f741a640399873f42f8cec25f51fff8b47096b245a90dcf53500db9170", "relations": [{"rule": 2, "type": "equivalent", "target": "b58c83760e2caaa87b21b5e2035646c7", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a7cab7f741a640399873f42f8cec25f51fff8b47096b245a90dcf53500db9170"}}], "version": "9.1.6", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "b58c83760e2caaa87b21b5e2035646c7", "kind": "equivalent", "version": "9.0.10", "label": "9.0.10", "title": "修复使用 PL/Perl 时对 SIGFPE 的处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a7cab7f741a640399873f42f8cec25f51fff8b47096b245a90dcf53500db9170"}, "url": "/docs/compare/?release=9.0.10#9.0.10-72f6b0c101616e88", "source_url": "/docs/release/9.0.10/#id-1.11.6.18.5"}]}, {"id": "9.1.6-a14a94a129f34a4c", "cves": [], "html": "<p>防止递归 PL/Perl 函数在执行期间被重定义时 PL/Perl 崩溃（Tom Lane）</p>", "text": "防止递归 PL/Perl 函数在执行期间被重定义时 PL/Perl 崩溃（Tom Lane）", "title": "防止递归 PL/Perl 函数在执行期间被重定义时 PL/Perl 崩溃", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.1.6/#id-1.11.6.23.5", "source_hash": "b36aa21fc2aa15564cfd4c352381531672c30fd9c7760e7e0ca6c4f064179b12", "section_path": ["变更"], "commit_groups": [], "identity_text": "Prevent PL/Perl from crashing if a recursive PL/Perl function is redefined while being executed (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.6/changes/011", "db_id": "6fdc69dbd04a82bf8440579c87fa8d7e", "patch_ids": [], "statement_hash": "247e05f6355b0c18f3b1c9558e4ef965312d9d6960e31a616ce980f6721a542e", "relations": [{"rule": 2, "type": "equivalent", "target": "20cdaf66b51cd04d9badb1e618c75162", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "247e05f6355b0c18f3b1c9558e4ef965312d9d6960e31a616ce980f6721a542e"}}, {"rule": 2, "type": "equivalent", "target": "2e12c5fc8c760f038a31f06b8163922d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "247e05f6355b0c18f3b1c9558e4ef965312d9d6960e31a616ce980f6721a542e"}}], "version": "9.1.6", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "20cdaf66b51cd04d9badb1e618c75162", "kind": "equivalent", "version": "9.2.1", "label": "9.2.1", "title": "防止递归 PL/Perl 函数在执行期间被重定义时 PL/Perl 崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "247e05f6355b0c18f3b1c9558e4ef965312d9d6960e31a616ce980f6721a542e"}, "url": "/docs/compare/?release=9.2.1#9.2.1-a14a94a129f34a4c", "source_url": "/docs/release/9.2.1/#id-1.11.6.28.5"}, {"db_id": "2e12c5fc8c760f038a31f06b8163922d", "kind": "equivalent", "version": "9.0.10", "label": "9.0.10", "title": "防止递归 PL/Perl 函数在执行期间被重定义时 PL/Perl 崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "247e05f6355b0c18f3b1c9558e4ef965312d9d6960e31a616ce980f6721a542e"}, "url": "/docs/compare/?release=9.0.10#9.0.10-a14a94a129f34a4c", "source_url": "/docs/release/9.0.10/#id-1.11.6.18.5"}]}, {"id": "9.1.6-3df65794185ea017", "cves": [], "html": "<p>规避 PL/Perl 中可能的错误优化（Tom Lane）</p>\n<p>一些 Linux 发行版包含错误版本的 <code>pthread.h</code>，导致 PL/Perl 中的编译代码不正确，当一个 PL/Perl 函数调用另一个会抛出错误的函数时会导致崩溃。</p>", "text": "规避 PL/Perl 中可能的错误优化（Tom Lane） 一些 Linux 发行版包含错误版本的 pthread.h，导致 PL/Perl 中的编译代码不正确，当一个 PL/Perl 函数调用另一个会抛出错误的函数时会导致崩溃。", "title": "规避 PL/Perl 中可能的错误优化", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.1.6/#id-1.11.6.23.5", "source_hash": "b5671b4626ee970576604adf4625268006d304068053e20d535b96b53bd5864d", "section_path": ["变更"], "commit_groups": [], "identity_text": "Work around possible misoptimization in PL/Perl (Tom Lane) Some Linux distributions contain an incorrect version of pthread.h that results in incorrect compiled code in PL/Perl, leading to crashes if a PL/Perl function calls another one that throws an error.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.6/changes/012", "db_id": "d48eca53239ce6adfb0ecb2ce1f3cfa5", "patch_ids": [], "statement_hash": "7ca195ad6c0693363f8205dcdbfe966c4f653f1c9aed4c63c75fc0c61c6660fd", "relations": [{"rule": 2, "type": "equivalent", "target": "742f3ee5a3dee3658b3a4619e0f3aab2", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7ca195ad6c0693363f8205dcdbfe966c4f653f1c9aed4c63c75fc0c61c6660fd"}}, {"rule": 2, "type": "equivalent", "target": "eca2108a6f0e32ab28301130324e43c6", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7ca195ad6c0693363f8205dcdbfe966c4f653f1c9aed4c63c75fc0c61c6660fd"}}], "version": "9.1.6", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "eca2108a6f0e32ab28301130324e43c6", "kind": "equivalent", "version": "9.2.1", "label": "9.2.1", "title": "规避 PL/Perl 中可能的错误优化", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7ca195ad6c0693363f8205dcdbfe966c4f653f1c9aed4c63c75fc0c61c6660fd"}, "url": "/docs/compare/?release=9.2.1#9.2.1-3df65794185ea017", "source_url": "/docs/release/9.2.1/#id-1.11.6.28.5"}, {"db_id": "742f3ee5a3dee3658b3a4619e0f3aab2", "kind": "equivalent", "version": "9.0.10", "label": "9.0.10", "title": "规避 PL/Perl 中可能的错误优化", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7ca195ad6c0693363f8205dcdbfe966c4f653f1c9aed4c63c75fc0c61c6660fd"}, "url": "/docs/compare/?release=9.0.10#9.0.10-3df65794185ea017", "source_url": "/docs/release/9.0.10/#id-1.11.6.18.5"}]}, {"id": "9.1.6-8476144613408854", "cves": [], "html": "<p>修复 <code>contrib/pg_trgm</code> 的 <code>LIKE</code> 模式分析代码中的缺陷（Fujii Masao）</p>\n<p>如果模式包含 <code>LIKE</code> 转义字符，使用三元组索引的 <code>LIKE</code> 查询可能产生错误结果。</p>", "text": "修复 contrib/pg_trgm 的 LIKE 模式分析代码中的缺陷（Fujii Masao） 如果模式包含 LIKE 转义字符，使用三元组索引的 LIKE 查询可能产生错误结果。", "title": "修复 contrib/pg_trgm 的 LIKE 模式分析代码中的缺陷", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.1.6/#id-1.11.6.23.5", "source_hash": "6e9e0f6e5652691bea6ba1062719f149b0ab27625bb27d2a5ff6e2aeca797cd4", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix bugs in contrib/pg_trgm's LIKE pattern analysis code (Fujii Masao) LIKE queries using a trigram index could produce wrong results if the pattern contained LIKE escape characters.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.6/changes/013", "db_id": "25591a29a09f37a0ccba903401e6d63e", "patch_ids": [], "statement_hash": "2e98552c65bced8a655064ac6cedbf5a058741ab6ad87dd02a64c812af1795eb", "relations": [], "version": "9.1.6", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.1.6-c47055576af39a22", "cves": [], "html": "<p>修复 <span>pg_upgrade</span> 在 Windows 上对行尾的处理（Andrew Dunstan）</p>\n<p>此前，<span>pg_upgrade</span> 可能在函数体等地方添加或删除回车符。</p>", "text": "修复 pg_upgrade 在 Windows 上对行尾的处理（Andrew Dunstan） 此前，pg_upgrade 可能在函数体等地方添加或删除回车符。", "title": "修复 pg_upgrade 在 Windows 上对行尾的处理", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.1.6/#id-1.11.6.23.5", "source_hash": "e1fd8167191701b3c386969a1e10161bdd7590b75bf380910cb1e1f16a0cf46e", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix pg_upgrade's handling of line endings on Windows (Andrew Dunstan) Previously, pg_upgrade might add or remove carriage returns in places such as function bodies.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.6/changes/014", "db_id": "c7879bf03c0246afe35ba7451b635ea2", "patch_ids": [], "statement_hash": "3689fa5cd613a4767592dd4312565d863189fb2d99b35223be74f5e2f6557c75", "relations": [{"rule": 2, "type": "equivalent", "target": "d8591fd7da4d86c575154fd3823cc95e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3689fa5cd613a4767592dd4312565d863189fb2d99b35223be74f5e2f6557c75"}}], "version": "9.1.6", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "d8591fd7da4d86c575154fd3823cc95e", "kind": "equivalent", "version": "9.0.10", "label": "9.0.10", "title": "修复 pg_upgrade 在 Windows 上对行尾的处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3689fa5cd613a4767592dd4312565d863189fb2d99b35223be74f5e2f6557c75"}, "url": "/docs/compare/?release=9.0.10#9.0.10-c47055576af39a22", "source_url": "/docs/release/9.0.10/#id-1.11.6.18.5"}]}, {"id": "9.1.6-c5efb72f6beb88ba", "cves": [], "html": "<p>在 Windows 上，让 <span>pg_upgrade</span> 在其生成的脚本中使用反斜杠路径分隔符（Andrew Dunstan）</p>", "text": "在 Windows 上，让 pg_upgrade 在其生成的脚本中使用反斜杠路径分隔符（Andrew Dunstan）", "title": "在 Windows 上，让 pg_upgrade 在其生成的脚本中使用反斜杠路径分隔符", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.1.6/#id-1.11.6.23.5", "source_hash": "35ee2f9409ee996c64255249d61dcfacd719a56049d8ccb31e1e5e1502dd95c6", "section_path": ["变更"], "commit_groups": [], "identity_text": "On Windows, make pg_upgrade use backslash path separators in the scripts it emits (Andrew Dunstan)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.6/changes/015", "db_id": "5b21e9be799a3571f9cd9d29f6e8d44c", "patch_ids": [], "statement_hash": "604f1c60574da94dfe9cc61c911a84c9966d03fd790d021b8bc41baaad932d01", "relations": [{"rule": 2, "type": "equivalent", "target": "8fc6eb12af4b6c9bc4aa08063275ea55", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "604f1c60574da94dfe9cc61c911a84c9966d03fd790d021b8bc41baaad932d01"}}], "version": "9.1.6", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "8fc6eb12af4b6c9bc4aa08063275ea55", "kind": "equivalent", "version": "9.0.10", "label": "9.0.10", "title": "在 Windows 上，让 pg_upgrade 在其生成的脚本中使用反斜杠路径分隔符", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "604f1c60574da94dfe9cc61c911a84c9966d03fd790d021b8bc41baaad932d01"}, "url": "/docs/compare/?release=9.0.10#9.0.10-c5efb72f6beb88ba", "source_url": "/docs/release/9.0.10/#id-1.11.6.18.5"}]}, {"id": "9.1.6-d3dac0f0f1928eb1", "cves": [], "html": "<p>移除 <span>pg_upgrade</span> 对 <span>pg_config</span> 的不必要依赖（Peter Eisentraut）</p>", "text": "移除 pg_upgrade 对 pg_config 的不必要依赖（Peter Eisentraut）", "title": "移除 pg_upgrade 对 pg_config 的不必要依赖", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.1.6/#id-1.11.6.23.5", "source_hash": "713a8cdafd9a36d0d6c8d5f7caac2244b20eb848b77b2bec4282367fd7debc4f", "section_path": ["变更"], "commit_groups": [], "identity_text": "Remove unnecessary dependency on pg_config from pg_upgrade (Peter Eisentraut)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.6/changes/016", "db_id": "13eec267c3e62f76520e5b561e964352", "patch_ids": [], "statement_hash": "ac5b9aa36b497611605ac28dc05bed896ff80c972365ac5b9a05def27dd63386", "relations": [{"rule": 2, "type": "equivalent", "target": "5ded8e2c1ef0c7f29c8fe51146c7582c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ac5b9aa36b497611605ac28dc05bed896ff80c972365ac5b9a05def27dd63386"}}], "version": "9.1.6", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "5ded8e2c1ef0c7f29c8fe51146c7582c", "kind": "equivalent", "version": "9.2.1", "label": "9.2.1", "title": "移除 pg_upgrade 对 pg_config 的不必要依赖", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ac5b9aa36b497611605ac28dc05bed896ff80c972365ac5b9a05def27dd63386"}, "url": "/docs/compare/?release=9.2.1#9.2.1-d3dac0f0f1928eb1", "source_url": "/docs/release/9.2.1/#id-1.11.6.28.5"}]}, {"id": "9.1.6-34d486e25f2c3c26", "cves": [], "html": "<p>把时区数据文件更新为 <span>tzdata</span> 版本 2014e，以反映克里米亚、埃及和摩洛哥的夏令时法规变更。</p>", "text": "把时区数据文件更新为 tzdata 版本 2014e，以反映克里米亚、埃及和摩洛哥的夏令时法规变更。", "title": "把时区数据文件更新为 tzdata 版本 2014e，以反映克里米亚、埃及和摩洛哥的夏令时法规变更。", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.1.6/#id-1.11.6.23.5", "source_hash": "d8a80091b70fe4d863dd3841b32322b5b07e1979a8c64bcb8b7947c4facbb99e", "section_path": ["变更"], "commit_groups": [], "identity_text": "Update time zone data files to tzdata release 2012f for DST law changes in Fiji", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.6/changes/017", "db_id": "b0a01851eb79db8339550a03879ef2e3", "patch_ids": [], "statement_hash": "c6e1e4392e7c2866d9d05a00c2d80972799fba21171a3252e1d5475f2b473ba8", "relations": [{"rule": 2, "type": "equivalent", "target": "3355d171f59b6dd9ccfea042bb14942b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c6e1e4392e7c2866d9d05a00c2d80972799fba21171a3252e1d5475f2b473ba8"}}, {"rule": 2, "type": "equivalent", "target": "7b5b3e7e60e584eb09fcc994d80bf9d3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c6e1e4392e7c2866d9d05a00c2d80972799fba21171a3252e1d5475f2b473ba8"}}], "version": "9.1.6", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "7b5b3e7e60e584eb09fcc994d80bf9d3", "kind": "equivalent", "version": "9.2.1", "label": "9.2.1", "title": "把时区数据文件更新为 tzdata 版本 2014e，以反映克里米亚、埃及和摩洛哥的夏令时法规变更。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c6e1e4392e7c2866d9d05a00c2d80972799fba21171a3252e1d5475f2b473ba8"}, "url": "/docs/compare/?release=9.2.1#9.2.1-34d486e25f2c3c26", "source_url": "/docs/release/9.2.1/#id-1.11.6.28.5"}, {"db_id": "3355d171f59b6dd9ccfea042bb14942b", "kind": "equivalent", "version": "9.0.10", "label": "9.0.10", "title": "把时区数据文件更新为 tzdata 版本 2014e，以反映克里米亚、埃及和摩洛哥的夏令时法规变更。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c6e1e4392e7c2866d9d05a00c2d80972799fba21171a3252e1d5475f2b473ba8"}, "url": "/docs/compare/?release=9.0.10#9.0.10-34d486e25f2c3c26", "source_url": "/docs/release/9.0.10/#id-1.11.6.18.5"}]}]}], "stats": [{"key": "all", "label": "全部变更", "count": 17}, {"key": "feature", "label": "新功能", "count": 0}, {"key": "bugfix", "label": "BUG 修复", "count": 8}, {"key": "security", "label": "安全相关", "count": 0}, {"key": "performance", "label": "性能改进", "count": 0}, {"key": "compatibility", "label": "兼容性变化", "count": 0}, {"key": "improvement", "label": "其他改进", "count": 9}], "total": 17, "release_count": 1, "cross_major": false, "cve_count": 0, "cves": [], "cve_available": true, "remaining_cves": [], "security_regressions": [], "warnings": [], "candidate_count": 17, "already_in_source_count": 0, "duplicate_count": 0, "excluded_count": 0, "exclusions": [], "source_as_of": "2026-09-26", "security_as_of": "2026-09-26"}