{"format": 1, "mode": "release", "from_release": null, "to_release": {"date": "2012-06-04", "build": "9.0.8", "major": "9.0", "minor": 8, "manual": "9.0", "status": "stable", "doc_git": "", "version": "9.0.8", "eol_date": "2015-10-08", "date_text": "2012-06-04", "supported": false, "manual_url": "/docs/9.0/release-9-0-8.html", "source_url": "/docs/release/9.0.8/", "entry_count": 27, "placeholder": false, "content_hash": "84dc39e4117bfcbc39211cf81fb642146eff82475be41e71aa8f75a6b89a586d", "manual_build": "9.0.23", "source_as_of": "", "changes_count": 27, "doc_loaded_at": "2026-09-26T02:56:48.570247", "migration_html": "<p>对于运行 9.0.X 的用户，不需要进行转储/恢复。</p>\n<p>不过，如果你是从早于 9.0.6 的版本升级，请参见<a href=\"/docs/9.0/release-9-0-6.html\" title=\"E.18. 版本 9.0.6\">第 E.18 节</a>。</p>", "compatibility_count": 0, "label": "9.0.8", "status_label": "历史版本", "eol": "2015-10-08", "age_days": 5231, "support_days": -4010}, "groups": [{"date": "2012-06-04", "build": "9.0.8", "major": "9.0", "minor": 8, "manual": "9.0", "status": "stable", "doc_git": "", "version": "9.0.8", "eol_date": "2015-10-08", "date_text": "2012-06-04", "supported": false, "manual_url": "/docs/9.0/release-9-0-8.html", "source_url": "/docs/release/9.0.8/", "entry_count": 27, "placeholder": false, "content_hash": "84dc39e4117bfcbc39211cf81fb642146eff82475be41e71aa8f75a6b89a586d", "manual_build": "9.0.23", "source_as_of": "", "changes_count": 27, "doc_loaded_at": "2026-09-26T02:56:48.570247", "migration_html": "<p>对于运行 9.0.X 的用户，不需要进行转储/恢复。</p>\n<p>不过，如果你是从早于 9.0.6 的版本升级，请参见<a href=\"/docs/9.0/release-9-0-6.html\" title=\"E.18. 版本 9.0.6\">第 E.18 节</a>。</p>", "compatibility_count": 0, "label": "9.0.8", "status_label": "历史版本", "eol": "2015-10-08", "age_days": 5231, "support_days": -4010, "entries": [{"id": "9.0.8-f7e027714cbe55a9", "cves": ["CVE-2012-2143"], "html": "<p>修复 <code>contrib/pgcrypto</code> 的 DES <code>crypt()</code> 函数中不正确的口令变换（Solar Designer）</p>\n<p>如果口令串包含字节值 <code>0x80</code>，口令的其余部分会被忽略，使口令比看起来弱得多。修复后，字符串的其余部分会被正确纳入 DES 哈希。因此，受此缺陷影响的任何已存储口令值将不再匹配，所以可能需要更新已存储的值。（CVE-2012-2143）</p>", "text": "修复 contrib/pgcrypto 的 DES crypt() 函数中不正确的口令变换（Solar Designer） 如果口令串包含字节值 0x80，口令的其余部分会被忽略，使口令比看起来弱得多。修复后，字符串的其余部分会被正确纳入 DES 哈希。因此，受此缺陷影响的任何已存储口令值将不再匹配，所以可能需要更新已存储的值。（CVE-2012-2143）", "title": "修复 contrib/pgcrypto 的 DES crypt() 函数中不正确的口令变换", "commits": [], "section": "变更", "category": "security", "source_url": "/docs/release/9.0.8/#id-1.11.6.20.5", "source_hash": "03a1260ee215d2a25cc1484b7103f4107390ddf678301f7bd1ceae282b0d55b1", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix incorrect password transformation in contrib/pgcrypto's DES crypt() function (Solar Designer) If a password string contained the byte value 0x80, the remainder of the password was ignored, causing the password to be much weaker than it appeared. With this fix, the rest of the string is properly included in the DES hash. Any stored password values that are affected by this bug will thus no longer match, so the stored values may need to be updated. (CVE-2012-2143)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.8/changes/001", "db_id": "cb5920a7729a661d027d04e87378653a", "patch_ids": [], "statement_hash": "0f947a81af48a2bd27b30000bab97b036e134d06ee4907612bcff56b4d16f7aa", "relations": [{"rule": 2, "type": "equivalent", "target": "d1c9aa8a6e42b789d6b12bf1c19ff48d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0f947a81af48a2bd27b30000bab97b036e134d06ee4907612bcff56b4d16f7aa"}}], "version": "9.0.8", "category_label": "安全相关", "also_in": [], "variants": [], "related_changes": [{"db_id": "d1c9aa8a6e42b789d6b12bf1c19ff48d", "kind": "equivalent", "version": "9.1.4", "label": "9.1.4", "title": "修复 contrib/pgcrypto 的 DES crypt() 函数中不正确的口令变换", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0f947a81af48a2bd27b30000bab97b036e134d06ee4907612bcff56b4d16f7aa"}, "url": "/docs/compare/?release=9.1.4#9.1.4-f7e027714cbe55a9", "source_url": "/docs/release/9.1.4/#id-1.11.6.25.5"}]}, {"id": "9.0.8-950752998fe1f2a1", "cves": ["CVE-2012-2655"], "html": "<p>忽略过程语言调用处理程序的 <code>SECURITY DEFINER</code> 和 <code>SET</code> 属性（Tom Lane）</p>\n<p>把这类属性应用于调用处理程序可能导致服务器崩溃。（CVE-2012-2655）</p>", "text": "忽略过程语言调用处理程序的 SECURITY DEFINER 和 SET 属性（Tom Lane） 把这类属性应用于调用处理程序可能导致服务器崩溃。（CVE-2012-2655）", "title": "忽略过程语言调用处理程序的 SECURITY DEFINER 和 SET 属性", "commits": [], "section": "变更", "category": "security", "source_url": "/docs/release/9.0.8/#id-1.11.6.20.5", "source_hash": "bbdb239a6841f1e9d3da8a3a37b3e91395b788f87fd1a80b91653ba2dd93352c", "section_path": ["变更"], "commit_groups": [], "identity_text": "Ignore SECURITY DEFINER and SET attributes for a procedural language's call handler (Tom Lane) Applying such attributes to a call handler could crash the server. (CVE-2012-2655)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.8/changes/002", "db_id": "2dc791f135e8a00bb8117ee8ba9bbf9f", "patch_ids": [], "statement_hash": "3a45f8c9f78d68b6bb81173d47eee8e0f3bfb011cdfceb55b611990b4bfde531", "relations": [{"rule": 2, "type": "equivalent", "target": "1e9aa9dadb7f705940e29fe92ef4e58c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3a45f8c9f78d68b6bb81173d47eee8e0f3bfb011cdfceb55b611990b4bfde531"}}], "version": "9.0.8", "category_label": "安全相关", "also_in": [], "variants": [], "related_changes": [{"db_id": "1e9aa9dadb7f705940e29fe92ef4e58c", "kind": "equivalent", "version": "9.1.4", "label": "9.1.4", "title": "忽略过程语言调用处理程序的 SECURITY DEFINER 和 SET 属性", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3a45f8c9f78d68b6bb81173d47eee8e0f3bfb011cdfceb55b611990b4bfde531"}, "url": "/docs/compare/?release=9.1.4#9.1.4-950752998fe1f2a1", "source_url": "/docs/release/9.1.4/#id-1.11.6.25.5"}]}, {"id": "9.0.8-c62fc7c46c9b6370", "cves": [], "html": "<p>允许 <code>timestamp</code> 输入中的数字时区偏移距 UTC 最多 16 小时（Tom Lane）</p>\n<p>一些历史时区的偏移超过此前 15 小时的限制。这可能导致转储的数据值在重载期间被拒绝。</p>", "text": "允许 timestamp 输入中的数字时区偏移距 UTC 最多 16 小时（Tom Lane） 一些历史时区的偏移超过此前 15 小时的限制。这可能导致转储的数据值在重载期间被拒绝。", "title": "允许 timestamp 输入中的数字时区偏移距 UTC 最多 16 小时", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.8/#id-1.11.6.20.5", "source_hash": "095455017b66c55da7ed039aa3f5560a3263adfea20dda6aa302de82de828030", "section_path": ["变更"], "commit_groups": [], "identity_text": "Allow numeric timezone offsets in timestamp input to be up to 16 hours away from UTC (Tom Lane) Some historical time zones have offsets larger than 15 hours, the previous limit. This could result in dumped data values being rejected during reload.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.8/changes/003", "db_id": "66dfcc585e0253d76efafa427b1cfacf", "patch_ids": [], "statement_hash": "c3e3ec0ac5c3d36697ec4d7790092641fb62939d3e45a1ab5fb07e9627be88e7", "relations": [{"rule": 2, "type": "equivalent", "target": "148a0e4a0398fc58c07421da3704ba28", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c3e3ec0ac5c3d36697ec4d7790092641fb62939d3e45a1ab5fb07e9627be88e7"}}], "version": "9.0.8", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "148a0e4a0398fc58c07421da3704ba28", "kind": "equivalent", "version": "9.1.4", "label": "9.1.4", "title": "允许 timestamp 输入中的数字时区偏移距 UTC 最多 16 小时", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c3e3ec0ac5c3d36697ec4d7790092641fb62939d3e45a1ab5fb07e9627be88e7"}, "url": "/docs/compare/?release=9.1.4#9.1.4-c62fc7c46c9b6370", "source_url": "/docs/release/9.1.4/#id-1.11.6.25.5"}]}, {"id": "9.0.8-8d118edb2ae197ca", "cves": [], "html": "<p>修复时间戳转换，使其在给定时间恰好是当前时区最后一次夏令时转换时间时能正确处理（Tom Lane）</p>\n<p>这一疏忽已存在很长时间，但此前未被注意到，因为大多数使用夏令时的时区被假定有无限的未来夏令时转换序列。</p>", "text": "修复时间戳转换，使其在给定时间恰好是当前时区最后一次夏令时转换时间时能正确处理（Tom Lane） 这一疏忽已存在很长时间，但此前未被注意到，因为大多数使用夏令时的时区被假定有无限的未来夏令时转换序列。", "title": "修复时间戳转换，使其在给定时间恰好是当前时区最后一次夏令时转换时间时能正确处理", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.8/#id-1.11.6.20.5", "source_hash": "dcb250ef64a23c07160dcef95f88732260b4bea6fb201bd5fc62375f81319c48", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix timestamp conversion to cope when the given time is exactly the last DST transition time for the current timezone (Tom Lane) This oversight has been there a long time, but was not noticed previously because most DST-using zones are presumed to have an indefinite sequence of future DST transitions.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.8/changes/004", "db_id": "adbae31d5c047fe31754c449e1bbaa24", "patch_ids": [], "statement_hash": "83fe48e3588100d31ea25ded9b792e4acf012f89a6827c2e26ad123c24092655", "relations": [{"rule": 2, "type": "equivalent", "target": "dba677f0792ea4293b27390098dc3d6d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "83fe48e3588100d31ea25ded9b792e4acf012f89a6827c2e26ad123c24092655"}}], "version": "9.0.8", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "dba677f0792ea4293b27390098dc3d6d", "kind": "equivalent", "version": "9.1.4", "label": "9.1.4", "title": "修复时间戳转换，使其在给定时间恰好是当前时区最后一次夏令时转换时间时能正确处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "83fe48e3588100d31ea25ded9b792e4acf012f89a6827c2e26ad123c24092655"}, "url": "/docs/compare/?release=9.1.4#9.1.4-8d118edb2ae197ca", "source_url": "/docs/release/9.1.4/#id-1.11.6.25.5"}]}, {"id": "9.0.8-cb1403d26eab4c62", "cves": [], "html": "<p>修复 <code>text</code> 到 <code>name</code> 以及 <code>char</code> 到 <code>name</code> 的转换，使其在多字节编码下正确执行字符串截断（Karl Schnaitter）</p>", "text": "修复 text 到 name 以及 char 到 name 的转换，使其在多字节编码下正确执行字符串截断（Karl Schnaitter）", "title": "修复 text 到 name 以及 char 到 name 的转换，使其在多字节编码下正确执行字符串截断", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.8/#id-1.11.6.20.5", "source_hash": "b238c8128f334e29dd27f26a155f4798409dd546ad6a8b2118ce60dec4ea1779", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix text to name and char to name casts to perform string truncation correctly in multibyte encodings (Karl Schnaitter)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.8/changes/005", "db_id": "b62ecf087122590c91da50302d70e3ff", "patch_ids": [], "statement_hash": "2c91579c14e0421cc4befc73e67c9f3a6bdee231311a8a3f88da3cea2f6eaa05", "relations": [{"rule": 2, "type": "equivalent", "target": "d2cebd1f21edbebaa93a2a85740498f1", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2c91579c14e0421cc4befc73e67c9f3a6bdee231311a8a3f88da3cea2f6eaa05"}}], "version": "9.0.8", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "d2cebd1f21edbebaa93a2a85740498f1", "kind": "equivalent", "version": "9.1.4", "label": "9.1.4", "title": "修复 text 到 name 以及 char 到 name 的转换，使其在多字节编码下正确执行字符串截断", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2c91579c14e0421cc4befc73e67c9f3a6bdee231311a8a3f88da3cea2f6eaa05"}, "url": "/docs/compare/?release=9.1.4#9.1.4-cb1403d26eab4c62", "source_url": "/docs/release/9.1.4/#id-1.11.6.25.5"}]}, {"id": "9.0.8-5a31d7980364b87c", "cves": [], "html": "<p>修复 <code>to_tsquery()</code> 中的内存复制缺陷（Heikki Linnakangas）</p>", "text": "修复 to_tsquery() 中的内存复制缺陷（Heikki Linnakangas）", "title": "修复 to_tsquery() 中的内存复制缺陷", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.8/#id-1.11.6.20.5", "source_hash": "88d94d6ef8e5b743952e58e6e2f93bb4574b553085c6bc89ed71c0e9e1b0413d", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix memory copying bug in to_tsquery() (Heikki Linnakangas)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.8/changes/006", "db_id": "c69a6087c68a06d664f2f8f71e09fb6e", "patch_ids": [], "statement_hash": "17052e5fa0cc283e7f8c8c7f3b11ae8239d038ed05d86b422f744fa3e28545f4", "relations": [{"rule": 2, "type": "equivalent", "target": "246ee9f97ad753e16c3afac6fdea659c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "17052e5fa0cc283e7f8c8c7f3b11ae8239d038ed05d86b422f744fa3e28545f4"}}], "version": "9.0.8", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "246ee9f97ad753e16c3afac6fdea659c", "kind": "equivalent", "version": "9.1.4", "label": "9.1.4", "title": "修复 to_tsquery() 中的内存复制缺陷", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "17052e5fa0cc283e7f8c8c7f3b11ae8239d038ed05d86b422f744fa3e28545f4"}, "url": "/docs/compare/?release=9.1.4#9.1.4-5a31d7980364b87c", "source_url": "/docs/release/9.1.4/#id-1.11.6.25.5"}]}, {"id": "9.0.8-360cb51d2a1fd171", "cves": [], "html": "<p>确保 <code>txid_current()</code> 在热备中执行时报告正确的纪元（epoch）（Simon Riggs）</p>", "text": "确保 txid_current() 在热备中执行时报告正确的纪元（epoch）（Simon Riggs）", "title": "确保 txid_current() 在热备中执行时报告正确的纪元（epoch）", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.8/#id-1.11.6.20.5", "source_hash": "b0ccb6472cbc75c153b6da657f721258b1d7c69f33eb187eca5ff4774d793988", "section_path": ["变更"], "commit_groups": [], "identity_text": "Ensure txid_current() reports the correct epoch when executed in hot standby (Simon Riggs)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.8/changes/007", "db_id": "558735af561463755186750792b27395", "patch_ids": [], "statement_hash": "6ff384176800c990eead1448541e563e2034b2d035497e65e5f33c45cff13118", "relations": [{"rule": 2, "type": "equivalent", "target": "2c0dec606905b65df86f3696314a0f28", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6ff384176800c990eead1448541e563e2034b2d035497e65e5f33c45cff13118"}}], "version": "9.0.8", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "2c0dec606905b65df86f3696314a0f28", "kind": "equivalent", "version": "9.1.4", "label": "9.1.4", "title": "确保 txid_current() 在热备中执行时报告正确的纪元（epoch）", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6ff384176800c990eead1448541e563e2034b2d035497e65e5f33c45cff13118"}, "url": "/docs/compare/?release=9.1.4#9.1.4-360cb51d2a1fd171", "source_url": "/docs/release/9.1.4/#id-1.11.6.25.5"}]}, {"id": "9.0.8-6c756bffcdb78f66", "cves": [], "html": "<p>修复规划器对子查询内外层 PlaceHolderVar 的处理（Tom Lane）</p>\n<p>该缺陷涉及引用来自外层查询外连接可空侧变量的子 SELECT。在 9.1 中，受此缺陷影响的查询会报 <span>“<span>ERROR: Upper-level PlaceHolderVar found where not expected</span>”</span> 失败。但在 9.0 和 8.4 中，你会静默地得到可能错误的答案，因为传入子查询的值不会在该为空时变为空。</p>", "text": "修复规划器对子查询内外层 PlaceHolderVar 的处理（Tom Lane） 该缺陷涉及引用来自外层查询外连接可空侧变量的子 SELECT。在 9.1 中，受此缺陷影响的查询会报 “ERROR: Upper-level PlaceHolderVar found where not expected” 失败。但在 9.0 和 8.4 中，你会静默地得到可能错误的答案，因为传入子查询的值不会在该为空时变为空。", "title": "修复规划器对子查询内外层 PlaceHolderVar 的处理", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.8/#id-1.11.6.20.5", "source_hash": "74402dad6b2aa4c05f2ded5ac17ec2100eab3cb773d7b741805a6b81b4c7e85b", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix planner's handling of outer PlaceHolderVars within subqueries (Tom Lane) This bug concerns sub-SELECTs that reference variables coming from the nullable side of an outer join of the surrounding query. In 9.1, queries affected by this bug would fail with ERROR: Upper-level PlaceHolderVar found where not expected. But in 9.0 and 8.4, you'd silently get possibly-wrong answers, since the value transmitted into the subquery wouldn't go to null when it should.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.8/changes/008", "db_id": "19a6e1973e59e9da729551e85bc3d665", "patch_ids": [], "statement_hash": "8ee28efc2fbfda74cb453da5f680773337fd25421ee1855c571078dd937bb706", "relations": [{"rule": 2, "type": "equivalent", "target": "ef188976cac2505dda8376e40a42b5d1", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8ee28efc2fbfda74cb453da5f680773337fd25421ee1855c571078dd937bb706"}}], "version": "9.0.8", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "ef188976cac2505dda8376e40a42b5d1", "kind": "equivalent", "version": "9.1.4", "label": "9.1.4", "title": "修复规划器对子查询内外层 PlaceHolderVar 的处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8ee28efc2fbfda74cb453da5f680773337fd25421ee1855c571078dd937bb706"}, "url": "/docs/compare/?release=9.1.4#9.1.4-6c756bffcdb78f66", "source_url": "/docs/release/9.1.4/#id-1.11.6.25.5"}]}, {"id": "9.0.8-0ee6a4c6ae8c98fb", "cves": [], "html": "<p>修复 <code>pg_attribute</code> 非常大会话启动缓慢的问题（Tom Lane）</p>\n<p>如果 <code>pg_attribute</code> 超过 <code>shared_buffers</code> 的四分之一，会话启动期间有时需要的缓存重建代码就会触发同步扫描逻辑，使其耗时比正常情况多数倍。如果许多新会话同时启动，问题尤为严重。</p>", "text": "修复 pg_attribute 非常大会话启动缓慢的问题（Tom Lane） 如果 pg_attribute 超过 shared_buffers 的四分之一，会话启动期间有时需要的缓存重建代码就会触发同步扫描逻辑，使其耗时比正常情况多数倍。如果许多新会话同时启动，问题尤为严重。", "title": "修复 pg_attribute 非常大会话启动缓慢的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.8/#id-1.11.6.20.5", "source_hash": "f291eb34a8053b272fe285d3cb88a3e84de3ed5e0d6a59c98714e1d708ded0e3", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix slow session startup when pg_attribute is very large (Tom Lane) If pg_attribute exceeds one-fourth of shared_buffers, cache rebuilding code that is sometimes needed during session start would trigger the synchronized-scan logic, causing it to take many times longer than normal. The problem was particularly acute if many new sessions were starting at once.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.8/changes/009", "db_id": "8e30e72a2405bcb8cb42f78c56812986", "patch_ids": [], "statement_hash": "0a7f507b1407c40499c963726716788f68d57c16325ddd52739c2610a0f7af0b", "relations": [{"rule": 2, "type": "equivalent", "target": "3067d257f33b50d90891579b75bb82b1", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0a7f507b1407c40499c963726716788f68d57c16325ddd52739c2610a0f7af0b"}}], "version": "9.0.8", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "3067d257f33b50d90891579b75bb82b1", "kind": "equivalent", "version": "9.1.4", "label": "9.1.4", "title": "修复 pg_attribute 非常大会话启动缓慢的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0a7f507b1407c40499c963726716788f68d57c16325ddd52739c2610a0f7af0b"}, "url": "/docs/compare/?release=9.1.4#9.1.4-0ee6a4c6ae8c98fb", "source_url": "/docs/release/9.1.4/#id-1.11.6.25.5"}]}, {"id": "9.0.8-dd3e7759287e444a", "cves": [], "html": "<p>确保顺序扫描以合理的频率检查查询取消（Merlin Moncure）</p>\n<p>遇到许多不含存活元组的连续页面的扫描在此期间不会响应中断。</p>", "text": "确保顺序扫描以合理的频率检查查询取消（Merlin Moncure） 遇到许多不含存活元组的连续页面的扫描在此期间不会响应中断。", "title": "确保顺序扫描以合理的频率检查查询取消", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.8/#id-1.11.6.20.5", "source_hash": "48f014989507f574f50e0319eea1787d248a8c0acb89c83bd8cb242202121d25", "section_path": ["变更"], "commit_groups": [], "identity_text": "Ensure sequential scans check for query cancel reasonably often (Merlin Moncure) A scan encountering many consecutive pages that contain no live tuples would not respond to interrupts meanwhile.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.8/changes/010", "db_id": "1adeba20bc22f27bf9f5441c733c00fe", "patch_ids": [], "statement_hash": "32c4ebad7086dd8ff0fb67a82b5d81e2020c0da9c949bd90c1da163f46f80891", "relations": [{"rule": 2, "type": "equivalent", "target": "bd6436e92343187447f9bd25be2155e3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "32c4ebad7086dd8ff0fb67a82b5d81e2020c0da9c949bd90c1da163f46f80891"}}], "version": "9.0.8", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "bd6436e92343187447f9bd25be2155e3", "kind": "equivalent", "version": "9.1.4", "label": "9.1.4", "title": "确保顺序扫描以合理的频率检查查询取消", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "32c4ebad7086dd8ff0fb67a82b5d81e2020c0da9c949bd90c1da163f46f80891"}, "url": "/docs/compare/?release=9.1.4#9.1.4-dd3e7759287e444a", "source_url": "/docs/release/9.1.4/#id-1.11.6.25.5"}]}, {"id": "9.0.8-a6be6a0fdf406fc1", "cves": [], "html": "<p>确保 <code>PGSemaphoreLock()</code> 的 Windows 实现在返回前清除 <code>ImmediateInterruptOK</code>（Tom Lane）</p>\n<p>这一疏忽意味着同一查询稍后收到的查询取消中断可能在不安全的时刻被接受，后果不可预测且不好。</p>", "text": "确保 PGSemaphoreLock() 的 Windows 实现在返回前清除 ImmediateInterruptOK（Tom Lane） 这一疏忽意味着同一查询稍后收到的查询取消中断可能在不安全的时刻被接受，后果不可预测且不好。", "title": "确保 PGSemaphoreLock() 的 Windows 实现在返回前清除 ImmediateInterruptOK", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.8/#id-1.11.6.20.5", "source_hash": "0515df05c357e80f06528ed45102c74a7345c0c78656281ee72ab3a2948a8f1b", "section_path": ["变更"], "commit_groups": [], "identity_text": "Ensure the Windows implementation of PGSemaphoreLock() clears ImmediateInterruptOK before returning (Tom Lane) This oversight meant that a query-cancel interrupt received later in the same query could be accepted at an unsafe time, with unpredictable but not good consequences.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.8/changes/011", "db_id": "621e08ded86dac462543a1b66528aedf", "patch_ids": [], "statement_hash": "475baa30bf05e7068b9227b884192b9296ffb209bb282f734ab8b4f1bad76d95", "relations": [{"rule": 2, "type": "equivalent", "target": "db01691604fa124e6f972589c146118e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "475baa30bf05e7068b9227b884192b9296ffb209bb282f734ab8b4f1bad76d95"}}], "version": "9.0.8", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "db01691604fa124e6f972589c146118e", "kind": "equivalent", "version": "9.1.4", "label": "9.1.4", "title": "确保 PGSemaphoreLock() 的 Windows 实现在返回前清除 ImmediateInterruptOK", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "475baa30bf05e7068b9227b884192b9296ffb209bb282f734ab8b4f1bad76d95"}, "url": "/docs/compare/?release=9.1.4#9.1.4-a6be6a0fdf406fc1", "source_url": "/docs/release/9.1.4/#id-1.11.6.25.5"}]}, {"id": "9.0.8-37785b7bff0bb5e4", "cves": [], "html": "<p>在打印视图或规则时安全地显示整行变量（Abbas Butt、Tom Lane）</p>\n<p>涉及有歧义名称（即该名称既可能是查询的表名也可能是列名）的极端情况此前以有歧义的方式打印，存在视图或规则在转储和重载后被不同解释的风险。现通过附加无操作转换来避免歧义情况。</p>", "text": "在打印视图或规则时安全地显示整行变量（Abbas Butt、Tom Lane） 涉及有歧义名称（即该名称既可能是查询的表名也可能是列名）的极端情况此前以有歧义的方式打印，存在视图或规则在转储和重载后被不同解释的风险。现通过附加无操作转换来避免歧义情况。", "title": "在打印视图或规则时安全地显示整行变量", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.8/#id-1.11.6.20.5", "source_hash": "3e74b472e7c0b99515ebc321a5a5838a351a6c867b3a9ba9b84464243793b519", "section_path": ["变更"], "commit_groups": [], "identity_text": "Show whole-row variables safely when printing views or rules (Abbas Butt, Tom Lane) Corner cases involving ambiguous names (that is, the name could be either a table or column name of the query) were printed in an ambiguous way, risking that the view or rule would be interpreted differently after dump and reload. Avoid the ambiguous case by attaching a no-op cast.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.8/changes/012", "db_id": "046268baafb6eb208a178d325c4f509f", "patch_ids": [], "statement_hash": "b08bd7aedbfa17f2c0ae9439b638e1f95a9356d905183fa9049d8bf16d7b6dcb", "relations": [{"rule": 2, "type": "equivalent", "target": "4c8e9274b22ace290b1f223746068ee3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b08bd7aedbfa17f2c0ae9439b638e1f95a9356d905183fa9049d8bf16d7b6dcb"}}], "version": "9.0.8", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "4c8e9274b22ace290b1f223746068ee3", "kind": "equivalent", "version": "9.1.4", "label": "9.1.4", "title": "在打印视图或规则时安全地显示整行变量", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b08bd7aedbfa17f2c0ae9439b638e1f95a9356d905183fa9049d8bf16d7b6dcb"}, "url": "/docs/compare/?release=9.1.4#9.1.4-37785b7bff0bb5e4", "source_url": "/docs/release/9.1.4/#id-1.11.6.25.5"}]}, {"id": "9.0.8-829dca33ef5c035f", "cves": [], "html": "<p>修复 <code>COPY FROM</code>，使其正确处理对应无效编码的空值标记串（Tom Lane）</p>\n<p>诸如 <code>E'\\\\0'</code> 这样的空值标记串本应有效，过去也确实有效，但该情况在 8.4 中被破坏。</p>", "text": "修复 COPY FROM，使其正确处理对应无效编码的空值标记串（Tom Lane） 诸如 E'\\\\0' 这样的空值标记串本应有效，过去也确实有效，但该情况在 8.4 中被破坏。", "title": "修复 COPY FROM，使其正确处理对应无效编码的空值标记串", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.8/#id-1.11.6.20.5", "source_hash": "cae92798a320025c41a60c0b6591a20eb89652cf2db5351718a0341c03f56614", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix COPY FROM to properly handle null marker strings that correspond to invalid encoding (Tom Lane) A null marker string such as E'\\\\0' should work, and did work in the past, but the case got broken in 8.4.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.8/changes/013", "db_id": "2a4117a0b88da00252fd221e090f5545", "patch_ids": [], "statement_hash": "e95a56110050751e2be814ee1968520c2f1bdb1d487ab0ed47dfa2672f30fb83", "relations": [{"rule": 2, "type": "equivalent", "target": "b5da3801ab6a6f88ccbc5d535a02965a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e95a56110050751e2be814ee1968520c2f1bdb1d487ab0ed47dfa2672f30fb83"}}], "version": "9.0.8", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "b5da3801ab6a6f88ccbc5d535a02965a", "kind": "equivalent", "version": "9.1.4", "label": "9.1.4", "title": "修复 COPY FROM，使其正确处理对应无效编码的空值标记串", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e95a56110050751e2be814ee1968520c2f1bdb1d487ab0ed47dfa2672f30fb83"}, "url": "/docs/compare/?release=9.1.4#9.1.4-829dca33ef5c035f", "source_url": "/docs/release/9.1.4/#id-1.11.6.25.5"}]}, {"id": "9.0.8-ffb859808358d3e6", "cves": [], "html": "<p>确保自动清理工作进程正确执行栈深度检查（Heikki Linnakangas）</p>\n<p>此前，由自动 <code>ANALYZE</code> 调用的函数中的无限递归可能导致工作进程崩溃。</p>", "text": "确保自动清理工作进程正确执行栈深度检查（Heikki Linnakangas） 此前，由自动 ANALYZE 调用的函数中的无限递归可能导致工作进程崩溃。", "title": "确保自动清理工作进程正确执行栈深度检查", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.8/#id-1.11.6.20.5", "source_hash": "b794dd5ddc8be160f08b469b5728c89827fbc41451390fb278c4a23161abce8e", "section_path": ["变更"], "commit_groups": [], "identity_text": "Ensure autovacuum worker processes perform stack depth checking properly (Heikki Linnakangas) Previously, infinite recursion in a function invoked by auto-ANALYZE could crash worker processes.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.8/changes/014", "db_id": "36167ec72ac13f36f65ffe51dfc10ef8", "patch_ids": [], "statement_hash": "0f52396aa707d6b843a52a7c887bbdde0c730d2fec6c70552b6a7c795241c07e", "relations": [{"rule": 2, "type": "equivalent", "target": "5163f9da5a826eaa7bbcf89a43982fec", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0f52396aa707d6b843a52a7c887bbdde0c730d2fec6c70552b6a7c795241c07e"}}], "version": "9.0.8", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "5163f9da5a826eaa7bbcf89a43982fec", "kind": "equivalent", "version": "9.1.4", "label": "9.1.4", "title": "确保自动清理工作进程正确执行栈深度检查", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0f52396aa707d6b843a52a7c887bbdde0c730d2fec6c70552b6a7c795241c07e"}, "url": "/docs/compare/?release=9.1.4#9.1.4-ffb859808358d3e6", "source_url": "/docs/release/9.1.4/#id-1.11.6.25.5"}]}, {"id": "9.0.8-6bfe9c34cb456dbf", "cves": [], "html": "<p>修复日志收集器，使其在高负载下不丢失日志连贯性（Andrew Dunstan）</p>\n<p>此前，如果收集器过于忙碌，可能无法重新组装大消息。</p>", "text": "修复日志收集器，使其在高负载下不丢失日志连贯性（Andrew Dunstan） 此前，如果收集器过于忙碌，可能无法重新组装大消息。", "title": "修复日志收集器，使其在高负载下不丢失日志连贯性", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.8/#id-1.11.6.20.5", "source_hash": "92a514017fd659be3e62a4e84ff9ac785df62dba2904561c23526e0231724645", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix logging collector to not lose log coherency under high load (Andrew Dunstan) The collector previously could fail to reassemble large messages if it got too busy.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.8/changes/015", "db_id": "7bf5d3e7f3ea95a754f5c5a79f806a3b", "patch_ids": [], "statement_hash": "a8f1eaf60d9cbec4f01617787fed23b1a7342ea79b3c4a281c02d49023cafb0e", "relations": [{"rule": 2, "type": "equivalent", "target": "b153bdac2cdae4cf4c2db4419094a37c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a8f1eaf60d9cbec4f01617787fed23b1a7342ea79b3c4a281c02d49023cafb0e"}}], "version": "9.0.8", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "b153bdac2cdae4cf4c2db4419094a37c", "kind": "equivalent", "version": "9.1.4", "label": "9.1.4", "title": "修复日志收集器，使其在高负载下不丢失日志连贯性", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a8f1eaf60d9cbec4f01617787fed23b1a7342ea79b3c4a281c02d49023cafb0e"}, "url": "/docs/compare/?release=9.1.4#9.1.4-6bfe9c34cb456dbf", "source_url": "/docs/release/9.1.4/#id-1.11.6.25.5"}]}, {"id": "9.0.8-b91475414d755f42", "cves": [], "html": "<p>修复日志收集器，确保它在收到 <span>SIGHUP</span> 后会重新开始文件轮转（Tom Lane）</p>", "text": "修复日志收集器，确保它在收到 SIGHUP 后会重新开始文件轮转（Tom Lane）", "title": "修复日志收集器，确保它在收到 SIGHUP 后会重新开始文件轮转", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.8/#id-1.11.6.20.5", "source_hash": "ab1071859ba97152c11f5b6a38b747a6de1aab06302f74487e414a0272650715", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix logging collector to ensure it will restart file rotation after receiving SIGHUP (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.8/changes/016", "db_id": "848cae60cce40e40e5f5d0f271a779af", "patch_ids": [], "statement_hash": "6fac7f36ad3dde95d58b318c8f49bfa7bae648666592c387f0e27dca94ab7c6b", "relations": [{"rule": 2, "type": "equivalent", "target": "874b3ea93908f9ba5c8325180087db06", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6fac7f36ad3dde95d58b318c8f49bfa7bae648666592c387f0e27dca94ab7c6b"}}], "version": "9.0.8", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "874b3ea93908f9ba5c8325180087db06", "kind": "equivalent", "version": "9.1.4", "label": "9.1.4", "title": "修复日志收集器，确保它在收到 SIGHUP 后会重新开始文件轮转", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6fac7f36ad3dde95d58b318c8f49bfa7bae648666592c387f0e27dca94ab7c6b"}, "url": "/docs/compare/?release=9.1.4#9.1.4-b91475414d755f42", "source_url": "/docs/release/9.1.4/#id-1.11.6.25.5"}]}, {"id": "9.0.8-079134671ec2bd62", "cves": [], "html": "<p>修复 GIN 索引的 WAL 重放逻辑，使其在索引随后被删除时不失败（Tom Lane）</p>", "text": "修复 GIN 索引的 WAL 重放逻辑，使其在索引随后被删除时不失败（Tom Lane）", "title": "修复 GIN 索引的 WAL 重放逻辑，使其在索引随后被删除时不失败", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.8/#id-1.11.6.20.5", "source_hash": "9c968194c67f0d8782fce65804003937935d85c5c96170c7279f172e067c889e", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix WAL replay logic for GIN indexes to not fail if the index was subsequently dropped (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.8/changes/017", "db_id": "f31f64f9c579661cdacb2fbfa7f24af1", "patch_ids": [], "statement_hash": "3c20319e0fbcbc1ecbf8cc8cc2c9c0d70f21c12ade0d88c48cc5722447792d84", "relations": [{"rule": 2, "type": "equivalent", "target": "78130b6a8a0ac77de9d35f9a208a5366", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3c20319e0fbcbc1ecbf8cc8cc2c9c0d70f21c12ade0d88c48cc5722447792d84"}}], "version": "9.0.8", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "78130b6a8a0ac77de9d35f9a208a5366", "kind": "equivalent", "version": "9.1.4", "label": "9.1.4", "title": "修复 GIN 索引的 WAL 重放逻辑，使其在索引随后被删除时不失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3c20319e0fbcbc1ecbf8cc8cc2c9c0d70f21c12ade0d88c48cc5722447792d84"}, "url": "/docs/compare/?release=9.1.4#9.1.4-079134671ec2bd62", "source_url": "/docs/release/9.1.4/#id-1.11.6.25.5"}]}, {"id": "9.0.8-20ade416d0c79ad8", "cves": [], "html": "<p>修复 PL/pgSQL 的 <code>RETURN NEXT</code> 命令中的内存泄漏（Joe Conway）</p>", "text": "修复 PL/pgSQL 的 RETURN NEXT 命令中的内存泄漏（Joe Conway）", "title": "修复 PL/pgSQL 的 RETURN NEXT 命令中的内存泄漏", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.8/#id-1.11.6.20.5", "source_hash": "d6994eee9cd96838028f24df93e4f13f0c4a1e76dc3d347dee298abb934442e1", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix memory leak in PL/pgSQL's RETURN NEXT command (Joe Conway)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.8/changes/018", "db_id": "540f10a54d1bf2813fecd40209bc5457", "patch_ids": [], "statement_hash": "ff4f48f8b2ccc6064b6ea5b63e49627a4fff4828e77ab95c5cb88d7917cd3e05", "relations": [{"rule": 2, "type": "equivalent", "target": "ae5ee9f16eeeec833b76b57a9a9ce715", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ff4f48f8b2ccc6064b6ea5b63e49627a4fff4828e77ab95c5cb88d7917cd3e05"}}], "version": "9.0.8", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "ae5ee9f16eeeec833b76b57a9a9ce715", "kind": "equivalent", "version": "9.1.4", "label": "9.1.4", "title": "修复 PL/pgSQL 的 RETURN NEXT 命令中的内存泄漏", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ff4f48f8b2ccc6064b6ea5b63e49627a4fff4828e77ab95c5cb88d7917cd3e05"}, "url": "/docs/compare/?release=9.1.4#9.1.4-20ade416d0c79ad8", "source_url": "/docs/release/9.1.4/#id-1.11.6.25.5"}]}, {"id": "9.0.8-9ecdbc49ec73f15c", "cves": [], "html": "<p>修复 PL/pgSQL 的 <code>GET DIAGNOSTICS</code> 命令在目标是函数第一个变量时的问题（Tom Lane）</p>", "text": "修复 PL/pgSQL 的 GET DIAGNOSTICS 命令在目标是函数第一个变量时的问题（Tom Lane）", "title": "修复 PL/pgSQL 的 GET DIAGNOSTICS 命令在目标是函数第一个变量时的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.8/#id-1.11.6.20.5", "source_hash": "c45f1bfd877d53a249b8e330a739f5cf5ac77d73651702b41c94463e1223fd18", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix PL/pgSQL's GET DIAGNOSTICS command when the target is the function's first variable (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.8/changes/019", "db_id": "7f0bc33006563175bc5414d7816dcf96", "patch_ids": [], "statement_hash": "ac74968daa2b65e50dc6e0d049d58e3be94549e24bc4bf9939ab692a8b4b4222", "relations": [{"rule": 2, "type": "equivalent", "target": "87472d649a176ede91baaebedd0b831d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ac74968daa2b65e50dc6e0d049d58e3be94549e24bc4bf9939ab692a8b4b4222"}}], "version": "9.0.8", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "87472d649a176ede91baaebedd0b831d", "kind": "equivalent", "version": "9.1.4", "label": "9.1.4", "title": "修复 PL/pgSQL 的 GET DIAGNOSTICS 命令在目标是函数第一个变量时的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ac74968daa2b65e50dc6e0d049d58e3be94549e24bc4bf9939ab692a8b4b4222"}, "url": "/docs/compare/?release=9.1.4#9.1.4-9ecdbc49ec73f15c", "source_url": "/docs/release/9.1.4/#id-1.11.6.25.5"}]}, {"id": "9.0.8-ee0a7018cabc2610", "cves": [], "html": "<p>修复 <span>psql</span> 扩展显示（<code>\\x</code>）模式中可能越过内存末尾的访问（Peter Eisentraut）</p>", "text": "修复 psql 扩展显示（\\x）模式中可能越过内存末尾的访问（Peter Eisentraut）", "title": "修复 psql 扩展显示（\\x）模式中可能越过内存末尾的访问", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.8/#id-1.11.6.20.5", "source_hash": "589cf070918bbc41aa76c74fc9ab68b3c5b10e1f95bba059b7ebf1eae17d599f", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix potential access off the end of memory in psql's expanded display (\\x) mode (Peter Eisentraut)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.8/changes/020", "db_id": "73ebf284c9b01ca4b21dd84fb622e363", "patch_ids": [], "statement_hash": "cd3f8f30a929dcb62c007262f8144eb4ff9da0bb6418fc7c9f05188a025e2d00", "relations": [{"rule": 2, "type": "equivalent", "target": "03d3ce536e76a31bdcc0cc050132798f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cd3f8f30a929dcb62c007262f8144eb4ff9da0bb6418fc7c9f05188a025e2d00"}}], "version": "9.0.8", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "03d3ce536e76a31bdcc0cc050132798f", "kind": "equivalent", "version": "9.1.4", "label": "9.1.4", "title": "修复 psql 扩展显示（\\x）模式中可能越过内存末尾的访问", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cd3f8f30a929dcb62c007262f8144eb4ff9da0bb6418fc7c9f05188a025e2d00"}, "url": "/docs/compare/?release=9.1.4#9.1.4-ee0a7018cabc2610", "source_url": "/docs/release/9.1.4/#id-1.11.6.25.5"}]}, {"id": "9.0.8-f207e94deeeb708f", "cves": [], "html": "<p>修复数据库包含大量对象时 <span>pg_dump</span> 的若干性能问题（Jeff Janes、Tom Lane）</p>\n<p>如果数据库包含许多模式、许多对象处于依赖循环中、或有许多被拥有的序列，<span>pg_dump</span> 可能变得非常慢。</p>", "text": "修复数据库包含大量对象时 pg_dump 的若干性能问题（Jeff Janes、Tom Lane） 如果数据库包含许多模式、许多对象处于依赖循环中、或有许多被拥有的序列，pg_dump 可能变得非常慢。", "title": "修复数据库包含大量对象时 pg_dump 的若干性能问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.8/#id-1.11.6.20.5", "source_hash": "0b7b863e6ad07da1a0c1b29b0e6399b9cbafefcbfb400ad6e854033bf55f1521", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix several performance problems in pg_dump when the database contains many objects (Jeff Janes, Tom Lane) pg_dump could get very slow if the database contained many schemas, or if many objects are in dependency loops, or if there are many owned sequences.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.8/changes/021", "db_id": "5b97b955dcbbdace43be1ac7e00eca55", "patch_ids": [], "statement_hash": "ba9de3cb96597ea955a9878da3161da87dfdaf13e916d135578cb969c0f0a402", "relations": [{"rule": 2, "type": "equivalent", "target": "e3be79fdcc3d8276f9c34911da1b31e1", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ba9de3cb96597ea955a9878da3161da87dfdaf13e916d135578cb969c0f0a402"}}], "version": "9.0.8", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "e3be79fdcc3d8276f9c34911da1b31e1", "kind": "equivalent", "version": "9.1.4", "label": "9.1.4", "title": "修复数据库包含大量对象时 pg_dump 的若干性能问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ba9de3cb96597ea955a9878da3161da87dfdaf13e916d135578cb969c0f0a402"}, "url": "/docs/compare/?release=9.1.4#9.1.4-f207e94deeeb708f", "source_url": "/docs/release/9.1.4/#id-1.11.6.25.5"}]}, {"id": "9.0.8-891206aa6a7bb4b6", "cves": [], "html": "<p>修复 <span>pg_upgrade</span> 处理存储在非默认表空间的数据库包含集簇默认表空间中的表的情况（Bruce Momjian）</p>", "text": "修复 pg_upgrade 处理存储在非默认表空间的数据库包含集簇默认表空间中的表的情况（Bruce Momjian）", "title": "修复 pg_upgrade 处理存储在非默认表空间的数据库包含集簇默认表空间中的表的情况", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.8/#id-1.11.6.20.5", "source_hash": "3a5130d2f40e09ab624cebd62dfdebfddab087f3853ddfbded5155986a620e56", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix pg_upgrade for the case that a database stored in a non-default tablespace contains a table in the cluster's default tablespace (Bruce Momjian)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.8/changes/022", "db_id": "01705f9cce568b7bae7577ad54fe41ee", "patch_ids": [], "statement_hash": "8aad3c1d6704206ddf8218a7c0e100bc2566e7363ba0fcc9658c1870879f552d", "relations": [{"rule": 2, "type": "equivalent", "target": "c7ed7794cd7dd70f465e312ef9cf1d26", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8aad3c1d6704206ddf8218a7c0e100bc2566e7363ba0fcc9658c1870879f552d"}}], "version": "9.0.8", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "c7ed7794cd7dd70f465e312ef9cf1d26", "kind": "equivalent", "version": "9.1.4", "label": "9.1.4", "title": "修复 pg_upgrade 处理存储在非默认表空间的数据库包含集簇默认表空间中的表的情况", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8aad3c1d6704206ddf8218a7c0e100bc2566e7363ba0fcc9658c1870879f552d"}, "url": "/docs/compare/?release=9.1.4#9.1.4-891206aa6a7bb4b6", "source_url": "/docs/release/9.1.4/#id-1.11.6.25.5"}]}, {"id": "9.0.8-f27d2854a7c714d2", "cves": [], "html": "<p>在 <span>ecpg</span> 中，修复罕见的内存泄漏以及 <code>sqlca_t</code> 结构之后一个字节可能被覆写的问题（Peter Eisentraut）</p>", "text": "在 ecpg 中，修复罕见的内存泄漏以及 sqlca_t 结构之后一个字节可能被覆写的问题（Peter Eisentraut）", "title": "在 ecpg 中，修复罕见的内存泄漏以及 sqlca_t 结构之后一个字节可能被覆写的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.8/#id-1.11.6.20.5", "source_hash": "6c439c4f1d44043b85741512b28bdd168696c05a022adc48627638aef88e23ff", "section_path": ["变更"], "commit_groups": [], "identity_text": "In ecpg, fix rare memory leaks and possible overwrite of one byte after the sqlca_t structure (Peter Eisentraut)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.8/changes/023", "db_id": "968b61bf5aa38dbfd77252a6036bdf7e", "patch_ids": [], "statement_hash": "cd0d7d48c81eb93b5adce5ca4e2079fcd7d857236d49b52474fb34287e7501f0", "relations": [{"rule": 2, "type": "equivalent", "target": "0e0311bb9e47ab1a5317107abd83681e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cd0d7d48c81eb93b5adce5ca4e2079fcd7d857236d49b52474fb34287e7501f0"}}], "version": "9.0.8", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "0e0311bb9e47ab1a5317107abd83681e", "kind": "equivalent", "version": "9.1.4", "label": "9.1.4", "title": "在 ecpg 中，修复罕见的内存泄漏以及 sqlca_t 结构之后一个字节可能被覆写的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cd0d7d48c81eb93b5adce5ca4e2079fcd7d857236d49b52474fb34287e7501f0"}, "url": "/docs/compare/?release=9.1.4#9.1.4-f27d2854a7c714d2", "source_url": "/docs/release/9.1.4/#id-1.11.6.25.5"}]}, {"id": "9.0.8-9c9c5bf3e2935558", "cves": [], "html": "<p>修复 <code>contrib/dblink</code> 的 <code>dblink_exec()</code>，使其在出错时不泄漏临时数据库连接（Tom Lane）</p>", "text": "修复 contrib/dblink 的 dblink_exec()，使其在出错时不泄漏临时数据库连接（Tom Lane）", "title": "修复 contrib/dblink 的 dblink_exec()，使其在出错时不泄漏临时数据库连接", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.8/#id-1.11.6.20.5", "source_hash": "a470ae866f4e01750447f1fdf06ef55889b7db57a610b08252029e543c795568", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix contrib/dblink's dblink_exec() to not leak temporary database connections upon error (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.8/changes/024", "db_id": "0a4347750fa1fc8bdc0b002851db44ff", "patch_ids": [], "statement_hash": "162444061d4bb632cb068bb4a6f0205104aeb64fea3c3c2a7ac8203c344b958e", "relations": [{"rule": 2, "type": "equivalent", "target": "4a40399bde68729941fab650eecad469", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "162444061d4bb632cb068bb4a6f0205104aeb64fea3c3c2a7ac8203c344b958e"}}], "version": "9.0.8", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "4a40399bde68729941fab650eecad469", "kind": "equivalent", "version": "9.1.4", "label": "9.1.4", "title": "修复 contrib/dblink 的 dblink_exec()，使其在出错时不泄漏临时数据库连接", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "162444061d4bb632cb068bb4a6f0205104aeb64fea3c3c2a7ac8203c344b958e"}, "url": "/docs/compare/?release=9.1.4#9.1.4-9c9c5bf3e2935558", "source_url": "/docs/release/9.1.4/#id-1.11.6.25.5"}]}, {"id": "9.0.8-935f6fc4e1a844d9", "cves": [], "html": "<p>修复 <code>contrib/dblink</code>，使其在错误消息中报告正确的连接名（Kyotaro Horiguchi）</p>", "text": "修复 contrib/dblink，使其在错误消息中报告正确的连接名（Kyotaro Horiguchi）", "title": "修复 contrib/dblink，使其在错误消息中报告正确的连接名", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.8/#id-1.11.6.20.5", "source_hash": "b9663f734e81c9170f9ba6ef52e2d1004f33b98d2a59f9df1f6e205f5ab8b572", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix contrib/dblink to report the correct connection name in error messages (Kyotaro Horiguchi)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.8/changes/025", "db_id": "debb644b8744c4750b6f6786febb0987", "patch_ids": [], "statement_hash": "73885a3938aa56d22a54a4a7b9f4738ae3ca9e973105cdf6dddb2d188782ee30", "relations": [{"rule": 2, "type": "equivalent", "target": "8f6f7773f98b1d3398f9747ac43e8ead", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "73885a3938aa56d22a54a4a7b9f4738ae3ca9e973105cdf6dddb2d188782ee30"}}], "version": "9.0.8", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "8f6f7773f98b1d3398f9747ac43e8ead", "kind": "equivalent", "version": "9.1.4", "label": "9.1.4", "title": "修复 contrib/dblink，使其在错误消息中报告正确的连接名", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "73885a3938aa56d22a54a4a7b9f4738ae3ca9e973105cdf6dddb2d188782ee30"}, "url": "/docs/compare/?release=9.1.4#9.1.4-935f6fc4e1a844d9", "source_url": "/docs/release/9.1.4/#id-1.11.6.25.5"}]}, {"id": "9.0.8-89556c862fe759a7", "cves": [], "html": "<p>修复 <code>contrib/vacuumlo</code>，使其在删除许多大对象时使用多个事务（Tim Lewis、Robert Haas、Tom Lane）</p>\n<p>此变更避免了需要删除许多对象时超出 <code>max_locks_per_transaction</code>。该行为可以通过新的 <code>-l</code>（limit）选项调整。</p>", "text": "修复 contrib/vacuumlo，使其在删除许多大对象时使用多个事务（Tim Lewis、Robert Haas、Tom Lane） 此变更避免了需要删除许多对象时超出 max_locks_per_transaction。该行为可以通过新的 -l（limit）选项调整。", "title": "修复 contrib/vacuumlo，使其在删除许多大对象时使用多个事务", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.8/#id-1.11.6.20.5", "source_hash": "b4a2df1eb0447802de26c326832d9843c2242374b13f375b386e450227910397", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix contrib/vacuumlo to use multiple transactions when dropping many large objects (Tim Lewis, Robert Haas, Tom Lane) This change avoids exceeding max_locks_per_transaction when many objects need to be dropped. The behavior can be adjusted with the new -l (limit) option.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.8/changes/026", "db_id": "9e65fef5790e9fb2e40776c0dce94ba1", "patch_ids": [], "statement_hash": "fa38809048291f61b64535c94125b01f22bbe03881cae84b7aa8f3448aa98433", "relations": [{"rule": 2, "type": "equivalent", "target": "041593791e94dea325e10e027f7ff0c2", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fa38809048291f61b64535c94125b01f22bbe03881cae84b7aa8f3448aa98433"}}], "version": "9.0.8", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "041593791e94dea325e10e027f7ff0c2", "kind": "equivalent", "version": "9.1.4", "label": "9.1.4", "title": "修复 contrib/vacuumlo，使其在删除许多大对象时使用多个事务", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fa38809048291f61b64535c94125b01f22bbe03881cae84b7aa8f3448aa98433"}, "url": "/docs/compare/?release=9.1.4#9.1.4-89556c862fe759a7", "source_url": "/docs/release/9.1.4/#id-1.11.6.25.5"}]}, {"id": "9.0.8-7dd8898a26f7107e", "cves": [], "html": "<p>把时区数据文件更新为 <span>tzdata</span> 版本 2012c for DST law changes in Antarctica, Armenia, Chile, Cuba, Falkland Islands, Gaza, Haiti, Hebron, Morocco, Syria, and Tokelau Islands; also historical corrections for Canada。</p>", "text": "把时区数据文件更新为 tzdata 版本 2012c for DST law changes in Antarctica, Armenia, Chile, Cuba, Falkland Islands, Gaza, Haiti, Hebron, Morocco, Syria, and Tokelau Islands; also historical corrections for Canada。", "title": "把时区数据文件更新为 tzdata 版本 2012c for DST law changes in Antarctica, Armenia, Chile, Cuba, Falkland Islands, Gaza, Haiti, Hebron, Morocco, Syria, and Tokelau Islands; also historical corrections for Canada。", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.8/#id-1.11.6.20.5", "source_hash": "dc0176a41c662846b8edd357cf239310d2889274a66ba9ecc80334be96fa97b7", "section_path": ["变更"], "commit_groups": [], "identity_text": "Update time zone data files to tzdata release 2012c for DST law changes in Antarctica, Armenia, Chile, Cuba, Falkland Islands, Gaza, Haiti, Hebron, Morocco, Syria, and Tokelau Islands; also historical corrections for Canada.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.8/changes/027", "db_id": "545903ff595e4f4546424f7f487341da", "patch_ids": [], "statement_hash": "3f17c38061acf5621020544a0ed298975c38f8f64df80267f36868e3cdcb8114", "relations": [{"rule": 2, "type": "equivalent", "target": "0a49d71104e76727e9d5ecdcfc06035e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3f17c38061acf5621020544a0ed298975c38f8f64df80267f36868e3cdcb8114"}}], "version": "9.0.8", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "0a49d71104e76727e9d5ecdcfc06035e", "kind": "equivalent", "version": "9.1.4", "label": "9.1.4", "title": "把时区数据文件更新为 tzdata 版本 2012c for DST law changes in Antarctica, Armenia, Chile, Cuba, Falkland Islands, Gaza, Haiti, Hebron, Morocco, Syria, and Tokelau Islands; also historical corrections for Canada。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3f17c38061acf5621020544a0ed298975c38f8f64df80267f36868e3cdcb8114"}, "url": "/docs/compare/?release=9.1.4#9.1.4-7dd8898a26f7107e", "source_url": "/docs/release/9.1.4/#id-1.11.6.25.5"}]}]}], "stats": [{"key": "all", "label": "全部变更", "count": 27}, {"key": "feature", "label": "新功能", "count": 0}, {"key": "bugfix", "label": "BUG 修复", "count": 19}, {"key": "security", "label": "安全相关", "count": 2}, {"key": "performance", "label": "性能改进", "count": 0}, {"key": "compatibility", "label": "兼容性变化", "count": 0}, {"key": "improvement", "label": "其他改进", "count": 6}], "total": 27, "release_count": 1, "cross_major": false, "cve_count": 2, "cves": [{"id": "CVE-2012-2655", "url": "https://www.postgresql.org/support/security/CVE-2012-2655/", "fixed": {"8.3": "8.3.19", "8.4": "8.4.12", "9.0": "9.0.8", "9.1": "9.1.4"}, "score": null, "title": "忽略过程语言调用处理程序的 SECURITY DEFINER 和 SET 属性", "vector": "", "affected": {"8.3": "8.3", "8.4": "8.4", "9.0": "9.0", "9.1": "9.1"}, "component": "", "published": {}, "introduced": {}, "cvss_version": "", "description_en": "", "first_published": null, "fixed_version": "9.0.8"}, {"id": "CVE-2012-2143", "url": "https://www.postgresql.org/support/security/CVE-2012-2143/", "fixed": {"8.3": "8.3.19", "8.4": "8.4.12", "9.0": "9.0.8", "9.1": "9.1.4"}, "score": null, "title": "修复 contrib/pgcrypto 的 DES crypt() 函数中不正确的口令变换", "vector": "", "affected": {"8.3": "8.3", "8.4": "8.4", "9.0": "9.0", "9.1": "9.1"}, "component": "", "published": {}, "introduced": {}, "cvss_version": "", "description_en": "", "first_published": null, "fixed_version": "9.0.8"}], "cve_available": true, "remaining_cves": [], "security_regressions": [], "warnings": [], "candidate_count": 27, "already_in_source_count": 0, "duplicate_count": 0, "excluded_count": 0, "exclusions": [], "source_as_of": "2026-09-26", "security_as_of": "2026-09-26"}