{"format": 1, "mode": "release", "from_release": null, "to_release": {"date": "2016-10-27", "build": "9.6.1", "major": "9.6", "minor": 1, "manual": "9.6", "status": "stable", "doc_git": "", "version": "9.6.1", "eol_date": "2021-11-11", "date_text": "2016-10-27", "supported": false, "manual_url": "/docs/9.6/release-9-6-1.html", "source_url": "/docs/release/9.6.1/", "entry_count": 28, "placeholder": false, "content_hash": "e71556a487a0f578f60e49a36e05eaf9a794cb9ae21b37b2234e753a0f6e06a0", "manual_build": "9.6.24", "source_as_of": "", "changes_count": 28, "doc_loaded_at": "2026-09-26T02:56:43.973460", "migration_html": "<p>对于运行 9.6.X 的用户，不需要转储/恢复。</p>\n<p>不过，如果你的安装受到下面前两条变更日志条目所述 bug 的影响，更新之后你可能需要采取行动修复损坏的空闲空间映射和/或可见性映射。</p>", "compatibility_count": 0, "label": "9.6.1", "status_label": "历史版本", "eol": "2021-11-11", "age_days": 3625, "support_days": -1784}, "groups": [{"date": "2016-10-27", "build": "9.6.1", "major": "9.6", "minor": 1, "manual": "9.6", "status": "stable", "doc_git": "", "version": "9.6.1", "eol_date": "2021-11-11", "date_text": "2016-10-27", "supported": false, "manual_url": "/docs/9.6/release-9-6-1.html", "source_url": "/docs/release/9.6.1/", "entry_count": 28, "placeholder": false, "content_hash": "e71556a487a0f578f60e49a36e05eaf9a794cb9ae21b37b2234e753a0f6e06a0", "manual_build": "9.6.24", "source_as_of": "", "changes_count": 28, "doc_loaded_at": "2026-09-26T02:56:43.973460", "migration_html": "<p>对于运行 9.6.X 的用户，不需要转储/恢复。</p>\n<p>不过，如果你的安装受到下面前两条变更日志条目所述 bug 的影响，更新之后你可能需要采取行动修复损坏的空闲空间映射和/或可见性映射。</p>", "compatibility_count": 0, "label": "9.6.1", "status_label": "历史版本", "eol": "2021-11-11", "age_days": 3625, "support_days": -1784, "entries": [{"id": "9.6.1-11f8f9985f40fab4", "cves": [], "html": "<p>修复关系空闲空间映射和可见性映射截断的 WAL 记录（Pavan Deolasee、Heikki Linnakangas）</p>\n<p>这些文件有可能在崩溃恢复期间未被正确恢复，或者在备库服务器上被错误写入。空闲空间映射中的虚假条目可能导致访问已从关系中截断掉的页，通常产生诸如 <span>“<span>could not read block <em><code>XXX</code></em>: read only 0 of 8192 bytes</span>”</span> 的错误。如果启用了校验和，可见性映射中的校验和失败也是可能的。</p>\n<p>判断是否存在问题以及如何修复的程序在<a href=\"https://wiki.postgresql.org/wiki/Free_Space_Map_Problems\">https://wiki.postgresql.org/wiki/Free_Space_Map_Problems</a>中讨论。</p>", "text": "修复关系空闲空间映射和可见性映射截断的 WAL 记录（Pavan Deolasee、Heikki Linnakangas） 这些文件有可能在崩溃恢复期间未被正确恢复，或者在备库服务器上被错误写入。空闲空间映射中的虚假条目可能导致访问已从关系中截断掉的页，通常产生诸如 “could not read block XXX: read only 0 of 8192 bytes” 的错误。如果启用了校验和，可见性映射中的校验和失败也是可能的。 判断是否存在问题以及如何修复的程序在https://wiki.postgresql.org/wiki/Free_Space_Map_Problems中讨论。", "title": "修复关系空闲空间映射和可见性映射截断的 WAL 记录", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.1/#id-1.11.6.28.5", "source_hash": "cd3ea0102e9a5a4f7116bbedbaf3a4c77cb441af55d076783a92c1e0276104da", "section_path": ["变更"], "commit_groups": [["142530ef0", "1c02ee314", "2523bef15", "917dc7d23", "b82573d6e"]], "identity_text": "Fix WAL-logging of truncation of relation free space maps and visibility maps (Pavan Deolasee, Heikki Linnakangas) It was possible for these files to not be correctly restored during crash recovery, or to be written incorrectly on a standby server. Bogus entries in a free space map could lead to attempts to access pages that have been truncated away from the relation itself, typically producing errors like could not read block XXX: read only 0 of 8192 bytes. Checksum failures in the visibility map are also possible, if checksumming is enabled. Procedures for determining whether there is a problem and repairing it if so are discussed at .", "commit_aliases": ["142530ef0", "1c02ee314", "2523bef15", "917dc7d23", "b82573d6e"], "source_commits": ["142530ef0"], "source_entry_id": "9.6.1/changes/001", "db_id": "f7aa35ae515033d8874d9c9a6d5aa129", "patch_ids": ["4a3d761dc18937abc8bd445a2277d498"], "statement_hash": "27cdeeeff24fa935a7c84bfda055fcf082be79fb96036a1751c3a8e5058cc734", "relations": [{"rule": 2, "type": "equivalent", "target": "2e98beda261d76d5e2d451d7d589fe76", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "27cdeeeff24fa935a7c84bfda055fcf082be79fb96036a1751c3a8e5058cc734"}}, {"rule": 2, "type": "equivalent", "target": "b8931467596606ee308ef7bf67015c41", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "27cdeeeff24fa935a7c84bfda055fcf082be79fb96036a1751c3a8e5058cc734"}}, {"rule": 2, "type": "equivalent", "target": "ec09950c4b42590a3a372f8dbd97440b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "27cdeeeff24fa935a7c84bfda055fcf082be79fb96036a1751c3a8e5058cc734"}}], "version": "9.6.1", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "2e98beda261d76d5e2d451d7d589fe76", "kind": "equivalent", "version": "9.5.5", "label": "9.5.5", "title": "修复关系空闲空间映射和可见性映射截断的 WAL 记录", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "27cdeeeff24fa935a7c84bfda055fcf082be79fb96036a1751c3a8e5058cc734"}, "url": "/docs/compare/?release=9.5.5#9.5.5-11f8f9985f40fab4", "source_url": "/docs/release/9.5.5/#id-1.11.6.25.5"}, {"db_id": "ec09950c4b42590a3a372f8dbd97440b", "kind": "equivalent", "version": "9.4.10", "label": "9.4.10", "title": "修复关系空闲空间映射和可见性映射截断的 WAL 记录", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "27cdeeeff24fa935a7c84bfda055fcf082be79fb96036a1751c3a8e5058cc734"}, "url": "/docs/compare/?release=9.4.10#9.4.10-11f8f9985f40fab4", "source_url": "/docs/release/9.4.10/#id-1.11.6.21.5"}, {"db_id": "b8931467596606ee308ef7bf67015c41", "kind": "equivalent", "version": "9.3.15", "label": "9.3.15", "title": "修复关系空闲空间映射和可见性映射截断的 WAL 记录", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "27cdeeeff24fa935a7c84bfda055fcf082be79fb96036a1751c3a8e5058cc734"}, "url": "/docs/compare/?release=9.3.15#9.3.15-11f8f9985f40fab4", "source_url": "/docs/release/9.3.15/#id-1.11.6.15.5"}]}, {"id": "9.6.1-f1e12c15a6064076", "cves": [], "html": "<p>修复 <span>pg_upgrade</span> 把关系可见性映射重写为 9.6 格式时可能的数据损坏（Tom Lane）</p>\n<p>在大端机器上，新可见性映射的字节以错误顺序写入，导致完全错误的映射。在 Windows 上，旧映射以文本模式读取，如果映射碰巧包含匹配回车/ 换行序列的连续字节则导致错误结果。后者几乎总是由于映射文件看起来长度错误而导致 <span>pg_upgrade</span> 失败。</p>\n<p>如果你在使用大端机器（许多非 Intel 架构是大端的）并且使用过 <span>pg_upgrade</span> 从 9.6 之前的版本升级，应当假定所有可见性映射都是错误的、需要重新生成。用 <code>contrib/pg_visibility</code> 的 <code>pg_truncate_visibility_map()</code> 函数截断每个关系的可见性映射就足够了。更多信息见<a href=\"https://wiki.postgresql.org/wiki/Visibility_Map_Problems\">https://wiki.postgresql.org/wiki/Visibility_Map_Problems</a>。</p>", "text": "修复 pg_upgrade 把关系可见性映射重写为 9.6 格式时可能的数据损坏（Tom Lane） 在大端机器上，新可见性映射的字节以错误顺序写入，导致完全错误的映射。在 Windows 上，旧映射以文本模式读取，如果映射碰巧包含匹配回车/ 换行序列的连续字节则导致错误结果。后者几乎总是由于映射文件看起来长度错误而导致 pg_upgrade 失败。 如果你在使用大端机器（许多非 Intel 架构是大端的）并且使用过 pg_upgrade 从 9.6 之前的版本升级，应当假定所有可见性映射都是错误的、需要重新生成。用 contrib/pg_visibility 的 pg_truncate_visibility_map() 函数截断每个关系的可见性映射就足够了。更多信息见https://wiki.postgresql.org/wiki/Visibility_Map_Problems。", "title": "修复 pg_upgrade 把关系可见性映射重写为 9.6 格式时可能的数据损坏", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.1/#id-1.11.6.28.5", "source_hash": "0eed2d61e89adf5d622b2d2f53d3b593c210f7edf347dfe2af06dca51141713b", "section_path": ["变更"], "commit_groups": [["5afcd2aa7", "b6d906073"]], "identity_text": "Fix possible data corruption when pg_upgrade rewrites a relation visibility map into 9.6 format (Tom Lane) On big-endian machines, bytes of the new visibility map were written in the wrong order, leading to a completely incorrect map. On Windows, the old map was read using text mode, leading to incorrect results if the map happened to contain consecutive bytes that matched a carriage return/line feed sequence. The latter error would almost always lead to a pg_upgrade failure due to the map file appearing to be the wrong length. If you are using a big-endian machine (many non-Intel architectures are big-endian) and have used pg_upgrade to upgrade from a pre-9.6 release, you should assume that all visibility maps are incorrect and need to be regenerated. It is sufficient to truncate each relation's visibility map with contrib/pg_visibility's pg_truncate_visibility_map() function. For more information see .", "commit_aliases": ["5afcd2aa7", "b6d906073"], "source_commits": ["b6d906073"], "source_entry_id": "9.6.1/changes/002", "db_id": "9f87f6defbd0712a1660ade0a8953e4b", "patch_ids": ["be37f68ed14681e8da1eb42959850c69"], "statement_hash": "fbc2bbb3153af8c659c71db3eb98f987053c96273a26e96ddfc54b9b88a8105f", "relations": [], "version": "9.6.1", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.6.1-a0bb7954a1b1e2db", "cves": [], "html": "<p>不再对 <code>INSERT ... ON CONFLICT</code> 中的自冲突插入抛出序列化错误（Thomas Munro、Peter Geoghegan）</p>", "text": "不再对 INSERT ... ON CONFLICT 中的自冲突插入抛出序列化错误（Thomas Munro、Peter Geoghegan）", "title": "不再对 INSERT ... ON CONFLICT 中的自冲突插入抛出序列化错误", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.1/#id-1.11.6.28.5", "source_hash": "8768e8184b579541a2a94f5408c8edf7cc2febe951a1ddcff03d5be21a0d72f5", "section_path": ["变更"], "commit_groups": [["65d85b8f9", "a6c0a5b6e", "c4016fcb1"]], "identity_text": "Don't throw serialization errors for self-conflicting insertions in INSERT ... ON CONFLICT (Thomas Munro, Peter Geoghegan)", "commit_aliases": ["65d85b8f9", "a6c0a5b6e", "c4016fcb1"], "source_commits": ["c4016fcb1"], "source_entry_id": "9.6.1/changes/003", "db_id": "a71c63c6645ce0253391abccc57a5638", "patch_ids": ["a00463c5e71a6404f69027742e6dff70"], "statement_hash": "c127d9cacb2d73f3395dbd9f01f659d1f36652880c92cd494e5d9b8f13a66e3e", "relations": [{"rule": 2, "type": "equivalent", "target": "4925fd02193c528c2bf941a69d416d4a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c127d9cacb2d73f3395dbd9f01f659d1f36652880c92cd494e5d9b8f13a66e3e"}}], "version": "9.6.1", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "4925fd02193c528c2bf941a69d416d4a", "kind": "equivalent", "version": "9.5.5", "label": "9.5.5", "title": "不再对 INSERT ... ON CONFLICT 中的自冲突插入抛出序列化错误", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c127d9cacb2d73f3395dbd9f01f659d1f36652880c92cd494e5d9b8f13a66e3e"}, "url": "/docs/compare/?release=9.5.5#9.5.5-a0bb7954a1b1e2db", "source_url": "/docs/release/9.5.5/#id-1.11.6.25.5"}]}, {"id": "9.6.1-2b4b3fe07ecdefae", "cves": [], "html": "<p>修复使用 <code>DISTINCT</code> 的聚合函数执行中的释放后使用风险（Peter Geoghegan）</p>\n<p>这可能导致崩溃或错误查询结果。</p>", "text": "修复使用 DISTINCT 的聚合函数执行中的释放后使用风险（Peter Geoghegan） 这可能导致崩溃或错误查询结果。", "title": "修复使用 DISTINCT 的聚合函数执行中的释放后使用风险", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.1/#id-1.11.6.28.5", "source_hash": "f5df7fa5bdf56cc1f98f098c46d5e67ba635e506beca11409cf3e3ea6754fda7", "section_path": ["变更"], "commit_groups": [["a5f0bd77a", "d8589946d"]], "identity_text": "Fix use-after-free hazard in execution of aggregate functions using DISTINCT (Peter Geoghegan) This could lead to a crash or incorrect query results.", "commit_aliases": ["a5f0bd77a", "d8589946d"], "source_commits": ["a5f0bd77a"], "source_entry_id": "9.6.1/changes/004", "db_id": "1fe654cc162d25b34a32a148bf4b91e6", "patch_ids": ["7bcf6fcc18a3a99fad3d32b2f8839554"], "statement_hash": "43eb45108dae92f21d12ed088c3683604e49317e165b53896edc403c4f45b233", "relations": [], "version": "9.6.1", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.6.1-e567278f84ca3732", "cves": [], "html": "<p>修复用作窗口函数的多态聚合的错误处理（Tom Lane）</p>\n<p>聚合的转换函数被告知其第一个参数和结果是聚合的输出类型而不是状态类型。这导致多态转换函数的错误或崩溃。</p>", "text": "修复用作窗口函数的多态聚合的错误处理（Tom Lane） 聚合的转换函数被告知其第一个参数和结果是聚合的输出类型而不是状态类型。这导致多态转换函数的错误或崩溃。", "title": "修复用作窗口函数的多态聚合的错误处理", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.1/#id-1.11.6.28.5", "source_hash": "24b3dc65cc0aeb8a41c36f373f863e54a36d52d8a86c0c771c39de225a527cb5", "section_path": ["变更"], "commit_groups": [["ac4a9d92f", "dca25c256"]], "identity_text": "Fix incorrect handling of polymorphic aggregates used as window functions (Tom Lane) The aggregate's transition function was told that its first argument and result were of the aggregate's output type, rather than the state type. This led to errors or crashes with polymorphic transition functions.", "commit_aliases": ["ac4a9d92f", "dca25c256"], "source_commits": ["dca25c256"], "source_entry_id": "9.6.1/changes/005", "db_id": "07907458595e08b42a2fe02357e5c7ee", "patch_ids": ["2db20fa516cd2450acb901a23cf0ce01"], "statement_hash": "0abcc2fd9a49db54d85da9060280029f7107eae04a71a2ee136239662a4924b2", "relations": [], "version": "9.6.1", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.6.1-e96ca4a48827b1c2", "cves": [], "html": "<p>修复对启用了行级安全的表使用带列名列表的 <code>COPY</code>（Adam Brightwell）</p>", "text": "修复对启用了行级安全的表使用带列名列表的 COPY（Adam Brightwell）", "title": "修复对启用了行级安全的表使用带列名列表的 COPY", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.1/#id-1.11.6.28.5", "source_hash": "2fccf0535f2521e5288f8420b32aa65453629ac1b0ba31446675e4ce334f8217", "section_path": ["变更"], "commit_groups": [["190765a05", "647a86e37", "814b9e9b8"]], "identity_text": "Fix COPY with a column name list from a table that has row-level security enabled (Adam Brightwell)", "commit_aliases": ["190765a05", "647a86e37", "814b9e9b8"], "source_commits": ["190765a05"], "source_entry_id": "9.6.1/changes/006", "db_id": "67d5ac0ca5a3eed110d770ca22cc9e1c", "patch_ids": ["1d627f4a58bc5427a277f089f6667fbc"], "statement_hash": "c9b07a2acda4ca684db76cc1fba42bb9a4718b98ff9e024dd532efc56ca477bc", "relations": [{"rule": 2, "type": "equivalent", "target": "d899869d00de43211c7aa6d89fbe38c8", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c9b07a2acda4ca684db76cc1fba42bb9a4718b98ff9e024dd532efc56ca477bc"}}], "version": "9.6.1", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "d899869d00de43211c7aa6d89fbe38c8", "kind": "equivalent", "version": "9.5.5", "label": "9.5.5", "title": "修复对启用了行级安全的表使用带列名列表的 COPY", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c9b07a2acda4ca684db76cc1fba42bb9a4718b98ff9e024dd532efc56ca477bc"}, "url": "/docs/compare/?release=9.5.5#9.5.5-e96ca4a48827b1c2", "source_url": "/docs/release/9.5.5/#id-1.11.6.25.5"}]}, {"id": "9.6.1-1ce213d7a7e480a4", "cves": [], "html": "<p>修复<a href=\"/docs/9.6/runtime-config-statistics.html#GUC-TRACK-IO-TIMING\">track_io_timing</a>打开时 <code>EXPLAIN</code> 发出有效 XML（Markus Winand）</p>\n<p>此前 XML 输出格式选项产生语法无效的标记，如 <code>&lt;I/O-Read-Time&gt;</code>。现在它被渲染为 <code>&lt;I-O-Read-Time&gt;</code>。</p>", "text": "修复track_io_timing打开时 EXPLAIN 发出有效 XML（Markus Winand） 此前 XML 输出格式选项产生语法无效的标记，如 <I/O-Read-Time>。现在它被渲染为 <I-O-Read-Time>。", "title": "修复track_io_timing打开时 EXPLAIN 发出有效 XML", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.1/#id-1.11.6.28.5", "source_hash": "ea7946ab4b8aa56c96bd9416427c9015099184e2554743e0bede29400e68c0bd", "section_path": ["变更"], "commit_groups": [["033666515", "709e461be", "adb199711", "cc0e4c567", "edb514306", "f17c26dbd"]], "identity_text": "Fix EXPLAIN to emit valid XML when guc-track-io-timing is on (Markus Winand) Previously the XML output-format option produced syntactically invalid tags such as <I/O-Read-Time>. That is now rendered as <I-O-Read-Time>.", "commit_aliases": ["033666515", "709e461be", "adb199711", "cc0e4c567", "edb514306", "f17c26dbd"], "source_commits": ["033666515"], "source_entry_id": "9.6.1/changes/007", "db_id": "c35805d056ec383a472956b186d0e0c6", "patch_ids": ["f840ff87162cc73e5f38617abf664421"], "statement_hash": "7684251d5d0c3e099470838cc7d80527d0d235a04ca6bbc27cd999a07c9cd099", "relations": [{"rule": 2, "type": "equivalent", "target": "031d3c079a7113c9bce46abaecdf1492", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7684251d5d0c3e099470838cc7d80527d0d235a04ca6bbc27cd999a07c9cd099"}}, {"rule": 2, "type": "equivalent", "target": "2fa487464b0dfddc6e527f5a845fa85d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7684251d5d0c3e099470838cc7d80527d0d235a04ca6bbc27cd999a07c9cd099"}}, {"rule": 2, "type": "equivalent", "target": "684f2a691ee59de4a4bcc3301b1e7459", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7684251d5d0c3e099470838cc7d80527d0d235a04ca6bbc27cd999a07c9cd099"}}, {"rule": 2, "type": "equivalent", "target": "7d7e9a5d8afdcb8105c7b6a186564444", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7684251d5d0c3e099470838cc7d80527d0d235a04ca6bbc27cd999a07c9cd099"}}], "version": "9.6.1", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "2fa487464b0dfddc6e527f5a845fa85d", "kind": "equivalent", "version": "9.5.5", "label": "9.5.5", "title": "修复track_io_timing打开时 EXPLAIN 发出有效 XML", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7684251d5d0c3e099470838cc7d80527d0d235a04ca6bbc27cd999a07c9cd099"}, "url": "/docs/compare/?release=9.5.5#9.5.5-1ce213d7a7e480a4", "source_url": "/docs/release/9.5.5/#id-1.11.6.25.5"}, {"db_id": "684f2a691ee59de4a4bcc3301b1e7459", "kind": "equivalent", "version": "9.4.10", "label": "9.4.10", "title": "修复track_io_timing打开时 EXPLAIN 发出有效 XML", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7684251d5d0c3e099470838cc7d80527d0d235a04ca6bbc27cd999a07c9cd099"}, "url": "/docs/compare/?release=9.4.10#9.4.10-1ce213d7a7e480a4", "source_url": "/docs/release/9.4.10/#id-1.11.6.21.5"}, {"db_id": "7d7e9a5d8afdcb8105c7b6a186564444", "kind": "equivalent", "version": "9.3.15", "label": "9.3.15", "title": "修复track_io_timing打开时 EXPLAIN 发出有效 XML", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7684251d5d0c3e099470838cc7d80527d0d235a04ca6bbc27cd999a07c9cd099"}, "url": "/docs/compare/?release=9.3.15#9.3.15-1ce213d7a7e480a4", "source_url": "/docs/release/9.3.15/#id-1.11.6.15.5"}, {"db_id": "031d3c079a7113c9bce46abaecdf1492", "kind": "equivalent", "version": "9.2.19", "label": "9.2.19", "title": "修复track_io_timing打开时 EXPLAIN 发出有效 XML", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7684251d5d0c3e099470838cc7d80527d0d235a04ca6bbc27cd999a07c9cd099"}, "url": "/docs/compare/?release=9.2.19#9.2.19-1ce213d7a7e480a4", "source_url": "/docs/release/9.2.19/#id-1.11.6.10.5"}]}, {"id": "9.6.1-41bacac096d86e52", "cves": [], "html": "<p>修复预备事务中 <code>TRUNCATE</code> 的统计信息更新（Stas Kelvich）</p>", "text": "修复预备事务中 TRUNCATE 的统计信息更新（Stas Kelvich）", "title": "修复预备事务中 TRUNCATE 的统计信息更新", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.1/#id-1.11.6.28.5", "source_hash": "8d6380e3dc5b2c6ff31ec270aebc794f71ae1ca6c44406908afa082116824c0a", "section_path": ["变更"], "commit_groups": [["03f2bf70a", "3cd504254", "81e82a2bd"]], "identity_text": "Fix statistics update for TRUNCATE in a prepared transaction (Stas Kelvich)", "commit_aliases": ["03f2bf70a", "3cd504254", "81e82a2bd"], "source_commits": ["03f2bf70a"], "source_entry_id": "9.6.1/changes/008", "db_id": "449a2512af576a09b3bdfd593f77d9cb", "patch_ids": ["f1e9112301fef7d8455574626b453033"], "statement_hash": "981c2e6e7c8d983c70c6a0235524fe9f7c0dbbc00a2fcc63122610d97574d8d4", "relations": [{"rule": 2, "type": "equivalent", "target": "4f00adb909846432c51419a45c9a5479", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "981c2e6e7c8d983c70c6a0235524fe9f7c0dbbc00a2fcc63122610d97574d8d4"}}], "version": "9.6.1", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "4f00adb909846432c51419a45c9a5479", "kind": "equivalent", "version": "9.5.5", "label": "9.5.5", "title": "修复预备事务中 TRUNCATE 的统计信息更新", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "981c2e6e7c8d983c70c6a0235524fe9f7c0dbbc00a2fcc63122610d97574d8d4"}, "url": "/docs/compare/?release=9.5.5#9.5.5-41bacac096d86e52", "source_url": "/docs/release/9.5.5/#id-1.11.6.25.5"}]}, {"id": "9.6.1-57214dd6616bc23b", "cves": [], "html": "<p>修复创建或更改表时合并继承 <code>CHECK</code> 约束的 bug（Tom Lane、Amit Langote）</p>\n<p>允许以任一顺序向父表和子表添加相同的 <code>CHECK</code> 约束。防止父表的有效约束与子表的 <code>NOT VALID</code> 约束合并。同样防止 <code>NO INHERIT</code> 子约束与继承约束合并。</p>", "text": "修复创建或更改表时合并继承 CHECK 约束的 bug（Tom Lane、Amit Langote） 允许以任一顺序向父表和子表添加相同的 CHECK 约束。防止父表的有效约束与子表的 NOT VALID 约束合并。同样防止 NO INHERIT 子约束与继承约束合并。", "title": "修复创建或更改表时合并继承 CHECK 约束的 bug", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.1/#id-1.11.6.28.5", "source_hash": "9e0aa396bbf22322bcc9b91a4a4dc5875617343e5cf728b26d24abec5f43cafa", "section_path": ["变更"], "commit_groups": [["12230c478", "56a047f46", "a54faa659", "b605aeba0", "d1a9f128d", "e55a946a8"], ["3217ac3a9", "3cca13cbf", "6f2db29ec", "f0bf0f233", "f2024d59a", "f9e8b05e5"]], "identity_text": "Fix bugs in merging inherited CHECK constraints while creating or altering a table (Tom Lane, Amit Langote) Allow identical CHECK constraints to be added to a parent and child table in either order. Prevent merging of a valid constraint from the parent table with a NOT VALID constraint on the child. Likewise, prevent merging of a NO INHERIT child constraint with an inherited constraint.", "commit_aliases": ["12230c478", "3217ac3a9", "3cca13cbf", "56a047f46", "6f2db29ec", "a54faa659", "b605aeba0", "d1a9f128d", "e55a946a8", "f0bf0f233", "f2024d59a", "f9e8b05e5"], "source_commits": ["b605aeba0", "f9e8b05e5"], "source_entry_id": "9.6.1/changes/009", "db_id": "820976eee5d0d58fc24e6faef69ef024", "patch_ids": ["7855b05750225fc106ea8dbc42e37eb2", "7c1d3ebdad386a3a1549a646ddd79b86"], "statement_hash": "3c6b2020261c2724cfab703b00857db00700c29782efcb621b3753fb01eaa86a", "relations": [{"rule": 2, "type": "equivalent", "target": "17c3b5c88a4e18eeb9db0d79f1bd4738", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3c6b2020261c2724cfab703b00857db00700c29782efcb621b3753fb01eaa86a"}}, {"rule": 2, "type": "equivalent", "target": "864da9828cbc9dedf3a48fbb88838d2c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3c6b2020261c2724cfab703b00857db00700c29782efcb621b3753fb01eaa86a"}}, {"rule": 2, "type": "equivalent", "target": "cf4210aa72e5ceb04465bf6396e92fd3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3c6b2020261c2724cfab703b00857db00700c29782efcb621b3753fb01eaa86a"}}, {"rule": 2, "type": "equivalent", "target": "d0ba967b9080e8d3d7c374af62b71ddc", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3c6b2020261c2724cfab703b00857db00700c29782efcb621b3753fb01eaa86a"}}], "version": "9.6.1", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "d0ba967b9080e8d3d7c374af62b71ddc", "kind": "equivalent", "version": "9.5.5", "label": "9.5.5", "title": "修复创建或更改表时合并继承 CHECK 约束的 bug", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3c6b2020261c2724cfab703b00857db00700c29782efcb621b3753fb01eaa86a"}, "url": "/docs/compare/?release=9.5.5#9.5.5-57214dd6616bc23b", "source_url": "/docs/release/9.5.5/#id-1.11.6.25.5"}, {"db_id": "864da9828cbc9dedf3a48fbb88838d2c", "kind": "equivalent", "version": "9.4.10", "label": "9.4.10", "title": "修复创建或更改表时合并继承 CHECK 约束的 bug", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3c6b2020261c2724cfab703b00857db00700c29782efcb621b3753fb01eaa86a"}, "url": "/docs/compare/?release=9.4.10#9.4.10-57214dd6616bc23b", "source_url": "/docs/release/9.4.10/#id-1.11.6.21.5"}, {"db_id": "cf4210aa72e5ceb04465bf6396e92fd3", "kind": "equivalent", "version": "9.3.15", "label": "9.3.15", "title": "修复创建或更改表时合并继承 CHECK 约束的 bug", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3c6b2020261c2724cfab703b00857db00700c29782efcb621b3753fb01eaa86a"}, "url": "/docs/compare/?release=9.3.15#9.3.15-57214dd6616bc23b", "source_url": "/docs/release/9.3.15/#id-1.11.6.15.5"}, {"db_id": "17c3b5c88a4e18eeb9db0d79f1bd4738", "kind": "equivalent", "version": "9.2.19", "label": "9.2.19", "title": "修复创建或更改表时合并继承 CHECK 约束的 bug", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3c6b2020261c2724cfab703b00857db00700c29782efcb621b3753fb01eaa86a"}, "url": "/docs/compare/?release=9.2.19#9.2.19-57214dd6616bc23b", "source_url": "/docs/release/9.2.19/#id-1.11.6.10.5"}]}, {"id": "9.6.1-862ecac105bdca83", "cves": [], "html": "<p>在 <code>pg_settings</code>.<code>unit</code> 中为 <code>min_wal_size</code> 和 <code>max_wal_size</code> 显示合理的值（Tom Lane）</p>", "text": "在 pg_settings.unit 中为 min_wal_size 和 max_wal_size 显示合理的值（Tom Lane）", "title": "在 pg_settings.unit 中为 min_wal_size 和 max_wal_size 显示合理的值", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.1/#id-1.11.6.28.5", "source_hash": "3f13b0bc3ca897bf29ed2c8f4adb48026656999b50559ed1f27bf55a6648a8c3", "section_path": ["变更"], "commit_groups": [["6bc811c99", "993d94c59", "f50fa46cc"]], "identity_text": "Show a sensible value in pg_settings.unit for min_wal_size and max_wal_size (Tom Lane)", "commit_aliases": ["6bc811c99", "993d94c59", "f50fa46cc"], "source_commits": ["993d94c59"], "source_entry_id": "9.6.1/changes/010", "db_id": "b0badb4d8e0ca5c536eb7fe9efed9439", "patch_ids": ["23e8fab3206c2aa11d48ee35b6a0388e"], "statement_hash": "11bd97214d153c36ec602bba6c569b4e9a227dbcf57d661037d3acf23019a5c6", "relations": [{"rule": 2, "type": "equivalent", "target": "b74c3b34bd426427dbb634addc6f069f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "11bd97214d153c36ec602bba6c569b4e9a227dbcf57d661037d3acf23019a5c6"}}], "version": "9.6.1", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "b74c3b34bd426427dbb634addc6f069f", "kind": "equivalent", "version": "9.5.5", "label": "9.5.5", "title": "在 pg_settings.unit 中为 min_wal_size 和 max_wal_size 显示合理的值", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "11bd97214d153c36ec602bba6c569b4e9a227dbcf57d661037d3acf23019a5c6"}, "url": "/docs/compare/?release=9.5.5#9.5.5-862ecac105bdca83", "source_url": "/docs/release/9.5.5/#id-1.11.6.25.5"}]}, {"id": "9.6.1-977d94687865d44a", "cves": [], "html": "<p>修复 <code>jsonb_set()</code> 中数组元素的替换（Tom Lane）</p>\n<p>如果目标是现有的 JSON 数组元素，它被删除而不是被替换为新值。</p>", "text": "修复 jsonb_set() 中数组元素的替换（Tom Lane） 如果目标是现有的 JSON 数组元素，它被删除而不是被替换为新值。", "title": "修复 jsonb_set() 中数组元素的替换", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.1/#id-1.11.6.28.5", "source_hash": "7d5c7afa90a73d29e9f10028da9c81d5f8d2eb0703b1e35140ea5dee3a8b0870", "section_path": ["变更"], "commit_groups": [["0e9e64c07", "9c4cc9e2c"]], "identity_text": "Fix replacement of array elements in jsonb_set() (Tom Lane) If the target is an existing JSON array element, it got deleted instead of being replaced with a new value.", "commit_aliases": ["0e9e64c07", "9c4cc9e2c"], "source_commits": ["0e9e64c07"], "source_entry_id": "9.6.1/changes/011", "db_id": "11e3dd2c6235912220fcbea99115b5f2", "patch_ids": ["34d6cbefd12e68c1ffe120d78e8914ac"], "statement_hash": "da0657c9b7214eb1a3d332aaf30672104d1babbc3529dd136c0d0fd2054b5f87", "relations": [], "version": "9.6.1", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.6.1-4eb1a050d783d079", "cves": [], "html": "<p>避免因未持有缓冲区锁测试元组可见性而导致的极低概率数据损坏（Thomas Munro、Peter Geoghegan、Tom Lane）</p>", "text": "避免因未持有缓冲区锁测试元组可见性而导致的极低概率数据损坏（Thomas Munro、Peter Geoghegan、Tom Lane）", "title": "避免因未持有缓冲区锁测试元组可见性而导致的极低概率数据损坏", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.1/#id-1.11.6.28.5", "source_hash": "f6707b5ec6072a51de6a2209466027bacabc8eff011e822827834c86feae0d8e", "section_path": ["变更"], "commit_groups": [["5beb73b49", "6292c2339", "676c60375", "913e7e598", "9bc01e7a4", "9ec21591f", "d4fa18a55"], ["8f1fb7d62", "beac79369", "fdcee9f1f"]], "identity_text": "Avoid very-low-probability data corruption due to testing tuple visibility without holding buffer lock (Thomas Munro, Peter Geoghegan, Tom Lane)", "commit_aliases": ["5beb73b49", "6292c2339", "676c60375", "8f1fb7d62", "913e7e598", "9bc01e7a4", "9ec21591f", "beac79369", "d4fa18a55", "fdcee9f1f"], "source_commits": ["5beb73b49", "fdcee9f1f"], "source_entry_id": "9.6.1/changes/012", "db_id": "faba4ef996319c8db73db30748abf489", "patch_ids": ["a6b7e34970060495328385d27c213a3c", "c0908100272a961771a5c51c610c7cb0"], "statement_hash": "dc3a7ed96669ea608d4c733bb9f23d94722acad9fff15a88d593a50d15116c37", "relations": [{"rule": 2, "type": "equivalent", "target": "53b0b52d899de881f8586469efa7f5aa", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dc3a7ed96669ea608d4c733bb9f23d94722acad9fff15a88d593a50d15116c37"}}, {"rule": 2, "type": "equivalent", "target": "6ca408c5775b0169d72f4bf6b3f53cbe", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dc3a7ed96669ea608d4c733bb9f23d94722acad9fff15a88d593a50d15116c37"}}, {"rule": 2, "type": "equivalent", "target": "ae85002bd79a9c04b168f6dc9ace9ce5", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dc3a7ed96669ea608d4c733bb9f23d94722acad9fff15a88d593a50d15116c37"}}, {"rule": 2, "type": "equivalent", "target": "f765abee4edf5f8c07e5c00859b6aef5", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dc3a7ed96669ea608d4c733bb9f23d94722acad9fff15a88d593a50d15116c37"}}, {"rule": 2, "type": "equivalent", "target": "fec739de452ca83cbdf70ca3235da08b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dc3a7ed96669ea608d4c733bb9f23d94722acad9fff15a88d593a50d15116c37"}}], "version": "9.6.1", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "fec739de452ca83cbdf70ca3235da08b", "kind": "equivalent", "version": "9.5.5", "label": "9.5.5", "title": "避免因未持有缓冲区锁测试元组可见性而导致的极低概率数据损坏", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dc3a7ed96669ea608d4c733bb9f23d94722acad9fff15a88d593a50d15116c37"}, "url": "/docs/compare/?release=9.5.5#9.5.5-4eb1a050d783d079", "source_url": "/docs/release/9.5.5/#id-1.11.6.25.5"}, {"db_id": "53b0b52d899de881f8586469efa7f5aa", "kind": "equivalent", "version": "9.4.10", "label": "9.4.10", "title": "避免因未持有缓冲区锁测试元组可见性而导致的极低概率数据损坏", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dc3a7ed96669ea608d4c733bb9f23d94722acad9fff15a88d593a50d15116c37"}, "url": "/docs/compare/?release=9.4.10#9.4.10-4eb1a050d783d079", "source_url": "/docs/release/9.4.10/#id-1.11.6.21.5"}, {"db_id": "f765abee4edf5f8c07e5c00859b6aef5", "kind": "equivalent", "version": "9.3.15", "label": "9.3.15", "title": "避免因未持有缓冲区锁测试元组可见性而导致的极低概率数据损坏", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dc3a7ed96669ea608d4c733bb9f23d94722acad9fff15a88d593a50d15116c37"}, "url": "/docs/compare/?release=9.3.15#9.3.15-4eb1a050d783d079", "source_url": "/docs/release/9.3.15/#id-1.11.6.15.5"}, {"db_id": "6ca408c5775b0169d72f4bf6b3f53cbe", "kind": "equivalent", "version": "9.2.19", "label": "9.2.19", "title": "避免因未持有缓冲区锁测试元组可见性而导致的极低概率数据损坏", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dc3a7ed96669ea608d4c733bb9f23d94722acad9fff15a88d593a50d15116c37"}, "url": "/docs/compare/?release=9.2.19#9.2.19-4eb1a050d783d079", "source_url": "/docs/release/9.2.19/#id-1.11.6.10.5"}, {"db_id": "ae85002bd79a9c04b168f6dc9ace9ce5", "kind": "equivalent", "version": "9.1.24", "label": "9.1.24", "title": "避免因未持有缓冲区锁测试元组可见性而导致的极低概率数据损坏", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dc3a7ed96669ea608d4c733bb9f23d94722acad9fff15a88d593a50d15116c37"}, "url": "/docs/compare/?release=9.1.24#9.1.24-4eb1a050d783d079", "source_url": "/docs/release/9.1.24/#id-1.11.6.5.6"}]}, {"id": "9.6.1-4513d994931e48ce", "cves": [], "html": "<p>跨服务器重启保留提交时间戳（Julien Rouhaud、Craig Ringer）</p>\n<p>在打开<a href=\"/docs/9.6/runtime-config-replication.html#GUC-TRACK-COMMIT-TIMESTAMP\">track_commit_timestamp</a>的情况下，干净的服务器重启后旧的提交时间戳变得不可访问。</p>", "text": "跨服务器重启保留提交时间戳（Julien Rouhaud、Craig Ringer） 在打开track_commit_timestamp的情况下，干净的服务器重启后旧的提交时间戳变得不可访问。", "title": "跨服务器重启保留提交时间戳", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.1/#id-1.11.6.28.5", "source_hash": "717b3358cac01b334e4ce7e2a7b760c54f07722d773bb5d6d2374d7bf7fe4f0b", "section_path": ["变更"], "commit_groups": [["00f15338b", "7a2fa5774", "c8329f934"]], "identity_text": "Preserve commit timestamps across server restart (Julien Rouhaud, Craig Ringer) With guc-track-commit-timestamp turned on, old commit timestamps became inaccessible after a clean server restart.", "commit_aliases": ["00f15338b", "7a2fa5774", "c8329f934"], "source_commits": ["c8329f934"], "source_entry_id": "9.6.1/changes/013", "db_id": "1953461365bff77eb10e05f6b4eef6da", "patch_ids": ["6e5a5ee1506bd3492da1a6854d295621"], "statement_hash": "548c5da096bd7ac5055abf5ddce51bb4c7220f0786d51a4320c3a10d0236da0e", "relations": [{"rule": 2, "type": "equivalent", "target": "06691e7afa92b25002b15fe22317c5c3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "548c5da096bd7ac5055abf5ddce51bb4c7220f0786d51a4320c3a10d0236da0e"}}], "version": "9.6.1", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "06691e7afa92b25002b15fe22317c5c3", "kind": "equivalent", "version": "9.5.5", "label": "9.5.5", "title": "跨服务器重启保留提交时间戳", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "548c5da096bd7ac5055abf5ddce51bb4c7220f0786d51a4320c3a10d0236da0e"}, "url": "/docs/compare/?release=9.5.5#9.5.5-4513d994931e48ce", "source_url": "/docs/release/9.5.5/#id-1.11.6.25.5"}]}, {"id": "9.6.1-dcae3583b71426d8", "cves": [], "html": "<p>修复子事务的 WAL 输出大到足以溢出到磁盘时逻辑 WAL 解码的正常工作（Andres Freund）</p>", "text": "修复子事务的 WAL 输出大到足以溢出到磁盘时逻辑 WAL 解码的正常工作（Andres Freund）", "title": "修复子事务的 WAL 输出大到足以溢出到磁盘时逻辑 WAL 解码的正常工作", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.1/#id-1.11.6.28.5", "source_hash": "f6fb6f26440f6bca01f32e2bbb578ee5790d78210517c23629e8904c5c397548", "section_path": ["变更"], "commit_groups": [["07172b20f", "61633f790", "76c0b73df", "ce603a34a"]], "identity_text": "Fix logical WAL decoding to work properly when a subtransaction's WAL output is large enough to spill to disk (Andres Freund)", "commit_aliases": ["07172b20f", "61633f790", "76c0b73df", "ce603a34a"], "source_commits": ["76c0b73df"], "source_entry_id": "9.6.1/changes/014", "db_id": "7fbb078e2be4bbd5ba0ce87dfe2ac2b2", "patch_ids": ["a6f377cf73f521524477669681b5d062"], "statement_hash": "fb79dd6fa77aee0939f4bd03a29e002dc5b2c387280a8afe3431ec8d2cdb5550", "relations": [{"rule": 2, "type": "equivalent", "target": "470a039e7a7d709e873acc07b7315fed", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fb79dd6fa77aee0939f4bd03a29e002dc5b2c387280a8afe3431ec8d2cdb5550"}}, {"rule": 2, "type": "equivalent", "target": "523527d73ae0b1bd4d93ce8d8679d2ff", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fb79dd6fa77aee0939f4bd03a29e002dc5b2c387280a8afe3431ec8d2cdb5550"}}], "version": "9.6.1", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "470a039e7a7d709e873acc07b7315fed", "kind": "equivalent", "version": "9.5.5", "label": "9.5.5", "title": "修复子事务的 WAL 输出大到足以溢出到磁盘时逻辑 WAL 解码的正常工作", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fb79dd6fa77aee0939f4bd03a29e002dc5b2c387280a8afe3431ec8d2cdb5550"}, "url": "/docs/compare/?release=9.5.5#9.5.5-dcae3583b71426d8", "source_url": "/docs/release/9.5.5/#id-1.11.6.25.5"}, {"db_id": "523527d73ae0b1bd4d93ce8d8679d2ff", "kind": "equivalent", "version": "9.4.10", "label": "9.4.10", "title": "修复子事务的 WAL 输出大到足以溢出到磁盘时逻辑 WAL 解码的正常工作", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fb79dd6fa77aee0939f4bd03a29e002dc5b2c387280a8afe3431ec8d2cdb5550"}, "url": "/docs/compare/?release=9.4.10#9.4.10-dcae3583b71426d8", "source_url": "/docs/release/9.4.10/#id-1.11.6.21.5"}]}, {"id": "9.6.1-63ee0159edde63b5", "cves": [], "html": "<p>修复逻辑 WAL 解码中的悬空指针问题（Stas Kelvich）</p>", "text": "修复逻辑 WAL 解码中的悬空指针问题（Stas Kelvich）", "title": "修复逻辑 WAL 解码中的悬空指针问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.1/#id-1.11.6.28.5", "source_hash": "6a0f187e1ee12aafb9542424d59ca8f3abd59a332159025e992ee824c10b28e6", "section_path": ["变更"], "commit_groups": [["308985b0b", "32841fa32"]], "identity_text": "Fix dangling-pointer problem in logical WAL decoding (Stas Kelvich)", "commit_aliases": ["308985b0b", "32841fa32"], "source_commits": ["32841fa32"], "source_entry_id": "9.6.1/changes/015", "db_id": "d773713b8973e28cbff69d2411f617f2", "patch_ids": ["03b8b132f63fa097f8866093ec86daec"], "statement_hash": "8f99283977240483bd34c4b532bc8b56b64c78ef3ef2f9dac36f726156a52e07", "relations": [], "version": "9.6.1", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.6.1-340ef99e357b0024", "cves": [], "html": "<p>在 Linux 上尝试使用大页时，把共享内存分配请求舍入到实际大页大小的整数倍（Tom Lane）</p>\n<p>这避免了在默认大页大小非典型的系统上 <code>munmap()</code> 期间可能的失败。除崩溃恢复情况外，除了日志消息之外没有不良影响。</p>", "text": "在 Linux 上尝试使用大页时，把共享内存分配请求舍入到实际大页大小的整数倍（Tom Lane） 这避免了在默认大页大小非典型的系统上 munmap() 期间可能的失败。除崩溃恢复情况外，除了日志消息之外没有不良影响。", "title": "在 Linux 上尝试使用大页时，把共享内存分配请求舍入到实际大页大小的整数倍", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.1/#id-1.11.6.28.5", "source_hash": "9781c97e82f584b22cf4cca4126eec25f058395b784f88110c0bf1d279e2ea0d", "section_path": ["变更"], "commit_groups": [["2dd9e315d", "43d17489d", "6d3cbbf59", "cb775768e"]], "identity_text": "Round shared-memory allocation request to a multiple of the actual huge page size when attempting to use huge pages on Linux (Tom Lane) This avoids possible failures during munmap() on systems with atypical default huge page sizes. Except in crash-recovery cases, there were no ill effects other than a log message.", "commit_aliases": ["2dd9e315d", "43d17489d", "6d3cbbf59", "cb775768e"], "source_commits": ["2dd9e315d"], "source_entry_id": "9.6.1/changes/016", "db_id": "a066e114fd293025640585d59d825a63", "patch_ids": ["a0a20e03ac02d752f088069d16cfe34b"], "statement_hash": "7122a074c72b2f59b6f7bb786570bb6d918344510cdd05f57c9b0a3bc5dddc0b", "relations": [{"rule": 2, "type": "equivalent", "target": "152b0f62f3ead8fce5a3b6113a2d9cf4", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7122a074c72b2f59b6f7bb786570bb6d918344510cdd05f57c9b0a3bc5dddc0b"}}, {"rule": 2, "type": "equivalent", "target": "a670574ba6a5c60b94b85ba20dc0c50a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7122a074c72b2f59b6f7bb786570bb6d918344510cdd05f57c9b0a3bc5dddc0b"}}], "version": "9.6.1", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "a670574ba6a5c60b94b85ba20dc0c50a", "kind": "equivalent", "version": "9.5.5", "label": "9.5.5", "title": "在 Linux 上尝试使用大页时，把共享内存分配请求舍入到实际大页大小的整数倍", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7122a074c72b2f59b6f7bb786570bb6d918344510cdd05f57c9b0a3bc5dddc0b"}, "url": "/docs/compare/?release=9.5.5#9.5.5-340ef99e357b0024", "source_url": "/docs/release/9.5.5/#id-1.11.6.25.5"}, {"db_id": "152b0f62f3ead8fce5a3b6113a2d9cf4", "kind": "equivalent", "version": "9.4.10", "label": "9.4.10", "title": "在 Linux 上尝试使用大页时，把共享内存分配请求舍入到实际大页大小的整数倍", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7122a074c72b2f59b6f7bb786570bb6d918344510cdd05f57c9b0a3bc5dddc0b"}, "url": "/docs/compare/?release=9.4.10#9.4.10-340ef99e357b0024", "source_url": "/docs/release/9.4.10/#id-1.11.6.21.5"}]}, {"id": "9.6.1-8003d20ba0ae4da2", "cves": [], "html": "<p>不要在 <span>libpq</span> 中跨多个连接共享 SSL 上下文（Heikki Linnakangas）</p>\n<p>这导致了各种边界情况 bug，特别是当尝试对不同连接使用不同 SSL 参数时。</p>", "text": "不要在 libpq 中跨多个连接共享 SSL 上下文（Heikki Linnakangas） 这导致了各种边界情况 bug，特别是当尝试对不同连接使用不同 SSL 参数时。", "title": "不要在 libpq 中跨多个连接共享 SSL 上下文", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.1/#id-1.11.6.28.5", "source_hash": "9a783fabe16a049fa9ace146697dd7e9af28990fb9fd36178132f7bd1bdffdd6", "section_path": ["变更"], "commit_groups": [["275bf9860", "418cd758a", "4d3ecbfee", "5d5dc6f68", "b5afc6f67", "e84e4761f", "f0ca54037"], ["31895abd8", "341acf235", "8bb14cdd3", "cb38c056f", "e76d06d7f", "e7bb327e3", "fde92dc22"]], "identity_text": "Don't try to share SSL contexts across multiple connections in libpq (Heikki Linnakangas) This led to assorted corner-case bugs, particularly when trying to use different SSL parameters for different connections.", "commit_aliases": ["275bf9860", "31895abd8", "341acf235", "418cd758a", "4d3ecbfee", "5d5dc6f68", "8bb14cdd3", "b5afc6f67", "cb38c056f", "e76d06d7f", "e7bb327e3", "e84e4761f", "f0ca54037", "fde92dc22"], "source_commits": ["341acf235", "4d3ecbfee"], "source_entry_id": "9.6.1/changes/017", "db_id": "e4e858812dc39cda82cd0c879258e22e", "patch_ids": ["6d07f687a957bae95986b84853de4d75", "c0f9044dfee54804bcebcc33e87743a9"], "statement_hash": "6bdce0efd0e728656918668f39af1d03df422501f0a4f0d9ef15d30efce81679", "relations": [{"rule": 2, "type": "equivalent", "target": "5797a86f9ccff5c9d9bc62cededb71ea", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6bdce0efd0e728656918668f39af1d03df422501f0a4f0d9ef15d30efce81679"}}, {"rule": 2, "type": "equivalent", "target": "6cf72552733f502b0431bb9d9b3679f7", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6bdce0efd0e728656918668f39af1d03df422501f0a4f0d9ef15d30efce81679"}}, {"rule": 2, "type": "equivalent", "target": "78f23bf21615092d97ff903e3cbe4886", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6bdce0efd0e728656918668f39af1d03df422501f0a4f0d9ef15d30efce81679"}}, {"rule": 2, "type": "equivalent", "target": "8e470a25f92f8433de8ca041850612c3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6bdce0efd0e728656918668f39af1d03df422501f0a4f0d9ef15d30efce81679"}}, {"rule": 2, "type": "equivalent", "target": "dd8ac44910aec9313eac765230d29672", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6bdce0efd0e728656918668f39af1d03df422501f0a4f0d9ef15d30efce81679"}}], "version": "9.6.1", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "78f23bf21615092d97ff903e3cbe4886", "kind": "equivalent", "version": "9.5.5", "label": "9.5.5", "title": "不要在 libpq 中跨多个连接共享 SSL 上下文", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6bdce0efd0e728656918668f39af1d03df422501f0a4f0d9ef15d30efce81679"}, "url": "/docs/compare/?release=9.5.5#9.5.5-8003d20ba0ae4da2", "source_url": "/docs/release/9.5.5/#id-1.11.6.25.5"}, {"db_id": "6cf72552733f502b0431bb9d9b3679f7", "kind": "equivalent", "version": "9.4.10", "label": "9.4.10", "title": "不要在 libpq 中跨多个连接共享 SSL 上下文", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6bdce0efd0e728656918668f39af1d03df422501f0a4f0d9ef15d30efce81679"}, "url": "/docs/compare/?release=9.4.10#9.4.10-8003d20ba0ae4da2", "source_url": "/docs/release/9.4.10/#id-1.11.6.21.5"}, {"db_id": "8e470a25f92f8433de8ca041850612c3", "kind": "equivalent", "version": "9.3.15", "label": "9.3.15", "title": "不要在 libpq 中跨多个连接共享 SSL 上下文", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6bdce0efd0e728656918668f39af1d03df422501f0a4f0d9ef15d30efce81679"}, "url": "/docs/compare/?release=9.3.15#9.3.15-8003d20ba0ae4da2", "source_url": "/docs/release/9.3.15/#id-1.11.6.15.5"}, {"db_id": "dd8ac44910aec9313eac765230d29672", "kind": "equivalent", "version": "9.2.19", "label": "9.2.19", "title": "不要在 libpq 中跨多个连接共享 SSL 上下文", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6bdce0efd0e728656918668f39af1d03df422501f0a4f0d9ef15d30efce81679"}, "url": "/docs/compare/?release=9.2.19#9.2.19-8003d20ba0ae4da2", "source_url": "/docs/release/9.2.19/#id-1.11.6.10.5"}, {"db_id": "5797a86f9ccff5c9d9bc62cededb71ea", "kind": "equivalent", "version": "9.1.24", "label": "9.1.24", "title": "不要在 libpq 中跨多个连接共享 SSL 上下文", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6bdce0efd0e728656918668f39af1d03df422501f0a4f0d9ef15d30efce81679"}, "url": "/docs/compare/?release=9.1.24#9.1.24-8003d20ba0ae4da2", "source_url": "/docs/release/9.1.24/#id-1.11.6.5.6"}]}, {"id": "9.6.1-dc53364de494302c", "cves": [], "html": "<p>避免 <span>libpq</span> 中的边界情况内存泄漏（Tom Lane）</p>\n<p>报告的问题涉及 <code>PQreset()</code> 期间泄漏错误报告，但可能有相关情况。</p>", "text": "避免 libpq 中的边界情况内存泄漏（Tom Lane） 报告的问题涉及 PQreset() 期间泄漏错误报告，但可能有相关情况。", "title": "避免 libpq 中的边界情况内存泄漏", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.1/#id-1.11.6.28.5", "source_hash": "d844e510e0b80e52da89c9784efcbf19a5864d22c2db18a5d97a1f10a3749c07", "section_path": ["变更"], "commit_groups": [["455eaf984", "4f87f7640", "7397f62e7", "886f6c5cc", "bb211b66f", "eb6bc03bf", "fb6825fe5"]], "identity_text": "Avoid corner-case memory leak in libpq (Tom Lane) The reported problem involved leaking an error report during PQreset(), but there might be related cases.", "commit_aliases": ["455eaf984", "4f87f7640", "7397f62e7", "886f6c5cc", "bb211b66f", "eb6bc03bf", "fb6825fe5"], "source_commits": ["bb211b66f"], "source_entry_id": "9.6.1/changes/018", "db_id": "f7275762184112b2fde26f52da082d79", "patch_ids": ["f65dddf3be22caa4e526630dfdc43759"], "statement_hash": "313d3777d34cff9e4b941bae31f6872e8699bcb56272ba9d62dcd279ab03c151", "relations": [{"rule": 2, "type": "equivalent", "target": "04b184ad52defb377059eb805941b633", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "313d3777d34cff9e4b941bae31f6872e8699bcb56272ba9d62dcd279ab03c151"}}, {"rule": 2, "type": "equivalent", "target": "3567237d2f5f97af726737510ecec076", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "313d3777d34cff9e4b941bae31f6872e8699bcb56272ba9d62dcd279ab03c151"}}, {"rule": 2, "type": "equivalent", "target": "49a3081384e05d757cf9c1c27d9f7dce", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "313d3777d34cff9e4b941bae31f6872e8699bcb56272ba9d62dcd279ab03c151"}}, {"rule": 2, "type": "equivalent", "target": "8c19c02343fed4f8c84e6f95cd8dec60", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "313d3777d34cff9e4b941bae31f6872e8699bcb56272ba9d62dcd279ab03c151"}}, {"rule": 2, "type": "equivalent", "target": "f9d1df0ce59f793c20266442d620f9e9", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "313d3777d34cff9e4b941bae31f6872e8699bcb56272ba9d62dcd279ab03c151"}}], "version": "9.6.1", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "04b184ad52defb377059eb805941b633", "kind": "equivalent", "version": "9.5.5", "label": "9.5.5", "title": "避免 libpq 中的边界情况内存泄漏", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "313d3777d34cff9e4b941bae31f6872e8699bcb56272ba9d62dcd279ab03c151"}, "url": "/docs/compare/?release=9.5.5#9.5.5-dc53364de494302c", "source_url": "/docs/release/9.5.5/#id-1.11.6.25.5"}, {"db_id": "3567237d2f5f97af726737510ecec076", "kind": "equivalent", "version": "9.4.10", "label": "9.4.10", "title": "避免 libpq 中的边界情况内存泄漏", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "313d3777d34cff9e4b941bae31f6872e8699bcb56272ba9d62dcd279ab03c151"}, "url": "/docs/compare/?release=9.4.10#9.4.10-dc53364de494302c", "source_url": "/docs/release/9.4.10/#id-1.11.6.21.5"}, {"db_id": "f9d1df0ce59f793c20266442d620f9e9", "kind": "equivalent", "version": "9.3.15", "label": "9.3.15", "title": "避免 libpq 中的边界情况内存泄漏", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "313d3777d34cff9e4b941bae31f6872e8699bcb56272ba9d62dcd279ab03c151"}, "url": "/docs/compare/?release=9.3.15#9.3.15-dc53364de494302c", "source_url": "/docs/release/9.3.15/#id-1.11.6.15.5"}, {"db_id": "49a3081384e05d757cf9c1c27d9f7dce", "kind": "equivalent", "version": "9.2.19", "label": "9.2.19", "title": "避免 libpq 中的边界情况内存泄漏", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "313d3777d34cff9e4b941bae31f6872e8699bcb56272ba9d62dcd279ab03c151"}, "url": "/docs/compare/?release=9.2.19#9.2.19-dc53364de494302c", "source_url": "/docs/release/9.2.19/#id-1.11.6.10.5"}, {"db_id": "8c19c02343fed4f8c84e6f95cd8dec60", "kind": "equivalent", "version": "9.1.24", "label": "9.1.24", "title": "避免 libpq 中的边界情况内存泄漏", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "313d3777d34cff9e4b941bae31f6872e8699bcb56272ba9d62dcd279ab03c151"}, "url": "/docs/compare/?release=9.1.24#9.1.24-dc53364de494302c", "source_url": "/docs/release/9.1.24/#id-1.11.6.5.6"}]}, {"id": "9.6.1-3be6d9c9f46c6dab", "cves": [], "html": "<p>在 <span>pg_upgrade</span> 中，按名称顺序检查库可加载性（Tom Lane）</p>\n<p>这是处理语言转换模块对其基础语言和数据类型模块的跨扩展依赖的权宜之计。</p>", "text": "在 pg_upgrade 中，按名称顺序检查库可加载性（Tom Lane） 这是处理语言转换模块对其基础语言和数据类型模块的跨扩展依赖的权宜之计。", "title": "在 pg_upgrade 中，按名称顺序检查库可加载性", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.1/#id-1.11.6.28.5", "source_hash": "6b8b51700dfb19137611c4fc0074f4c5bd3db5da68ef6fb53f793897299ebd6c", "section_path": ["变更"], "commit_groups": [["0f259bd17", "83c249200", "bac56dbe0"]], "identity_text": "In pg_upgrade, check library loadability in name order (Tom Lane) This is a workaround to deal with cross-extension dependencies from language transform modules to their base language and data type modules.", "commit_aliases": ["0f259bd17", "83c249200", "bac56dbe0"], "source_commits": ["bac56dbe0"], "source_entry_id": "9.6.1/changes/019", "db_id": "12de532a4d03ab8b387c350843f97d71", "patch_ids": ["143a51a4498ceaf187856219e2513b15"], "statement_hash": "f47bceb14c4d2e496af2425b01d3ae642b028c3177f543cea70359c0cc7cd392", "relations": [{"rule": 2, "type": "equivalent", "target": "57611a54226b885c63c5665a32fc0143", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f47bceb14c4d2e496af2425b01d3ae642b028c3177f543cea70359c0cc7cd392"}}], "version": "9.6.1", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "57611a54226b885c63c5665a32fc0143", "kind": "equivalent", "version": "9.5.5", "label": "9.5.5", "title": "在 pg_upgrade 中，按名称顺序检查库可加载性", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f47bceb14c4d2e496af2425b01d3ae642b028c3177f543cea70359c0cc7cd392"}, "url": "/docs/compare/?release=9.5.5#9.5.5-3be6d9c9f46c6dab", "source_url": "/docs/release/9.5.5/#id-1.11.6.25.5"}]}, {"id": "9.6.1-83112276de477e50", "cves": [], "html": "<p>修复 <span>pg_upgrade</span> 对包含索引访问方法的扩展正确工作（Tom Lane）</p>\n<p>为此，服务器被扩展以支持 <code>ALTER EXTENSION ADD/DROP ACCESS METHOD</code>。这一功能本应包含在支持动态创建访问方法的原始补丁中，但被遗漏了。</p>", "text": "修复 pg_upgrade 对包含索引访问方法的扩展正确工作（Tom Lane） 为此，服务器被扩展以支持 ALTER EXTENSION ADD/DROP ACCESS METHOD。这一功能本应包含在支持动态创建访问方法的原始补丁中，但被遗漏了。", "title": "修复 pg_upgrade 对包含索引访问方法的扩展正确工作", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.1/#id-1.11.6.28.5", "source_hash": "72252c4c7b4b39246dcfc84821516717a459b5d691f808cbe453b39881340ce4", "section_path": ["变更"], "commit_groups": [["e8bdee277", "f40334b85"]], "identity_text": "Fix pg_upgrade to work correctly for extensions containing index access methods (Tom Lane) To allow this, the server has been extended to support ALTER EXTENSION ADD/DROP ACCESS METHOD. That functionality should have been included in the original patch to support dynamic creation of access methods, but it was overlooked.", "commit_aliases": ["e8bdee277", "f40334b85"], "source_commits": ["f40334b85"], "source_entry_id": "9.6.1/changes/020", "db_id": "518f006ecede4cc40514e319a50a7602", "patch_ids": ["66981347b5741768068a955da1862687"], "statement_hash": "c65dca63da7da38b8127977d82fc9825052dc39f8d1066a014947e1d9adfa035", "relations": [], "version": "9.6.1", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.6.1-44224be5b7385e30", "cves": [], "html": "<p>改进 <span>pg_upgrade</span> 文件复制/链接/重写步骤中的错误报告（Tom Lane、Álvaro Herrera）</p>", "text": "改进 pg_upgrade 文件复制/链接/重写步骤中的错误报告（Tom Lane、Álvaro Herrera）", "title": "改进 pg_upgrade 文件复制/链接/重写步骤中的错误报告", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.1/#id-1.11.6.28.5", "source_hash": "b1dbfb0dbf8cb68e0a8ea75abac24f532053c64f5bebf95bfae9969de5b6ce49", "section_path": ["变更"], "commit_groups": [["53fbeed40", "f002ed2b8"]], "identity_text": "Improve error reporting in pg_upgrade's file copying/linking/rewriting steps (Tom Lane, Álvaro Herrera)", "commit_aliases": ["53fbeed40", "f002ed2b8"], "source_commits": ["53fbeed40"], "source_entry_id": "9.6.1/changes/021", "db_id": "fee3522ca1f71cd479dc03a5aaaf10c7", "patch_ids": ["0e093787fc6da0e946d7e7e75633446f"], "statement_hash": "88710a199795da7a78e56ab74a820a1d22ee8d5975e5d9a4ee7e16684f3d14f0", "relations": [], "version": "9.6.1", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.6.1-f52f0815769c7545", "cves": [], "html": "<p>修复 <span>pg_dump</span> 对 7.4 之前服务器的工作（Amit Langote、Tom Lane）</p>", "text": "修复 pg_dump 对 7.4 之前服务器的工作（Amit Langote、Tom Lane）", "title": "修复 pg_dump 对 7.4 之前服务器的工作", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.1/#id-1.11.6.28.5", "source_hash": "b93fc621b006268495152aaa9475c4e0337c5154c3bb450b8edf214b5e08f18c", "section_path": ["变更"], "commit_groups": [["1749332ec", "4806f26f9"]], "identity_text": "Fix pg_dump to work against pre-7.4 servers (Amit Langote, Tom Lane)", "commit_aliases": ["1749332ec", "4806f26f9"], "source_commits": ["1749332ec"], "source_entry_id": "9.6.1/changes/022", "db_id": "31be2dc7eda2bbf9167d30a3204efd57", "patch_ids": ["52a026c5212c6166fd56570cbb9ab09d"], "statement_hash": "6b2038238e0e18770e36095e1d60ebff4cd1390cd171a2480c0e4ff799c31d04", "relations": [], "version": "9.6.1", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.6.1-da39e560b59e3860", "cves": [], "html": "<p>禁止对 <span>pg_rewind</span> 同时指定 <code>--source-server</code> 和 <code>--source-target</code> 选项（Michael Banck）</p>", "text": "禁止对 pg_rewind 同时指定 --source-server 和 --source-target 选项（Michael Banck）", "title": "禁止对 pg_rewind 同时指定 --source-server 和 --source-target 选项", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.1/#id-1.11.6.28.5", "source_hash": "8da7250010fe643598baa146fff80d574a16231c06dd68c4bffe066fa130ac00", "section_path": ["变更"], "commit_groups": [["010a1b561", "0d4d7d618", "2933ed036"]], "identity_text": "Disallow specifying both --source-server and --source-target options to pg_rewind (Michael Banck)", "commit_aliases": ["010a1b561", "0d4d7d618", "2933ed036"], "source_commits": ["2933ed036"], "source_entry_id": "9.6.1/changes/023", "db_id": "720aaed0b0fe82f4a1fe19af56f7f35b", "patch_ids": ["8c9a121091a8dd75709d26ae4de7eb74"], "statement_hash": "3678e4d3b7cfd2a84248583069e282d985c52f2ac862c42359d8931c0d2ad75a", "relations": [{"rule": 2, "type": "equivalent", "target": "cb5ee804d395c324d54e6742ab5e786d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3678e4d3b7cfd2a84248583069e282d985c52f2ac862c42359d8931c0d2ad75a"}}], "version": "9.6.1", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "cb5ee804d395c324d54e6742ab5e786d", "kind": "equivalent", "version": "9.5.5", "label": "9.5.5", "title": "禁止对 pg_rewind 同时指定 --source-server 和 --source-target 选项", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3678e4d3b7cfd2a84248583069e282d985c52f2ac862c42359d8931c0d2ad75a"}, "url": "/docs/compare/?release=9.5.5#9.5.5-da39e560b59e3860", "source_url": "/docs/release/9.5.5/#id-1.11.6.25.5"}]}, {"id": "9.6.1-a1f7732bd4dea8cc", "cves": [], "html": "<p>让 <span>pg_rewind</span> 在源服务器上的会话中关闭 <code>synchronous_commit</code>（Michael Banck、Michael Paquier）</p>\n<p>这允许 <span>pg_rewind</span> 即使在源服务器使用的同步复制因某种原因不工作时也能运行。</p>", "text": "让 pg_rewind 在源服务器上的会话中关闭 synchronous_commit（Michael Banck、Michael Paquier） 这允许 pg_rewind 即使在源服务器使用的同步复制因某种原因不工作时也能运行。", "title": "让 pg_rewind 在源服务器上的会话中关闭 synchronous_commit", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.1/#id-1.11.6.28.5", "source_hash": "8ab5a72c3c859063f7e84c09172eea9433b25b883cc61115063211e789eb822c", "section_path": ["变更"], "commit_groups": [["69da71254", "aab809664", "d7eb76b90"]], "identity_text": "Make pg_rewind turn off synchronous_commit in its session on the source server (Michael Banck, Michael Paquier) This allows pg_rewind to work even when the source server is using synchronous replication that is not working for some reason.", "commit_aliases": ["69da71254", "aab809664", "d7eb76b90"], "source_commits": ["aab809664"], "source_entry_id": "9.6.1/changes/024", "db_id": "3d9d07da8611979828974a00f7d5e93c", "patch_ids": ["bb6525a8530a405fc406be369c4b5701"], "statement_hash": "176ffbc55a3881d1812fea12b4236f6ad61a4ed1550d0c96b66db74baf855119", "relations": [{"rule": 2, "type": "equivalent", "target": "7cdbd79a62155689cca1ba178c38ea83", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "176ffbc55a3881d1812fea12b4236f6ad61a4ed1550d0c96b66db74baf855119"}}], "version": "9.6.1", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "7cdbd79a62155689cca1ba178c38ea83", "kind": "equivalent", "version": "9.5.5", "label": "9.5.5", "title": "让 pg_rewind 在源服务器上的会话中关闭 synchronous_commit", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "176ffbc55a3881d1812fea12b4236f6ad61a4ed1550d0c96b66db74baf855119"}, "url": "/docs/compare/?release=9.5.5#9.5.5-a1f7732bd4dea8cc", "source_url": "/docs/release/9.5.5/#id-1.11.6.25.5"}]}, {"id": "9.6.1-3588338c44b471b3", "cves": [], "html": "<p>在 <span>pg_xlogdump</span> 中，使用 <code>--follow</code> 选项时重试打开新的 WAL 段（Magnus Hagander）</p>\n<p>这考虑到服务器创建下一段的可能延迟。</p>", "text": "在 pg_xlogdump 中，使用 --follow 选项时重试打开新的 WAL 段（Magnus Hagander） 这考虑到服务器创建下一段的可能延迟。", "title": "在 pg_xlogdump 中，使用 --follow 选项时重试打开新的 WAL 段", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.1/#id-1.11.6.28.5", "source_hash": "b16041b4f315e4e2830e4d9d4ce39d834cec962b9f2d1c844c985034c5fa1c83", "section_path": ["变更"], "commit_groups": [["3d39244e6", "41d58e97a", "4bff35cca", "d8b4c3490", "da3f71a08"]], "identity_text": "In pg_xlogdump, retry opening new WAL segments when using --follow option (Magnus Hagander) This allows for a possible delay in the server's creation of the next segment.", "commit_aliases": ["3d39244e6", "41d58e97a", "4bff35cca", "d8b4c3490", "da3f71a08"], "source_commits": ["41d58e97a"], "source_entry_id": "9.6.1/changes/025", "db_id": "76feb8e100587752206df4baba988197", "patch_ids": ["418ead167b9504a96b1556a13a9d1b27"], "statement_hash": "cc129e42363d4b76d77a04575b50b11e577ea99eb260c4e34c9e6a17e9b0fb1a", "relations": [{"rule": 2, "type": "equivalent", "target": "2113e3ca11fc4e23dbedd995bafef047", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cc129e42363d4b76d77a04575b50b11e577ea99eb260c4e34c9e6a17e9b0fb1a"}}, {"rule": 2, "type": "equivalent", "target": "95a5bd12885de7f441144ce2c9527398", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cc129e42363d4b76d77a04575b50b11e577ea99eb260c4e34c9e6a17e9b0fb1a"}}, {"rule": 2, "type": "equivalent", "target": "f2af211971ec3653a813cd132d95e373", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cc129e42363d4b76d77a04575b50b11e577ea99eb260c4e34c9e6a17e9b0fb1a"}}], "version": "9.6.1", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "2113e3ca11fc4e23dbedd995bafef047", "kind": "equivalent", "version": "9.5.5", "label": "9.5.5", "title": "在 pg_xlogdump 中，使用 --follow 选项时重试打开新的 WAL 段", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cc129e42363d4b76d77a04575b50b11e577ea99eb260c4e34c9e6a17e9b0fb1a"}, "url": "/docs/compare/?release=9.5.5#9.5.5-3588338c44b471b3", "source_url": "/docs/release/9.5.5/#id-1.11.6.25.5"}, {"db_id": "95a5bd12885de7f441144ce2c9527398", "kind": "equivalent", "version": "9.4.10", "label": "9.4.10", "title": "在 pg_xlogdump 中，使用 --follow 选项时重试打开新的 WAL 段", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cc129e42363d4b76d77a04575b50b11e577ea99eb260c4e34c9e6a17e9b0fb1a"}, "url": "/docs/compare/?release=9.4.10#9.4.10-3588338c44b471b3", "source_url": "/docs/release/9.4.10/#id-1.11.6.21.5"}, {"db_id": "f2af211971ec3653a813cd132d95e373", "kind": "equivalent", "version": "9.3.15", "label": "9.3.15", "title": "在 pg_xlogdump 中，使用 --follow 选项时重试打开新的 WAL 段", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cc129e42363d4b76d77a04575b50b11e577ea99eb260c4e34c9e6a17e9b0fb1a"}, "url": "/docs/compare/?release=9.3.15#9.3.15-3588338c44b471b3", "source_url": "/docs/release/9.3.15/#id-1.11.6.15.5"}]}, {"id": "9.6.1-a2c5411f5d0ee13f", "cves": [], "html": "<p>修复 <code>contrib/pg_visibility</code> 为作为已回滚更新主题的损坏元组报告正确的 TID（Tom Lane）</p>", "text": "修复 contrib/pg_visibility 为作为已回滚更新主题的损坏元组报告正确的 TID（Tom Lane）", "title": "修复 contrib/pg_visibility 为作为已回滚更新主题的损坏元组报告正确的 TID", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.1/#id-1.11.6.28.5", "source_hash": "df919fd6c492843c8fcf6b6b56d0ae1fcd4b12eb53b4efac6367c53553696a55", "section_path": ["变更"], "commit_groups": [["9a109452d", "f4e787c82"]], "identity_text": "Fix contrib/pg_visibility to report the correct TID for a corrupt tuple that has been the subject of a rolled-back update (Tom Lane)", "commit_aliases": ["9a109452d", "f4e787c82"], "source_commits": ["f4e787c82"], "source_entry_id": "9.6.1/changes/026", "db_id": "0c2649d3d76573cd13e1ef3577805798", "patch_ids": ["0a67daf6c7dbd88647b1fcbd809db557"], "statement_hash": "dac0f72a0e66b3b4a8a732a79997163afe9f5027e5cf11dce37c04e8c7d1934b", "relations": [], "version": "9.6.1", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.6.1-d439e304dabe7fb3", "cves": [], "html": "<p>修复 makefile 依赖，使单独并行构建 <span>PL/Python</span> 能可靠成功（Pavel Raiskup）</p>", "text": "修复 makefile 依赖，使单独并行构建 PL/Python 能可靠成功（Pavel Raiskup）", "title": "修复 makefile 依赖，使单独并行构建 PL/Python 能可靠成功", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.1/#id-1.11.6.28.5", "source_hash": "2343dbb157474ba33513348513dcb3fb75bb3977c22081a5e458db5d555fbdac", "section_path": ["变更"], "commit_groups": [["68fb75e10", "7107d58ec"]], "identity_text": "Fix makefile dependencies so that parallel make of PL/Python by itself will succeed reliably (Pavel Raiskup)", "commit_aliases": ["68fb75e10", "7107d58ec"], "source_commits": ["68fb75e10"], "source_entry_id": "9.6.1/changes/027", "db_id": "556b8d4b860a9c00df17e533a146a4f8", "patch_ids": ["e581315ac4f077aa3ca8b40204845cba"], "statement_hash": "81bd9b169a4990c987c4808435e1b86421c68f85203c6a47e072e2c0caa34d07", "relations": [], "version": "9.6.1", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.6.1-6e227d3e50c92407", "cves": [], "html": "<p>更新时区数据文件到 <span>tzdata</span> 版本 2016h，涉及巴勒斯坦和土耳其的夏令时法规变更，加上土耳其和俄罗斯一些地区的历史修正。南极洲、前苏联和斯里兰卡的一些时区改用数字缩写。</p>\n<p>IANA 时区数据库以前为所有时区提供文本缩写，有时编造在当地居民中几乎或完全没有使用的缩写。他们正在逆转这一政策，改为在没有证据表明实际使用英文缩写的区域使用数字 UTC 偏移。至少目前，<span>PostgreSQL</span> 将继续接受这种被移除的缩写用于时间戳输入。但它们不会显示在 <code>pg_timezone_names</code> 视图中，也不用于输出。</p>\n<p>在此更新中，<code>AMT</code> 不再显示为表示亚美尼亚时间。因此我们把 <code>Default</code> 缩写集改为把它解释为亚马逊时间，即 UTC-4 而不是 UTC+4。</p>", "text": "更新时区数据文件到 tzdata 版本 2016h，涉及巴勒斯坦和土耳其的夏令时法规变更，加上土耳其和俄罗斯一些地区的历史修正。南极洲、前苏联和斯里兰卡的一些时区改用数字缩写。 IANA 时区数据库以前为所有时区提供文本缩写，有时编造在当地居民中几乎或完全没有使用的缩写。他们正在逆转这一政策，改为在没有证据表明实际使用英文缩写的区域使用数字 UTC 偏移。至少目前，PostgreSQL 将继续接受这种被移除的缩写用于时间戳输入。但它们不会显示在 pg_timezone_names 视图中，也不用于输出。 在此更新中，AMT 不再显示为表示亚美尼亚时间。因此我们把 Default 缩写集改为把它解释为亚马逊时间，即 UTC-4 而不是 UTC+4。", "title": "更新时区数据文件到 tzdata 版本 2016h，涉及巴勒斯坦和土耳其的夏令时法规变更，加上土耳其和俄罗斯一些地区的历史修正。南极洲、前苏联和斯里兰卡的一些时区改用数字缩写。", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.1/#id-1.11.6.28.5", "source_hash": "f56c53a55af7cc864afc603e943b32517cfcd9ffeca49ebfcf58ca78dcce6fba", "section_path": ["变更"], "commit_groups": [["0c2f4c54c", "22cf97635", "5508d0c0b", "7abda82ef", "9727dac58", "a03339aef", "ecbac3e6e"], ["1d388ba2c", "3c5fae786", "80ba149b0", "8cddedc17", "9345bf08c", "d8fc45bd0", "ff68f434f"], ["2877b102e", "381c4b03b", "66adeefda", "7fec5e101", "ad6f67179", "bc59c1236", "f3094920a"], ["37ecf07d3", "5e21b6811", "845a8ea3e", "92da75278", "a8518738a", "aac898ac5", "b2aee4cb6"]], "identity_text": "Update time zone data files to tzdata release 2016h for DST law changes in Palestine and Turkey, plus historical corrections for Turkey and some regions of Russia. Switch to numeric abbreviations for some time zones in Antarctica, the former Soviet Union, and Sri Lanka. The IANA time zone database previously provided textual abbreviations for all time zones, sometimes making up abbreviations that have little or no currency among the local population. They are in process of reversing that policy in favor of using numeric UTC offsets in zones where there is no evidence of real-world use of an English abbreviation. At least for the time being, PostgreSQL will continue to accept such removed abbreviations for timestamp input. But they will not be shown in the pg_timezone_names view nor used for output. In this update, AMT is no longer shown as being in use to mean Armenia Time. Therefore, we have changed the Default abbreviation set to interpret it as Amazon Time, thus UTC-4 not UTC+4.", "commit_aliases": ["0c2f4c54c", "1d388ba2c", "22cf97635", "2877b102e", "37ecf07d3", "381c4b03b", "3c5fae786", "5508d0c0b", "5e21b6811", "66adeefda", "7abda82ef", "7fec5e101", "80ba149b0", "845a8ea3e", "8cddedc17", "92da75278", "9345bf08c", "9727dac58", "a03339aef", "a8518738a", "aac898ac5", "ad6f67179", "b2aee4cb6", "bc59c1236", "d8fc45bd0", "ecbac3e6e", "f3094920a", "ff68f434f"], "source_commits": ["0c2f4c54c", "7fec5e101", "80ba149b0", "845a8ea3e"], "source_entry_id": "9.6.1/changes/028", "db_id": "48ce47c9c15ba40810e3bf5ec621c6e2", "patch_ids": ["62f78316a6a8ac4b51035e905dec4981", "ab082a2b2f54ac1c80cfcbf1b568c16d", "bb64e758074231f2c483fe7395b37dcc", "c7b68179d6d2cd8776c7a0b875e26d3a"], "statement_hash": "0cb45bb3cd4941ccdd512f55ef1911c539dd4baf115c1558d9c9521d14beb8fc", "relations": [{"rule": 2, "type": "equivalent", "target": "0beb84d0b5ea7d442a7e372ee1f44a0f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0cb45bb3cd4941ccdd512f55ef1911c539dd4baf115c1558d9c9521d14beb8fc"}}, {"rule": 2, "type": "equivalent", "target": "22efdf8d456fcfa0566c2bec71378820", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0cb45bb3cd4941ccdd512f55ef1911c539dd4baf115c1558d9c9521d14beb8fc"}}, {"rule": 2, "type": "equivalent", "target": "649e25bc93cef830346c3561540e67e2", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0cb45bb3cd4941ccdd512f55ef1911c539dd4baf115c1558d9c9521d14beb8fc"}}, {"rule": 2, "type": "equivalent", "target": "7dbf3562cb1733646d00e2c34c95c08d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0cb45bb3cd4941ccdd512f55ef1911c539dd4baf115c1558d9c9521d14beb8fc"}}, {"rule": 2, "type": "equivalent", "target": "acf105f7b3890b7ae360a1c91e091c35", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0cb45bb3cd4941ccdd512f55ef1911c539dd4baf115c1558d9c9521d14beb8fc"}}], "version": "9.6.1", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "649e25bc93cef830346c3561540e67e2", "kind": "equivalent", "version": "9.5.5", "label": "9.5.5", "title": "更新时区数据文件到 tzdata 版本 2016h，涉及巴勒斯坦和土耳其的夏令时法规变更，加上土耳其和俄罗斯一些地区的历史修正。南极洲、前苏联和斯里兰卡的一些时区改用数字缩写。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0cb45bb3cd4941ccdd512f55ef1911c539dd4baf115c1558d9c9521d14beb8fc"}, "url": "/docs/compare/?release=9.5.5#9.5.5-6e227d3e50c92407", "source_url": "/docs/release/9.5.5/#id-1.11.6.25.5"}, {"db_id": "22efdf8d456fcfa0566c2bec71378820", "kind": "equivalent", "version": "9.4.10", "label": "9.4.10", "title": "更新时区数据文件到 tzdata 版本 2016h，涉及巴勒斯坦和土耳其的夏令时法规变更，加上土耳其和俄罗斯一些地区的历史修正。南极洲、前苏联和斯里兰卡的一些时区改用数字缩写。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0cb45bb3cd4941ccdd512f55ef1911c539dd4baf115c1558d9c9521d14beb8fc"}, "url": "/docs/compare/?release=9.4.10#9.4.10-6e227d3e50c92407", "source_url": "/docs/release/9.4.10/#id-1.11.6.21.5"}, {"db_id": "7dbf3562cb1733646d00e2c34c95c08d", "kind": "equivalent", "version": "9.3.15", "label": "9.3.15", "title": "更新时区数据文件到 tzdata 版本 2016h，涉及巴勒斯坦和土耳其的夏令时法规变更，加上土耳其和俄罗斯一些地区的历史修正。南极洲、前苏联和斯里兰卡的一些时区改用数字缩写。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0cb45bb3cd4941ccdd512f55ef1911c539dd4baf115c1558d9c9521d14beb8fc"}, "url": "/docs/compare/?release=9.3.15#9.3.15-6e227d3e50c92407", "source_url": "/docs/release/9.3.15/#id-1.11.6.15.5"}, {"db_id": "0beb84d0b5ea7d442a7e372ee1f44a0f", "kind": "equivalent", "version": "9.2.19", "label": "9.2.19", "title": "更新时区数据文件到 tzdata 版本 2016h，涉及巴勒斯坦和土耳其的夏令时法规变更，加上土耳其和俄罗斯一些地区的历史修正。南极洲、前苏联和斯里兰卡的一些时区改用数字缩写。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0cb45bb3cd4941ccdd512f55ef1911c539dd4baf115c1558d9c9521d14beb8fc"}, "url": "/docs/compare/?release=9.2.19#9.2.19-6e227d3e50c92407", "source_url": "/docs/release/9.2.19/#id-1.11.6.10.5"}, {"db_id": "acf105f7b3890b7ae360a1c91e091c35", "kind": "equivalent", "version": "9.1.24", "label": "9.1.24", "title": "更新时区数据文件到 tzdata 版本 2016h，涉及巴勒斯坦和土耳其的夏令时法规变更，加上土耳其和俄罗斯一些地区的历史修正。南极洲、前苏联和斯里兰卡的一些时区改用数字缩写。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0cb45bb3cd4941ccdd512f55ef1911c539dd4baf115c1558d9c9521d14beb8fc"}, "url": "/docs/compare/?release=9.1.24#9.1.24-6e227d3e50c92407", "source_url": "/docs/release/9.1.24/#id-1.11.6.5.6"}]}]}], "stats": [{"key": "all", "label": "全部变更", "count": 28}, {"key": "feature", "label": "新功能", "count": 0}, {"key": "bugfix", "label": "BUG 修复", "count": 17}, {"key": "security", "label": "安全相关", "count": 0}, {"key": "performance", "label": "性能改进", "count": 0}, {"key": "compatibility", "label": "兼容性变化", "count": 0}, {"key": "improvement", "label": "其他改进", "count": 11}], "total": 28, "release_count": 1, "cross_major": false, "cve_count": 0, "cves": [], "cve_available": true, "remaining_cves": [], "security_regressions": [], "warnings": [], "candidate_count": 28, "already_in_source_count": 0, "duplicate_count": 0, "excluded_count": 0, "exclusions": [], "source_as_of": "2026-09-26", "security_as_of": "2026-09-26"}