{"format": 1, "mode": "release", "from_release": null, "to_release": {"date": "2017-02-09", "build": "9.6.2", "major": "9.6", "minor": 2, "manual": "9.6", "status": "stable", "doc_git": "", "version": "9.6.2", "eol_date": "2021-11-11", "date_text": "2017-02-09", "supported": false, "manual_url": "/docs/9.6/release-9-6-2.html", "source_url": "/docs/release/9.6.2/", "entry_count": 76, "placeholder": false, "content_hash": "7b59db928d00a931328beba6bb5b415e870641fc880f39fd06d1486a93f667f0", "manual_build": "9.6.24", "source_as_of": "", "changes_count": 76, "doc_loaded_at": "2026-09-26T02:56:43.973460", "migration_html": "<p>对于运行 9.6.X 的用户，不需要转储/恢复。</p>\n<p>不过，如果你的安装受到下面第一条变更日志条目所述 bug 的影响，更新之后你可能需要采取行动修复损坏的索引。</p>\n<p>另外，如果你是从 9.6.1 之前的版本升级，参见<a href=\"/docs/9.6/release-9-6-1.html\" title=\"E.24. 版本 9.6.1\">第 E.24 节</a>。</p>", "compatibility_count": 0, "label": "9.6.2", "status_label": "历史版本", "eol": "2021-11-11", "age_days": 3520, "support_days": -1784}, "groups": [{"date": "2017-02-09", "build": "9.6.2", "major": "9.6", "minor": 2, "manual": "9.6", "status": "stable", "doc_git": "", "version": "9.6.2", "eol_date": "2021-11-11", "date_text": "2017-02-09", "supported": false, "manual_url": "/docs/9.6/release-9-6-2.html", "source_url": "/docs/release/9.6.2/", "entry_count": 76, "placeholder": false, "content_hash": "7b59db928d00a931328beba6bb5b415e870641fc880f39fd06d1486a93f667f0", "manual_build": "9.6.24", "source_as_of": "", "changes_count": 76, "doc_loaded_at": "2026-09-26T02:56:43.973460", "migration_html": "<p>对于运行 9.6.X 的用户，不需要转储/恢复。</p>\n<p>不过，如果你的安装受到下面第一条变更日志条目所述 bug 的影响，更新之后你可能需要采取行动修复损坏的索引。</p>\n<p>另外，如果你是从 9.6.1 之前的版本升级，参见<a href=\"/docs/9.6/release-9-6-1.html\" title=\"E.24. 版本 9.6.1\">第 E.24 节</a>。</p>", "compatibility_count": 0, "label": "9.6.2", "status_label": "历史版本", "eol": "2021-11-11", "age_days": 3520, "support_days": -1784, "entries": [{"id": "9.6.2-21a67de54dffdc53", "cves": [], "html": "<p>修复可能导致用 <code>CREATE INDEX CONCURRENTLY</code> 构建的索引损坏的竞态条件（Pavan Deolasee、Tom Lane）</p>\n<p>如果 <code>CREATE INDEX CONCURRENTLY</code> 被用于构建一个依赖于先前未被索引的列的索引，那么与 <code>CREATE INDEX</code> 命令并发运行的事务所更新的行可能收到错误的索引条目。如果怀疑这可能已发生，最可靠的解决方案是在安装此更新后重建受影响的索引。</p>", "text": "修复可能导致用 CREATE INDEX CONCURRENTLY 构建的索引损坏的竞态条件（Pavan Deolasee、Tom Lane） 如果 CREATE INDEX CONCURRENTLY 被用于构建一个依赖于先前未被索引的列的索引，那么与 CREATE INDEX 命令并发运行的事务所更新的行可能收到错误的索引条目。如果怀疑这可能已发生，最可靠的解决方案是在安装此更新后重建受影响的索引。", "title": "修复可能导致用 CREATE INDEX CONCURRENTLY 构建的索引损坏的竞态条件", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5", "source_hash": "dbca9c8427f5b5c51cba3f6b785166c0f57b264f679d927298ee5f93e2b62445", "section_path": ["变更"], "commit_groups": [["2aaec6546", "32c893c8d", "5879958e1", "7fcddbdd0", "bcd7b47c2", "e935696f4"]], "identity_text": "Fix a race condition that could cause indexes built with CREATE INDEX CONCURRENTLY to be corrupt (Pavan Deolasee, Tom Lane) If CREATE INDEX CONCURRENTLY was used to build an index that depends on a column not previously indexed, then rows updated by transactions that ran concurrently with the CREATE INDEX command could have received incorrect index entries. If you suspect this may have happened, the most reliable solution is to rebuild affected indexes after installing this update.", "commit_aliases": ["2aaec6546", "32c893c8d", "5879958e1", "7fcddbdd0", "bcd7b47c2", "e935696f4"], "source_commits": ["7fcddbdd0"], "source_entry_id": "9.6.2/changes/001", "db_id": "1cf1b386fe96749b60daea1d10f070a2", "patch_ids": ["c49860c211a323c1d6a6db1b9ce8eaba"], "statement_hash": "e8db4e9090b0f69fecdfe14553ed600263da9d0363101942b7601a33d19b0ce1", "relations": [{"rule": 2, "type": "equivalent", "target": "80f05bec188e07b7d3f6a0b6791679fc", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e8db4e9090b0f69fecdfe14553ed600263da9d0363101942b7601a33d19b0ce1"}}, {"rule": 2, "type": "equivalent", "target": "83bfe86923226dd4e0badea659d093d4", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e8db4e9090b0f69fecdfe14553ed600263da9d0363101942b7601a33d19b0ce1"}}, {"rule": 2, "type": "equivalent", "target": "da451e693368b905282c3421d049ca20", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e8db4e9090b0f69fecdfe14553ed600263da9d0363101942b7601a33d19b0ce1"}}, {"rule": 2, "type": "equivalent", "target": "f3c2b62e07edee730ed0d25e17fadc66", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e8db4e9090b0f69fecdfe14553ed600263da9d0363101942b7601a33d19b0ce1"}}], "version": "9.6.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "f3c2b62e07edee730ed0d25e17fadc66", "kind": "equivalent", "version": "9.5.6", "label": "9.5.6", "title": "修复可能导致用 CREATE INDEX CONCURRENTLY 构建的索引损坏的竞态条件", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e8db4e9090b0f69fecdfe14553ed600263da9d0363101942b7601a33d19b0ce1"}, "url": "/docs/compare/?release=9.5.6#9.5.6-21a67de54dffdc53", "source_url": "/docs/release/9.5.6/#id-1.11.6.24.5"}, {"db_id": "da451e693368b905282c3421d049ca20", "kind": "equivalent", "version": "9.4.11", "label": "9.4.11", "title": "修复可能导致用 CREATE INDEX CONCURRENTLY 构建的索引损坏的竞态条件", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e8db4e9090b0f69fecdfe14553ed600263da9d0363101942b7601a33d19b0ce1"}, "url": "/docs/compare/?release=9.4.11#9.4.11-21a67de54dffdc53", "source_url": "/docs/release/9.4.11/#id-1.11.6.20.5"}, {"db_id": "80f05bec188e07b7d3f6a0b6791679fc", "kind": "equivalent", "version": "9.3.16", "label": "9.3.16", "title": "修复可能导致用 CREATE INDEX CONCURRENTLY 构建的索引损坏的竞态条件", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e8db4e9090b0f69fecdfe14553ed600263da9d0363101942b7601a33d19b0ce1"}, "url": "/docs/compare/?release=9.3.16#9.3.16-21a67de54dffdc53", "source_url": "/docs/release/9.3.16/#id-1.11.6.14.5"}, {"db_id": "83bfe86923226dd4e0badea659d093d4", "kind": "equivalent", "version": "9.2.20", "label": "9.2.20", "title": "修复可能导致用 CREATE INDEX CONCURRENTLY 构建的索引损坏的竞态条件", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e8db4e9090b0f69fecdfe14553ed600263da9d0363101942b7601a33d19b0ce1"}, "url": "/docs/compare/?release=9.2.20#9.2.20-21a67de54dffdc53", "source_url": "/docs/release/9.2.20/#id-1.11.6.9.5"}]}, {"id": "9.6.2-f5e00b652c630d9b", "cves": [], "html": "<p>确保用于目录扫描的特殊快照不被过早的数据修剪失效（Tom Lane）</p>\n<p>后端在通告其最旧 xmin 时没有考虑这个快照，可能允许并发清理操作移除仍需要的数据。这导致 <span>“<span>cache lookup failed for relation 1255</span>”</span> 之类的瞬态失败。</p>", "text": "确保用于目录扫描的特殊快照不被过早的数据修剪失效（Tom Lane） 后端在通告其最旧 xmin 时没有考虑这个快照，可能允许并发清理操作移除仍需要的数据。这导致 “cache lookup failed for relation 1255” 之类的瞬态失败。", "title": "确保用于目录扫描的特殊快照不被过早的数据修剪失效", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5", "source_hash": "3bef415fa5ccbf915d8ae9f08c701986c6ff5d222a1ceeb57b883dfdbcf93451", "section_path": ["变更"], "commit_groups": [["0bc3ed98c", "3e844a34b", "8aa3e4751", "ffaa44cb5"]], "identity_text": "Ensure that the special snapshot used for catalog scans is not invalidated by premature data pruning (Tom Lane) Backends failed to account for this snapshot when advertising their oldest xmin, potentially allowing concurrent vacuuming operations to remove data that was still needed. This led to transient failures along the lines of cache lookup failed for relation 1255.", "commit_aliases": ["0bc3ed98c", "3e844a34b", "8aa3e4751", "ffaa44cb5"], "source_commits": ["8aa3e4751"], "source_entry_id": "9.6.2/changes/002", "db_id": "3b03ab6a4874e92d5ae101ac6f8f7548", "patch_ids": ["0163959fe392ffc55ca42a3101c1513d"], "statement_hash": "aa692793722eabd5fb2954782e575316ccb8a62fb831592f208c22d47e957c9a", "relations": [{"rule": 2, "type": "equivalent", "target": "2c84c10883d4291699453f586c96335b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "aa692793722eabd5fb2954782e575316ccb8a62fb831592f208c22d47e957c9a"}}, {"rule": 2, "type": "equivalent", "target": "7932849db1ec2230e24032f39e06376e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "aa692793722eabd5fb2954782e575316ccb8a62fb831592f208c22d47e957c9a"}}], "version": "9.6.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "2c84c10883d4291699453f586c96335b", "kind": "equivalent", "version": "9.5.6", "label": "9.5.6", "title": "确保用于目录扫描的特殊快照不被过早的数据修剪失效", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "aa692793722eabd5fb2954782e575316ccb8a62fb831592f208c22d47e957c9a"}, "url": "/docs/compare/?release=9.5.6#9.5.6-f5e00b652c630d9b", "source_url": "/docs/release/9.5.6/#id-1.11.6.24.5"}, {"db_id": "7932849db1ec2230e24032f39e06376e", "kind": "equivalent", "version": "9.4.11", "label": "9.4.11", "title": "确保用于目录扫描的特殊快照不被过早的数据修剪失效", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "aa692793722eabd5fb2954782e575316ccb8a62fb831592f208c22d47e957c9a"}, "url": "/docs/compare/?release=9.4.11#9.4.11-f5e00b652c630d9b", "source_url": "/docs/release/9.4.11/#id-1.11.6.20.5"}]}, {"id": "9.6.2-164ae811ad46fc00", "cves": [], "html": "<p>修复 BRIN 索引不正确的 WAL 记录（Kuntal Ghosh）</p>\n<p>把索引元组移动到不同页时为 BRIN <span>“<span>revmap</span>”</span> 页发出的 WAL 记录不正确。重放会使索引的相关部分失效，迫使它重新计算。</p>", "text": "修复 BRIN 索引不正确的 WAL 记录（Kuntal Ghosh） 把索引元组移动到不同页时为 BRIN “revmap” 页发出的 WAL 记录不正确。重放会使索引的相关部分失效，迫使它重新计算。", "title": "修复 BRIN 索引不正确的 WAL 记录", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5", "source_hash": "1d444bf8891d8584047ed3ae0e00b8bb70781dd8844fdb192b70da962d84eddf", "section_path": ["变更"], "commit_groups": [["4482c6a23", "7403561c0", "ed8e8b814"]], "identity_text": "Fix incorrect WAL logging for BRIN indexes (Kuntal Ghosh) The WAL record emitted for a BRIN revmap page when moving an index tuple to a different page was incorrect. Replay would make the related portion of the index useless, forcing it to be recomputed.", "commit_aliases": ["4482c6a23", "7403561c0", "ed8e8b814"], "source_commits": ["4482c6a23"], "source_entry_id": "9.6.2/changes/003", "db_id": "614f8054aac239ddee78333a8a6a0e63", "patch_ids": ["dd439f5852dba3656445bcdedc769197"], "statement_hash": "ddc44366f82d2af72f7ff43ac76cf53d42d9ad9ddbc9f48e855fcc9f33ecea45", "relations": [{"rule": 2, "type": "equivalent", "target": "50832b8eb58408ff2388aa5f88514e8b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ddc44366f82d2af72f7ff43ac76cf53d42d9ad9ddbc9f48e855fcc9f33ecea45"}}], "version": "9.6.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "50832b8eb58408ff2388aa5f88514e8b", "kind": "equivalent", "version": "9.5.6", "label": "9.5.6", "title": "修复 BRIN 索引不正确的 WAL 记录", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ddc44366f82d2af72f7ff43ac76cf53d42d9ad9ddbc9f48e855fcc9f33ecea45"}, "url": "/docs/compare/?release=9.5.6#9.5.6-164ae811ad46fc00", "source_url": "/docs/release/9.5.6/#id-1.11.6.24.5"}]}, {"id": "9.6.2-c73b348ba5749039", "cves": [], "html": "<p>无条件地为未记录表的 <span>“<span>init fork</span>”</span> 写 WAL 日志（Michael Paquier）</p>\n<p>此前当<a href=\"/docs/9.6/runtime-config-wal.html#GUC-WAL-LEVEL\">wal_level</a> = <code>minimum</code> 时跳过这一步，但实际上即使在这种情况下也需要它，以确保未记录表在崩溃后被正确重置为空。</p>", "text": "无条件地为未记录表的 “init fork” 写 WAL 日志（Michael Paquier） 此前当wal_level = minimum 时跳过这一步，但实际上即使在这种情况下也需要它，以确保未记录表在崩溃后被正确重置为空。", "title": "无条件地为未记录表的 “init fork” 写 WAL 日志", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5", "source_hash": "4ee537017a0378480402ec110e48eb24b23994ad67bfbd5302bb297eb24acc52", "section_path": ["变更"], "commit_groups": [["141ad6896", "1ed3c6ff9", "68e56eef6", "8e403f215", "a00ac6299", "fa0f466d5"]], "identity_text": "Unconditionally WAL-log creation of the init fork for an unlogged table (Michael Paquier) Previously, this was skipped when guc-wal-level = minimal, but actually it's necessary even in that case to ensure that the unlogged table is properly reset to empty after a crash.", "commit_aliases": ["141ad6896", "1ed3c6ff9", "68e56eef6", "8e403f215", "a00ac6299", "fa0f466d5"], "source_commits": ["1ed3c6ff9"], "source_entry_id": "9.6.2/changes/004", "db_id": "96a2ccd3484c42b56fc3124dff045bcc", "patch_ids": ["55692a89363530f2d3d53b1e055f96c7"], "statement_hash": "990d0d9a4900b3fcf84852ba2e3daa4fff8ae2a8427dc3d303961d75f4466b41", "relations": [{"rule": 2, "type": "equivalent", "target": "2debfe09e358306f7ebcf196fe79b585", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "990d0d9a4900b3fcf84852ba2e3daa4fff8ae2a8427dc3d303961d75f4466b41"}}, {"rule": 2, "type": "equivalent", "target": "8800fa89cd7d4ca0f42ba417a524734e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "990d0d9a4900b3fcf84852ba2e3daa4fff8ae2a8427dc3d303961d75f4466b41"}}, {"rule": 2, "type": "equivalent", "target": "b750554a280b9a7fb664ae9c535c3aed", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "990d0d9a4900b3fcf84852ba2e3daa4fff8ae2a8427dc3d303961d75f4466b41"}}, {"rule": 2, "type": "equivalent", "target": "c6f68b3c5a7bedd78abd53ea623e5172", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "990d0d9a4900b3fcf84852ba2e3daa4fff8ae2a8427dc3d303961d75f4466b41"}}], "version": "9.6.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "2debfe09e358306f7ebcf196fe79b585", "kind": "equivalent", "version": "9.5.6", "label": "9.5.6", "title": "无条件地为未记录表的 “init fork” 写 WAL 日志", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "990d0d9a4900b3fcf84852ba2e3daa4fff8ae2a8427dc3d303961d75f4466b41"}, "url": "/docs/compare/?release=9.5.6#9.5.6-c73b348ba5749039", "source_url": "/docs/release/9.5.6/#id-1.11.6.24.5"}, {"db_id": "c6f68b3c5a7bedd78abd53ea623e5172", "kind": "equivalent", "version": "9.4.11", "label": "9.4.11", "title": "无条件地为未记录表的 “init fork” 写 WAL 日志", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "990d0d9a4900b3fcf84852ba2e3daa4fff8ae2a8427dc3d303961d75f4466b41"}, "url": "/docs/compare/?release=9.4.11#9.4.11-c73b348ba5749039", "source_url": "/docs/release/9.4.11/#id-1.11.6.20.5"}, {"db_id": "b750554a280b9a7fb664ae9c535c3aed", "kind": "equivalent", "version": "9.3.16", "label": "9.3.16", "title": "无条件地为未记录表的 “init fork” 写 WAL 日志", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "990d0d9a4900b3fcf84852ba2e3daa4fff8ae2a8427dc3d303961d75f4466b41"}, "url": "/docs/compare/?release=9.3.16#9.3.16-c73b348ba5749039", "source_url": "/docs/release/9.3.16/#id-1.11.6.14.5"}, {"db_id": "8800fa89cd7d4ca0f42ba417a524734e", "kind": "equivalent", "version": "9.2.20", "label": "9.2.20", "title": "无条件地为未记录表的“init fork”写 WAL 日志", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "990d0d9a4900b3fcf84852ba2e3daa4fff8ae2a8427dc3d303961d75f4466b41"}, "url": "/docs/compare/?release=9.2.20#9.2.20-dbf4362fbbfe6087", "source_url": "/docs/release/9.2.20/#id-1.11.6.9.5"}]}, {"id": "9.6.2-0f82f6bd0e8b372d", "cves": [], "html": "<p>如果统计收集器在热备期间死亡，重启它（Takayuki Tsunakawa）</p>", "text": "如果统计收集器在热备期间死亡，重启它（Takayuki Tsunakawa）", "title": "如果统计收集器在热备期间死亡，重启它", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5", "source_hash": "89a58357c241bf03507d2d9b5e3ccba4b328d1c748f636be6a934fe3cd09526d", "section_path": ["变更"], "commit_groups": [["0cbd199fd", "2be2838a7", "4a43a6244", "4a8cfbdcb", "4f714b2fd", "e927f55ff"]], "identity_text": "If the stats collector dies during hot standby, restart it (Takayuki Tsunakawa)", "commit_aliases": ["0cbd199fd", "2be2838a7", "4a43a6244", "4a8cfbdcb", "4f714b2fd", "e927f55ff"], "source_commits": ["4a43a6244"], "source_entry_id": "9.6.2/changes/005", "db_id": "de4a22008d1a7afbe4d6940986bb6745", "patch_ids": ["57a0783d5b708291fe7497eb2b209e08"], "statement_hash": "7d431ad3f15bdd3ec61c5eb2c3685529936f3395f1cfc0e6ec3399b0ea4de1c6", "relations": [{"rule": 2, "type": "equivalent", "target": "3565a145961676913ee62a2e99986cf4", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7d431ad3f15bdd3ec61c5eb2c3685529936f3395f1cfc0e6ec3399b0ea4de1c6"}}, {"rule": 2, "type": "equivalent", "target": "5cd2d2ca24fb08243155c25f7150bab8", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7d431ad3f15bdd3ec61c5eb2c3685529936f3395f1cfc0e6ec3399b0ea4de1c6"}}, {"rule": 2, "type": "equivalent", "target": "c6a9d1159620c8f9492800dea76a81e3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7d431ad3f15bdd3ec61c5eb2c3685529936f3395f1cfc0e6ec3399b0ea4de1c6"}}, {"rule": 2, "type": "equivalent", "target": "e7a331a06d5fd2e3592830e064808397", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7d431ad3f15bdd3ec61c5eb2c3685529936f3395f1cfc0e6ec3399b0ea4de1c6"}}], "version": "9.6.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "3565a145961676913ee62a2e99986cf4", "kind": "equivalent", "version": "9.5.6", "label": "9.5.6", "title": "如果统计收集器在热备期间死亡，重启它", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7d431ad3f15bdd3ec61c5eb2c3685529936f3395f1cfc0e6ec3399b0ea4de1c6"}, "url": "/docs/compare/?release=9.5.6#9.5.6-0f82f6bd0e8b372d", "source_url": "/docs/release/9.5.6/#id-1.11.6.24.5"}, {"db_id": "e7a331a06d5fd2e3592830e064808397", "kind": "equivalent", "version": "9.4.11", "label": "9.4.11", "title": "如果统计收集器在热备期间死亡，重启它", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7d431ad3f15bdd3ec61c5eb2c3685529936f3395f1cfc0e6ec3399b0ea4de1c6"}, "url": "/docs/compare/?release=9.4.11#9.4.11-0f82f6bd0e8b372d", "source_url": "/docs/release/9.4.11/#id-1.11.6.20.5"}, {"db_id": "c6a9d1159620c8f9492800dea76a81e3", "kind": "equivalent", "version": "9.3.16", "label": "9.3.16", "title": "如果统计收集器在热备期间死亡，重启它", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7d431ad3f15bdd3ec61c5eb2c3685529936f3395f1cfc0e6ec3399b0ea4de1c6"}, "url": "/docs/compare/?release=9.3.16#9.3.16-0f82f6bd0e8b372d", "source_url": "/docs/release/9.3.16/#id-1.11.6.14.5"}, {"db_id": "5cd2d2ca24fb08243155c25f7150bab8", "kind": "equivalent", "version": "9.2.20", "label": "9.2.20", "title": "如果统计收集器在热备期间死亡，重启它", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7d431ad3f15bdd3ec61c5eb2c3685529936f3395f1cfc0e6ec3399b0ea4de1c6"}, "url": "/docs/compare/?release=9.2.20#9.2.20-0f82f6bd0e8b372d", "source_url": "/docs/release/9.2.20/#id-1.11.6.9.5"}]}, {"id": "9.6.2-66e992ec17ca40d7", "cves": [], "html": "<p>确保热备反馈在备库服务器启动时启用的情况下正确工作（Ants Aasma、Craig Ringer）</p>", "text": "确保热备反馈在备库服务器启动时启用的情况下正确工作（Ants Aasma、Craig Ringer）", "title": "确保热备反馈在备库服务器启动时启用的情况下正确工作", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5", "source_hash": "dad5559309f967092d78cb3a175ce4841fd8c62fce7aa0cb2e70f3a8364f6c2f", "section_path": ["变更"], "commit_groups": [["048d44175", "800d89a98", "95d1b4145", "99289e506", "ec4b97501"]], "identity_text": "Ensure that hot standby feedback works correctly when it's enabled at standby server start (Ants Aasma, Craig Ringer)", "commit_aliases": ["048d44175", "800d89a98", "95d1b4145", "99289e506", "ec4b97501"], "source_commits": ["95d1b4145"], "source_entry_id": "9.6.2/changes/006", "db_id": "dc2b3ccb7994551d3faa9ee16a22499c", "patch_ids": ["78bcedf70cd6af583a2eb302e746c867"], "statement_hash": "e042608e385ed58c86b49db5597b0dfdbcff1de01c34ee7e67c0659540bffb18", "relations": [{"rule": 2, "type": "equivalent", "target": "48839c20206bcdefc18f38f72fd13df2", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e042608e385ed58c86b49db5597b0dfdbcff1de01c34ee7e67c0659540bffb18"}}, {"rule": 2, "type": "equivalent", "target": "bb4794f379e611c9cbe4afc5bec87747", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e042608e385ed58c86b49db5597b0dfdbcff1de01c34ee7e67c0659540bffb18"}}, {"rule": 2, "type": "equivalent", "target": "df175040bd737712b32e91bd73f38a14", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e042608e385ed58c86b49db5597b0dfdbcff1de01c34ee7e67c0659540bffb18"}}], "version": "9.6.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "48839c20206bcdefc18f38f72fd13df2", "kind": "equivalent", "version": "9.5.6", "label": "9.5.6", "title": "确保热备反馈在备库服务器启动时启用的情况下正确工作", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e042608e385ed58c86b49db5597b0dfdbcff1de01c34ee7e67c0659540bffb18"}, "url": "/docs/compare/?release=9.5.6#9.5.6-66e992ec17ca40d7", "source_url": "/docs/release/9.5.6/#id-1.11.6.24.5"}, {"db_id": "bb4794f379e611c9cbe4afc5bec87747", "kind": "equivalent", "version": "9.4.11", "label": "9.4.11", "title": "确保热备反馈在备库服务器启动时启用的情况下正确工作", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e042608e385ed58c86b49db5597b0dfdbcff1de01c34ee7e67c0659540bffb18"}, "url": "/docs/compare/?release=9.4.11#9.4.11-66e992ec17ca40d7", "source_url": "/docs/release/9.4.11/#id-1.11.6.20.5"}, {"db_id": "df175040bd737712b32e91bd73f38a14", "kind": "equivalent", "version": "9.3.16", "label": "9.3.16", "title": "确保热备反馈在备库服务器启动时启用的情况下正确工作", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e042608e385ed58c86b49db5597b0dfdbcff1de01c34ee7e67c0659540bffb18"}, "url": "/docs/compare/?release=9.3.16#9.3.16-66e992ec17ca40d7", "source_url": "/docs/release/9.3.16/#id-1.11.6.14.5"}]}, {"id": "9.6.2-2f1772ccd52404ad", "cves": [], "html": "<p>热备等待冲突查询时检查中断（Simon Riggs）</p>", "text": "热备等待冲突查询时检查中断（Simon Riggs）", "title": "热备等待冲突查询时检查中断", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5", "source_hash": "eafa76245b4cc2b12bc7a37de9384b541e617ffd68516f7a75ec6c11e5f81c15", "section_path": ["变更"], "commit_groups": [["15c54e836", "332068a21", "357e06128", "40b7800da", "ace2cd80a", "e8ee3d6b8"]], "identity_text": "Check for interrupts while hot standby is waiting for a conflicting query (Simon Riggs)", "commit_aliases": ["15c54e836", "332068a21", "357e06128", "40b7800da", "ace2cd80a", "e8ee3d6b8"], "source_commits": ["40b7800da"], "source_entry_id": "9.6.2/changes/007", "db_id": "904e692e04647660f143f1abbd55fb2b", "patch_ids": ["6b13d743970c9fc46abaa4b9588efab4"], "statement_hash": "1eebd16f1e1b811eb7b4029ff12f823adbbe938172d41e16ed0e7828f7f1d247", "relations": [{"rule": 2, "type": "equivalent", "target": "418ce2365b56a5159ffcc02fac0f59e1", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1eebd16f1e1b811eb7b4029ff12f823adbbe938172d41e16ed0e7828f7f1d247"}}, {"rule": 2, "type": "equivalent", "target": "d08fdcde47ec4f569bbf62c039c95924", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1eebd16f1e1b811eb7b4029ff12f823adbbe938172d41e16ed0e7828f7f1d247"}}, {"rule": 2, "type": "equivalent", "target": "d729e551b00e1e502cf2a1171df1894b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1eebd16f1e1b811eb7b4029ff12f823adbbe938172d41e16ed0e7828f7f1d247"}}, {"rule": 2, "type": "equivalent", "target": "f7eeb1dfac0116093446d208fcff1772", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1eebd16f1e1b811eb7b4029ff12f823adbbe938172d41e16ed0e7828f7f1d247"}}], "version": "9.6.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "f7eeb1dfac0116093446d208fcff1772", "kind": "equivalent", "version": "9.5.6", "label": "9.5.6", "title": "热备等待冲突查询时检查中断", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1eebd16f1e1b811eb7b4029ff12f823adbbe938172d41e16ed0e7828f7f1d247"}, "url": "/docs/compare/?release=9.5.6#9.5.6-2f1772ccd52404ad", "source_url": "/docs/release/9.5.6/#id-1.11.6.24.5"}, {"db_id": "d729e551b00e1e502cf2a1171df1894b", "kind": "equivalent", "version": "9.4.11", "label": "9.4.11", "title": "热备等待冲突查询时检查中断", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1eebd16f1e1b811eb7b4029ff12f823adbbe938172d41e16ed0e7828f7f1d247"}, "url": "/docs/compare/?release=9.4.11#9.4.11-2f1772ccd52404ad", "source_url": "/docs/release/9.4.11/#id-1.11.6.20.5"}, {"db_id": "418ce2365b56a5159ffcc02fac0f59e1", "kind": "equivalent", "version": "9.3.16", "label": "9.3.16", "title": "热备等待冲突查询时检查中断", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1eebd16f1e1b811eb7b4029ff12f823adbbe938172d41e16ed0e7828f7f1d247"}, "url": "/docs/compare/?release=9.3.16#9.3.16-2f1772ccd52404ad", "source_url": "/docs/release/9.3.16/#id-1.11.6.14.5"}, {"db_id": "d08fdcde47ec4f569bbf62c039c95924", "kind": "equivalent", "version": "9.2.20", "label": "9.2.20", "title": "热备等待冲突查询时检查中断", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1eebd16f1e1b811eb7b4029ff12f823adbbe938172d41e16ed0e7828f7f1d247"}, "url": "/docs/compare/?release=9.2.20#9.2.20-2f1772ccd52404ad", "source_url": "/docs/release/9.2.20/#id-1.11.6.9.5"}]}, {"id": "9.6.2-b47d5ae4829cde1d", "cves": [], "html": "<p>避免边界情况下自动清理启动器的不断重启（Amit Khandekar）</p>\n<p>此修复避免了自动清理名义上关闭且有一些需要冻结的表，但所有这种表都已被自动清理工作者处理时的问题。</p>", "text": "避免边界情况下自动清理启动器的不断重启（Amit Khandekar） 此修复避免了自动清理名义上关闭且有一些需要冻结的表，但所有这种表都已被自动清理工作者处理时的问题。", "title": "避免边界情况下自动清理启动器的不断重启", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5", "source_hash": "f8e9cde3962ae5bc854e039842f04403fbcea88eadc90d26433689f630f8720c", "section_path": ["变更"], "commit_groups": [["5c5788e90", "5dff230eb", "746ba76f1", "806f9b3d7", "aeaaf62aa", "c6a389792"]], "identity_text": "Avoid constantly respawning the autovacuum launcher in a corner case (Amit Khandekar) This fix avoids problems when autovacuum is nominally off and there are some tables that require freezing, but all such tables are already being processed by autovacuum workers.", "commit_aliases": ["5c5788e90", "5dff230eb", "746ba76f1", "806f9b3d7", "aeaaf62aa", "c6a389792"], "source_commits": ["746ba76f1"], "source_entry_id": "9.6.2/changes/008", "db_id": "aa38277809efab39953b106568c98bf9", "patch_ids": ["2c251d2747e2a558e5c26eaf975584df"], "statement_hash": "62f8bb047127b9e165a52f641648ca8b710730e6ff498bc962e02bc7516abd4e", "relations": [{"rule": 2, "type": "equivalent", "target": "89017e1d3ff5af35903564a49d0d91d0", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "62f8bb047127b9e165a52f641648ca8b710730e6ff498bc962e02bc7516abd4e"}}, {"rule": 2, "type": "equivalent", "target": "8a8ffdf1dacd6ab87d6692ed2bca3e52", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "62f8bb047127b9e165a52f641648ca8b710730e6ff498bc962e02bc7516abd4e"}}, {"rule": 2, "type": "equivalent", "target": "a3281c6a1a3aa069f7c670b9497931e8", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "62f8bb047127b9e165a52f641648ca8b710730e6ff498bc962e02bc7516abd4e"}}, {"rule": 2, "type": "equivalent", "target": "ccc0f6bc1bd1392b9fc1f27d5bd3588e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "62f8bb047127b9e165a52f641648ca8b710730e6ff498bc962e02bc7516abd4e"}}], "version": "9.6.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "89017e1d3ff5af35903564a49d0d91d0", "kind": "equivalent", "version": "9.5.6", "label": "9.5.6", "title": "避免边界情况下自动清理启动器的不断重启", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "62f8bb047127b9e165a52f641648ca8b710730e6ff498bc962e02bc7516abd4e"}, "url": "/docs/compare/?release=9.5.6#9.5.6-b47d5ae4829cde1d", "source_url": "/docs/release/9.5.6/#id-1.11.6.24.5"}, {"db_id": "8a8ffdf1dacd6ab87d6692ed2bca3e52", "kind": "equivalent", "version": "9.4.11", "label": "9.4.11", "title": "避免边界情况下自动清理启动器的不断重启", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "62f8bb047127b9e165a52f641648ca8b710730e6ff498bc962e02bc7516abd4e"}, "url": "/docs/compare/?release=9.4.11#9.4.11-b47d5ae4829cde1d", "source_url": "/docs/release/9.4.11/#id-1.11.6.20.5"}, {"db_id": "a3281c6a1a3aa069f7c670b9497931e8", "kind": "equivalent", "version": "9.3.16", "label": "9.3.16", "title": "避免边界情况下自动清理启动器的不断重启", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "62f8bb047127b9e165a52f641648ca8b710730e6ff498bc962e02bc7516abd4e"}, "url": "/docs/compare/?release=9.3.16#9.3.16-b47d5ae4829cde1d", "source_url": "/docs/release/9.3.16/#id-1.11.6.14.5"}, {"db_id": "ccc0f6bc1bd1392b9fc1f27d5bd3588e", "kind": "equivalent", "version": "9.2.20", "label": "9.2.20", "title": "避免边界情况下自动清理启动器的不断重启", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "62f8bb047127b9e165a52f641648ca8b710730e6ff498bc962e02bc7516abd4e"}, "url": "/docs/compare/?release=9.2.20#9.2.20-b47d5ae4829cde1d", "source_url": "/docs/release/9.2.20/#id-1.11.6.9.5"}]}, {"id": "9.6.2-8d6800ad73a388ad", "cves": [], "html": "<p>禁止把<a href=\"/docs/9.6/runtime-config-replication.html#GUC-SYNCHRONOUS-STANDBY-NAMES\">synchronous_standby_names</a>中的 <em><code>num_sync</code></em> 字段设为零（Fujii Masao）</p>\n<p>禁用同步备库的正确方式是把整个值设为空字符串。</p>", "text": "禁止把synchronous_standby_names中的 num_sync 字段设为零（Fujii Masao） 禁用同步备库的正确方式是把整个值设为空字符串。", "title": "禁止把synchronous_standby_names中的 num_sync 字段设为零", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5", "source_hash": "64082f42e4bf4ab3e8407375688d03f55b21353554738688e9c30c77ae06ddaa", "section_path": ["变更"], "commit_groups": [["6c75fb6b3", "93eb619cd"]], "identity_text": "Disallow setting the num_sync field to zero in guc-synchronous-standby-names (Fujii Masao) The correct way to disable synchronous standby is to set the whole value to an empty string.", "commit_aliases": ["6c75fb6b3", "93eb619cd"], "source_commits": ["6c75fb6b3"], "source_entry_id": "9.6.2/changes/009", "db_id": "8e8ea7b93ba9dcac332fa47e03659c83", "patch_ids": ["50f41c8601c3bf35c1b0514687c33ad4"], "statement_hash": "5f074a0d79f6e76754a212f69552e296754bff9d6e67a2f98710882a03835857", "relations": [], "version": "9.6.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.6.2-32db04441f7c9098", "cves": [], "html": "<p>不要把后台工作者进程计入用户的连接限制（David Rowley）</p>", "text": "不要把后台工作者进程计入用户的连接限制（David Rowley）", "title": "不要把后台工作者进程计入用户的连接限制", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5", "source_hash": "a2bd86b3bd480205540f90805a71a66da37154264f42fb8a402956a82d7d7415", "section_path": ["变更"], "commit_groups": [["13752743b", "f1169ab50"]], "identity_text": "Don't count background worker processes against a user's connection limit (David Rowley)", "commit_aliases": ["13752743b", "f1169ab50"], "source_commits": ["13752743b"], "source_entry_id": "9.6.2/changes/010", "db_id": "ee5af6ed0bc0b571bcc5c72c3f193773", "patch_ids": ["ddac829eebb445bff578757c6ba81a26"], "statement_hash": "f49fe6b94fa62f435d1f8e23e660c49d059bde43c85959da786a1efed3cab07f", "relations": [], "version": "9.6.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.6.2-77b3340da27d93a5", "cves": [], "html": "<p>修复扩展成员对象何时可被删除的检查（Tom Lane）</p>\n<p>扩展升级脚本应当能删除成员对象，但对序列列的序列（可能还有其他情况）这不被允许。</p>", "text": "修复扩展成员对象何时可被删除的检查（Tom Lane） 扩展升级脚本应当能删除成员对象，但对序列列的序列（可能还有其他情况）这不被允许。", "title": "修复扩展成员对象何时可被删除的检查", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5", "source_hash": "9b8cbbbfbef5dd88146881a25fa0eb8ab5496c2789fcaaf32c1c187e4a58e1cb", "section_path": ["变更"], "commit_groups": [["0cc8453ac", "182db0704", "2cbb62db1", "313786a74", "576bd360b", "a982b02a4"]], "identity_text": "Fix check for when an extension member object can be dropped (Tom Lane) Extension upgrade scripts should be able to drop member objects, but this was disallowed for serial-column sequences, and possibly other cases.", "commit_aliases": ["0cc8453ac", "182db0704", "2cbb62db1", "313786a74", "576bd360b", "a982b02a4"], "source_commits": ["0cc8453ac"], "source_entry_id": "9.6.2/changes/011", "db_id": "54c022475888431c0d41c6627d11dd7c", "patch_ids": ["1e0fbc657f2ed20429d43981cc4f0c10"], "statement_hash": "b628bcdfbd256658f9b68ca91595fd0d67a406b80c0ed57b7b1363aafe8af6a7", "relations": [{"rule": 2, "type": "equivalent", "target": "5c374ac5cee41cb051285200e880aca6", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b628bcdfbd256658f9b68ca91595fd0d67a406b80c0ed57b7b1363aafe8af6a7"}}, {"rule": 2, "type": "equivalent", "target": "90cc460b606c55a661713e42f58ddd06", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b628bcdfbd256658f9b68ca91595fd0d67a406b80c0ed57b7b1363aafe8af6a7"}}, {"rule": 2, "type": "equivalent", "target": "b2a1fd04c001ab77cd5d29af552c323a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b628bcdfbd256658f9b68ca91595fd0d67a406b80c0ed57b7b1363aafe8af6a7"}}, {"rule": 2, "type": "equivalent", "target": "f4270e9af73e1877ed538fab27b58e81", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b628bcdfbd256658f9b68ca91595fd0d67a406b80c0ed57b7b1363aafe8af6a7"}}], "version": "9.6.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "90cc460b606c55a661713e42f58ddd06", "kind": "equivalent", "version": "9.5.6", "label": "9.5.6", "title": "修复扩展成员对象何时可被删除的检查", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b628bcdfbd256658f9b68ca91595fd0d67a406b80c0ed57b7b1363aafe8af6a7"}, "url": "/docs/compare/?release=9.5.6#9.5.6-77b3340da27d93a5", "source_url": "/docs/release/9.5.6/#id-1.11.6.24.5"}, {"db_id": "f4270e9af73e1877ed538fab27b58e81", "kind": "equivalent", "version": "9.4.11", "label": "9.4.11", "title": "修复扩展成员对象何时可被删除的检查", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b628bcdfbd256658f9b68ca91595fd0d67a406b80c0ed57b7b1363aafe8af6a7"}, "url": "/docs/compare/?release=9.4.11#9.4.11-77b3340da27d93a5", "source_url": "/docs/release/9.4.11/#id-1.11.6.20.5"}, {"db_id": "5c374ac5cee41cb051285200e880aca6", "kind": "equivalent", "version": "9.3.16", "label": "9.3.16", "title": "修复扩展成员对象何时可被删除的检查", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b628bcdfbd256658f9b68ca91595fd0d67a406b80c0ed57b7b1363aafe8af6a7"}, "url": "/docs/compare/?release=9.3.16#9.3.16-77b3340da27d93a5", "source_url": "/docs/release/9.3.16/#id-1.11.6.14.5"}, {"db_id": "b2a1fd04c001ab77cd5d29af552c323a", "kind": "equivalent", "version": "9.2.20", "label": "9.2.20", "title": "修复扩展成员对象何时可被删除的检查", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b628bcdfbd256658f9b68ca91595fd0d67a406b80c0ed57b7b1363aafe8af6a7"}, "url": "/docs/compare/?release=9.2.20#9.2.20-77b3340da27d93a5", "source_url": "/docs/release/9.2.20/#id-1.11.6.9.5"}]}, {"id": "9.6.2-0382edc839a85646", "cves": [], "html": "<p>修复扩展成员对象初始权限的追踪，使其与 <code>ALTER EXTENSION ... ADD/DROP</code> 正确配合（Stephen Frost）</p>\n<p>对象被添加到扩展时的当前权限现在将被视为其默认权限；之后 <span>pg_dump</span> 运行只转储其权限的后续更改。</p>", "text": "修复扩展成员对象初始权限的追踪，使其与 ALTER EXTENSION ... ADD/DROP 正确配合（Stephen Frost） 对象被添加到扩展时的当前权限现在将被视为其默认权限；之后 pg_dump 运行只转储其权限的后续更改。", "title": "修复扩展成员对象初始权限的追踪，使其与 ALTER EXTENSION ... ADD/DROP 正确配合", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5", "source_hash": "3b1230d552d1957c238b986d84d528481ea78641eb9876a829e6e4b6b173589a", "section_path": ["变更"], "commit_groups": [["20064c0ec", "e54f75722"]], "identity_text": "Fix tracking of initial privileges for extension member objects so that it works correctly with ALTER EXTENSION ... ADD/DROP (Stephen Frost) An object's current privileges at the time it is added to the extension will now be considered its default privileges; only later changes in its privileges will be dumped by subsequent pg_dump runs.", "commit_aliases": ["20064c0ec", "e54f75722"], "source_commits": ["20064c0ec"], "source_entry_id": "9.6.2/changes/012", "db_id": "0db830fb16fff2b00eb499b7d591e80b", "patch_ids": ["59e21ecdc53806a4c2884bc9e2028bd6"], "statement_hash": "ece3c70fc7b400cb4da619b7d2c1573d86916a3a34d16a15caf768944d109a24", "relations": [], "version": "9.6.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.6.2-92e6a6e4971f8631", "cves": [], "html": "<p>确保 <code>ALTER TABLE</code> 重建索引时保留索引表空间分配（Tom Lane、Michael Paquier）</p>\n<p>此前，<a href=\"/docs/9.6/runtime-config-client.html#GUC-DEFAULT-TABLESPACE\">default_tablespace</a>的非默认设置可能导致索引损坏。</p>", "text": "确保 ALTER TABLE 重建索引时保留索引表空间分配（Tom Lane、Michael Paquier） 此前，default_tablespace的非默认设置可能导致索引损坏。", "title": "确保 ALTER TABLE 重建索引时保留索引表空间分配", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5", "source_hash": "81fdc773582bb24e321ab4f88c9389d3abfb3698cc82083b2b2be98b8c067616", "section_path": ["变更"], "commit_groups": [["05975ab0a", "15f3e0cb1", "4a5e1d370", "8f67a6c22", "bd673e8e8", "e0375d77b"]], "identity_text": "Make sure ALTER TABLE preserves index tablespace assignments when rebuilding indexes (Tom Lane, Michael Paquier) Previously, non-default settings of guc-default-tablespace could result in broken indexes.", "commit_aliases": ["05975ab0a", "15f3e0cb1", "4a5e1d370", "8f67a6c22", "bd673e8e8", "e0375d77b"], "source_commits": ["4a5e1d370"], "source_entry_id": "9.6.2/changes/013", "db_id": "8c2998b77b9aaad172f95093a387ff93", "patch_ids": ["4fecf86e77cb8a28427e89669d04c917"], "statement_hash": "644e0ac6faa01622711ab0b03fce6ea733a0a4d7fc85d337fb686a4d724c5c53", "relations": [{"rule": 2, "type": "equivalent", "target": "8e7e3ca249ae1764f1792d1243b6e38c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "644e0ac6faa01622711ab0b03fce6ea733a0a4d7fc85d337fb686a4d724c5c53"}}, {"rule": 2, "type": "equivalent", "target": "a940ace5794433517e51d947f4235130", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "644e0ac6faa01622711ab0b03fce6ea733a0a4d7fc85d337fb686a4d724c5c53"}}, {"rule": 2, "type": "equivalent", "target": "ea5a7adb4bb360e50c78a14021cb2906", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "644e0ac6faa01622711ab0b03fce6ea733a0a4d7fc85d337fb686a4d724c5c53"}}, {"rule": 2, "type": "equivalent", "target": "f3ec2ab38f376224b5a1cf410ead414e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "644e0ac6faa01622711ab0b03fce6ea733a0a4d7fc85d337fb686a4d724c5c53"}}], "version": "9.6.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "ea5a7adb4bb360e50c78a14021cb2906", "kind": "equivalent", "version": "9.5.6", "label": "9.5.6", "title": "确保 ALTER TABLE 重建索引时保留索引表空间分配", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "644e0ac6faa01622711ab0b03fce6ea733a0a4d7fc85d337fb686a4d724c5c53"}, "url": "/docs/compare/?release=9.5.6#9.5.6-92e6a6e4971f8631", "source_url": "/docs/release/9.5.6/#id-1.11.6.24.5"}, {"db_id": "a940ace5794433517e51d947f4235130", "kind": "equivalent", "version": "9.4.11", "label": "9.4.11", "title": "确保 ALTER TABLE 重建索引时保留索引表空间分配", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "644e0ac6faa01622711ab0b03fce6ea733a0a4d7fc85d337fb686a4d724c5c53"}, "url": "/docs/compare/?release=9.4.11#9.4.11-92e6a6e4971f8631", "source_url": "/docs/release/9.4.11/#id-1.11.6.20.5"}, {"db_id": "f3ec2ab38f376224b5a1cf410ead414e", "kind": "equivalent", "version": "9.3.16", "label": "9.3.16", "title": "确保 ALTER TABLE 重建索引时保留索引表空间分配", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "644e0ac6faa01622711ab0b03fce6ea733a0a4d7fc85d337fb686a4d724c5c53"}, "url": "/docs/compare/?release=9.3.16#9.3.16-92e6a6e4971f8631", "source_url": "/docs/release/9.3.16/#id-1.11.6.14.5"}, {"db_id": "8e7e3ca249ae1764f1792d1243b6e38c", "kind": "equivalent", "version": "9.2.20", "label": "9.2.20", "title": "确保 ALTER TABLE 重建索引时保留索引表空间分配", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "644e0ac6faa01622711ab0b03fce6ea733a0a4d7fc85d337fb686a4d724c5c53"}, "url": "/docs/compare/?release=9.2.20#9.2.20-92e6a6e4971f8631", "source_url": "/docs/release/9.2.20/#id-1.11.6.9.5"}]}, {"id": "9.6.2-c73a3cdcef1c3cfe", "cves": [], "html": "<p>修复用 <code>ALTER TABLE ... ALTER CONSTRAINT</code> 更改外键约束可延迟性属性时触发器函数属性的错误更新（Tom Lane）</p>\n<p>这导致之后执行外键时的奇怪失败，因为触发器在错误的时间触发。</p>", "text": "修复用 ALTER TABLE ... ALTER CONSTRAINT 更改外键约束可延迟性属性时触发器函数属性的错误更新（Tom Lane） 这导致之后执行外键时的奇怪失败，因为触发器在错误的时间触发。", "title": "修复用 ALTER TABLE ... ALTER CONSTRAINT 更改外键约束可延迟性属性时触发器函数属性的错误更新", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5", "source_hash": "feee25d9ac60611f9a0d6e77639e6d820e24de571214c0b40e11f2e6c5a623aa", "section_path": ["变更"], "commit_groups": [["3a9a8c408", "445035a6e", "a522fc3d8", "b53c841e5"]], "identity_text": "Fix incorrect updating of trigger function properties when changing a foreign-key constraint's deferrability properties with ALTER TABLE ... ALTER CONSTRAINT (Tom Lane) This led to odd failures during subsequent exercise of the foreign key, as the triggers were fired at the wrong times.", "commit_aliases": ["3a9a8c408", "445035a6e", "a522fc3d8", "b53c841e5"], "source_commits": ["445035a6e"], "source_entry_id": "9.6.2/changes/014", "db_id": "99640de3fc14ce8556bacda8d80c2da8", "patch_ids": ["96258a671615299ddc7ba57d6197ee5f"], "statement_hash": "919fc2ed828ef481df2d2ef12f31f02840819e4771b909035736fee4fd92b694", "relations": [{"rule": 2, "type": "equivalent", "target": "08145cc12d78266b01ce4e46ab3be92c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "919fc2ed828ef481df2d2ef12f31f02840819e4771b909035736fee4fd92b694"}}, {"rule": 2, "type": "equivalent", "target": "96bbb5b62b5ff6920136e625b9c362c6", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "919fc2ed828ef481df2d2ef12f31f02840819e4771b909035736fee4fd92b694"}}], "version": "9.6.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "96bbb5b62b5ff6920136e625b9c362c6", "kind": "equivalent", "version": "9.5.6", "label": "9.5.6", "title": "修复用 ALTER TABLE ... ALTER CONSTRAINT 更改外键约束可延迟性属性时触发器函数属性的错误更新", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "919fc2ed828ef481df2d2ef12f31f02840819e4771b909035736fee4fd92b694"}, "url": "/docs/compare/?release=9.5.6#9.5.6-c73a3cdcef1c3cfe", "source_url": "/docs/release/9.5.6/#id-1.11.6.24.5"}, {"db_id": "08145cc12d78266b01ce4e46ab3be92c", "kind": "equivalent", "version": "9.4.11", "label": "9.4.11", "title": "修复用 ALTER TABLE ... ALTER CONSTRAINT 更改外键约束可延迟性属性时触发器函数属性的错误更新", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "919fc2ed828ef481df2d2ef12f31f02840819e4771b909035736fee4fd92b694"}, "url": "/docs/compare/?release=9.4.11#9.4.11-c73a3cdcef1c3cfe", "source_url": "/docs/release/9.4.11/#id-1.11.6.20.5"}]}, {"id": "9.6.2-3f696a5cebc0a39b", "cves": [], "html": "<p>如果被引用关系有未决的触发器事件，防止删除外键约束（Tom Lane）</p>\n<p>这避免了 <span>“<span>could not find trigger <em><code>NNN</code></em></span>”</span> 或 <span>“<span>relation <em><code>NNN</code></em> has no triggers</span>”</span> 错误。</p>", "text": "如果被引用关系有未决的触发器事件，防止删除外键约束（Tom Lane） 这避免了 “could not find trigger NNN” 或 “relation NNN has no triggers” 错误。", "title": "如果被引用关系有未决的触发器事件，防止删除外键约束", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5", "source_hash": "62af529e361e84af609dc920574de8c9c3468869a0f1f7cdb2200b892ef4db58", "section_path": ["变更"], "commit_groups": [["05bef7b08", "4e026b32d", "6a363a4c2", "6cbe84c82", "bf5fe7bfa", "f7166ce24"]], "identity_text": "Prevent dropping a foreign-key constraint if there are pending trigger events for the referenced relation (Tom Lane) This avoids could not find trigger NNN or relation NNN has no triggers errors.", "commit_aliases": ["05bef7b08", "4e026b32d", "6a363a4c2", "6cbe84c82", "bf5fe7bfa", "f7166ce24"], "source_commits": ["bf5fe7bfa"], "source_entry_id": "9.6.2/changes/015", "db_id": "e3e90c45c0b1ffffb3efe7f0453c17a6", "patch_ids": ["6fc8f96ff4ab86c0781b0011df4b74b3"], "statement_hash": "6948adff38aa57dbc2ade4f98c1860a93cd9a327c2a7f9ec954637eef6f48ef5", "relations": [{"rule": 2, "type": "equivalent", "target": "4180f1dc12d821cfb0d34a11cb7eda3a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6948adff38aa57dbc2ade4f98c1860a93cd9a327c2a7f9ec954637eef6f48ef5"}}, {"rule": 2, "type": "equivalent", "target": "cfaeb4233abb836f8a9b62a8363fd4dd", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6948adff38aa57dbc2ade4f98c1860a93cd9a327c2a7f9ec954637eef6f48ef5"}}, {"rule": 2, "type": "equivalent", "target": "d2463ec969093f0493acb893a8c637e2", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6948adff38aa57dbc2ade4f98c1860a93cd9a327c2a7f9ec954637eef6f48ef5"}}, {"rule": 2, "type": "equivalent", "target": "d733025ccceb6389f46aedbbb8111ce2", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6948adff38aa57dbc2ade4f98c1860a93cd9a327c2a7f9ec954637eef6f48ef5"}}], "version": "9.6.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "d733025ccceb6389f46aedbbb8111ce2", "kind": "equivalent", "version": "9.5.6", "label": "9.5.6", "title": "如果被引用关系有未决的触发器事件，防止删除外键约束", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6948adff38aa57dbc2ade4f98c1860a93cd9a327c2a7f9ec954637eef6f48ef5"}, "url": "/docs/compare/?release=9.5.6#9.5.6-3f696a5cebc0a39b", "source_url": "/docs/release/9.5.6/#id-1.11.6.24.5"}, {"db_id": "4180f1dc12d821cfb0d34a11cb7eda3a", "kind": "equivalent", "version": "9.4.11", "label": "9.4.11", "title": "如果被引用关系有未决的触发器事件，防止删除外键约束", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6948adff38aa57dbc2ade4f98c1860a93cd9a327c2a7f9ec954637eef6f48ef5"}, "url": "/docs/compare/?release=9.4.11#9.4.11-3f696a5cebc0a39b", "source_url": "/docs/release/9.4.11/#id-1.11.6.20.5"}, {"db_id": "d2463ec969093f0493acb893a8c637e2", "kind": "equivalent", "version": "9.3.16", "label": "9.3.16", "title": "如果被引用关系有未决的触发器事件，防止删除外键约束", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6948adff38aa57dbc2ade4f98c1860a93cd9a327c2a7f9ec954637eef6f48ef5"}, "url": "/docs/compare/?release=9.3.16#9.3.16-3f696a5cebc0a39b", "source_url": "/docs/release/9.3.16/#id-1.11.6.14.5"}, {"db_id": "cfaeb4233abb836f8a9b62a8363fd4dd", "kind": "equivalent", "version": "9.2.20", "label": "9.2.20", "title": "如果被引用关系有未决的触发器事件，防止删除外键约束", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6948adff38aa57dbc2ade4f98c1860a93cd9a327c2a7f9ec954637eef6f48ef5"}, "url": "/docs/compare/?release=9.2.20#9.2.20-3f696a5cebc0a39b", "source_url": "/docs/release/9.2.20/#id-1.11.6.9.5"}]}, {"id": "9.6.2-b7a1111efd7521b8", "cves": [], "html": "<p>修复子表列顺序与父表不同时的 <code>ALTER TABLE ... SET DATA TYPE ... USING</code>（Álvaro Herrera）</p>\n<p>未能调整 <code>USING</code> 表达式中的列编号导致错误，典型的是 <span>“<span>attribute <em><code>N</code></em> has wrong type</span>”</span>。</p>", "text": "修复子表列顺序与父表不同时的 ALTER TABLE ... SET DATA TYPE ... USING（Álvaro Herrera） 未能调整 USING 表达式中的列编号导致错误，典型的是 “attribute N has wrong type”。", "title": "修复子表列顺序与父表不同时的 ALTER TABLE ... SET DATA TYPE ... USING", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5", "source_hash": "c866685ebb854ca4444a47155f7524f01ce96213e16fc01ad6535e86201c2564", "section_path": ["变更"], "commit_groups": [["3957b58b8", "4d4ab6ccd", "4e563a1f6"]], "identity_text": "Fix ALTER TABLE ... SET DATA TYPE ... USING when child table has different column ordering than the parent (Álvaro Herrera) Failure to adjust the column numbering in the USING expression led to errors, typically attribute N has wrong type.", "commit_aliases": ["3957b58b8", "4d4ab6ccd", "4e563a1f6"], "source_commits": ["4e563a1f6"], "source_entry_id": "9.6.2/changes/016", "db_id": "d3252897c0844d42a3230bec3dae7294", "patch_ids": ["6dd3a604b8f0c8435f0b8ebc5979570a"], "statement_hash": "7124373f373a20f12e4106aa5cee9bea9dc37effb2b71bd4de58181a8f6df07c", "relations": [{"rule": 2, "type": "equivalent", "target": "f53ee780a2ce6fe941a20416a219a392", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7124373f373a20f12e4106aa5cee9bea9dc37effb2b71bd4de58181a8f6df07c"}}], "version": "9.6.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "f53ee780a2ce6fe941a20416a219a392", "kind": "equivalent", "version": "9.5.6", "label": "9.5.6", "title": "修复子表列顺序与父表不同时的 ALTER TABLE ... SET DATA TYPE ... USING", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7124373f373a20f12e4106aa5cee9bea9dc37effb2b71bd4de58181a8f6df07c"}, "url": "/docs/compare/?release=9.5.6#9.5.6-b7a1111efd7521b8", "source_url": "/docs/release/9.5.6/#id-1.11.6.24.5"}]}, {"id": "9.6.2-d9386a2270ac8ee4", "cves": [], "html": "<p>修复带 OID 的表通过 <code>ALTER TABLE ... INHERIT</code> 关联到带 OID 的父表时 OID 列的处理（Amit Langote）</p>\n<p>这种情况下 OID 列应当与普通用户列同等对待，但没有，导致之后继承更改中的奇怪行为。</p>", "text": "修复带 OID 的表通过 ALTER TABLE ... INHERIT 关联到带 OID 的父表时 OID 列的处理（Amit Langote） 这种情况下 OID 列应当与普通用户列同等对待，但没有，导致之后继承更改中的奇怪行为。", "title": "修复带 OID 的表通过 ALTER TABLE ... INHERIT 关联到带 OID 的父表时 OID 列的处理", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5", "source_hash": "901572463c16684aaa4e1d405ec846cae1754b08caa3ddfd0b25b377c3ca3b8e", "section_path": ["变更"], "commit_groups": [["50c8196f9", "5f89a9885", "696d40d30", "6c4cf2be8", "d86f40009", "f64554b99"]], "identity_text": "Fix processing of OID column when a table with OIDs is associated to a parent with OIDs via ALTER TABLE ... INHERIT (Amit Langote) The OID column should be treated the same as regular user columns in this case, but it wasn't, leading to odd behavior in later inheritance changes.", "commit_aliases": ["50c8196f9", "5f89a9885", "696d40d30", "6c4cf2be8", "d86f40009", "f64554b99"], "source_commits": ["f64554b99"], "source_entry_id": "9.6.2/changes/017", "db_id": "b201bab401077b935165ebdbe790f99a", "patch_ids": ["a8e33555b594c5211ad0d1b21be3fea2"], "statement_hash": "f9909ddbd3811671fd05a401895b23c661302c7cb8a114ceae1c0d4f32e8aa03", "relations": [{"rule": 2, "type": "equivalent", "target": "1b04a4ada89a2013f7e6daf82f89be94", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f9909ddbd3811671fd05a401895b23c661302c7cb8a114ceae1c0d4f32e8aa03"}}, {"rule": 2, "type": "equivalent", "target": "7187dd1d1fef7844008f543688191aab", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f9909ddbd3811671fd05a401895b23c661302c7cb8a114ceae1c0d4f32e8aa03"}}, {"rule": 2, "type": "equivalent", "target": "bddd782ba9be3b76ffb0d6bee3de9080", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f9909ddbd3811671fd05a401895b23c661302c7cb8a114ceae1c0d4f32e8aa03"}}, {"rule": 2, "type": "equivalent", "target": "ce5ca50cbec28a07219808056bb5a5cd", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f9909ddbd3811671fd05a401895b23c661302c7cb8a114ceae1c0d4f32e8aa03"}}], "version": "9.6.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "1b04a4ada89a2013f7e6daf82f89be94", "kind": "equivalent", "version": "9.5.6", "label": "9.5.6", "title": "修复带 OID 的表通过 ALTER TABLE ... INHERIT 关联到带 OID 的父表时 OID 列的处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f9909ddbd3811671fd05a401895b23c661302c7cb8a114ceae1c0d4f32e8aa03"}, "url": "/docs/compare/?release=9.5.6#9.5.6-d9386a2270ac8ee4", "source_url": "/docs/release/9.5.6/#id-1.11.6.24.5"}, {"db_id": "bddd782ba9be3b76ffb0d6bee3de9080", "kind": "equivalent", "version": "9.4.11", "label": "9.4.11", "title": "修复带 OID 的表通过 ALTER TABLE ... INHERIT 关联到带 OID 的父表时 OID 列的处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f9909ddbd3811671fd05a401895b23c661302c7cb8a114ceae1c0d4f32e8aa03"}, "url": "/docs/compare/?release=9.4.11#9.4.11-d9386a2270ac8ee4", "source_url": "/docs/release/9.4.11/#id-1.11.6.20.5"}, {"db_id": "7187dd1d1fef7844008f543688191aab", "kind": "equivalent", "version": "9.3.16", "label": "9.3.16", "title": "修复带 OID 的表通过 ALTER TABLE ... INHERIT 关联到带 OID 的父表时 OID 列的处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f9909ddbd3811671fd05a401895b23c661302c7cb8a114ceae1c0d4f32e8aa03"}, "url": "/docs/compare/?release=9.3.16#9.3.16-d9386a2270ac8ee4", "source_url": "/docs/release/9.3.16/#id-1.11.6.14.5"}, {"db_id": "ce5ca50cbec28a07219808056bb5a5cd", "kind": "equivalent", "version": "9.2.20", "label": "9.2.20", "title": "修复带 OID 的表通过 ALTER TABLE ... INHERIT 关联到带 OID 的父表时 OID 列的处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f9909ddbd3811671fd05a401895b23c661302c7cb8a114ceae1c0d4f32e8aa03"}, "url": "/docs/compare/?release=9.2.20#9.2.20-d9386a2270ac8ee4", "source_url": "/docs/release/9.2.20/#id-1.11.6.9.5"}]}, {"id": "9.6.2-79e4732db75f1cb2", "cves": [], "html": "<p>确保 <code>CREATE TABLE ... LIKE ... WITH OIDS</code> 创建带 OID 的表，无论 <code>LIKE</code> 引用的表是否带 OID（Tom Lane）</p>", "text": "确保 CREATE TABLE ... LIKE ... WITH OIDS 创建带 OID 的表，无论 LIKE 引用的表是否带 OID（Tom Lane）", "title": "确保 CREATE TABLE ... LIKE ... WITH OIDS 创建带 OID 的表，无论 LIKE 引用的表是否带 OID", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5", "source_hash": "2ce60fb15bf026d261a854c0c2562dec3cd600fdc046bf94e04ccdaeb0d114a9", "section_path": ["变更"], "commit_groups": [["1ead0208b", "68330c8b4"]], "identity_text": "Ensure that CREATE TABLE ... LIKE ... WITH OIDS creates a table with OIDs, whether or not the LIKE-referenced table(s) have OIDs (Tom Lane)", "commit_aliases": ["1ead0208b", "68330c8b4"], "source_commits": ["68330c8b4"], "source_entry_id": "9.6.2/changes/018", "db_id": "e7f05cfe4c9453693729849a6833d40c", "patch_ids": ["5083f7dfa6737fca3228d70bee7e3d45"], "statement_hash": "a2015f80879c1228d61f705ebc276263d06a11a4aa1a1ec10f44a2f78cb33fa7", "relations": [], "version": "9.6.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.6.2-03eec8e3dccf4637", "cves": [], "html": "<p>修复 <code>CREATE OR REPLACE VIEW</code> 在尝试应用新视图选项之前先更新视图查询（Dean Rasheed）</p>\n<p>此前如果新选项与旧视图定义不一致，命令就会失败。</p>", "text": "修复 CREATE OR REPLACE VIEW 在尝试应用新视图选项之前先更新视图查询（Dean Rasheed） 此前如果新选项与旧视图定义不一致，命令就会失败。", "title": "修复 CREATE OR REPLACE VIEW 在尝试应用新视图选项之前先更新视图查询", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5", "source_hash": "1e1540bdea6ce22861390a0b485f6de7080a0499a528f8440a1e053fb9e26546", "section_path": ["变更"], "commit_groups": [["58b136264", "78a98b767", "a46ee6b30", "cad24980e"]], "identity_text": "Fix CREATE OR REPLACE VIEW to update the view query before attempting to apply the new view options (Dean Rasheed) Previously the command would fail if the new options were inconsistent with the old view definition.", "commit_aliases": ["58b136264", "78a98b767", "a46ee6b30", "cad24980e"], "source_commits": ["a46ee6b30"], "source_entry_id": "9.6.2/changes/019", "db_id": "c94a440be136f418f40ab1fa05f43f21", "patch_ids": ["0dfb26bca4a2cc1093fd292a2d8c62ef"], "statement_hash": "be5fedbd66b9675ee44acb296dd5dc06694c076ea48502729a510d4498e29faa", "relations": [{"rule": 2, "type": "equivalent", "target": "6e5358beed14dd0b4182dc414c644ebb", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "be5fedbd66b9675ee44acb296dd5dc06694c076ea48502729a510d4498e29faa"}}, {"rule": 2, "type": "equivalent", "target": "918e658cf74aa81f91fbb6f8e8352102", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "be5fedbd66b9675ee44acb296dd5dc06694c076ea48502729a510d4498e29faa"}}], "version": "9.6.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "6e5358beed14dd0b4182dc414c644ebb", "kind": "equivalent", "version": "9.5.6", "label": "9.5.6", "title": "修复 CREATE OR REPLACE VIEW 在尝试应用新视图选项之前先更新视图查询", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "be5fedbd66b9675ee44acb296dd5dc06694c076ea48502729a510d4498e29faa"}, "url": "/docs/compare/?release=9.5.6#9.5.6-03eec8e3dccf4637", "source_url": "/docs/release/9.5.6/#id-1.11.6.24.5"}, {"db_id": "918e658cf74aa81f91fbb6f8e8352102", "kind": "equivalent", "version": "9.4.11", "label": "9.4.11", "title": "修复 CREATE OR REPLACE VIEW 在尝试应用新视图选项之前先更新视图查询", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "be5fedbd66b9675ee44acb296dd5dc06694c076ea48502729a510d4498e29faa"}, "url": "/docs/compare/?release=9.4.11#9.4.11-03eec8e3dccf4637", "source_url": "/docs/release/9.4.11/#id-1.11.6.20.5"}]}, {"id": "9.6.2-19513a40f9d99c2d", "cves": [], "html": "<p>修复 <code>ALTER TEXT SEARCH CONFIGURATION</code> 期间报告正确的对象身份（Artur Zakirov）</p>\n<p>向逻辑解码等扩展报告了错误的目录 OID。</p>", "text": "修复 ALTER TEXT SEARCH CONFIGURATION 期间报告正确的对象身份（Artur Zakirov） 向逻辑解码等扩展报告了错误的目录 OID。", "title": "修复 ALTER TEXT SEARCH CONFIGURATION 期间报告正确的对象身份", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5", "source_hash": "ecc59f91d433bc1e1e65cec2681d06fc08399938411fe5c4e3b13d9656156c92", "section_path": ["变更"], "commit_groups": [["0e3aadb68", "12bd7dd31", "ac1ec9c1f", "e82369217", "f0f2e56ac"]], "identity_text": "Report correct object identity during ALTER TEXT SEARCH CONFIGURATION (Artur Zakirov) The wrong catalog OID was reported to extensions such as logical decoding.", "commit_aliases": ["0e3aadb68", "12bd7dd31", "ac1ec9c1f", "e82369217", "f0f2e56ac"], "source_commits": ["f0f2e56ac"], "source_entry_id": "9.6.2/changes/020", "db_id": "4aeb0eea4216b573306205c5f3d3ab4f", "patch_ids": ["0d1ab813f5039f833bc01539f4b52068"], "statement_hash": "692f4dc7e1010ae34e85aa333b79c95a936cab6f94357e5cc72f95ad44258bd7", "relations": [{"rule": 2, "type": "equivalent", "target": "2b00c62f4a76d67225f66fa518f613a0", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "692f4dc7e1010ae34e85aa333b79c95a936cab6f94357e5cc72f95ad44258bd7"}}, {"rule": 2, "type": "equivalent", "target": "924df19334a53f88b93a62caf853b933", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "692f4dc7e1010ae34e85aa333b79c95a936cab6f94357e5cc72f95ad44258bd7"}}, {"rule": 2, "type": "equivalent", "target": "f2592ddd51722adbe66146a511088ace", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "692f4dc7e1010ae34e85aa333b79c95a936cab6f94357e5cc72f95ad44258bd7"}}], "version": "9.6.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "f2592ddd51722adbe66146a511088ace", "kind": "equivalent", "version": "9.5.6", "label": "9.5.6", "title": "修复 ALTER TEXT SEARCH CONFIGURATION 期间报告正确的对象身份", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "692f4dc7e1010ae34e85aa333b79c95a936cab6f94357e5cc72f95ad44258bd7"}, "url": "/docs/compare/?release=9.5.6#9.5.6-19513a40f9d99c2d", "source_url": "/docs/release/9.5.6/#id-1.11.6.24.5"}, {"db_id": "924df19334a53f88b93a62caf853b933", "kind": "equivalent", "version": "9.4.11", "label": "9.4.11", "title": "修复 ALTER TEXT SEARCH CONFIGURATION 期间报告正确的对象身份", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "692f4dc7e1010ae34e85aa333b79c95a936cab6f94357e5cc72f95ad44258bd7"}, "url": "/docs/compare/?release=9.4.11#9.4.11-19513a40f9d99c2d", "source_url": "/docs/release/9.4.11/#id-1.11.6.20.5"}, {"db_id": "2b00c62f4a76d67225f66fa518f613a0", "kind": "equivalent", "version": "9.3.16", "label": "9.3.16", "title": "修复 ALTER TEXT SEARCH CONFIGURATION 期间报告正确的对象身份", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "692f4dc7e1010ae34e85aa333b79c95a936cab6f94357e5cc72f95ad44258bd7"}, "url": "/docs/compare/?release=9.3.16#9.3.16-19513a40f9d99c2d", "source_url": "/docs/release/9.3.16/#id-1.11.6.14.5"}]}, {"id": "9.6.2-0e450e4eff705658", "cves": [], "html": "<p>修复提交时间戳机制在被询问特殊 XID <code>FrozenTransactionId</code> 和 <code>BootstrapTransactionId</code> 时不失败（Craig Ringer）</p>", "text": "修复提交时间戳机制在被询问特殊 XID FrozenTransactionId 和 BootstrapTransactionId 时不失败（Craig Ringer）", "title": "修复提交时间戳机制在被询问特殊 XID FrozenTransactionId 和 BootstrapTransactionId 时不失败", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5", "source_hash": "bd69ab44614b0d947391e0b6cedbcdaa059f0e4068c9f4eb101cfb21729519fa", "section_path": ["变更"], "commit_groups": [["4aaddf2f0", "7816d1356", "9b6634290"]], "identity_text": "Fix commit timestamp mechanism to not fail when queried about the special XIDs FrozenTransactionId and BootstrapTransactionId (Craig Ringer)", "commit_aliases": ["4aaddf2f0", "7816d1356", "9b6634290"], "source_commits": ["9b6634290"], "source_entry_id": "9.6.2/changes/021", "db_id": "03091fc82858246c83d45510d4a0f543", "patch_ids": ["eccab9bc4966fa3303eecae22a721168"], "statement_hash": "e8035ea9d93cc7df08b41f633001af7c7cf377cd3e9f144cdc8510fec4bface4", "relations": [{"rule": 2, "type": "equivalent", "target": "e08dd2deb2e5dd33519a2dfe36ced61e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e8035ea9d93cc7df08b41f633001af7c7cf377cd3e9f144cdc8510fec4bface4"}}], "version": "9.6.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "e08dd2deb2e5dd33519a2dfe36ced61e", "kind": "equivalent", "version": "9.5.6", "label": "9.5.6", "title": "修复提交时间戳机制在被询问特殊 XID FrozenTransactionId 和 BootstrapTransactionId 时不失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e8035ea9d93cc7df08b41f633001af7c7cf377cd3e9f144cdc8510fec4bface4"}, "url": "/docs/compare/?release=9.5.6#9.5.6-0e450e4eff705658", "source_url": "/docs/release/9.5.6/#id-1.11.6.24.5"}]}, {"id": "9.6.2-a39909c0528b35cf", "cves": [], "html": "<p>修复视图重选项被错误地当作普通表重选项使用的问题（Tom Lane）</p>\n<p>症状是当 <code>INSERT ... ON CONFLICT</code> 的目标是带级联选项的视图时，出现虚假的 <span>“<span>ON CONFLICT is not supported on table ... used as a catalog table</span>”</span> 错误。</p>", "text": "修复视图重选项被错误地当作普通表重选项使用的问题（Tom Lane） 症状是当 INSERT ... ON CONFLICT 的目标是带级联选项的视图时，出现虚假的 “ON CONFLICT is not supported on table ... used as a catalog table” 错误。", "title": "修复视图重选项被错误地当作普通表重选项使用的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5", "source_hash": "f31c754d96f905db879312663c20f1faf852f7b631e182339b38112b18d58b10", "section_path": ["变更"], "commit_groups": [["05a6e8728", "530f80652", "6e00ba1e1"], ["5ee3a7453", "e2f5cd9cf", "e3e66d8a9"]], "identity_text": "Fix incorrect use of view reloptions as regular table reloptions (Tom Lane) The symptom was spurious ON CONFLICT is not supported on table ... used as a catalog table errors when the target of INSERT ... ON CONFLICT is a view with cascade option.", "commit_aliases": ["05a6e8728", "530f80652", "5ee3a7453", "6e00ba1e1", "e2f5cd9cf", "e3e66d8a9"], "source_commits": ["05a6e8728", "5ee3a7453"], "source_entry_id": "9.6.2/changes/022", "db_id": "960f222e49b420add23c68d26e007a76", "patch_ids": ["63a29e6cca2da66f7ceeff94ecd10fbb", "f9f21d0d5ccd6c19586ec9bd5c9e0cd4"], "statement_hash": "f7e042a730242f0586aa4f953f1c456b555e5aba1578c50769471028c7baecc6", "relations": [{"rule": 2, "type": "equivalent", "target": "ecdaef209caef3b08cb12df3fc96f7ad", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f7e042a730242f0586aa4f953f1c456b555e5aba1578c50769471028c7baecc6"}}], "version": "9.6.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "ecdaef209caef3b08cb12df3fc96f7ad", "kind": "equivalent", "version": "9.5.6", "label": "9.5.6", "title": "修复视图重选项被错误地当作普通表重选项使用的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f7e042a730242f0586aa4f953f1c456b555e5aba1578c50769471028c7baecc6"}, "url": "/docs/compare/?release=9.5.6#9.5.6-a39909c0528b35cf", "source_url": "/docs/release/9.5.6/#id-1.11.6.24.5"}]}, {"id": "9.6.2-866afc6013314e28", "cves": [], "html": "<p>修复对宽表使用 <code>ON CONFLICT</code> 时错误的 <span>“<span>target lists can have at most <em><code>N</code></em> entries</span>”</span> 报怨（Tom Lane）</p>", "text": "修复对宽表使用 ON CONFLICT 时错误的 “target lists can have at most N entries” 报怨（Tom Lane）", "title": "修复对宽表使用 ON CONFLICT 时错误的 “target lists can have at most N entries” 报怨", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5", "source_hash": "202e47bcc45f723345b72783d3e2dc98e3458a4fde7f2f46de6bdfe4d1d1a9c4", "section_path": ["变更"], "commit_groups": [["25c06a1ed", "385072320", "da05d0ebc"]], "identity_text": "Fix incorrect target lists can have at most N entries complaint when using ON CONFLICT with wide tables (Tom Lane)", "commit_aliases": ["25c06a1ed", "385072320", "da05d0ebc"], "source_commits": ["da05d0ebc"], "source_entry_id": "9.6.2/changes/023", "db_id": "d1f83b41d977c9fd302ceb7a6f2818c5", "patch_ids": ["e4e85e3835736312c4ac4d9fdce43b1a"], "statement_hash": "9ffd56bc6b5d5bd6a5be9df33a4d96dbf38b1ce083d2ad5392a1be7478623eeb", "relations": [{"rule": 2, "type": "equivalent", "target": "6d6e8c04cf9e3754f5925124a13013b8", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9ffd56bc6b5d5bd6a5be9df33a4d96dbf38b1ce083d2ad5392a1be7478623eeb"}}], "version": "9.6.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "6d6e8c04cf9e3754f5925124a13013b8", "kind": "equivalent", "version": "9.5.6", "label": "9.5.6", "title": "修复对宽表使用 ON CONFLICT 时错误的 “target lists can have at most N entries” 报怨", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9ffd56bc6b5d5bd6a5be9df33a4d96dbf38b1ce083d2ad5392a1be7478623eeb"}, "url": "/docs/compare/?release=9.5.6#9.5.6-866afc6013314e28", "source_url": "/docs/release/9.5.6/#id-1.11.6.24.5"}]}, {"id": "9.6.2-165a45400ec28578", "cves": [], "html": "<p>修复对带已删除列的表执行 <code>INSERT</code> 或 <code>UPDATE</code> 期间虚假的 <span>“<span>query provides a value for a dropped column</span>”</span> 错误（Tom Lane）</p>", "text": "修复对带已删除列的表执行 INSERT 或 UPDATE 期间虚假的 “query provides a value for a dropped column” 错误（Tom Lane）", "title": "修复对带已删除列的表执行 INSERT 或 UPDATE 期间虚假的 “query provides a value for a dropped column” 错误", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5", "source_hash": "9c51fade2f3b27d02e0357241e81c04ef7fe9ff4ac448dab0541914e3556cd75", "section_path": ["变更"], "commit_groups": [["da8f3ebf3", "f4d865f22"]], "identity_text": "Fix spurious query provides a value for a dropped column errors during INSERT or UPDATE on a table with a dropped column (Tom Lane)", "commit_aliases": ["da8f3ebf3", "f4d865f22"], "source_commits": ["f4d865f22"], "source_entry_id": "9.6.2/changes/024", "db_id": "78ff93b0f8821927c53b13d23d9b81a3", "patch_ids": ["e2f5c16bb75d1be1069c673f725e2a5c"], "statement_hash": "df78c8849b31b0519405b49fbd3006812ccca17dd48d20dc4ce0f4296cf3b6e6", "relations": [], "version": "9.6.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.6.2-5a32be0979144f98", "cves": [], "html": "<p>防止 <code>UPDATE</code> 源表达式中 <em><code>foo</code></em><code>.*</code> 的多列展开（Tom Lane）</p>\n<p>这导致 <span>“<span>UPDATE target count mismatch --- internal error</span>”</span>。现在该语法被理解为整行变量，与其他上下文中一样。</p>", "text": "防止 UPDATE 源表达式中 foo.* 的多列展开（Tom Lane） 这导致 “UPDATE target count mismatch --- internal error”。现在该语法被理解为整行变量，与其他上下文中一样。", "title": "防止 UPDATE 源表达式中 foo.* 的多列展开", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5", "source_hash": "71beb62393f4c9f8df365927987da25d61320c22666e4cba704fa6f72374e0d8", "section_path": ["变更"], "commit_groups": [["44c8b4fcd", "71db302ec", "90f8b4be5", "aeb5e8242", "c5f365f3a"]], "identity_text": "Prevent multicolumn expansion of foo.* in an UPDATE source expression (Tom Lane) This led to UPDATE target count mismatch --- internal error. Now the syntax is understood as a whole-row variable, as it would be in other contexts.", "commit_aliases": ["44c8b4fcd", "71db302ec", "90f8b4be5", "aeb5e8242", "c5f365f3a"], "source_commits": ["90f8b4be5"], "source_entry_id": "9.6.2/changes/025", "db_id": "e56e6bc6059fb602437ebbe14f154465", "patch_ids": ["5d4ed638d14e09862941bc9b65742bec"], "statement_hash": "dc89b82ddcf87448a357e8516ce3da9e20e7356c70c5be2b53dff2d2cda181bc", "relations": [{"rule": 2, "type": "equivalent", "target": "0e1af8c5f71f8102604aa64825a37032", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dc89b82ddcf87448a357e8516ce3da9e20e7356c70c5be2b53dff2d2cda181bc"}}, {"rule": 2, "type": "equivalent", "target": "dfa06e7e2ff2c24b68c8e9f2afbfda7f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dc89b82ddcf87448a357e8516ce3da9e20e7356c70c5be2b53dff2d2cda181bc"}}, {"rule": 2, "type": "equivalent", "target": "ebda0d74d7cabb3a7fcac47d0f664d6c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dc89b82ddcf87448a357e8516ce3da9e20e7356c70c5be2b53dff2d2cda181bc"}}], "version": "9.6.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "0e1af8c5f71f8102604aa64825a37032", "kind": "equivalent", "version": "9.5.6", "label": "9.5.6", "title": "防止 UPDATE 源表达式中 foo.* 的多列展开", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dc89b82ddcf87448a357e8516ce3da9e20e7356c70c5be2b53dff2d2cda181bc"}, "url": "/docs/compare/?release=9.5.6#9.5.6-5a32be0979144f98", "source_url": "/docs/release/9.5.6/#id-1.11.6.24.5"}, {"db_id": "dfa06e7e2ff2c24b68c8e9f2afbfda7f", "kind": "equivalent", "version": "9.4.11", "label": "9.4.11", "title": "防止 UPDATE 源表达式中 foo.* 的多列展开", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dc89b82ddcf87448a357e8516ce3da9e20e7356c70c5be2b53dff2d2cda181bc"}, "url": "/docs/compare/?release=9.4.11#9.4.11-5a32be0979144f98", "source_url": "/docs/release/9.4.11/#id-1.11.6.20.5"}, {"db_id": "ebda0d74d7cabb3a7fcac47d0f664d6c", "kind": "equivalent", "version": "9.3.16", "label": "9.3.16", "title": "防止 UPDATE 源表达式中 foo.* 的多列展开", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dc89b82ddcf87448a357e8516ce3da9e20e7356c70c5be2b53dff2d2cda181bc"}, "url": "/docs/compare/?release=9.3.16#9.3.16-5a32be0979144f98", "source_url": "/docs/release/9.3.16/#id-1.11.6.14.5"}]}, {"id": "9.6.2-1a59df5e0457650c", "cves": [], "html": "<p>确保多行 <code>VALUES</code> 构造的列 typmod 被准确确定（Tom Lane）</p>\n<p>这修复了列的第一个值有可确定的 typmod（如 <code>varchar</code> 值的长度）但后面的值不共享同一限制时发生的问题。</p>", "text": "确保多行 VALUES 构造的列 typmod 被准确确定（Tom Lane） 这修复了列的第一个值有可确定的 typmod（如 varchar 值的长度）但后面的值不共享同一限制时发生的问题。", "title": "确保多行 VALUES 构造的列 typmod 被准确确定", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5", "source_hash": "bdcf4420c3e3e2ae6915154a8c6eb35efbf0d2a1d7d7bea67c2674956e64ee6d", "section_path": ["变更"], "commit_groups": [["082d1fb9e", "0b78106cd", "2afe282a3", "6a493adda", "c7a62135a", "cf22c8cb8"]], "identity_text": "Ensure that column typmods are determined accurately for multi-row VALUES constructs (Tom Lane) This fixes problems occurring when the first value in a column has a determinable typmod (e.g., length for a varchar value) but later values don't share the same limit.", "commit_aliases": ["082d1fb9e", "0b78106cd", "2afe282a3", "6a493adda", "c7a62135a", "cf22c8cb8"], "source_commits": ["cf22c8cb8"], "source_entry_id": "9.6.2/changes/026", "db_id": "be57f1e4a79a11465f1a7d407d68c2df", "patch_ids": ["0ba774c44bf3b8ee9c0d4e9bd296d72d"], "statement_hash": "ac965dfb5872115ef803cac9c64e4d2c31e3c10941e2b46ccc8b4592c8f1ca0d", "relations": [{"rule": 2, "type": "equivalent", "target": "005b71ae9dbe2bb708300e53c6fe3b79", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ac965dfb5872115ef803cac9c64e4d2c31e3c10941e2b46ccc8b4592c8f1ca0d"}}, {"rule": 2, "type": "equivalent", "target": "07d63ba33c77c1124b368f5d69c3ae8e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ac965dfb5872115ef803cac9c64e4d2c31e3c10941e2b46ccc8b4592c8f1ca0d"}}, {"rule": 2, "type": "equivalent", "target": "2aeff17dc6647c2d1a2ad0dd3f2c66c5", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ac965dfb5872115ef803cac9c64e4d2c31e3c10941e2b46ccc8b4592c8f1ca0d"}}, {"rule": 2, "type": "equivalent", "target": "b88d2f5af913237effe99220b3d82494", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ac965dfb5872115ef803cac9c64e4d2c31e3c10941e2b46ccc8b4592c8f1ca0d"}}], "version": "9.6.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "07d63ba33c77c1124b368f5d69c3ae8e", "kind": "equivalent", "version": "9.5.6", "label": "9.5.6", "title": "确保多行 VALUES 构造的列 typmod 被准确确定", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ac965dfb5872115ef803cac9c64e4d2c31e3c10941e2b46ccc8b4592c8f1ca0d"}, "url": "/docs/compare/?release=9.5.6#9.5.6-1a59df5e0457650c", "source_url": "/docs/release/9.5.6/#id-1.11.6.24.5"}, {"db_id": "b88d2f5af913237effe99220b3d82494", "kind": "equivalent", "version": "9.4.11", "label": "9.4.11", "title": "确保多行 VALUES 构造的列 typmod 被准确确定", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ac965dfb5872115ef803cac9c64e4d2c31e3c10941e2b46ccc8b4592c8f1ca0d"}, "url": "/docs/compare/?release=9.4.11#9.4.11-1a59df5e0457650c", "source_url": "/docs/release/9.4.11/#id-1.11.6.20.5"}, {"db_id": "005b71ae9dbe2bb708300e53c6fe3b79", "kind": "equivalent", "version": "9.3.16", "label": "9.3.16", "title": "确保多行 VALUES 构造的列 typmod 被准确确定", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ac965dfb5872115ef803cac9c64e4d2c31e3c10941e2b46ccc8b4592c8f1ca0d"}, "url": "/docs/compare/?release=9.3.16#9.3.16-1a59df5e0457650c", "source_url": "/docs/release/9.3.16/#id-1.11.6.14.5"}, {"db_id": "2aeff17dc6647c2d1a2ad0dd3f2c66c5", "kind": "equivalent", "version": "9.2.20", "label": "9.2.20", "title": "确保多行 VALUES 构造的列 typmod 被准确确定", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ac965dfb5872115ef803cac9c64e4d2c31e3c10941e2b46ccc8b4592c8f1ca0d"}, "url": "/docs/compare/?release=9.2.20#9.2.20-1a59df5e0457650c", "source_url": "/docs/release/9.2.20/#id-1.11.6.9.5"}]}, {"id": "9.6.2-3d086ae0cc351d15", "cves": [], "html": "<p>对 Unicode 字符串末尾未完成的 Unicode 代理项对抛出错误（Tom Lane）</p>\n<p>通常 Unicode 代理项前导字符后面必须跟 Unicode 代理项后随字符，但当前导字符是 Unicode 字符串字面量（<code>U&amp;'...'</code>）或 Unicode 标识符（<code>U&amp;\"...\"</code>）的最后一个字符时漏掉了这一检查。</p>", "text": "对 Unicode 字符串末尾未完成的 Unicode 代理项对抛出错误（Tom Lane） 通常 Unicode 代理项前导字符后面必须跟 Unicode 代理项后随字符，但当前导字符是 Unicode 字符串字面量（U&'...'）或 Unicode 标识符（U&\"...\"）的最后一个字符时漏掉了这一检查。", "title": "对 Unicode 字符串末尾未完成的 Unicode 代理项对抛出错误", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5", "source_hash": "03c708ebe8babea5d9dc58ae2ecc6c2b39bc28bdd66470b58d5caf1ffa19d378", "section_path": ["变更"], "commit_groups": [["6e2c21ec5", "88e1e91da", "a57695d9a", "a8ae12322", "d0f60e4cc", "d5633af7b"]], "identity_text": "Throw error for an unfinished Unicode surrogate pair at the end of a Unicode string (Tom Lane) Normally, a Unicode surrogate leading character must be followed by a Unicode surrogate trailing character, but the check for this was missed if the leading character was the last character in a Unicode string literal (U&'...') or Unicode identifier (U&\"...\").", "commit_aliases": ["6e2c21ec5", "88e1e91da", "a57695d9a", "a8ae12322", "d0f60e4cc", "d5633af7b"], "source_commits": ["88e1e91da"], "source_entry_id": "9.6.2/changes/027", "db_id": "a93421ec62e45ab76ef7ca68cc99ccdc", "patch_ids": ["dd270ae93d2dc126ea9a645ea7a54380"], "statement_hash": "8f66c6edd4cde5687faada1346e7f235d3fe5f3cab11441841838ea8f995fa81", "relations": [{"rule": 2, "type": "equivalent", "target": "0608db3962143d173e4e8107a654548b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8f66c6edd4cde5687faada1346e7f235d3fe5f3cab11441841838ea8f995fa81"}}, {"rule": 2, "type": "equivalent", "target": "3d48dead07b652756096d4f0d993e12c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8f66c6edd4cde5687faada1346e7f235d3fe5f3cab11441841838ea8f995fa81"}}, {"rule": 2, "type": "equivalent", "target": "475b9ac6145d6cf05b60d1454777cb98", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8f66c6edd4cde5687faada1346e7f235d3fe5f3cab11441841838ea8f995fa81"}}, {"rule": 2, "type": "equivalent", "target": "d0789e2d0f8c7d3c2f58a565ec63d22f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8f66c6edd4cde5687faada1346e7f235d3fe5f3cab11441841838ea8f995fa81"}}], "version": "9.6.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "475b9ac6145d6cf05b60d1454777cb98", "kind": "equivalent", "version": "9.5.6", "label": "9.5.6", "title": "对 Unicode 字符串末尾未完成的 Unicode 代理项对抛出错误", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8f66c6edd4cde5687faada1346e7f235d3fe5f3cab11441841838ea8f995fa81"}, "url": "/docs/compare/?release=9.5.6#9.5.6-3d086ae0cc351d15", "source_url": "/docs/release/9.5.6/#id-1.11.6.24.5"}, {"db_id": "d0789e2d0f8c7d3c2f58a565ec63d22f", "kind": "equivalent", "version": "9.4.11", "label": "9.4.11", "title": "对 Unicode 字符串末尾未完成的 Unicode 代理项对抛出错误", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8f66c6edd4cde5687faada1346e7f235d3fe5f3cab11441841838ea8f995fa81"}, "url": "/docs/compare/?release=9.4.11#9.4.11-3d086ae0cc351d15", "source_url": "/docs/release/9.4.11/#id-1.11.6.20.5"}, {"db_id": "0608db3962143d173e4e8107a654548b", "kind": "equivalent", "version": "9.3.16", "label": "9.3.16", "title": "对 Unicode 字符串末尾未完成的 Unicode 代理项对抛出错误", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8f66c6edd4cde5687faada1346e7f235d3fe5f3cab11441841838ea8f995fa81"}, "url": "/docs/compare/?release=9.3.16#9.3.16-3d086ae0cc351d15", "source_url": "/docs/release/9.3.16/#id-1.11.6.14.5"}, {"db_id": "3d48dead07b652756096d4f0d993e12c", "kind": "equivalent", "version": "9.2.20", "label": "9.2.20", "title": "对 Unicode 字符串末尾未完成的 Unicode 代理项对抛出错误", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8f66c6edd4cde5687faada1346e7f235d3fe5f3cab11441841838ea8f995fa81"}, "url": "/docs/compare/?release=9.2.20#9.2.20-3d086ae0cc351d15", "source_url": "/docs/release/9.2.20/#id-1.11.6.9.5"}]}, {"id": "9.6.2-51cb97616e0f9ced", "cves": [], "html": "<p>修复多个 <code>DISTINCT</code> 和有序聚合能共享同一转换状态时的执行（Heikki Linnakangas）</p>", "text": "修复多个 DISTINCT 和有序聚合能共享同一转换状态时的执行（Heikki Linnakangas）", "title": "修复多个 DISTINCT 和有序聚合能共享同一转换状态时的执行", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5", "source_hash": "2062dd328107ac49f035f438e6da980e07a16f07746f9cd83a8a0723a6f7e3ce", "section_path": ["变更"], "commit_groups": [["ce92fc4e2", "db80acfc9"]], "identity_text": "Fix execution of DISTINCT and ordered aggregates when multiple such aggregates are able to share the same transition state (Heikki Linnakangas)", "commit_aliases": ["ce92fc4e2", "db80acfc9"], "source_commits": ["ce92fc4e2"], "source_entry_id": "9.6.2/changes/028", "db_id": "45b8165ea4c349b74b4a559461eb5857", "patch_ids": ["d5d3070ff2ca3887aed7950e5a0d0259"], "statement_hash": "6cbc8974e3cc93914bc214134e3aa41579651ec07bf79bd20ab5c0fc65befac2", "relations": [], "version": "9.6.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.6.2-c630ed39f2438248", "cves": [], "html": "<p>修复 <code>tsquery</code> 中短语搜索操作符的实现（Tom Lane）</p>\n<p>移除试图转换掉 PHRASE 操作符下方的 AND/OR/NOT 操作符的错误且应用不一致的改写规则；改为升级执行引擎以正确处理这种情况。这修复了包含这种组合的文本搜索查询的各种奇怪行为和可能的崩溃。还修复了嵌套 PHRASE 操作符在简单左深树之外的组合中正常工作，更正了从短语搜索子句移除停用词时的行为，并确保索引搜索与这类查询的简单顺序扫描应用一致。</p>", "text": "修复 tsquery 中短语搜索操作符的实现（Tom Lane） 移除试图转换掉 PHRASE 操作符下方的 AND/OR/NOT 操作符的错误且应用不一致的改写规则；改为升级执行引擎以正确处理这种情况。这修复了包含这种组合的文本搜索查询的各种奇怪行为和可能的崩溃。还修复了嵌套 PHRASE 操作符在简单左深树之外的组合中正常工作，更正了从短语搜索子句移除停用词时的行为，并确保索引搜索与这类查询的简单顺序扫描应用一致。", "title": "修复 tsquery 中短语搜索操作符的实现", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5", "source_hash": "84ed32734eaca0bf7c0cd7235149e947937aa625add8d30ac19cb5462285442a", "section_path": ["变更"], "commit_groups": [["260443847", "3f07eff10"], ["4e2477b7b", "89fcea1ac"]], "identity_text": "Fix implementation of phrase search operators in tsquery (Tom Lane) Remove incorrect, and inconsistently-applied, rewrite rules that tried to transform away AND/OR/NOT operators appearing below a PHRASE operator; instead upgrade the execution engine to handle such cases correctly. This fixes assorted strange behavior and possible crashes for text search queries containing such combinations. Also fix nested PHRASE operators to work sanely in combinations other than simple left-deep trees, correct the behavior when removing stopwords from a phrase search clause, and make sure that index searches behave consistently with simple sequential-scan application of such queries.", "commit_aliases": ["260443847", "3f07eff10", "4e2477b7b", "89fcea1ac"], "source_commits": ["3f07eff10", "4e2477b7b"], "source_entry_id": "9.6.2/changes/029", "db_id": "ee1785349b68fa148320c122872fad09", "patch_ids": ["e813255f5ee4cd0e734843fa3461cd8f", "eb8e61b60e0bc3e5c3da7af4c6416764"], "statement_hash": "c019b53b49cda40c0d651548b0a8a0605534877bb4a20558c8a4637c7ad85b80", "relations": [], "version": "9.6.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.6.2-eff451e7b360abcb", "cves": [], "html": "<p>确保纯否定的文本搜索查询（如 <code>!foo</code>）匹配空的 <code>tsvector</code>（Tom Dunstan）</p>\n<p>GIN 索引搜索能找到这种匹配，但顺序扫描或 GiST 索引搜索不能。</p>", "text": "确保纯否定的文本搜索查询（如 !foo）匹配空的 tsvector（Tom Dunstan） GIN 索引搜索能找到这种匹配，但顺序扫描或 GiST 索引搜索不能。", "title": "确保纯否定的文本搜索查询（如 !foo）匹配空的 tsvector", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5", "source_hash": "0c083966841ecfdd9ca6ab00d85b1de851f9f71f47f494bcd5bb9228f7b8e212", "section_path": ["变更"], "commit_groups": [["2c1976a6c", "2dfc12647", "2e024f83b", "423ad86f4", "9d4ca0131", "fe6120f9b"]], "identity_text": "Ensure that a purely negative text search query, such as !foo, matches empty tsvectors (Tom Dunstan) Such matches were found by GIN index searches, but not by sequential scans or GiST index searches.", "commit_aliases": ["2c1976a6c", "2dfc12647", "2e024f83b", "423ad86f4", "9d4ca0131", "fe6120f9b"], "source_commits": ["2dfc12647"], "source_entry_id": "9.6.2/changes/030", "db_id": "5d9ac0edd48483c5563e2aef60ce8772", "patch_ids": ["63ff8c6e6d554e4f2154920c35d0b33a"], "statement_hash": "ad6cd6ad5ee8954233b8ae0f0bddcc1aee2a997ffbaac9ce1b95d49443d52963", "relations": [{"rule": 2, "type": "equivalent", "target": "0b7a8b19196658117104bc98cf22fc01", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ad6cd6ad5ee8954233b8ae0f0bddcc1aee2a997ffbaac9ce1b95d49443d52963"}}, {"rule": 2, "type": "equivalent", "target": "3769e34a099b693920b472acbff9dc60", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ad6cd6ad5ee8954233b8ae0f0bddcc1aee2a997ffbaac9ce1b95d49443d52963"}}, {"rule": 2, "type": "equivalent", "target": "aba27986be457da4c9701e00d01bbc3c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ad6cd6ad5ee8954233b8ae0f0bddcc1aee2a997ffbaac9ce1b95d49443d52963"}}, {"rule": 2, "type": "equivalent", "target": "fbbd8a5fd39ea048ef38e6f0b26b5dbe", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ad6cd6ad5ee8954233b8ae0f0bddcc1aee2a997ffbaac9ce1b95d49443d52963"}}], "version": "9.6.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "fbbd8a5fd39ea048ef38e6f0b26b5dbe", "kind": "equivalent", "version": "9.5.6", "label": "9.5.6", "title": "确保纯否定的文本搜索查询（如 !foo）匹配空的 tsvector", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ad6cd6ad5ee8954233b8ae0f0bddcc1aee2a997ffbaac9ce1b95d49443d52963"}, "url": "/docs/compare/?release=9.5.6#9.5.6-eff451e7b360abcb", "source_url": "/docs/release/9.5.6/#id-1.11.6.24.5"}, {"db_id": "aba27986be457da4c9701e00d01bbc3c", "kind": "equivalent", "version": "9.4.11", "label": "9.4.11", "title": "确保纯否定的文本搜索查询（如 !foo）匹配空的 tsvector", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ad6cd6ad5ee8954233b8ae0f0bddcc1aee2a997ffbaac9ce1b95d49443d52963"}, "url": "/docs/compare/?release=9.4.11#9.4.11-eff451e7b360abcb", "source_url": "/docs/release/9.4.11/#id-1.11.6.20.5"}, {"db_id": "0b7a8b19196658117104bc98cf22fc01", "kind": "equivalent", "version": "9.3.16", "label": "9.3.16", "title": "确保纯否定的文本搜索查询（如 !foo）匹配空的 tsvector", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ad6cd6ad5ee8954233b8ae0f0bddcc1aee2a997ffbaac9ce1b95d49443d52963"}, "url": "/docs/compare/?release=9.3.16#9.3.16-eff451e7b360abcb", "source_url": "/docs/release/9.3.16/#id-1.11.6.14.5"}, {"db_id": "3769e34a099b693920b472acbff9dc60", "kind": "equivalent", "version": "9.2.20", "label": "9.2.20", "title": "确保纯否定的文本搜索查询（如 !foo）匹配空的 tsvector", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ad6cd6ad5ee8954233b8ae0f0bddcc1aee2a997ffbaac9ce1b95d49443d52963"}, "url": "/docs/compare/?release=9.2.20#9.2.20-eff451e7b360abcb", "source_url": "/docs/release/9.2.20/#id-1.11.6.9.5"}]}, {"id": "9.6.2-1b733fffaed0caf4", "cves": [], "html": "<p>防止 <code>ts_rewrite()</code> 用空查询替换非顶层子树时崩溃（Artur Zakirov）</p>", "text": "防止 ts_rewrite() 用空查询替换非顶层子树时崩溃（Artur Zakirov）", "title": "防止 ts_rewrite() 用空查询替换非顶层子树时崩溃", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5", "source_hash": "34c20dad3d063dddf18ed7e676bd4ed696d2c1c61994d53aee29d03ae29865a0", "section_path": ["变更"], "commit_groups": [["0eaaaf00e", "6f5cb982e", "79e1a9efa", "c6caa5200", "c8bfe055b", "f4ccee408"]], "identity_text": "Prevent crash when ts_rewrite() replaces a non-top-level subtree with an empty query (Artur Zakirov)", "commit_aliases": ["0eaaaf00e", "6f5cb982e", "79e1a9efa", "c6caa5200", "c8bfe055b", "f4ccee408"], "source_commits": ["c8bfe055b"], "source_entry_id": "9.6.2/changes/031", "db_id": "1ad120bd822b42e5ce4decf1901d8154", "patch_ids": ["524e3352ba661bb86107fac788efd7ca"], "statement_hash": "69e51969a7a4e690ce4b7f629e2b814b2017844a53bc1112d03d60fbf86fa006", "relations": [{"rule": 2, "type": "equivalent", "target": "2df43244e2125ac7b6bf7ca7cebeceee", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "69e51969a7a4e690ce4b7f629e2b814b2017844a53bc1112d03d60fbf86fa006"}}, {"rule": 2, "type": "equivalent", "target": "3e2d55ea9ee221b83b420165e030a10a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "69e51969a7a4e690ce4b7f629e2b814b2017844a53bc1112d03d60fbf86fa006"}}, {"rule": 2, "type": "equivalent", "target": "a636489603d1cbf480e8bbd749c75c94", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "69e51969a7a4e690ce4b7f629e2b814b2017844a53bc1112d03d60fbf86fa006"}}, {"rule": 2, "type": "equivalent", "target": "d6c330345c9debe55108886fee1afad3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "69e51969a7a4e690ce4b7f629e2b814b2017844a53bc1112d03d60fbf86fa006"}}], "version": "9.6.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "a636489603d1cbf480e8bbd749c75c94", "kind": "equivalent", "version": "9.5.6", "label": "9.5.6", "title": "防止 ts_rewrite() 用空查询替换非顶层子树时崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "69e51969a7a4e690ce4b7f629e2b814b2017844a53bc1112d03d60fbf86fa006"}, "url": "/docs/compare/?release=9.5.6#9.5.6-1b733fffaed0caf4", "source_url": "/docs/release/9.5.6/#id-1.11.6.24.5"}, {"db_id": "2df43244e2125ac7b6bf7ca7cebeceee", "kind": "equivalent", "version": "9.4.11", "label": "9.4.11", "title": "防止 ts_rewrite() 用空查询替换非顶层子树时崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "69e51969a7a4e690ce4b7f629e2b814b2017844a53bc1112d03d60fbf86fa006"}, "url": "/docs/compare/?release=9.4.11#9.4.11-1b733fffaed0caf4", "source_url": "/docs/release/9.4.11/#id-1.11.6.20.5"}, {"db_id": "d6c330345c9debe55108886fee1afad3", "kind": "equivalent", "version": "9.3.16", "label": "9.3.16", "title": "防止 ts_rewrite() 用空查询替换非顶层子树时崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "69e51969a7a4e690ce4b7f629e2b814b2017844a53bc1112d03d60fbf86fa006"}, "url": "/docs/compare/?release=9.3.16#9.3.16-1b733fffaed0caf4", "source_url": "/docs/release/9.3.16/#id-1.11.6.14.5"}, {"db_id": "3e2d55ea9ee221b83b420165e030a10a", "kind": "equivalent", "version": "9.2.20", "label": "9.2.20", "title": "防止 ts_rewrite() 用空查询替换非顶层子树时崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "69e51969a7a4e690ce4b7f629e2b814b2017844a53bc1112d03d60fbf86fa006"}, "url": "/docs/compare/?release=9.2.20#9.2.20-1b733fffaed0caf4", "source_url": "/docs/release/9.2.20/#id-1.11.6.9.5"}]}, {"id": "9.6.2-46a730393b762f11", "cves": [], "html": "<p>修复 <code>ts_rewrite()</code> 的性能问题（Tom Lane）</p>", "text": "修复 ts_rewrite() 的性能问题（Tom Lane）", "title": "修复 ts_rewrite() 的性能问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5", "source_hash": "f75795e87f6534166f9073aafd13486695ce065dcef85385265c4fa4091846cb", "section_path": ["变更"], "commit_groups": [["407d513df", "464326e83", "514797a52", "5ec81acee", "606e16a7f", "e0491c19d"]], "identity_text": "Fix performance problems in ts_rewrite() (Tom Lane)", "commit_aliases": ["407d513df", "464326e83", "514797a52", "5ec81acee", "606e16a7f", "e0491c19d"], "source_commits": ["464326e83"], "source_entry_id": "9.6.2/changes/032", "db_id": "b48a6e714c9918aceca947ccd0094617", "patch_ids": ["8f0fad08214605711bc092113758a508"], "statement_hash": "c4afeed2b20915c8ae62a504975ed28217cbf578c3fad53bbd712d65d25dfbe1", "relations": [{"rule": 2, "type": "equivalent", "target": "1f5824f69393d547f3375c08032a9e07", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c4afeed2b20915c8ae62a504975ed28217cbf578c3fad53bbd712d65d25dfbe1"}}, {"rule": 2, "type": "equivalent", "target": "6c3e04dad251af4d71379579d3d357e8", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c4afeed2b20915c8ae62a504975ed28217cbf578c3fad53bbd712d65d25dfbe1"}}, {"rule": 2, "type": "equivalent", "target": "7c9d5ec604ecf94f33a79a9602c27a17", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c4afeed2b20915c8ae62a504975ed28217cbf578c3fad53bbd712d65d25dfbe1"}}, {"rule": 2, "type": "equivalent", "target": "aedb568933d91d1c73c63db3629de155", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c4afeed2b20915c8ae62a504975ed28217cbf578c3fad53bbd712d65d25dfbe1"}}], "version": "9.6.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "6c3e04dad251af4d71379579d3d357e8", "kind": "equivalent", "version": "9.5.6", "label": "9.5.6", "title": "修复 ts_rewrite() 的性能问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c4afeed2b20915c8ae62a504975ed28217cbf578c3fad53bbd712d65d25dfbe1"}, "url": "/docs/compare/?release=9.5.6#9.5.6-46a730393b762f11", "source_url": "/docs/release/9.5.6/#id-1.11.6.24.5"}, {"db_id": "aedb568933d91d1c73c63db3629de155", "kind": "equivalent", "version": "9.4.11", "label": "9.4.11", "title": "修复 ts_rewrite() 的性能问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c4afeed2b20915c8ae62a504975ed28217cbf578c3fad53bbd712d65d25dfbe1"}, "url": "/docs/compare/?release=9.4.11#9.4.11-46a730393b762f11", "source_url": "/docs/release/9.4.11/#id-1.11.6.20.5"}, {"db_id": "7c9d5ec604ecf94f33a79a9602c27a17", "kind": "equivalent", "version": "9.3.16", "label": "9.3.16", "title": "修复 ts_rewrite() 的性能问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c4afeed2b20915c8ae62a504975ed28217cbf578c3fad53bbd712d65d25dfbe1"}, "url": "/docs/compare/?release=9.3.16#9.3.16-46a730393b762f11", "source_url": "/docs/release/9.3.16/#id-1.11.6.14.5"}, {"db_id": "1f5824f69393d547f3375c08032a9e07", "kind": "equivalent", "version": "9.2.20", "label": "9.2.20", "title": "修复 ts_rewrite() 的性能问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c4afeed2b20915c8ae62a504975ed28217cbf578c3fad53bbd712d65d25dfbe1"}, "url": "/docs/compare/?release=9.2.20#9.2.20-46a730393b762f11", "source_url": "/docs/release/9.2.20/#id-1.11.6.9.5"}]}, {"id": "9.6.2-96f8b0ba7bf5c9fa", "cves": [], "html": "<p>修复 <code>ts_rewrite()</code> 对嵌套 NOT 操作符的处理（Tom Lane）</p>", "text": "修复 ts_rewrite() 对嵌套 NOT 操作符的处理（Tom Lane）", "title": "修复 ts_rewrite() 对嵌套 NOT 操作符的处理", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5", "source_hash": "31de3ce57578639b5c433e61e3eac72ed75b3a4b049ae077bad708cc3c455097", "section_path": ["变更"], "commit_groups": [["24ebc444c", "2a2b439cc", "77a22f898", "b0f8a273e", "de7387604", "f0c2ce45e"]], "identity_text": "Fix ts_rewrite()'s handling of nested NOT operators (Tom Lane)", "commit_aliases": ["24ebc444c", "2a2b439cc", "77a22f898", "b0f8a273e", "de7387604", "f0c2ce45e"], "source_commits": ["2a2b439cc"], "source_entry_id": "9.6.2/changes/033", "db_id": "1955174329b5ccdb9c211201d0b4c59d", "patch_ids": ["86c02ecaacb2a946070693a674a8ca14"], "statement_hash": "048542196eff719f65d7460633977e03267fcf45b2c4e592da8e68cc2f2d63d0", "relations": [{"rule": 2, "type": "equivalent", "target": "103c4627f3d335c63cfaf9772d07be58", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "048542196eff719f65d7460633977e03267fcf45b2c4e592da8e68cc2f2d63d0"}}, {"rule": 2, "type": "equivalent", "target": "7dcfada5b7da833763dbaaac496f5553", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "048542196eff719f65d7460633977e03267fcf45b2c4e592da8e68cc2f2d63d0"}}, {"rule": 2, "type": "equivalent", "target": "d159053347d63c8729260287facb7141", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "048542196eff719f65d7460633977e03267fcf45b2c4e592da8e68cc2f2d63d0"}}, {"rule": 2, "type": "equivalent", "target": "dedf4985fd71589c29886993b02e9ad5", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "048542196eff719f65d7460633977e03267fcf45b2c4e592da8e68cc2f2d63d0"}}], "version": "9.6.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "7dcfada5b7da833763dbaaac496f5553", "kind": "equivalent", "version": "9.5.6", "label": "9.5.6", "title": "修复 ts_rewrite() 对嵌套 NOT 操作符的处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "048542196eff719f65d7460633977e03267fcf45b2c4e592da8e68cc2f2d63d0"}, "url": "/docs/compare/?release=9.5.6#9.5.6-96f8b0ba7bf5c9fa", "source_url": "/docs/release/9.5.6/#id-1.11.6.24.5"}, {"db_id": "d159053347d63c8729260287facb7141", "kind": "equivalent", "version": "9.4.11", "label": "9.4.11", "title": "修复 ts_rewrite() 对嵌套 NOT 操作符的处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "048542196eff719f65d7460633977e03267fcf45b2c4e592da8e68cc2f2d63d0"}, "url": "/docs/compare/?release=9.4.11#9.4.11-96f8b0ba7bf5c9fa", "source_url": "/docs/release/9.4.11/#id-1.11.6.20.5"}, {"db_id": "dedf4985fd71589c29886993b02e9ad5", "kind": "equivalent", "version": "9.3.16", "label": "9.3.16", "title": "修复 ts_rewrite() 对嵌套 NOT 操作符的处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "048542196eff719f65d7460633977e03267fcf45b2c4e592da8e68cc2f2d63d0"}, "url": "/docs/compare/?release=9.3.16#9.3.16-96f8b0ba7bf5c9fa", "source_url": "/docs/release/9.3.16/#id-1.11.6.14.5"}, {"db_id": "103c4627f3d335c63cfaf9772d07be58", "kind": "equivalent", "version": "9.2.20", "label": "9.2.20", "title": "修复 ts_rewrite() 对嵌套 NOT 操作符的处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "048542196eff719f65d7460633977e03267fcf45b2c4e592da8e68cc2f2d63d0"}, "url": "/docs/compare/?release=9.2.20#9.2.20-96f8b0ba7bf5c9fa", "source_url": "/docs/release/9.2.20/#id-1.11.6.9.5"}]}, {"id": "9.6.2-c98052999c7e6f27", "cves": [], "html": "<p>提高使用 <code>array_append()</code> 作为转换函数的用户定义聚合的速度（Tom Lane）</p>", "text": "提高使用 array_append() 作为转换函数的用户定义聚合的速度（Tom Lane）", "title": "提高使用 array_append() 作为转换函数的用户定义聚合的速度", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5", "source_hash": "4391b41bbd8cbd224f33b21080d39dc906040b5b9e6576db97b6c60519782124", "section_path": ["变更"], "commit_groups": [["48a6592da", "7151e72d7", "9a00f03e4"]], "identity_text": "Improve speed of user-defined aggregates that use array_append() as transition function (Tom Lane)", "commit_aliases": ["48a6592da", "7151e72d7", "9a00f03e4"], "source_commits": ["48a6592da"], "source_entry_id": "9.6.2/changes/034", "db_id": "aca3d20838bd2ee17ded08493f496ffc", "patch_ids": ["a6fbf600f4ec0342f6062c94db275d56"], "statement_hash": "f3071a7ed53bb8c0b0db18a377e8184a1853dba1bd11d39e180b45a9c39a5945", "relations": [{"rule": 2, "type": "equivalent", "target": "8373d8c2ce77a44a4161a6e6852abfda", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f3071a7ed53bb8c0b0db18a377e8184a1853dba1bd11d39e180b45a9c39a5945"}}], "version": "9.6.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "8373d8c2ce77a44a4161a6e6852abfda", "kind": "equivalent", "version": "9.5.6", "label": "9.5.6", "title": "提高使用 array_append() 作为转换函数的用户定义聚合的速度", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f3071a7ed53bb8c0b0db18a377e8184a1853dba1bd11d39e180b45a9c39a5945"}, "url": "/docs/compare/?release=9.5.6#9.5.6-c98052999c7e6f27", "source_url": "/docs/release/9.5.6/#id-1.11.6.24.5"}]}, {"id": "9.6.2-11a92e5c26f1b0f5", "cves": [], "html": "<p>修复 <code>array_fill()</code> 正确处理空数组（Tom Lane）</p>", "text": "修复 array_fill() 正确处理空数组（Tom Lane）", "title": "修复 array_fill() 正确处理空数组", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5", "source_hash": "e97b10cb2df9c00087435ff439e93424727705e5b525ab3e5de9b8807d3685e2", "section_path": ["变更"], "commit_groups": [["4555a375a", "4e446563b", "5b4f8f4c6", "82f8107b9", "e0d59c6ef", "ee9cb284a"]], "identity_text": "Fix array_fill() to handle empty arrays properly (Tom Lane)", "commit_aliases": ["4555a375a", "4e446563b", "5b4f8f4c6", "82f8107b9", "e0d59c6ef", "ee9cb284a"], "source_commits": ["5b4f8f4c6"], "source_entry_id": "9.6.2/changes/035", "db_id": "8b998e09fa39e92645bf76cf7654e7cd", "patch_ids": ["00cecf29722051a263b03c453566b095"], "statement_hash": "3fbe337ff90368d1b7a4b6a07de5f190a370a8c6a63528086d992cbc05fff6ac", "relations": [{"rule": 2, "type": "equivalent", "target": "3bc26bda247376a0b791a32215b0d4e3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3fbe337ff90368d1b7a4b6a07de5f190a370a8c6a63528086d992cbc05fff6ac"}}, {"rule": 2, "type": "equivalent", "target": "86f4f8f81874a3056f1fa1b714aadf62", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3fbe337ff90368d1b7a4b6a07de5f190a370a8c6a63528086d992cbc05fff6ac"}}, {"rule": 2, "type": "equivalent", "target": "b42a04eefcfe8f30ea47c10da25f4d61", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3fbe337ff90368d1b7a4b6a07de5f190a370a8c6a63528086d992cbc05fff6ac"}}, {"rule": 2, "type": "equivalent", "target": "df786aaf54cc17fb935820452a2c7724", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3fbe337ff90368d1b7a4b6a07de5f190a370a8c6a63528086d992cbc05fff6ac"}}], "version": "9.6.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "b42a04eefcfe8f30ea47c10da25f4d61", "kind": "equivalent", "version": "9.5.6", "label": "9.5.6", "title": "修复 array_fill() 正确处理空数组", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3fbe337ff90368d1b7a4b6a07de5f190a370a8c6a63528086d992cbc05fff6ac"}, "url": "/docs/compare/?release=9.5.6#9.5.6-11a92e5c26f1b0f5", "source_url": "/docs/release/9.5.6/#id-1.11.6.24.5"}, {"db_id": "86f4f8f81874a3056f1fa1b714aadf62", "kind": "equivalent", "version": "9.4.11", "label": "9.4.11", "title": "修复 array_fill() 正确处理空数组", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3fbe337ff90368d1b7a4b6a07de5f190a370a8c6a63528086d992cbc05fff6ac"}, "url": "/docs/compare/?release=9.4.11#9.4.11-11a92e5c26f1b0f5", "source_url": "/docs/release/9.4.11/#id-1.11.6.20.5"}, {"db_id": "3bc26bda247376a0b791a32215b0d4e3", "kind": "equivalent", "version": "9.3.16", "label": "9.3.16", "title": "修复 array_fill() 正确处理空数组", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3fbe337ff90368d1b7a4b6a07de5f190a370a8c6a63528086d992cbc05fff6ac"}, "url": "/docs/compare/?release=9.3.16#9.3.16-11a92e5c26f1b0f5", "source_url": "/docs/release/9.3.16/#id-1.11.6.14.5"}, {"db_id": "df786aaf54cc17fb935820452a2c7724", "kind": "equivalent", "version": "9.2.20", "label": "9.2.20", "title": "修复 array_fill() 正确处理空数组", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3fbe337ff90368d1b7a4b6a07de5f190a370a8c6a63528086d992cbc05fff6ac"}, "url": "/docs/compare/?release=9.2.20#9.2.20-11a92e5c26f1b0f5", "source_url": "/docs/release/9.2.20/#id-1.11.6.9.5"}]}, {"id": "9.6.2-88d0b1daae848817", "cves": [], "html": "<p>修复 <code>array_position()</code> 或 <code>array_positions()</code> 处理记录数组时可能的崩溃（Junseok Yang）</p>", "text": "修复 array_position() 或 array_positions() 处理记录数组时可能的崩溃（Junseok Yang）", "title": "修复 array_position() 或 array_positions() 处理记录数组时可能的崩溃", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5", "source_hash": "9db7bd9af75dfdce52e9674e4150476cef9cd9f991e00147714a05a31063e65e", "section_path": ["变更"], "commit_groups": [["581b09c72", "79c89f1f4", "a73491e5f"]], "identity_text": "Fix possible crash in array_position() or array_positions() when processing arrays of records (Junseok Yang)", "commit_aliases": ["581b09c72", "79c89f1f4", "a73491e5f"], "source_commits": ["79c89f1f4"], "source_entry_id": "9.6.2/changes/036", "db_id": "4f0d99f12e43e846436439f5ac7492fb", "patch_ids": ["979eeb3c6cd41c3f47ebd5b86d1516a7"], "statement_hash": "a93bd5503cf11571033cd976491a75e63e400939741ffe67e26e62f1c198feef", "relations": [{"rule": 2, "type": "equivalent", "target": "b94a06666d3adc1499873a5c26db431e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a93bd5503cf11571033cd976491a75e63e400939741ffe67e26e62f1c198feef"}}], "version": "9.6.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "b94a06666d3adc1499873a5c26db431e", "kind": "equivalent", "version": "9.5.6", "label": "9.5.6", "title": "修复 array_position() 或 array_positions() 处理记录数组时可能的崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a93bd5503cf11571033cd976491a75e63e400939741ffe67e26e62f1c198feef"}, "url": "/docs/compare/?release=9.5.6#9.5.6-88d0b1daae848817", "source_url": "/docs/release/9.5.6/#id-1.11.6.24.5"}]}, {"id": "9.6.2-5116023449e8f470", "cves": [], "html": "<p>修复 <code>quote_literal_cstr()</code> 中的一字节缓冲区越界（Heikki Linnakangas）</p>\n<p>只有当输入完全由单引号和/或反斜线组成时才会发生越界。</p>", "text": "修复 quote_literal_cstr() 中的一字节缓冲区越界（Heikki Linnakangas） 只有当输入完全由单引号和/或反斜线组成时才会发生越界。", "title": "修复 quote_literal_cstr() 中的一字节缓冲区越界", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5", "source_hash": "6234a71b5e41e313191d03e2c4a513aa919bbd6ae5724bee0990783da9775143", "section_path": ["变更"], "commit_groups": [["0fe5a4cd7", "4f5182e18", "595333ff4", "779325478", "c8f8ed5c2", "e71fe8470"]], "identity_text": "Fix one-byte buffer overrun in quote_literal_cstr() (Heikki Linnakangas) The overrun occurred only if the input consisted entirely of single quotes and/or backslashes.", "commit_aliases": ["0fe5a4cd7", "4f5182e18", "595333ff4", "779325478", "c8f8ed5c2", "e71fe8470"], "source_commits": ["0fe5a4cd7"], "source_entry_id": "9.6.2/changes/037", "db_id": "ca1e35c79adeabc54efc1d6777143db9", "patch_ids": ["984dcf938e401fe44f2a05a7d663125e"], "statement_hash": "c815ad152600ce400500d2b6904c02a8f1e2aabaeea8e95e370685bd580c3363", "relations": [{"rule": 2, "type": "equivalent", "target": "10a5bbcfd71d433423afebd1522c42b9", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c815ad152600ce400500d2b6904c02a8f1e2aabaeea8e95e370685bd580c3363"}}, {"rule": 2, "type": "equivalent", "target": "1207f1dadef5930c562a950286517ce1", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c815ad152600ce400500d2b6904c02a8f1e2aabaeea8e95e370685bd580c3363"}}, {"rule": 2, "type": "equivalent", "target": "cac299f1d0f8356d356789ac772e0acc", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c815ad152600ce400500d2b6904c02a8f1e2aabaeea8e95e370685bd580c3363"}}, {"rule": 2, "type": "equivalent", "target": "ee3ffeab5f1f036a7d5faeb3a592b9da", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c815ad152600ce400500d2b6904c02a8f1e2aabaeea8e95e370685bd580c3363"}}], "version": "9.6.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "10a5bbcfd71d433423afebd1522c42b9", "kind": "equivalent", "version": "9.5.6", "label": "9.5.6", "title": "修复 quote_literal_cstr() 中的一字节缓冲区越界", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c815ad152600ce400500d2b6904c02a8f1e2aabaeea8e95e370685bd580c3363"}, "url": "/docs/compare/?release=9.5.6#9.5.6-5116023449e8f470", "source_url": "/docs/release/9.5.6/#id-1.11.6.24.5"}, {"db_id": "cac299f1d0f8356d356789ac772e0acc", "kind": "equivalent", "version": "9.4.11", "label": "9.4.11", "title": "修复 quote_literal_cstr() 中的一字节缓冲区越界", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c815ad152600ce400500d2b6904c02a8f1e2aabaeea8e95e370685bd580c3363"}, "url": "/docs/compare/?release=9.4.11#9.4.11-5116023449e8f470", "source_url": "/docs/release/9.4.11/#id-1.11.6.20.5"}, {"db_id": "1207f1dadef5930c562a950286517ce1", "kind": "equivalent", "version": "9.3.16", "label": "9.3.16", "title": "修复 quote_literal_cstr() 中的一字节缓冲区越界", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c815ad152600ce400500d2b6904c02a8f1e2aabaeea8e95e370685bd580c3363"}, "url": "/docs/compare/?release=9.3.16#9.3.16-5116023449e8f470", "source_url": "/docs/release/9.3.16/#id-1.11.6.14.5"}, {"db_id": "ee3ffeab5f1f036a7d5faeb3a592b9da", "kind": "equivalent", "version": "9.2.20", "label": "9.2.20", "title": "修复 quote_literal_cstr() 中的一字节缓冲区越界", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c815ad152600ce400500d2b6904c02a8f1e2aabaeea8e95e370685bd580c3363"}, "url": "/docs/compare/?release=9.2.20#9.2.20-5116023449e8f470", "source_url": "/docs/release/9.2.20/#id-1.11.6.9.5"}]}, {"id": "9.6.2-ad45c4e99311a5d6", "cves": [], "html": "<p>防止 <code>pg_start_backup()</code> 和 <code>pg_stop_backup()</code> 的多次调用并发运行（Michael Paquier）</p>\n<p>这避免了有人试图并行运行这些函数时的断言失败以及可能更糟的事情。</p>", "text": "防止 pg_start_backup() 和 pg_stop_backup() 的多次调用并发运行（Michael Paquier） 这避免了有人试图并行运行这些函数时的断言失败以及可能更糟的事情。", "title": "防止 pg_start_backup() 和 pg_stop_backup() 的多次调用并发运行", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5", "source_hash": "2b235015419268d7d0a33392ea8af18e164bbf00f6f12eedbcb8f34c494c1223", "section_path": ["变更"], "commit_groups": [["60a8b63d2", "974ece58b", "9e7f00d86", "c73157ca0", "dfe348c1b", "f64b11fa0"]], "identity_text": "Prevent multiple calls of pg_start_backup() and pg_stop_backup() from running concurrently (Michael Paquier) This avoids an assertion failure, and possibly worse things, if someone tries to run these functions in parallel.", "commit_aliases": ["60a8b63d2", "974ece58b", "9e7f00d86", "c73157ca0", "dfe348c1b", "f64b11fa0"], "source_commits": ["60a8b63d2"], "source_entry_id": "9.6.2/changes/038", "db_id": "687224dcab90b5b2af651f8438c6598c", "patch_ids": ["9571a75d1e657dac0edf5454f0a333c3"], "statement_hash": "ea848ad5b9d054425416fb844da6f44e151cafea9147a25cfbf137582bd57bbf", "relations": [{"rule": 2, "type": "equivalent", "target": "1ef018685a9c483cd28f9ca52e3c966a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ea848ad5b9d054425416fb844da6f44e151cafea9147a25cfbf137582bd57bbf"}}, {"rule": 2, "type": "equivalent", "target": "23cf73717317ca27a5983c7fcb59cdf5", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ea848ad5b9d054425416fb844da6f44e151cafea9147a25cfbf137582bd57bbf"}}, {"rule": 2, "type": "equivalent", "target": "acd2eba3f7197ed9790f383a150768bb", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ea848ad5b9d054425416fb844da6f44e151cafea9147a25cfbf137582bd57bbf"}}, {"rule": 2, "type": "equivalent", "target": "ed7140f1a4fdb9bd4e31465aaaff57b3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ea848ad5b9d054425416fb844da6f44e151cafea9147a25cfbf137582bd57bbf"}}], "version": "9.6.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "1ef018685a9c483cd28f9ca52e3c966a", "kind": "equivalent", "version": "9.5.6", "label": "9.5.6", "title": "防止 pg_start_backup() 和 pg_stop_backup() 的多次调用并发运行", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ea848ad5b9d054425416fb844da6f44e151cafea9147a25cfbf137582bd57bbf"}, "url": "/docs/compare/?release=9.5.6#9.5.6-ad45c4e99311a5d6", "source_url": "/docs/release/9.5.6/#id-1.11.6.24.5"}, {"db_id": "acd2eba3f7197ed9790f383a150768bb", "kind": "equivalent", "version": "9.4.11", "label": "9.4.11", "title": "防止 pg_start_backup() 和 pg_stop_backup() 的多次调用并发运行", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ea848ad5b9d054425416fb844da6f44e151cafea9147a25cfbf137582bd57bbf"}, "url": "/docs/compare/?release=9.4.11#9.4.11-ad45c4e99311a5d6", "source_url": "/docs/release/9.4.11/#id-1.11.6.20.5"}, {"db_id": "23cf73717317ca27a5983c7fcb59cdf5", "kind": "equivalent", "version": "9.3.16", "label": "9.3.16", "title": "防止 pg_start_backup() 和 pg_stop_backup() 的多次调用并发运行", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ea848ad5b9d054425416fb844da6f44e151cafea9147a25cfbf137582bd57bbf"}, "url": "/docs/compare/?release=9.3.16#9.3.16-ad45c4e99311a5d6", "source_url": "/docs/release/9.3.16/#id-1.11.6.14.5"}, {"db_id": "ed7140f1a4fdb9bd4e31465aaaff57b3", "kind": "equivalent", "version": "9.2.20", "label": "9.2.20", "title": "防止 pg_start_backup() 和 pg_stop_backup() 的多次调用并发运行", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ea848ad5b9d054425416fb844da6f44e151cafea9147a25cfbf137582bd57bbf"}, "url": "/docs/compare/?release=9.2.20#9.2.20-ad45c4e99311a5d6", "source_url": "/docs/release/9.2.20/#id-1.11.6.9.5"}]}, {"id": "9.6.2-6a7fb3a29350126c", "cves": [], "html": "<p>禁用试图移除无操作 <code>AT TIME ZONE</code> 转换的变换（Tom Lane）</p>\n<p>当简化后的表达式用于索引条件时，这导致错误答案。</p>", "text": "禁用试图移除无操作 AT TIME ZONE 转换的变换（Tom Lane） 当简化后的表达式用于索引条件时，这导致错误答案。", "title": "禁用试图移除无操作 AT TIME ZONE 转换的变换", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5", "source_hash": "6ab55b6e003d01a869d10b7c0c0f67caf11f70d92fdb357d8e58d109699b6c2d", "section_path": ["变更"], "commit_groups": [["74e67bbad", "b21e665f2", "c22ecc656"]], "identity_text": "Disable transform that attempted to remove no-op AT TIME ZONE conversions (Tom Lane) This resulted in wrong answers when the simplified expression was used in an index condition.", "commit_aliases": ["74e67bbad", "b21e665f2", "c22ecc656"], "source_commits": ["b21e665f2"], "source_entry_id": "9.6.2/changes/039", "db_id": "62a6eb182d3060f0f6bda442395dcec4", "patch_ids": ["1956214fac6d9ae264c859ec725bd5cf"], "statement_hash": "aadd77cd6da7cd7a24f6882b01465d9b3e227c5fd7da1bbc0a547a4c3d0a5d30", "relations": [{"rule": 2, "type": "equivalent", "target": "4b0a80a80bdefecbb41d1f2adf7d47e8", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "aadd77cd6da7cd7a24f6882b01465d9b3e227c5fd7da1bbc0a547a4c3d0a5d30"}}], "version": "9.6.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "4b0a80a80bdefecbb41d1f2adf7d47e8", "kind": "equivalent", "version": "9.5.6", "label": "9.5.6", "title": "禁用试图移除无操作 AT TIME ZONE 转换的变换", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "aadd77cd6da7cd7a24f6882b01465d9b3e227c5fd7da1bbc0a547a4c3d0a5d30"}, "url": "/docs/compare/?release=9.5.6#9.5.6-6a7fb3a29350126c", "source_url": "/docs/release/9.5.6/#id-1.11.6.24.5"}]}, {"id": "9.6.2-8943a394f75ad1d5", "cves": [], "html": "<p>避免丢弃并非真正无操作的 <code>interval</code> 到 <code>interval</code> 强制转换（Tom Lane）</p>\n<p>某些情况下，本应导致清零低阶 <code>interval</code> 字段的强制转换被错误地当作无操作而丢弃。例如从 <code>INTERVAL MONTH</code> 转换到 <code>INTERVAL YEAR</code> 未能清除月份字段。</p>", "text": "避免丢弃并非真正无操作的 interval 到 interval 强制转换（Tom Lane） 某些情况下，本应导致清零低阶 interval 字段的强制转换被错误地当作无操作而丢弃。例如从 INTERVAL MONTH 转换到 INTERVAL YEAR 未能清除月份字段。", "title": "避免丢弃并非真正无操作的 interval 到 interval 强制转换", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5", "source_hash": "55fecb844ece87f693876ecf8ec489960a4f7881f72100345697b726db0e7205", "section_path": ["变更"], "commit_groups": [["0b947b692", "21e24eb9a", "4efe7aa2d", "583599839", "beae7d5f0", "f0774abde"]], "identity_text": "Avoid discarding interval-to-interval casts that aren't really no-ops (Tom Lane) In some cases, a cast that should result in zeroing out low-order interval fields was mistakenly deemed to be a no-op and discarded. An example is that casting from INTERVAL MONTH to INTERVAL YEAR failed to clear the months field.", "commit_aliases": ["0b947b692", "21e24eb9a", "4efe7aa2d", "583599839", "beae7d5f0", "f0774abde"], "source_commits": ["21e24eb9a"], "source_entry_id": "9.6.2/changes/040", "db_id": "e248e2718d6804294de52aff8888e4ac", "patch_ids": ["1f893fbee91f679635e14699d87d7972"], "statement_hash": "c115167028f4df75e0e2b6b3cdf794502b5e5753b36c6ec9fc95bd344db48ec6", "relations": [{"rule": 2, "type": "equivalent", "target": "22d23dc52cffb0a68ddc7fb66794ed3e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c115167028f4df75e0e2b6b3cdf794502b5e5753b36c6ec9fc95bd344db48ec6"}}, {"rule": 2, "type": "equivalent", "target": "81db7ea24635608650b11971639f5898", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c115167028f4df75e0e2b6b3cdf794502b5e5753b36c6ec9fc95bd344db48ec6"}}, {"rule": 2, "type": "equivalent", "target": "96f623510909436fffafe711bab45701", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c115167028f4df75e0e2b6b3cdf794502b5e5753b36c6ec9fc95bd344db48ec6"}}, {"rule": 2, "type": "equivalent", "target": "e198f84900b2693f4096946b7a53bdd1", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c115167028f4df75e0e2b6b3cdf794502b5e5753b36c6ec9fc95bd344db48ec6"}}], "version": "9.6.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "96f623510909436fffafe711bab45701", "kind": "equivalent", "version": "9.5.6", "label": "9.5.6", "title": "避免丢弃并非真正无操作的 interval 到 interval 强制转换", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c115167028f4df75e0e2b6b3cdf794502b5e5753b36c6ec9fc95bd344db48ec6"}, "url": "/docs/compare/?release=9.5.6#9.5.6-8943a394f75ad1d5", "source_url": "/docs/release/9.5.6/#id-1.11.6.24.5"}, {"db_id": "81db7ea24635608650b11971639f5898", "kind": "equivalent", "version": "9.4.11", "label": "9.4.11", "title": "避免丢弃并非真正无操作的 interval 到 interval 强制转换", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c115167028f4df75e0e2b6b3cdf794502b5e5753b36c6ec9fc95bd344db48ec6"}, "url": "/docs/compare/?release=9.4.11#9.4.11-8943a394f75ad1d5", "source_url": "/docs/release/9.4.11/#id-1.11.6.20.5"}, {"db_id": "e198f84900b2693f4096946b7a53bdd1", "kind": "equivalent", "version": "9.3.16", "label": "9.3.16", "title": "避免丢弃并非真正无操作的 interval 到 interval 强制转换", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c115167028f4df75e0e2b6b3cdf794502b5e5753b36c6ec9fc95bd344db48ec6"}, "url": "/docs/compare/?release=9.3.16#9.3.16-8943a394f75ad1d5", "source_url": "/docs/release/9.3.16/#id-1.11.6.14.5"}, {"db_id": "22d23dc52cffb0a68ddc7fb66794ed3e", "kind": "equivalent", "version": "9.2.20", "label": "9.2.20", "title": "避免丢弃并非真正无操作的 interval 到 interval 强制转换", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c115167028f4df75e0e2b6b3cdf794502b5e5753b36c6ec9fc95bd344db48ec6"}, "url": "/docs/compare/?release=9.2.20#9.2.20-8943a394f75ad1d5", "source_url": "/docs/release/9.2.20/#id-1.11.6.9.5"}]}, {"id": "9.6.2-d68aa1561f7125af", "cves": [], "html": "<p>修复并行查询重扫描期间可用工作者数量减少时的崩溃（Andreas Seltenreich）</p>", "text": "修复并行查询重扫描期间可用工作者数量减少时的崩溃（Andreas Seltenreich）", "title": "修复并行查询重扫描期间可用工作者数量减少时的崩溃", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5", "source_hash": "15cc9558f92bdb70d3b736d5b832660bf6ed2bede0210b6960d7b278f8a40b6c", "section_path": ["变更"], "commit_groups": [["06fa6670f", "53c7cff72"]], "identity_text": "Fix crash if the number of workers available to a parallel query decreases during a rescan (Andreas Seltenreich)", "commit_aliases": ["06fa6670f", "53c7cff72"], "source_commits": ["06fa6670f"], "source_entry_id": "9.6.2/changes/041", "db_id": "09845d84751e21bf3bd628d3a6588fcd", "patch_ids": ["73f4acae55435c9455154ba95b220248"], "statement_hash": "2da70c691a2f598c2350224cbe296fb91e1f38addf8e0d97f7b9fa9f10353ac6", "relations": [], "version": "9.6.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.6.2-79e0776a09a09d74", "cves": [], "html": "<p>修复向并行工作者传输 GUC 参数值的 bug（Michael Paquier、Tom Lane）</p>", "text": "修复向并行工作者传输 GUC 参数值的 bug（Michael Paquier、Tom Lane）", "title": "修复向并行工作者传输 GUC 参数值的 bug", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5", "source_hash": "f90ce7196a3d994953d96cadeff816c7d97141406daeb3e42cbc8b00f259edb7", "section_path": ["变更"], "commit_groups": [["13671b4b2", "272c42660", "b9ee42e70"]], "identity_text": "Fix bugs in transmitting GUC parameter values to parallel workers (Michael Paquier, Tom Lane)", "commit_aliases": ["13671b4b2", "272c42660", "b9ee42e70"], "source_commits": ["272c42660"], "source_entry_id": "9.6.2/changes/042", "db_id": "046c364384c318fc6b905fad70841885", "patch_ids": ["1febbe626405440dfb1f995bc3d112eb"], "statement_hash": "929c5da99fd61412c4fb5e840f9ba947b2ebf5a79ec1be11cfa056c2f936522e", "relations": [{"rule": 2, "type": "equivalent", "target": "f1d6a5362cd3b5d2ef0595a667d7156f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "929c5da99fd61412c4fb5e840f9ba947b2ebf5a79ec1be11cfa056c2f936522e"}}], "version": "9.6.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "f1d6a5362cd3b5d2ef0595a667d7156f", "kind": "equivalent", "version": "9.5.6", "label": "9.5.6", "title": "修复向并行工作者传输 GUC 参数值的 bug", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "929c5da99fd61412c4fb5e840f9ba947b2ebf5a79ec1be11cfa056c2f936522e"}, "url": "/docs/compare/?release=9.5.6#9.5.6-79e0776a09a09d74", "source_url": "/docs/release/9.5.6/#id-1.11.6.24.5"}]}, {"id": "9.6.2-ed400a1978911c3d", "cves": [], "html": "<p>允许用 <code>PREPARE</code> 预备的语句获得并行计划（Amit Kapila、Tobias Bussmann）</p>", "text": "允许用 PREPARE 预备的语句获得并行计划（Amit Kapila、Tobias Bussmann）", "title": "允许用 PREPARE 预备的语句获得并行计划", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5", "source_hash": "58260c7ef78d82d344802d6d1b5bc7f0b660c1f546f66ac07188d91ba6ffc3ca", "section_path": ["变更"], "commit_groups": [["4212cb732", "ebe5dc9e0"]], "identity_text": "Allow statements prepared with PREPARE to be given parallel plans (Amit Kapila, Tobias Bussmann)", "commit_aliases": ["4212cb732", "ebe5dc9e0"], "source_commits": ["ebe5dc9e0"], "source_entry_id": "9.6.2/changes/043", "db_id": "d01bebf9b1925f5a6e5281cc7683e475", "patch_ids": ["713492733f679e15d7b655c225ceafe3"], "statement_hash": "180a82c8fcbd23e3ad2243de720bfb6b7d09e715f47c6fb495aa2b663e71a45e", "relations": [], "version": "9.6.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.6.2-7abeaa013f78aec3", "cves": [], "html": "<p>修复半连接并行计划的错误生成（Tom Lane）</p>", "text": "修复半连接并行计划的错误生成（Tom Lane）", "title": "修复半连接并行计划的错误生成", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5", "source_hash": "54016f1b0bd71883254e26057521f4a94cb3418343d26f090f8b61eaf826b8c8", "section_path": ["变更"], "commit_groups": [["41e2b84ce", "e5b8aa636"]], "identity_text": "Fix incorrect generation of parallel plans for semi-joins (Tom Lane)", "commit_aliases": ["41e2b84ce", "e5b8aa636"], "source_commits": ["e5b8aa636"], "source_entry_id": "9.6.2/changes/044", "db_id": "2e7ba915075e5e846539aeac87cd7d4a", "patch_ids": ["7e16a0fed8226d0e9892de9d99d5aee9"], "statement_hash": "84d894665707b36245611c477ddc3963eeca671ca4bbd3cb2ae3b8f2e4a5391b", "relations": [], "version": "9.6.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.6.2-0910ddb6d6d649a4", "cves": [], "html": "<p>修复规划器对并行连接的基数估计（Robert Haas）</p>\n<p>确保这些估计反映每个工作者预计看到的行数，而不是总数。</p>", "text": "修复规划器对并行连接的基数估计（Robert Haas） 确保这些估计反映每个工作者预计看到的行数，而不是总数。", "title": "修复规划器对并行连接的基数估计", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5", "source_hash": "764dbecf8befd0fe27c439c6a680a00f4175bbd839d563a4f832af66e2012b13", "section_path": ["变更"], "commit_groups": [["0c2070cef", "2d443ae1b"]], "identity_text": "Fix planner's cardinality estimates for parallel joins (Robert Haas) Ensure that these estimates reflect the number of rows predicted to be seen by each worker, rather than the total.", "commit_aliases": ["0c2070cef", "2d443ae1b"], "source_commits": ["2d443ae1b"], "source_entry_id": "9.6.2/changes/045", "db_id": "c1e8bf5e9a1cb408ee84b2605242d6d4", "patch_ids": ["9fd222ee5bdedc0bf573a1efe4430eaf"], "statement_hash": "320e5b62fff53cd033112e343f485da1c024c98f1c8f52586aef53b1a5af4a5e", "relations": [], "version": "9.6.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.6.2-524a1740557b8bc9", "cves": [], "html": "<p>修复规划器避免尝试并行化包含 initplan 或 subplan 的计划节点（Tom Lane、Amit Kapila）</p>", "text": "修复规划器避免尝试并行化包含 initplan 或 subplan 的计划节点（Tom Lane、Amit Kapila）", "title": "修复规划器避免尝试并行化包含 initplan 或 subplan 的计划节点", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5", "source_hash": "cc3b4462dce5d86060cadf15945965f2790be4b6faa5972acf03263dc2e028f4", "section_path": ["变更"], "commit_groups": [["01f08cbbc", "f24cf960d"], ["474de765a", "ab77a5a45"]], "identity_text": "Fix planner to avoid trying to parallelize plan nodes containing initplans or subplans (Tom Lane, Amit Kapila)", "commit_aliases": ["01f08cbbc", "474de765a", "ab77a5a45", "f24cf960d"], "source_commits": ["01f08cbbc", "474de765a"], "source_entry_id": "9.6.2/changes/046", "db_id": "520efb34d4348bd6b67081cb66d5c78e", "patch_ids": ["017ea92e5deec7806f2b414760064503", "496250597af4ee24c9f53fa6c12ac0cb"], "statement_hash": "7966a09dcfd84202ccc9ffae943ef1b0c1494558e2853f4fbd4230f7b2ba4810", "relations": [], "version": "9.6.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.6.2-d74df8927b35510c", "cves": [], "html": "<p>确保缓存计划因外部表选项的更改而失效（Amit Langote、Etsuro Fujita、Ashutosh Bapat）</p>", "text": "确保缓存计划因外部表选项的更改而失效（Amit Langote、Etsuro Fujita、Ashutosh Bapat）", "title": "确保缓存计划因外部表选项的更改而失效", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5", "source_hash": "559c5c6dfbd8aecc58cac7452c6b4bf5ceba776bf90385d672c317639c0af3ab", "section_path": ["变更"], "commit_groups": [["4103a2f20", "a8191800a", "aaf12e577", "c52d37c8b", "e4380e4cf"]], "identity_text": "Ensure that cached plans are invalidated by changes in foreign-table options (Amit Langote, Etsuro Fujita, Ashutosh Bapat)", "commit_aliases": ["4103a2f20", "a8191800a", "aaf12e577", "c52d37c8b", "e4380e4cf"], "source_commits": ["4103a2f20"], "source_entry_id": "9.6.2/changes/047", "db_id": "07273cabbed1e8889403b2e5ed486244", "patch_ids": ["111dddc6bc3ece1869c8907d2689a569"], "statement_hash": "57b4e27377c21ee50d71abbfe4cbea361e69dbbca91b8cbe725bad759f900300", "relations": [{"rule": 2, "type": "equivalent", "target": "2fd1741641c58d37f1ff04b3cf72b610", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "57b4e27377c21ee50d71abbfe4cbea361e69dbbca91b8cbe725bad759f900300"}}, {"rule": 2, "type": "equivalent", "target": "6235e93ff352456cef8e82479659a505", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "57b4e27377c21ee50d71abbfe4cbea361e69dbbca91b8cbe725bad759f900300"}}, {"rule": 2, "type": "equivalent", "target": "db0fbae43f58460ea06feb3c921dd878", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "57b4e27377c21ee50d71abbfe4cbea361e69dbbca91b8cbe725bad759f900300"}}], "version": "9.6.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "db0fbae43f58460ea06feb3c921dd878", "kind": "equivalent", "version": "9.5.6", "label": "9.5.6", "title": "确保缓存计划因外部表选项的更改而失效", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "57b4e27377c21ee50d71abbfe4cbea361e69dbbca91b8cbe725bad759f900300"}, "url": "/docs/compare/?release=9.5.6#9.5.6-d74df8927b35510c", "source_url": "/docs/release/9.5.6/#id-1.11.6.24.5"}, {"db_id": "6235e93ff352456cef8e82479659a505", "kind": "equivalent", "version": "9.4.11", "label": "9.4.11", "title": "确保缓存计划因外部表选项的更改而失效", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "57b4e27377c21ee50d71abbfe4cbea361e69dbbca91b8cbe725bad759f900300"}, "url": "/docs/compare/?release=9.4.11#9.4.11-d74df8927b35510c", "source_url": "/docs/release/9.4.11/#id-1.11.6.20.5"}, {"db_id": "2fd1741641c58d37f1ff04b3cf72b610", "kind": "equivalent", "version": "9.3.16", "label": "9.3.16", "title": "确保缓存计划因外部表选项的更改而失效", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "57b4e27377c21ee50d71abbfe4cbea361e69dbbca91b8cbe725bad759f900300"}, "url": "/docs/compare/?release=9.3.16#9.3.16-d74df8927b35510c", "source_url": "/docs/release/9.3.16/#id-1.11.6.14.5"}]}, {"id": "9.6.2-4a3ab919497e8982", "cves": [], "html": "<p>修复带常量 <code>GROUP BY</code> 子句的排序部分聚合的计划生成（Tom Lane）</p>", "text": "修复带常量 GROUP BY 子句的排序部分聚合的计划生成（Tom Lane）", "title": "修复带常量 GROUP BY 子句的排序部分聚合的计划生成", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5", "source_hash": "597b9d07b97c65df241465ff89853c7d880274da1b0c5121a1ca9636699edbbb", "section_path": ["变更"], "commit_groups": [["7defc3b97", "e1b449bea"]], "identity_text": "Fix the plan generated for sorted partial aggregation with a constant GROUP BY clause (Tom Lane)", "commit_aliases": ["7defc3b97", "e1b449bea"], "source_commits": ["7defc3b97"], "source_entry_id": "9.6.2/changes/048", "db_id": "355506c91c0323f188de9c0d04d23df1", "patch_ids": ["837bf63fe8ec79c475ed11bc40a95f02"], "statement_hash": "508598d3a62b43b0c9c46eccc90f4d46a29277f012414246c7d108a0577ef3ef", "relations": [], "version": "9.6.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.6.2-1cbefd137e29b0e0", "cves": [], "html": "<p>修复处理包含 CTE 引用的 <code>UNION ALL</code> 时的 <span>“<span>could not find plan for CTE</span>”</span> 规划器错误（Tom Lane）</p>", "text": "修复处理包含 CTE 引用的 UNION ALL 时的 “could not find plan for CTE” 规划器错误（Tom Lane）", "title": "修复处理包含 CTE 引用的 UNION ALL 时的 “could not find plan for CTE” 规划器错误", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5", "source_hash": "7450267869646d1e9c425777e132417a723b758b7060984180fe8400c4340b57", "section_path": ["变更"], "commit_groups": [["1f542a2ea", "997a2994e"]], "identity_text": "Fix could not find plan for CTE planner error when dealing with a UNION ALL containing CTE references (Tom Lane)", "commit_aliases": ["1f542a2ea", "997a2994e"], "source_commits": ["997a2994e"], "source_entry_id": "9.6.2/changes/049", "db_id": "e178943506cb74091a70b407f6b73ab5", "patch_ids": ["ef4dcf0a722e1c89b3643d4e2db70cf5"], "statement_hash": "943357ed98727ac044defc4eb4fd3752789968a968826312b7d3842fcd3caeab", "relations": [], "version": "9.6.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.6.2-11385bb63ca80571", "cves": [], "html": "<p>修复强制向子计划添加 Material 节点时 initplan 的处理不当（Tom Lane）</p>\n<p>这个错误的典型后果是 <span>“<span>plan should not reference subplan's variable</span>”</span> 错误。</p>", "text": "修复强制向子计划添加 Material 节点时 initplan 的处理不当（Tom Lane） 这个错误的典型后果是 “plan should not reference subplan's variable” 错误。", "title": "修复强制向子计划添加 Material 节点时 initplan 的处理不当", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5", "source_hash": "8961903873633f5d3a907fbe1f7e5d32ea8a0177b1d0a724b0595f65c018e62d", "section_path": ["变更"], "commit_groups": [["555494d1b", "b971a98ce"]], "identity_text": "Fix mishandling of initplans when forcibly adding a Material node to a subplan (Tom Lane) The typical consequence of this mistake was a plan should not reference subplan's variable error.", "commit_aliases": ["555494d1b", "b971a98ce"], "source_commits": ["b971a98ce"], "source_entry_id": "9.6.2/changes/050", "db_id": "e74dc788ec78bf2a82dc5a4fbafdc08d", "patch_ids": ["7dc23dba7f79913b0c33a1a77595186d"], "statement_hash": "02bc49d27661431888e190e3f70bbeff75e64871a5029fff4f820c11c390d4f4", "relations": [], "version": "9.6.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.6.2-9dd396f476677f75", "cves": [], "html": "<p>修复半连接和反连接以及继承情况下基于外键的连接选择率估计（Tom Lane）</p>\n<p>考虑外键关系存在的新代码在这些情况下做了错误的事情，使估计比 9.6 之前的代码更差而不是更好。</p>", "text": "修复半连接和反连接以及继承情况下基于外键的连接选择率估计（Tom Lane） 考虑外键关系存在的新代码在这些情况下做了错误的事情，使估计比 9.6 之前的代码更差而不是更好。", "title": "修复半连接和反连接以及继承情况下基于外键的连接选择率估计", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5", "source_hash": "b7e27d186f129740a1a73726b9e6ba494d63b3c8fd2cc5fa317e57bf7ffd5555", "section_path": ["变更"], "commit_groups": [["23c6c437f", "770671062"], ["7fa93eec4", "f4f195d15"]], "identity_text": "Fix foreign-key-based join selectivity estimation for semi-joins and anti-joins, as well as inheritance cases (Tom Lane) The new code for taking the existence of a foreign key relationship into account did the wrong thing in these cases, making the estimates worse not better than the pre-9.6 code.", "commit_aliases": ["23c6c437f", "770671062", "7fa93eec4", "f4f195d15"], "source_commits": ["23c6c437f", "f4f195d15"], "source_entry_id": "9.6.2/changes/051", "db_id": "5963ca00ac8741f1b15dcc0ad215f03c", "patch_ids": ["4a65597e38de4d01acfb5fbd71a4016e", "c638d7958adf107bee2baf9c8afff88e"], "statement_hash": "cd1dd7df00e5970818acd97bd38d8a04c5fe0f772e9e35097227d6bb42dec8ee", "relations": [], "version": "9.6.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.6.2-8ab26a9b4abaa868", "cves": [], "html": "<p>修复 <span>pg_dump</span> 发出被标记为扩展配置表的序列的数据（Michael Paquier）</p>", "text": "修复 pg_dump 发出被标记为扩展配置表的序列的数据（Michael Paquier）", "title": "修复 pg_dump 发出被标记为扩展配置表的序列的数据", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5", "source_hash": "00e7e099c772a0b5345db98de835a3b4c3489de998dac2e7a8081f19e99fcdca", "section_path": ["变更"], "commit_groups": [["bec96c82f", "fd081cabf"]], "identity_text": "Fix pg_dump to emit the data of a sequence that is marked as an extension configuration table (Michael Paquier)", "commit_aliases": ["bec96c82f", "fd081cabf"], "source_commits": ["fd081cabf"], "source_entry_id": "9.6.2/changes/052", "db_id": "4900394800a6096c711d16d09abce3c5", "patch_ids": ["9fb32af836d74d914a6bab5365cc8fc0"], "statement_hash": "15511b609c5ccb2c896479d4d544338151a285908bc794c6fc75e8fd90c389ae", "relations": [], "version": "9.6.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.6.2-f18cc743b9d7a36e", "cves": [], "html": "<p>修复 <span>pg_dump</span> 中 <code>ALTER DEFAULT PRIVILEGES ... REVOKE</code> 的处理不当（Stephen Frost）</p>\n<p>在 <code>ALTER DEFAULT PRIVILEGES</code> 被用于把权限减少到低于正常水平的情况下，<span>pg_dump</span> 漏发所需的 <code>REVOKE</code> 命令。</p>", "text": "修复 pg_dump 中 ALTER DEFAULT PRIVILEGES ... REVOKE 的处理不当（Stephen Frost） 在 ALTER DEFAULT PRIVILEGES 被用于把权限减少到低于正常水平的情况下，pg_dump 漏发所需的 REVOKE 命令。", "title": "修复 pg_dump 中 ALTER DEFAULT PRIVILEGES ... REVOKE 的处理不当", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5", "source_hash": "e8da4cbfe3c9fa605c9753018530cfd0b66335d980428c0a5d82a36c54dc5215", "section_path": ["变更"], "commit_groups": [["e2090d9d2", "eb5e9d90d"]], "identity_text": "Fix mishandling of ALTER DEFAULT PRIVILEGES ... REVOKE in pg_dump (Stephen Frost) pg_dump missed issuing the required REVOKE commands in cases where ALTER DEFAULT PRIVILEGES had been used to reduce privileges to less than they would normally be.", "commit_aliases": ["e2090d9d2", "eb5e9d90d"], "source_commits": ["eb5e9d90d"], "source_entry_id": "9.6.2/changes/053", "db_id": "eba5c0ac95c04a82cfc99cc5d33e2dfe", "patch_ids": ["f6b6b7a4f5a85b7d699932a1a591aabb"], "statement_hash": "6430cea7f7a4728b15931529548ffdc4654f64aaa4427fed4f81e7e2ffbe9762", "relations": [], "version": "9.6.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.6.2-4fba47bfcb2ec0ac", "cves": [], "html": "<p>修复 <span>pg_dump</span> 转储使用内建函数的用户定义强制转换和转换（Stephen Frost）</p>", "text": "修复 pg_dump 转储使用内建函数的用户定义强制转换和转换（Stephen Frost）", "title": "修复 pg_dump 转储使用内建函数的用户定义强制转换和转换", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5", "source_hash": "86f6c27f5829df20fa5622928dd1ffbf1cc086265e78296bb85250f19cb9f2b6", "section_path": ["变更"], "commit_groups": [["107943f1a", "19990918d", "59a389891", "94476436a", "e45319bb7", "fc03f7dd1"], ["13f51dacf", "1efc5dba0", "1f2cfd26f", "2259bf672", "542975a14", "da57166b7"]], "identity_text": "Fix pg_dump to dump user-defined casts and transforms that use built-in functions (Stephen Frost)", "commit_aliases": ["107943f1a", "13f51dacf", "19990918d", "1efc5dba0", "1f2cfd26f", "2259bf672", "542975a14", "59a389891", "94476436a", "da57166b7", "e45319bb7", "fc03f7dd1"], "source_commits": ["542975a14", "e45319bb7"], "source_entry_id": "9.6.2/changes/054", "db_id": "581a06be52555037f10c237117874cc0", "patch_ids": ["1c6aa36948e15f65b75249518e197017", "965ef618c35969efcd3fcfcac5863242"], "statement_hash": "2a3aac55e24e54531d0f8a215b0cdefc742a6d9b9211a41a535ece0ea74b9bf4", "relations": [{"rule": 2, "type": "equivalent", "target": "141e88f49f53e4beac817386630d457f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2a3aac55e24e54531d0f8a215b0cdefc742a6d9b9211a41a535ece0ea74b9bf4"}}, {"rule": 2, "type": "equivalent", "target": "1af558f49869195daea66118c0df707f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2a3aac55e24e54531d0f8a215b0cdefc742a6d9b9211a41a535ece0ea74b9bf4"}}, {"rule": 2, "type": "equivalent", "target": "206f6527fb116024cd1b8b9db2358953", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2a3aac55e24e54531d0f8a215b0cdefc742a6d9b9211a41a535ece0ea74b9bf4"}}, {"rule": 2, "type": "equivalent", "target": "fea8649624e2953332f50903213b1685", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2a3aac55e24e54531d0f8a215b0cdefc742a6d9b9211a41a535ece0ea74b9bf4"}}], "version": "9.6.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "fea8649624e2953332f50903213b1685", "kind": "equivalent", "version": "9.5.6", "label": "9.5.6", "title": "修复 pg_dump 转储使用内建函数的用户定义强制转换和转换", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2a3aac55e24e54531d0f8a215b0cdefc742a6d9b9211a41a535ece0ea74b9bf4"}, "url": "/docs/compare/?release=9.5.6#9.5.6-4fba47bfcb2ec0ac", "source_url": "/docs/release/9.5.6/#id-1.11.6.24.5"}, {"db_id": "1af558f49869195daea66118c0df707f", "kind": "equivalent", "version": "9.4.11", "label": "9.4.11", "title": "修复 pg_dump 转储使用内建函数的用户定义强制转换和转换", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2a3aac55e24e54531d0f8a215b0cdefc742a6d9b9211a41a535ece0ea74b9bf4"}, "url": "/docs/compare/?release=9.4.11#9.4.11-4fba47bfcb2ec0ac", "source_url": "/docs/release/9.4.11/#id-1.11.6.20.5"}, {"db_id": "206f6527fb116024cd1b8b9db2358953", "kind": "equivalent", "version": "9.3.16", "label": "9.3.16", "title": "修复 pg_dump 转储使用内建函数的用户定义强制转换和转换", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2a3aac55e24e54531d0f8a215b0cdefc742a6d9b9211a41a535ece0ea74b9bf4"}, "url": "/docs/compare/?release=9.3.16#9.3.16-4fba47bfcb2ec0ac", "source_url": "/docs/release/9.3.16/#id-1.11.6.14.5"}, {"db_id": "141e88f49f53e4beac817386630d457f", "kind": "equivalent", "version": "9.2.20", "label": "9.2.20", "title": "修复 pg_dump 转储使用内建函数的用户定义强制转换和转换", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2a3aac55e24e54531d0f8a215b0cdefc742a6d9b9211a41a535ece0ea74b9bf4"}, "url": "/docs/compare/?release=9.2.20#9.2.20-4fba47bfcb2ec0ac", "source_url": "/docs/release/9.2.20/#id-1.11.6.9.5"}]}, {"id": "9.6.2-6f2e3fa7344ed7b7", "cves": [], "html": "<p>修复 <span>pg_restore</span> 使用 <code>--create --if-exists</code> 时对包含无法识别的 <code>DROP</code> 命令的归档表现得更理智（Tom Lane）</p>\n<p>这不修复任何现存 bug，但如果 <span>pg_restore</span> 与更晚的 <span>pg_dump</span> 版本生成的归档一起使用，将来可能改进行为。</p>", "text": "修复 pg_restore 使用 --create --if-exists 时对包含无法识别的 DROP 命令的归档表现得更理智（Tom Lane） 这不修复任何现存 bug，但如果 pg_restore 与更晚的 pg_dump 版本生成的归档一起使用，将来可能改进行为。", "title": "修复 pg_restore 使用 --create --if-exists 时对包含无法识别的 DROP 命令的归档表现得更理智", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5", "source_hash": "93c1f6ddcf25ed8bc8df37a991691d510f1e016345714469744c7d2e9132c3e6", "section_path": ["变更"], "commit_groups": [["0eaa5118a", "a7864037d", "ac888986f", "e69b532be"]], "identity_text": "Fix pg_restore with --create --if-exists to behave more sanely if an archive contains unrecognized DROP commands (Tom Lane) This doesn't fix any live bug, but it may improve the behavior in future if pg_restore is used with an archive generated by a later pg_dump version.", "commit_aliases": ["0eaa5118a", "a7864037d", "ac888986f", "e69b532be"], "source_commits": ["0eaa5118a"], "source_entry_id": "9.6.2/changes/055", "db_id": "d95921cd7abc0fb5e59c7dd3cf7ba92f", "patch_ids": ["a9583c70020367052176b5fe1bebd59e"], "statement_hash": "e9072a2d2d532e2f23198565b761dbb108e21d67e448346118c9055e329b4b27", "relations": [{"rule": 2, "type": "equivalent", "target": "49c06b2f206d9d8b0aac7545f4d30e43", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e9072a2d2d532e2f23198565b761dbb108e21d67e448346118c9055e329b4b27"}}, {"rule": 2, "type": "equivalent", "target": "b54f6d5d1dee88ea2ace4dd6098a2046", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e9072a2d2d532e2f23198565b761dbb108e21d67e448346118c9055e329b4b27"}}], "version": "9.6.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "b54f6d5d1dee88ea2ace4dd6098a2046", "kind": "equivalent", "version": "9.5.6", "label": "9.5.6", "title": "修复 pg_restore 使用 --create --if-exists 时对包含无法识别的 DROP 命令的归档表现得更理智", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e9072a2d2d532e2f23198565b761dbb108e21d67e448346118c9055e329b4b27"}, "url": "/docs/compare/?release=9.5.6#9.5.6-6f2e3fa7344ed7b7", "source_url": "/docs/release/9.5.6/#id-1.11.6.24.5"}, {"db_id": "49c06b2f206d9d8b0aac7545f4d30e43", "kind": "equivalent", "version": "9.4.11", "label": "9.4.11", "title": "修复 pg_restore 使用 --create --if-exists 时对包含无法识别的 DROP 命令的归档表现得更理智", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e9072a2d2d532e2f23198565b761dbb108e21d67e448346118c9055e329b4b27"}, "url": "/docs/compare/?release=9.4.11#9.4.11-6f2e3fa7344ed7b7", "source_url": "/docs/release/9.4.11/#id-1.11.6.20.5"}]}, {"id": "9.6.2-c9ab92fb4e52f968", "cves": [], "html": "<p>修复慢 I/O 情况下 <span>pg_basebackup</span> 的速率限制（Antonin Houska）</p>\n<p>如果磁盘 I/O 暂时比指定的速率限制慢得多，计算就会溢出，实际上禁用了运行剩余部分的速率限制。</p>", "text": "修复慢 I/O 情况下 pg_basebackup 的速率限制（Antonin Houska） 如果磁盘 I/O 暂时比指定的速率限制慢得多，计算就会溢出，实际上禁用了运行剩余部分的速率限制。", "title": "修复慢 I/O 情况下 pg_basebackup 的速率限制", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5", "source_hash": "fbd20670d3f8e513a4361420e852664747d750ed7a9606f38011ad888b2edc34", "section_path": ["变更"], "commit_groups": [["10238fad0", "1c8ad594e", "bc53d7130", "f6508827a"]], "identity_text": "Fix pg_basebackup's rate limiting in the presence of slow I/O (Antonin Houska) If disk I/O was transiently much slower than the specified rate limit, the calculation overflowed, effectively disabling the rate limit for the rest of the run.", "commit_aliases": ["10238fad0", "1c8ad594e", "bc53d7130", "f6508827a"], "source_commits": ["1c8ad594e"], "source_entry_id": "9.6.2/changes/056", "db_id": "adeba6e5e7ae4cc6e7c34d769088b383", "patch_ids": ["8ef8b220d7ab2127ec4fc3cdf78afd46"], "statement_hash": "d8ba3af92b13e045c18539777661d6f5dee3c5c832817b475c0ddf43297e0ef7", "relations": [{"rule": 2, "type": "equivalent", "target": "a2f5a686593d4ec3305f3fd840963c70", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d8ba3af92b13e045c18539777661d6f5dee3c5c832817b475c0ddf43297e0ef7"}}, {"rule": 2, "type": "equivalent", "target": "ceaa5966d70cd20ccc5138eba633af76", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d8ba3af92b13e045c18539777661d6f5dee3c5c832817b475c0ddf43297e0ef7"}}], "version": "9.6.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "a2f5a686593d4ec3305f3fd840963c70", "kind": "equivalent", "version": "9.5.6", "label": "9.5.6", "title": "修复慢 I/O 情况下 pg_basebackup 的速率限制", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d8ba3af92b13e045c18539777661d6f5dee3c5c832817b475c0ddf43297e0ef7"}, "url": "/docs/compare/?release=9.5.6#9.5.6-c9ab92fb4e52f968", "source_url": "/docs/release/9.5.6/#id-1.11.6.24.5"}, {"db_id": "ceaa5966d70cd20ccc5138eba633af76", "kind": "equivalent", "version": "9.4.11", "label": "9.4.11", "title": "修复慢 I/O 情况下 pg_basebackup 的速率限制", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d8ba3af92b13e045c18539777661d6f5dee3c5c832817b475c0ddf43297e0ef7"}, "url": "/docs/compare/?release=9.4.11#9.4.11-c9ab92fb4e52f968", "source_url": "/docs/release/9.4.11/#id-1.11.6.20.5"}]}, {"id": "9.6.2-16fc51cb0c47c6b6", "cves": [], "html": "<p>修复 <span>pg_basebackup</span> 对符号链接的 <code>pg_stat_tmp</code> 和 <code>pg_replslot</code> 子目录的处理（Magnus Hagander、Michael Paquier）</p>", "text": "修复 pg_basebackup 对符号链接的 pg_stat_tmp 和 pg_replslot 子目录的处理（Magnus Hagander、Michael Paquier）", "title": "修复 pg_basebackup 对符号链接的 pg_stat_tmp 和 pg_replslot 子目录的处理", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5", "source_hash": "edccccd9332509d76991dd5780270545d524da3926ff9fcf8ac9028f1e080eb0", "section_path": ["变更"], "commit_groups": [["5556420d4", "6d779e05a", "b6a323a8c"]], "identity_text": "Fix pg_basebackup's handling of symlinked pg_stat_tmp and pg_replslot subdirectories (Magnus Hagander, Michael Paquier)", "commit_aliases": ["5556420d4", "6d779e05a", "b6a323a8c"], "source_commits": ["b6a323a8c"], "source_entry_id": "9.6.2/changes/057", "db_id": "25671e41ac06308dd43acbb0b4950ca8", "patch_ids": ["d1875d7114fed9a26ffe2dd55e6658a2"], "statement_hash": "07c5573ce1b06c08b4daa86d09fb08e6e89a60e4c9fea19318577de226c4ce4d", "relations": [{"rule": 2, "type": "equivalent", "target": "59928788596595bbfb0ae687c316f3c9", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "07c5573ce1b06c08b4daa86d09fb08e6e89a60e4c9fea19318577de226c4ce4d"}}, {"rule": 2, "type": "equivalent", "target": "f76ab6ec3a0177411afabf4ed4d3ed62", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "07c5573ce1b06c08b4daa86d09fb08e6e89a60e4c9fea19318577de226c4ce4d"}}], "version": "9.6.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "59928788596595bbfb0ae687c316f3c9", "kind": "equivalent", "version": "9.5.6", "label": "9.5.6", "title": "修复 pg_basebackup 对符号链接的 pg_stat_tmp 和 pg_replslot 子目录的处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "07c5573ce1b06c08b4daa86d09fb08e6e89a60e4c9fea19318577de226c4ce4d"}, "url": "/docs/compare/?release=9.5.6#9.5.6-16fc51cb0c47c6b6", "source_url": "/docs/release/9.5.6/#id-1.11.6.24.5"}, {"db_id": "f76ab6ec3a0177411afabf4ed4d3ed62", "kind": "equivalent", "version": "9.4.11", "label": "9.4.11", "title": "修复 pg_basebackup 对符号链接的 pg_stat_tmp 和 pg_replslot 子目录的处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "07c5573ce1b06c08b4daa86d09fb08e6e89a60e4c9fea19318577de226c4ce4d"}, "url": "/docs/compare/?release=9.4.11#9.4.11-16fc51cb0c47c6b6", "source_url": "/docs/release/9.4.11/#id-1.11.6.20.5"}]}, {"id": "9.6.2-ba21d14c399b76c0", "cves": [], "html": "<p>修复包含 WAL 文件时备库服务器上可能的 <span>pg_basebackup</span> 失败（Amit Kapila、Robert Haas）</p>", "text": "修复包含 WAL 文件时备库服务器上可能的 pg_basebackup 失败（Amit Kapila、Robert Haas）", "title": "修复包含 WAL 文件时备库服务器上可能的 pg_basebackup 失败", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5", "source_hash": "e93f97719b06e1c1da8774abec8f4246af5997b4dc5d5abbd62e8d2871d7ad4f", "section_path": ["变更"], "commit_groups": [["05e2293f4", "629575fa2", "92929a3e3", "d1e9c8269", "ef18cb7da", "f267c1c24"]], "identity_text": "Fix possible pg_basebackup failure on standby server when including WAL files (Amit Kapila, Robert Haas)", "commit_aliases": ["05e2293f4", "629575fa2", "92929a3e3", "d1e9c8269", "ef18cb7da", "f267c1c24"], "source_commits": ["05e2293f4"], "source_entry_id": "9.6.2/changes/058", "db_id": "abeb2fd128bd039a4190704c1fb38488", "patch_ids": ["60c7961904f08ef1a1672252957fcd0d"], "statement_hash": "f687a875b45f221032d567680d9431e8bac3736137bbf0c41802159d4574ebc4", "relations": [{"rule": 2, "type": "equivalent", "target": "68c6b0764c4bf1614e325f69f12285e5", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f687a875b45f221032d567680d9431e8bac3736137bbf0c41802159d4574ebc4"}}, {"rule": 2, "type": "equivalent", "target": "6933c0008409c2ee70f12fe8d226fbd2", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f687a875b45f221032d567680d9431e8bac3736137bbf0c41802159d4574ebc4"}}, {"rule": 2, "type": "equivalent", "target": "7570cd69307a64fcb41f65e0392d4c57", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f687a875b45f221032d567680d9431e8bac3736137bbf0c41802159d4574ebc4"}}, {"rule": 2, "type": "equivalent", "target": "917389edbf58b05a6f1216e2d6417b83", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f687a875b45f221032d567680d9431e8bac3736137bbf0c41802159d4574ebc4"}}], "version": "9.6.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "6933c0008409c2ee70f12fe8d226fbd2", "kind": "equivalent", "version": "9.5.6", "label": "9.5.6", "title": "修复包含 WAL 文件时备库服务器上可能的 pg_basebackup 失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f687a875b45f221032d567680d9431e8bac3736137bbf0c41802159d4574ebc4"}, "url": "/docs/compare/?release=9.5.6#9.5.6-ba21d14c399b76c0", "source_url": "/docs/release/9.5.6/#id-1.11.6.24.5"}, {"db_id": "68c6b0764c4bf1614e325f69f12285e5", "kind": "equivalent", "version": "9.4.11", "label": "9.4.11", "title": "修复包含 WAL 文件时备库服务器上可能的 pg_basebackup 失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f687a875b45f221032d567680d9431e8bac3736137bbf0c41802159d4574ebc4"}, "url": "/docs/compare/?release=9.4.11#9.4.11-ba21d14c399b76c0", "source_url": "/docs/release/9.4.11/#id-1.11.6.20.5"}, {"db_id": "7570cd69307a64fcb41f65e0392d4c57", "kind": "equivalent", "version": "9.3.16", "label": "9.3.16", "title": "修复包含 WAL 文件时备库服务器上可能的 pg_basebackup 失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f687a875b45f221032d567680d9431e8bac3736137bbf0c41802159d4574ebc4"}, "url": "/docs/compare/?release=9.3.16#9.3.16-ba21d14c399b76c0", "source_url": "/docs/release/9.3.16/#id-1.11.6.14.5"}, {"db_id": "917389edbf58b05a6f1216e2d6417b83", "kind": "equivalent", "version": "9.2.20", "label": "9.2.20", "title": "修复包含 WAL 文件时备库服务器上可能的 pg_basebackup 失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f687a875b45f221032d567680d9431e8bac3736137bbf0c41802159d4574ebc4"}, "url": "/docs/compare/?release=9.2.20#9.2.20-ba21d14c399b76c0", "source_url": "/docs/release/9.2.20/#id-1.11.6.9.5"}]}, {"id": "9.6.2-ebd373f265d7a9ea", "cves": [], "html": "<p>改进 <span>initdb</span> 把 <em><code>xxx</code></em><code>_flush_after</code> 参数的正确平台特定默认值插入 <code>postgresql.conf</code>（Fabien Coelho、Tom Lane）</p>\n<p>这是比以前使用的更干净的默认值记录方式。</p>", "text": "改进 initdb 把 xxx_flush_after 参数的正确平台特定默认值插入 postgresql.conf（Fabien Coelho、Tom Lane） 这是比以前使用的更干净的默认值记录方式。", "title": "改进 initdb 把 xxx_flush_after 参数的正确平台特定默认值插入 postgresql.conf", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5", "source_hash": "bc6f2c554372f4b94c37449e764b9793559cd52707eec9fe493e730ef841e883", "section_path": ["变更"], "commit_groups": [["255bcd27f", "dbdfd114f"]], "identity_text": "Improve initdb to insert the correct platform-specific default values for the xxx_flush_after parameters into postgresql.conf (Fabien Coelho, Tom Lane) This is a cleaner way of documenting the default values than was used previously.", "commit_aliases": ["255bcd27f", "dbdfd114f"], "source_commits": ["255bcd27f"], "source_entry_id": "9.6.2/changes/059", "db_id": "6de92ef59ec3f3a470d0deaef9d5af6d", "patch_ids": ["dc5bdd8b7a5b9cfd23a8788887008305"], "statement_hash": "178a21bff119c557a22daebdcb8abeb6f65e20a93f5c3d1ae3a187f8f43446c3", "relations": [], "version": "9.6.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.6.2-0f90f89749494e90", "cves": [], "html": "<p>修复域检查约束和 <code>CASE</code> 执行中展开数组的可能处理不当（Tom Lane）</p>\n<p>在这些上下文中调用的 PL/pgSQL 函数有可能修改甚至删除需要为额外操作保留的数组值。</p>", "text": "修复域检查约束和 CASE 执行中展开数组的可能处理不当（Tom Lane） 在这些上下文中调用的 PL/pgSQL 函数有可能修改甚至删除需要为额外操作保留的数组值。", "title": "修复域检查约束和 CASE 执行中展开数组的可能处理不当", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5", "source_hash": "5cf34611259a5f3cbb773e06eaccd8b8b78f944ff2b77000db532d72d3e4fb01", "section_path": ["变更"], "commit_groups": [["77cd0dc7e", "c472f2a33", "cd1b21569"]], "identity_text": "Fix possible mishandling of expanded arrays in domain check constraints and CASE execution (Tom Lane) It was possible for a PL/pgSQL function invoked in these contexts to modify or even delete an array value that needs to be preserved for additional operations.", "commit_aliases": ["77cd0dc7e", "c472f2a33", "cd1b21569"], "source_commits": ["77cd0dc7e"], "source_entry_id": "9.6.2/changes/060", "db_id": "0d3e8408f3a52b40add739fc9dad1df5", "patch_ids": ["4e5caed6a15333b8859b62f111fb6e40"], "statement_hash": "b4e9d2042fdfe8ecf018cab16842d9febec6822c85bbec42d6df1b19e17c2b79", "relations": [{"rule": 2, "type": "equivalent", "target": "eee279534cb7b6cd0aeef3e69b37223e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b4e9d2042fdfe8ecf018cab16842d9febec6822c85bbec42d6df1b19e17c2b79"}}], "version": "9.6.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "eee279534cb7b6cd0aeef3e69b37223e", "kind": "equivalent", "version": "9.5.6", "label": "9.5.6", "title": "修复域检查约束和 CASE 执行中展开数组的可能处理不当", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b4e9d2042fdfe8ecf018cab16842d9febec6822c85bbec42d6df1b19e17c2b79"}, "url": "/docs/compare/?release=9.5.6#9.5.6-0f90f89749494e90", "source_url": "/docs/release/9.5.6/#id-1.11.6.24.5"}]}, {"id": "9.6.2-0067e54e57762ff8", "cves": [], "html": "<p>修复 PL/pgSQL 函数在诸如对 PL/pgSQL 变量赋值期间求值的域检查约束等上下文中的嵌套使用（Tom Lane）</p>", "text": "修复 PL/pgSQL 函数在诸如对 PL/pgSQL 变量赋值期间求值的域检查约束等上下文中的嵌套使用（Tom Lane）", "title": "修复 PL/pgSQL 函数在诸如对 PL/pgSQL 变量赋值期间求值的域检查约束等上下文中的嵌套使用", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5", "source_hash": "e6b5f97b04c674952db08b9de6eb746490cdfc3c9a09ba34170d821ee21a6b4b", "section_path": ["变更"], "commit_groups": [["674877e93", "a5b153ff5", "fc8b81a29"]], "identity_text": "Fix nested uses of PL/pgSQL functions in contexts such as domain check constraints evaluated during assignment to a PL/pgSQL variable (Tom Lane)", "commit_aliases": ["674877e93", "a5b153ff5", "fc8b81a29"], "source_commits": ["a5b153ff5"], "source_entry_id": "9.6.2/changes/061", "db_id": "ffab04a46730da80d0f33f9b44454c92", "patch_ids": ["fd08985a25ffe5ea4e6f248215587ed7"], "statement_hash": "aea8bf004efa9ddf8c79e4117024ae6806be0e4a2e75b279b61b11406272b8db", "relations": [{"rule": 2, "type": "equivalent", "target": "daeec92ce4e7caa83868d76eb6eec8a9", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "aea8bf004efa9ddf8c79e4117024ae6806be0e4a2e75b279b61b11406272b8db"}}], "version": "9.6.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "daeec92ce4e7caa83868d76eb6eec8a9", "kind": "equivalent", "version": "9.5.6", "label": "9.5.6", "title": "修复 PL/pgSQL 函数在诸如对 PL/pgSQL 变量赋值期间求值的域检查约束等上下文中的嵌套使用", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "aea8bf004efa9ddf8c79e4117024ae6806be0e4a2e75b279b61b11406272b8db"}, "url": "/docs/compare/?release=9.5.6#9.5.6-0067e54e57762ff8", "source_url": "/docs/release/9.5.6/#id-1.11.6.24.5"}]}, {"id": "9.6.2-12c278910814d24b", "cves": [], "html": "<p>确保我们为 PL/Python 创建的 Python 异常对象被正确引用计数（Rafa de la Torre、Tom Lane）</p>\n<p>这避免了对象在 Python 垃圾回收周期发生之后被使用时的失败。</p>", "text": "确保我们为 PL/Python 创建的 Python 异常对象被正确引用计数（Rafa de la Torre、Tom Lane） 这避免了对象在 Python 垃圾回收周期发生之后被使用时的失败。", "title": "确保我们为 PL/Python 创建的 Python 异常对象被正确引用计数", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5", "source_hash": "04ec46db244f1ce639e6b8e44072affa658b0d57c3d491bb8e59bc0998610a8f", "section_path": ["变更"], "commit_groups": [["00858728f", "13a4b37b9", "981885d17", "9cda81f00", "b90f2247e", "cea6de20b"]], "identity_text": "Ensure that the Python exception objects we create for PL/Python are properly reference-counted (Rafa de la Torre, Tom Lane) This avoids failures if the objects are used after a Python garbage collection cycle has occurred.", "commit_aliases": ["00858728f", "13a4b37b9", "981885d17", "9cda81f00", "b90f2247e", "cea6de20b"], "source_commits": ["b90f2247e"], "source_entry_id": "9.6.2/changes/062", "db_id": "f975296ade117cc2815748df07818bb4", "patch_ids": ["7f8a32886a4354a29ffd12b984f874ac"], "statement_hash": "fb15fae3e00350a8cbf28568410c0b0409fd12884b88f9afd4bcb14c1964997c", "relations": [{"rule": 2, "type": "equivalent", "target": "1390a5bd66a14c3b3d519b9461fdda99", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fb15fae3e00350a8cbf28568410c0b0409fd12884b88f9afd4bcb14c1964997c"}}, {"rule": 2, "type": "equivalent", "target": "8db1722f361c4d812e07500deebd3442", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fb15fae3e00350a8cbf28568410c0b0409fd12884b88f9afd4bcb14c1964997c"}}, {"rule": 2, "type": "equivalent", "target": "af675597a1d73dea0e4f5c459b2b5564", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fb15fae3e00350a8cbf28568410c0b0409fd12884b88f9afd4bcb14c1964997c"}}, {"rule": 2, "type": "equivalent", "target": "b124b04f9107a88fb643b6d7061d5dd4", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fb15fae3e00350a8cbf28568410c0b0409fd12884b88f9afd4bcb14c1964997c"}}], "version": "9.6.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "af675597a1d73dea0e4f5c459b2b5564", "kind": "equivalent", "version": "9.5.6", "label": "9.5.6", "title": "确保我们为 PL/Python 创建的 Python 异常对象被正确引用计数", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fb15fae3e00350a8cbf28568410c0b0409fd12884b88f9afd4bcb14c1964997c"}, "url": "/docs/compare/?release=9.5.6#9.5.6-12c278910814d24b", "source_url": "/docs/release/9.5.6/#id-1.11.6.24.5"}, {"db_id": "b124b04f9107a88fb643b6d7061d5dd4", "kind": "equivalent", "version": "9.4.11", "label": "9.4.11", "title": "确保我们为 PL/Python 创建的 Python 异常对象被正确引用计数", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fb15fae3e00350a8cbf28568410c0b0409fd12884b88f9afd4bcb14c1964997c"}, "url": "/docs/compare/?release=9.4.11#9.4.11-12c278910814d24b", "source_url": "/docs/release/9.4.11/#id-1.11.6.20.5"}, {"db_id": "1390a5bd66a14c3b3d519b9461fdda99", "kind": "equivalent", "version": "9.3.16", "label": "9.3.16", "title": "确保我们为 PL/Python 创建的 Python 异常对象被正确引用计数", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fb15fae3e00350a8cbf28568410c0b0409fd12884b88f9afd4bcb14c1964997c"}, "url": "/docs/compare/?release=9.3.16#9.3.16-12c278910814d24b", "source_url": "/docs/release/9.3.16/#id-1.11.6.14.5"}, {"db_id": "8db1722f361c4d812e07500deebd3442", "kind": "equivalent", "version": "9.2.20", "label": "9.2.20", "title": "确保我们为 PL/Python 创建的 Python 异常对象被正确引用计数", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fb15fae3e00350a8cbf28568410c0b0409fd12884b88f9afd4bcb14c1964997c"}, "url": "/docs/compare/?release=9.2.20#9.2.20-12c278910814d24b", "source_url": "/docs/release/9.2.20/#id-1.11.6.9.5"}]}, {"id": "9.6.2-2d0a4d1007979a08", "cves": [], "html": "<p>修复 PL/Tcl 支持以 <code>.tupno</code> 为列名的表上的触发器（Tom Lane）</p>\n<p>这与 PL/Tcl 的 <code>spi_exec</code> 和 <code>spi_execp</code> 命令（以前未写入文档）的行为一致，即只在不存在该名字的真实列时才插入幻 <code>.tupno</code> 列。</p>", "text": "修复 PL/Tcl 支持以 .tupno 为列名的表上的触发器（Tom Lane） 这与 PL/Tcl 的 spi_exec 和 spi_execp 命令（以前未写入文档）的行为一致，即只在不存在该名字的真实列时才插入幻 .tupno 列。", "title": "修复 PL/Tcl 支持以 .tupno 为列名的表上的触发器", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5", "source_hash": "cd7af79197473e669de3f94caab24e0082d4b041636998f7cf619f7601ad4b11", "section_path": ["变更"], "commit_groups": [["110413a35", "3af8467e9", "92b7b1058", "9c0b04f18", "abdc83998", "fd2664dcb"]], "identity_text": "Fix PL/Tcl to support triggers on tables that have .tupno as a column name (Tom Lane) This matches the (previously undocumented) behavior of PL/Tcl's spi_exec and spi_execp commands, namely that a magic .tupno column is inserted only if there isn't a real column named that.", "commit_aliases": ["110413a35", "3af8467e9", "92b7b1058", "9c0b04f18", "abdc83998", "fd2664dcb"], "source_commits": ["3af8467e9"], "source_entry_id": "9.6.2/changes/063", "db_id": "78476c1a60a30fcdf082194b37a52d13", "patch_ids": ["becf0e40b37357c9dfdcc9ce2e45ef8f"], "statement_hash": "f6793cb11063369399335bf35e054cd40f6750f8ba6916917afbfd637312162e", "relations": [{"rule": 2, "type": "equivalent", "target": "13155088bcc3b2534d123510878f9213", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f6793cb11063369399335bf35e054cd40f6750f8ba6916917afbfd637312162e"}}, {"rule": 2, "type": "equivalent", "target": "5e6780c37e4bb1e32b64d68e4f7d2e96", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f6793cb11063369399335bf35e054cd40f6750f8ba6916917afbfd637312162e"}}, {"rule": 2, "type": "equivalent", "target": "982c56a5a1cda9da427ee7e8135b9435", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f6793cb11063369399335bf35e054cd40f6750f8ba6916917afbfd637312162e"}}, {"rule": 2, "type": "equivalent", "target": "9b3168a190a255cde02dbbac2e0ef469", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f6793cb11063369399335bf35e054cd40f6750f8ba6916917afbfd637312162e"}}], "version": "9.6.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "9b3168a190a255cde02dbbac2e0ef469", "kind": "equivalent", "version": "9.5.6", "label": "9.5.6", "title": "修复 PL/Tcl 支持以 .tupno 为列名的表上的触发器", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f6793cb11063369399335bf35e054cd40f6750f8ba6916917afbfd637312162e"}, "url": "/docs/compare/?release=9.5.6#9.5.6-2d0a4d1007979a08", "source_url": "/docs/release/9.5.6/#id-1.11.6.24.5"}, {"db_id": "5e6780c37e4bb1e32b64d68e4f7d2e96", "kind": "equivalent", "version": "9.4.11", "label": "9.4.11", "title": "修复 PL/Tcl 支持以 .tupno 为列名的表上的触发器", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f6793cb11063369399335bf35e054cd40f6750f8ba6916917afbfd637312162e"}, "url": "/docs/compare/?release=9.4.11#9.4.11-2d0a4d1007979a08", "source_url": "/docs/release/9.4.11/#id-1.11.6.20.5"}, {"db_id": "982c56a5a1cda9da427ee7e8135b9435", "kind": "equivalent", "version": "9.3.16", "label": "9.3.16", "title": "修复 PL/Tcl 支持以 .tupno 为列名的表上的触发器", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f6793cb11063369399335bf35e054cd40f6750f8ba6916917afbfd637312162e"}, "url": "/docs/compare/?release=9.3.16#9.3.16-2d0a4d1007979a08", "source_url": "/docs/release/9.3.16/#id-1.11.6.14.5"}, {"db_id": "13155088bcc3b2534d123510878f9213", "kind": "equivalent", "version": "9.2.20", "label": "9.2.20", "title": "修复 PL/Tcl 支持以 .tupno 为列名的表上的触发器", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f6793cb11063369399335bf35e054cd40f6750f8ba6916917afbfd637312162e"}, "url": "/docs/compare/?release=9.2.20#9.2.20-2d0a4d1007979a08", "source_url": "/docs/release/9.2.20/#id-1.11.6.9.5"}]}, {"id": "9.6.2-f13e8ec0337a146d", "cves": [], "html": "<p>允许 <code>~/.pgpass</code> 文件中的 DOS 风格行尾，即使在 Unix 上也一样（Vik Fearing）</p>\n<p>这一更改简化了在 Unix 和 Windows 机器之间使用同一密码文件。</p>", "text": "允许 ~/.pgpass 文件中的 DOS 风格行尾，即使在 Unix 上也一样（Vik Fearing） 这一更改简化了在 Unix 和 Windows 机器之间使用同一密码文件。", "title": "允许 ~/.pgpass 文件中的 DOS 风格行尾，即使在 Unix 上也一样", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5", "source_hash": "1f8f0a9fd3e5bee7ec5badca244da6d9de62f537f25377a2b5b73220766d99c9", "section_path": ["变更"], "commit_groups": [["0a7481930", "13aa9af37", "46b6f3fff", "8951f92da", "a69e6d9a6", "e9802122d"]], "identity_text": "Allow DOS-style line endings in ~/.pgpass files, even on Unix (Vik Fearing) This change simplifies use of the same password file across Unix and Windows machines.", "commit_aliases": ["0a7481930", "13aa9af37", "46b6f3fff", "8951f92da", "a69e6d9a6", "e9802122d"], "source_commits": ["a69e6d9a6"], "source_entry_id": "9.6.2/changes/064", "db_id": "f5042c2a104b12d38b1ec389b9b13fb1", "patch_ids": ["49673741cd6ad4342265570bbfac21ab"], "statement_hash": "6b95e5d55ebd490cf2ee0ac873df44c15f564a7391173ae6865ec0beb146dee6", "relations": [{"rule": 2, "type": "equivalent", "target": "07b8249fa1e1fd91d3a90a40a51448c5", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6b95e5d55ebd490cf2ee0ac873df44c15f564a7391173ae6865ec0beb146dee6"}}, {"rule": 2, "type": "equivalent", "target": "76b00a5bcfca92d6496177c433ba9910", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6b95e5d55ebd490cf2ee0ac873df44c15f564a7391173ae6865ec0beb146dee6"}}, {"rule": 2, "type": "equivalent", "target": "95d6f23f8ca3e577f27198c5a76696b9", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6b95e5d55ebd490cf2ee0ac873df44c15f564a7391173ae6865ec0beb146dee6"}}, {"rule": 2, "type": "equivalent", "target": "e9627113cb8963dd664fd65dab91e196", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6b95e5d55ebd490cf2ee0ac873df44c15f564a7391173ae6865ec0beb146dee6"}}], "version": "9.6.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "e9627113cb8963dd664fd65dab91e196", "kind": "equivalent", "version": "9.5.6", "label": "9.5.6", "title": "允许 ~/.pgpass 文件中的 DOS 风格行尾，即使在 Unix 上也一样", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6b95e5d55ebd490cf2ee0ac873df44c15f564a7391173ae6865ec0beb146dee6"}, "url": "/docs/compare/?release=9.5.6#9.5.6-f13e8ec0337a146d", "source_url": "/docs/release/9.5.6/#id-1.11.6.24.5"}, {"db_id": "07b8249fa1e1fd91d3a90a40a51448c5", "kind": "equivalent", "version": "9.4.11", "label": "9.4.11", "title": "允许 ~/.pgpass 文件中的 DOS 风格行尾，即使在 Unix 上也一样", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6b95e5d55ebd490cf2ee0ac873df44c15f564a7391173ae6865ec0beb146dee6"}, "url": "/docs/compare/?release=9.4.11#9.4.11-f13e8ec0337a146d", "source_url": "/docs/release/9.4.11/#id-1.11.6.20.5"}, {"db_id": "76b00a5bcfca92d6496177c433ba9910", "kind": "equivalent", "version": "9.3.16", "label": "9.3.16", "title": "允许 ~/.pgpass 文件中的 DOS 风格行尾，即使在 Unix 上也一样", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6b95e5d55ebd490cf2ee0ac873df44c15f564a7391173ae6865ec0beb146dee6"}, "url": "/docs/compare/?release=9.3.16#9.3.16-f13e8ec0337a146d", "source_url": "/docs/release/9.3.16/#id-1.11.6.14.5"}, {"db_id": "95d6f23f8ca3e577f27198c5a76696b9", "kind": "equivalent", "version": "9.2.20", "label": "9.2.20", "title": "允许 ~/.pgpass 文件中的 DOS 风格行尾，即使在 Unix 上也一样", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6b95e5d55ebd490cf2ee0ac873df44c15f564a7391173ae6865ec0beb146dee6"}, "url": "/docs/compare/?release=9.2.20#9.2.20-f13e8ec0337a146d", "source_url": "/docs/release/9.2.20/#id-1.11.6.9.5"}]}, {"id": "9.6.2-77d838eeb1473632", "cves": [], "html": "<p>修复 <span>ecpg</span> 被给定以点结尾的文件名时的一字节缓冲区越界（Takayuki Tsunakawa）</p>", "text": "修复 ecpg 被给定以点结尾的文件名时的一字节缓冲区越界（Takayuki Tsunakawa）", "title": "修复 ecpg 被给定以点结尾的文件名时的一字节缓冲区越界", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5", "source_hash": "bcf7099510128ffc6610fa22b5cb786c259cfaddc7988c61a49e3d4106675e66", "section_path": ["变更"], "commit_groups": [["1df8b3fe8", "3af172f7b", "4032ef18d", "501c91074", "a88c547f9", "fd2a5547c"]], "identity_text": "Fix one-byte buffer overrun if ecpg is given a file name that ends with a dot (Takayuki Tsunakawa)", "commit_aliases": ["1df8b3fe8", "3af172f7b", "4032ef18d", "501c91074", "a88c547f9", "fd2a5547c"], "source_commits": ["fd2a5547c"], "source_entry_id": "9.6.2/changes/065", "db_id": "2690cbca07c4d6e844be7d7d35b9f611", "patch_ids": ["04118287e00dd579687dc3dfa9e92dd4"], "statement_hash": "28f787d8a01346fcf20a2d5a4f568f1f4858e9ed2eeb8ab7e298d04e1c1f92d8", "relations": [{"rule": 2, "type": "equivalent", "target": "1eef4bb7b78714b618129ec8963589ee", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "28f787d8a01346fcf20a2d5a4f568f1f4858e9ed2eeb8ab7e298d04e1c1f92d8"}}, {"rule": 2, "type": "equivalent", "target": "58b636d8f88209ce036765aade41cba8", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "28f787d8a01346fcf20a2d5a4f568f1f4858e9ed2eeb8ab7e298d04e1c1f92d8"}}, {"rule": 2, "type": "equivalent", "target": "8a4ca1a5d92dfa9aac0aae5141f0eb08", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "28f787d8a01346fcf20a2d5a4f568f1f4858e9ed2eeb8ab7e298d04e1c1f92d8"}}, {"rule": 2, "type": "equivalent", "target": "bf4cb52160fd94e8fbc8e94af8ed4337", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "28f787d8a01346fcf20a2d5a4f568f1f4858e9ed2eeb8ab7e298d04e1c1f92d8"}}], "version": "9.6.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "58b636d8f88209ce036765aade41cba8", "kind": "equivalent", "version": "9.5.6", "label": "9.5.6", "title": "修复 ecpg 被给定以点结尾的文件名时的一字节缓冲区越界", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "28f787d8a01346fcf20a2d5a4f568f1f4858e9ed2eeb8ab7e298d04e1c1f92d8"}, "url": "/docs/compare/?release=9.5.6#9.5.6-77d838eeb1473632", "source_url": "/docs/release/9.5.6/#id-1.11.6.24.5"}, {"db_id": "bf4cb52160fd94e8fbc8e94af8ed4337", "kind": "equivalent", "version": "9.4.11", "label": "9.4.11", "title": "修复 ecpg 被给定以点结尾的文件名时的一字节缓冲区越界", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "28f787d8a01346fcf20a2d5a4f568f1f4858e9ed2eeb8ab7e298d04e1c1f92d8"}, "url": "/docs/compare/?release=9.4.11#9.4.11-77d838eeb1473632", "source_url": "/docs/release/9.4.11/#id-1.11.6.20.5"}, {"db_id": "8a4ca1a5d92dfa9aac0aae5141f0eb08", "kind": "equivalent", "version": "9.3.16", "label": "9.3.16", "title": "修复 ecpg 被给定以点结尾的文件名时的一字节缓冲区越界", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "28f787d8a01346fcf20a2d5a4f568f1f4858e9ed2eeb8ab7e298d04e1c1f92d8"}, "url": "/docs/compare/?release=9.3.16#9.3.16-77d838eeb1473632", "source_url": "/docs/release/9.3.16/#id-1.11.6.14.5"}, {"db_id": "1eef4bb7b78714b618129ec8963589ee", "kind": "equivalent", "version": "9.2.20", "label": "9.2.20", "title": "修复 ecpg 被给定以点结尾的文件名时的一字节缓冲区越界", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "28f787d8a01346fcf20a2d5a4f568f1f4858e9ed2eeb8ab7e298d04e1c1f92d8"}, "url": "/docs/compare/?release=9.2.20#9.2.20-77d838eeb1473632", "source_url": "/docs/release/9.2.20/#id-1.11.6.9.5"}]}, {"id": "9.6.2-627877932d767b3f", "cves": [], "html": "<p>修复 <span>psql</span> 的 <code>\\crosstabview</code> 中对重复数据的错误报告（Tom Lane）</p>\n<p><span>psql</span> 抱怨同一交叉表单元有多个条目时，有时引用了错误的行和/或列值。</p>", "text": "修复 psql 的 \\crosstabview 中对重复数据的错误报告（Tom Lane） psql 抱怨同一交叉表单元有多个条目时，有时引用了错误的行和/或列值。", "title": "修复 psql 的 \\crosstabview 中对重复数据的错误报告", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5", "source_hash": "49f855e4aabe2ff08221ab84cd610a1be2bc0d05abfe2abcac7bc1ba69e7bece", "section_path": ["变更"], "commit_groups": [["6a8c67f50", "a3aef88e6"]], "identity_text": "Fix incorrect error reporting for duplicate data in psql's \\crosstabview (Tom Lane) psql sometimes quoted the wrong row and/or column values when complaining about multiple entries for the same crosstab cell.", "commit_aliases": ["6a8c67f50", "a3aef88e6"], "source_commits": ["6a8c67f50"], "source_entry_id": "9.6.2/changes/066", "db_id": "fa0632c448ae5ed97078c70281741608", "patch_ids": ["76b753eb330bde048733c759d4845900"], "statement_hash": "f622c3ee8fe7adbdf9fb2c5fa6742894c865ef3700bc487753601be9004d354f", "relations": [], "version": "9.6.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.6.2-c86790c533835e8d", "cves": [], "html": "<p>修复 <span>psql</span> 对 <code>ALTER DEFAULT PRIVILEGES</code> 的 Tab 补全（Gilles Darold、Stephen Frost）</p>", "text": "修复 psql 对 ALTER DEFAULT PRIVILEGES 的 Tab 补全（Gilles Darold、Stephen Frost）", "title": "修复 psql 对 ALTER DEFAULT PRIVILEGES 的 Tab 补全", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5", "source_hash": "ebc3534f40f6987ec50ce7107b43a28e5e45c0473e58913eb02ad57b27aa31dd", "section_path": ["变更"], "commit_groups": [["16a2efdb2", "2022d594d", "26b55d669", "98f30a0e7", "dc61580bd", "f3fd531a5"]], "identity_text": "Fix psql's tab completion for ALTER DEFAULT PRIVILEGES (Gilles Darold, Stephen Frost)", "commit_aliases": ["16a2efdb2", "2022d594d", "26b55d669", "98f30a0e7", "dc61580bd", "f3fd531a5"], "source_commits": ["dc61580bd"], "source_entry_id": "9.6.2/changes/067", "db_id": "39cf1158ae74daa4b58cfcd084f8c908", "patch_ids": ["e7b0ec31822adf3aff2259d1f23ff8d9"], "statement_hash": "0b16da395fddbe512f554a6d5863c27c473e58b148e55fff066038938885e493", "relations": [{"rule": 2, "type": "equivalent", "target": "300301c03eeb20361e3c44174604a3cd", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0b16da395fddbe512f554a6d5863c27c473e58b148e55fff066038938885e493"}}, {"rule": 2, "type": "equivalent", "target": "424f4ab11b2beeff894e1af2db875e74", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0b16da395fddbe512f554a6d5863c27c473e58b148e55fff066038938885e493"}}, {"rule": 2, "type": "equivalent", "target": "a1bc105b6784ac48a0444b9350c18c67", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0b16da395fddbe512f554a6d5863c27c473e58b148e55fff066038938885e493"}}, {"rule": 2, "type": "equivalent", "target": "be83e01d61a42923210581e911a32989", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0b16da395fddbe512f554a6d5863c27c473e58b148e55fff066038938885e493"}}], "version": "9.6.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "300301c03eeb20361e3c44174604a3cd", "kind": "equivalent", "version": "9.5.6", "label": "9.5.6", "title": "修复 psql 对 ALTER DEFAULT PRIVILEGES 的 Tab 补全", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0b16da395fddbe512f554a6d5863c27c473e58b148e55fff066038938885e493"}, "url": "/docs/compare/?release=9.5.6#9.5.6-c86790c533835e8d", "source_url": "/docs/release/9.5.6/#id-1.11.6.24.5"}, {"db_id": "a1bc105b6784ac48a0444b9350c18c67", "kind": "equivalent", "version": "9.4.11", "label": "9.4.11", "title": "修复 psql 对 ALTER DEFAULT PRIVILEGES 的 Tab 补全", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0b16da395fddbe512f554a6d5863c27c473e58b148e55fff066038938885e493"}, "url": "/docs/compare/?release=9.4.11#9.4.11-c86790c533835e8d", "source_url": "/docs/release/9.4.11/#id-1.11.6.20.5"}, {"db_id": "424f4ab11b2beeff894e1af2db875e74", "kind": "equivalent", "version": "9.3.16", "label": "9.3.16", "title": "修复 psql 对 ALTER DEFAULT PRIVILEGES 的 Tab 补全", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0b16da395fddbe512f554a6d5863c27c473e58b148e55fff066038938885e493"}, "url": "/docs/compare/?release=9.3.16#9.3.16-c86790c533835e8d", "source_url": "/docs/release/9.3.16/#id-1.11.6.14.5"}, {"db_id": "be83e01d61a42923210581e911a32989", "kind": "equivalent", "version": "9.2.20", "label": "9.2.20", "title": "修复 psql 对 ALTER DEFAULT PRIVILEGES 的 Tab 补全", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0b16da395fddbe512f554a6d5863c27c473e58b148e55fff066038938885e493"}, "url": "/docs/compare/?release=9.2.20#9.2.20-c86790c533835e8d", "source_url": "/docs/release/9.2.20/#id-1.11.6.9.5"}]}, {"id": "9.6.2-05e12adf00c48e23", "cves": [], "html": "<p>修复 <span>psql</span> 对 <code>ALTER TABLE t ALTER c DROP ...</code> 的 Tab 补全（Kyotaro Horiguchi）</p>", "text": "修复 psql 对 ALTER TABLE t ALTER c DROP ... 的 Tab 补全（Kyotaro Horiguchi）", "title": "修复 psql 对 ALTER TABLE t ALTER c DROP ... 的 Tab 补全", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5", "source_hash": "b4c9ba5f80393cff0c74b1ffd61c39bc314569cf22248a87c2a441a91c268d20", "section_path": ["变更"], "commit_groups": [["28735cc72", "404e66758"]], "identity_text": "Fix psql's tab completion for ALTER TABLE t ALTER c DROP ... (Kyotaro Horiguchi)", "commit_aliases": ["28735cc72", "404e66758"], "source_commits": ["28735cc72"], "source_entry_id": "9.6.2/changes/068", "db_id": "ca1480d6be419d77190f1a14e1a0fa83", "patch_ids": ["00900ec75edf07ebd0243f26da3c751c"], "statement_hash": "c983734f514c63868c1100c88219b40d6c5252a63cf8f2bbf2396a4639df91cd", "relations": [], "version": "9.6.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.6.2-b4e87a046ed587c0", "cves": [], "html": "<p>在 <span>psql</span> 中，把 <code>PAGER</code> 环境变量的空或全空白设置当作<span>“<span>不使用分页器</span>”</span>（Tom Lane）</p>\n<p>此前这种设置导致本应发给分页器的输出完全消失。</p>", "text": "在 psql 中，把 PAGER 环境变量的空或全空白设置当作“不使用分页器”（Tom Lane） 此前这种设置导致本应发给分页器的输出完全消失。", "title": "在 psql 中，把 PAGER 环境变量的空或全空白设置当作“不使用分页器”", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5", "source_hash": "1dd24789d534316ac574a287d16348439e37c984ddce41ff89f195ae8fed5dd0", "section_path": ["变更"], "commit_groups": [["18f8f784c", "1ec5cc025", "370c7a863", "82eb5c514", "bb39f58f7", "ccb84dae1"]], "identity_text": "In psql, treat an empty or all-blank setting of the PAGER environment variable as meaning no pager (Tom Lane) Previously, such a setting caused output intended for the pager to vanish entirely.", "commit_aliases": ["18f8f784c", "1ec5cc025", "370c7a863", "82eb5c514", "bb39f58f7", "ccb84dae1"], "source_commits": ["bb39f58f7"], "source_entry_id": "9.6.2/changes/069", "db_id": "5398a79d78c70d471e631f9d90646066", "patch_ids": ["81988e124da61b079347f79f27578ec2"], "statement_hash": "b14d1d25539ce5d6d97d78b7e2b18b06dbef8efe5bd8ce8f6da95e1fd35eddbf", "relations": [{"rule": 2, "type": "equivalent", "target": "31f5d927c4eccb46d56991e647e5e335", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b14d1d25539ce5d6d97d78b7e2b18b06dbef8efe5bd8ce8f6da95e1fd35eddbf"}}, {"rule": 2, "type": "equivalent", "target": "4462083b036c40f47bc4aee4208296b6", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b14d1d25539ce5d6d97d78b7e2b18b06dbef8efe5bd8ce8f6da95e1fd35eddbf"}}, {"rule": 2, "type": "equivalent", "target": "766ba9a631742b05926183290fead72b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b14d1d25539ce5d6d97d78b7e2b18b06dbef8efe5bd8ce8f6da95e1fd35eddbf"}}, {"rule": 2, "type": "equivalent", "target": "b9eca872baf4c74ad145f241bdefc229", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b14d1d25539ce5d6d97d78b7e2b18b06dbef8efe5bd8ce8f6da95e1fd35eddbf"}}], "version": "9.6.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "4462083b036c40f47bc4aee4208296b6", "kind": "equivalent", "version": "9.5.6", "label": "9.5.6", "title": "在 psql 中，把 PAGER 环境变量的空或全空白设置当作“不使用分页器”", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b14d1d25539ce5d6d97d78b7e2b18b06dbef8efe5bd8ce8f6da95e1fd35eddbf"}, "url": "/docs/compare/?release=9.5.6#9.5.6-b4e87a046ed587c0", "source_url": "/docs/release/9.5.6/#id-1.11.6.24.5"}, {"db_id": "31f5d927c4eccb46d56991e647e5e335", "kind": "equivalent", "version": "9.4.11", "label": "9.4.11", "title": "在 psql 中，把 PAGER 环境变量的空或全空白设置当作“不使用分页器”", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b14d1d25539ce5d6d97d78b7e2b18b06dbef8efe5bd8ce8f6da95e1fd35eddbf"}, "url": "/docs/compare/?release=9.4.11#9.4.11-b4e87a046ed587c0", "source_url": "/docs/release/9.4.11/#id-1.11.6.20.5"}, {"db_id": "766ba9a631742b05926183290fead72b", "kind": "equivalent", "version": "9.3.16", "label": "9.3.16", "title": "在 psql 中，把 PAGER 环境变量的空或全空白设置当作“不使用分页器”", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b14d1d25539ce5d6d97d78b7e2b18b06dbef8efe5bd8ce8f6da95e1fd35eddbf"}, "url": "/docs/compare/?release=9.3.16#9.3.16-b4e87a046ed587c0", "source_url": "/docs/release/9.3.16/#id-1.11.6.14.5"}, {"db_id": "b9eca872baf4c74ad145f241bdefc229", "kind": "equivalent", "version": "9.2.20", "label": "9.2.20", "title": "在 psql 中，把 PAGER 环境变量的空或全空白设置当作“不使用分页器”", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b14d1d25539ce5d6d97d78b7e2b18b06dbef8efe5bd8ce8f6da95e1fd35eddbf"}, "url": "/docs/compare/?release=9.2.20#9.2.20-b4e87a046ed587c0", "source_url": "/docs/release/9.2.20/#id-1.11.6.9.5"}]}, {"id": "9.6.2-cb194d2ff6803edd", "cves": [], "html": "<p>改进 <code>contrib/dblink</code> 对低层 <span>libpq</span> 错误（如内存不足）的报告（Joe Conway）</p>", "text": "改进 contrib/dblink 对低层 libpq 错误（如内存不足）的报告（Joe Conway）", "title": "改进 contrib/dblink 对低层 libpq 错误（如内存不足）的报告", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5", "source_hash": "6ea022d235a0a0e5613e66f3fddd77d760b3d8cbceda0eebb9910dec3f1f580b", "section_path": ["变更"], "commit_groups": [["2f802d95b", "44de099f8", "51126ccdb", "76943f54a", "80ca22aa6", "9b8507bfa"]], "identity_text": "Improve contrib/dblink's reporting of low-level libpq errors, such as out-of-memory (Joe Conway)", "commit_aliases": ["2f802d95b", "44de099f8", "51126ccdb", "76943f54a", "80ca22aa6", "9b8507bfa"], "source_commits": ["51126ccdb"], "source_entry_id": "9.6.2/changes/070", "db_id": "f7e01026e1a47f1bbda753dfc83fddb3", "patch_ids": ["a4c45a54f46cb13a44bdc15855dd1b08"], "statement_hash": "74c4839fd979a8e0b71f5751d5f31355085ea32e91276555f8eea873c45cd650", "relations": [{"rule": 2, "type": "equivalent", "target": "82fc7c47cba9088cec956c07eb036737", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "74c4839fd979a8e0b71f5751d5f31355085ea32e91276555f8eea873c45cd650"}}, {"rule": 2, "type": "equivalent", "target": "978abd96ba15d8bd4ad1ca4c636e1b3d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "74c4839fd979a8e0b71f5751d5f31355085ea32e91276555f8eea873c45cd650"}}, {"rule": 2, "type": "equivalent", "target": "aff1165f3f84d0922c4d50503f700156", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "74c4839fd979a8e0b71f5751d5f31355085ea32e91276555f8eea873c45cd650"}}, {"rule": 2, "type": "equivalent", "target": "c1e22408dc4cf7995a40f11ed4d27218", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "74c4839fd979a8e0b71f5751d5f31355085ea32e91276555f8eea873c45cd650"}}], "version": "9.6.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "aff1165f3f84d0922c4d50503f700156", "kind": "equivalent", "version": "9.5.6", "label": "9.5.6", "title": "改进 contrib/dblink 对低层 libpq 错误（如内存不足）的报告", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "74c4839fd979a8e0b71f5751d5f31355085ea32e91276555f8eea873c45cd650"}, "url": "/docs/compare/?release=9.5.6#9.5.6-cb194d2ff6803edd", "source_url": "/docs/release/9.5.6/#id-1.11.6.24.5"}, {"db_id": "c1e22408dc4cf7995a40f11ed4d27218", "kind": "equivalent", "version": "9.4.11", "label": "9.4.11", "title": "改进 contrib/dblink 对低层 libpq 错误（如内存不足）的报告", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "74c4839fd979a8e0b71f5751d5f31355085ea32e91276555f8eea873c45cd650"}, "url": "/docs/compare/?release=9.4.11#9.4.11-cb194d2ff6803edd", "source_url": "/docs/release/9.4.11/#id-1.11.6.20.5"}, {"db_id": "978abd96ba15d8bd4ad1ca4c636e1b3d", "kind": "equivalent", "version": "9.3.16", "label": "9.3.16", "title": "改进 contrib/dblink 对低层 libpq 错误（如内存不足）的报告", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "74c4839fd979a8e0b71f5751d5f31355085ea32e91276555f8eea873c45cd650"}, "url": "/docs/compare/?release=9.3.16#9.3.16-cb194d2ff6803edd", "source_url": "/docs/release/9.3.16/#id-1.11.6.14.5"}, {"db_id": "82fc7c47cba9088cec956c07eb036737", "kind": "equivalent", "version": "9.2.20", "label": "9.2.20", "title": "改进 contrib/dblink 对低层 libpq 错误（如内存不足）的报告", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "74c4839fd979a8e0b71f5751d5f31355085ea32e91276555f8eea873c45cd650"}, "url": "/docs/compare/?release=9.2.20#9.2.20-cb194d2ff6803edd", "source_url": "/docs/release/9.2.20/#id-1.11.6.9.5"}]}, {"id": "9.6.2-b28a8df0fb9aa81c", "cves": [], "html": "<p>让 <code>contrib/dblink</code> 在使用 <code>contrib/postgres_fdw</code> 外部服务器作为连接选项来源时忽略无关的服务器选项（Corey Huinker）</p>\n<p>此前如果外部服务器对象的选项不是 <span>libpq</span> 连接选项，就会出错。</p>", "text": "让 contrib/dblink 在使用 contrib/postgres_fdw 外部服务器作为连接选项来源时忽略无关的服务器选项（Corey Huinker） 此前如果外部服务器对象的选项不是 libpq 连接选项，就会出错。", "title": "让 contrib/dblink 在使用 contrib/postgres_fdw 外部服务器作为连接选项来源时忽略无关的服务器选项", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5", "source_hash": "a5c64b046a4303688a80a9423c5c48a98364dae6861564493d607f5e4ff0ed14", "section_path": ["变更"], "commit_groups": [["150841fb9", "bd46cce21", "c44486838", "cb687e0ac", "d5c05f27a"]], "identity_text": "Teach contrib/dblink to ignore irrelevant server options when it uses a contrib/postgres_fdw foreign server as the source of connection options (Corey Huinker) Previously, if the foreign server object had options that were not also libpq connection options, an error occurred.", "commit_aliases": ["150841fb9", "bd46cce21", "c44486838", "cb687e0ac", "d5c05f27a"], "source_commits": ["150841fb9"], "source_entry_id": "9.6.2/changes/071", "db_id": "b43a9d82a40a9e939019bfcb84628e1d", "patch_ids": ["3de974bcc16ffab40885a40aa5f6275d"], "statement_hash": "1e913d8f30cf3d0ae4b8451592edf2b1cf6f1d9b5f30502ef8287e0368e2627a", "relations": [{"rule": 2, "type": "equivalent", "target": "28b34472f0015ce86a765c04ae8c3679", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1e913d8f30cf3d0ae4b8451592edf2b1cf6f1d9b5f30502ef8287e0368e2627a"}}, {"rule": 2, "type": "equivalent", "target": "9002018720b19c625fc8935a51aa0792", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1e913d8f30cf3d0ae4b8451592edf2b1cf6f1d9b5f30502ef8287e0368e2627a"}}, {"rule": 2, "type": "equivalent", "target": "f14ee10a55358a2e5e616ccf03475d93", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1e913d8f30cf3d0ae4b8451592edf2b1cf6f1d9b5f30502ef8287e0368e2627a"}}], "version": "9.6.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "f14ee10a55358a2e5e616ccf03475d93", "kind": "equivalent", "version": "9.5.6", "label": "9.5.6", "title": "让 contrib/dblink 在使用 contrib/postgres_fdw 外部服务器作为连接选项来源时忽略无关的服务器选项", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1e913d8f30cf3d0ae4b8451592edf2b1cf6f1d9b5f30502ef8287e0368e2627a"}, "url": "/docs/compare/?release=9.5.6#9.5.6-b28a8df0fb9aa81c", "source_url": "/docs/release/9.5.6/#id-1.11.6.24.5"}, {"db_id": "9002018720b19c625fc8935a51aa0792", "kind": "equivalent", "version": "9.4.11", "label": "9.4.11", "title": "让 contrib/dblink 在使用 contrib/postgres_fdw 外部服务器作为连接选项来源时忽略无关的服务器选项", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1e913d8f30cf3d0ae4b8451592edf2b1cf6f1d9b5f30502ef8287e0368e2627a"}, "url": "/docs/compare/?release=9.4.11#9.4.11-b28a8df0fb9aa81c", "source_url": "/docs/release/9.4.11/#id-1.11.6.20.5"}, {"db_id": "28b34472f0015ce86a765c04ae8c3679", "kind": "equivalent", "version": "9.3.16", "label": "9.3.16", "title": "让 contrib/dblink 在使用 contrib/postgres_fdw 外部服务器作为连接选项来源时忽略无关的服务器选项", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1e913d8f30cf3d0ae4b8451592edf2b1cf6f1d9b5f30502ef8287e0368e2627a"}, "url": "/docs/compare/?release=9.3.16#9.3.16-b28a8df0fb9aa81c", "source_url": "/docs/release/9.3.16/#id-1.11.6.14.5"}]}, {"id": "9.6.2-1532eab3cbea9d83", "cves": [], "html": "<p>修复 <code>contrib/pageinspect</code> 的 GIN 索引函数中的可移植性问题（Peter Eisentraut、Tom Lane）</p>", "text": "修复 contrib/pageinspect 的 GIN 索引函数中的可移植性问题（Peter Eisentraut、Tom Lane）", "title": "修复 contrib/pageinspect 的 GIN 索引函数中的可移植性问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5", "source_hash": "d6c21fe55a76083f08ee3db989fed9c4b4b7f8ef2668a44d8e4caff4fff33725", "section_path": ["变更"], "commit_groups": [["14ee35799", "4774f6183", "56d34ba5f"], ["2a8783e44", "af636d7b5"]], "identity_text": "Fix portability problems in contrib/pageinspect's functions for GIN indexes (Peter Eisentraut, Tom Lane)", "commit_aliases": ["14ee35799", "2a8783e44", "4774f6183", "56d34ba5f", "af636d7b5"], "source_commits": ["2a8783e44", "4774f6183"], "source_entry_id": "9.6.2/changes/072", "db_id": "a51f10686a3ed1b9e065300d9768df20", "patch_ids": ["34d24aeaf6f5ecf46bdf09da5351e6d8", "c2404e571c5a07ee7078557e7cbcce9d"], "statement_hash": "c399b5889f1b81761cfed0ce18510f17e6c0ffbd76ae2ec7addb59af8e4d0489", "relations": [{"rule": 2, "type": "equivalent", "target": "6b38ea1b079702f80fb0e72b09688c5a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c399b5889f1b81761cfed0ce18510f17e6c0ffbd76ae2ec7addb59af8e4d0489"}}], "version": "9.6.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "6b38ea1b079702f80fb0e72b09688c5a", "kind": "equivalent", "version": "9.5.6", "label": "9.5.6", "title": "修复 contrib/pageinspect 的 GIN 索引函数中的可移植性问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c399b5889f1b81761cfed0ce18510f17e6c0ffbd76ae2ec7addb59af8e4d0489"}, "url": "/docs/compare/?release=9.5.6#9.5.6-1532eab3cbea9d83", "source_url": "/docs/release/9.5.6/#id-1.11.6.24.5"}]}, {"id": "9.6.2-79f1eefb4fc0aa54", "cves": [], "html": "<p>修复 Windows 上等待期间可能遗漏套接字读取事件的问题（Amit Kapila）</p>\n<p>这个错误对大多数使用无害，但已知会在尝试使用 pldebugger 扩展时导致挂起。</p>", "text": "修复 Windows 上等待期间可能遗漏套接字读取事件的问题（Amit Kapila） 这个错误对大多数使用无害，但已知会在尝试使用 pldebugger 扩展时导致挂起。", "title": "修复 Windows 上等待期间可能遗漏套接字读取事件的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5", "source_hash": "3f14963f17b47391984aa331787cf5ce964fe584c713acb547942f5d6c68705b", "section_path": ["变更"], "commit_groups": [["3b790d256", "b98e5513f"]], "identity_text": "Fix possible miss of socket read events while waiting on Windows (Amit Kapila) This error was harmless for most uses, but it is known to cause hangs when trying to use the pldebugger extension.", "commit_aliases": ["3b790d256", "b98e5513f"], "source_commits": ["b98e5513f"], "source_entry_id": "9.6.2/changes/073", "db_id": "d769ba9050e475ab7f4fb4bc5722b13b", "patch_ids": ["0d8c1c812bebe6b9c0585efd38a59ea6"], "statement_hash": "1678c41e1ab91b32ff326a4329296f783f11c4e2dbf38bc9897d6aab0695bc6a", "relations": [], "version": "9.6.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.6.2-e3a04de3fa88d654", "cves": [], "html": "<p>在 Windows 上，确保环境变量更改被传播到以调试选项构建的 DLL（Christian Ullrich）</p>", "text": "在 Windows 上，确保环境变量更改被传播到以调试选项构建的 DLL（Christian Ullrich）", "title": "在 Windows 上，确保环境变量更改被传播到以调试选项构建的 DLL", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5", "source_hash": "cca5e05788c2f00562745d8d480f8aaf63e43e533e2a355ab75d527509809bb7", "section_path": ["变更"], "commit_groups": [["056d62c5e", "3cb8bdfef", "4c3505eb4", "a9265258a", "b37da1e8a", "ec7eacfae"], ["5ab4b2ec4", "6c5d5918b", "784054579", "95b9b8a39", "b45a4949d", "d83c94292"]], "identity_text": "On Windows, ensure that environment variable changes are propagated to DLLs built with debug options (Christian Ullrich)", "commit_aliases": ["056d62c5e", "3cb8bdfef", "4c3505eb4", "5ab4b2ec4", "6c5d5918b", "784054579", "95b9b8a39", "a9265258a", "b37da1e8a", "b45a4949d", "d83c94292", "ec7eacfae"], "source_commits": ["056d62c5e", "784054579"], "source_entry_id": "9.6.2/changes/074", "db_id": "7162d92bab380922d7dff3b7ebb0a506", "patch_ids": ["545bdd547553424c9f24c0a923029d39", "9d52b70c4a6c7935ecb7ae9cff1c8432"], "statement_hash": "6ea54c4db0f54faf9e4802072e4b5f1176266400b4b94ebcc34e3d151a0bb79b", "relations": [{"rule": 2, "type": "equivalent", "target": "92241514366458f8be2bc54c45b57b77", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6ea54c4db0f54faf9e4802072e4b5f1176266400b4b94ebcc34e3d151a0bb79b"}}, {"rule": 2, "type": "equivalent", "target": "ae6bb923bdf9d0c4aec9e93d8e422383", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6ea54c4db0f54faf9e4802072e4b5f1176266400b4b94ebcc34e3d151a0bb79b"}}, {"rule": 2, "type": "equivalent", "target": "bc60be7aeca51282c86243f04104edcb", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6ea54c4db0f54faf9e4802072e4b5f1176266400b4b94ebcc34e3d151a0bb79b"}}, {"rule": 2, "type": "equivalent", "target": "c4d22fa01c7df0bcf97cfa9049c954ff", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6ea54c4db0f54faf9e4802072e4b5f1176266400b4b94ebcc34e3d151a0bb79b"}}], "version": "9.6.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "ae6bb923bdf9d0c4aec9e93d8e422383", "kind": "equivalent", "version": "9.5.6", "label": "9.5.6", "title": "在 Windows 上，确保环境变量更改被传播到以调试选项构建的 DLL", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6ea54c4db0f54faf9e4802072e4b5f1176266400b4b94ebcc34e3d151a0bb79b"}, "url": "/docs/compare/?release=9.5.6#9.5.6-e3a04de3fa88d654", "source_url": "/docs/release/9.5.6/#id-1.11.6.24.5"}, {"db_id": "92241514366458f8be2bc54c45b57b77", "kind": "equivalent", "version": "9.4.11", "label": "9.4.11", "title": "在 Windows 上，确保环境变量更改被传播到以调试选项构建的 DLL", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6ea54c4db0f54faf9e4802072e4b5f1176266400b4b94ebcc34e3d151a0bb79b"}, "url": "/docs/compare/?release=9.4.11#9.4.11-e3a04de3fa88d654", "source_url": "/docs/release/9.4.11/#id-1.11.6.20.5"}, {"db_id": "c4d22fa01c7df0bcf97cfa9049c954ff", "kind": "equivalent", "version": "9.3.16", "label": "9.3.16", "title": "在 Windows 上，确保环境变量更改被传播到以调试选项构建的 DLL", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6ea54c4db0f54faf9e4802072e4b5f1176266400b4b94ebcc34e3d151a0bb79b"}, "url": "/docs/compare/?release=9.3.16#9.3.16-e3a04de3fa88d654", "source_url": "/docs/release/9.3.16/#id-1.11.6.14.5"}, {"db_id": "bc60be7aeca51282c86243f04104edcb", "kind": "equivalent", "version": "9.2.20", "label": "9.2.20", "title": "在 Windows 上，确保环境变量更改被传播到以调试选项构建的 DLL", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6ea54c4db0f54faf9e4802072e4b5f1176266400b4b94ebcc34e3d151a0bb79b"}, "url": "/docs/compare/?release=9.2.20#9.2.20-e3a04de3fa88d654", "source_url": "/docs/release/9.2.20/#id-1.11.6.9.5"}]}, {"id": "9.6.2-8ca36f6367d6fab6", "cves": [], "html": "<p>把我们的时区库副本与 IANA tzcode2016j 同步（Tom Lane）</p>\n<p>这修复了若干问题，最显著的是当目标目录不支持硬链接时区数据安装失败。</p>", "text": "把我们的时区库副本与 IANA tzcode2016j 同步（Tom Lane） 这修复了若干问题，最显著的是当目标目录不支持硬链接时区数据安装失败。", "title": "把我们的时区库副本与 IANA tzcode2016j 同步", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5", "source_hash": "a44e7a11c943ffb7d98589c40ddbf8ea1bdc98dd7ab345dc5d92e3be89f48fb7", "section_path": ["变更"], "commit_groups": [["07bc2fc45", "1f87181e1", "22b1207a3", "7afafe8af", "ac6fc1b55", "c09478e15"], ["20559a854", "32416b0f9", "3a8f24abd", "6651ab058", "6653dbafd", "6e377ef0c"], ["2b7d715c0", "492fe48f0", "6f4d38dbe", "93513d1b6", "b95f4bf07", "ccf24539b"]], "identity_text": "Sync our copy of the timezone library with IANA release tzcode2016j (Tom Lane) This fixes various issues, most notably that timezone data installation failed if the target directory didn't support hard links.", "commit_aliases": ["07bc2fc45", "1f87181e1", "20559a854", "22b1207a3", "2b7d715c0", "32416b0f9", "3a8f24abd", "492fe48f0", "6651ab058", "6653dbafd", "6e377ef0c", "6f4d38dbe", "7afafe8af", "93513d1b6", "ac6fc1b55", "b95f4bf07", "c09478e15", "ccf24539b"], "source_commits": ["20559a854", "6f4d38dbe", "7afafe8af"], "source_entry_id": "9.6.2/changes/075", "db_id": "457a190719c70cfc1f2c096b9d846f54", "patch_ids": ["12d8ab92e79d61d9604ad395a8284db2", "62310cb1d9da714efcd8c4c8e4163746", "ca50f2a4c74009fb23844bc3d764e291"], "statement_hash": "93deb20375112ad4a31533ee213c51ce9b2175725c880946c2083d367ed694db", "relations": [{"rule": 2, "type": "equivalent", "target": "28247a8918f5b21afafdd608c376bd8b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "93deb20375112ad4a31533ee213c51ce9b2175725c880946c2083d367ed694db"}}, {"rule": 2, "type": "equivalent", "target": "54437dc8b7a05c4e4a66fd2ca9236a05", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "93deb20375112ad4a31533ee213c51ce9b2175725c880946c2083d367ed694db"}}, {"rule": 2, "type": "equivalent", "target": "ca2c92a81d1310ca096285ae5b1ef55e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "93deb20375112ad4a31533ee213c51ce9b2175725c880946c2083d367ed694db"}}, {"rule": 2, "type": "equivalent", "target": "eba27fcaf1b4470b6ed9ad2c0f08c917", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "93deb20375112ad4a31533ee213c51ce9b2175725c880946c2083d367ed694db"}}], "version": "9.6.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "28247a8918f5b21afafdd608c376bd8b", "kind": "equivalent", "version": "9.5.6", "label": "9.5.6", "title": "把我们的时区库副本与 IANA tzcode2016j 同步", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "93deb20375112ad4a31533ee213c51ce9b2175725c880946c2083d367ed694db"}, "url": "/docs/compare/?release=9.5.6#9.5.6-8ca36f6367d6fab6", "source_url": "/docs/release/9.5.6/#id-1.11.6.24.5"}, {"db_id": "ca2c92a81d1310ca096285ae5b1ef55e", "kind": "equivalent", "version": "9.4.11", "label": "9.4.11", "title": "把我们的时区库副本与 IANA tzcode2016j 同步", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "93deb20375112ad4a31533ee213c51ce9b2175725c880946c2083d367ed694db"}, "url": "/docs/compare/?release=9.4.11#9.4.11-8ca36f6367d6fab6", "source_url": "/docs/release/9.4.11/#id-1.11.6.20.5"}, {"db_id": "eba27fcaf1b4470b6ed9ad2c0f08c917", "kind": "equivalent", "version": "9.3.16", "label": "9.3.16", "title": "把我们的时区库副本与 IANA tzcode2016j 同步", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "93deb20375112ad4a31533ee213c51ce9b2175725c880946c2083d367ed694db"}, "url": "/docs/compare/?release=9.3.16#9.3.16-8ca36f6367d6fab6", "source_url": "/docs/release/9.3.16/#id-1.11.6.14.5"}, {"db_id": "54437dc8b7a05c4e4a66fd2ca9236a05", "kind": "equivalent", "version": "9.2.20", "label": "9.2.20", "title": "把我们的时区库副本与 IANA tzcode2016j 同步", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "93deb20375112ad4a31533ee213c51ce9b2175725c880946c2083d367ed694db"}, "url": "/docs/compare/?release=9.2.20#9.2.20-8ca36f6367d6fab6", "source_url": "/docs/release/9.2.20/#id-1.11.6.9.5"}]}, {"id": "9.6.2-36d60f2ae6e8d309", "cves": [], "html": "<p>更新时区数据文件到 <span>tzdata</span> 版本 2016j，涉及北塞浦路斯（新增时区 Asia/Famagusta）、俄罗斯（新增时区 Europe/Saratov）、汤加和 Antarctica/Casey 的夏令时法规变更。还有意大利、哈萨克斯坦、马耳他和巴勒斯坦的历史修正。汤加改用首选数字时区缩写。</p>", "text": "更新时区数据文件到 tzdata 版本 2016j，涉及北塞浦路斯（新增时区 Asia/Famagusta）、俄罗斯（新增时区 Europe/Saratov）、汤加和 Antarctica/Casey 的夏令时法规变更。还有意大利、哈萨克斯坦、马耳他和巴勒斯坦的历史修正。汤加改用首选数字时区缩写。", "title": "更新时区数据文件到 tzdata 版本 2016j，涉及北塞浦路斯（新增时区 Asia/Famagusta）、俄罗斯（新增时区 Europe/Saratov）、汤加和 Antarctica/Casey 的夏令时法规变更。还有意大利、哈萨克斯坦、马耳他和巴勒斯坦的历史修正。汤加改用首选数字时区缩写。", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5", "source_hash": "f6e74f81e111ed74450db74a9991d7d0099c91f65d42d32f851182cf6d266ca2", "section_path": ["变更"], "commit_groups": [["2b133be04", "308d86827", "4c729f471", "6da67b684", "a7b5de3ba", "ef878cc2c"]], "identity_text": "Update time zone data files to tzdata release 2016j for DST law changes in northern Cyprus (adding a new zone Asia/Famagusta), Russia (adding a new zone Europe/Saratov), Tonga, and Antarctica/Casey. Historical corrections for Italy, Kazakhstan, Malta, and Palestine. Switch to preferring numeric zone abbreviations for Tonga.", "commit_aliases": ["2b133be04", "308d86827", "4c729f471", "6da67b684", "a7b5de3ba", "ef878cc2c"], "source_commits": ["6da67b684"], "source_entry_id": "9.6.2/changes/076", "db_id": "b9138779daab18b2425a44234398696f", "patch_ids": ["ade96486225f3d7f6f73b80018a8e53b"], "statement_hash": "611b417aec1f1aa9363eab3dcbf8f77e61343b2f148bcc1089ebb294b7a5c713", "relations": [{"rule": 2, "type": "equivalent", "target": "1ecb13fc6bee48daab0328fe79047aea", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "611b417aec1f1aa9363eab3dcbf8f77e61343b2f148bcc1089ebb294b7a5c713"}}, {"rule": 2, "type": "equivalent", "target": "984e50f01c50c81f2e6530606dab0861", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "611b417aec1f1aa9363eab3dcbf8f77e61343b2f148bcc1089ebb294b7a5c713"}}, {"rule": 2, "type": "equivalent", "target": "a8d123be1a72877ac194ad3da4bda463", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "611b417aec1f1aa9363eab3dcbf8f77e61343b2f148bcc1089ebb294b7a5c713"}}, {"rule": 2, "type": "equivalent", "target": "f8c284348cf875fa447124b6c63868f1", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "611b417aec1f1aa9363eab3dcbf8f77e61343b2f148bcc1089ebb294b7a5c713"}}], "version": "9.6.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "f8c284348cf875fa447124b6c63868f1", "kind": "equivalent", "version": "9.5.6", "label": "9.5.6", "title": "更新时区数据文件到 tzdata 版本 2016j，涉及北塞浦路斯（新增时区 Asia/Famagusta）、俄罗斯（新增时区 Europe/Saratov）、汤加和 Antarctica/Casey 的夏令时法规变更。还有意大利、哈萨克斯坦、马耳他和巴勒斯坦的历史修正。汤加改用首选数字时区缩写。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "611b417aec1f1aa9363eab3dcbf8f77e61343b2f148bcc1089ebb294b7a5c713"}, "url": "/docs/compare/?release=9.5.6#9.5.6-36d60f2ae6e8d309", "source_url": "/docs/release/9.5.6/#id-1.11.6.24.5"}, {"db_id": "1ecb13fc6bee48daab0328fe79047aea", "kind": "equivalent", "version": "9.4.11", "label": "9.4.11", "title": "更新时区数据文件到 tzdata 版本 2016j，涉及北塞浦路斯（新增时区 Asia/Famagusta）、俄罗斯（新增时区 Europe/Saratov）、汤加和 Antarctica/Casey 的夏令时法规变更。还有意大利、哈萨克斯坦、马耳他和巴勒斯坦的历史修正。汤加改用首选数字时区缩写。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "611b417aec1f1aa9363eab3dcbf8f77e61343b2f148bcc1089ebb294b7a5c713"}, "url": "/docs/compare/?release=9.4.11#9.4.11-36d60f2ae6e8d309", "source_url": "/docs/release/9.4.11/#id-1.11.6.20.5"}, {"db_id": "984e50f01c50c81f2e6530606dab0861", "kind": "equivalent", "version": "9.3.16", "label": "9.3.16", "title": "更新时区数据文件到 tzdata 版本 2016j，涉及北塞浦路斯（新增时区 Asia/Famagusta）、俄罗斯（新增时区 Europe/Saratov）、汤加和 Antarctica/Casey 的夏令时法规变更。还有意大利、哈萨克斯坦、马耳他和巴勒斯坦的历史修正。汤加改用首选数字时区缩写。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "611b417aec1f1aa9363eab3dcbf8f77e61343b2f148bcc1089ebb294b7a5c713"}, "url": "/docs/compare/?release=9.3.16#9.3.16-36d60f2ae6e8d309", "source_url": "/docs/release/9.3.16/#id-1.11.6.14.5"}, {"db_id": "a8d123be1a72877ac194ad3da4bda463", "kind": "equivalent", "version": "9.2.20", "label": "9.2.20", "title": "更新时区数据文件到 tzdata 版本 2016j，涉及北塞浦路斯（新增时区 Asia/Famagusta）、俄罗斯（新增时区 Europe/Saratov）、汤加和 Antarctica/Casey 的夏令时法规变更。还有意大利、哈萨克斯坦、马耳他和巴勒斯坦的历史修正。汤加改用首选数字时区缩写。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "611b417aec1f1aa9363eab3dcbf8f77e61343b2f148bcc1089ebb294b7a5c713"}, "url": "/docs/compare/?release=9.2.20#9.2.20-36d60f2ae6e8d309", "source_url": "/docs/release/9.2.20/#id-1.11.6.9.5"}]}]}], "stats": [{"key": "all", "label": "全部变更", "count": 76}, {"key": "feature", "label": "新功能", "count": 0}, {"key": "bugfix", "label": "BUG 修复", "count": 47}, {"key": "security", "label": "安全相关", "count": 0}, {"key": "performance", "label": "性能改进", "count": 0}, {"key": "compatibility", "label": "兼容性变化", "count": 0}, {"key": "improvement", "label": "其他改进", "count": 29}], "total": 76, "release_count": 1, "cross_major": false, "cve_count": 0, "cves": [], "cve_available": true, "remaining_cves": [], "security_regressions": [], "warnings": [], "candidate_count": 76, "already_in_source_count": 0, "duplicate_count": 0, "excluded_count": 0, "exclusions": [], "source_as_of": "2026-09-26", "security_as_of": "2026-09-26"}