{"format": 1, "mode": "release", "from_release": null, "to_release": {"date": "2016-10-27", "build": "9.4.10", "major": "9.4", "minor": 10, "manual": "9.4", "status": "stable", "doc_git": "", "version": "9.4.10", "eol_date": "2020-02-13", "date_text": "2016-10-27", "supported": false, "manual_url": "/docs/9.4/release-9-4-10.html", "source_url": "/docs/release/9.4.10/", "entry_count": 34, "placeholder": false, "content_hash": "47c8c35933a051704479433985706b99437e159d2595eb664f214c55467c6d6f", "manual_build": "9.4.26", "source_as_of": "", "changes_count": 34, "doc_loaded_at": "2026-09-26T02:56:45.438944", "migration_html": "<p>对于运行 9.4.X 的用户，不需要转储/恢复。</p>\n<p>不过，如果你的安装受到下面第一条变更日志条目所述 bug 的影响，更新之后你可能需要采取行动修复损坏的空闲空间映射。</p>\n<p>另外，如果你是从 9.4.6 之前的版本升级，参见<a href=\"/docs/9.4/release-9-4-6.html\" title=\"E.21. 版本 9.4.6\">第 E.21 节</a>。</p>", "compatibility_count": 0, "label": "9.4.10", "status_label": "历史版本", "eol": "2020-02-13", "age_days": 3625, "support_days": -2421}, "groups": [{"date": "2016-10-27", "build": "9.4.10", "major": "9.4", "minor": 10, "manual": "9.4", "status": "stable", "doc_git": "", "version": "9.4.10", "eol_date": "2020-02-13", "date_text": "2016-10-27", "supported": false, "manual_url": "/docs/9.4/release-9-4-10.html", "source_url": "/docs/release/9.4.10/", "entry_count": 34, "placeholder": false, "content_hash": "47c8c35933a051704479433985706b99437e159d2595eb664f214c55467c6d6f", "manual_build": "9.4.26", "source_as_of": "", "changes_count": 34, "doc_loaded_at": "2026-09-26T02:56:45.438944", "migration_html": "<p>对于运行 9.4.X 的用户，不需要转储/恢复。</p>\n<p>不过，如果你的安装受到下面第一条变更日志条目所述 bug 的影响，更新之后你可能需要采取行动修复损坏的空闲空间映射。</p>\n<p>另外，如果你是从 9.4.6 之前的版本升级，参见<a href=\"/docs/9.4/release-9-4-6.html\" title=\"E.21. 版本 9.4.6\">第 E.21 节</a>。</p>", "compatibility_count": 0, "label": "9.4.10", "status_label": "历史版本", "eol": "2020-02-13", "age_days": 3625, "support_days": -2421, "entries": [{"id": "9.4.10-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.4.10/#id-1.11.6.21.5", "source_hash": "dedb870c93a58c7b297dfbdceb99a67c9cd045fcacedfb23fc768ef5d758ec6b", "section_path": ["变更"], "commit_groups": [], "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": [], "source_commits": [], "source_entry_id": "9.4.10/changes/001", "db_id": "ec09950c4b42590a3a372f8dbd97440b", "patch_ids": [], "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": "f7aa35ae515033d8874d9c9a6d5aa129", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "27cdeeeff24fa935a7c84bfda055fcf082be79fb96036a1751c3a8e5058cc734"}}], "version": "9.4.10", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "f7aa35ae515033d8874d9c9a6d5aa129", "kind": "equivalent", "version": "9.6.1", "label": "9.6.1", "title": "修复关系空闲空间映射和可见性映射截断的 WAL 记录", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "27cdeeeff24fa935a7c84bfda055fcf082be79fb96036a1751c3a8e5058cc734"}, "url": "/docs/compare/?release=9.6.1#9.6.1-11f8f9985f40fab4", "source_url": "/docs/release/9.6.1/#id-1.11.6.28.5"}, {"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": "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.4.10-8f0dcecdd25ef0d5", "cves": [], "html": "<p>修复在大端机器上 GIN 索引 WAL 记录创建不正确的问题（Tom Lane）</p>\n<p>典型症状是 WAL 重放期间出现<span>“<span>unexpected GIN leaf action</span>”</span>错误。</p>", "text": "修复在大端机器上 GIN 索引 WAL 记录创建不正确的问题（Tom Lane） 典型症状是 WAL 重放期间出现“unexpected GIN leaf action”错误。", "title": "修复在大端机器上 GIN 索引 WAL 记录创建不正确的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.4.10/#id-1.11.6.21.5", "source_hash": "c9cd22af205df5e0d6977236d8f48ecd8c2cc33ca64797ed73aa4288bfa56f56", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix incorrect creation of GIN index WAL records on big-endian machines (Tom Lane) The typical symptom was unexpected GIN leaf action errors during WAL replay.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.10/changes/002", "db_id": "eb4d0c525c0ef44c220a825fb0b508d7", "patch_ids": [], "statement_hash": "2d9e8e4cc29b638a190aaa83b7bb6147c57da6516bbde75b816b992317cb3fb8", "relations": [{"rule": 2, "type": "equivalent", "target": "6cd082caf9be4eb78ad4256a09b6d86e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2d9e8e4cc29b638a190aaa83b7bb6147c57da6516bbde75b816b992317cb3fb8"}}], "version": "9.4.10", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "6cd082caf9be4eb78ad4256a09b6d86e", "kind": "equivalent", "version": "9.5.5", "label": "9.5.5", "title": "修复在大端机器上 GIN 索引 WAL 记录创建不正确的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2d9e8e4cc29b638a190aaa83b7bb6147c57da6516bbde75b816b992317cb3fb8"}, "url": "/docs/compare/?release=9.5.5#9.5.5-8f0dcecdd25ef0d5", "source_url": "/docs/release/9.5.5/#id-1.11.6.25.5"}]}, {"id": "9.4.10-561e014ae849975e", "cves": [], "html": "<p>修复 <code>SELECT FOR UPDATE/SHARE</code>，使其正确锁定已被随后中止的事务更新过的元组（Álvaro Herrera）</p>\n<p>在 9.5 及之后的版本中，<code>SELECT</code> 有时可能完全不返回此类元组。虽然尚未证明在更早的版本中会发生失败，但在并发更新的情况下是有可能的。</p>", "text": "修复 SELECT FOR UPDATE/SHARE，使其正确锁定已被随后中止的事务更新过的元组（Álvaro Herrera） 在 9.5 及之后的版本中，SELECT 有时可能完全不返回此类元组。虽然尚未证明在更早的版本中会发生失败，但在并发更新的情况下是有可能的。", "title": "修复 SELECT FOR UPDATE/SHARE，使其正确锁定已被随后中止的事务更新过的元组", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.4.10/#id-1.11.6.21.5", "source_hash": "f978d3ffd9dea4bf36af2deea9652dcf6fa18a53b3945decf138d0c95f340fd5", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix SELECT FOR UPDATE/SHARE to correctly lock tuples that have been updated by a subsequently-aborted transaction (Álvaro Herrera) In 9.5 and later, the SELECT would sometimes fail to return such tuples at all. A failure has not been proven to occur in earlier releases, but might be possible with concurrent updates.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.10/changes/003", "db_id": "7c87550f2317efb9f2362234580f3f1e", "patch_ids": [], "statement_hash": "0a144b49adada71071be4ca3d4de4af3e8c9eb389e9be0dde2ca6bd2d1f41ddf", "relations": [{"rule": 2, "type": "equivalent", "target": "8b6aba51defd566c424604d159108cd1", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0a144b49adada71071be4ca3d4de4af3e8c9eb389e9be0dde2ca6bd2d1f41ddf"}}, {"rule": 2, "type": "equivalent", "target": "b80c379abd79da59846ca10cf5e8e526", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0a144b49adada71071be4ca3d4de4af3e8c9eb389e9be0dde2ca6bd2d1f41ddf"}}], "version": "9.4.10", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "8b6aba51defd566c424604d159108cd1", "kind": "equivalent", "version": "9.5.5", "label": "9.5.5", "title": "修复 SELECT FOR UPDATE/SHARE，使其正确锁定已被随后中止的事务更新过的元组", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0a144b49adada71071be4ca3d4de4af3e8c9eb389e9be0dde2ca6bd2d1f41ddf"}, "url": "/docs/compare/?release=9.5.5#9.5.5-561e014ae849975e", "source_url": "/docs/release/9.5.5/#id-1.11.6.25.5"}, {"db_id": "b80c379abd79da59846ca10cf5e8e526", "kind": "equivalent", "version": "9.3.15", "label": "9.3.15", "title": "修复 SELECT FOR UPDATE/SHARE，使其正确锁定已被随后中止的事务更新过的元组", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0a144b49adada71071be4ca3d4de4af3e8c9eb389e9be0dde2ca6bd2d1f41ddf"}, "url": "/docs/compare/?release=9.3.15#9.3.15-561e014ae849975e", "source_url": "/docs/release/9.3.15/#id-1.11.6.15.5"}]}, {"id": "9.4.10-2252643d10d5d336", "cves": [], "html": "<p>修复涉及 CTE 扫描的 EvalPlanQual 重新检查（Tom Lane）</p>\n<p>重新检查总是把 CTE 视为不返回任何行，通常导致无法更新最近已更新的行。</p>", "text": "修复涉及 CTE 扫描的 EvalPlanQual 重新检查（Tom Lane） 重新检查总是把 CTE 视为不返回任何行，通常导致无法更新最近已更新的行。", "title": "修复涉及 CTE 扫描的 EvalPlanQual 重新检查", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.4.10/#id-1.11.6.21.5", "source_hash": "934f64db561426b4fb2731286513fbfc3a6d01248ae274203642ce636ab3d585", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix EvalPlanQual rechecks involving CTE scans (Tom Lane) The recheck would always see the CTE as returning no rows, typically leading to failure to update rows that were recently updated.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.10/changes/004", "db_id": "148b0fed49731389ecd14f2ebc3d1067", "patch_ids": [], "statement_hash": "3922d3edd8ef9a6128553b94e92bb013dc6c62c46c5dc805ef648aea848cd84b", "relations": [{"rule": 2, "type": "equivalent", "target": "0a6f14182f50b9a5c9c9ea74490ccc30", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3922d3edd8ef9a6128553b94e92bb013dc6c62c46c5dc805ef648aea848cd84b"}}, {"rule": 2, "type": "equivalent", "target": "a48b38961155ef2e30667a393641fa53", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3922d3edd8ef9a6128553b94e92bb013dc6c62c46c5dc805ef648aea848cd84b"}}, {"rule": 2, "type": "equivalent", "target": "b38da6d063494a10eabf2dd1ce5243c0", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3922d3edd8ef9a6128553b94e92bb013dc6c62c46c5dc805ef648aea848cd84b"}}, {"rule": 2, "type": "equivalent", "target": "ca8b268793e0e49d7ceb1df2a66e0437", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3922d3edd8ef9a6128553b94e92bb013dc6c62c46c5dc805ef648aea848cd84b"}}], "version": "9.4.10", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "b38da6d063494a10eabf2dd1ce5243c0", "kind": "equivalent", "version": "9.5.5", "label": "9.5.5", "title": "修复涉及 CTE 扫描的 EvalPlanQual 重新检查", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3922d3edd8ef9a6128553b94e92bb013dc6c62c46c5dc805ef648aea848cd84b"}, "url": "/docs/compare/?release=9.5.5#9.5.5-2252643d10d5d336", "source_url": "/docs/release/9.5.5/#id-1.11.6.25.5"}, {"db_id": "ca8b268793e0e49d7ceb1df2a66e0437", "kind": "equivalent", "version": "9.3.15", "label": "9.3.15", "title": "修复涉及 CTE 扫描的 EvalPlanQual 重新检查", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3922d3edd8ef9a6128553b94e92bb013dc6c62c46c5dc805ef648aea848cd84b"}, "url": "/docs/compare/?release=9.3.15#9.3.15-2252643d10d5d336", "source_url": "/docs/release/9.3.15/#id-1.11.6.15.5"}, {"db_id": "a48b38961155ef2e30667a393641fa53", "kind": "equivalent", "version": "9.2.19", "label": "9.2.19", "title": "修复涉及 CTE 扫描的 EvalPlanQual 重新检查", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3922d3edd8ef9a6128553b94e92bb013dc6c62c46c5dc805ef648aea848cd84b"}, "url": "/docs/compare/?release=9.2.19#9.2.19-2252643d10d5d336", "source_url": "/docs/release/9.2.19/#id-1.11.6.10.5"}, {"db_id": "0a6f14182f50b9a5c9c9ea74490ccc30", "kind": "equivalent", "version": "9.1.24", "label": "9.1.24", "title": "修复涉及 CTE 扫描的 EvalPlanQual 重新检查", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3922d3edd8ef9a6128553b94e92bb013dc6c62c46c5dc805ef648aea848cd84b"}, "url": "/docs/compare/?release=9.1.24#9.1.24-2252643d10d5d336", "source_url": "/docs/release/9.1.24/#id-1.11.6.5.6"}]}, {"id": "9.4.10-177aca4ce1450549", "cves": [], "html": "<p>修复子查询中哈希聚合不当重复先前结果的问题（Andrew Gierth）</p>\n<p>判断能否复用先前计算的聚合状态值哈希表的测试，忽略了聚合参数表达式中出现外层查询引用的可能性。这种引用的值发生变化时本应重新计算哈希表，但实际没有。</p>", "text": "修复子查询中哈希聚合不当重复先前结果的问题（Andrew Gierth） 判断能否复用先前计算的聚合状态值哈希表的测试，忽略了聚合参数表达式中出现外层查询引用的可能性。这种引用的值发生变化时本应重新计算哈希表，但实际没有。", "title": "修复子查询中哈希聚合不当重复先前结果的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.4.10/#id-1.11.6.21.5", "source_hash": "667ebcb76b27edbb0e8d87c218b6cdb7eeccdb846db5137425092b2b564edbd7", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix improper repetition of previous results from hashed aggregation in a subquery (Andrew Gierth) The test to see if we can reuse a previously-computed hash table of the aggregate state values neglected the possibility of an outer query reference appearing in an aggregate argument expression. A change in the value of such a reference should lead to recalculating the hash table, but did not.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.10/changes/005", "db_id": "2020a7bdb0fbf3ca85de8798e0305bf1", "patch_ids": [], "statement_hash": "26bb3f470abaf63521436764cda9a018275d21c7262ddddde93473add7b9af0d", "relations": [{"rule": 2, "type": "equivalent", "target": "00d5f51d3260f5e9e1b91bd6cbeec4ce", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "26bb3f470abaf63521436764cda9a018275d21c7262ddddde93473add7b9af0d"}}, {"rule": 2, "type": "equivalent", "target": "53320ec46d8b47b6ac4020cf83467a0a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "26bb3f470abaf63521436764cda9a018275d21c7262ddddde93473add7b9af0d"}}, {"rule": 2, "type": "equivalent", "target": "79952d6e4a60f982e06c23562ae2bd7f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "26bb3f470abaf63521436764cda9a018275d21c7262ddddde93473add7b9af0d"}}, {"rule": 2, "type": "equivalent", "target": "867a54d1479298adf343b084a19b61e2", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "26bb3f470abaf63521436764cda9a018275d21c7262ddddde93473add7b9af0d"}}], "version": "9.4.10", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "00d5f51d3260f5e9e1b91bd6cbeec4ce", "kind": "equivalent", "version": "9.5.5", "label": "9.5.5", "title": "修复子查询中哈希聚合不当重复先前结果的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "26bb3f470abaf63521436764cda9a018275d21c7262ddddde93473add7b9af0d"}, "url": "/docs/compare/?release=9.5.5#9.5.5-177aca4ce1450549", "source_url": "/docs/release/9.5.5/#id-1.11.6.25.5"}, {"db_id": "867a54d1479298adf343b084a19b61e2", "kind": "equivalent", "version": "9.3.15", "label": "9.3.15", "title": "修复子查询中哈希聚合不当重复先前结果的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "26bb3f470abaf63521436764cda9a018275d21c7262ddddde93473add7b9af0d"}, "url": "/docs/compare/?release=9.3.15#9.3.15-177aca4ce1450549", "source_url": "/docs/release/9.3.15/#id-1.11.6.15.5"}, {"db_id": "79952d6e4a60f982e06c23562ae2bd7f", "kind": "equivalent", "version": "9.2.19", "label": "9.2.19", "title": "修复子查询中哈希聚合不当重复先前结果的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "26bb3f470abaf63521436764cda9a018275d21c7262ddddde93473add7b9af0d"}, "url": "/docs/compare/?release=9.2.19#9.2.19-177aca4ce1450549", "source_url": "/docs/release/9.2.19/#id-1.11.6.10.5"}, {"db_id": "53320ec46d8b47b6ac4020cf83467a0a", "kind": "equivalent", "version": "9.1.24", "label": "9.1.24", "title": "修复子查询中哈希聚合不当重复先前结果的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "26bb3f470abaf63521436764cda9a018275d21c7262ddddde93473add7b9af0d"}, "url": "/docs/compare/?release=9.1.24#9.1.24-177aca4ce1450549", "source_url": "/docs/release/9.1.24/#id-1.11.6.5.6"}]}, {"id": "9.4.10-f2a426fc2034ebca", "cves": [], "html": "<p>修复对带 <code>PRIMARY KEY</code> 或 <code>REPLICA IDENTITY</code> 索引的表执行批量 <code>UPDATE</code> 时的查询生命周期内存泄漏（Tom Lane）</p>", "text": "修复对带 PRIMARY KEY 或 REPLICA IDENTITY 索引的表执行批量 UPDATE 时的查询生命周期内存泄漏（Tom Lane）", "title": "修复对带 PRIMARY KEY 或 REPLICA IDENTITY 索引的表执行批量 UPDATE 时的查询生命周期内存泄漏", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.4.10/#id-1.11.6.21.5", "source_hash": "abfc799837400ae77c3f4912456e0d386c0b1bbaaaf966264d129d0990c55d19", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix query-lifespan memory leak in a bulk UPDATE on a table with a PRIMARY KEY or REPLICA IDENTITY index (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.10/changes/006", "db_id": "eac60a695d3e9acd71bfc4b2b8d33448", "patch_ids": [], "statement_hash": "728f6d20b34ce5985dcd26f1b69756d76ccd77244c316694a9f40eeeac84def2", "relations": [{"rule": 2, "type": "equivalent", "target": "62848c362b33387e01af49e0111bc76f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "728f6d20b34ce5985dcd26f1b69756d76ccd77244c316694a9f40eeeac84def2"}}], "version": "9.4.10", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "62848c362b33387e01af49e0111bc76f", "kind": "equivalent", "version": "9.5.5", "label": "9.5.5", "title": "修复对带 PRIMARY KEY 或 REPLICA IDENTITY 索引的表执行批量 UPDATE 时的查询生命周期内存泄漏", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "728f6d20b34ce5985dcd26f1b69756d76ccd77244c316694a9f40eeeac84def2"}, "url": "/docs/compare/?release=9.5.5#9.5.5-f2a426fc2034ebca", "source_url": "/docs/release/9.5.5/#id-1.11.6.25.5"}]}, {"id": "9.4.10-1ce213d7a7e480a4", "cves": [], "html": "<p>修复<a href=\"/docs/9.4/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.4.10/#id-1.11.6.21.5", "source_hash": "f26c50ebbaf995303984cc6ad5b1dcda7c35ec7f2f56cb6b1f8af61652a8ab85", "section_path": ["变更"], "commit_groups": [], "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": [], "source_commits": [], "source_entry_id": "9.4.10/changes/007", "db_id": "684f2a691ee59de4a4bcc3301b1e7459", "patch_ids": [], "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": "7d7e9a5d8afdcb8105c7b6a186564444", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7684251d5d0c3e099470838cc7d80527d0d235a04ca6bbc27cd999a07c9cd099"}}, {"rule": 2, "type": "equivalent", "target": "c35805d056ec383a472956b186d0e0c6", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7684251d5d0c3e099470838cc7d80527d0d235a04ca6bbc27cd999a07c9cd099"}}], "version": "9.4.10", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "c35805d056ec383a472956b186d0e0c6", "kind": "equivalent", "version": "9.6.1", "label": "9.6.1", "title": "修复track_io_timing打开时 EXPLAIN 发出有效 XML", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7684251d5d0c3e099470838cc7d80527d0d235a04ca6bbc27cd999a07c9cd099"}, "url": "/docs/compare/?release=9.6.1#9.6.1-1ce213d7a7e480a4", "source_url": "/docs/release/9.6.1/#id-1.11.6.28.5"}, {"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": "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.4.10-15f72f576f6b0d0a", "cves": [], "html": "<p>抑制在 <code>EXPLAIN</code> 中为未测量的时间打印零值（Maksim Milyutin）</p>\n<p>某些选项组合会为在该组合下实际上从不测量的时间打印零值。<code>EXPLAIN</code> 的一般策略是完全不打印此类字段，因此在所有情况下都保持一致。</p>", "text": "抑制在 EXPLAIN 中为未测量的时间打印零值（Maksim Milyutin） 某些选项组合会为在该组合下实际上从不测量的时间打印零值。EXPLAIN 的一般策略是完全不打印此类字段，因此在所有情况下都保持一致。", "title": "抑制在 EXPLAIN 中为未测量的时间打印零值", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.4.10/#id-1.11.6.21.5", "source_hash": "2c7edfbe528d1c971c3a6605f87f7ab02d1942d7b53eecbea37a3ef0c2f56e36", "section_path": ["变更"], "commit_groups": [], "identity_text": "Suppress printing of zeroes for unmeasured times in EXPLAIN (Maksim Milyutin) Certain option combinations resulted in printing zero values for times that actually aren't ever measured in that combination. Our general policy in EXPLAIN is not to print such fields at all, so do that consistently in all cases.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.10/changes/008", "db_id": "d24172a3af57a138185911bdf4ae8731", "patch_ids": [], "statement_hash": "c6bf184d53e5909258f39ab47dce71afad2e272336c14d18475da673b29837b8", "relations": [{"rule": 2, "type": "equivalent", "target": "522257de20e54cfe8122c8f9c559c49c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c6bf184d53e5909258f39ab47dce71afad2e272336c14d18475da673b29837b8"}}, {"rule": 2, "type": "equivalent", "target": "67ee677c366a316903ec4b2e54b471d3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c6bf184d53e5909258f39ab47dce71afad2e272336c14d18475da673b29837b8"}}, {"rule": 2, "type": "equivalent", "target": "e56603a7f48fddbe68c96e0a63a33cb2", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c6bf184d53e5909258f39ab47dce71afad2e272336c14d18475da673b29837b8"}}], "version": "9.4.10", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "522257de20e54cfe8122c8f9c559c49c", "kind": "equivalent", "version": "9.5.5", "label": "9.5.5", "title": "抑制在 EXPLAIN 中为未测量的时间打印零值", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c6bf184d53e5909258f39ab47dce71afad2e272336c14d18475da673b29837b8"}, "url": "/docs/compare/?release=9.5.5#9.5.5-15f72f576f6b0d0a", "source_url": "/docs/release/9.5.5/#id-1.11.6.25.5"}, {"db_id": "67ee677c366a316903ec4b2e54b471d3", "kind": "equivalent", "version": "9.3.15", "label": "9.3.15", "title": "抑制在 EXPLAIN 中为未测量的时间打印零值", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c6bf184d53e5909258f39ab47dce71afad2e272336c14d18475da673b29837b8"}, "url": "/docs/compare/?release=9.3.15#9.3.15-15f72f576f6b0d0a", "source_url": "/docs/release/9.3.15/#id-1.11.6.15.5"}, {"db_id": "e56603a7f48fddbe68c96e0a63a33cb2", "kind": "equivalent", "version": "9.2.19", "label": "9.2.19", "title": "抑制在 EXPLAIN 中为未测量的时间打印零值", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c6bf184d53e5909258f39ab47dce71afad2e272336c14d18475da673b29837b8"}, "url": "/docs/compare/?release=9.2.19#9.2.19-15f72f576f6b0d0a", "source_url": "/docs/release/9.2.19/#id-1.11.6.10.5"}]}, {"id": "9.4.10-391c6ac06f6af90d", "cves": [], "html": "<p>修复 <code>VACUUM</code> 为截断表而等待排他表锁时的超时长度（Simon Riggs）</p>\n<p>该超时本应为 50 毫秒，但实际上只有 50 微秒，导致 <code>VACUUM</code> 比预期更容易放弃截断。将其设置为预期值。</p>", "text": "修复 VACUUM 为截断表而等待排他表锁时的超时长度（Simon Riggs） 该超时本应为 50 毫秒，但实际上只有 50 微秒，导致 VACUUM 比预期更容易放弃截断。将其设置为预期值。", "title": "修复 VACUUM 为截断表而等待排他表锁时的超时长度", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.4.10/#id-1.11.6.21.5", "source_hash": "a88a1a8f2b6919d53f15eeaeedf61fb8d38d9c4039061e621a4e0a0d81ee59b0", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix timeout length when VACUUM is waiting for exclusive table lock so that it can truncate the table (Simon Riggs) The timeout was meant to be 50 milliseconds, but it was actually only 50 microseconds, causing VACUUM to give up on truncation much more easily than intended. Set it to the intended value.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.10/changes/009", "db_id": "b6e519c98f89f30c1819fa8ae87b9238", "patch_ids": [], "statement_hash": "8e1750cd34b1da6ea50cda2bcea08aad7bae5f29bba6a05fdeaa3950bbdffb63", "relations": [{"rule": 2, "type": "equivalent", "target": "1cb079dbd3940fef26c1064d66af44f7", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8e1750cd34b1da6ea50cda2bcea08aad7bae5f29bba6a05fdeaa3950bbdffb63"}}, {"rule": 2, "type": "equivalent", "target": "56e997b4a49879750a680dce08d3c5c3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8e1750cd34b1da6ea50cda2bcea08aad7bae5f29bba6a05fdeaa3950bbdffb63"}}, {"rule": 2, "type": "equivalent", "target": "5b3e6ca70c68eb8f46e1990a4fd3c678", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8e1750cd34b1da6ea50cda2bcea08aad7bae5f29bba6a05fdeaa3950bbdffb63"}}, {"rule": 2, "type": "equivalent", "target": "e22909c1e13ebaf44cf39bdd22fb0be2", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8e1750cd34b1da6ea50cda2bcea08aad7bae5f29bba6a05fdeaa3950bbdffb63"}}], "version": "9.4.10", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "1cb079dbd3940fef26c1064d66af44f7", "kind": "equivalent", "version": "9.5.5", "label": "9.5.5", "title": "修复 VACUUM 为截断表而等待排他表锁时的超时长度", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8e1750cd34b1da6ea50cda2bcea08aad7bae5f29bba6a05fdeaa3950bbdffb63"}, "url": "/docs/compare/?release=9.5.5#9.5.5-391c6ac06f6af90d", "source_url": "/docs/release/9.5.5/#id-1.11.6.25.5"}, {"db_id": "5b3e6ca70c68eb8f46e1990a4fd3c678", "kind": "equivalent", "version": "9.3.15", "label": "9.3.15", "title": "修复 VACUUM 为截断表而等待排他表锁时的超时长度", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8e1750cd34b1da6ea50cda2bcea08aad7bae5f29bba6a05fdeaa3950bbdffb63"}, "url": "/docs/compare/?release=9.3.15#9.3.15-391c6ac06f6af90d", "source_url": "/docs/release/9.3.15/#id-1.11.6.15.5"}, {"db_id": "56e997b4a49879750a680dce08d3c5c3", "kind": "equivalent", "version": "9.2.19", "label": "9.2.19", "title": "修复 VACUUM 为截断表而等待排他表锁时的超时长度", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8e1750cd34b1da6ea50cda2bcea08aad7bae5f29bba6a05fdeaa3950bbdffb63"}, "url": "/docs/compare/?release=9.2.19#9.2.19-391c6ac06f6af90d", "source_url": "/docs/release/9.2.19/#id-1.11.6.10.5"}, {"db_id": "e22909c1e13ebaf44cf39bdd22fb0be2", "kind": "equivalent", "version": "9.1.24", "label": "9.1.24", "title": "修复 VACUUM 为截断表而等待排他表锁时的超时长度", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8e1750cd34b1da6ea50cda2bcea08aad7bae5f29bba6a05fdeaa3950bbdffb63"}, "url": "/docs/compare/?release=9.1.24#9.1.24-391c6ac06f6af90d", "source_url": "/docs/release/9.1.24/#id-1.11.6.5.6"}]}, {"id": "9.4.10-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.4.10/#id-1.11.6.21.5", "source_hash": "5664e9a5115fa888916d0ee1a063a08c848230561c141770c8e17294e7920d23", "section_path": ["变更"], "commit_groups": [], "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": [], "source_commits": [], "source_entry_id": "9.4.10/changes/010", "db_id": "864da9828cbc9dedf3a48fbb88838d2c", "patch_ids": [], "statement_hash": "3c6b2020261c2724cfab703b00857db00700c29782efcb621b3753fb01eaa86a", "relations": [{"rule": 2, "type": "equivalent", "target": "17c3b5c88a4e18eeb9db0d79f1bd4738", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3c6b2020261c2724cfab703b00857db00700c29782efcb621b3753fb01eaa86a"}}, {"rule": 2, "type": "equivalent", "target": "820976eee5d0d58fc24e6faef69ef024", "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.4.10", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "820976eee5d0d58fc24e6faef69ef024", "kind": "equivalent", "version": "9.6.1", "label": "9.6.1", "title": "修复创建或更改表时合并继承 CHECK 约束的 bug", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3c6b2020261c2724cfab703b00857db00700c29782efcb621b3753fb01eaa86a"}, "url": "/docs/compare/?release=9.6.1#9.6.1-57214dd6616bc23b", "source_url": "/docs/release/9.6.1/#id-1.11.6.28.5"}, {"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": "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.4.10-04f5bd0c7fa406b1", "cves": [], "html": "<p>移除对 <code>numeric_in()</code> 和 <code>numeric_recv()</code> 所接受值的人为限制（Tom Lane）</p>\n<p>我们允许数值达到存储格式的极限（超过 <code>1e100000</code>），因此 <code>numeric_in()</code> 拒绝科学计数法指数超过 1000 的做法相当无意义。同样，<code>numeric_recv()</code> 拒绝输入值超过 1000 位数字也很荒谬。</p>", "text": "移除对 numeric_in() 和 numeric_recv() 所接受值的人为限制（Tom Lane） 我们允许数值达到存储格式的极限（超过 1e100000），因此 numeric_in() 拒绝科学计数法指数超过 1000 的做法相当无意义。同样，numeric_recv() 拒绝输入值超过 1000 位数字也很荒谬。", "title": "移除对 numeric_in() 和 numeric_recv() 所接受值的人为限制", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.4.10/#id-1.11.6.21.5", "source_hash": "d852208c101b4f6158c90ab89a95b3d52741172e6a32dc7c7b132a2ea7e97a00", "section_path": ["变更"], "commit_groups": [], "identity_text": "Remove artificial restrictions on the values accepted by numeric_in() and numeric_recv() (Tom Lane) We allow numeric values up to the limit of the storage format (more than 1e100000), so it seems fairly pointless that numeric_in() rejected scientific-notation exponents above 1000. Likewise, it was silly for numeric_recv() to reject more than 1000 digits in an input value.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.10/changes/011", "db_id": "6e99ac62e2f9ae4123378e4e897126a9", "patch_ids": [], "statement_hash": "215d294cd39b761b6e387ebbaa8d20b974e46a4b710762012aeec3d2b1f71123", "relations": [{"rule": 2, "type": "equivalent", "target": "16dbdf9c98d05ce7811dbc5a70c5239a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "215d294cd39b761b6e387ebbaa8d20b974e46a4b710762012aeec3d2b1f71123"}}, {"rule": 2, "type": "equivalent", "target": "959c3d113ea2d715b8e71b3488b5584c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "215d294cd39b761b6e387ebbaa8d20b974e46a4b710762012aeec3d2b1f71123"}}, {"rule": 2, "type": "equivalent", "target": "970b3b385e77bd81befa029af417124f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "215d294cd39b761b6e387ebbaa8d20b974e46a4b710762012aeec3d2b1f71123"}}, {"rule": 2, "type": "equivalent", "target": "cbb15d183b27452a22355f59275315af", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "215d294cd39b761b6e387ebbaa8d20b974e46a4b710762012aeec3d2b1f71123"}}], "version": "9.4.10", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "16dbdf9c98d05ce7811dbc5a70c5239a", "kind": "equivalent", "version": "9.5.5", "label": "9.5.5", "title": "移除对 numeric_in() 和 numeric_recv() 所接受值的人为限制", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "215d294cd39b761b6e387ebbaa8d20b974e46a4b710762012aeec3d2b1f71123"}, "url": "/docs/compare/?release=9.5.5#9.5.5-04f5bd0c7fa406b1", "source_url": "/docs/release/9.5.5/#id-1.11.6.25.5"}, {"db_id": "959c3d113ea2d715b8e71b3488b5584c", "kind": "equivalent", "version": "9.3.15", "label": "9.3.15", "title": "移除对 numeric_in() 和 numeric_recv() 所接受值的人为限制", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "215d294cd39b761b6e387ebbaa8d20b974e46a4b710762012aeec3d2b1f71123"}, "url": "/docs/compare/?release=9.3.15#9.3.15-04f5bd0c7fa406b1", "source_url": "/docs/release/9.3.15/#id-1.11.6.15.5"}, {"db_id": "970b3b385e77bd81befa029af417124f", "kind": "equivalent", "version": "9.2.19", "label": "9.2.19", "title": "移除对 numeric_in() 和 numeric_recv() 所接受值的人为限制", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "215d294cd39b761b6e387ebbaa8d20b974e46a4b710762012aeec3d2b1f71123"}, "url": "/docs/compare/?release=9.2.19#9.2.19-04f5bd0c7fa406b1", "source_url": "/docs/release/9.2.19/#id-1.11.6.10.5"}, {"db_id": "cbb15d183b27452a22355f59275315af", "kind": "equivalent", "version": "9.1.24", "label": "9.1.24", "title": "移除对 numeric_in() 和 numeric_recv() 所接受值的人为限制", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "215d294cd39b761b6e387ebbaa8d20b974e46a4b710762012aeec3d2b1f71123"}, "url": "/docs/compare/?release=9.1.24#9.1.24-04f5bd0c7fa406b1", "source_url": "/docs/release/9.1.24/#id-1.11.6.5.6"}]}, {"id": "9.4.10-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.4.10/#id-1.11.6.21.5", "source_hash": "2088d92c0623ce8060de46d34e6c772b1f84018e689d34acab32b10abccbee9d", "section_path": ["变更"], "commit_groups": [], "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": [], "source_commits": [], "source_entry_id": "9.4.10/changes/012", "db_id": "53b0b52d899de881f8586469efa7f5aa", "patch_ids": [], "statement_hash": "dc3a7ed96669ea608d4c733bb9f23d94722acad9fff15a88d593a50d15116c37", "relations": [{"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": "faba4ef996319c8db73db30748abf489", "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.4.10", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "faba4ef996319c8db73db30748abf489", "kind": "equivalent", "version": "9.6.1", "label": "9.6.1", "title": "避免因未持有缓冲区锁测试元组可见性而导致的极低概率数据损坏", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dc3a7ed96669ea608d4c733bb9f23d94722acad9fff15a88d593a50d15116c37"}, "url": "/docs/compare/?release=9.6.1#9.6.1-4eb1a050d783d079", "source_url": "/docs/release/9.6.1/#id-1.11.6.28.5"}, {"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": "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.4.10-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.4.10/#id-1.11.6.21.5", "source_hash": "b458bfae4ac627222bd7ba147b4b9b31945589a1e7d82d28f69e29ac875827d3", "section_path": ["变更"], "commit_groups": [], "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": [], "source_commits": [], "source_entry_id": "9.4.10/changes/013", "db_id": "523527d73ae0b1bd4d93ce8d8679d2ff", "patch_ids": [], "statement_hash": "fb79dd6fa77aee0939f4bd03a29e002dc5b2c387280a8afe3431ec8d2cdb5550", "relations": [{"rule": 2, "type": "equivalent", "target": "470a039e7a7d709e873acc07b7315fed", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fb79dd6fa77aee0939f4bd03a29e002dc5b2c387280a8afe3431ec8d2cdb5550"}}, {"rule": 2, "type": "equivalent", "target": "7fbb078e2be4bbd5ba0ce87dfe2ac2b2", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fb79dd6fa77aee0939f4bd03a29e002dc5b2c387280a8afe3431ec8d2cdb5550"}}], "version": "9.4.10", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "7fbb078e2be4bbd5ba0ce87dfe2ac2b2", "kind": "equivalent", "version": "9.6.1", "label": "9.6.1", "title": "修复子事务的 WAL 输出大到足以溢出到磁盘时逻辑 WAL 解码的正常工作", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fb79dd6fa77aee0939f4bd03a29e002dc5b2c387280a8afe3431ec8d2cdb5550"}, "url": "/docs/compare/?release=9.6.1#9.6.1-dcae3583b71426d8", "source_url": "/docs/release/9.6.1/#id-1.11.6.28.5"}, {"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"}]}, {"id": "9.4.10-c6add52c40b612ac", "cves": [], "html": "<p>修复逻辑 WAL 解码中的缓冲区过度读取（Tom Lane）</p>\n<p>元组更新记录的逻辑解码会多读取 23 个字节，这通常无害，但运气极差时可能导致崩溃。</p>", "text": "修复逻辑 WAL 解码中的缓冲区过度读取（Tom Lane） 元组更新记录的逻辑解码会多读取 23 个字节，这通常无害，但运气极差时可能导致崩溃。", "title": "修复逻辑 WAL 解码中的缓冲区过度读取", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.4.10/#id-1.11.6.21.5", "source_hash": "2139de9aca97b54b530cfc639437c225e0b375cb6c327a07add7754baa6647c2", "section_path": ["变更"], "commit_groups": [["10ad15f48"]], "identity_text": "Fix buffer overread in logical WAL decoding (Tom Lane) Logical decoding of a tuple update record read 23 bytes too many, which was usually harmless but with very bad luck could result in a crash.", "commit_aliases": ["10ad15f48"], "source_commits": ["10ad15f48"], "source_entry_id": "9.4.10/changes/014", "db_id": "52567e959c751908669e44f50e5c70e9", "patch_ids": ["c0b022764576bd09722054338c645937"], "statement_hash": "5188932e981be09baaafa5e901bf4e86bf1a868d616ea08f83347607f1844b73", "relations": [], "version": "9.4.10", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.10-11ce7446bcfb0c31", "cves": [], "html": "<p>修复截断超过 1GB 的临时关系时文件描述符泄漏的问题（Andres Freund）</p>", "text": "修复截断超过 1GB 的临时关系时文件描述符泄漏的问题（Andres Freund）", "title": "修复截断超过 1GB 的临时关系时文件描述符泄漏的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.4.10/#id-1.11.6.21.5", "source_hash": "9a53c0088d60382ad47e1fe04bc5a4341b1f90e32f9de51b92c74bf8854332db", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix file descriptor leakage when truncating a temporary relation of more than 1GB (Andres Freund)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.10/changes/015", "db_id": "ab4fc2910d13bf23ffd61316064bb01c", "patch_ids": [], "statement_hash": "d7cf9bd3d4ed2d44b98b0685eab1a96a80439eb3b83f955881792a0666dd7ab3", "relations": [{"rule": 2, "type": "equivalent", "target": "83d2e2fe32c55c203f2ded6cd8374eca", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d7cf9bd3d4ed2d44b98b0685eab1a96a80439eb3b83f955881792a0666dd7ab3"}}, {"rule": 2, "type": "equivalent", "target": "aa88f9f6926279796753592c45883a86", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d7cf9bd3d4ed2d44b98b0685eab1a96a80439eb3b83f955881792a0666dd7ab3"}}, {"rule": 2, "type": "equivalent", "target": "b968a9e8dab9d2bfdbe1558ed1e6c414", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d7cf9bd3d4ed2d44b98b0685eab1a96a80439eb3b83f955881792a0666dd7ab3"}}, {"rule": 2, "type": "equivalent", "target": "e18dd780cb4b753fd2ebe6b802d3c37f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d7cf9bd3d4ed2d44b98b0685eab1a96a80439eb3b83f955881792a0666dd7ab3"}}], "version": "9.4.10", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "aa88f9f6926279796753592c45883a86", "kind": "equivalent", "version": "9.5.5", "label": "9.5.5", "title": "修复截断超过 1GB 的临时关系时文件描述符泄漏的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d7cf9bd3d4ed2d44b98b0685eab1a96a80439eb3b83f955881792a0666dd7ab3"}, "url": "/docs/compare/?release=9.5.5#9.5.5-11ce7446bcfb0c31", "source_url": "/docs/release/9.5.5/#id-1.11.6.25.5"}, {"db_id": "83d2e2fe32c55c203f2ded6cd8374eca", "kind": "equivalent", "version": "9.3.15", "label": "9.3.15", "title": "修复截断超过 1GB 的临时关系时文件描述符泄漏的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d7cf9bd3d4ed2d44b98b0685eab1a96a80439eb3b83f955881792a0666dd7ab3"}, "url": "/docs/compare/?release=9.3.15#9.3.15-11ce7446bcfb0c31", "source_url": "/docs/release/9.3.15/#id-1.11.6.15.5"}, {"db_id": "e18dd780cb4b753fd2ebe6b802d3c37f", "kind": "equivalent", "version": "9.2.19", "label": "9.2.19", "title": "修复截断超过 1GB 的临时关系时文件描述符泄漏的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d7cf9bd3d4ed2d44b98b0685eab1a96a80439eb3b83f955881792a0666dd7ab3"}, "url": "/docs/compare/?release=9.2.19#9.2.19-11ce7446bcfb0c31", "source_url": "/docs/release/9.2.19/#id-1.11.6.10.5"}, {"db_id": "b968a9e8dab9d2bfdbe1558ed1e6c414", "kind": "equivalent", "version": "9.1.24", "label": "9.1.24", "title": "修复截断超过 1GB 的临时关系时文件描述符泄漏的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d7cf9bd3d4ed2d44b98b0685eab1a96a80439eb3b83f955881792a0666dd7ab3"}, "url": "/docs/compare/?release=9.1.24#9.1.24-11ce7446bcfb0c31", "source_url": "/docs/release/9.1.24/#id-1.11.6.5.6"}]}, {"id": "9.4.10-a06fe56237b46443", "cves": [], "html": "<p>禁止在启用 <code>standby_mode</code> 的情况下启动独立后端（Michael Paquier）</p>\n<p>这不可能有任何用处，因为不会有 WAL 接收器进程来获取更多 WAL 数据；而且这可能导致未针对此种情况设计的代码出现不当行为。</p>", "text": "禁止在启用 standby_mode 的情况下启动独立后端（Michael Paquier） 这不可能有任何用处，因为不会有 WAL 接收器进程来获取更多 WAL 数据；而且这可能导致未针对此种情况设计的代码出现不当行为。", "title": "禁止在启用 standby_mode 的情况下启动独立后端", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.4.10/#id-1.11.6.21.5", "source_hash": "5aa9396bc0c7bf820c271dbcf9603cb6dd4984916a0dd0ad36b9a749ee2e5c97", "section_path": ["变更"], "commit_groups": [], "identity_text": "Disallow starting a standalone backend with standby_mode turned on (Michael Paquier) This can't do anything useful, since there will be no WAL receiver process to fetch more WAL data; and it could result in misbehavior in code that wasn't designed with this situation in mind.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.10/changes/016", "db_id": "ac1759edd7767fc474e87059273b5158", "patch_ids": [], "statement_hash": "d01bfcbddf2c65c32e5e7a2d049baaacae2f5fb02e5cec4950d3675c9c165d38", "relations": [{"rule": 2, "type": "equivalent", "target": "158516e1eddd49983f3b4f829956eec1", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d01bfcbddf2c65c32e5e7a2d049baaacae2f5fb02e5cec4950d3675c9c165d38"}}, {"rule": 2, "type": "equivalent", "target": "17b6d5fba75136b8d707e13f8a93e3bb", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d01bfcbddf2c65c32e5e7a2d049baaacae2f5fb02e5cec4950d3675c9c165d38"}}, {"rule": 2, "type": "equivalent", "target": "775c280a36f8bbb4957832f77d57a7b7", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d01bfcbddf2c65c32e5e7a2d049baaacae2f5fb02e5cec4950d3675c9c165d38"}}, {"rule": 2, "type": "equivalent", "target": "c86ab88b8e5235177f445a4e1c359640", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d01bfcbddf2c65c32e5e7a2d049baaacae2f5fb02e5cec4950d3675c9c165d38"}}], "version": "9.4.10", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "17b6d5fba75136b8d707e13f8a93e3bb", "kind": "equivalent", "version": "9.5.5", "label": "9.5.5", "title": "禁止在启用 standby_mode 的情况下启动独立后端", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d01bfcbddf2c65c32e5e7a2d049baaacae2f5fb02e5cec4950d3675c9c165d38"}, "url": "/docs/compare/?release=9.5.5#9.5.5-a06fe56237b46443", "source_url": "/docs/release/9.5.5/#id-1.11.6.25.5"}, {"db_id": "775c280a36f8bbb4957832f77d57a7b7", "kind": "equivalent", "version": "9.3.15", "label": "9.3.15", "title": "禁止在启用 standby_mode 的情况下启动独立后端", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d01bfcbddf2c65c32e5e7a2d049baaacae2f5fb02e5cec4950d3675c9c165d38"}, "url": "/docs/compare/?release=9.3.15#9.3.15-a06fe56237b46443", "source_url": "/docs/release/9.3.15/#id-1.11.6.15.5"}, {"db_id": "158516e1eddd49983f3b4f829956eec1", "kind": "equivalent", "version": "9.2.19", "label": "9.2.19", "title": "禁止在启用 standby_mode 的情况下启动独立后端", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d01bfcbddf2c65c32e5e7a2d049baaacae2f5fb02e5cec4950d3675c9c165d38"}, "url": "/docs/compare/?release=9.2.19#9.2.19-a06fe56237b46443", "source_url": "/docs/release/9.2.19/#id-1.11.6.10.5"}, {"db_id": "c86ab88b8e5235177f445a4e1c359640", "kind": "equivalent", "version": "9.1.24", "label": "9.1.24", "title": "禁止在启用 standby_mode 的情况下启动独立后端", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d01bfcbddf2c65c32e5e7a2d049baaacae2f5fb02e5cec4950d3675c9c165d38"}, "url": "/docs/compare/?release=9.1.24#9.1.24-a06fe56237b46443", "source_url": "/docs/release/9.1.24/#id-1.11.6.5.6"}]}, {"id": "9.4.10-ed1747eab93bc106", "cves": [], "html": "<p>在回收先前使用过的复制槽时正确初始化其状态（Michael Paquier）</p>\n<p>未重置槽的所有字段可能阻止 <code>VACUUM</code> 移除死元组。</p>", "text": "在回收先前使用过的复制槽时正确初始化其状态（Michael Paquier） 未重置槽的所有字段可能阻止 VACUUM 移除死元组。", "title": "在回收先前使用过的复制槽时正确初始化其状态", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.4.10/#id-1.11.6.21.5", "source_hash": "e205ef8fb463923acfda6e7a3c44841dc4f663223fabb95ded1a46d3de6d7f59", "section_path": ["变更"], "commit_groups": [], "identity_text": "Properly initialize replication slot state when recycling a previously-used slot (Michael Paquier) This failure to reset all of the fields of the slot could prevent VACUUM from removing dead tuples.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.10/changes/017", "db_id": "c480c56a6c3e73c6550cd4a2b253963a", "patch_ids": [], "statement_hash": "8c38c129d6988171b05dae6f5b8db37180ab031c305242cddea2bffb4f26c946", "relations": [{"rule": 2, "type": "equivalent", "target": "aa2600090c7c138237ab6c24bce0a003", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8c38c129d6988171b05dae6f5b8db37180ab031c305242cddea2bffb4f26c946"}}], "version": "9.4.10", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "aa2600090c7c138237ab6c24bce0a003", "kind": "equivalent", "version": "9.5.5", "label": "9.5.5", "title": "在回收先前使用过的复制槽时正确初始化其状态", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8c38c129d6988171b05dae6f5b8db37180ab031c305242cddea2bffb4f26c946"}, "url": "/docs/compare/?release=9.5.5#9.5.5-ed1747eab93bc106", "source_url": "/docs/release/9.5.5/#id-1.11.6.25.5"}]}, {"id": "9.4.10-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.4.10/#id-1.11.6.21.5", "source_hash": "a4f3cfc9a8534cd787d42a3d2ea69f3fb90d8831e7dd07386729f86414ec2e6f", "section_path": ["变更"], "commit_groups": [], "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": [], "source_commits": [], "source_entry_id": "9.4.10/changes/018", "db_id": "152b0f62f3ead8fce5a3b6113a2d9cf4", "patch_ids": [], "statement_hash": "7122a074c72b2f59b6f7bb786570bb6d918344510cdd05f57c9b0a3bc5dddc0b", "relations": [{"rule": 2, "type": "equivalent", "target": "a066e114fd293025640585d59d825a63", "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.4.10", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "a066e114fd293025640585d59d825a63", "kind": "equivalent", "version": "9.6.1", "label": "9.6.1", "title": "在 Linux 上尝试使用大页时，把共享内存分配请求舍入到实际大页大小的整数倍", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7122a074c72b2f59b6f7bb786570bb6d918344510cdd05f57c9b0a3bc5dddc0b"}, "url": "/docs/compare/?release=9.6.1#9.6.1-340ef99e357b0024", "source_url": "/docs/release/9.6.1/#id-1.11.6.28.5"}, {"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"}]}, {"id": "9.4.10-1b8a393b94773b3e", "cves": [], "html": "<p>为动态共享内存控制段的 ID 使用更随机的值（Robert Haas、Tom Lane）</p>\n<p>以前每次都会选择相同的值，因为它派生自 <code>random()</code>，而 <code>srandom()</code> 尚未被调用。虽然相对无害，但这不是预期行为。</p>", "text": "为动态共享内存控制段的 ID 使用更随机的值（Robert Haas、Tom Lane） 以前每次都会选择相同的值，因为它派生自 random()，而 srandom() 尚未被调用。虽然相对无害，但这不是预期行为。", "title": "为动态共享内存控制段的 ID 使用更随机的值", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.4.10/#id-1.11.6.21.5", "source_hash": "be9f571f78987703c32320bff0cecbec7bfe3c5cb52d86e3c57eafe1c104d74c", "section_path": ["变更"], "commit_groups": [], "identity_text": "Use a more random value for the dynamic shared memory control segment's ID (Robert Haas, Tom Lane) Previously, the same value would be chosen every time, because it was derived from random() but srandom() had not yet been called. While relatively harmless, this was not the intended behavior.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.10/changes/019", "db_id": "f69b4fedec694170f5e7ab0d0e226927", "patch_ids": [], "statement_hash": "3e2633c3eb16ae13532f07426ee25dbc3bd5142af364b6f1522b5da402596f0c", "relations": [{"rule": 2, "type": "equivalent", "target": "dd9cf7d39bbad8f86886cc69fb04f4b6", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3e2633c3eb16ae13532f07426ee25dbc3bd5142af364b6f1522b5da402596f0c"}}], "version": "9.4.10", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "dd9cf7d39bbad8f86886cc69fb04f4b6", "kind": "equivalent", "version": "9.5.5", "label": "9.5.5", "title": "为动态共享内存控制段的 ID 使用更随机的值", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3e2633c3eb16ae13532f07426ee25dbc3bd5142af364b6f1522b5da402596f0c"}, "url": "/docs/compare/?release=9.5.5#9.5.5-1b8a393b94773b3e", "source_url": "/docs/release/9.5.5/#id-1.11.6.25.5"}]}, {"id": "9.4.10-d27aabbef68e1759", "cves": [], "html": "<p>在 Windows 上，动态共享内存控制段创建遇到访问拒绝错误后重试（Kyotaro Horiguchi、Amit Kapila）</p>\n<p>当段已存在时，Windows 有时返回 <code>ERROR_ACCESS_DENIED</code> 而不是 <code>ERROR_ALREADY_EXISTS</code>。这导致系统认为前者是不可恢复的错误，从而使 postmaster 启动失败。</p>", "text": "在 Windows 上，动态共享内存控制段创建遇到访问拒绝错误后重试（Kyotaro Horiguchi、Amit Kapila） 当段已存在时，Windows 有时返回 ERROR_ACCESS_DENIED 而不是 ERROR_ALREADY_EXISTS。这导致系统认为前者是不可恢复的错误，从而使 postmaster 启动失败。", "title": "在 Windows 上，动态共享内存控制段创建遇到访问拒绝错误后重试", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.4.10/#id-1.11.6.21.5", "source_hash": "964605c5d581123723b353f00ff2e27758d6d26a1f5fb86ce6caf8f38d2b2826", "section_path": ["变更"], "commit_groups": [], "identity_text": "On Windows, retry creation of the dynamic shared memory control segment after an access-denied error (Kyotaro Horiguchi, Amit Kapila) Windows sometimes returns ERROR_ACCESS_DENIED rather than ERROR_ALREADY_EXISTS when there is an existing segment. This led to postmaster startup failure due to believing that the former was an unrecoverable error.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.10/changes/020", "db_id": "fc3dd85a25f500ef5ff0c2b37429bae6", "patch_ids": [], "statement_hash": "8874db656c76c9270702a3cc8674c4f595856024b24f4911580a59724acee4b6", "relations": [{"rule": 2, "type": "equivalent", "target": "504b9b899ec78865c5f917084a763665", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8874db656c76c9270702a3cc8674c4f595856024b24f4911580a59724acee4b6"}}], "version": "9.4.10", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "504b9b899ec78865c5f917084a763665", "kind": "equivalent", "version": "9.5.5", "label": "9.5.5", "title": "在 Windows 上，动态共享内存控制段创建遇到访问拒绝错误后重试", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8874db656c76c9270702a3cc8674c4f595856024b24f4911580a59724acee4b6"}, "url": "/docs/compare/?release=9.5.5#9.5.5-d27aabbef68e1759", "source_url": "/docs/release/9.5.5/#id-1.11.6.25.5"}]}, {"id": "9.4.10-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.4.10/#id-1.11.6.21.5", "source_hash": "39c58d256746dddeb5985975affc084f1f580e434421afec12e9f80792262683", "section_path": ["变更"], "commit_groups": [], "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": [], "source_commits": [], "source_entry_id": "9.4.10/changes/021", "db_id": "6cf72552733f502b0431bb9d9b3679f7", "patch_ids": [], "statement_hash": "6bdce0efd0e728656918668f39af1d03df422501f0a4f0d9ef15d30efce81679", "relations": [{"rule": 2, "type": "equivalent", "target": "5797a86f9ccff5c9d9bc62cededb71ea", "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"}}, {"rule": 2, "type": "equivalent", "target": "e4e858812dc39cda82cd0c879258e22e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6bdce0efd0e728656918668f39af1d03df422501f0a4f0d9ef15d30efce81679"}}], "version": "9.4.10", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "e4e858812dc39cda82cd0c879258e22e", "kind": "equivalent", "version": "9.6.1", "label": "9.6.1", "title": "不要在 libpq 中跨多个连接共享 SSL 上下文", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6bdce0efd0e728656918668f39af1d03df422501f0a4f0d9ef15d30efce81679"}, "url": "/docs/compare/?release=9.6.1#9.6.1-8003d20ba0ae4da2", "source_url": "/docs/release/9.6.1/#id-1.11.6.28.5"}, {"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": "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.4.10-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.4.10/#id-1.11.6.21.5", "source_hash": "99615ad64a6d48be73ad24cb11baed8c1601bcbe2904a9275b32e8e45a61941d", "section_path": ["变更"], "commit_groups": [], "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": [], "source_commits": [], "source_entry_id": "9.4.10/changes/022", "db_id": "3567237d2f5f97af726737510ecec076", "patch_ids": [], "statement_hash": "313d3777d34cff9e4b941bae31f6872e8699bcb56272ba9d62dcd279ab03c151", "relations": [{"rule": 2, "type": "equivalent", "target": "04b184ad52defb377059eb805941b633", "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": "f7275762184112b2fde26f52da082d79", "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.4.10", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "f7275762184112b2fde26f52da082d79", "kind": "equivalent", "version": "9.6.1", "label": "9.6.1", "title": "避免 libpq 中的边界情况内存泄漏", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "313d3777d34cff9e4b941bae31f6872e8699bcb56272ba9d62dcd279ab03c151"}, "url": "/docs/compare/?release=9.6.1#9.6.1-dc53364de494302c", "source_url": "/docs/release/9.6.1/#id-1.11.6.28.5"}, {"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": "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.4.10-5832b2c8b0b52eb3", "cves": [], "html": "<p>使 <span>ecpg</span> 的 <code>--help</code> 和 <code>--version</code> 选项与其他可执行程序保持一致（Haribabu Kommi）</p>", "text": "使 ecpg 的 --help 和 --version 选项与其他可执行程序保持一致（Haribabu Kommi）", "title": "使 ecpg 的 --help 和 --version 选项与其他可执行程序保持一致", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.4.10/#id-1.11.6.21.5", "source_hash": "0afbd62d6f50d76344c8bf02e9e9f0ad669e43b7ed03991efe04aa3c23720008", "section_path": ["变更"], "commit_groups": [], "identity_text": "Make ecpg's --help and --version options work consistently with our other executables (Haribabu Kommi)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.10/changes/023", "db_id": "1659101e0086790df02e1950ab4440e8", "patch_ids": [], "statement_hash": "d40f0b8552d5f34084ba6f54d31af1d3b275af576416d83375ccdffc325f845f", "relations": [{"rule": 2, "type": "equivalent", "target": "339f6f243a994ed5be7aee0f49aef1fe", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d40f0b8552d5f34084ba6f54d31af1d3b275af576416d83375ccdffc325f845f"}}, {"rule": 2, "type": "equivalent", "target": "5c5b1a7cd2e44b591bff258e7b9e924a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d40f0b8552d5f34084ba6f54d31af1d3b275af576416d83375ccdffc325f845f"}}, {"rule": 2, "type": "equivalent", "target": "c3222ac30548b14f58131955d74c5e16", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d40f0b8552d5f34084ba6f54d31af1d3b275af576416d83375ccdffc325f845f"}}, {"rule": 2, "type": "equivalent", "target": "fc5034e388a6016454326e2b73a1a750", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d40f0b8552d5f34084ba6f54d31af1d3b275af576416d83375ccdffc325f845f"}}], "version": "9.4.10", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "c3222ac30548b14f58131955d74c5e16", "kind": "equivalent", "version": "9.5.5", "label": "9.5.5", "title": "使 ecpg 的 --help 和 --version 选项与其他可执行程序保持一致", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d40f0b8552d5f34084ba6f54d31af1d3b275af576416d83375ccdffc325f845f"}, "url": "/docs/compare/?release=9.5.5#9.5.5-5832b2c8b0b52eb3", "source_url": "/docs/release/9.5.5/#id-1.11.6.25.5"}, {"db_id": "5c5b1a7cd2e44b591bff258e7b9e924a", "kind": "equivalent", "version": "9.3.15", "label": "9.3.15", "title": "使 ecpg 的 --help 和 --version 选项与其他可执行程序保持一致", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d40f0b8552d5f34084ba6f54d31af1d3b275af576416d83375ccdffc325f845f"}, "url": "/docs/compare/?release=9.3.15#9.3.15-5832b2c8b0b52eb3", "source_url": "/docs/release/9.3.15/#id-1.11.6.15.5"}, {"db_id": "fc5034e388a6016454326e2b73a1a750", "kind": "equivalent", "version": "9.2.19", "label": "9.2.19", "title": "使 ecpg 的 --help 和 --version 选项与其他可执行程序保持一致", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d40f0b8552d5f34084ba6f54d31af1d3b275af576416d83375ccdffc325f845f"}, "url": "/docs/compare/?release=9.2.19#9.2.19-5832b2c8b0b52eb3", "source_url": "/docs/release/9.2.19/#id-1.11.6.10.5"}, {"db_id": "339f6f243a994ed5be7aee0f49aef1fe", "kind": "equivalent", "version": "9.1.24", "label": "9.1.24", "title": "使 ecpg 的 --help 和 --version 选项与其他可执行程序保持一致", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d40f0b8552d5f34084ba6f54d31af1d3b275af576416d83375ccdffc325f845f"}, "url": "/docs/compare/?release=9.1.24#9.1.24-5832b2c8b0b52eb3", "source_url": "/docs/release/9.1.24/#id-1.11.6.5.6"}]}, {"id": "9.4.10-7faad0ebe61a95f9", "cves": [], "html": "<p>修复 <span>pgbench</span> 平均延迟的计算（Fabien Coelho）</p>\n<p>当脚本中存在 <code>\\sleep</code> 命令，或者测试时长以事务数而非总时间指定时，计算是不正确的。</p>", "text": "修复 pgbench 平均延迟的计算（Fabien Coelho） 当脚本中存在 \\sleep 命令，或者测试时长以事务数而非总时间指定时，计算是不正确的。", "title": "修复 pgbench 平均延迟的计算", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.4.10/#id-1.11.6.21.5", "source_hash": "00247f1065d11adfad6308bd424edad6a5c35653992b79cfd019b0c149288c34", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix pgbench's calculation of average latency (Fabien Coelho) The calculation was incorrect when there were \\sleep commands in the script, or when the test duration was specified in number of transactions rather than total time.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.10/changes/024", "db_id": "9e5d49a1e718308cc2d71572e7a67c2a", "patch_ids": [], "statement_hash": "60012fd4326a48fa04b6d6c96d492005513e34f39565735941f2f6c365386d2b", "relations": [{"rule": 2, "type": "equivalent", "target": "3e392d73b9daedfe824cc3ac0de5e469", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "60012fd4326a48fa04b6d6c96d492005513e34f39565735941f2f6c365386d2b"}}], "version": "9.4.10", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "3e392d73b9daedfe824cc3ac0de5e469", "kind": "equivalent", "version": "9.5.5", "label": "9.5.5", "title": "修复 pgbench 平均延迟的计算", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "60012fd4326a48fa04b6d6c96d492005513e34f39565735941f2f6c365386d2b"}, "url": "/docs/compare/?release=9.5.5#9.5.5-7faad0ebe61a95f9", "source_url": "/docs/release/9.5.5/#id-1.11.6.25.5"}]}, {"id": "9.4.10-b1843c09564d1b03", "cves": [], "html": "<p>在 <span>pg_dump</span> 中，永不转储范围构造函数（Tom Lane）</p>\n<p>这一疏漏导致包含范围类型的扩展在 <span>pg_upgrade</span> 时因重复创建构造函数而失败。</p>", "text": "在 pg_dump 中，永不转储范围构造函数（Tom Lane） 这一疏漏导致包含范围类型的扩展在 pg_upgrade 时因重复创建构造函数而失败。", "title": "在 pg_dump 中，永不转储范围构造函数", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.4.10/#id-1.11.6.21.5", "source_hash": "7e9764b38ad4deb812081e00f91eb95b248e0feb9c4c88bc096ace39a107fa5a", "section_path": ["变更"], "commit_groups": [], "identity_text": "In pg_dump, never dump range constructor functions (Tom Lane) This oversight led to pg_upgrade failures with extensions containing range types, due to duplicate creation of the constructor functions.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.10/changes/025", "db_id": "ddd2576c9b8acb7403028207cd9cbdd0", "patch_ids": [], "statement_hash": "d5bf8efc77acb573dcdcc234a2efdfd482bff1f0075ec509ee7c8662fb75e952", "relations": [{"rule": 2, "type": "equivalent", "target": "45805377ff61f58f54c6e0f320c5c06b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d5bf8efc77acb573dcdcc234a2efdfd482bff1f0075ec509ee7c8662fb75e952"}}, {"rule": 2, "type": "equivalent", "target": "6286726427ae08d053a9c2b837dac3b1", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d5bf8efc77acb573dcdcc234a2efdfd482bff1f0075ec509ee7c8662fb75e952"}}, {"rule": 2, "type": "equivalent", "target": "6758ee8a8d57ab2e9be9471f1385751d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d5bf8efc77acb573dcdcc234a2efdfd482bff1f0075ec509ee7c8662fb75e952"}}], "version": "9.4.10", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "45805377ff61f58f54c6e0f320c5c06b", "kind": "equivalent", "version": "9.5.5", "label": "9.5.5", "title": "在 pg_dump 中，永不转储范围构造函数", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d5bf8efc77acb573dcdcc234a2efdfd482bff1f0075ec509ee7c8662fb75e952"}, "url": "/docs/compare/?release=9.5.5#9.5.5-b1843c09564d1b03", "source_url": "/docs/release/9.5.5/#id-1.11.6.25.5"}, {"db_id": "6758ee8a8d57ab2e9be9471f1385751d", "kind": "equivalent", "version": "9.3.15", "label": "9.3.15", "title": "在 pg_dump 中，永不转储范围构造函数", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d5bf8efc77acb573dcdcc234a2efdfd482bff1f0075ec509ee7c8662fb75e952"}, "url": "/docs/compare/?release=9.3.15#9.3.15-b1843c09564d1b03", "source_url": "/docs/release/9.3.15/#id-1.11.6.15.5"}, {"db_id": "6286726427ae08d053a9c2b837dac3b1", "kind": "equivalent", "version": "9.2.19", "label": "9.2.19", "title": "在 pg_dump 中，永不转储范围构造函数", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d5bf8efc77acb573dcdcc234a2efdfd482bff1f0075ec509ee7c8662fb75e952"}, "url": "/docs/compare/?release=9.2.19#9.2.19-b1843c09564d1b03", "source_url": "/docs/release/9.2.19/#id-1.11.6.10.5"}]}, {"id": "9.4.10-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.4.10/#id-1.11.6.21.5", "source_hash": "2996780c666d4ac7f291aae339067028f0b3e25d19845a00e5c1ee7f347eb6b8", "section_path": ["变更"], "commit_groups": [], "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": [], "source_commits": [], "source_entry_id": "9.4.10/changes/026", "db_id": "95a5bd12885de7f441144ce2c9527398", "patch_ids": [], "statement_hash": "cc129e42363d4b76d77a04575b50b11e577ea99eb260c4e34c9e6a17e9b0fb1a", "relations": [{"rule": 2, "type": "equivalent", "target": "2113e3ca11fc4e23dbedd995bafef047", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cc129e42363d4b76d77a04575b50b11e577ea99eb260c4e34c9e6a17e9b0fb1a"}}, {"rule": 2, "type": "equivalent", "target": "76feb8e100587752206df4baba988197", "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.4.10", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "76feb8e100587752206df4baba988197", "kind": "equivalent", "version": "9.6.1", "label": "9.6.1", "title": "在 pg_xlogdump 中，使用 --follow 选项时重试打开新的 WAL 段", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cc129e42363d4b76d77a04575b50b11e577ea99eb260c4e34c9e6a17e9b0fb1a"}, "url": "/docs/compare/?release=9.6.1#9.6.1-3588338c44b471b3", "source_url": "/docs/release/9.6.1/#id-1.11.6.28.5"}, {"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": "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.4.10-14225ec6a99c2588", "cves": [], "html": "<p>修复 <span>pg_xlogdump</span> 处理以跨越多页的续页记录开头的 WAL 文件的问题（Pavan Deolasee）</p>", "text": "修复 pg_xlogdump 处理以跨越多页的续页记录开头的 WAL 文件的问题（Pavan Deolasee）", "title": "修复 pg_xlogdump 处理以跨越多页的续页记录开头的 WAL 文件的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.4.10/#id-1.11.6.21.5", "source_hash": "0fb2a5a90a1cc69987d8ad5d6baef6c01e097ff1740c1fd5cc2605096f41ea00", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix pg_xlogdump to cope with a WAL file that begins with a continuation record spanning more than one page (Pavan Deolasee)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.10/changes/027", "db_id": "1fa1b083505cca8a3abe727a733bca7e", "patch_ids": [], "statement_hash": "f88ce84ac85d4dcb3931362d27e57890b59c0d11bf42aa62c5b38af39319db94", "relations": [{"rule": 2, "type": "equivalent", "target": "191b24290bddfb26a1b9fe0a19e62b1f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f88ce84ac85d4dcb3931362d27e57890b59c0d11bf42aa62c5b38af39319db94"}}, {"rule": 2, "type": "equivalent", "target": "3f77b1204e9ac32cd41ef7bc2b0596c7", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f88ce84ac85d4dcb3931362d27e57890b59c0d11bf42aa62c5b38af39319db94"}}], "version": "9.4.10", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "191b24290bddfb26a1b9fe0a19e62b1f", "kind": "equivalent", "version": "9.5.5", "label": "9.5.5", "title": "修复 pg_xlogdump 处理以跨越多页的续页记录开头的 WAL 文件的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f88ce84ac85d4dcb3931362d27e57890b59c0d11bf42aa62c5b38af39319db94"}, "url": "/docs/compare/?release=9.5.5#9.5.5-14225ec6a99c2588", "source_url": "/docs/release/9.5.5/#id-1.11.6.25.5"}, {"db_id": "3f77b1204e9ac32cd41ef7bc2b0596c7", "kind": "equivalent", "version": "9.3.15", "label": "9.3.15", "title": "修复 pg_xlogdump 处理以跨越多页的续页记录开头的 WAL 文件的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f88ce84ac85d4dcb3931362d27e57890b59c0d11bf42aa62c5b38af39319db94"}, "url": "/docs/compare/?release=9.3.15#9.3.15-14225ec6a99c2588", "source_url": "/docs/release/9.3.15/#id-1.11.6.15.5"}]}, {"id": "9.4.10-d0b8f3d483f1e3cb", "cves": [], "html": "<p>修复 <code>contrib/pg_buffercache</code> 在 <code>shared_buffers</code> 超过 256GB 时的工作问题（KaiGai Kohei）</p>", "text": "修复 contrib/pg_buffercache 在 shared_buffers 超过 256GB 时的工作问题（KaiGai Kohei）", "title": "修复 contrib/pg_buffercache 在 shared_buffers 超过 256GB 时的工作问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.4.10/#id-1.11.6.21.5", "source_hash": "e2a4377d934609315789c11539c857491c70d3395f128d1512153b130735d911", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix contrib/pg_buffercache to work when shared_buffers exceeds 256GB (KaiGai Kohei)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.10/changes/028", "db_id": "aa8db93079c150b4f674cbe90a8583b5", "patch_ids": [], "statement_hash": "1c050e95e9395c824e4b1d706bdc2e9831189d8dba1e289502414c97dfebeebd", "relations": [{"rule": 2, "type": "equivalent", "target": "c2d6cc68ae58ef2c19e6324fe66e4d36", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1c050e95e9395c824e4b1d706bdc2e9831189d8dba1e289502414c97dfebeebd"}}], "version": "9.4.10", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "c2d6cc68ae58ef2c19e6324fe66e4d36", "kind": "equivalent", "version": "9.5.5", "label": "9.5.5", "title": "修复 contrib/pg_buffercache 在 shared_buffers 超过 256GB 时的工作问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1c050e95e9395c824e4b1d706bdc2e9831189d8dba1e289502414c97dfebeebd"}, "url": "/docs/compare/?release=9.5.5#9.5.5-d0b8f3d483f1e3cb", "source_url": "/docs/release/9.5.5/#id-1.11.6.25.5"}]}, {"id": "9.4.10-2090082319887590", "cves": [], "html": "<p>修复 <code>contrib/intarray/bench/bench.pl</code>，使其在给定 <code>-e</code> 选项时打印它执行的 <code>EXPLAIN</code> 的结果（Daniel Gustafsson）</p>", "text": "修复 contrib/intarray/bench/bench.pl，使其在给定 -e 选项时打印它执行的 EXPLAIN 的结果（Daniel Gustafsson）", "title": "修复 contrib/intarray/bench/bench.pl，使其在给定 -e 选项时打印它执行的 EXPLAIN 的结果", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.4.10/#id-1.11.6.21.5", "source_hash": "7b5f586fbf91b0245f7f87535c542fd871ecb13a658614c489d8bd2662439f8f", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix contrib/intarray/bench/bench.pl to print the results of the EXPLAIN it does when given the -e option (Daniel Gustafsson)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.10/changes/029", "db_id": "f7a1ae4f312b1995da02acf347333172", "patch_ids": [], "statement_hash": "9420134ff7c10c51247f87cdec5ac3767f018ff424db34d2044c3161fa4ef0af", "relations": [{"rule": 2, "type": "equivalent", "target": "0afe03d9c13386818a87770d67e74516", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9420134ff7c10c51247f87cdec5ac3767f018ff424db34d2044c3161fa4ef0af"}}, {"rule": 2, "type": "equivalent", "target": "16bfdd1ebb9bc5431be3dd0810325ab0", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9420134ff7c10c51247f87cdec5ac3767f018ff424db34d2044c3161fa4ef0af"}}, {"rule": 2, "type": "equivalent", "target": "8b5f7f4d86e14acc040472393303f9e8", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9420134ff7c10c51247f87cdec5ac3767f018ff424db34d2044c3161fa4ef0af"}}, {"rule": 2, "type": "equivalent", "target": "afd918ad19c19455b21959aadd0fa8d5", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9420134ff7c10c51247f87cdec5ac3767f018ff424db34d2044c3161fa4ef0af"}}], "version": "9.4.10", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "8b5f7f4d86e14acc040472393303f9e8", "kind": "equivalent", "version": "9.5.5", "label": "9.5.5", "title": "修复 contrib/intarray/bench/bench.pl，使其在给定 -e 选项时打印它执行的 EXPLAIN 的结果", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9420134ff7c10c51247f87cdec5ac3767f018ff424db34d2044c3161fa4ef0af"}, "url": "/docs/compare/?release=9.5.5#9.5.5-2090082319887590", "source_url": "/docs/release/9.5.5/#id-1.11.6.25.5"}, {"db_id": "0afe03d9c13386818a87770d67e74516", "kind": "equivalent", "version": "9.3.15", "label": "9.3.15", "title": "修复 contrib/intarray/bench/bench.pl，使其在给定 -e 选项时打印它执行的 EXPLAIN 的结果", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9420134ff7c10c51247f87cdec5ac3767f018ff424db34d2044c3161fa4ef0af"}, "url": "/docs/compare/?release=9.3.15#9.3.15-2090082319887590", "source_url": "/docs/release/9.3.15/#id-1.11.6.15.5"}, {"db_id": "16bfdd1ebb9bc5431be3dd0810325ab0", "kind": "equivalent", "version": "9.2.19", "label": "9.2.19", "title": "修复 contrib/intarray/bench/bench.pl，使其在给定 -e 选项时打印它执行的 EXPLAIN 的结果", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9420134ff7c10c51247f87cdec5ac3767f018ff424db34d2044c3161fa4ef0af"}, "url": "/docs/compare/?release=9.2.19#9.2.19-2090082319887590", "source_url": "/docs/release/9.2.19/#id-1.11.6.10.5"}, {"db_id": "afd918ad19c19455b21959aadd0fa8d5", "kind": "equivalent", "version": "9.1.24", "label": "9.1.24", "title": "修复 contrib/intarray/bench/bench.pl，使其在给定 -e 选项时打印它执行的 EXPLAIN 的结果", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9420134ff7c10c51247f87cdec5ac3767f018ff424db34d2044c3161fa4ef0af"}, "url": "/docs/compare/?release=9.1.24#9.1.24-2090082319887590", "source_url": "/docs/release/9.1.24/#id-1.11.6.5.6"}]}, {"id": "9.4.10-27c5a4cb650104a9", "cves": [], "html": "<p>安装 TAP 测试基础设施，使其可用于扩展测试（Craig Ringer）</p>\n<p>当 <span>PostgreSQL</span> 配置了 <code>--enable-tap-tests</code> 时，<span>“<span>make install</span>”</span> 现在会把 TAP 测试的 Perl 支持文件安装到 PGXS 能找到的位置。这允许非核心扩展使用 <code>$(prove_check)</code> 而无需额外测试。</p>", "text": "安装 TAP 测试基础设施，使其可用于扩展测试（Craig Ringer） 当 PostgreSQL 配置了 --enable-tap-tests 时，“make install” 现在会把 TAP 测试的 Perl 支持文件安装到 PGXS 能找到的位置。这允许非核心扩展使用 $(prove_check) 而无需额外测试。", "title": "安装 TAP 测试基础设施，使其可用于扩展测试", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.4.10/#id-1.11.6.21.5", "source_hash": "140a531da2edbeefd1d1ac5111977d18179465a6dac1a4dc661effcf54bef501", "section_path": ["变更"], "commit_groups": [], "identity_text": "Install TAP test infrastructure so that it's available for extension testing (Craig Ringer) When PostgreSQL has been configured with --enable-tap-tests, make install will now install the Perl support files for TAP testing where PGXS can find them. This allows non-core extensions to use $(prove_check) without extra tests.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.10/changes/030", "db_id": "668ed2d59fbe6ad19562e96c88dbf687", "patch_ids": [], "statement_hash": "625aad3af2feb62c0a0c916776661c7e453afe99ade993e9e7d626d3ba5058ee", "relations": [{"rule": 2, "type": "equivalent", "target": "5b9e9aae0abacb5759a1671bf37135ce", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "625aad3af2feb62c0a0c916776661c7e453afe99ade993e9e7d626d3ba5058ee"}}], "version": "9.4.10", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "5b9e9aae0abacb5759a1671bf37135ce", "kind": "equivalent", "version": "9.5.5", "label": "9.5.5", "title": "安装 TAP 测试基础设施，使其可用于扩展测试", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "625aad3af2feb62c0a0c916776661c7e453afe99ade993e9e7d626d3ba5058ee"}, "url": "/docs/compare/?release=9.5.5#9.5.5-27c5a4cb650104a9", "source_url": "/docs/release/9.5.5/#id-1.11.6.25.5"}]}, {"id": "9.4.10-15042ddf0ec2f0aa", "cves": [], "html": "<p>在 MSVC 构建中，把 <span>pg_recvlogical</span> 包含在仅客户端安装中（MauMau）</p>", "text": "在 MSVC 构建中，把 pg_recvlogical 包含在仅客户端安装中（MauMau）", "title": "在 MSVC 构建中，把 pg_recvlogical 包含在仅客户端安装中", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.4.10/#id-1.11.6.21.5", "source_hash": "ead0062b897dcff75341d56a03e7e0c4f99766a20a790afd8e3b631a75a5ddfd", "section_path": ["变更"], "commit_groups": [], "identity_text": "In MSVC builds, include pg_recvlogical in a client-only installation (MauMau)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.10/changes/031", "db_id": "96a28da5b6064a286edb38bee738a473", "patch_ids": [], "statement_hash": "65ad53d99cf7be8c24c2ebbd72b485de5d1f4dacf7b5887ff62119b6439cf7fc", "relations": [{"rule": 2, "type": "equivalent", "target": "40ec45c35752459021ff63f1eab808bd", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "65ad53d99cf7be8c24c2ebbd72b485de5d1f4dacf7b5887ff62119b6439cf7fc"}}], "version": "9.4.10", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "40ec45c35752459021ff63f1eab808bd", "kind": "equivalent", "version": "9.5.5", "label": "9.5.5", "title": "在 MSVC 构建中，把 pg_recvlogical 包含在仅客户端安装中", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "65ad53d99cf7be8c24c2ebbd72b485de5d1f4dacf7b5887ff62119b6439cf7fc"}, "url": "/docs/compare/?release=9.5.5#9.5.5-15042ddf0ec2f0aa", "source_url": "/docs/release/9.5.5/#id-1.11.6.25.5"}]}, {"id": "9.4.10-061d5c5efc8ef047", "cves": [], "html": "<p>更新 Windows 时区映射，以识别较新 Windows 版本中新增的一些时区名称（Michael Paquier）</p>", "text": "更新 Windows 时区映射，以识别较新 Windows 版本中新增的一些时区名称（Michael Paquier）", "title": "更新 Windows 时区映射，以识别较新 Windows 版本中新增的一些时区名称", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.4.10/#id-1.11.6.21.5", "source_hash": "556fb70f9bbe200c607d7189b978f1d7791f7bc6d09e3559f9845da4dcdfc30d", "section_path": ["变更"], "commit_groups": [], "identity_text": "Update Windows time zone mapping to recognize some time zone names added in recent Windows versions (Michael Paquier)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.10/changes/032", "db_id": "303b126cbdf7b2f603b153bd85b9ec15", "patch_ids": [], "statement_hash": "a5f2e61a4e81589849f2584aebebae6a6dc61e2d4a60776b2c13d59549eb9f02", "relations": [{"rule": 2, "type": "equivalent", "target": "01222902cd56ceb67b87f9da8850094c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a5f2e61a4e81589849f2584aebebae6a6dc61e2d4a60776b2c13d59549eb9f02"}}, {"rule": 2, "type": "equivalent", "target": "32cb494f8b870eb0a9738a2a41d404ad", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a5f2e61a4e81589849f2584aebebae6a6dc61e2d4a60776b2c13d59549eb9f02"}}, {"rule": 2, "type": "equivalent", "target": "f895fb7f193e14fd82c57cfa43eaaddd", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a5f2e61a4e81589849f2584aebebae6a6dc61e2d4a60776b2c13d59549eb9f02"}}], "version": "9.4.10", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "01222902cd56ceb67b87f9da8850094c", "kind": "equivalent", "version": "9.5.5", "label": "9.5.5", "title": "更新 Windows 时区映射，以识别较新 Windows 版本中新增的一些时区名称", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a5f2e61a4e81589849f2584aebebae6a6dc61e2d4a60776b2c13d59549eb9f02"}, "url": "/docs/compare/?release=9.5.5#9.5.5-061d5c5efc8ef047", "source_url": "/docs/release/9.5.5/#id-1.11.6.25.5"}, {"db_id": "f895fb7f193e14fd82c57cfa43eaaddd", "kind": "equivalent", "version": "9.3.15", "label": "9.3.15", "title": "更新 Windows 时区映射，以识别较新 Windows 版本中新增的一些时区名称", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a5f2e61a4e81589849f2584aebebae6a6dc61e2d4a60776b2c13d59549eb9f02"}, "url": "/docs/compare/?release=9.3.15#9.3.15-061d5c5efc8ef047", "source_url": "/docs/release/9.3.15/#id-1.11.6.15.5"}, {"db_id": "32cb494f8b870eb0a9738a2a41d404ad", "kind": "equivalent", "version": "9.2.19", "label": "9.2.19", "title": "更新 Windows 时区映射，以识别较新 Windows 版本中新增的一些时区名称", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a5f2e61a4e81589849f2584aebebae6a6dc61e2d4a60776b2c13d59549eb9f02"}, "url": "/docs/compare/?release=9.2.19#9.2.19-061d5c5efc8ef047", "source_url": "/docs/release/9.2.19/#id-1.11.6.10.5"}]}, {"id": "9.4.10-08cca64336ed7f30", "cves": [], "html": "<p>防止已过时的动态时区缩写失效（Tom Lane）</p>\n<p>如果动态时区缩写与所引用时区中的任何条目都不匹配，就把它视为等效于该时区名称。这避免了当 IANA 从其时区数据库中移除缩写时出现意外失败——他们在 <span>tzdata</span> 2016f 版中就这样做过，而且将来可能再次这样做。后果不仅限于无法识别单个缩写；任何不匹配都会导致 <code>pg_timezone_abbrevs</code> 视图完全失败。</p>", "text": "防止已过时的动态时区缩写失效（Tom Lane） 如果动态时区缩写与所引用时区中的任何条目都不匹配，就把它视为等效于该时区名称。这避免了当 IANA 从其时区数据库中移除缩写时出现意外失败——他们在 tzdata 2016f 版中就这样做过，而且将来可能再次这样做。后果不仅限于无法识别单个缩写；任何不匹配都会导致 pg_timezone_abbrevs 视图完全失败。", "title": "防止已过时的动态时区缩写失效", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.4.10/#id-1.11.6.21.5", "source_hash": "a2097fca9617b10e9fb35371bfb26fcbbcfcb50eeb5dfdcbb87ef9b699150ed6", "section_path": ["变更"], "commit_groups": [], "identity_text": "Prevent failure of obsolete dynamic time zone abbreviations (Tom Lane) If a dynamic time zone abbreviation does not match any entry in the referenced time zone, treat it as equivalent to the time zone name. This avoids unexpected failures when IANA removes abbreviations from their time zone database, as they did in tzdata release 2016f and seem likely to do again in the future. The consequences were not limited to not recognizing the individual abbreviation; any mismatch caused the pg_timezone_abbrevs view to fail altogether.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.10/changes/033", "db_id": "dc1afb1d01533caa8aae0cf843da733b", "patch_ids": [], "statement_hash": "35d45066f14462f4493102a420364b5089af97901d4244fc255bdedf7fa35d59", "relations": [{"rule": 2, "type": "equivalent", "target": "195a934a80213ad9d10533d9ec6910bb", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "35d45066f14462f4493102a420364b5089af97901d4244fc255bdedf7fa35d59"}}, {"rule": 2, "type": "equivalent", "target": "347843adccf78436c54349829d70ac0e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "35d45066f14462f4493102a420364b5089af97901d4244fc255bdedf7fa35d59"}}, {"rule": 2, "type": "equivalent", "target": "81013ca3e28e75920b95bb9d099b8774", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "35d45066f14462f4493102a420364b5089af97901d4244fc255bdedf7fa35d59"}}, {"rule": 2, "type": "equivalent", "target": "edf77d6193d7ad0c8b055bfe401a7729", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "35d45066f14462f4493102a420364b5089af97901d4244fc255bdedf7fa35d59"}}], "version": "9.4.10", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "edf77d6193d7ad0c8b055bfe401a7729", "kind": "equivalent", "version": "9.5.5", "label": "9.5.5", "title": "防止已过时的动态时区缩写失效", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "35d45066f14462f4493102a420364b5089af97901d4244fc255bdedf7fa35d59"}, "url": "/docs/compare/?release=9.5.5#9.5.5-08cca64336ed7f30", "source_url": "/docs/release/9.5.5/#id-1.11.6.25.5"}, {"db_id": "81013ca3e28e75920b95bb9d099b8774", "kind": "equivalent", "version": "9.3.15", "label": "9.3.15", "title": "防止已过时的动态时区缩写失效", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "35d45066f14462f4493102a420364b5089af97901d4244fc255bdedf7fa35d59"}, "url": "/docs/compare/?release=9.3.15#9.3.15-08cca64336ed7f30", "source_url": "/docs/release/9.3.15/#id-1.11.6.15.5"}, {"db_id": "195a934a80213ad9d10533d9ec6910bb", "kind": "equivalent", "version": "9.2.19", "label": "9.2.19", "title": "防止已过时的动态时区缩写失效", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "35d45066f14462f4493102a420364b5089af97901d4244fc255bdedf7fa35d59"}, "url": "/docs/compare/?release=9.2.19#9.2.19-08cca64336ed7f30", "source_url": "/docs/release/9.2.19/#id-1.11.6.10.5"}, {"db_id": "347843adccf78436c54349829d70ac0e", "kind": "equivalent", "version": "9.1.24", "label": "9.1.24", "title": "防止已过时的动态时区缩写失效", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "35d45066f14462f4493102a420364b5089af97901d4244fc255bdedf7fa35d59"}, "url": "/docs/compare/?release=9.1.24#9.1.24-08cca64336ed7f30", "source_url": "/docs/release/9.1.24/#id-1.11.6.5.6"}]}, {"id": "9.4.10-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.4.10/#id-1.11.6.21.5", "source_hash": "5d876926e92fe088eeeeaa314b9c7614b9d93ea3fe45dee46c9c7d6b75e45bde", "section_path": ["变更"], "commit_groups": [], "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": [], "source_commits": [], "source_entry_id": "9.4.10/changes/034", "db_id": "22efdf8d456fcfa0566c2bec71378820", "patch_ids": [], "statement_hash": "0cb45bb3cd4941ccdd512f55ef1911c539dd4baf115c1558d9c9521d14beb8fc", "relations": [{"rule": 2, "type": "equivalent", "target": "0beb84d0b5ea7d442a7e372ee1f44a0f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0cb45bb3cd4941ccdd512f55ef1911c539dd4baf115c1558d9c9521d14beb8fc"}}, {"rule": 2, "type": "equivalent", "target": "48ce47c9c15ba40810e3bf5ec621c6e2", "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.4.10", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "48ce47c9c15ba40810e3bf5ec621c6e2", "kind": "equivalent", "version": "9.6.1", "label": "9.6.1", "title": "更新时区数据文件到 tzdata 版本 2016h，涉及巴勒斯坦和土耳其的夏令时法规变更，加上土耳其和俄罗斯一些地区的历史修正。南极洲、前苏联和斯里兰卡的一些时区改用数字缩写。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0cb45bb3cd4941ccdd512f55ef1911c539dd4baf115c1558d9c9521d14beb8fc"}, "url": "/docs/compare/?release=9.6.1#9.6.1-6e227d3e50c92407", "source_url": "/docs/release/9.6.1/#id-1.11.6.28.5"}, {"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": "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": 34}, {"key": "feature", "label": "新功能", "count": 0}, {"key": "bugfix", "label": "BUG 修复", "count": 18}, {"key": "security", "label": "安全相关", "count": 0}, {"key": "performance", "label": "性能改进", "count": 0}, {"key": "compatibility", "label": "兼容性变化", "count": 0}, {"key": "improvement", "label": "其他改进", "count": 16}], "total": 34, "release_count": 1, "cross_major": false, "cve_count": 0, "cves": [], "cve_available": true, "remaining_cves": [], "security_regressions": [], "warnings": [], "candidate_count": 34, "already_in_source_count": 0, "duplicate_count": 0, "excluded_count": 0, "exclusions": [], "source_as_of": "2026-09-26", "security_as_of": "2026-09-26"}